diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-06-29 11:50:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-29 11:50:36 +0200 |
commit | 51f9b41afde012e34a50d6ee82b77c40c3a93ee1 (patch) | |
tree | e6676e49b20c21456a910cd2cab2d5819f90dd73 /editor/plugins/tiles/tile_atlas_view.h | |
parent | 45b66e91e73eff0f556ef36264d36f49b0089a89 (diff) | |
parent | 30a615dd94f2dc990466f3953ad26a0e3f79a170 (diff) |
Merge pull request #49859 from groud/painting_in_tileset_editor
Properties painting in tileset editor
Diffstat (limited to 'editor/plugins/tiles/tile_atlas_view.h')
-rw-r--r-- | editor/plugins/tiles/tile_atlas_view.h | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/editor/plugins/tiles/tile_atlas_view.h b/editor/plugins/tiles/tile_atlas_view.h index 28fd3ed1e0..bafc2b3985 100644 --- a/editor/plugins/tiles/tile_atlas_view.h +++ b/editor/plugins/tiles/tile_atlas_view.h @@ -34,6 +34,7 @@ #include "editor/editor_zoom_widget.h" #include "scene/gui/box_container.h" #include "scene/gui/button.h" +#include "scene/gui/center_container.h" #include "scene/gui/label.h" #include "scene/gui/margin_container.h" #include "scene/gui/scroll_container.h" @@ -48,17 +49,24 @@ private: TileSetAtlasSource *tile_set_atlas_source; int source_id = -1; + enum DragType { + DRAG_TYPE_NONE, + DRAG_TYPE_PAN, + }; + DragType drag_type = DRAG_TYPE_NONE; float previous_zoom = 1.0; EditorZoomWidget *zoom_widget; + Button *button_center_view; + CenterContainer *center_container; + Vector2 panning; + void _update_zoom_and_panning(bool p_zoom_on_mouse_pos = false); void _zoom_widget_changed(); - void _scroll_changed(); - void _update_zoom(float p_zoom, bool p_zoom_on_mouse_pos = false, Vector2i p_scroll = Vector2i(-1, -1)); + void _center_view(); void _gui_input(const Ref<InputEvent> &p_event); Map<Vector2, Map<int, Rect2i>> alternative_tiles_rect_cache; void _update_alternative_tiles_rect_cache(); - ScrollContainer *scroll_container; MarginContainer *margin_container; int margin_container_paddings[4] = { 0, 0, 0, 0 }; HBoxContainer *hbox; @@ -102,16 +110,15 @@ private: Size2i _compute_alternative_tiles_control_size(); protected: + void _notification(int p_what); static void _bind_methods(); public: // Global. void set_atlas_source(TileSet *p_tile_set, TileSetAtlasSource *p_tile_set_atlas_source, int p_source_id); - ScrollContainer *get_scroll_container() { return scroll_container; }; - float get_zoom() const; - void set_transform(float p_zoom, Vector2i p_scroll); + void set_transform(float p_zoom, Vector2i p_panning); void set_padding(Side p_side, int p_padding); |