summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2018-02-23 12:17:15 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2018-02-23 13:01:28 +0100
commit920d2bfdfa582b81b0e47d8a0a5de5817289c6dc (patch)
tree97a850c3192afb9c51efb6194b7e5c08c000fd0c
parentff122a7e1fe4e061e564978450ee8bf442247a36 (diff)
downloadredot-engine-920d2bfdfa582b81b0e47d8a0a5de5817289c6dc.tar.gz
Add two new default actions ui_end, ui_home
Used by Slider and Scrollbar
-rw-r--r--core/input_map.cpp10
-rw-r--r--core/project_settings.cpp14
-rw-r--r--scene/gui/scroll_bar.cpp17
-rw-r--r--scene/gui/slider.cpp26
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();
}
}
}