Why I asked (was: How might I set the cursorpoint? )

Bert Freudenberg bert at impara.de
Fri Jan 28 22:18:14 UTC 2005


Am 28.01.2005 um 00:44 schrieb Tim Rowledge:

> Bert Freudenberg <bert at impara.de> wrote:
>
>> Anyway, here's what we actually needed: raw mouse delta events, that
>> is, a relative movement of the mouse that should not move the pointer
>> (we hide it anyway) and which is not restricted by the screen extent.
>> This is necessary for 3D navigation where a horizontal mouse movement
>> should result in a 360 degrees or more turn.
> I'm puzzled why there's a problem. I assume that the user drags across
> the desktop (physical that is), picks up the mouse and drags some
> more... ah, now if the OS imposes some restriction on the range of
> values available there would be a point where it just butts up against
> the 'edge' or does something else annoying. And in fact Squeak imposes
> a  16bit value limit if you use the old primitive mouse point call and
> it looks like the win32 vm has a 16bit limit in the event stuff.
>
> Interesting problem :-)

Right on.

The problem is that in common UIs we only get the position of the mouse 
pointer in a mouse move event. I know for sure in X11 and Windows, I 
suspect it's the same for OSX, too. When you reach the screen border no 
events are reported anymore. One has to resort to low-level libraries 
to access raw mouse data (the XInput extension on X, DirectInput on 
Windows, ...). I'm not quite sure where to stuff this - maybe a new 
ExtendedInputPlugin, which might provide access to all user interface 
devices, similar in spirit to XInput?

- Bert -




More information about the Squeak-dev mailing list