> Galaxy always shows the object name and path of the object it is hovering above. I think mousemove may be part of it.

This is an interesting topic to me. One that doesn't necessarily deal with Sarah's original question, but for the sake of accuracy--and possible interest--I want to report how Galaxy has has in the past and is presently figuring out "what object is beneath the pointer?"

The "cursory" inspection that Galaxy 1.5 has done to detect what object you're "over" came from Galaxy's "pinging" or sending out periodic messages constantly. Why not just use mouseMove? We pinged so that Galaxy could also detect when you were above the title bar of a stack and then report the stack name and path in the status fields of Galaxy Bar. The mouseMove tracking would not report when the pointer was in the title bar of a stack.

We also used the "ping method" so users could hold down command + option to then edit of the script of an object. This is only needed because Rev running on the Mac cannot detect the depression of the modifier keys (command, option, shift, control) without also depressing a "typeable" key. But even on Windows, it is sometimes difficult to get Revolution to report a keydown if there isn't an editable field around in an open stack.

You'll notice I am using the past tense in describing the ping method of object inspection. We switched over to a new approach to solving this problem because "pinging" was very inefficient, especially on older, slower machines.

The more recent versions of Galaxy 1.5 use the "pepper ping" approach. With this method, cursory and in-depth inspection occurs only when the mouse is moving AND up to 5 seconds after the mouse stops moving. When the mouse stops moving, Galaxy "peppers" the object beneath the pointer with a series of pings (send "glxInspectObject" in 250 millisecs) over a period of 5 seconds to see if you're going to hold down some modifier keys and also in case you moved the pointer to the title bar of a stack.

How does one detect if the mouse has stopped moving? By canceling messages! (See script below.)

The "pepper" method (invented after drinking a Dr. Pepper soft drink?) results is far less system activity, near instant reporting of the object name and path in Galaxy Bar, and very snappy in-depth inspection that leads to editing the object. The only time a veteran user of Galaxy might notice our change in methods is when using no- click inspection to edit the script of an object, and mouse has been stationary for longer than 5 seconds--something that doesn't seem to happen as often as one would think.

Here is the crucial code from our front script (distilled for our purposes here) that does does the pepper ping thing:

on mouseMove theH,theV
    put the cGlxInspect of stack "revGalaxy inspector" into doInspect
    if doInspect is true then
        glxSendStaggeredInspectMsg
    end IF
    pass mouseMove
end mouseMove

on glxSendStaggeredInspectMsg
    -- get rid of lingering messages for efficiency...
    -- and to detect if mouse has stopped moving:
    glxCancelPendingInspectMsgs
    -- respond right away:
    send "glxInspectObject" to me in 10 millisecs
    -- begin the "peppering":
    put 0 into theNoMillisecs
    put 250 into theInterval
    repeat for 19
        add theInterval to theNoMillisecs
        send "glxInspectObject" to me in theNoMillisecs millisecs
    end repeat
end glxSendStaggeredInspectMsg

on glxCancelPendingInspectMsgs
    -- luckily, Rev does all this very fast, indeed:
    put the pendingmessages into thePendingMessages
    filter thePendingMessages with "*,glxScriptEdit,*"
    repeat for each line thePendingMessage in thePendingMessages
        -- use token and don't worry about itemDel:
        put token 1 of thePendingMessage into theMsgID
        cancel theMsgID
    end repeat
end glxCancelPendingInspectMsgs

on glxInspectObject
    -- get long id of object, even if pointer is in title bar:
    put glxGetObjectBeneathPointer() into theObjectID
    edit the script of theObjectID
end glxInspectObject

Best,

Jerry Daniels

Makers of Galaxy 1.5
http://www.daniels-mara.com/new_in_galaxy_1_5.htm



On Mar 17, 2007, at 11:03 PM, Stephen Barncard wrote:

Jerry figured it out a while ago -- Galaxy always shows the object name and path of the object it is hovering above. I think mousemove may be part of it.

from the docs: "Sent periodically while the mouse button is being held down."



this gets close to what you want I think.

ON mouseMove
         put the target
END mouseMove



It still seems odd that I can't get the data I need without having to do this.

Cheers,
Sarah


--


stephen barncard
s a n  f r a n c i s c o
- - -  - - - - - - - - -


_______________________________________________
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

Reply via email to