From 8be3963aa01ea84cdef6878e5865d5a720ab077b Mon Sep 17 00:00:00 2001 From: marynate Date: Fri, 2 May 2014 19:39:12 +0800 Subject: [PATCH] Add pan mode in 2d editor --- tools/editor/icons/icon_tool_pan.png | Bin 0 -> 1555 bytes .../editor/plugins/canvas_item_editor_plugin.cpp | 15 ++++++++++++--- tools/editor/plugins/canvas_item_editor_plugin.h | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 tools/editor/icons/icon_tool_pan.png diff --git a/tools/editor/icons/icon_tool_pan.png b/tools/editor/icons/icon_tool_pan.png new file mode 100644 index 0000000000000000000000000000000000000000..5c078a7b1cf033ae4fb93c0a35039daa3fa70d52 GIT binary patch literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFsEgPM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTcwn`GuBNuFf>#! zGt)CPF*P$Y)KM@pFf`IPFw!?L(={})GBvX@GFN~CB|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9X%D*TxJu@#c$0a|xG&eP`#M8xAsUo*P zFC{a@%G|}+)x^@o$<@@w(AC(`(9zMw*vZ(y+0op|#MQ{s4Q2*5y#{W^7KScn7A}Ua z7KVnd#!k+bj!uS-CXSXa&L#$C1~9#zdBr7(dC93Tdowdrte|?$@#?j5E=o--$uA1Y z&(DFSfPjqrlKkR~`~n5%U^4}c@XWlF{PJQ=Q1pPq-pVDlD6=dz#jPkmR{7jCPQgYWlsJ$Q3rr};#SO#+r)y9ew^Kl5p47Y)Tcsi;dpncu%dapn zFgbg=IEGZ*3YomSJJ?a=*mJ+Uyf}eR3==gXZg6yMYcdnuwn0EgM{MF><}E_32c0HF zbhkFO_Lk)(W@e`(&W=689+kUQLGhu}z4z1i=kE!Bbl~LNnZ^5#&zV`V`s%41zO}aJ zjju%+%k^h(zWK&WZ~E?IcMP`gd%u3#>7{`yj^#D6&N=_wU*Tqyj+oL7wN(tJ^>z|G zb>0bkm!nZQ5}hq{x0!uH>{Z~CxLw%2Xh?YCC!B4;d)g?j{Ruv&0DcL37_p!LopRD?_w&L+%BCSar7T+6`ZuN$UZpJ_Us z`RRuLmUU~xgdbP0 Hl+XkKXQ(a~ literal 0 HcmV?d00001 diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp index 01ca5a1135..880cc9c147 100644 --- a/tools/editor/plugins/canvas_item_editor_plugin.cpp +++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -54,7 +54,7 @@ void CanvasItemEditor::_unhandled_key_input(const InputEvent& p_ev) { void CanvasItemEditor::_tool_select(int p_index) { - ToolButton *tb[TOOL_MAX]={select_button,move_button,rotate_button}; + ToolButton *tb[TOOL_MAX]={select_button,move_button,rotate_button,pan_button}; for(int i=0;iset_pressed(i==p_index); @@ -665,7 +665,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { //if (!canvas_items.size()) // return; - if (b.button_index!=BUTTON_LEFT || Input::get_singleton()->is_key_pressed(KEY_SPACE)) + if (tool==TOOL_PAN || b.button_index!=BUTTON_LEFT || Input::get_singleton()->is_key_pressed(KEY_SPACE)) return; if (!b.pressed) { @@ -962,7 +962,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (drag==DRAG_NONE) { - if (m.button_mask&BUTTON_MASK_MIDDLE || (m.button_mask&BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE))) { + if ( (m.button_mask&BUTTON_MASK_LEFT && tool == TOOL_PAN) || m.button_mask&BUTTON_MASK_MIDDLE || (m.button_mask&BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE))) { h_scroll->set_val( h_scroll->get_val() - m.relative_x/zoom); v_scroll->set_val( v_scroll->get_val() - m.relative_y/zoom); @@ -1406,6 +1406,7 @@ void CanvasItemEditor::_notification(int p_what) { select_button->set_icon( get_icon("ToolSelect","EditorIcons")); move_button->set_icon( get_icon("ToolMove","EditorIcons")); rotate_button->set_icon( get_icon("ToolRotate","EditorIcons")); + pan_button->set_icon( get_icon("ToolPan", "EditorIcons")); select_handle=get_icon("EditorHandle","EditorIcons"); lock_button->set_icon(get_icon("Lock","EditorIcons")); unlock_button->set_icon(get_icon("Unlock","EditorIcons")); @@ -2218,6 +2219,14 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { hb->add_child(memnew(VSeparator)); + pan_button = memnew( ToolButton ); + pan_button->set_toggle_mode(true); + hb->add_child(pan_button); + pan_button->connect("pressed",this,"_tool_select",make_binds(TOOL_PAN)); + pan_button->set_tooltip("Pan Mode"); + + hb->add_child(memnew(VSeparator)); + lock_button = memnew( ToolButton ); hb->add_child(lock_button); diff --git a/tools/editor/plugins/canvas_item_editor_plugin.h b/tools/editor/plugins/canvas_item_editor_plugin.h index 256847e8ef..3d9b50c01c 100644 --- a/tools/editor/plugins/canvas_item_editor_plugin.h +++ b/tools/editor/plugins/canvas_item_editor_plugin.h @@ -69,6 +69,7 @@ class CanvasItemEditor : public VBoxContainer { TOOL_SELECT, TOOL_MOVE, TOOL_ROTATE, + TOOL_PAN, TOOL_MAX }; @@ -178,6 +179,8 @@ class CanvasItemEditor : public VBoxContainer { ToolButton *move_button; ToolButton *rotate_button; + ToolButton *pan_button; + ToolButton *lock_button; ToolButton *unlock_button;