In the case where a single desktop application has many different screens, and a user may (or may not depending on the task) need to see more than one screen at a time, which approach is best for handling multiple screens?
For example, think of a business/ERP type application that has screens for listing items, editing items, viewing customers, entering orders, entering payroll, updating inventory, and so on. There could easily be thousands of available screens, although only certain combinations of screens might be used at a time.
I can think of two ways of dealing with this problem:
Option 1
Use the Operating System window manager to manage the windows. The user launches the main application window, and the main application window launches new windows in the desktop environment. The new windows appear on the taskbar/dock and the OS Alt+tab/Expose can be used for window switching.
Advantages:
- The application uses the GUI the user is already accustomed to. ie. mac users who like Expose don't have to use a Windows style GUI inside the application.
- Users with multiple monitors can move the various windows to different screens.
- We don't have to develop our own window manager. The OS does this for us.
Disadvantages:
Having many windows of our application windows open at once can make a giant mess of the taskbar. It may be hard to find a specific window we need.
What is the point of the main application window then? It's just a window with a menu bar. Whenever you open a new window, you switch to it. When you need to open another, you have to find the window-launching window down on the taskbar, which can create a bad UI experience.
- No way to minimize/restore all windows at once.
Option 2
Create only one main application window that appears at the OS level. Create your own window manager that lives inside the main application window, to manage the various sub-windows. Windows can be opened, moved, and minimized within the main application, but they do not appear on the main application task bar and can't be alt-tabbed, etc.
Advantages:
- Less Clutter. When you minimize the application, the whole thing minimizes to one slot on the taskbar. Clicking it again restores the application.
Disadvantages:
Creating your own window manger is a lot of work to create and maintain.
Windows that you can drag around, close, and minimize just like real windows can be very frustrating when you can't drag the windows outside of parent window.
Will not work with multiple monitors.
These types of interfaces always feel clunky to me, compared to the native desktop.
May force the user to use a different metaphor for window management. ie. they are used to Expose but are forced to use a taskbar within the application.
I would consider option #1 to be a lesser of evils, but I'm not satisfied with it as a solution because it still has many disadvantages such as lots of clutter on the OS taskbar with many open windows, and having a main window with nothing more than a menu bar/launcher that you have to keep flipping back to.
Certainly someone has come up with a better way of managing windows in a multi-window application?