1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-19 14:31:59 +00:00

Display draggable anchors only if the parent is not a container

This commit is contained in:
Gilles Roudiere
2017-08-19 18:29:37 +02:00
parent 100c788884
commit 69091d4035
2 changed files with 103 additions and 117 deletions

View File

@@ -304,6 +304,7 @@ Dictionary CanvasItemEditor::get_state() const {
state["snap_rotation_step"] = snap_rotation_step; state["snap_rotation_step"] = snap_rotation_step;
state["snap_grid"] = snap_grid; state["snap_grid"] = snap_grid;
state["snap_show_grid"] = snap_show_grid; state["snap_show_grid"] = snap_show_grid;
state["show_helpers"] = show_helpers;
state["snap_rotation"] = snap_rotation; state["snap_rotation"] = snap_rotation;
state["snap_relative"] = snap_relative; state["snap_relative"] = snap_relative;
state["snap_pixel"] = snap_pixel; state["snap_pixel"] = snap_pixel;
@@ -352,6 +353,12 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) {
edit_menu->get_popup()->set_item_checked(idx, snap_show_grid); edit_menu->get_popup()->set_item_checked(idx, snap_show_grid);
} }
if (state.has("show_helpers")) {
show_helpers = state["show_helpers"];
int idx = view_menu->get_popup()->get_item_index(SHOW_HELPERS);
view_menu->get_popup()->set_item_checked(idx, show_helpers);
}
if (state.has("snap_rotation")) { if (state.has("snap_rotation")) {
snap_rotation = state["snap_rotation"]; snap_rotation = state["snap_rotation"];
int idx = edit_menu->get_popup()->get_item_index(SNAP_USE_ROTATION); int idx = edit_menu->get_popup()->get_item_index(SNAP_USE_ROTATION);
@@ -924,24 +931,6 @@ void CanvasItemEditor::_snap_changed() {
viewport->update(); viewport->update();
} }
void CanvasItemEditor::_dialog_value_changed(double) {
if (updating_value_dialog)
return;
switch (last_option) {
case ZOOM_SET: {
zoom = dialog_val->get_value() / 100.0;
_update_scroll(0);
viewport->update();
} break;
default: {}
}
}
void CanvasItemEditor::_selection_result_pressed(int p_result) { void CanvasItemEditor::_selection_result_pressed(int p_result) {
if (selection_results.size() <= p_result) if (selection_results.size() <= p_result)
@@ -1440,7 +1429,8 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
} }
// Drag anchor handles // Drag anchor handles
if (Object::cast_to<Control>(canvas_item)) { Control *control = Object::cast_to<Control>(canvas_item);
if (control && show_helpers && !Object::cast_to<Container>(control->get_parent())) {
drag = _get_anchor_handle_drag_type(click, drag_point_from); drag = _get_anchor_handle_drag_type(click, drag_point_from);
if (drag != DRAG_NONE) { if (drag != DRAG_NONE) {
drag_from = transform.affine_inverse().xform(click); drag_from = transform.affine_inverse().xform(click);
@@ -2065,7 +2055,8 @@ void CanvasItemEditor::_viewport_draw() {
can_move_pivot = true; can_move_pivot = true;
pivot_found = true; pivot_found = true;
if (tool == TOOL_SELECT) { if (tool == TOOL_SELECT && show_helpers && !Object::cast_to<Container>(control->get_parent())) {
// Draw the helpers
Color color_base = Color(0.8, 0.8, 0.8, 0.5); Color color_base = Color(0.8, 0.8, 0.8, 0.5);
float anchors_values[4]; float anchors_values[4];
@@ -2487,6 +2478,10 @@ void CanvasItemEditor::_notification(int p_what) {
ungroup_button->set_icon(get_icon("Ungroup", "EditorIcons")); ungroup_button->set_icon(get_icon("Ungroup", "EditorIcons"));
key_insert_button->set_icon(get_icon("Key", "EditorIcons")); key_insert_button->set_icon(get_icon("Key", "EditorIcons"));
zoom_minus->set_icon(get_icon("ZoomLess", "EditorIcons"));
zoom_reset->set_icon(get_icon("ZoomReset", "EditorIcons"));
zoom_plus->set_icon(get_icon("ZoomMore", "EditorIcons"));
anchor_menu->set_icon(get_icon("Anchor", "EditorIcons")); anchor_menu->set_icon(get_icon("Anchor", "EditorIcons"));
PopupMenu *p = anchor_menu->get_popup(); PopupMenu *p = anchor_menu->get_popup();
@@ -2772,6 +2767,30 @@ void CanvasItemEditor::_set_full_rect() {
undo_redo->commit_action(); undo_redo->commit_action();
} }
void CanvasItemEditor::_zoom_minus() {
if (zoom < MIN_ZOOM)
return;
zoom /= 2.0;
_update_scroll(0);
viewport->update();
}
void CanvasItemEditor::_zoom_reset() {
zoom = 1;
_update_scroll(0);
viewport->update();
}
void CanvasItemEditor::_zoom_plus() {
if (zoom > MAX_ZOOM)
return;
zoom *= 2.0;
_update_scroll(0);
viewport->update();
}
void CanvasItemEditor::_popup_callback(int p_op) { void CanvasItemEditor::_popup_callback(int p_op) {
last_option = MenuOption(p_op); last_option = MenuOption(p_op);
@@ -2815,45 +2834,13 @@ void CanvasItemEditor::_popup_callback(int p_op) {
skeleton_menu->set_item_checked(idx, skeleton_show_bones); skeleton_menu->set_item_checked(idx, skeleton_show_bones);
viewport->update(); viewport->update();
} break; } break;
case ZOOM_IN: { case SHOW_HELPERS: {
if (zoom > MAX_ZOOM) show_helpers = !show_helpers;
return; int idx = view_menu->get_popup()->get_item_index(SHOW_HELPERS);
zoom = zoom * (1.0 / 0.5); view_menu->get_popup()->set_item_checked(idx, show_helpers);
_update_scroll(0);
viewport->update(); viewport->update();
return;
} break; } break;
case ZOOM_OUT: {
if (zoom < MIN_ZOOM)
return;
zoom = zoom * 0.5;
_update_scroll(0);
viewport->update();
return;
} break;
case ZOOM_RESET: {
zoom = 1;
_update_scroll(0);
viewport->update();
return;
} break;
case ZOOM_SET: {
updating_value_dialog = true;
dialog_label->set_text(TTR("Zoom (%):"));
dialog_val->set_min(0.1);
dialog_val->set_step(0.1);
dialog_val->set_max(800);
dialog_val->set_value(zoom * 100);
value_dialog->popup_centered(Size2(200, 85));
updating_value_dialog = false;
} break;
case LOCK_SELECTED: { case LOCK_SELECTED: {
List<Node *> &selection = editor_selection->get_selected_node_list(); List<Node *> &selection = editor_selection->get_selected_node_list();
@@ -3322,9 +3309,11 @@ void CanvasItemEditor::_focus_selection(int p_op) {
void CanvasItemEditor::_bind_methods() { void CanvasItemEditor::_bind_methods() {
ClassDB::bind_method("_zoom_minus", &CanvasItemEditor::_zoom_minus);
ClassDB::bind_method("_zoom_reset", &CanvasItemEditor::_zoom_reset);
ClassDB::bind_method("_zoom_plus", &CanvasItemEditor::_zoom_plus);
ClassDB::bind_method("_update_scroll", &CanvasItemEditor::_update_scroll); ClassDB::bind_method("_update_scroll", &CanvasItemEditor::_update_scroll);
ClassDB::bind_method("_popup_callback", &CanvasItemEditor::_popup_callback); ClassDB::bind_method("_popup_callback", &CanvasItemEditor::_popup_callback);
ClassDB::bind_method("_dialog_value_changed", &CanvasItemEditor::_dialog_value_changed);
ClassDB::bind_method("_get_editor_data", &CanvasItemEditor::_get_editor_data); ClassDB::bind_method("_get_editor_data", &CanvasItemEditor::_get_editor_data);
ClassDB::bind_method("_tool_select", &CanvasItemEditor::_tool_select); ClassDB::bind_method("_tool_select", &CanvasItemEditor::_tool_select);
ClassDB::bind_method("_keying_changed", &CanvasItemEditor::_keying_changed); ClassDB::bind_method("_keying_changed", &CanvasItemEditor::_keying_changed);
@@ -3372,20 +3361,20 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->set_area_as_parent_rect(); hb->set_area_as_parent_rect();
bottom_split = memnew(VSplitContainer); bottom_split = memnew(VSplitContainer);
bottom_split->set_v_size_flags(SIZE_EXPAND_FILL);
add_child(bottom_split); add_child(bottom_split);
bottom_split->set_v_size_flags(SIZE_EXPAND_FILL);
palette_split = memnew(HSplitContainer); palette_split = memnew(HSplitContainer);
palette_split->set_v_size_flags(SIZE_EXPAND_FILL);
bottom_split->add_child(palette_split); bottom_split->add_child(palette_split);
palette_split->set_v_size_flags(SIZE_EXPAND_FILL);
Control *vp_base = memnew(Control); Control *vp_base = memnew(Control);
vp_base->set_v_size_flags(SIZE_EXPAND_FILL);
palette_split->add_child(vp_base); palette_split->add_child(vp_base);
vp_base->set_v_size_flags(SIZE_EXPAND_FILL);
ViewportContainer *vp = memnew(ViewportContainer); ViewportContainer *vp = memnew(ViewportContainer);
vp->set_stretch(true);
vp_base->add_child(vp); vp_base->add_child(vp);
vp->set_stretch(true);
vp->set_area_as_parent_rect(); vp->set_area_as_parent_rect();
vp->add_child(p_editor->get_scene_root()); vp->add_child(p_editor->get_scene_root());
@@ -3393,43 +3382,61 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
vp_base->add_child(viewport); vp_base->add_child(viewport);
viewport->set_area_as_parent_rect(); viewport->set_area_as_parent_rect();
viewport->set_clip_contents(true); viewport->set_clip_contents(true);
viewport->set_focus_mode(FOCUS_ALL);
h_scroll = memnew(HScrollBar);
v_scroll = memnew(VScrollBar);
viewport->add_child(h_scroll);
viewport->add_child(v_scroll);
viewport->connect("draw", this, "_viewport_draw"); viewport->connect("draw", this, "_viewport_draw");
viewport->connect("gui_input", this, "_viewport_gui_input"); viewport->connect("gui_input", this, "_viewport_gui_input");
h_scroll = memnew(HScrollBar);
viewport->add_child(h_scroll);
h_scroll->connect("value_changed", this, "_update_scroll", Vector<Variant>(), Object::CONNECT_DEFERRED); h_scroll->connect("value_changed", this, "_update_scroll", Vector<Variant>(), Object::CONNECT_DEFERRED);
v_scroll->connect("value_changed", this, "_update_scroll", Vector<Variant>(), Object::CONNECT_DEFERRED);
h_scroll->hide(); h_scroll->hide();
v_scroll = memnew(VScrollBar);
viewport->add_child(v_scroll);
v_scroll->connect("value_changed", this, "_update_scroll", Vector<Variant>(), Object::CONNECT_DEFERRED);
v_scroll->hide(); v_scroll->hide();
HBoxContainer *zoom_hb = memnew(HBoxContainer);
vp_base->add_child(zoom_hb);
zoom_hb->set_begin(Point2(5, 5));
zoom_minus = memnew(ToolButton);
zoom_hb->add_child(zoom_minus);
zoom_minus->connect("pressed", this, "_zoom_minus");
zoom_minus->set_focus_mode(FOCUS_NONE);
zoom_reset = memnew(ToolButton);
zoom_hb->add_child(zoom_reset);
zoom_reset->connect("pressed", this, "_zoom_reset");
zoom_reset->set_focus_mode(FOCUS_NONE);
zoom_plus = memnew(ToolButton);
zoom_hb->add_child(zoom_plus);
zoom_plus->connect("pressed", this, "_zoom_plus");
zoom_plus->set_focus_mode(FOCUS_NONE);
updating_scroll = false; updating_scroll = false;
viewport->set_focus_mode(FOCUS_ALL);
handle_len = 10; handle_len = 10;
first_update = true; first_update = true;
select_button = memnew(ToolButton); select_button = memnew(ToolButton);
select_button->set_toggle_mode(true);
hb->add_child(select_button); hb->add_child(select_button);
select_button->set_toggle_mode(true);
select_button->connect("pressed", this, "_tool_select", make_binds(TOOL_SELECT)); select_button->connect("pressed", this, "_tool_select", make_binds(TOOL_SELECT));
select_button->set_pressed(true); select_button->set_pressed(true);
select_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/select_mode", TTR("Select Mode"), KEY_Q)); select_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/select_mode", TTR("Select Mode"), KEY_Q));
select_button->set_tooltip(TTR("Select Mode") + " $sc\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate") + "\n" + TTR("Alt+Drag: Move") + "\n" + TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).") + "\n" + TTR("Alt+RMB: Depth list selection")); select_button->set_tooltip(TTR("Select Mode") + " $sc\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate") + "\n" + TTR("Alt+Drag: Move") + "\n" + TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).") + "\n" + TTR("Alt+RMB: Depth list selection"));
move_button = memnew(ToolButton); move_button = memnew(ToolButton);
move_button->set_toggle_mode(true);
hb->add_child(move_button); hb->add_child(move_button);
move_button->set_toggle_mode(true);
move_button->connect("pressed", this, "_tool_select", make_binds(TOOL_MOVE)); move_button->connect("pressed", this, "_tool_select", make_binds(TOOL_MOVE));
move_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/move_mode", TTR("Move Mode"), KEY_W)); move_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/move_mode", TTR("Move Mode"), KEY_W));
move_button->set_tooltip(TTR("Move Mode")); move_button->set_tooltip(TTR("Move Mode"));
rotate_button = memnew(ToolButton); rotate_button = memnew(ToolButton);
rotate_button->set_toggle_mode(true);
hb->add_child(rotate_button); hb->add_child(rotate_button);
rotate_button->set_toggle_mode(true);
rotate_button->connect("pressed", this, "_tool_select", make_binds(TOOL_ROTATE)); rotate_button->connect("pressed", this, "_tool_select", make_binds(TOOL_ROTATE));
rotate_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/rotate_mode", TTR("Rotate Mode"), KEY_E)); rotate_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/rotate_mode", TTR("Rotate Mode"), KEY_E));
rotate_button->set_tooltip(TTR("Rotate Mode")); rotate_button->set_tooltip(TTR("Rotate Mode"));
@@ -3437,20 +3444,20 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(memnew(VSeparator)); hb->add_child(memnew(VSeparator));
list_select_button = memnew(ToolButton); list_select_button = memnew(ToolButton);
list_select_button->set_toggle_mode(true);
hb->add_child(list_select_button); hb->add_child(list_select_button);
list_select_button->set_toggle_mode(true);
list_select_button->connect("pressed", this, "_tool_select", make_binds(TOOL_LIST_SELECT)); list_select_button->connect("pressed", this, "_tool_select", make_binds(TOOL_LIST_SELECT));
list_select_button->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode).")); list_select_button->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode)."));
pivot_button = memnew(ToolButton); pivot_button = memnew(ToolButton);
pivot_button->set_toggle_mode(true);
hb->add_child(pivot_button); hb->add_child(pivot_button);
pivot_button->set_toggle_mode(true);
pivot_button->connect("pressed", this, "_tool_select", make_binds(TOOL_EDIT_PIVOT)); pivot_button->connect("pressed", this, "_tool_select", make_binds(TOOL_EDIT_PIVOT));
pivot_button->set_tooltip(TTR("Click to change object's rotation pivot.")); pivot_button->set_tooltip(TTR("Click to change object's rotation pivot."));
pan_button = memnew(ToolButton); pan_button = memnew(ToolButton);
pan_button->set_toggle_mode(true);
hb->add_child(pan_button); hb->add_child(pan_button);
pan_button->set_toggle_mode(true);
pan_button->connect("pressed", this, "_tool_select", make_binds(TOOL_PAN)); pan_button->connect("pressed", this, "_tool_select", make_binds(TOOL_PAN));
pan_button->set_tooltip(TTR("Pan Mode")); pan_button->set_tooltip(TTR("Pan Mode"));
@@ -3516,10 +3523,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
p = view_menu->get_popup(); p = view_menu->get_popup();
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_in", TTR("Zoom In")), ZOOM_IN); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_helpers", TTR("Show helpers")), SHOW_HELPERS);
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_out", TTR("Zoom Out")), ZOOM_OUT);
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_reset", TTR("Zoom Reset")), ZOOM_RESET);
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_set", TTR("Zoom Set..")), ZOOM_SET);
p->add_separator(); p->add_separator();
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/center_selection", TTR("Center Selection"), KEY_F), VIEW_CENTER_TO_SELECTION); p->add_shortcut(ED_SHORTCUT("canvas_item_editor/center_selection", TTR("Center Selection"), KEY_F), VIEW_CENTER_TO_SELECTION);
p->add_shortcut(ED_SHORTCUT("canvas_item_editor/frame_selection", TTR("Frame Selection"), KEY_MASK_SHIFT | KEY_F), VIEW_FRAME_TO_SELECTION); p->add_shortcut(ED_SHORTCUT("canvas_item_editor/frame_selection", TTR("Frame Selection"), KEY_MASK_SHIFT | KEY_F), VIEW_FRAME_TO_SELECTION);
@@ -3590,23 +3594,6 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
snap_dialog->connect("confirmed", this, "_snap_changed"); snap_dialog->connect("confirmed", this, "_snap_changed");
add_child(snap_dialog); add_child(snap_dialog);
value_dialog = memnew(AcceptDialog);
value_dialog->set_title(TTR("Set a Value"));
value_dialog->get_ok()->set_text(TTR("Close"));
add_child(value_dialog);
Label *l = memnew(Label);
l->set_text(TTR("Snap (Pixels):"));
l->set_position(Point2(5, 5));
value_dialog->add_child(l);
dialog_label = l;
dialog_val = memnew(SpinBox);
dialog_val->set_anchor(MARGIN_RIGHT, ANCHOR_END);
dialog_val->set_begin(Point2(15, 25));
dialog_val->set_end(Point2(-10, 25));
value_dialog->add_child(dialog_val);
dialog_val->connect("value_changed", this, "_dialog_value_changed");
select_sb = Ref<StyleBoxTexture>(memnew(StyleBoxTexture)); select_sb = Ref<StyleBoxTexture>(memnew(StyleBoxTexture));
selection_menu = memnew(PopupMenu); selection_menu = memnew(PopupMenu);
@@ -3619,6 +3606,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
key_rot = true; key_rot = true;
key_scale = false; key_scale = false;
show_helpers = false;
zoom = 1; zoom = 1;
snap_offset = Vector2(0, 0); snap_offset = Vector2(0, 0);
snap_step = Vector2(10, 10); snap_step = Vector2(10, 10);
@@ -3630,7 +3618,6 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
snap_pixel = false; snap_pixel = false;
skeleton_show_bones = true; skeleton_show_bones = true;
skeleton_menu->set_item_checked(skeleton_menu->get_item_index(SKELETON_SHOW_BONES), true); skeleton_menu->set_item_checked(skeleton_menu->get_item_index(SKELETON_SHOW_BONES), true);
updating_value_dialog = false;
box_selecting = false; box_selecting = false;
//zoom=0.5; //zoom=0.5;
singleton = this; singleton = this;
@@ -4066,41 +4053,39 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
editor_data = editor->get_scene_tree_dock()->get_editor_data(); editor_data = editor->get_scene_tree_dock()->get_editor_data();
canvas = p_canvas; canvas = p_canvas;
preview_node = memnew(Node2D); preview_node = memnew(Node2D);
accept = memnew(AcceptDialog); accept = memnew(AcceptDialog);
editor->get_gui_base()->add_child(accept); editor->get_gui_base()->add_child(accept);
selector = memnew(AcceptDialog); selector = memnew(AcceptDialog);
editor->get_gui_base()->add_child(selector);
selector->set_title(TTR("Change default type")); selector->set_title(TTR("Change default type"));
selector->connect("confirmed", this, "_on_change_type");
VBoxContainer *vbc = memnew(VBoxContainer); VBoxContainer *vbc = memnew(VBoxContainer);
selector->add_child(vbc);
vbc->set_h_size_flags(SIZE_EXPAND_FILL); vbc->set_h_size_flags(SIZE_EXPAND_FILL);
vbc->set_v_size_flags(SIZE_EXPAND_FILL); vbc->set_v_size_flags(SIZE_EXPAND_FILL);
vbc->set_custom_minimum_size(Size2(200, 260) * EDSCALE); vbc->set_custom_minimum_size(Size2(200, 260) * EDSCALE);
selector_label = memnew(Label); selector_label = memnew(Label);
vbc->add_child(selector_label);
selector_label->set_align(Label::ALIGN_CENTER); selector_label->set_align(Label::ALIGN_CENTER);
selector_label->set_valign(Label::VALIGN_BOTTOM); selector_label->set_valign(Label::VALIGN_BOTTOM);
selector_label->set_custom_minimum_size(Size2(0, 30) * EDSCALE); selector_label->set_custom_minimum_size(Size2(0, 30) * EDSCALE);
vbc->add_child(selector_label);
button_group.instance();
btn_group = memnew(VBoxContainer); btn_group = memnew(VBoxContainer);
vbc->add_child(btn_group);
btn_group->set_h_size_flags(0); btn_group->set_h_size_flags(0);
button_group.instance();
for (int i = 0; i < types.size(); i++) { for (int i = 0; i < types.size(); i++) {
CheckBox *check = memnew(CheckBox); CheckBox *check = memnew(CheckBox);
btn_group->add_child(check);
check->set_text(types[i]); check->set_text(types[i]);
check->connect("button_down", this, "_on_select_type", varray(check)); check->connect("button_down", this, "_on_select_type", varray(check));
btn_group->add_child(check);
check->set_button_group(button_group); check->set_button_group(button_group);
} }
vbc->add_child(btn_group);
selector->connect("confirmed", this, "_on_change_type");
selector->add_child(vbc);
editor->get_gui_base()->add_child(selector);
label = memnew(Label); label = memnew(Label);
label->add_color_override("font_color_shadow", Color(0, 0, 0, 1)); label->add_color_override("font_color_shadow", Color(0, 0, 0, 1));

View File

@@ -87,10 +87,7 @@ class CanvasItemEditor : public VBoxContainer {
SNAP_RELATIVE, SNAP_RELATIVE,
SNAP_CONFIGURE, SNAP_CONFIGURE,
SNAP_USE_PIXEL, SNAP_USE_PIXEL,
ZOOM_IN, SHOW_HELPERS,
ZOOM_OUT,
ZOOM_RESET,
ZOOM_SET,
LOCK_SELECTED, LOCK_SELECTED,
UNLOCK_SELECTED, UNLOCK_SELECTED,
GROUP_SELECTED, GROUP_SELECTED,
@@ -170,7 +167,12 @@ class CanvasItemEditor : public VBoxContainer {
VScrollBar *v_scroll; VScrollBar *v_scroll;
HBoxContainer *hb; HBoxContainer *hb;
ToolButton *zoom_minus;
ToolButton *zoom_reset;
ToolButton *zoom_plus;
Transform2D transform; Transform2D transform;
bool show_helpers;
float zoom; float zoom;
Vector2 snap_offset; Vector2 snap_offset;
Vector2 snap_step; Vector2 snap_step;
@@ -300,10 +302,6 @@ class CanvasItemEditor : public VBoxContainer {
ConfirmationDialog *snap_dialog; ConfirmationDialog *snap_dialog;
AcceptDialog *value_dialog;
Label *dialog_label;
SpinBox *dialog_val;
CanvasItem *ref_item; CanvasItem *ref_item;
void _edit_set_pivot(const Vector2 &mouse_pos); void _edit_set_pivot(const Vector2 &mouse_pos);
@@ -330,7 +328,6 @@ class CanvasItemEditor : public VBoxContainer {
void incend(float &beg, float &end, float inc, float minsize, bool p_symmetric); void incend(float &beg, float &end, float inc, float minsize, bool p_symmetric);
void _append_canvas_item(CanvasItem *p_item); void _append_canvas_item(CanvasItem *p_item);
void _dialog_value_changed(double);
void _snap_changed(); void _snap_changed();
void _selection_result_pressed(int); void _selection_result_pressed(int);
void _selection_menu_hide(); void _selection_menu_hide();
@@ -361,6 +358,10 @@ class CanvasItemEditor : public VBoxContainer {
void _set_anchors_preset(Control::LayoutPreset p_preset); void _set_anchors_preset(Control::LayoutPreset p_preset);
void _set_full_rect(); void _set_full_rect();
void _zoom_minus();
void _zoom_reset();
void _zoom_plus();
HSplitContainer *palette_split; HSplitContainer *palette_split;
VSplitContainer *bottom_split; VSplitContainer *bottom_split;