GUI ScreenIO for Windows

 ScreenIO.com


Design Considerations

It's not particularly difficult to implement a multiple working-set application, but it still makes things a bit more complicated, both for you and for the user of your application.  If your application follows our recommended, modular structure, you'll find it's not difficult to modify it to use multiple working-sets if you want to in the future.

Examine other Windows applications

Before you embark on a multiple working-set application, you should look at other Windows applications to familiarize yourself with how they work, and how your design compares to theirs. 

Many new Windows programmers think it's common for Windows applications to allow users to open up many windows and then switch freely between them.  This is not the case, as you'll see after you look critically at other Windows applications.

Usability

Some users find it confusing to have more than one active window in an application; consider how many users still don't understand that you can run more than one program concurrently in Windows! 

Be sure to consider your target users and whether they will benefit by using multiple working-sets in your application so that they can open many windows concurrently, and switch between them.  Is it really better?  Will it improve the usability of your application?

Most applications don't require multiple working-sets

Generally speaking, an application consists of a menu and/or a mainline flow of functionality, which is augmented by brief excursions to popups or property sheets when appropriate.  You might modify some property of the record displayed in the main window by displaying a popup to collect the data, and then return to the main for the next action.

For example, a name and address application (such as the one in the listview sample program), may have a main panel that lists the addresses and allows you to find the one you want, and then uses a popup to add, update, or delete an address.  Once that's completed, it returns to the main panel. 

Most applications are conceptually similar, and are easily implemented without the use of multiple working-sets.

Functions that benefit by use of multiple working-sets

Applications that open multiple documents; the GUI ScreenIO panel editor, word processors, programming editors, and spreadsheets, are among the few types of applications that really benefit by the use of modeless windows. 

Some functions, such as the Find/Replace dialog in word processors, are legitimately modeless window applications.  It's much more convenient to launch the dialog and then have it waiting for you, than it would be to launch it from the menu every time you wanted to use it.

If you're convinced your application will benefit by using multiple working-sets, continue to programming...

Miscellaneous technical considerations

Owner and owned windows

A GUI ScreenIO application typically consists of a main window (within which base panels reside), and popups and/or property sheets.  The main window is usually the "home" panel of an application.  Because of this, the main panel (or, more precisely, a base panel displayed within the main) does not behave quite the same as the popups in your application.

The main window "owns" all of the windows in your application.  This means, among other things, that when the user minimizes the main window, all of the other windows in the application are also automatically minimized.  When the main is restored, all of the popups are restored as well. 

Windows always displays owned windows on top of their owner window.  Therefore, when you activate a base panel (or main), the popups in other working-sets will remain on top of the main window.  This is standard Windows behavior.

Applications with no main window

Because the main does not come to the top when it is activated, some developers prefer not to display the main window and instead, use popups and property sheets throughout their application.  Although you must display a main window (to, among other things, establish an owner for the rest of your application's windows), you can suppress the display of that main window by specifying you want to do so in the main panel's properties (edit the Main in the panel editor; select Panel/Properties, click the Main Container tab, check the box to defer display of the Main until a base panel is displayed).

There are some things to consider when you suppress the display of your Main container; among others, when a user clicks the Minimize button on a popup, only that popup is minimized, not your entire application.  Furthermore, the popup isn't minimized to the taskbar, it's minimized to the bottom of the desktop.  Likewise, clicking the X box in a popup only results in a panel-EVENT-CLOSE-WINDOW, which is not generally treated the same as a panel-EVENT-CLOSE-AND-STOP.

If you want to minimize your application, you must do it manually by displaying the main with a panel-DO-MINIMIZE display option.  Because you wouldn't generally close an application when your user clicks the X box on one of your popups, you will have to provide a button or menu option to allow your user to terminate your application.


© 2000-2019 Norcom, all rights reserved 

TOC

Send feedback to Norcom