Björnke von Gierke wrote:
A completely different way is to not use grab, but a repeat loop ("repeat until the mouse is up") in the mousedown handler, that set's the location of your dragged object (can be multiple). Advantages are very smooth animation, and more control about what is gonna happen during the drag. The main disadvantage is a hellish processor load, and the mouse is still down, prohibiting almost all mouse messages.

The difficulty with using "repeat until the mouse is up" is that it eats up a lot of processor cycles with constant polling of the event queue:
<http://lists.runrev.com/pipermail/use-revolution/2008-August/113401.html>

It's generally considered better practice to use these four handlers for custom dragging operations:

mouseDown -- to set a flag
mouseMove -- checks the flag and does the work
mouseUp -- clears the flag
mouseRelease -- also clears the flag

The problem with this approach is that it's both unintuitive and cumbersome to write. It works great, but until someone comes along and spells it out (or makes a nifty demo like Rossi did) the odds of someone stumbling across that solution on their own is close to nil.

Some years ago I submitted a request to modify mouseStillDown to be sent only when the mouse moves, effectively giving us the same thing as those four handlers but in a more intuitive and simpler form:

<http://quality.runrev.com/qacenter/show_bug.cgi?id=1832>

The specifics of that proposal are probably pretty weak, and could likely benefit from some of you chiming in with better details of the implementation.

But in one form or another, it would be VERY useful to be able to do custom drag operations with a single handler. I don't particularly care what form it takes so long as it gets done.

Suggestions?

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.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

Reply via email to