summaryrefslogtreecommitdiff
path: root/tools/editor
diff options
context:
space:
mode:
authorCarl Olsson <carl.olsson@gmail.com>2015-02-02 22:28:10 +1000
committerCarl Olsson <carl.olsson@gmail.com>2015-02-02 22:28:10 +1000
commit52700563bc35f7dcfdae7650a40d6249252b64d8 (patch)
treeb959e10fae1f2cb0dfa63ca793eba4f3a8ff48bc /tools/editor
parentee44664b2a14c0878f2e137dc4b6a1fbf4013eab (diff)
Finish GUI for tile transform.
Diffstat (limited to 'tools/editor')
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.cpp46
1 files changed, 44 insertions, 2 deletions
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index 34270d5076..ba23c018cc 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -734,7 +734,48 @@ void TileMapEditor::_update_transform_buttons(Object *p_button) {
ERR_FAIL_NULL(p_button);
ToolButton *b=p_button->cast_to<ToolButton>();
ERR_FAIL_COND(!b);
-
+
+ mirror_x->set_block_signals(true);
+ mirror_y->set_block_signals(true);
+ transpose->set_block_signals(true);
+ rotate_0->set_block_signals(true);
+ rotate_90->set_block_signals(true);
+ rotate_180->set_block_signals(true);
+ rotate_270->set_block_signals(true);
+
+ if (b == rotate_0) {
+ mirror_x->set_pressed(false);
+ mirror_y->set_pressed(false);
+ transpose->set_pressed(false);
+ }
+ else if (b == rotate_90) {
+ mirror_x->set_pressed(false);
+ mirror_y->set_pressed(true);
+ transpose->set_pressed(true);
+ }
+ else if (b == rotate_180) {
+ mirror_x->set_pressed(true);
+ mirror_y->set_pressed(true);
+ transpose->set_pressed(false);
+ }
+ else if (b == rotate_270) {
+ mirror_x->set_pressed(true);
+ mirror_y->set_pressed(false);
+ transpose->set_pressed(true);
+ }
+
+ rotate_0->set_pressed(!mirror_x->is_pressed() && !mirror_y->is_pressed() && !transpose->is_pressed());
+ rotate_90->set_pressed(!mirror_x->is_pressed() && mirror_y->is_pressed() && transpose->is_pressed());
+ rotate_180->set_pressed(mirror_x->is_pressed() && mirror_y->is_pressed() && !transpose->is_pressed());
+ rotate_270->set_pressed(mirror_x->is_pressed() && !mirror_y->is_pressed() && transpose->is_pressed());
+
+ mirror_x->set_block_signals(false);
+ mirror_y->set_block_signals(false);
+ transpose->set_block_signals(false);
+ rotate_0->set_block_signals(false);
+ rotate_90->set_block_signals(false);
+ rotate_180->set_block_signals(false);
+ rotate_270->set_block_signals(false);
}
TileMapEditor::TileMapEditor(EditorNode *p_editor) {
@@ -802,7 +843,8 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
rotate_270->connect("pressed", this, "_update_transform_buttons", make_binds(rotate_270));
canvas_item_editor_hb->add_child(rotate_270);
canvas_item_editor_hb->hide();
-
+
+ rotate_0->set_pressed(true);
tool=TOOL_NONE;
selection_active=false;
mouse_over=false;