partridges
FixOSX.org: Titlebar Widgets
Titlebar Widgets: What do those coloured buttons in the titlebar really do?

Three WidgetsAs with Windows, windows in Mac OS X have a set of three coloured buttons that control the window. The first button is red and (usually) closes the window. The second button (yellow) minimises the window, just like in Windows. Lastly, the third button, green, toggles the window between the user state and the standard state. This behaviour is different from Windows, where the third button maximises the window—resizes the window to full screen.

Close ButtonThe Close ButtonThe red button actually has two functions. While it always closes the window, sometimes it quits the application too. Such behaviour is rather enigmatic, given that those buttons are supposed to be window controls, not application controls. However, this behaviour is explained in Apple's HIG's. In this case, Apple tends to follow its guidelines. Though the fact of the matter is that the reason the guidelines appear to be followed is because they are so ambiguous:

In most cases, applications that are not document-based should quit when the main window is closed. For Example, System Preferences quits if the user closes the window. If an application continues to perform some function when the main window is closed, however, it may be appropriate to leave it running when the main window is closed. For example, iTunes continues to play when the user closes the main window.

Since Apple seems to have no respect for its own guidelines (see brushed metal), I feel no qualms in attacking the validity of this guideline. The behaviour of sometimes quitting and sometimes not is inconsistent and confusing. There is no indication of what will really happen when the red button is pressed. It could quit the application, or it could close the window. Besides, there is always a reason to leave an application open: it reduces start-up time the next time you want to open the application. In fact, I never close my applications because while they aren't doing anything, they use no processor power but are quick to bring up again. For example, I could want to leave iPhoto open so I can access it later, but not want to have the actual window open.

Minimise ButtonThe Minimise ButtonThe yellow button is the simplest of all the buttons and does exactly what it claims to every time. The only thing worth noting about this button is that it is useless: this functionality is easily achieved by double clicking anywhere in the titlebar or by typing command-m. If the yellow widget was eliminated, there would be no detriment to the functionality of the OS. Unfortunately, then there would be a traffic light without the yellow, which looks plain wrong.

Zoom ButtonThe Zoom ButtonThe zoom widget is the most mysterious of all. This mysteriousness does not arise from a failure to follow guidelines, nor does it stem from the guidelines being misguided. You may have heard me say "user state" and "standard state" earlier, and it is quite possible you have no idea what I'm talking about. This is what the human interface guidelines have to say about the zoom button, and you can see why this button is mysterious:

Your application also sets the values for the initial size and position of a window, called the standard state. Don’t assume that the standard state should be as large as possible; some monitors are much larger than the useful size for a window. Choose a standard state that is best suited for working on the type of document your application creates and that shows as much of the document’s contents as possible.

The user can’t change the standard size and location of a window, but your application can change the standard state when appropriate. For example, a word processor might define the standard size and location as wide enough to display a document whose width is specified in the Page Setup dialog.

...

If the user changes a window’s size or location by at least 7 pixels, the new size and location is the user state.The user can toggle between the standard state and the user state by clicking the zoom button. When the user clicks the zoom button of a window in the user state, your application should first determine the appropriate size of the standard state. Move the window as little as possible to make it the standard size, and keep the entire window on the screen. The zoom button should not cause the window to fill the entire screen unless that was the last state the user set.

When a user with more than one monitor zooms a window, the standard state should be on the monitor containing the largest portion of the window, not necessarily the monitor with the menu bar. This means that if the user moves a window between monitors, the window’s position in the standard state could be on different monitors at different times. The standard state for any window must always be fully contained on a single monitor.

What warrants mentioning? There is no way to truly maximise a window (make it full screen). Such a function is undeniably useful. Some windows' standard state is not full screen, like for webpages in Safari, or windows in the Finder, but in both of these cases it is most convenient to have the full screen to view the windows (at least for 1024×768 screens... which a majority of computer users have). I am not saying that Apple should replace the current Zoom button functionality: it is currently quite useful. But Apple should also realize that fullscreen functionality can be useful too.

Zoomed and Widget iTunesBut sometimes, they don't follow guidelines But there is, in my opinion, another problem that is just as bad. This problem is that Apple, for some reason, thinks that this zoom button can be used as some kind of state toggle, much like the toolbar widget is used in the Finder. The major difference is that in the Finder the toolbar button actually does show and hide the toolbar, while in Calculator and iTunes, the zoom button in no way toggles between the user state and the standard state.

In iTunes the button toggles between the user state and some type of mini controller. For one, the mini controller functionality is better served by the iTunes dashboard widget. Secondly, there have been numerous times that I have wanted to toggle between the user state and standard state (or to maximise), and have been unable to because the zoom button does not do what it is supposed to. Calculator does something even weirder. The zoom button rotates through the three states that that App uses: basic, scientific and programmer. That's really odd, especially considering that you can't resize the calculator.

The last annoying thing about this button is that there is no key combo to invoke it. There is for minimize and close but not zoom. What's up with that?

What titlebar widgets are allowable

What conformance?One last comment about titlebar widgets. The above diagram shows what Apple deems to be acceptable and not acceptable. Ever Opened a file from a program before? That's item number six on the do-not-use list. Or, have you ever copied a file in the Finder? The window that comes up is item five on the do-not-use list. How about the find window that is usually used when you hit command-f? That's item number three! Why should there be any respect for Apple if they themselves use things they have told developers not to?

Most graphics on this page are © Apple Computer Inc.
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.