Bob Sneidar wrote: > There is a checkbox in the menu builder called Set as Stack Menu bar. > I’m wondering if that is what everyone means by a stack menu?
Stack menus are far more primitive than that, going back to the very early days of MetaCard in which making a menu meant laying out buttons with a very specific mix of property settings to appear and behave like a menu, and then either calling that stack with a popup command or assigning it as the menuName property of a button.
This was super-tedious, and when trying to get proper appearances for both Linux and Windows very difficult, and impossible for Mac given its global menu bar.
So as the engine was ported to Mac, the need to support the Mac's global menu bar prompted the creation of a subclass of buttons which allow us to have menu items defined as simple text strings - much easier to work with, and much more HIG-compliant.
Interestingly, on Windows and Linux menus are still rendered as stacks, but done by the engine. This is much faster and more attractive than the olden days when we used to make them by hand, but obviates some opportunities to make menus in closer compliance to those HIGs.
This is rarely evident to us (the implementation is pretty good), but if you happen to check "the windows" while a menu is open you'll find that the first line of the list returned from that function is blank - that's the name of the menu stack that is the open menu. In some routines I rely on that to know when a menu is open - not often needed, but can be useful to know.
When Theming becomes available we'll be able to revamp the ways menus are constructed, mapping those calls to native OS routines for even closer adherence to user expectations. And along with that I'll probably need to come up with another way to know if a menu is open since I won't be able to rely on the first line of "the windows" being blank - small price to pay if we finally get automatically-toggling Alt key shortcuts for Windows.
-- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ ambassa...@fourthworld.com http://www.FourthWorld.com _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode