CLIM mail archive


clim 2.0.beta: menu-choose

I have previously complained about menu-choose privately to Franz, but
now that I have the Motif style guide, I can see that there are issues
here of general importance.  Perhaps those of you who have experience
programming with other GUIs can expand on this theme.

In Motif there are two aspects of a menu that control the behavior of
the menu (see Chap. 3 of the Style Guide):

1.  pull-down vs. pop-up.  The general behavior Motif wants to promote is
that (1) Press exposes the menu and (2) Release chooses a menu item.
So if you Press-Right to expose the menu, then Release-Right should
choose something (pop-up menu).  And if you Press-Left to expose the
menu, then Release-Left should choose something (pull-down menu).
As it stands, menu-choose is always the pop-up variety, there seems to
be no way to get a pull-down type.  It would be nice if there was an
extra argument to menu-choose to specify the correct behavior.

Also, there is a bug that sometimes occurs.  If the menu is not exposed
promptly, intervening Release-Right events get "thrown away".  Therefore
if the user gets tired waiting and releases the mouse, they eventually
get a menu anyway and it does not go away until a second Release-Right
event occurs.  This can be rather unintuitive behavior.

2.  spring-loaded vs. posted.  A spring-loaded menu must be removed when
the button that exposed it is released.  A posted menu remains until the
user explicitly removes it.

Because of the problem #1 above, menu-choose menus appear to be posted
when they are in fact spring-loaded and merely waiting for a Release-Right
event.  I conclude this because the only way to "unpost" the menu is to
provide a release-right event.  But Motif specifies that in a posted
menu, Left and Right should both behave identically.  Furthermore, it is the
Press event that activates a menu item rather than Release.

I would argue that menu-choose should utilize the "posted" variety by
default, but that the spring-loaded variety should be available via some 
keyword to menu-choose.

I suspect that there are similar issues in other GUIs, and that the
specification of menu-choose is overly biased in favor of its Dynamic
Windows heritage.

jeff morrill



Main Index | Thread Index