tear-off menus (was Re: "Close" on last window causes "exit")

Paul Rohr (paul@abisource.com)
Thu, 06 May 1999 10:54:28 -0700


At 12:05 PM 5/6/99 -0400, Jon Niehof wrote:
>Why not just use SDI and then rip-off menus? If the menu is
>ripped off, then don't show it in any of the windows.

Given how we construct menus on the various platforms now, that sounds like
a fair bit of platform-specific code, but it might work.

I presume the idea is that if you're closing the last window, and the menu
is torn off, then the app stays up, represented by just that single menu.
Also, there's some platform-appropriate notion of a focus or topmost window
so users know which window any menu actions will apply to. (Hand wave, hand
wave.)

My main worry is how easy it'd be for naive users to "lose" their menus and
be unable to find them. :-) Gracefully avoiding that pitfall is probably a
substantial amount of the effort required to make such a feature Just Work
without ever having to explain it. We're pretty rabid about the idea that
unpleasant surprises in the user experience are must-fix bugs.

Depending on which GUI you like, there are a number of ways to deal with the
"lost menu" problem. I'm most familiar with tear-off menus on the Mac,
where you can never lose the menu bar entirely. On Windows, the convention
with more recent MSFT apps seems to be that you right-click on the toolbar
or the title bar to retrieve lost menus, but many users aren't aware of
this. The NeXT GUI is the only one I can recall that made extensive use of
tear-off menus, and their UI designers made menus tall, rather than wide,
which at least made them easier to find. However, it's been quite a while
since I've used that interface, and I don't remember how Mom-friendly the
feature was.

The annoying thing about subtle GUI details like this is that you never know
how well it'll work until you code it all up, only to user-test it and have
people complain that it still doesn't "feel" right. It's really hard to
know when or if that code and test cycle will ever close.

Worse, since each tester gradually gets trained to use the feature, no
matter how awkward it still is, you have to keep finding new people to try
it out, because it's the naive user problems we need to address. I
personally only have one Mom I can use for stuff like this, and she lives
3000 miles away. :-)

It's enough pesky work that I personally don't plan to work on such a
feature anytime soon.

That having been said, I certainly wouldn't mind looking at "tearoff menu"
patches, just to see how they feel. However, just like with the Linux
kernel, some patches are tight enough to make it into CVS immediately, while
others keep getting reworked indefinitely until they're worth adding. I
suspect these would fall in the latter category.

Anyone interested in working on such a patch might want to warm up by first
implementing the View/Toolbars, View/Rulers, and View/Status Bar menus.
These features also involve rearrangement & repacking of platform-specific
widgets, and the expected user experience is much much clearer.

Paul



This archive was generated by hypermail 1.03b2.