[GRASS-dev] Re: wxGUI: MapDisplay mouse events

Wenzeslaus wenzeslaus at gmail.com
Tue Aug 16 13:44:11 EDT 2011


Hi list,

I have suggestion about processing mouse events from MapDisplay
(BufferedWindow, GLWindow). In mapdisplay_mouse_events.diff is
implementation of API which should be enough generic to be used by
more than one module.

You can bind your own handler to MapDisplay (MapWindow to be precise)
MouseEvents by public API. It is no longer necessary to edit code in
*mapdisp*.py files. (It is the main advantage.)

I have attached test code (mapdisplay_mouse_events_example.diff). It
gets coordinates from MapDisplay. I think it is
something like Margarita needs in her rstream module. Example is also
included in doc string.

Suggested code works with both 2D (BufferedWindow) and 3D (GLWindow)
and with multiple MapDisplays.  It is also possible to override
current cursor.

It doesn't work with Digitizer (VDigitWindow) (no errors but functions
report unsuccessful binds).

The handler can be also unbound with this API. However all other
handlers will be unbounded (and only MapWindow handlers will be
bounded again). Unbind only one handler is not possible in wxPython.

I'm not sure how to handle standard behaviour of mouse events in
MapWindow and its subclasses. Now, functions connected with
mouse['use'] are disabled by setting mouse['use'] to other value. But
there are also other aproaches. Functions can be disabled in wxPython
way by Unbind() or we can let functions to do what they do usualy, but
it will be very confusing, I think.

Vasek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mapdisplay_mouse_events.diff
Type: text/x-patch
Size: 5626 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-dev/attachments/20110816/da6ba927/mapdisplay_mouse_events.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mapdisplay_mouse_events_example.diff
Type: text/x-patch
Size: 2018 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-dev/attachments/20110816/da6ba927/mapdisplay_mouse_events_example.bin


More information about the grass-dev mailing list