Improve button mapping, spring-loaded modes
authorAndrew Chadwick <andrewc-git@piffle.org>
Fri, 24 Aug 2012 12:04:57 +0000 (13:04 +0100)
committerAndrew Chadwick <andrewc-git@piffle.org>
Sat, 17 Nov 2012 22:10:12 +0000 (22:10 +0000)
commit2254739b37ac5adc1f841e80f7d91a428d14f0ad
tree119cde2b176d94e04667cd229ac3b20267e8657f
parent58fd851a0bd12a1650adce884b849767986b31c2
Improve button mapping, spring-loaded modes

New look for the button mapping preferences tab, allowing more actions
to be tied to pointer buttons and combinations of modifier keys. Added
support for more than 3 buttons, allowing Wacom pad buttons to be
assigned to MyPaint functions. Actions can now have more than one button
combination pointed at them.

Removed all the hardcoded button mappings. Everything is now managed in
user preferences. Space is now a fake Button2, and responds to the same
bindings.

Updated button mapping defaults: Ctrl equivalents for all Alt+button
combos. Popup menu is now on Button3 where it belongs - my personal
preference because I don't use colour history, but it can be set back to
the old color history behaviour in preferences.

Some interaction modes are now spring-loaded, which means that if
they're started with button-modifier combinations, they cancel when the
modifiers and button are released.

Mode classes now use cooperative supercalls, to allow common code to be
shared via mixins. More modes are now zoomable and rotatable with the
mouse wheel, but support's still lacking for mode-switching via the
button map and also modifier+drag translations, rotations and zooms in
some of the fancier modes.
gui/application.py
gui/buttonmap.py [new file with mode: 0644]
gui/canvasevent.py
gui/framewindow.py
gui/linemode.py
gui/preferenceswindow.py