Peter ,
Neat. That works really well. Alas, the stack I'm needing this for
has a custom window shape and needs drag regions and images in
buttons that are up against or overlapping the edge of the card, thus
providing a path for the mouse to "escape." It is probably possible
to rework my use of buttons but the lost convenience is too great.
Sigh.
-Scott
On Aug 17, 2006, at 3:32 PM, Peter T. Evensen wrote:
Actually, if you put the following in the card or stack and do
you're constraining, it should work:
on mouseLeave
if the target is me then
--- constrain here
end if
end mouseLeave
The issue is, if you put this in the card or stack script, and a
control doesn't trap mouseLeave, the control will pass it's
mouseLeave up to the stack or card.
I did a test with this in the card script with a button on it, and
only got "mouse left" when I moved outside the window, and not when
I moved over a control in the window:
on mouseLeave
if the target is me then put "Mouse Left"
end mouseLeave
on mouseEnter
if the target is me then put "mouse entered"
end mouseEnter
At 05:13 PM 8/17/2006, you wrote:
Ah, trapping the mouseLeave is much more elegant from a "number-
of- messages-needed" standpoint. I just tried it. Unfortunately,
in my
situation, because a mouseLeave object only works for the portion
that is not covered by another object (and it can't be transparent)
this makes it awkward to use any controls underneath.
On Aug 17, 2006, at 1:20 PM, Peter T. Evensen wrote:
Perhaps you could just create an object and trap the mouseLeave
message and move the pointer in that?
At 03:14 PM 8/17/2006, you wrote:
I found that using a "send in time" structure to check the mouseLoc
rather than waiting for the mouseMove message was slightly more
reliable (OSX) and better kept it from going outside the bounding
area.
on MouseTrap
-- keep the mouse pointer inside the window
if the optionkey is NOT "down" then -- but overide this
behavior
with the "optionKey"
put item 1 of globalLoc(the mouseLoc) into x
put item 2 of globalLoc(the mouseLoc) into y
put the top of this stack into tTopEdge
put the bottom of this stack into tBottomEdge
put the right of this stack into tRightEdge
put the left of this stack into tLeftEdge
if x < tLeftEdge then put tLeftEdge +1 into x
if x > tRightEdge then put tRightEdge -1 into x
if y < tTopEdge then put tTopEdge +1 into y
if y > tBottomEdge then put tBottomEdge-1 into y
set the screenmouseloc to x,y
end if
send MouseTrap to me in 40 millisec
end MouseTrap
-Scott Morrow
Elementary Software
(Now with 20% less chalk dust !)
web http://elementarysoftware.com/
email [EMAIL PROTECTED]
-----------------------------------------------------------------
On Aug 17, 2006, at 8:40 AM, Howard Bornstein wrote:
This script seems to work with adequate performance:
on mousemove mh,mv
if the hilite of btn "constrain" is true then
if mh <= the left of fld "container" then
set the screenmouseloc to the globalloc of (the left of fld
"container", mv)
end if
if mh >= the right of fld "container" then
set the screenmouseloc to the globalloc of (the right of fld
"container", mv)
end if
if mv <= the top of fld "container" then
set the screenmouseloc to the globalloc of (mh,the top of fld
"container")
end if
if mv >= the bottom of fld "container" then
set the screenmouseloc to the globalloc of (mh,the bottom of
fld
"container")
end if
end if
end mousemove
Note two things:
1) The button "Constrain" needs to be within the field "Container"
or you'll
never be able to get out. :-)
2) It is possible to move the mouse out of the rect for brief
moments, but
then it pops back into the rectangle. I'm assuming it's a
function of
slipping out between a mousemove scan.
--
Regards,
Howard Bornstein
-----------------------
www.designeq.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
Peter T. Evensen
http://www.PetersRoadToHealth.com
314-629-5248 or 888-682-4588
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
Peter T. Evensen
http://www.PetersRoadToHealth.com
314-629-5248 or 888-682-4588
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution