Scrolling Menu

Richard Gaskin ambassador at fourthworld.com
Tue Mar 21 14:19:29 EDT 2017


dunbarx wrote:

 > So I made a stack that had a group of a dozen buttons piled up
 > vertically.
...
 > Now I make the stack a stack menu. The issue with a stack menu is
 > that very few messages are sent at all, but "mouseDown" is one that
 > is. The stack remains nice and still but the group scrolls smoothly,
 > up or down depending on where you click vertically. Not rocket
 > science.
 >
 > The stack itself really believes it is a menu style button, even
 > containing a phantom "menuPick" handler for convenience.

Using buttons on a stack as menu items dates back to the very earliest 
days of MetaCard, when the only supported UI was Motif.  The various 
settings available for buttons in support of that role (e.g. "cascade" 
menustyle) are great for Motif - but not to much for anything else.

Thankfully, in the late '90s the engine evolved to include support for 
menus as textual lists, which most of us use today.

Stack menus might be candidates for deprecation were it not for one 
thing they continue to do well:  if you need a graphical menu, such as a 
gallery picker, the remain an excellent solution.

As one expects with menu items, the full scope of event messages we get 
for buttons used in more conventional contexts have no purpose when used 
as a menu.  MouseDown triggers the selection which closes the menu 
stack, and menuPick is generated as it is with modern textual buttons to 
allow handlers to respond to menu selection.

This part was interesting to me, since I've not been able to get 
scrolling happening at all:

 > Now this a real kluge, in that the stack is not scrolling, but rather
 > the controls are, and in the "opposite" direction.

Can you describe that in more detail? How do you know the content region 
of the stack isn't scrolling if all of the objects contained within it 
are scrolling?

If you see anything different than what's reported here it may be 
helpful to add a note to this report, and please include your OS and LC 
versions:
http://quality.livecode.com/show_bug.cgi?id=6072


 > This surely can be enhanced to show a scrollbar to emulate a scroll
 > button at the stack level. All the properties of the button, stack
 > and group are accessible; there should be no reason that one could
 > not make a "scrolling stack"

We could, but you'll find that once you mouse down on the scrollbar the 
menu is dismissed.  This would be an undesirable behavior for any normal 
stack, but it's exactly what one wants for menus, which don't normally 
have scrollbars.

I needed a middle ground a while back when designing Devo 4, where I 
wanted controls to appear temporarily similar to how a menu provides 
them, but I also wanted the ability of interacting with them more akin 
to a normal stack.

The result is what I call a "flyout pane", and you'll find examples in 
the Devo 4 plugin available for free at my site:

http://fourthworld.com/products/devolution/index.html

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com




More information about the use-livecode mailing list