![]()
![]()
![]()
![]()
Issues
Laying out vertical menus is interesting because
there is a basic three column grid that is broken up with elements that
span all columns. Separators are one example of this. The final solution
was to put all of the grid oriented elements into a single grid that
determines the widths of the columns. Then each row of the grid is placed
individually into a vertical box and interspersed with the other elements
like separators.
Grid layout elements are useful in many other
places as well. One example is to use a two by two grid to layout
a view, horizontal scroll bar, vertical scroll bar, and filler.
Event management is always fun. The menu system can be activated by a keyboard mnemonic or accelerators can be used to activate menu functions. Thus keyboard events destined for a window (or its auxiliary windows) must be examined in order to activate the menu system. Once the menu system is activated events must be grabbed until it is deactivated. While the menu system is activated popup windows are appearing and disappearing and events for these windows should be processed by the menu system as well. The solution was to add a filter to the display that watches for mnemonics and accelerators and activates the menu system as needed.
![]()
Status
The MenuKit interface and native Fresco implementation
are in the current snapshot.
Last updated on Tue Jan 28 14:38:42 EST 1997.