diff options
| author | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2020-05-30 12:08:30 +0200 | 
|---|---|---|
| committer | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2020-06-03 22:17:13 +0200 | 
| commit | def2059d67b5ec1335f8654e80a2bc19b7faa299 (patch) | |
| tree | 2ea4cb5497a1e68718e00ff669295190499dbd99 | |
| parent | dc67d0737b86c7a6cab66752b96631c59c703997 (diff) | |
Implement zooming using Ctrl + Mouse wheel in the TileMap editor
This was previously implemented in the GridMap editor. This makes
the same feature available in the TileMap editor.
| -rw-r--r-- | editor/plugins/tile_map_editor_plugin.cpp | 16 | ||||
| -rw-r--r-- | editor/plugins/tile_map_editor_plugin.h | 1 | 
2 files changed, 17 insertions, 0 deletions
diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index 6c037f94a0..3281a59c1c 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -194,6 +194,21 @@ void TileMapEditor::_palette_multi_selected(int index, bool selected) {  	_update_palette();  } +void TileMapEditor::_palette_input(const Ref<InputEvent> &p_event) { +	const Ref<InputEventMouseButton> mb = p_event; + +	// Zoom in/out using Ctrl + mouse wheel. +	if (mb.is_valid() && mb->is_pressed() && mb->get_command()) { +		if (mb->is_pressed() && mb->get_button_index() == BUTTON_WHEEL_UP) { +			size_slider->set_value(size_slider->get_value() + 0.2); +		} + +		if (mb->is_pressed() && mb->get_button_index() == BUTTON_WHEEL_DOWN) { +			size_slider->set_value(size_slider->get_value() - 0.2); +		} +	} +} +  void TileMapEditor::_canvas_mouse_enter() {  	mouse_over = true;  	CanvasItemEditor::get_singleton()->update_viewport(); @@ -1913,6 +1928,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {  	palette->add_theme_constant_override("vseparation", 8 * EDSCALE);  	palette->connect("item_selected", callable_mp(this, &TileMapEditor::_palette_selected));  	palette->connect("multi_selected", callable_mp(this, &TileMapEditor::_palette_multi_selected)); +	palette->connect("gui_input", callable_mp(this, &TileMapEditor::_palette_input));  	palette_container->add_child(palette);  	// Add message for when no texture is selected. diff --git a/editor/plugins/tile_map_editor_plugin.h b/editor/plugins/tile_map_editor_plugin.h index 5f82d7bfb8..e25e2d2add 100644 --- a/editor/plugins/tile_map_editor_plugin.h +++ b/editor/plugins/tile_map_editor_plugin.h @@ -182,6 +182,7 @@ class TileMapEditor : public VBoxContainer {  	void _menu_option(int p_option);  	void _palette_selected(int index);  	void _palette_multi_selected(int index, bool selected); +	void _palette_input(const Ref<InputEvent> &p_event);  	Dictionary _create_cell_dictionary(int tile, bool flip_x, bool flip_y, bool transpose, Vector2 autotile_coord);  	void _start_undo(const String &p_action);  |