Adrian Page adrian at
Thu Apr 1 17:52:30 CEST 2004

At the moment we have separate event handlers for mice and tablets which 
leads to some duplication of code and a need to write two lots of code for 
each tool. How about we replace them by a single handler that takes events 
with pressure and tilts, and have the mouse just set these to 
PRESSURE_DEFAULT and 0, 0? We could replace

mousePress(QMouseEvent *)
mouseMove(QMouseEvent *)
mouseRelease(QMouseEvent *)
tabletEvent(QTabletEvent *)


buttonPress(KisButtonPressEvent *)
move(KisMoveEvent *)
buttonRelease(KisButtonReleaseEvent *) 

KisxxxEvent can have a member that specifies the input device as mouse, 
stylus, eraser, etc., for things that really need to know, otherwise a mouse 
is effectively a tablet device with fixed pressure and tilt. I've tried this 
with the brush and line tools and it works ok.

These new event classes could also use floating point for coordinates, which 
is needed in order to use the full resolution of the tablets. I would also 
suggest that pressure becomes a floating point value that goes from 0 to 1, 
as this lets us use the resolution of the device without needing to hold its 
range. I've got the code for extracting all of this data from X working 
and pretty much ready to go in.


More information about the kimageshop mailing list