The more I use windows UI, the more I believe that the concept of the “moded pop up dialog box” is not useful and unnecessary.
The “moded pop up dialog box” is a user interface technique that allows you to have a screen on display, and allow a user action to cause a new window to appear on top of it. The new window takes control. If you click on the underlying window, it makes a sound, and flashes the pop up window to indicate “don’t click on that main window, because this pop up is in front of it and in control”.
Here is an example:
OK, so what is the matter with this? The problem is that you now have two windows cluttering the screen, and one is no longer under your control. You can not resize the main window while the pop up dialog is there.
Expand the picture above. The problem is that the main window has a lot of controls that LOOK like they are useful, but they are not. You can not maximize or minimize the main window. Curiously, the pup up dialog does not have those controls either, but if it did you would assume that they would control only the dialog, and not the main window. The main window maximize and minimize controls are grayed out, to indicate that they do not work, but there are problems with this: most notably, there is no way to know WHY they are grayed out. It is possible to bring up this window without the pop up dialog on top of it, and in that case there really is no indication of why it is grayed out. The menu is grayed out, but the same problems exist. In this program there are many button still appearing as if they are available for use, only they are not. Why have buttons appearing that you can not use. Sometimes, if you cycle through windows using tha “ALT-Tab” functionality, sometimes these pop up dialogs appear as separate windows, and that get really confusing.
Pop-up dialog are basically a way for the programmer to be lazy. Instead of incorporating the information and interaction into the existing window, the programmer can ignore the existing window, make a new window, and keep the programming simpler. I will admit that pop up dialog boxes make it easier for the programmer. But are they better User Interface for the user. I say definitely NO!
Since the main window is “dead”, then the dialog box should be displayed IN the main window. That would allow the main window to still be resizeable, minimizable, maximizable, etc. That way you have only one window. The window represents the program, and the program is represented by one window, which is easier for users to understand. If nothing else in the main window can be manipulated, then it should be greyed out, or something, but leaving it there, with all the controls looking as if they are available, is a huge problem with usability.
Instead, I would like to see pop up doalogs incorporated into the main window. Using a bit of graphical editing, I made what I woudl consider to be a superior way to display what the old pop up dialog was displaying. It would look something like this:
What is the matter with using this? The progress bar (which is the only thing in the old pop up dialog) is displayed, but there is only one window. The old confusing buttons are gone (because the program can not handle those now). A new button appears (Cancel) which is appropriate. The file list is grayed out because you can not manipulate them now (if clicked on they should display something that explains why they are gray). The main benefit is: there is one window. There is no need for “flashing” one window when you click on the other, because there is only one window. There is no need to gray out the resize buttons, because they still work. The window behaves normally! The user interface is simpler. This is goodness.
I have been looking at this for a long time, and every time I see a pop up dialog is ask the question: is this necessary? Invariably, I find that it is not. A better User Interface could present the same information, the same interaction, within the main window. And the advantage is that as a user I have only one window to worry about. Sure, it is easier for the programmer, but as a user I am better served by a single window which holds the complete mode of the program at the current time.
I would be interested in knowing: have you encountered any cases where a pop up dialog is needed? Where it is actually BETTER than incorporating the same interaction into the main window display? How would you measure this benefit?