Popup Menu - Show on mouse over
Jan Schenkel
janschenkel at yahoo.com
Thu Oct 17 05:42:00 EDT 2002
Recently, Simon Forster asked:
> On Tuesday, October 15, 2002, at 12:31 PM, Jan
> Schenkel wrote:
>
> > on mouseEnter
> > popup me
> > end mouseEnter
>
> Jan
>
> Many thanks. Next series of questions if I may:
>
> - How do I "hide" the popup on mouseLeave?
>
> [snip]
Hi Simon,
As Sarah already answered your other questions, I'll
focus on your first question.
It seems the 'popup' command suppresses any and all
messages until a selection is made or the escape
button is pressed or the user clicks elsewhere.
Rather inconvenient, as you can't hie it on
mouseLeave. I remembered under HyperCard 1.2.5 one
could emulate menus, without an XFCN.
The trick? Show a field and handle all the appropriate
messages so that things are selected. Here's the
recipe for your own popup show/hide routine.
- Make a new field "myPopUpField" and put the lines of
your popup-menu in there.
- Resize it so everything fits snuggly.
- In the properties window, make sure the field has a
fixed line height, and fill it in (e.g. 12).
- Also make sure it has list-field behaviour.
- Now set its script to:
on mouseMove pX, pY
put the textHeight of me into tHeight
put pY - (the top of me) + (item 1 of the \
margins of me) into tY
put (tY DIV tHeight) into tLine
if tLine = 0 then put 1 into tLine
do ("set the hilitedLines of me to" && quote & \
tLine & quote)
end mouseMove
on mouseLeave
hide me
end mouseLeave
on mouseUp
-- check the hilitedLines prop and do things
-- ...
-- hide the field after you're done handling it
hide me
end mouseUp
- To make it all work, set the script of the button
where you want the user to mouse over, to:
on mouseEnter
show field "myPopUpField"
end mouseEnter
on mouseLeave
if the mouseLoc is not within the rect of field \
"myPopUpField" then hide field "myPopUpField"
end mouseLeave
It's an old trick revamped for RunRev ; but it's a
great workaround for the popup command.
Hope this helped,
Jan Schenkel.
=====
"As we grow older, we grow both wiser and more foolish at the same time." (La Rochefoucauld)
__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com
More information about the use-livecode
mailing list