summaryrefslogtreecommitdiffstats
path: root/src/tweak-context.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-07-14 21:09:41 +0000
committerMarkus Engel <markus.engel@tum.de>2013-07-14 21:09:41 +0000
commitd32efb61f1c2c18d1018e510bbe9bafc04a03905 (patch)
treeb447bf9856baf1cf485e38c4ce55edb27285129e /src/tweak-context.cpp
parentMerged from trunk (r12305) (diff)
parentMinor C++ish refactoring pass. (diff)
downloadinkscape-d32efb61f1c2c18d1018e510bbe9bafc04a03905.tar.gz
inkscape-d32efb61f1c2c18d1018e510bbe9bafc04a03905.zip
Merged from trunk (r12419).
(bzr r11608.1.107)
Diffstat (limited to 'src/tweak-context.cpp')
-rw-r--r--src/tweak-context.cpp107
1 files changed, 66 insertions, 41 deletions
diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp
index d1cf8bbf9..4e842abbb 100644
--- a/src/tweak-context.cpp
+++ b/src/tweak-context.cpp
@@ -32,6 +32,15 @@
#include "desktop-style.h"
#include "message-context.h"
#include "pixmaps/cursor-tweak-move.xpm"
+#include "pixmaps/cursor-tweak-move-in.xpm"
+#include "pixmaps/cursor-tweak-move-out.xpm"
+#include "pixmaps/cursor-tweak-move-jitter.xpm"
+#include "pixmaps/cursor-tweak-scale-up.xpm"
+#include "pixmaps/cursor-tweak-scale-down.xpm"
+#include "pixmaps/cursor-tweak-rotate-clockwise.xpm"
+#include "pixmaps/cursor-tweak-rotate-counterclockwise.xpm"
+#include "pixmaps/cursor-tweak-more.xpm"
+#include "pixmaps/cursor-tweak-less.xpm"
#include "pixmaps/cursor-thin.xpm"
#include "pixmaps/cursor-thicken.xpm"
#include "pixmaps/cursor-attract.xpm"
@@ -178,23 +187,39 @@ sp_tweak_update_cursor (SPTweakContext *tc, bool with_shift)
break;
case TWEAK_MODE_MOVE_IN_OUT:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag or click to <b>move in</b>; with Shift to <b>move out</b>."), sel_message);
- event_context->cursor_shape = cursor_tweak_move_xpm;
+ if (with_shift) {
+ event_context->cursor_shape = cursor_tweak_move_out_xpm;
+ } else {
+ event_context->cursor_shape = cursor_tweak_move_in_xpm;
+ }
break;
case TWEAK_MODE_MOVE_JITTER:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag or click to <b>move randomly</b>."), sel_message);
- event_context->cursor_shape = cursor_tweak_move_xpm;
+ event_context->cursor_shape = cursor_tweak_move_jitter_xpm;
break;
case TWEAK_MODE_SCALE:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag or click to <b>scale down</b>; with Shift to <b>scale up</b>."), sel_message);
- event_context->cursor_shape = cursor_tweak_move_xpm;
+ if (with_shift) {
+ event_context->cursor_shape = cursor_tweak_scale_up_xpm;
+ } else {
+ event_context->cursor_shape = cursor_tweak_scale_down_xpm;
+ }
break;
case TWEAK_MODE_ROTATE:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag or click to <b>rotate clockwise</b>; with Shift, <b>counterclockwise</b>."), sel_message);
- event_context->cursor_shape = cursor_tweak_move_xpm;
+ if (with_shift) {
+ event_context->cursor_shape = cursor_tweak_rotate_counterclockwise_xpm;
+ } else {
+ event_context->cursor_shape = cursor_tweak_rotate_clockwise_xpm;
+ }
break;
case TWEAK_MODE_MORELESS:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag or click to <b>duplicate</b>; with Shift, <b>delete</b>."), sel_message);
- event_context->cursor_shape = cursor_tweak_move_xpm;
+ if (with_shift) {
+ event_context->cursor_shape = cursor_tweak_less_xpm;
+ } else {
+ event_context->cursor_shape = cursor_tweak_more_xpm;
+ }
break;
case TWEAK_MODE_PUSH:
tc->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("%s. Drag to <b>push paths</b>."), sel_message);
@@ -1207,7 +1232,7 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
if (!this->has_dilated) {
// if we did not rub, do a light tap
this->pressure = 0.03;
- sp_tweak_dilate (this, motion_w, desktop->dt2doc(motion_dt), Geom::Point(0,0), MOD__SHIFT);
+ sp_tweak_dilate (this, motion_w, desktop->dt2doc(motion_dt), Geom::Point(0,0), MOD__SHIFT(event));
}
this->is_dilating = false;
this->has_dilated = false;
@@ -1274,24 +1299,24 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
case GDK_KEY_m:
case GDK_KEY_M:
case GDK_KEY_0:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_MOVE, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_MOVE, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_i:
case GDK_KEY_I:
case GDK_KEY_1:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_MOVE_IN_OUT, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_MOVE_IN_OUT, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_z:
case GDK_KEY_Z:
case GDK_KEY_2:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_MOVE_JITTER, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_MOVE_JITTER, MOD__SHIFT(event));
ret = TRUE;
}
break;
@@ -1300,84 +1325,84 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
case GDK_KEY_greater:
case GDK_KEY_period:
case GDK_KEY_3:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_SCALE, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_SCALE, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_bracketright:
case GDK_KEY_bracketleft:
case GDK_KEY_4:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_ROTATE, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_ROTATE, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_d:
case GDK_KEY_D:
case GDK_KEY_5:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_MORELESS, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_MORELESS, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_p:
case GDK_KEY_P:
case GDK_KEY_6:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_PUSH, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_PUSH, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_s:
case GDK_KEY_S:
case GDK_KEY_7:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_a:
case GDK_KEY_A:
case GDK_KEY_8:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_ATTRACT_REPEL, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_ATTRACT_REPEL, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_r:
case GDK_KEY_R:
case GDK_KEY_9:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_ROUGHEN, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_ROUGHEN, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_c:
case GDK_KEY_C:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_COLORPAINT, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_COLORPAINT, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_j:
case GDK_KEY_J:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_COLORJITTER, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_COLORJITTER, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_b:
case GDK_KEY_B:
- if (MOD__SHIFT_ONLY) {
- sp_tweak_switch_mode(this, TWEAK_MODE_BLUR, MOD__SHIFT);
+ if (MOD__SHIFT_ONLY(event)) {
+ sp_tweak_switch_mode(this, TWEAK_MODE_BLUR, MOD__SHIFT(event));
ret = TRUE;
}
break;
case GDK_KEY_Up:
case GDK_KEY_KP_Up:
- if (!MOD__CTRL_ONLY) {
+ if (!MOD__CTRL_ONLY(event)) {
this->force += 0.05;
if (this->force > 1.0) {
this->force = 1.0;
@@ -1388,7 +1413,7 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
break;
case GDK_KEY_Down:
case GDK_KEY_KP_Down:
- if (!MOD__CTRL_ONLY) {
+ if (!MOD__CTRL_ONLY(event)) {
this->force -= 0.05;
if (this->force < 0.0) {
this->force = 0.0;
@@ -1399,7 +1424,7 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
break;
case GDK_KEY_Right:
case GDK_KEY_KP_Right:
- if (!MOD__CTRL_ONLY) {
+ if (!MOD__CTRL_ONLY(event)) {
this->width += 0.01;
if (this->width > 1.0) {
this->width = 1.0;
@@ -1411,7 +1436,7 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
break;
case GDK_KEY_Left:
case GDK_KEY_KP_Left:
- if (!MOD__CTRL_ONLY) {
+ if (!MOD__CTRL_ONLY(event)) {
this->width -= 0.01;
if (this->width < 0.01) {
this->width = 0.01;
@@ -1437,7 +1462,7 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
break;
case GDK_KEY_x:
case GDK_KEY_X:
- if (MOD__ALT_ONLY) {
+ if (MOD__ALT_ONLY(event)) {
desktop->setToolboxFocusTo ("altx-tweak");
ret = TRUE;
}
@@ -1450,12 +1475,12 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
case GDK_KEY_Control_L:
case GDK_KEY_Control_R:
- sp_tweak_switch_mode_temporarily(this, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT);
+ sp_tweak_switch_mode_temporarily(this, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT(event));
break;
case GDK_KEY_Delete:
case GDK_KEY_KP_Delete:
case GDK_KEY_BackSpace:
- ret = this->deleteSelectedDrag(MOD__CTRL_ONLY);
+ ret = this->deleteSelectedDrag(MOD__CTRL_ONLY(event));
break;
default:
@@ -1472,11 +1497,11 @@ gint SPTweakContext::root_handler(GdkEvent* event) {
break;
case GDK_KEY_Control_L:
case GDK_KEY_Control_R:
- sp_tweak_switch_mode (this, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT);
+ sp_tweak_switch_mode (this, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT(event));
this->_message_context->clear();
break;
default:
- sp_tweak_switch_mode (this, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT);
+ sp_tweak_switch_mode (this, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT(event));
break;
}
}