Why is Konfabulator "Pretty?"
J. Landman Gay
jacque at hyperactivesw.com
Wed Dec 7 17:22:47 EST 2005
Bill Marriott wrote:
> I tried looking up "stack menu" in the docs. I found:
> "You create a stack menu by laying out the menu items as buttons in a stack
> window, then setting the menuName property of a button in another stack to
> the menu stack's name. Clicking the button displays the menu stack as a
> menu. If you use the same stack menu as the menuName of more than one
> button, the menuButton tells you which button the user clicked to display
> the stack menu."
> I am not sure I comprehend what that means. You're probably right, I'm too
> casual a user (I've owned Rev for two years but don't use it daily) to know
> about the technique.
I apologize for assuming you were new to Rev. I've only seen your name
on the list recently, so I made assumptions. I think 2 years of even
casual use gives you enough experience to disqualify you as a newbie.
> I've searched on "menu icon" and found nothing in help.
> The help topic "Menus and the menu bar" mentions nothing about icons. Just
> to be clear, I mean the little 16x16 icons to the left of items like New,
> Open, and Save in Word 2003. (Notice they also have the region set aside for
> menus colorized.)
In the docs, click the Topics button and then click on the main heading
at the left for "Menus and the menubar". There is more descriptive info
Basically, you create a small stack, usually stored as a substack, that
is the exact size of the menu when it is popped open. You populate the
stack with anything you want, which in this case would be images at the
left and buttons representing menu items to the right of each image.
Unlike the default type of menu, the objects in a stack menu recieve
mouse messages rather than menupick messages, so you script your menu
stack buttons (and images, if you want) with "mouseup" handlers. Then in
the main menu button (the one that shows in the menubar) either set the
menuName property of the button to a reference to the stack, or place a
mouseDown handler containing a pulldown, popup, or option command in the
script of the button.
I agree this isn't as easy as a built-in, automated method, but it can
be done. As you mentioned, lots of your suggestions can be done, they
only need to be scripted. I think the biggest challenge for Runtime is
figuring out how many of these things ought to become automatic. For
example, while icons in menus is common on Windows, it is almost unheard
of on Macs. Balancing all priorites while providing cross-platform
support is a tricky thing, and I'm not sure how I would make those
decisions. Scott Raney's philosophy was that highest priority should go
to those features which cannot be done without an engine change, and
those things that can be scripted have lower priorities. For now, that
seems quite reasonable to me.
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the Use-livecode