mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-26 13:47:12 +01:00
Merged the functionality of BSInputEventKey to InputEventKey. This new setting can make input event keys act as if they are shortcut matched.
This commit is contained in:
parent
452ec50bf7
commit
3afa1142b9
@ -267,6 +267,13 @@ bool InputEventKey::is_echo() const {
|
|||||||
return echo;
|
return echo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InputEventKey::set_action_match_force_exact(bool p_enable) {
|
||||||
|
action_match_force_exact = p_enable;
|
||||||
|
}
|
||||||
|
bool InputEventKey::is_action_match_force_exact() const {
|
||||||
|
return action_match_force_exact;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t InputEventKey::get_scancode_with_modifiers() const {
|
uint32_t InputEventKey::get_scancode_with_modifiers() const {
|
||||||
return scancode | get_modifiers_mask();
|
return scancode | get_modifiers_mask();
|
||||||
}
|
}
|
||||||
@ -309,6 +316,22 @@ bool InputEventKey::action_match(const Ref<InputEvent> &p_event, bool p_exact_ma
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (action_match_force_exact) {
|
||||||
|
uint32_t code = get_scancode_with_modifiers();
|
||||||
|
uint32_t event_code = key->get_scancode_with_modifiers();
|
||||||
|
|
||||||
|
bool match = (code == event_code);
|
||||||
|
if (match) {
|
||||||
|
if (p_pressed != NULL) {
|
||||||
|
*p_pressed = key->is_pressed();
|
||||||
|
}
|
||||||
|
if (p_strength != NULL) {
|
||||||
|
*p_strength = (p_pressed != NULL && *p_pressed) ? 1.0f : 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
|
||||||
bool match;
|
bool match;
|
||||||
if (scancode != 0) {
|
if (scancode != 0) {
|
||||||
match = scancode == key->scancode;
|
match = scancode == key->scancode;
|
||||||
@ -368,6 +391,9 @@ void InputEventKey::_bind_methods() {
|
|||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_echo", "echo"), &InputEventKey::set_echo);
|
ClassDB::bind_method(D_METHOD("set_echo", "echo"), &InputEventKey::set_echo);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("set_action_match_force_exact", "unicode"), &InputEventKey::set_action_match_force_exact);
|
||||||
|
ClassDB::bind_method(D_METHOD("is_action_match_force_exact"), &InputEventKey::is_action_match_force_exact);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_scancode_with_modifiers"), &InputEventKey::get_scancode_with_modifiers);
|
ClassDB::bind_method(D_METHOD("get_scancode_with_modifiers"), &InputEventKey::get_scancode_with_modifiers);
|
||||||
ClassDB::bind_method(D_METHOD("get_physical_scancode_with_modifiers"), &InputEventKey::get_physical_scancode_with_modifiers);
|
ClassDB::bind_method(D_METHOD("get_physical_scancode_with_modifiers"), &InputEventKey::get_physical_scancode_with_modifiers);
|
||||||
|
|
||||||
@ -376,6 +402,7 @@ void InputEventKey::_bind_methods() {
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "physical_scancode"), "set_physical_scancode", "get_physical_scancode");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "physical_scancode"), "set_physical_scancode", "get_physical_scancode");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "unicode"), "set_unicode", "get_unicode");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "unicode"), "set_unicode", "get_unicode");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "echo"), "set_echo", "is_echo");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "echo"), "set_echo", "is_echo");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "action_match_force_exact"), "set_action_match_force_exact", "is_action_match_force_exact");
|
||||||
}
|
}
|
||||||
|
|
||||||
InputEventKey::InputEventKey() {
|
InputEventKey::InputEventKey() {
|
||||||
@ -383,6 +410,7 @@ InputEventKey::InputEventKey() {
|
|||||||
physical_scancode = 0;
|
physical_scancode = 0;
|
||||||
unicode = 0; ///unicode
|
unicode = 0; ///unicode
|
||||||
echo = false;
|
echo = false;
|
||||||
|
action_match_force_exact = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
|
@ -291,6 +291,8 @@ class InputEventKey : public InputEventWithModifiers {
|
|||||||
|
|
||||||
bool echo; /// true if this is an echo key
|
bool echo; /// true if this is an echo key
|
||||||
|
|
||||||
|
bool action_match_force_exact;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
@ -309,6 +311,9 @@ public:
|
|||||||
void set_echo(bool p_enable);
|
void set_echo(bool p_enable);
|
||||||
virtual bool is_echo() const;
|
virtual bool is_echo() const;
|
||||||
|
|
||||||
|
void set_action_match_force_exact(bool p_enable);
|
||||||
|
bool is_action_match_force_exact() const;
|
||||||
|
|
||||||
uint32_t get_scancode_with_modifiers() const;
|
uint32_t get_scancode_with_modifiers() const;
|
||||||
uint32_t get_physical_scancode_with_modifiers() const;
|
uint32_t get_physical_scancode_with_modifiers() const;
|
||||||
|
|
||||||
|
@ -43,6 +43,9 @@
|
|||||||
<member name="unicode" type="int" setter="set_unicode" getter="get_unicode" default="0">
|
<member name="unicode" type="int" setter="set_unicode" getter="get_unicode" default="0">
|
||||||
The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See [method OS.set_ime_active] for more information.
|
The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See [method OS.set_ime_active] for more information.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="action_match_force_exact" type="bool" setter="set_action_match_force_exact" getter="is_action_match_force_exact" default="false">
|
||||||
|
If [code]true[/code], the InputEvent will match exact InputActions when used as a keybind in the input singleton, similar to how ShortCuts work.
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
<constants>
|
<constants>
|
||||||
</constants>
|
</constants>
|
||||||
|
@ -30,40 +30,40 @@
|
|||||||
|
|
||||||
#include "project_settings_editor.h"
|
#include "project_settings_editor.h"
|
||||||
|
|
||||||
#include "core/input/input_map.h"
|
|
||||||
#include "core/os/keyboard.h"
|
|
||||||
#include "core/config/project_settings.h"
|
#include "core/config/project_settings.h"
|
||||||
#include "core/string/translation.h"
|
#include "core/containers/list.h"
|
||||||
#include "editor/editor_export.h"
|
#include "core/containers/pool_vector.h"
|
||||||
#include "editor/editor_node.h"
|
#include "core/containers/rb_map.h"
|
||||||
#include "editor/editor_scale.h"
|
#include "core/containers/rb_set.h"
|
||||||
#include "scene/gui/tab_container.h"
|
|
||||||
#include "core/variant/array.h"
|
|
||||||
#include "core/object/class_db.h"
|
|
||||||
#include "core/math/color.h"
|
|
||||||
#include "core/variant/dictionary.h"
|
|
||||||
#include "core/error/error_list.h"
|
#include "core/error/error_list.h"
|
||||||
#include "core/error/error_macros.h"
|
#include "core/error/error_macros.h"
|
||||||
|
#include "core/input/input_map.h"
|
||||||
#include "core/io/resource_loader.h"
|
#include "core/io/resource_loader.h"
|
||||||
#include "core/containers/list.h"
|
#include "core/math/color.h"
|
||||||
#include "core/containers/rb_map.h"
|
|
||||||
#include "core/math/math_defs.h"
|
#include "core/math/math_defs.h"
|
||||||
#include "core/math/rect2.h"
|
#include "core/math/rect2.h"
|
||||||
#include "core/os/memory.h"
|
#include "core/object/class_db.h"
|
||||||
#include "core/containers/pool_vector.h"
|
|
||||||
#include "core/containers/rb_set.h"
|
|
||||||
#include "core/typedefs.h"
|
|
||||||
#include "core/object/undo_redo.h"
|
#include "core/object/undo_redo.h"
|
||||||
|
#include "core/os/keyboard.h"
|
||||||
|
#include "core/os/memory.h"
|
||||||
|
#include "core/string/translation.h"
|
||||||
|
#include "core/typedefs.h"
|
||||||
|
#include "core/variant/array.h"
|
||||||
|
#include "core/variant/dictionary.h"
|
||||||
#include "editor/editor_autoload_settings.h"
|
#include "editor/editor_autoload_settings.h"
|
||||||
#include "editor/editor_data.h"
|
#include "editor/editor_data.h"
|
||||||
|
#include "editor/editor_export.h"
|
||||||
#include "editor/editor_file_dialog.h"
|
#include "editor/editor_file_dialog.h"
|
||||||
#include "editor/editor_inspector.h"
|
#include "editor/editor_inspector.h"
|
||||||
|
#include "editor/editor_node.h"
|
||||||
#include "editor/editor_plugin_settings.h"
|
#include "editor/editor_plugin_settings.h"
|
||||||
|
#include "editor/editor_scale.h"
|
||||||
#include "editor/editor_sectioned_inspector.h"
|
#include "editor/editor_sectioned_inspector.h"
|
||||||
#include "editor/editor_settings.h"
|
#include "editor/editor_settings.h"
|
||||||
#include "editor/import_defaults_editor.h"
|
#include "editor/import_defaults_editor.h"
|
||||||
#include "scene/gui/box_container.h"
|
#include "scene/gui/box_container.h"
|
||||||
#include "scene/gui/button.h"
|
#include "scene/gui/button.h"
|
||||||
|
#include "scene/gui/check_button.h"
|
||||||
#include "scene/gui/control.h"
|
#include "scene/gui/control.h"
|
||||||
#include "scene/gui/label.h"
|
#include "scene/gui/label.h"
|
||||||
#include "scene/gui/line_edit.h"
|
#include "scene/gui/line_edit.h"
|
||||||
@ -73,10 +73,10 @@
|
|||||||
#include "scene/gui/popup.h"
|
#include "scene/gui/popup.h"
|
||||||
#include "scene/gui/popup_menu.h"
|
#include "scene/gui/popup_menu.h"
|
||||||
#include "scene/gui/separator.h"
|
#include "scene/gui/separator.h"
|
||||||
|
#include "scene/gui/tab_container.h"
|
||||||
#include "scene/gui/texture_rect.h"
|
#include "scene/gui/texture_rect.h"
|
||||||
#include "scene/gui/tool_button.h"
|
#include "scene/gui/tool_button.h"
|
||||||
#include "scene/gui/tree.h"
|
#include "scene/gui/tree.h"
|
||||||
#include "scene/gui/check_button.h"
|
|
||||||
#include "scene/main/node.h"
|
#include "scene/main/node.h"
|
||||||
#include "scene/main/timer.h"
|
#include "scene/main/timer.h"
|
||||||
|
|
||||||
@ -292,14 +292,50 @@ void ProjectSettingsEditor::_action_edited() {
|
|||||||
String name = "input/" + ti->get_text(0);
|
String name = "input/" + ti->get_text(0);
|
||||||
Dictionary old_action = ProjectSettings::get_singleton()->get(name);
|
Dictionary old_action = ProjectSettings::get_singleton()->get(name);
|
||||||
Dictionary new_action = old_action.duplicate();
|
Dictionary new_action = old_action.duplicate();
|
||||||
new_action["deadzone"] = ti->get_range(1);
|
|
||||||
|
|
||||||
undo_redo->create_action(TTR("Change Action deadzone"));
|
if (ti->get_cell_mode(1) == TreeItem::CELL_MODE_RANGE) {
|
||||||
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", name, new_action);
|
new_action["deadzone"] = ti->get_range(1);
|
||||||
undo_redo->add_do_method(this, "_settings_changed");
|
|
||||||
undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", name, old_action);
|
undo_redo->create_action(TTR("Change Action deadzone"));
|
||||||
undo_redo->add_undo_method(this, "_settings_changed");
|
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", name, new_action);
|
||||||
undo_redo->commit_action();
|
undo_redo->add_do_method(this, "_settings_changed");
|
||||||
|
undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", name, old_action);
|
||||||
|
undo_redo->add_undo_method(this, "_settings_changed");
|
||||||
|
undo_redo->commit_action();
|
||||||
|
} else if (ti->get_cell_mode(1) == TreeItem::CELL_MODE_CHECK) {
|
||||||
|
// Edit action event
|
||||||
|
String action_prop = "input/" + ti->get_parent()->get_text(0);
|
||||||
|
|
||||||
|
int idx = ti->get_metadata(0);
|
||||||
|
Dictionary old_val = ProjectSettings::get_singleton()->get(action_prop);
|
||||||
|
Dictionary action = old_val.duplicate();
|
||||||
|
|
||||||
|
Array events = action["events"].duplicate();
|
||||||
|
ERR_FAIL_INDEX(idx, events.size());
|
||||||
|
|
||||||
|
Ref<InputEventKey> event = events[idx];
|
||||||
|
|
||||||
|
if (event.is_null()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
event->set_action_match_force_exact(ti->is_checked(1));
|
||||||
|
|
||||||
|
action["events"] = events;
|
||||||
|
|
||||||
|
setting = true;
|
||||||
|
undo_redo->create_action(TTR("Set Input Action Event Exact"));
|
||||||
|
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", name, action);
|
||||||
|
undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", name, old_val);
|
||||||
|
undo_redo->add_do_method(this, "_update_actions");
|
||||||
|
undo_redo->add_undo_method(this, "_update_actions");
|
||||||
|
undo_redo->add_do_method(this, "_settings_changed");
|
||||||
|
undo_redo->add_undo_method(this, "_settings_changed");
|
||||||
|
undo_redo->commit_action();
|
||||||
|
setting = false;
|
||||||
|
|
||||||
|
_show_last_added(event, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -825,6 +861,11 @@ void ProjectSettingsEditor::_update_actions() {
|
|||||||
} else {
|
} else {
|
||||||
action2->set_icon(0, get_theme_icon("KeyboardPhysical", "EditorIcons"));
|
action2->set_icon(0, get_theme_icon("KeyboardPhysical", "EditorIcons"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
action2->set_cell_mode(1, TreeItem::CELL_MODE_CHECK);
|
||||||
|
action2->set_text(1, TTR("Exact"));
|
||||||
|
action2->set_checked(1, k->is_action_match_force_exact());
|
||||||
|
action2->set_editable(1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<InputEventJoypadButton> jb = event;
|
Ref<InputEventJoypadButton> jb = event;
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright (c) 2019-2023 Péter Magyar
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "bs_input_event_key.h"
|
|
||||||
|
|
||||||
#include "core/input/shortcut.h"
|
|
||||||
|
|
||||||
void BSInputEventKey::from_input_event_key(const Ref<InputEventKey> event) {
|
|
||||||
set_device(event->get_device());
|
|
||||||
|
|
||||||
set_shift(event->get_shift());
|
|
||||||
set_alt(event->get_alt());
|
|
||||||
set_control(event->get_control());
|
|
||||||
set_metakey(event->get_metakey());
|
|
||||||
set_command(event->get_command());
|
|
||||||
|
|
||||||
set_pressed(event->is_pressed());
|
|
||||||
|
|
||||||
set_scancode(event->get_scancode());
|
|
||||||
|
|
||||||
set_unicode(event->get_unicode());
|
|
||||||
set_echo(event->is_echo());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BSInputEventKey::action_match(const Ref<InputEvent> &p_event, bool p_exact_match, bool *p_pressed, float *p_strength, float *p_raw_strength, float p_deadzone) const {
|
|
||||||
Ref<InputEventKey> key = p_event;
|
|
||||||
if (key.is_null())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
uint32_t code = get_scancode_with_modifiers();
|
|
||||||
uint32_t event_code = key->get_scancode_with_modifiers();
|
|
||||||
|
|
||||||
bool match = (code == event_code);
|
|
||||||
if (match) {
|
|
||||||
if (p_pressed != NULL)
|
|
||||||
*p_pressed = key->is_pressed();
|
|
||||||
if (p_strength != NULL)
|
|
||||||
*p_strength = (p_pressed != NULL && *p_pressed) ? 1.0f : 0.0f;
|
|
||||||
}
|
|
||||||
return match;
|
|
||||||
}
|
|
||||||
|
|
||||||
BSInputEventKey::BSInputEventKey() {
|
|
||||||
}
|
|
||||||
|
|
||||||
void BSInputEventKey::_bind_methods() {
|
|
||||||
ClassDB::bind_method(D_METHOD("from_input_event_key", "event"), &BSInputEventKey::from_input_event_key);
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
#ifndef BS_INPUT_EVENT_KEY_H
|
|
||||||
#define BS_INPUT_EVENT_KEY_H
|
|
||||||
/*
|
|
||||||
Copyright (c) 2019-2023 Péter Magyar
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "core/input/input_event.h"
|
|
||||||
|
|
||||||
class BSInputEventKey : public InputEventKey {
|
|
||||||
GDCLASS(BSInputEventKey, InputEventKey);
|
|
||||||
|
|
||||||
public:
|
|
||||||
void from_input_event_key(const Ref<InputEventKey> p_event);
|
|
||||||
virtual bool action_match(const Ref<InputEvent> &p_event, bool p_exact_match, bool *p_pressed, float *p_strength, float *p_raw_strength, float p_deadzone) const;
|
|
||||||
|
|
||||||
BSInputEventKey();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static void _bind_methods();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<class name="BSInputEventKey" inherits="InputEventKey" version="3.11">
|
|
||||||
<brief_description>
|
|
||||||
</brief_description>
|
|
||||||
<description>
|
|
||||||
</description>
|
|
||||||
<tutorials>
|
|
||||||
</tutorials>
|
|
||||||
<methods>
|
|
||||||
<method name="from_input_event_key">
|
|
||||||
<return type="void" />
|
|
||||||
<argument index="0" name="event" type="InputEventKey" />
|
|
||||||
<description>
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
</methods>
|
|
||||||
<constants>
|
|
||||||
</constants>
|
|
||||||
</class>
|
|
@ -267,7 +267,7 @@ void InputMapEditor::_press_a_key_confirm() {
|
|||||||
if (last_wait_for_key.is_null())
|
if (last_wait_for_key.is_null())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Ref<BSInputEventKey> ie;
|
Ref<InputEventKey> ie;
|
||||||
|
|
||||||
ie.instance();
|
ie.instance();
|
||||||
ie->set_scancode(last_wait_for_key->get_scancode());
|
ie->set_scancode(last_wait_for_key->get_scancode());
|
||||||
@ -275,6 +275,7 @@ void InputMapEditor::_press_a_key_confirm() {
|
|||||||
ie->set_alt(last_wait_for_key->get_alt());
|
ie->set_alt(last_wait_for_key->get_alt());
|
||||||
ie->set_control(last_wait_for_key->get_control());
|
ie->set_control(last_wait_for_key->get_control());
|
||||||
ie->set_metakey(last_wait_for_key->get_metakey());
|
ie->set_metakey(last_wait_for_key->get_metakey());
|
||||||
|
ie->set_action_match_force_exact(true);
|
||||||
|
|
||||||
String name = add_at;
|
String name = add_at;
|
||||||
int idx = edit_idx;
|
int idx = edit_idx;
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
#include "bs_input_event_key.h"
|
|
||||||
#include "scene/gui/dialogs.h"
|
#include "scene/gui/dialogs.h"
|
||||||
#include "scene/gui/margin_container.h"
|
#include "scene/gui/margin_container.h"
|
||||||
#include "scene/gui/menu_button.h"
|
#include "scene/gui/menu_button.h"
|
||||||
|
@ -22,7 +22,6 @@ SOFTWARE.
|
|||||||
|
|
||||||
#include "register_types.h"
|
#include "register_types.h"
|
||||||
|
|
||||||
#include "bs_input_event_key.h"
|
|
||||||
#include "core/input/shortcut.h"
|
#include "core/input/shortcut.h"
|
||||||
#include "input_map_editor.h"
|
#include "input_map_editor.h"
|
||||||
#include "touch_button.h"
|
#include "touch_button.h"
|
||||||
@ -30,7 +29,6 @@ SOFTWARE.
|
|||||||
void register_ui_extensions_types(ModuleRegistrationLevel p_level) {
|
void register_ui_extensions_types(ModuleRegistrationLevel p_level) {
|
||||||
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
|
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
|
||||||
ClassDB::register_class<TouchButton>();
|
ClassDB::register_class<TouchButton>();
|
||||||
ClassDB::register_class<BSInputEventKey>();
|
|
||||||
ClassDB::register_class<InputMapEditor>();
|
ClassDB::register_class<InputMapEditor>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user