On Fri, 21 Jun 2024 16:56:53 -0000 (UTC), Rich wrote:
Mark Summerfield <[email protected]> wrote:
Below is a tiny program.
The "About" form is created and destroyed. So you can click About then
close the About form, then repeat as often as you like.
The "Options" form is supposed to be shown and hidden. But once you
click it and then close it, the entire app is blocked. So clearly I'm
doing something wrong.
Based on your code you are showing the options as a "modal" dialog.
Modal means it blocks the rest of the app. Withdrawing the window does
not change its "modalness". You need to not only withdraw the window
but also turn off the "modalness" of the window at the same time.
I.e., you need to "grab release" on the window as part of withdrawing
it.
As a suggestion, you might also consider making the options window 'non-modal' in that it can be open and the rest of the app can still function. Modality is more often evil than anything else in a GUI.
I was trying to create a family of functions to support creating dialogs
of the kinds: modal and modeless hide/show (i.e., created once and
reused), and modal create/destroy, and have now done so.
As for modality being "evil". Over the decades many aspects of UI design
have come and gone, mostly driven more by fashion than by issues of
usability or functionality. Modality is confusing and inconvenient for
some or even many users in some contexts, but it can be very convenient
and useful for others in other contexts. The same is true of MDI (multiple document interface), a UI idea which has been out of fashion for at least
25 years but which remains useful for some applications in some contexts.
(I use it for a "pinboard" type application, and I've seen other current
uses.) There are many other fashionable inconveniences I could mention.
For example, some of my notification icons are black and white when color
would be more useful.
Personally I think a UI toolkit's role is to provide functionality and it
is for the programmer to choose what to do with that functionality. I
dislike toolkits which try to impose on the programmer (I'm thinking of
Gtk here for example).
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)