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

Re: Dynamic pop-up menus

On Wed Dec 22, Rodney Daughtrey writes:
  I'm in need of a pop-up menu where I can dynamically change the menu items
  time, from use to use.  I'm looking at the "pop-up-menu.lisp" file in the
  "library" subdirectory.  Any ideas on what's the easiest/best way to do this
  using this code, or has anyone else implemented this and is willing to share?
Here's another plug for marking-menus -- a concept developed by Gord
Kurtenbach and the subject of his Phd dissertation. Marking menus allow
a smooth transition between novice and expert behavior. The novice can
press the mouse button down, wait until the menu appears and then
venture in the direction corresponding to the menu slice. To select
nothing, she releases the mouse in the middle (the hole of the donut).
The expert marks ahead, releasing the button in the middle of the hole
or ventures off to select a slice. The item choice depends on direction
and not on linear distance (the standard pop-up menu).
I've contributed menu-enhancements.sit.hqx to cambridge.apple.com
and stored in pub/MCL2/contrib. The code (available by anonymous ftp)
allows the programmer to create context-sensitive marking menus. The
code introduces a class -- marking-menu-view -- to support marking menus.
Experts leave ink trails when they make marks,; novices stretch a rubber
band line from the center of the donut to the current mouse position.
The code supports hierarchical menus but does not support multi-level
mark ahead.
Because the menus appear only when invoked, changing the menu items is
easy. It's also faster to select from a marking menu than a linear
pop-up menu.