diff --git a/editor/icons/MouseButtonLeft.svg b/editor/icons/MouseButtonLeft.svg new file mode 100644 index 0000000000..ba64e1dde6 --- /dev/null +++ b/editor/icons/MouseButtonLeft.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonMiddle.svg b/editor/icons/MouseButtonMiddle.svg new file mode 100644 index 0000000000..17779f85d7 --- /dev/null +++ b/editor/icons/MouseButtonMiddle.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonRight.svg b/editor/icons/MouseButtonRight.svg new file mode 100644 index 0000000000..b3b900699a --- /dev/null +++ b/editor/icons/MouseButtonRight.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonWheelDown.svg b/editor/icons/MouseButtonWheelDown.svg new file mode 100644 index 0000000000..63cefff12d --- /dev/null +++ b/editor/icons/MouseButtonWheelDown.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonWheelLeft.svg b/editor/icons/MouseButtonWheelLeft.svg new file mode 100644 index 0000000000..7b96ccff35 --- /dev/null +++ b/editor/icons/MouseButtonWheelLeft.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonWheelRight.svg b/editor/icons/MouseButtonWheelRight.svg new file mode 100644 index 0000000000..03d04a131e --- /dev/null +++ b/editor/icons/MouseButtonWheelRight.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonWheelUp.svg b/editor/icons/MouseButtonWheelUp.svg new file mode 100644 index 0000000000..31626ec57f --- /dev/null +++ b/editor/icons/MouseButtonWheelUp.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonXButton1.svg b/editor/icons/MouseButtonXButton1.svg new file mode 100644 index 0000000000..5972738427 --- /dev/null +++ b/editor/icons/MouseButtonXButton1.svg @@ -0,0 +1 @@ + diff --git a/editor/icons/MouseButtonXButton2.svg b/editor/icons/MouseButtonXButton2.svg new file mode 100644 index 0000000000..3e7ecb468c --- /dev/null +++ b/editor/icons/MouseButtonXButton2.svg @@ -0,0 +1 @@ + diff --git a/editor/settings/action_map_editor.cpp b/editor/settings/action_map_editor.cpp index c720acbd7a..02ed1bdd80 100644 --- a/editor/settings/action_map_editor.cpp +++ b/editor/settings/action_map_editor.cpp @@ -529,7 +529,27 @@ void ActionMapEditor::update_action_list(const Vector &p_action_info Ref mb = event; if (mb.is_valid()) { - event_item->set_icon(0, get_editor_theme_icon(SNAME("Mouse"))); + if (mb->get_button_index() == MouseButton::LEFT) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonLeft"))); + } else if (mb->get_button_index() == MouseButton::RIGHT) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonRight"))); + } else if (mb->get_button_index() == MouseButton::MIDDLE) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonMiddle"))); + } else if (mb->get_button_index() == MouseButton::WHEEL_UP) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelUp"))); + } else if (mb->get_button_index() == MouseButton::WHEEL_DOWN) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelDown"))); + } else if (mb->get_button_index() == MouseButton::WHEEL_LEFT) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelLeft"))); + } else if (mb->get_button_index() == MouseButton::WHEEL_RIGHT) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelRight"))); + } else if (mb->get_button_index() == MouseButton::MB_XBUTTON1) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonXButton1"))); + } else if (mb->get_button_index() == MouseButton::MB_XBUTTON2) { + event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonXButton2"))); + } else { + event_item->set_icon(0, get_editor_theme_icon(SNAME("Mouse"))); + } } Ref jb = event; diff --git a/editor/settings/input_event_configuration_dialog.cpp b/editor/settings/input_event_configuration_dialog.cpp index 15dcbd5e68..b00dd173b2 100644 --- a/editor/settings/input_event_configuration_dialog.cpp +++ b/editor/settings/input_event_configuration_dialog.cpp @@ -336,6 +336,7 @@ void InputEventConfigurationDialog::_update_input_list() { mouse_root->set_meta("__type", INPUT_MOUSE_BUTTON); MouseButton mouse_buttons[9] = { MouseButton::LEFT, MouseButton::RIGHT, MouseButton::MIDDLE, MouseButton::WHEEL_UP, MouseButton::WHEEL_DOWN, MouseButton::WHEEL_LEFT, MouseButton::WHEEL_RIGHT, MouseButton::MB_XBUTTON1, MouseButton::MB_XBUTTON2 }; + Ref mouse_icons[9] = { icon_cache.mouse_left_button, icon_cache.mouse_right_button, icon_cache.mouse_middle_button, icon_cache.mouse_wheel_up, icon_cache.mouse_wheel_down, icon_cache.mouse_wheel_left, icon_cache.mouse_wheel_right, icon_cache.mouse_xbutton1, icon_cache.mouse_xbutton2 }; for (int i = 0; i < 9; i++) { Ref mb; mb.instantiate(); @@ -348,6 +349,7 @@ void InputEventConfigurationDialog::_update_input_list() { TreeItem *item = input_list_tree->create_item(mouse_root); item->set_text(0, desc); + item->set_icon(0, mouse_icons[i]); item->set_meta("__index", mouse_buttons[i]); } } @@ -611,6 +613,15 @@ void InputEventConfigurationDialog::_notification(int p_what) { icon_cache.keyboard = get_editor_theme_icon(SNAME("Keyboard")); icon_cache.mouse = get_editor_theme_icon(SNAME("Mouse")); + icon_cache.mouse_left_button = get_editor_theme_icon(SNAME("MouseButtonLeft")); + icon_cache.mouse_right_button = get_editor_theme_icon(SNAME("MouseButtonRight")); + icon_cache.mouse_middle_button = get_editor_theme_icon(SNAME("MouseButtonMiddle")); + icon_cache.mouse_wheel_up = get_editor_theme_icon(SNAME("MouseButtonWheelUp")); + icon_cache.mouse_wheel_down = get_editor_theme_icon(SNAME("MouseButtonWheelDown")); + icon_cache.mouse_wheel_left = get_editor_theme_icon(SNAME("MouseButtonWheelLeft")); + icon_cache.mouse_wheel_right = get_editor_theme_icon(SNAME("MouseButtonWheelRight")); + icon_cache.mouse_xbutton1 = get_editor_theme_icon(SNAME("MouseButtonXButton1")); + icon_cache.mouse_xbutton2 = get_editor_theme_icon(SNAME("MouseButtonXButton2")); icon_cache.joypad_button = get_editor_theme_icon(SNAME("JoyButton")); icon_cache.joypad_axis = get_editor_theme_icon(SNAME("JoyAxis")); diff --git a/editor/settings/input_event_configuration_dialog.h b/editor/settings/input_event_configuration_dialog.h index bc4109cc0b..dd0aa9b264 100644 --- a/editor/settings/input_event_configuration_dialog.h +++ b/editor/settings/input_event_configuration_dialog.h @@ -45,8 +45,17 @@ private: struct IconCache { Ref keyboard; Ref mouse; + Ref mouse_left_button; + Ref mouse_right_button; + Ref mouse_middle_button; + Ref mouse_wheel_up; + Ref mouse_wheel_down; + Ref mouse_wheel_left; + Ref mouse_wheel_right; Ref joypad_button; Ref joypad_axis; + Ref mouse_xbutton1; + Ref mouse_xbutton2; } icon_cache; Ref event;