> With regard to Select Window and Adjust Window: these are all useful
> for manipulating windows, but they won't tell me whether a window is
> visible or hidden before FM acts on a window -- and in this design,
> the window's visibility status determines how it should be handled.
> Basically I want to achieve three things: I want to keep different
> found sets in separate windows; I want to give the user the ability to
> look at those datasets simultaneously; and I want to hide extra
> windows if the user only wants to look at one of them. In order to do
> all three of these seamlessly, the database needs to make a decision
> about what to do when a user clicks on a tab, and that decision
> changes based on whether a user is looking at multiple windows or only
> one.
Ok, I did a little quick playing.
You can write scripts to show (actually the option is "Restore") and
hide the window by title:
Select Window [Name: "Display"; Current file]
Adjust Window [Hide]
or
Select Window [Name: "Display"; Current file]
Adjust Window [Restore]
It doesn't matter what the current state of the window "Display" is.
That is, calling Restore on a hidden window shows it, but calling
Hide on a hidden window doesn't somehow increase its hidden-ness
(you only need to restore it once to make it visible).
Once you have your show/hide scripts for each of your three windows,
you can (a) attach them to buttons on the layout and (b) invoke them
from elsewhere. So, if the user clicks to show Window3, then Window3
becomes visible. If they do something that means Window3 should now
be hidden, then your handling of that action must invoke the relevant
script to hide Window3. The exact logic depends on what your database
does and how it handles user input and searches. In essence, though,
you do not need to have prior knowledge of a windows current state
in order to either show or hide it.