diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-07-14 21:09:41 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-07-14 21:09:41 +0000 |
| commit | d32efb61f1c2c18d1018e510bbe9bafc04a03905 (patch) | |
| tree | b447bf9856baf1cf485e38c4ce55edb27285129e /src/tweak-context.cpp | |
| parent | Merged from trunk (r12305) (diff) | |
| parent | Minor C++ish refactoring pass. (diff) | |
| download | inkscape-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.cpp | 107 |
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; } } |
