Stack menus

Peter Haworth pete at lcsql.com
Wed May 29 19:14:08 EDT 2013


Thanks Ken, that clarified the color stuff.

I guess the fact that the armFIll and autoArm properties are not shown in
the IDE Inspector for a button makes it hard to figure this out!

Still puzzled by the message path though.  Using your example, I had a
mouseUp handler in a button in Stack2 which called a handler in Card 1 of
stack 2 so sounds like it should have executed.  Plus when I removed the
mouseUp handler from the button and re-titled the card handler to mouseUp,
all worked fine.  I'll see if I can check into that again.

Pete
lcSQL Software <http://www.lcsql.com>


On Wed, May 29, 2013 at 3:34 PM, Ken Ray <kray at sonsothunder.com> wrote:

> > When the mouse rolls over one of the stack  menu options, it's background
> > becomes a very dark blue color.  Looking for guidance on how to fix that
> > since I've tried the obvious color settings to no avail.  Maybe some
> other
> > property needs (un)setting?
>
> Peter, I think the reason you're seeting the dark blue color is that in
> the stack that is popping up you have buttons that have the 'autoArm'
> property set to true, which causes the button to automatically hilite when
> the mouse passes over it in the popup stack. You can change the color by
> setting the 'hiliteColor' property of the button(s) that are sitting on the
> popup stack. Or if you don't want it to hilite at all, you can set the
> 'armFill' property of the button(s) to false.
>
> > The other issue seems to a difference in how the message path works when
> I
> > click on a button in the stack menu.  I have a mouseUp handler in each
> > stack menu button which calls a handler I have at the card level.  In
> > debug, I see the mouseUp handler executing but even though it executes
> the
> > call to the card hanlder, the card level handler never executes.
> >
> > I've worked round it by putting the mouseUp handler at the card level,
> > arguably a better solution anyway but curious about this behavior.
>
> OK, any script that you call from popup stack objects follow the hierarchy
> (AFAIK) of the menu button - that is suppose the main stack was called
> "Stack 1" and the popup stack was called "Stack 2":
>
>    menu button (of Stack 2)
>    card script (of Stack 2)
>    stack script (of Stack 2)
>    stack script (of Stack 1 - if Stack 2 is a substack of Stack 1)
>    libraries/backscripts/etc.
>
> Note that it never triggers the card script of Stack 1. Your 'mouseUp'
> handler is actually trapping the mouseUp of the button that *invoked* the
> popup stack… not the mouseUp on the menu button you ultimately selected.
>
> So to get around this you'll need to use 'dispatch' or the equivalent from
> the script of the menu button in Stack 2 to the card in Stack 1, like:
>
> (script of menu button of Stack 2:)
> on menuPick pItemName
>   dispatch "ItemSelected" to cd 1 of stack "Stack 1" with pItemName
> end menuPick
>
>
> Hope this helps,
>
> Ken Ray
> Sons of Thunder Software, Inc.
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list