Long Menus issue (Was: Re:NeXTGtk ?)

This came up in a different discussion, but I think it needs to be paid more 
attention to. The problem is: What do we do when a menu is to long to fit on 
screen (like a font menu in some GUI's, Gimp plugins). We want to be able
to see all of the choices in the menu, but most current solutions don't
work too well. I know that currently font selection does not occur in a 
menu, but we must deal with cases where applications, especailly extensible
ones, need to be able to handle such cases gracefully, without any extra 
code. These are the most common ideas:

1. Have a "More" item that creates another menu next to it - this is what
a lot of GUI's do - Motif does this. It doesn't work very well, and avoiding
this solution started the discussion.  

2. When the number of items exceeds a certain arbitrary amount, the menu 
becomes scrollable, or pops up a dialog with a scrollable box in it. This
could be a good idea, but even if the menu had an area at the bottom that 
autoscrolled when the pointer was over it, you could not see all of the 
menu items at once (one of the main complaints)

3. Decrease the size of the text in the menus until they all fit on screen.
This works, but presents a pragmatic interface, and even with a smaller font 
there is a limit to the vertical screen size.

4. Have long menus tile horizontally. Like this:

 | ITEM 1  | ITEM N   |
 | ITEM 2  | ITEM N+1 | 
 |  ...    |  ...     |

This way, all menu items are displayed on screen. The only cases where this 
would not work are when there are many very long menu item names, or when
there are a very very large number of menu items (combine with a smaller
font size?). Usually menus like this do not have submenus so having menus on 
top of menus would not be a problem. I feel that this is the best solution 
to the problem. (AFAIK, this is used in Win95 and MacOS, and MacOS does the
font size manipulations in some cases)

Also, is there some way to change the fonts or colors of items in a
menu or scrollbox? I haven't coded anything using this yet, but on many
platforms the font names are printed in the font. This would have to be 
carefully worked on, because on many systems rendering some fonts (like 
gothic and other kanji fonts) causes a freeze in interactivity, and for some 
fonts (the symbol ones) it doesn't work well. Could we find the font type 
by checking the font encodings (for the foreign fonts) or have a list of
fonts we know we don't want to treat this way (a fairly complete list would
not be that hard to make - about 15 minutes work)? 

Just my $0.02


# Zack Williams  zdw@u.arizona.edu  http://www.u.arizona.edu/~zdw #
#                                                                 #
#   Linux is like an arcwelder - it is insanely powerful in the   #
#        right hands, but most people get by with JB Weld         #

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]