diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2018-02-23 12:17:15 +0100 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2018-02-23 13:01:28 +0100 |
commit | 920d2bfdfa582b81b0e47d8a0a5de5817289c6dc (patch) | |
tree | 97a850c3192afb9c51efb6194b7e5c08c000fd0c | |
parent | ff122a7e1fe4e061e564978450ee8bf442247a36 (diff) | |
download | redot-engine-920d2bfdfa582b81b0e47d8a0a5de5817289c6dc.tar.gz |
Add two new default actions ui_end, ui_home
Used by Slider and Scrollbar
-rw-r--r-- | core/input_map.cpp | 10 | ||||
-rw-r--r-- | core/project_settings.cpp | 14 | ||||
-rw-r--r-- | scene/gui/scroll_bar.cpp | 17 | ||||
-rw-r--r-- | scene/gui/slider.cpp | 26 |
4 files changed, 34 insertions, 33 deletions
diff --git a/core/input_map.cpp b/core/input_map.cpp index a9ea1d9545..bd03d61196 100644 --- a/core/input_map.cpp +++ b/core/input_map.cpp @@ -282,6 +282,16 @@ void InputMap::load_default() { key->set_scancode(KEY_PAGEDOWN); action_add_event("ui_page_down", key); + add_action("ui_home"); + key.instance(); + key->set_scancode(KEY_HOME); + action_add_event("ui_home", key); + + add_action("ui_end"); + key.instance(); + key->set_scancode(KEY_END); + action_add_event("ui_end", key); + //set("display/window/handheld/orientation", "landscape"); } diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 427fa77e62..22cc592697 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -1027,6 +1027,20 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF("input/ui_page_down", va); input_presets.push_back("input/ui_page_down"); + va = Array(); + key.instance(); + key->set_scancode(KEY_HOME); + va.push_back(key); + GLOBAL_DEF("input/ui_home", va); + input_presets.push_back("input/ui_home"); + + va = Array(); + key.instance(); + key->set_scancode(KEY_END); + va.push_back(key); + GLOBAL_DEF("input/ui_end", va); + input_presets.push_back("input/ui_end"); + //GLOBAL_DEF("display/window/handheld/orientation", "landscape"); custom_prop_info["display/window/handheld/orientation"] = PropertyInfo(Variant::STRING, "display/window/handheld/orientation", PROPERTY_HINT_ENUM, "landscape,portrait,reverse_landscape,reverse_portrait,sensor_landscape,sensor_portrait,sensor"); diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp index 94e149c8a7..e1cabd3f88 100644 --- a/scene/gui/scroll_bar.cpp +++ b/scene/gui/scroll_bar.cpp @@ -199,8 +199,6 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { } } - Ref<InputEventKey> k = p_event; - if (p_event->is_pressed()) { if (p_event->is_action("ui_left")) { @@ -228,20 +226,13 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { return; set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); - } else if (k.is_valid()) { - - switch (k->get_scancode()) { - case KEY_HOME: { + } else if (p_event->is_action("ui_home")) { - set_value(get_min()); + set_value(get_min()); - } break; - case KEY_END: { + } else if (p_event->is_action("ui_end")) { - set_value(get_max()); - - } break; - } + set_value(get_max()); } } } diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp index a7a1b499c3..46215c9277 100644 --- a/scene/gui/slider.cpp +++ b/scene/gui/slider.cpp @@ -118,28 +118,14 @@ void Slider::_gui_input(Ref<InputEvent> p_event) { return; set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); accept_event(); + } else if (p_event->is_action("ui_home") && p_event->is_pressed()) { - } else { - - Ref<InputEventKey> k = p_event; - - if (!k.is_valid() || !k->is_pressed()) - return; - - switch (k->get_scancode()) { - - case KEY_HOME: { - - set_value(get_min()); - accept_event(); - } break; - case KEY_END: { - - set_value(get_max()); - accept_event(); + set_value(get_min()); + accept_event(); + } else if (p_event->is_action("ui_end") && p_event->is_pressed()) { - } break; - } + set_value(get_max()); + accept_event(); } } } |