From a3c2d9a6bdbe3967c8f747e39b2b581729b492c1 Mon Sep 17 00:00:00 2001 From: "Daniel J. Ramirez" Date: Fri, 14 Jul 2017 23:40:17 -0500 Subject: [PATCH] Improvements and fixes for the default theme. Added customizable border size and window highlight. --- editor/asset_library_editor_plugin.cpp | 17 +- editor/editor_node.cpp | 5 +- editor/editor_settings.cpp | 9 +- editor/editor_themes.cpp | 232 +++++++++++------- editor/icons/2x/icon_GUI_checked.png | Bin 0 -> 516 bytes editor/icons/2x/icon_GUI_dropdown.png | Bin 0 -> 183 bytes editor/icons/2x/icon_GUI_hslider_bg.png | Bin 0 -> 124 bytes editor/icons/2x/icon_GUI_hsplitter.png | Bin 0 -> 190 bytes editor/icons/2x/icon_GUI_option_arrow.png | Bin 0 -> 304 bytes .../icons/2x/icon_GUI_play_button_group.png | Bin 0 -> 886 bytes editor/icons/2x/icon_GUI_progress_bar.png | Bin 0 -> 289 bytes editor/icons/2x/icon_GUI_progress_fill.png | Bin 0 -> 196 bytes editor/icons/2x/icon_GUI_scroll_bg.png | Bin 0 -> 99 bytes editor/icons/2x/icon_GUI_scroll_grabber.png | Bin 0 -> 193 bytes .../icons/2x/icon_GUI_scroll_grabber_hl.png | Bin 0 -> 297 bytes editor/icons/2x/icon_GUI_slider_grabber.png | Bin 0 -> 260 bytes .../icons/2x/icon_GUI_slider_grabber_hl.png | Bin 0 -> 1040 bytes editor/icons/2x/icon_GUI_spinbox_updown.png | Bin 0 -> 516 bytes editor/icons/2x/icon_GUI_tab_menu.png | Bin 0 -> 221 bytes editor/icons/2x/icon_GUI_toggle_off.png | Bin 0 -> 2606 bytes editor/icons/2x/icon_GUI_toggle_on.png | Bin 0 -> 2178 bytes editor/icons/2x/icon_GUI_tree_arrow_down.png | Bin 0 -> 256 bytes editor/icons/2x/icon_GUI_tree_arrow_right.png | Bin 0 -> 263 bytes editor/icons/2x/icon_GUI_unchecked.png | Bin 0 -> 369 bytes editor/icons/2x/icon_GUI_vslider_bg.png | Bin 0 -> 131 bytes editor/icons/2x/icon_GUI_vsplit_bg.png | Bin 0 -> 104 bytes editor/icons/2x/icon_GUI_vsplitter.png | Bin 0 -> 168 bytes editor/icons/2x/icon_gui_close_dark.png | Bin 0 -> 371 bytes editor/icons/2x/icon_gui_close_light.png | Bin 0 -> 366 bytes editor/icons/2x/icon_help.png | Bin 1126 -> 654 bytes editor/icons/2x/icon_help_search.png | Bin 0 -> 881 bytes editor/icons/icon_GUI_checked.png | Bin 0 -> 341 bytes editor/icons/icon_GUI_dropdown.png | Bin 0 -> 130 bytes editor/icons/icon_GUI_hslider_bg.png | Bin 0 -> 105 bytes editor/icons/icon_GUI_hsplitter.png | Bin 0 -> 132 bytes editor/icons/icon_GUI_option_arrow.png | Bin 0 -> 205 bytes editor/icons/icon_GUI_play_button_group.png | Bin 0 -> 427 bytes editor/icons/icon_GUI_progress_bar.png | Bin 0 -> 183 bytes editor/icons/icon_GUI_progress_fill.png | Bin 0 -> 139 bytes editor/icons/icon_GUI_scroll_bg.png | Bin 0 -> 90 bytes editor/icons/icon_GUI_scroll_grabber.png | Bin 0 -> 147 bytes editor/icons/icon_GUI_scroll_grabber_hl.png | Bin 0 -> 176 bytes editor/icons/icon_GUI_slider_grabber.png | Bin 0 -> 168 bytes editor/icons/icon_GUI_slider_grabber_hl.png | Bin 0 -> 477 bytes editor/icons/icon_GUI_spinbox_updown.png | Bin 0 -> 345 bytes editor/icons/icon_GUI_tab_menu.png | Bin 0 -> 146 bytes editor/icons/icon_GUI_toggle_off.png | Bin 0 -> 1143 bytes editor/icons/icon_GUI_toggle_on.png | Bin 0 -> 1030 bytes editor/icons/icon_GUI_tree_arrow_down.png | Bin 0 -> 170 bytes editor/icons/icon_GUI_tree_arrow_right.png | Bin 0 -> 189 bytes editor/icons/icon_GUI_unchecked.png | Bin 0 -> 231 bytes editor/icons/icon_GUI_vslider_bg.png | Bin 0 -> 108 bytes editor/icons/icon_GUI_vsplit_bg.png | Bin 0 -> 96 bytes editor/icons/icon_GUI_vsplitter.png | Bin 0 -> 122 bytes editor/icons/icon_gui_close_dark.png | Bin 0 -> 171 bytes editor/icons/icon_gui_close_light.png | Bin 0 -> 216 bytes editor/icons/icon_help.png | Bin 578 -> 353 bytes editor/icons/icon_help_search.png | Bin 0 -> 431 bytes editor/icons/source/icon_GUI_checked.svg | 79 ++++++ editor/icons/source/icon_GUI_dropdown.svg | 93 +++++++ editor/icons/source/icon_GUI_hslider_bg.svg | 83 +++++++ editor/icons/source/icon_GUI_hsplitter.svg | 79 ++++++ editor/icons/source/icon_GUI_option_arrow.svg | 80 ++++++ .../source/icon_GUI_play_button_group.svg | 78 ++++++ editor/icons/source/icon_GUI_progress_bar.svg | 81 ++++++ .../icons/source/icon_GUI_progress_fill.svg | 83 +++++++ editor/icons/source/icon_GUI_scroll_bg.svg | 71 ++++++ .../icons/source/icon_GUI_scroll_grabber.svg | 78 ++++++ .../source/icon_GUI_scroll_grabber_hl.svg | 82 +++++++ .../icons/source/icon_GUI_slider_grabber.svg | 81 ++++++ .../source/icon_GUI_slider_grabber_hl.svg | 86 +++++++ .../icons/source/icon_GUI_spinbox_updown.svg | 83 +++++++ editor/icons/source/icon_GUI_tab_menu.svg | 92 +++++++ editor/icons/source/icon_GUI_toggle_off.svg | 80 ++++++ editor/icons/source/icon_GUI_toggle_on.svg | 80 ++++++ .../icons/source/icon_GUI_tree_arrow_down.svg | 80 ++++++ .../source/icon_GUI_tree_arrow_right.svg | 80 ++++++ editor/icons/source/icon_GUI_unchecked.svg | 77 ++++++ editor/icons/source/icon_GUI_vslider_bg.svg | 83 +++++++ editor/icons/source/icon_GUI_vsplit_bg.svg | 79 ++++++ editor/icons/source/icon_GUI_vsplitter.svg | 79 ++++++ editor/icons/source/icon_gui_close_dark.svg | 79 ++++++ editor/icons/source/icon_gui_close_light.svg | 79 ++++++ editor/icons/source/icon_help.svg | 50 +--- editor/icons/source/icon_help_search.svg | 91 +++++++ editor/plugins/script_editor_plugin.cpp | 12 +- editor/plugins/script_editor_plugin.h | 4 +- .../visual_script/visual_script_editor.cpp | 7 +- scene/gui/line_edit.cpp | 7 +- scene/resources/sky_box.cpp | 9 +- 90 files changed, 2313 insertions(+), 155 deletions(-) create mode 100644 editor/icons/2x/icon_GUI_checked.png create mode 100644 editor/icons/2x/icon_GUI_dropdown.png create mode 100644 editor/icons/2x/icon_GUI_hslider_bg.png create mode 100644 editor/icons/2x/icon_GUI_hsplitter.png create mode 100644 editor/icons/2x/icon_GUI_option_arrow.png create mode 100644 editor/icons/2x/icon_GUI_play_button_group.png create mode 100644 editor/icons/2x/icon_GUI_progress_bar.png create mode 100644 editor/icons/2x/icon_GUI_progress_fill.png create mode 100644 editor/icons/2x/icon_GUI_scroll_bg.png create mode 100644 editor/icons/2x/icon_GUI_scroll_grabber.png create mode 100644 editor/icons/2x/icon_GUI_scroll_grabber_hl.png create mode 100644 editor/icons/2x/icon_GUI_slider_grabber.png create mode 100644 editor/icons/2x/icon_GUI_slider_grabber_hl.png create mode 100644 editor/icons/2x/icon_GUI_spinbox_updown.png create mode 100644 editor/icons/2x/icon_GUI_tab_menu.png create mode 100644 editor/icons/2x/icon_GUI_toggle_off.png create mode 100644 editor/icons/2x/icon_GUI_toggle_on.png create mode 100644 editor/icons/2x/icon_GUI_tree_arrow_down.png create mode 100644 editor/icons/2x/icon_GUI_tree_arrow_right.png create mode 100644 editor/icons/2x/icon_GUI_unchecked.png create mode 100644 editor/icons/2x/icon_GUI_vslider_bg.png create mode 100644 editor/icons/2x/icon_GUI_vsplit_bg.png create mode 100644 editor/icons/2x/icon_GUI_vsplitter.png create mode 100644 editor/icons/2x/icon_gui_close_dark.png create mode 100644 editor/icons/2x/icon_gui_close_light.png create mode 100644 editor/icons/2x/icon_help_search.png create mode 100644 editor/icons/icon_GUI_checked.png create mode 100644 editor/icons/icon_GUI_dropdown.png create mode 100644 editor/icons/icon_GUI_hslider_bg.png create mode 100644 editor/icons/icon_GUI_hsplitter.png create mode 100644 editor/icons/icon_GUI_option_arrow.png create mode 100644 editor/icons/icon_GUI_play_button_group.png create mode 100644 editor/icons/icon_GUI_progress_bar.png create mode 100644 editor/icons/icon_GUI_progress_fill.png create mode 100644 editor/icons/icon_GUI_scroll_bg.png create mode 100644 editor/icons/icon_GUI_scroll_grabber.png create mode 100644 editor/icons/icon_GUI_scroll_grabber_hl.png create mode 100644 editor/icons/icon_GUI_slider_grabber.png create mode 100644 editor/icons/icon_GUI_slider_grabber_hl.png create mode 100644 editor/icons/icon_GUI_spinbox_updown.png create mode 100644 editor/icons/icon_GUI_tab_menu.png create mode 100644 editor/icons/icon_GUI_toggle_off.png create mode 100644 editor/icons/icon_GUI_toggle_on.png create mode 100644 editor/icons/icon_GUI_tree_arrow_down.png create mode 100644 editor/icons/icon_GUI_tree_arrow_right.png create mode 100644 editor/icons/icon_GUI_unchecked.png create mode 100644 editor/icons/icon_GUI_vslider_bg.png create mode 100644 editor/icons/icon_GUI_vsplit_bg.png create mode 100644 editor/icons/icon_GUI_vsplitter.png create mode 100644 editor/icons/icon_gui_close_dark.png create mode 100644 editor/icons/icon_gui_close_light.png create mode 100644 editor/icons/icon_help_search.png create mode 100644 editor/icons/source/icon_GUI_checked.svg create mode 100644 editor/icons/source/icon_GUI_dropdown.svg create mode 100644 editor/icons/source/icon_GUI_hslider_bg.svg create mode 100644 editor/icons/source/icon_GUI_hsplitter.svg create mode 100644 editor/icons/source/icon_GUI_option_arrow.svg create mode 100644 editor/icons/source/icon_GUI_play_button_group.svg create mode 100644 editor/icons/source/icon_GUI_progress_bar.svg create mode 100644 editor/icons/source/icon_GUI_progress_fill.svg create mode 100644 editor/icons/source/icon_GUI_scroll_bg.svg create mode 100644 editor/icons/source/icon_GUI_scroll_grabber.svg create mode 100644 editor/icons/source/icon_GUI_scroll_grabber_hl.svg create mode 100644 editor/icons/source/icon_GUI_slider_grabber.svg create mode 100644 editor/icons/source/icon_GUI_slider_grabber_hl.svg create mode 100644 editor/icons/source/icon_GUI_spinbox_updown.svg create mode 100644 editor/icons/source/icon_GUI_tab_menu.svg create mode 100644 editor/icons/source/icon_GUI_toggle_off.svg create mode 100644 editor/icons/source/icon_GUI_toggle_on.svg create mode 100644 editor/icons/source/icon_GUI_tree_arrow_down.svg create mode 100644 editor/icons/source/icon_GUI_tree_arrow_right.svg create mode 100644 editor/icons/source/icon_GUI_unchecked.svg create mode 100644 editor/icons/source/icon_GUI_vslider_bg.svg create mode 100644 editor/icons/source/icon_GUI_vsplit_bg.svg create mode 100644 editor/icons/source/icon_GUI_vsplitter.svg create mode 100644 editor/icons/source/icon_gui_close_dark.svg create mode 100644 editor/icons/source/icon_gui_close_light.svg create mode 100644 editor/icons/source/icon_help_search.svg diff --git a/editor/asset_library_editor_plugin.cpp b/editor/asset_library_editor_plugin.cpp index fcb92e13b4..27d468bc25 100644 --- a/editor/asset_library_editor_plugin.cpp +++ b/editor/asset_library_editor_plugin.cpp @@ -98,10 +98,10 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { Ref border; border.instance(); - /*border->set_default_margin(MARGIN_LEFT,5); - border->set_default_margin(MARGIN_RIGHT,5); - border->set_default_margin(MARGIN_BOTTOM,5); - border->set_default_margin(MARGIN_TOP,5);*/ + border->set_default_margin(MARGIN_LEFT, 5); + border->set_default_margin(MARGIN_RIGHT, 5); + border->set_default_margin(MARGIN_BOTTOM, 5); + border->set_default_margin(MARGIN_TOP, 5); add_style_override("panel", border); HBoxContainer *hb = memnew(HBoxContainer); @@ -1261,15 +1261,6 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { templates_only = p_templates_only; - Ref border; - border.instance(); - border->set_default_margin(MARGIN_LEFT, 15); - border->set_default_margin(MARGIN_RIGHT, 15); - border->set_default_margin(MARGIN_BOTTOM, 5); - border->set_default_margin(MARGIN_TOP, 5); - - add_style_override("panel", border); - VBoxContainer *library_main = memnew(VBoxContainer); add_child(library_main); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 2e0174ad68..497a8ca452 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -341,7 +341,7 @@ void EditorNode::_notification(int p_what) { gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); play_button_panel->add_style_override("panel", gui_base->get_stylebox("PlayButtonPanel", "EditorStyles")); scene_root_parent->add_style_override("panel", gui_base->get_stylebox("Content", "EditorStyles")); - bottom_panel->add_style_override("panel", gui_base->get_stylebox("Content", "EditorStyles")); + bottom_panel->add_style_override("panel", gui_base->get_stylebox("panel", "TabContainer")); scene_tabs->add_style_override("tab_fg", gui_base->get_stylebox("SceneTabFG", "EditorStyles")); scene_tabs->add_style_override("tab_bg", gui_base->get_stylebox("SceneTabBG", "EditorStyles")); if (bool(EDITOR_DEF("interface/scene_tabs/resize_if_many_tabs", true))) { @@ -5422,6 +5422,7 @@ EditorNode::EditorNode() { scene_root_parent = memnew(PanelContainer); scene_root_parent->set_custom_minimum_size(Size2(0, 80) * EDSCALE); scene_root_parent->add_style_override("panel", gui_base->get_stylebox("Content", "EditorStyles")); + // sc->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); //Ref sp = scene_root_parent->get_stylebox("panel","TabContainer"); //scene_root_parent->add_style_override("panel",sp); @@ -5990,7 +5991,7 @@ EditorNode::EditorNode() { _update_layouts_menu(); bottom_panel = memnew(PanelContainer); - bottom_panel->add_style_override("panel", gui_base->get_stylebox("Content", "EditorStyles")); + bottom_panel->add_style_override("panel", gui_base->get_stylebox("panel", "TabContainer")); center_split->add_child(bottom_panel); center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 7a7b2b7d1e..4ab1a435f8 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -537,12 +537,15 @@ void EditorSettings::_load_defaults(Ref p_extra_config) { set("interface/theme/preset", 0); hints["interface/theme/preset"] = PropertyInfo(Variant::INT, "interface/theme/preset", PROPERTY_HINT_ENUM, "Default,Grey,Godot 2,Arc,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); - set("interface/theme/base_color", Color::html("#273241")); + set("interface/theme/base_color", Color::html("#323b4f")); hints["interface/theme/highlight_color"] = PropertyInfo(Variant::COLOR, "interface/theme/highlight_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); - set("interface/theme/highlight_color", Color::html("#b79047")); + set("interface/theme/highlight_color", Color::html("#699ce8")); hints["interface/theme/base_color"] = PropertyInfo(Variant::COLOR, "interface/theme/base_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); set("interface/theme/contrast", 0.2); hints["interface/theme/contrast"] = PropertyInfo(Variant::REAL, "interface/theme/contrast", PROPERTY_HINT_RANGE, "0.01, 1, 0.01"); + set("interface/theme/highlight_tabs", false); + set("interface/theme/border_size", 1); + hints["interface/theme/border_size"] = PropertyInfo(Variant::INT, "interface/theme/border_size", PROPERTY_HINT_RANGE, "0,2,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); set("interface/theme/custom_theme", ""); hints["interface/theme/custom_theme"] = PropertyInfo(Variant::STRING, "interface/theme/custom_theme", PROPERTY_HINT_GLOBAL_FILE, "*.res,*.tres,*.theme", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); @@ -613,7 +616,7 @@ void EditorSettings::_load_defaults(Ref p_extra_config) { set("editors/grid_map/pick_distance", 5000.0); - set("editors/3d/grid_color", Color(0, 1, 0, 0.2)); + set("editors/3d/grid_color", Color(1, 1, 1, 0.2)); hints["editors/3d/grid_color"] = PropertyInfo(Variant::COLOR, "editors/3d/grid_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); set("editors/3d/default_fov", 55.0); diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 5b8f41e75f..ce9b004ce1 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -94,17 +94,21 @@ Ref create_editor_theme() { editor_register_fonts(theme); editor_register_icons(theme); + const float default_contrast = 0.25; + // Define colors - Color highlight_color = EDITOR_DEF("interface/theme/highlight_color", Color::html("#b79047")); - Color base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#273241")); - float contrast = EDITOR_DEF("interface/theme/contrast", 0.25); + Color highlight_color = EDITOR_DEF("interface/theme/highlight_color", Color::html("#000000")); + Color base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#000000")); + float contrast = EDITOR_DEF("interface/theme/contrast", default_contrast); int preset = EDITOR_DEF("interface/theme/preset", 0); + bool highlight_tabs = EDITOR_DEF("interface/theme/highlight_tabs", false); + int border_size = EDITOR_DEF("interface/theme/border_size", 1); switch (preset) { case 0: { // Default - highlight_color = Color::html("#b79047"); - base_color = Color::html("#273241"); - contrast = 0.25; + highlight_color = Color::html("#699ce8"); + base_color = Color::html("#323b4f"); + contrast = default_contrast; } break; case 1: { // Grey highlight_color = Color::html("#3e3e3e"); @@ -130,6 +134,15 @@ Ref create_editor_theme() { Color light_color_1 = base_color.linear_interpolate(Color(1, 1, 1, 1), contrast); Color light_color_2 = base_color.linear_interpolate(Color(1, 1, 1, 1), contrast * 1.5); + const int border_width = (border_size % 3) * EDSCALE; + + Color title_color_hl = base_color; + if (highlight_tabs) + title_color_hl = base_color.linear_interpolate(Color(1, 1, 1, 1), contrast / default_contrast / 10); + bool dark_bg = ((title_color_hl.r + title_color_hl.g + title_color_hl.b) / 3.0) < 0.5; + Color title_color_hl_text_color = dark_bg ? Color(1, 1, 1, 0.9) : Color(0, 0, 0, 0.9); + Ref title_hl_close_icon = theme->get_icon((dark_bg ? "GuiCloseLight" : "GuiCloseDark"), "EditorIcons"); + theme->set_color("highlight_color", "Editor", highlight_color); theme->set_color("base_color", "Editor", base_color); theme->set_color("dark_color_1", "Editor", dark_color_1); @@ -139,10 +152,10 @@ Ref create_editor_theme() { theme->set_color("light_color_2", "Editor", light_color_2); // Checkbox icon - theme->set_icon("checked", "CheckBox", theme->get_icon("Checked", "EditorIcons")); - theme->set_icon("unchecked", "CheckBox", theme->get_icon("Unchecked", "EditorIcons")); - theme->set_icon("checked", "PopupMenu", theme->get_icon("Checked", "EditorIcons")); - theme->set_icon("unchecked", "PopupMenu", theme->get_icon("Unchecked", "EditorIcons")); + theme->set_icon("checked", "CheckBox", theme->get_icon("GuiChecked", "EditorIcons")); + theme->set_icon("unchecked", "CheckBox", theme->get_icon("GuiUnchecked", "EditorIcons")); + theme->set_icon("checked", "PopupMenu", theme->get_icon("GuiChecked", "EditorIcons")); + theme->set_icon("unchecked", "PopupMenu", theme->get_icon("GuiUnchecked", "EditorIcons")); // Editor background Ref style_panel = make_flat_stylebox(dark_color_2, 4, 4, 4, 4); @@ -151,7 +164,7 @@ Ref create_editor_theme() { // Focus Ref focus_sbt = make_flat_stylebox(light_color_1, 4, 4, 4, 4); focus_sbt->set_draw_center(false); - focus_sbt->set_border_size(1 * EDSCALE); + focus_sbt->set_border_size(border_width); focus_sbt = change_border_color(focus_sbt, light_color_2); theme->set_stylebox("Focus", "EditorStyles", focus_sbt); @@ -161,13 +174,13 @@ Ref create_editor_theme() { theme->set_stylebox("MenuPanel", "EditorStyles", style_menu); // Play button group - theme->set_stylebox("PlayButtonPanel", "EditorStyles", make_stylebox(theme->get_icon("PlayButtonGroup", "EditorIcons"), 16, 16, 16, 16, 8, 4, 8, 4)); + theme->set_stylebox("PlayButtonPanel", "EditorStyles", make_stylebox(theme->get_icon("GuiPlayButtonGroup", "EditorIcons"), 16, 16, 16, 16, 8, 4, 8, 4)); Ref style_menu_hover_border = make_flat_stylebox(highlight_color, 4, 4, 4, 4); Ref style_menu_hover_bg = make_flat_stylebox(dark_color_2, 4, 4, 4, 4); style_menu_hover_border->set_draw_center(false); - style_menu_hover_border->_set_additional_border_size(MARGIN_BOTTOM, 1 * EDSCALE); + style_menu_hover_border->_set_additional_border_size(MARGIN_BOTTOM, border_width); theme->set_stylebox("normal", "MenuButton", style_menu); theme->set_stylebox("hover", "MenuButton", style_menu); theme->set_stylebox("pressed", "MenuButton", style_menu); @@ -193,22 +206,37 @@ Ref create_editor_theme() { theme->set_stylebox("MenuHover", "EditorStyles", style_menu_hover_border); // Content of each tab - Ref style_content_panel = make_flat_stylebox(base_color, 1, 4, 1, 1); + Ref style_content_panel = make_flat_stylebox(base_color, 4, 5, 4, 4); + style_content_panel->set_dark_color(title_color_hl); + style_content_panel->set_light_color(title_color_hl); + style_content_panel->set_border_size(border_width); + style_content_panel->set_border_blend(false); + Ref style_content_panel_vp = make_flat_stylebox(base_color, border_width, 5, border_width, border_width); + style_content_panel_vp->set_dark_color(title_color_hl); + style_content_panel_vp->set_light_color(title_color_hl); + style_content_panel_vp->set_border_size(border_width); + style_content_panel_vp->set_border_blend(false); theme->set_stylebox("panel", "TabContainer", style_content_panel); - theme->set_stylebox("Content", "EditorStyles", style_content_panel); + theme->set_stylebox("Content", "EditorStyles", style_content_panel_vp); + + Ref style_button_type = make_flat_stylebox(dark_color_1, 4, 4, 6, 4); + style_button_type->set_draw_center(true); + style_button_type->set_border_size(border_width); + style_button_type->set_light_color(light_color_1); + style_button_type->set_dark_color(light_color_1); + style_button_type->set_border_blend(false); + + Ref style_button_type_disabled = change_border_color(style_button_type, dark_color_2); + + Color button_font_color = light_color_1.linear_interpolate(Color(1, 1, 1, 1), .6); // Button - Ref style_button = make_flat_stylebox(dark_color_1, 4, 4, 4, 4); - style_button->set_draw_center(true); - style_button->set_border_size(2 * EDSCALE); - style_button->set_light_color(light_color_1); - style_button->set_dark_color(light_color_1); - style_button->set_border_blend(false); - theme->set_stylebox("normal", "Button", style_button); - theme->set_stylebox("hover", "Button", style_button); - theme->set_stylebox("pressed", "Button", style_button); - theme->set_stylebox("focus", "Button", style_button); - theme->set_stylebox("disabled", "Button", style_button); + theme->set_stylebox("normal", "Button", style_button_type); + theme->set_stylebox("hover", "Button", change_border_color(style_button_type, HIGHLIGHT_COLOR_LIGHT)); + theme->set_stylebox("pressed", "Button", change_border_color(style_button_type, highlight_color)); + theme->set_stylebox("focus", "Button", change_border_color(style_button_type, highlight_color)); + theme->set_stylebox("disabled", "Button", style_button_type_disabled); + theme->set_color("font_color", "Button", button_font_color); theme->set_color("font_color_hover", "Button", HIGHLIGHT_COLOR_LIGHT); theme->set_color("font_color_pressed", "Button", highlight_color); theme->set_color("icon_color_hover", "Button", HIGHLIGHT_COLOR_LIGHT); @@ -217,41 +245,57 @@ Ref create_editor_theme() { // OptionButton Ref style_option_button = make_flat_stylebox(dark_color_1, 4, 4, 4, 4); - style_option_button->set_border_size(1 * EDSCALE); + style_option_button->set_border_size(border_width); style_option_button->set_light_color(light_color_1); style_option_button->set_dark_color(light_color_1); - style_option_button->_set_additional_border_size(MARGIN_RIGHT, -16 * EDSCALE); - theme->set_stylebox("hover", "OptionButton", change_border_color(style_option_button, HIGHLIGHT_COLOR_LIGHT)); - theme->set_stylebox("pressed", "OptionButton", change_border_color(style_option_button, highlight_color)); - theme->set_stylebox("focus", "OptionButton", change_border_color(style_option_button, highlight_color)); - theme->set_stylebox("disabled", "OptionButton", style_option_button); - theme->set_stylebox("normal", "OptionButton", style_option_button); - theme->set_icon("arrow", "OptionButton", theme->get_icon("OptionArrow", "EditorIcons")); + style_option_button->set_border_blend(false); + theme->set_stylebox("hover", "OptionButton", change_border_color(style_button_type, HIGHLIGHT_COLOR_LIGHT)); + theme->set_stylebox("pressed", "OptionButton", change_border_color(style_button_type, highlight_color)); + theme->set_stylebox("focus", "OptionButton", change_border_color(style_button_type, highlight_color)); + theme->set_stylebox("disabled", "OptionButton", style_button_type_disabled); + theme->set_stylebox("normal", "OptionButton", style_button_type); + theme->set_color("font_color", "OptionButton", button_font_color); + theme->set_color("font_color_hover", "OptionButton", HIGHLIGHT_COLOR_LIGHT); + theme->set_color("font_color_pressed", "OptionButton", highlight_color); + theme->set_color("icon_color_hover", "OptionButton", HIGHLIGHT_COLOR_LIGHT); + theme->set_icon("arrow", "OptionButton", theme->get_icon("GuiOptionArrow", "EditorIcons")); + + // CheckButton + theme->set_icon("on", "CheckButton", theme->get_icon("GuiToggleOn", "EditorIcons")); + theme->set_icon("off", "CheckButton", theme->get_icon("GuiToggleOff", "EditorIcons")); // PopupMenu Ref style_popup_menu = make_flat_stylebox(dark_color_1, 8, 8, 8, 8); - style_popup_menu->set_border_size(2 * EDSCALE); + style_popup_menu->set_border_size(border_width); style_popup_menu->set_light_color(light_color_1); style_popup_menu->set_dark_color(light_color_1); + style_popup_menu->set_border_blend(false); theme->set_stylebox("panel", "PopupMenu", style_popup_menu); + theme->set_stylebox("separator", "PopupMenu", make_empty_stylebox()); // Tree & ItemList background Ref style_tree_bg = make_flat_stylebox(dark_color_1, 2, 4, 2, 4); + style_tree_bg->set_border_size(border_width); + style_tree_bg->set_light_color(dark_color_3); + style_tree_bg->set_dark_color(dark_color_3); theme->set_stylebox("bg", "Tree", style_tree_bg); // Script background Ref style_script_bg = make_flat_stylebox(dark_color_1, 0, 0, 0, 0); + style_script_bg->set_border_size(border_width); + style_script_bg->set_light_color(dark_color_3); + style_script_bg->set_dark_color(dark_color_3); theme->set_stylebox("ScriptPanel", "EditorStyles", style_script_bg); // Tree - theme->set_icon("checked", "Tree", theme->get_icon("Checked", "EditorIcons")); - theme->set_icon("unchecked", "Tree", theme->get_icon("Unchecked", "EditorIcons")); - theme->set_icon("arrow", "Tree", theme->get_icon("TreeArrowDown", "EditorIcons")); - theme->set_icon("arrow_collapsed", "Tree", theme->get_icon("TreeArrowRight", "EditorIcons")); - theme->set_icon("select_arrow", "Tree", theme->get_icon("Dropdown", "EditorIcons")); + theme->set_icon("checked", "Tree", theme->get_icon("GuiChecked", "EditorIcons")); + theme->set_icon("unchecked", "Tree", theme->get_icon("GuiUnchecked", "EditorIcons")); + theme->set_icon("arrow", "Tree", theme->get_icon("GuiTreeArrowDown", "EditorIcons")); + theme->set_icon("arrow_collapsed", "Tree", theme->get_icon("GuiTreeArrowRight", "EditorIcons")); + theme->set_icon("select_arrow", "Tree", theme->get_icon("GuiDropdown", "EditorIcons")); theme->set_stylebox("bg_focus", "Tree", focus_sbt); - theme->set_stylebox("custom_button", "Tree", style_button); - theme->set_stylebox("custom_button_pressed", "Tree", style_button); - theme->set_stylebox("custom_button_hover", "Tree", style_button); + theme->set_stylebox("custom_button", "Tree", style_button_type); + theme->set_stylebox("custom_button_pressed", "Tree", style_button_type); + theme->set_stylebox("custom_button_hover", "Tree", style_button_type); theme->set_color("custom_button_font_highlight", "Tree", HIGHLIGHT_COLOR_LIGHT); Ref style_tree_btn = make_flat_stylebox(light_color_1, 2, 4, 2, 4); @@ -265,7 +309,7 @@ Ref create_editor_theme() { Ref style_tree_cursor = make_flat_stylebox(HIGHLIGHT_COLOR_DARK, 4, 4, 4, 4); style_tree_cursor->set_draw_center(false); - style_tree_cursor->set_border_size(1 * EDSCALE); + style_tree_cursor->set_border_size(border_width); style_tree_cursor->set_light_color(light_color_1); style_tree_cursor->set_dark_color(light_color_1); Ref style_tree_title = make_flat_stylebox(dark_color_3, 4, 4, 4, 4); @@ -284,9 +328,12 @@ Ref create_editor_theme() { // ItemList Ref style_itemlist_bg = make_flat_stylebox(dark_color_1, 4, 4, 4, 4); + style_itemlist_bg->set_border_size(border_width); + style_itemlist_bg->set_light_color(dark_color_3); + style_itemlist_bg->set_dark_color(dark_color_3); Ref style_itemlist_cursor = make_flat_stylebox(highlight_color, 0, 0, 0, 0); style_itemlist_cursor->set_draw_center(false); - style_itemlist_cursor->set_border_size(1 * EDSCALE); + style_itemlist_cursor->set_border_size(border_width); style_itemlist_cursor->set_light_color(HIGHLIGHT_COLOR_DARK); style_itemlist_cursor->set_dark_color(HIGHLIGHT_COLOR_DARK); theme->set_stylebox("cursor", "ItemList", style_itemlist_cursor); @@ -297,7 +344,7 @@ Ref create_editor_theme() { theme->set_stylebox("bg", "ItemList", style_itemlist_bg); theme->set_constant("vseparation", "ItemList", 5 * EDSCALE); - Ref style_tab_fg = make_flat_stylebox(base_color, 15, 5, 15, 5); + Ref style_tab_fg = make_flat_stylebox(title_color_hl, 15, 5, 15, 5); Ref style_tab_bg = make_flat_stylebox(base_color, 15, 5, 15, 5); style_tab_bg->set_draw_center(false); @@ -306,12 +353,17 @@ Ref create_editor_theme() { theme->set_stylebox("tab_bg", "TabContainer", style_tab_bg); theme->set_stylebox("tab_fg", "Tabs", style_tab_fg); theme->set_stylebox("tab_bg", "Tabs", style_tab_bg); - theme->set_color("font_color_fg", "TabContainer", Color(1, 1, 1, 1)); + theme->set_color("font_color_fg", "TabContainer", title_color_hl_text_color); theme->set_color("font_color_bg", "TabContainer", light_color_2); - theme->set_icon("menu", "TabContainer", theme->get_icon("TabMenu", "EditorIcons")); - theme->set_icon("menu_hl", "TabContainer", theme->get_icon("TabMenu", "EditorIcons")); - theme->set_stylebox("SceneTabFG", "EditorStyles", make_flat_stylebox(base_color, 10, 5, 10, 5)); + theme->set_icon("menu", "TabContainer", theme->get_icon("GuiTabMenu", "EditorIcons")); + theme->set_icon("menu_hl", "TabContainer", theme->get_icon("GuiTabMenu", "EditorIcons")); + theme->set_stylebox("SceneTabFG", "EditorStyles", make_flat_stylebox(title_color_hl, 10, 5, 10, 5)); theme->set_stylebox("SceneTabBG", "EditorStyles", make_empty_stylebox(6, 5, 6, 5)); + theme->set_icon("close", "Tabs", title_hl_close_icon); + + // Separatos (no separatos) + theme->set_stylebox("separator", "HSeparator", make_empty_stylebox()); + theme->set_stylebox("separator", "VSeparator", make_empty_stylebox()); // Debugger Ref style_panel_debugger = make_flat_stylebox(dark_color_2, 0, 4, 0, 0); @@ -325,16 +377,15 @@ Ref create_editor_theme() { theme->set_stylebox("DebuggerTabBG", "EditorStyles", style_tab_bg_debugger); // LineEdit - Ref style_lineedit = make_flat_stylebox(dark_color_1, 4, 4, 4, 4); - style_lineedit->set_border_size(1 * EDSCALE); + Ref style_lineedit = style_button_type; style_lineedit = change_border_color(style_lineedit, light_color_1); - Ref style_lineedit_disabled = style_lineedit->duplicate(); - style_lineedit_disabled->set_bg_color(light_color_1); + Ref style_lineedit_disabled = change_border_color(style_lineedit, dark_color_1); + style_lineedit_disabled->set_bg_color(Color(0, 0, 0, .1)); Ref style_lineedit_focus = change_border_color(style_lineedit, highlight_color); - style_lineedit_focus->set_draw_center(false); theme->set_stylebox("normal", "LineEdit", style_lineedit); theme->set_stylebox("focus", "LineEdit", style_lineedit_focus); theme->set_stylebox("read_only", "LineEdit", style_lineedit_disabled); + theme->set_color("read_only", "LineEdit", dark_color_1); // TextEdit Ref style_textedit_normal(memnew(StyleBoxFlat)); @@ -348,31 +399,36 @@ Ref create_editor_theme() { theme->set_constant("side_margin", "TabContainer", 0); // H/VSplitContainer - theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon("VsplitBg", "EditorIcons"), 1, 1, 1, 1)); - theme->set_stylebox("bg", "HSplitContainer", make_stylebox(theme->get_icon("HsplitBg", "EditorIcons"), 1, 1, 1, 1)); + theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon("GuiVsplitBg", "EditorIcons"), 1, 1, 1, 1)); + theme->set_stylebox("bg", "HSplitContainer", make_stylebox(theme->get_icon("GuiHsplitBg", "EditorIcons"), 1, 1, 1, 1)); - theme->set_icon("grabber", "VSplitContainer", theme->get_icon("Vsplitter", "EditorIcons")); - theme->set_icon("grabber", "HSplitContainer", theme->get_icon("Hsplitter", "EditorIcons")); + theme->set_icon("grabber", "VSplitContainer", theme->get_icon("GuiVsplitter", "EditorIcons")); + theme->set_icon("grabber", "HSplitContainer", theme->get_icon("GuiHsplitter", "EditorIcons")); theme->set_constant("separation", "HSplitContainer", 8 * EDSCALE); theme->set_constant("separation", "VSplitContainer", 8 * EDSCALE); // WindowDialog Ref style_window = make_flat_stylebox(dark_color_2, 4, 4, 4, 4); - style_window->set_border_size(2 * EDSCALE); + style_window->set_border_size(border_width); style_window->set_border_blend(false); - style_window->set_light_color(light_color_2); - style_window->set_dark_color(light_color_2); + style_window->set_light_color(title_color_hl); + style_window->set_dark_color(title_color_hl); style_window->_set_additional_border_size(MARGIN_TOP, 24 * EDSCALE); theme->set_stylebox("panel", "WindowDialog", style_window); + theme->set_color("title_color", "WindowDialog", title_color_hl_text_color); + theme->set_icon("close", "WindowDialog", title_hl_close_icon); + theme->set_icon("close_highlight", "WindowDialog", title_hl_close_icon); + theme->set_constant("close_h_ofs", "WindowDialog", 22 * EDSCALE); + theme->set_constant("close_v_ofs", "WindowDialog", 18 * EDSCALE); // HScrollBar Ref empty_icon = memnew(ImageTexture); - theme->set_stylebox("scroll", "HScrollBar", make_stylebox(theme->get_icon("ScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); - theme->set_stylebox("scroll_focus", "HScrollBar", make_stylebox(theme->get_icon("ScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); - theme->set_stylebox("grabber", "HScrollBar", make_stylebox(theme->get_icon("ScrollGrabber", "EditorIcons"), 6, 6, 6, 6, 2, 2, 2, 2)); - theme->set_stylebox("grabber_highlight", "HScrollBar", make_stylebox(theme->get_icon("ScrollGrabberHl", "EditorIcons"), 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("scroll", "HScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("scroll_focus", "HScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("grabber", "HScrollBar", make_stylebox(theme->get_icon("GuiScrollGrabber", "EditorIcons"), 6, 6, 6, 6, 2, 2, 2, 2)); + theme->set_stylebox("grabber_highlight", "HScrollBar", make_stylebox(theme->get_icon("GuiScrollGrabberHl", "EditorIcons"), 5, 5, 5, 5, 2, 2, 2, 2)); theme->set_icon("increment", "HScrollBar", empty_icon); theme->set_icon("increment_highlight", "HScrollBar", empty_icon); @@ -380,10 +436,10 @@ Ref create_editor_theme() { theme->set_icon("decrement_highlight", "HScrollBar", empty_icon); // VScrollBar - theme->set_stylebox("scroll", "VScrollBar", make_stylebox(theme->get_icon("ScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); - theme->set_stylebox("scroll_focus", "VScrollBar", make_stylebox(theme->get_icon("ScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); - theme->set_stylebox("grabber", "VScrollBar", make_stylebox(theme->get_icon("ScrollGrabber", "EditorIcons"), 6, 6, 6, 6, 2, 2, 2, 2)); - theme->set_stylebox("grabber_highlight", "VScrollBar", make_stylebox(theme->get_icon("ScrollGrabberHl", "EditorIcons"), 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("scroll", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("scroll_focus", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollBg", "EditorIcons"), 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("grabber", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollGrabber", "EditorIcons"), 6, 6, 6, 6, 2, 2, 2, 2)); + theme->set_stylebox("grabber_highlight", "VScrollBar", make_stylebox(theme->get_icon("GuiScrollGrabberHl", "EditorIcons"), 5, 5, 5, 5, 2, 2, 2, 2)); theme->set_icon("increment", "VScrollBar", empty_icon); theme->set_icon("increment_highlight", "VScrollBar", empty_icon); @@ -391,21 +447,21 @@ Ref create_editor_theme() { theme->set_icon("decrement_highlight", "VScrollBar", empty_icon); // HSlider - theme->set_stylebox("slider", "HSlider", make_stylebox(theme->get_icon("HsliderBg", "EditorIcons"), 4, 4, 4, 4)); - theme->set_icon("grabber", "HSlider", theme->get_icon("SliderGrabber", "EditorIcons")); - theme->set_icon("grabber_highlight", "HSlider", theme->get_icon("SliderGrabberHl", "EditorIcons")); + theme->set_stylebox("slider", "HSlider", make_stylebox(theme->get_icon("GuiHsliderBg", "EditorIcons"), 4, 4, 4, 4)); + theme->set_icon("grabber", "HSlider", theme->get_icon("GuiSliderGrabber", "EditorIcons")); + theme->set_icon("grabber_highlight", "HSlider", theme->get_icon("GuiSliderGrabberHl", "EditorIcons")); // VSlider - theme->set_stylebox("slider", "VSlider", make_stylebox(theme->get_icon("VsliderBg", "EditorIcons"), 4, 4, 4, 4)); - theme->set_icon("grabber", "VSlider", theme->get_icon("SliderGrabber", "EditorIcons")); - theme->set_icon("grabber_highlight", "VSlider", theme->get_icon("SliderGrabberHl", "EditorIcons")); + theme->set_stylebox("slider", "VSlider", make_stylebox(theme->get_icon("GuiVsliderBg", "EditorIcons"), 4, 4, 4, 4)); + theme->set_icon("grabber", "VSlider", theme->get_icon("GuiSliderGrabber", "EditorIcons")); + theme->set_icon("grabber_highlight", "VSlider", theme->get_icon("GuiSliderGrabberHl", "EditorIcons")); // Panel theme->set_stylebox("panel", "Panel", style_panel); // TooltipPanel Ref style_tooltip = make_flat_stylebox(Color(1, 1, 1, 0.8), 8, 8, 8, 8); - style_tooltip->set_border_size(2 * EDSCALE); + style_tooltip->set_border_size(border_width); style_tooltip->set_border_blend(false); style_tooltip->set_light_color(Color(1, 1, 1, 0.9)); style_tooltip->set_dark_color(Color(1, 1, 1, 0.9)); @@ -419,30 +475,42 @@ Ref create_editor_theme() { theme->set_stylebox("panel", "PopupPanel", style_dock_select); // SpinBox - theme->set_icon("updown", "SpinBox", theme->get_icon("SpinboxUpdown", "EditorIcons")); + theme->set_icon("updown", "SpinBox", theme->get_icon("GuiSpinboxUpdown", "EditorIcons")); + + // ProgressBar + theme->set_stylebox("bg", "ProgressBar", make_stylebox(theme->get_icon("GuiProgressBar", "EditorIcons"), 4, 4, 4, 4, 0, 0, 0, 0)); + theme->set_stylebox("fg", "ProgressBar", make_stylebox(theme->get_icon("GuiProgressFill", "EditorIcons"), 6, 6, 6, 6, 2, 1, 2, 1)); + + // theme->set_font("font", "ProgressBar", default_font); + + // theme->set_color("font_color", "ProgressBar", control_font_color_hover); + theme->set_color("font_color_shadow", "ProgressBar", Color(0, 0, 0)); + + // GraphEdit + theme->set_stylebox("bg", "GraphEdit", make_flat_stylebox(dark_color_2, 4, 4, 4, 4)); // GraphNode Ref graphsb = make_flat_stylebox(Color(0, 0, 0, 0.3), 16, 24, 16, 5); graphsb->set_border_blend(false); - graphsb->set_border_size(2); + graphsb->set_border_size(border_width); graphsb->set_light_color(Color(1, 1, 1, 0.6)); graphsb->set_dark_color(Color(1, 1, 1, 0.6)); graphsb = add_additional_border(graphsb, 0, -22, 0, 0); Ref graphsbselected = make_flat_stylebox(Color(0, 0, 0, 0.4), 16, 24, 16, 5); graphsbselected->set_border_blend(false); - graphsbselected->set_border_size(2); + graphsbselected->set_border_size(border_width); graphsbselected->set_light_color(Color(1, 1, 1, 0.9)); graphsbselected->set_dark_color(Color(1, 1, 1, 0.9)); graphsbselected = add_additional_border(graphsbselected, 0, -22, 0, 0); Ref graphsbcomment = make_flat_stylebox(Color(0, 0, 0, 0.3), 16, 24, 16, 5); graphsbcomment->set_border_blend(false); - graphsbcomment->set_border_size(1); + graphsbcomment->set_border_size(border_width); graphsbcomment->set_light_color(Color(1, 1, 1, 0.6)); graphsbcomment->set_dark_color(Color(1, 1, 1, 0.6)); graphsbcomment = add_additional_border(graphsbcomment, 0, -22, 0, 0); Ref graphsbcommentselected = make_flat_stylebox(Color(0, 0, 0, 0.4), 16, 24, 16, 5); graphsbcommentselected->set_border_blend(false); - graphsbcommentselected->set_border_size(1); + graphsbcommentselected->set_border_size(border_width); graphsbcommentselected->set_light_color(Color(1, 1, 1, 0.9)); graphsbcommentselected->set_dark_color(Color(1, 1, 1, 0.9)); graphsbcommentselected = add_additional_border(graphsbcommentselected, 0, -22, 0, 0); diff --git a/editor/icons/2x/icon_GUI_checked.png b/editor/icons/2x/icon_GUI_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..d51f20b867f77e1c67db81f94abc36f62cd941cb GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zcY3-whD5Z!o#yX%+d<;!ed)u?I`Se_g?V=}-wk#0h*64J_=t&B)bBvk8l{a6k9cCQ zu&=OSo;Wvl_v#;;J#E%Yv%B{7&aJq?kUzC%=EwKu@pjQ{cAxGY-t?%#=3eKb7ZI1_ z8vJ!7{Z;Ze>quKYzZBIdQ>Xi~*t@{+`@P?d#qZ81T@(p_s?N{L-jJJoW_wbhr$YYk z?5Eyq8E*Z5{<+6HE83UENoCtLxruw$ME{Ut+PL*wOG?_>z3V1(=zhrNn=iiW?z>*Y zXX~;KyE#1jqyIN`Kq??eZ_8~R=%53;xJ-RLmY zMZ@C4hrl`B4wuRqxLDTRp?b zrf_>Eak-(VLtgk#V5I`_cdZ|8;nHc=qw|@T3JSoXo?+6D=Vr`Cnmm^1OLn2z=p4%wMpuody*d8gVefUz5`+T;QMbG^i>cX$zJA8kxO7@R0iVh77j7$s` ZlYTQwtlOb8je&uI!PC{xWt~$(696;hChhi( z0|P^`r;B4qM&sLa8#x;scv>Hdd*40idhX+1*E^24Z^TquCM{O@-|XOY$bHHBX!mm6DGm0xDipY$wD)k=!d`@-_Z5C(kUAJ-hm`E09}tPZXHc766v##=VrKQ?Xt QqY2XE>FVdQ&MBb@0OMOdDgXcg literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_option_arrow.png b/editor/icons/2x/icon_GUI_option_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..87fdc8aa51ede10f2c810d4d8cfda66f611b9cb1 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&Co?cG zJoR*O4DslEJLS9=Q=o)<{r*MjFEXz<#v+jHgO$8?6;1q|~V?{R((&n)A-^X|JWpU5P=%df*O?S1>*r_%qD z(eU*AY zU32hW5;~99fZ^H!wYB^Sf3iOYK4Gh1jC;I(!Q#jNZ!+dCo19kI^z$SG0|SGntDnm{ Hr-UW|TY!Vi literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_play_button_group.png b/editor/icons/2x/icon_GUI_play_button_group.png new file mode 100644 index 0000000000000000000000000000000000000000..6a569d5e802aa64744f651a3d1469bd00019c32a GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE>#_?0hx*g42GY?7OFYgJmK6B{D9eL-RUFD>n1FmI7^4g;sEQVr@2P#b(1!kFPS^%*8%k>FK<8N zn4w^+xRE21MS?+o;?p%+UmA@Ms6J$w8PcHmVdkgfyE$WBTJE3tl=(+FxGC?xe_HrT z3l))rAq?z=`@HVPxr=vN)z36DdnnZT=9QB?=aD-*+SHilFumU#mC|_KLvLeWmWcRP zOOFY`;d-4P4cD>91gu|I@A2Ti({%-}xpG3cug{ef?2MekuzAM*>#Xe^>??~mG%wlW zo7koH{vv0A)4!j4e5*Y62{@@As4UzT;rw#4R|DUs-m4~R8f}eU4T3K(Khe7E8ua{s z0H=Z8J+bVTnqba=_7-(r#rq*lJYEJz#N3!d3O6h3JMCM^lHv4ax$=|Qr*5jPV_;Og zKkLty-T=;oJqsh8L9!?Q>{@vUr2oOxgbrPhNQKTpf#{Z+Y}NpiU%^d^+al!Z778V} z8izB<|ET`4)T=>OaQ6z+W3GWoi@95#9le#ry42r_QSQV>zU53g7xt)K=G@@SHEGr% z*;!nhSHwJ+mgdqL?ZTiM$dn@>`05<5;9*NW={?KtE!^17u|UFA0B;YE6rm?XXR zl$=7hUotx&F648^bN(|nO~=)bZa;o-()}8X?4)JZzdJaNhot*OD4tV~+jP0_xo%MV zb=OrJbBg$DlvBCpmpT;-em!n^M_W_wLvzo?ta12nH_Xy z;>_KDmlwIGg?yi@kg6%XNp@Dz#Irn4`~1RAS(%l$oDn|!cX@w@5Xa-sB{_M$Z|><$ mwB6&>e|GDZEqikQF}g?hE1e0K$YNk%VDNPHb6Mw<&;$TUM}+(U literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_progress_bar.png b/editor/icons/2x/icon_GUI_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..ca53eba8d000668adce0df95b97642db138eb70b GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zu6epRhD5Z!y}mK?h=V}u!|!gZKPIxDx_)P&TFD+kmN-u$Yt`C^ETYi{UZt-}}~k?CUz=eC`AP zgrz#C&kHzJ7;bic%#e__d`gfq!@T~!``h3DwyfD-8GBvca`9t}efRIDEt_QgZMx+F zM!tduW|;>J>=p+Y`5qYXzf=CvQ?Gg%;!Hd sg0i;d?tWs&e)8%Wwb0z;p6k;3o1Nq)EL1zez`(%Z>FVdQ&MBb@0MWL4+5i9m literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_progress_fill.png b/editor/icons/2x/icon_GUI_progress_fill.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6c56265046bf14a9268fbca6ffdeb512a78986 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zDm`5sLn2z=_U-09Y{27kl4F&PvsLfIw{Lx!dKb7Ic)7_jL(1c6_1D^YGX);KtPpvz zcR%Bs?6tbaK1B=`(b@CkcZQpoJolMDd*;sHVO}>E$7now_wuukxyTQ5p$QEvDhiDO x4NrDh*DaOiVz7AcF+pbQHRapFPB#7emd|vBS64pS%)r3F;OXk;vd$@?2>^x&ObGx0 literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_scroll_bg.png b/editor/icons/2x/icon_GUI_scroll_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..58369d6f96b4bdc4d33c3975471d2387c503d203 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&CxfIt xT^vI^I^P~-WMp7qXqfPC{W}gWhK5y)oDvL-=iaH>F)%PNc)I$ztaD0e0sw?_8c+ZL literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_scroll_grabber.png b/editor/icons/2x/icon_GUI_scroll_grabber.png new file mode 100644 index 0000000000000000000000000000000000000000..6f74a9365fbdc204aecdb92066e2ba6ad1a65bd8 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&Co?cG zlzF;1hIn+oon**$K!L|Ko~!kp+@kasf7|alu2;xwZEBV+DGIpQSDC!;B)3F>h^w32 z(kXloSbQ{D4|JZ`tfO&QKVkhMjyp=9w*A^ZuVGK6?VKR%>a)sB#xr@jr%4F5xIOzX uVDYK_n#+N2v(nFBVcu5m*tICd?%Es)LAmlr+ZY%a7(8A5T-G@yGywo?Pe{!G literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_scroll_grabber_hl.png b/editor/icons/2x/icon_GUI_scroll_grabber_hl.png new file mode 100644 index 0000000000000000000000000000000000000000..c03ca1adf93fd0de88a257f2dc100c7949836bbe GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&Co?cG z-1BsC4DslEJH^`Xh=GXf``!=Q!GX#w){<76#LFi1$!?gYDH$g8aplUOy%mpQW-(rz zal>KeFCe-NgdRT?9pUL4*(D=Z={N^r(lZ$tM*PeLrZuO+% zYn#h#Jkt%2^*#B%{!!$m%P&`-IAw13ubn?DHfq+H+CK*w7#J8lUHx3vIVCg!0P1^t A%>V!Z literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_slider_grabber.png b/editor/icons/2x/icon_GUI_slider_grabber.png new file mode 100644 index 0000000000000000000000000000000000000000..97e97cb5369dab77481bef05670905ef6d179aa0 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zc6z!vhD5Z!opP45&BYgwk^f`_S!1=~+#vGjGlx#_e( zbz4NAUg~jCkJ`H_D!&{&X((yu>=e(0=sISU7E?~~Uz`)?? L>gTe~DWM4ftP*4p literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_slider_grabber_hl.png b/editor/icons/2x/icon_GUI_slider_grabber_hl.png new file mode 100644 index 0000000000000000000000000000000000000000..2229e25a603bf0fed92e5d17b792f962ed36a70f GIT binary patch literal 1040 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlJ8 zk9xW|hD5Z!4L_eB5-RfVT;-2hYOyAYhMAh&iwtj7=EoiJGB8k7d#8ON(eV%W2Y2zj zn=iXugqD7iKe1@3N4T1vfo6z6r^S2sh8ZUoZJlMMR&sN?`STqwW`Epgoo{74b#C2m z%kR6N|9)rteco@jAM2ahR99)a29`{jnI5{8ErIDkh}|B(2mDG=xm%;O9R>b;xx=$U z>u6z&`Xc|3uTvR6+a*5hzI^%eX_qCx%>-O8dNZtJv@lz+p|@J8$d03FxwEv#q$f){ zbeJm&=ReB*bM(w}t*NKhZgSM)K34c=TgM$OLI2JdQpVRe>sVjPF^f-lHc{tvpFy$g zfpCVhHJ0qIPi7nN_)pC&ee1CAtv!Q9go2Rn%2&tty>y(T^Bk$mx{VO7v1mHxA<-CVrqJ)gUoN0uRg`GZ=+Nt->K59}JO zU8Y2KM{POv@y7SR*LU%>B>rF%v^D6kR{B&Vz#`rD!=i!v$8yG-Hy8@0cFfz#94I2o z_JO-$Vp-43{xGen?G1rUY4f&Dirs#M|BIlzU76x@CWe~(@#>3GC#xvQuI+2wv$yQP z8S}MIw%R>f);T$?p<|y}{p_fm32MGUvzDbaVreD>Btt8s5Imm2|q`_K;CZR`%`9PiKWh!roY%Q|!)uew0?nbq{@`n!eS3fn{dPa6f?nJ+6&-V%6=Y2oycJ8f%%RSS2;fq<* z8^cy_O_H>jZ9eha5}pHB?bL4duDHxA-Fr-=!E*AEGa#pDZT%&1K)Bi5$z^`zx%rGc zSP}#e1i!J{Yt2x1HhKCPJr0Jx$1!aeSs86sg=pEA7tMO2;`z)a3KYpLtBCo|Y^m)6f;PH>YSN&q`3a>r;c~8{&=QBD&T+T6P zNF}N*(k_(IfA;l`aG;3nx%dOD+W+TAPTQMazhs(OhXIej;Kl6>G1(dH2TIfS&0O}9 z`Fg4O_HElzYHDgumEM&MwOzZaSoL#|V5K@o)9tW5-`z81j;n`!Wt(@{T~qL??fKv9 zayF!Ef3wN=b?IZ?@mv4M^-VgnU#jx){5Y=SImvj{FU^K+Iq;zse*v!hKd!GMaEdP&<@z1=>`M)?F85kHCJYD@<);T3K0RV-% B=g$BD literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_spinbox_updown.png b/editor/icons/2x/icon_GUI_spinbox_updown.png new file mode 100644 index 0000000000000000000000000000000000000000..a20b43f9c3a115117c6b64967f1bae2ac1036485 GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zcY3-whD5Z!oqjOuj)92l``TrvgEa2;_0})pJ*)G{K9hMfN8++AsX;HkZ<*kFS^i>% znC{OugI#wmQfGKQcy4k2nKvR0P8{*S_wE0e&v5T| zvZpq~SpyN3wZHcL|8|~H=~?-zCJiPD!}V<&m_An?sWFeKe>~CV`@Qq>A_*sIDih?+ z#I&GjN5L% zeJyb4d2@sHB=Okmv8oNvC$7CU^X8)5+w(VCo-|f?8QW>eP!e12`ibfL`6HQG=WZz8 zsW;2CV-4hS_%!JWZ$o_AwiAZ;+YL6eHr!Xq_gGi_-0tN^%}Dk=-;Xn#Q@QK)E9lny zxy9}(=NW92clyabdJ(SB$#BoRit&NyNq<$|W7YQRKLrnXGn{XCS#;8k(Zg%fw>Bxy z(=r_qrc<^kue|a5q}2tJvr^x+Z)v!!65-#t$cyPr+Gcr;jIGJK)g7W&Q>@RuEK-f# zERn!<=uBSr+0Bd%U;goZU$icgl|dyuDgNfna7G^ok=fylDhjL4tY&Oz|7}`*NuEW) WVxN!B+V2bu3=E#GelF{r5}E)D59pWx literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_tab_menu.png b/editor/icons/2x/icon_GUI_tab_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..3887615fee928da35083c310249bf78181ff9700 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zCV9FzhD5Z!oodL{V8G)VA0xA;iT$ID+?DDVrXuC+?8~jLtn^S^%5kVZnfau?ip}B% z0Vj4IhyONj4i( z0|Vz{PZ!6KiaBrR#O8=x7d`&}dDXQW%cighGacM*{MvM5@a5^Z_@`=3y0prnsVPWc zf|g0&FQ-b6kk*!E3)lKcxp=iM3ea2;wA8_?Lur-TmQc=fht*uNelxu7R4%raapR(fx0KG8r`Zcf2Ujn=ajPG%5U#*$R=;=M3rR=FD8Kaf*#$b-~)!`+Pn^ z7Z)Boc5J(tPDH`I{Ny!PdYO+rE>sokUOO@9pMb;W``>oBNFAsP4gD?{cr8D~Rmh`n^-*{q)+)jy7`Pw{G7KH~6f^u(of$YD0YHtZ(c1moa|0$jEazg84z^@;Nj4 zP0h{U&$F-pw}U@z=dn&<^?fGU*Vd#jnX=mJ&mZsoa}J2Jd#DKAXZygNeLDRaPs7`b z8DBc&%_>_HCHR>u1i$@g&B@59FqGk|f3ekep0z{bf$ieo?CNC>6wg}r_i}diABBk? zUkpC`F&OJU>a4N*Kjk{};Yo`_wp*0FiCAH9Yk%C&)@k*}L+lt3Y9~U0=jFPQ|(jUQ3@RsLuF)=*W>H>-TEykIT%; zs+!tyOlQ%v9JAjo;ZLiLICOO0$Rs_J6#MAiDi$!c!e*Vz;)|+h{!9>9)IIY#BZJ`F z$wBj!7WJ3J{;zm>Y3a_aT|%8l%xC;mXUNJ;ea`sig2~(Uc`r0yR85(=J<4VB&zgUR z`eGAoelnSunCNT|+b8fSe$}dLUtXH~7JHgV)k+`WQ;IrxMyf%KLHEoW!HZlB*0*lo z=AW@_=aN}=X?2WS!=)JRIJ@ZYSjx`e=H|x7{A0W8l{FftHfg^2cc|hKL#yiD*H1qG zydU2E;p_MB+_BfqJvGajIIah{xp?gizW&ws@87>u|E;gi+I*|6B#@sgeqD3e%+GUo zw!Y>wFflQiK6AIuqCJZ=LZj>BkT&Bvggp|pi|*@t`&cM zb(Qgk?32b6Bg^M$r`NW21@{e1j!htkp-scF;vUD7w-eDln;Ta4Fw6F-xLkJ{w=DM9a&o>h1E zduYz@JpQ$gF8We4(f0d)?$)mYz?4=A$-Q zGxX``5HCzL;^-#F z6ALVA*cx(O&#qj3&vW@@&+J=2-`zRzRj*-YdgSGsIolo`>pNs~UrTDmRvjg)LuX#= z?2=pYttU~UzP#hqx$AeYDYtB3YjJSdeCp|3y*)G7Zk7Ft*;$mjDJU&%oA3G-fvUBv ztxk&3am&|9XR7TkhqcQyFVnQ#VI~^hbTjx);xN*dWcy<(&SZEsu|yd@xS?S7a#5)f&b4 zXM4;)r=0s%zhc=Qr0Av^elBWX=fBD}Sig{g;l$ITwF@simu{W$bMx%0k-XRUGn|=I zvP9c2x8sF!c9hr7UteBc-k9}NW%5bB7;cWpQrWppEB6U=wdMq;DS1shZ5>3S0Pb|Zq>6lH#ZxvkK6l;&p7^moSO@KNa)?Su0Q9sHWlx@Q+H!=Q*l&O)Vy!2{#2>X z^|Q}jTf;EdZfs7{2)P^K-uN#mv<`9owYZKAP&kUBT{i`3-AAv~J2X#n|ijKVITH&)?qH)3d^< zWABcS1us6&TDH^f{aTPJU6x&IPVar(wdl*%ty`}eJ)UW16VI2IpYLyCVv^HbyRt;B z;X0T5^89R`!x5TGYec`Dn(ow*8y9Z(;61D0YQ`MRkC*2kJAOR=^}Bcf=3h74d2(g& z@-$OZ)4v?%-+m@M3tx2cMYY|Gr@uuFS2NnQOYe6P@5u015wfhYju8~@J}NgcD37UN z`{VSJXRQCOs#(CN*XgA;`Tm*bpY7dWzV+8sJaX{l$&>thWF-CBTW|a`Qi^)c@kvBd z+$m?ZYQ@%jDQ`$)Y1_|&7_;^xuo zJB6LT7!=>ke#B5C#nrk^FJ{MuuV4RVU1?=z*w(FNeyI8E1iOiB8|rg%a^~OvE-kiF znq6a(*V1Qcn{V=-`6H3Hes$7)@8y^CuSSQ5mGcFpR8&-KTcmM1@8ju3{z4ajA56Vy z?rAi0&g8Rc)!o;R8h>_TC>IPgHm@0g@x=fD literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_toggle_on.png b/editor/icons/2x/icon_GUI_toggle_on.png new file mode 100644 index 0000000000000000000000000000000000000000..41a25e9345b0b496e464e13d1d60f5e5425355a4 GIT binary patch literal 2178 zcmeAS@N?(olHy`uVBq!ia0y~yU}#`qU~u4IV_;yobgjOgfq{W7$=lt9;Xep2*t>i( z0|SS-r;B4q#hkZu;&Wu&WsmRQA9?>5|01ucN7l~WJ==PIaL^p~jK2*Iz5*QzNA{a3 zgledI2?k}VYB@Q%EC^I}x@x8(vXoy?A#kUOYr~a*IIfq?vs=2_mpy89*_wTPcXfH$ zLC!4#S;x0me}1f(o}GO2xovg%w>NLxH$9Pk`={>y-M@F=ocWW+?tuz+L@wCD%Cay< zZ~giZt#aYO`2tQ%FVdbxGj3t@II44=wV=1-9;?B^DMc*;;w=LCX+|^akFUw~oMpzK zb2>`BP-$$JaLVNF0cE`O@{gayfVFq54N+TLgT?85S>IJXcp&m!IK>(7OMJ zt}|VB`LZcR1?r7{Xi=6Qw= zlUWWNInuHwM9ZJyMQ?OBU&o8w^PlCkMYxXM*m^|wz_z#kj210hf3J@3(M&^^&<8F)6BOOcyCeu&v6`9^}gXzGww{sczjy&BzQ(@73FU@-K_V*EW zm3@zEW_5f!{&2Ts;XM()YdIA685$aHbewIU+t*UTke!}o?sY5n`rW0cXHN4=(B1gi$as5O=JXC5 zhUZg)(iwQRZrkR^bl}VxAN2-Zr;fJ_?-HLWyuVs(Y;5e$><}G&`}>T_Y6r>nvzPr; z5xjWj%o#@p`S@c?&!q2)T6=G`a^n(JhOVQJ{(7z4t2o%F5=ZgW`~6V8eW?G0v9=zg1YCL|Nf9|cc-tfkJ%+f zKlT3nyRYBAoy$|e*~syE-c{vK3=(p3_YRzq=eqdheD+NfzNp5I2rtV8Q+~N#u#z^< z+jHtnHRGS`NUiX5bDtJf)?V>bk}saMtkV2Y_0>6N(>9;~%{}9$&Q!1OnoG+VUaS<2 zS6X!WX3n=M_HSpMe#$0u{N-Vx_00EwzK@u;wZFs9p?*`>s;jSJ8RB{`c|Or)5X|L0 z**D#5>AbK1Kk1&{wKqh|HvDz`mxsTcv)DIGow@(D#ku0-*o>(FKf}^3tqwL&|{@mO5b{;uAf9duJoqNyqSMW-|PKvxH_PzF4gDY-LsTSG@hQPHOj z0*`vxYSy=$n4GpcO|>skLR-@Fj=?|wr9qABX3s2MmMQn~yW+3kzwfRNUoXc}kjYxb zbWo;Z$?lvImIEacZtG%qZ!3(Oc-5iwcD;eAsi?)xLuceQr+T%|sMKTl{p;61_5^#S zdCCflzAxUw|KcTc4DVq-Z|~E*bB)sY{^+SKvOjOVZ?oWiua&ZWk8R%QpMF~O-r(~- zw>KtU5#QIzS-CNK`(0;CtSeHRetNG;3&$m%{+A1NXV6h+U`W{i z*kXP}+TEuDKR<0a!R(+}s>ow~=FX$adyD^Vs@}&Ly_{Xw|<7f31KBe=l5^W#Z;@_WZo5+9TnZ>#5OQ-Cg zr>n4ttKt5&f3Jdc#LATuM;IX??W9g z_&F+l6$C5K)U?e!zirz#zR=ZIJsAvm7GM6nN7rj*uFDqN6V~%P{za_~o3ErKOG%K| z&ozAUx0W^CzI7|k!DDk%_8iT_260!O`b0C7l$OS-EsB5nX?v8Q(;uU`e%aA&%Sr{7KdonhH8ElxR#e~!296IRPAuKU%!7(?o|>`s;H=F&YZQo z<3-$>xqF$HcfOdCD4|~J_lafUOQwWr6DLlL_PKoL;ccB=nOpUkgfFtD{hR!H*ZNl; zZ*~4Sh4MFRt?uuxRLPyQ7X?FAL_0w`W e(LnJZd2eGzi+MUv9y2g7FnGH9xvX`uewqd?KM}z1E7Y63O1I269URs?zFmsa2JB63i9`#72`20F` zD3uKU=U|?YIboFyt I=akR{02C}{Q2+n{ literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_tree_arrow_right.png b/editor/icons/2x/icon_GUI_tree_arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..66331c730a2c36f45904c529e70f62968d13470f GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&Co?cG z?D2GQ4DslEJH?Ufkb!{feUWfErz^o4U0c+*a|Q7$UJc&yrrelYciTqag?hgfCm2lr zf9QA;0Ku z%z>L{JyI&FCkmgTe~DWM4f?4@QA literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_GUI_unchecked.png b/editor/icons/2x/icon_GUI_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..f76b6351d81424106e43601ec517b7368c31edf1 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo z)jVAsLn2z=PP6r6HWX=j{x->#$ye@t)@;dN8#1}?ptRz>8!tOQk(Kjn&COKb(zbSP1nvXo$^}2 zA@<*~GvUnLwYhVOgEgQ2UO4l|%3n{Cr!yZ&outCQ?;JdCA-K~RCo zr9r_VP-ODH+5gjW1spgGUo!{VAOF5E=5~ET`(t}Yy_OTJSG_uQK|rwfXIwIq%ND6S zUz%rBO0sOYc8)RUn4bC~|Ku~l0uEj~%g*^S>M-QEzqrQ~k+JsuCY|3BiThXBFUt>p XloGU)XVZ5E1_lOCS3j3^P6|H*Y zfq@~`)5S3)qw(#Pjl2y8JT4dWPw^a7GO*J*B#`MWsHn=_(DHw^&d!Y`>dh*ila|Ch zl8nmM-oX5Hck!1dE*Zf>MxDb+hd&r=d|A`Dlff%P=YVHD|F7*{=c6X6cm{cypW4dB V!M65OJ_7>-gQu&X%Q~loCIB6NI!OQk literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_gui_close_dark.png b/editor/icons/2x/icon_gui_close_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe47e003f9b359e0cb8d662095726316085a8241 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zH9TD$Ln2z=P7BOBpRUI>$uyuWakA|73E+rv=*uSgOU=Zoj~OezKBa701C(KQ}d|O22+H zKj`)vo~>CHbG^cv-MtQCl7jDE1n<&W$QMtM~M#~KbhHglE@ zJXdyS@H$LayyyDp@vU9`%sb{4JUHbdRQcy^uX#gKN7^G*fwM=86|#<;z>^JkaBk z=u6erUVKxYL0eWVCa2mn+qgQDuV9r@iL7IXji`M6;oTf5EtRWwy7C{X&o(kGci;Ns zq=MJ2Y~zku_u_aD%1e4&ny9n;uyd TyZ13LFfe$!`njxgN@xNAMq`$s literal 0 HcmV?d00001 diff --git a/editor/icons/2x/icon_help.png b/editor/icons/2x/icon_help.png index f16a34c91870061f14049a43be4fd4253fdb1a05..771b815020794432235c0d870ae35ba62df79ccb 100644 GIT binary patch delta 612 zcmaFH(Z@Q$w4TY?)5S3)qV?@mdp~JMkz@Pw(>gO2H7G6g-LNLMKx;+73y*`MN>kdT ze{fhbv40TM5ICu+G09^grv`7@wS=Q$UWtK;$!Djh&5hXIcfCzRih5UlVcb^%vmzA z#CKC(kEPyJujMMW3lAJUdUV$kSx@ievnRj3ef##f*U};;2G2=Xj(wc8Zq3&Ar$s+g zEb=!k_`WadijA%Wn`40Pqqdgmd%j!Rsejm?tY#oQgOlaEZon4?(WA}l5BNODPe0&o z#aduvZeG4^&z>4yhObq%7o+NTC#}8v;oka(=g<2v_^sU<->hK4e|Q5k!`iUdk=t*_ z`u;5K`SJ59OON6Gs=fExy_Oc4I=#`7oj<2|;nr_!zsr68{JA|*qVG}tvd6`{@5b%g zx$~yvez|_b8GDaUsya49{@!o>KoQxAZ_=MNyDk3M_GH=jf2s^VhbPxCF$9W)x^va1 zEYe&lcD#_CVNNmkwOgyc?<Ev!nQ}3s(5bm5IS%psr+Fv z)1-To@33w#J2CN&il^t{7oAJ~meeKHZLn=Vk?SaPTz1m$nP0j~c)H&mFT68z+WBwQ zAC_CFU&t^KQ+=CuX>G|LzDc{!?QG5bnX`XUHb*SOgpvtjmElMHPWe~yGA@{@axzfF z)tzD1|5^G%8D6V$^Yg!Zep9{5)#Z2kIjct*;~a0Rf^%ndAH4=a!|JpFH{yLewp+5X=t zpu=PP1&6Z-!(0Ml_`{@F{O{Rtx=xh2B)3ILb%j96_XUic$2_vq_*a_dEY9T@{Bzm+ z#+#h7^0ZBr_WJM4ZqDr79i9Jo?z6M+fB&wvKV1F!8SjS;?5jiTJzR8VpXD<;cFy3K zTgQt)hW_?t%cEE9yt&L_fr7|Wajw>NCpO+V^Pla*`j0HhZ)zF#Uad^cIu)oaa`fKI zSF=9#_wPR~A+GC60L>yYcn! zng7}~($Z@`-MZB@(_>Gtc*D$kA3v{M`xqWfbUS`F;VgV+h(ekz z%~al$YZ?ra$5yZV&fK_%xuK)3L{xaMpUb{oXD?@V-rxPb zDcVoND>bf+S>?`=o{e>f4eqTGU$AAH+2PHRH%0vd^{g2}LiaL0Fz>IE7YknbdFw3k z;FZ&7zq@1kdYbU6tdqeIBOrdY8zI`TMuoTK^WUUwV1nZBqt;iTbn8 z?#q?8`m(b0%Zk;@uH60m@!iLH>lFnJ4;!pwUJ-J77oTNmy|%!^4XRew&u1*ENt^Y| zzcu;zr-KO}7zAzoUDh*JoZ7r?@7)I$;l`*7jd9J?2)Jk>O)id+Y0uHS99?&~!k42kEcEK+S z;5MZ}p}R~gBUQM`Q((=NQ@k#YW)muB`cBVS$UOPvn>g3cyKOb}9&-wUnUitaT z;`@7zTlTlS-nBPTB2ImgBSV=;*^ElZ%UhPWIwg9l@-G!#cQq^Wuz?(t1p5Tf1*Qx( zA8qnC#ptoKrzr@{XD#q5JZ*jc^SM%^i6u?j417NaauqUI%su^7u0%;gx*&G@^qKjm z43&x)W4_exKmGl$UfMo}2hlmNbroGKHP^4pQs6mksC3KB$0bi~^2^OSuXnptE4Nhe zCrq5VR%4mrXNiWBWtCIsGYImY%ud@UE6mOy(tT8(VOi3{g%^BV1*<}fFPofqdsLa3-Q3Y9-hFia+fQ2C6^-Syg*P+o zG2>ahHE;X-jk&jTk1`$=TC-+NOwzOIt7&hV_`MP$&~sk|=J-xd4V zq&(BUd-v}8kV&f*HnOxjC3bea^IXW*kj<{Sjz#fE?D0aUg#*C?YqaUY4@)k&}Wcm@Tr(*eqmM?Lqg=W oS+B)fH*-3=9kmp00i_>zopr03gqZ;Q#;t literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_checked.png b/editor/icons/icon_GUI_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5e7f6bdb5747ed9a752d7b47298003ac130f49 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za(TKqhFJ6-on)JJ*g?Q;zrX!n-;T>~xz5Z}@>MuK@%In5rX}2dA5@=YKN0BW%H1en zUbL6XM~YMA_M{-y;Ijt5@0~lq@L%@L)pMo$iTqB;OXk;vd$@?2>=svjg|la literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_dropdown.png b/editor/icons/icon_GUI_dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd6544830f0425453ce6af78990c5fd55383dde GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2VBq6mV_;wq3X7e_z`($k|H*Y zfq}u?)5S4FVrp`N0_&gu|L_0*|Np=6zyJT=vkNCX1wTG;;J^X4r5m+woIh~j!{o-s hhYX%!!u)O>~%F696K literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_hslider_bg.png b/editor/icons/icon_GUI_hslider_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1286b887f63852aedd2e99fca65579f6da3ef87d GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG z$a%UrhFJ6_CrGf0FuQ5Ybz1h%(r3!9gewh!4x$VUdo&q&uDLO9W?*1o@O1TaS?83{ F1OOLr93TJy literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_hsplitter.png b/editor/icons/icon_GUI_hsplitter.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac1dddf904862c1d06f2e24a2363c28fafd0ba7 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2U~u4IV_;xVXEEzyU|?WN@^*J&_z!{$_AZ~y zz`$VX>EamT(V3i}!20L^|NGDX|Nn1yB1tDBOXY&8p`cM|$iWp&fvk(U+(dh{Btjkh hSznZX=XR1ZU|{%Q&LLRtBm^>+!PC{xWt~$(6980@C;$Ke literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_option_arrow.png b/editor/icons/icon_GUI_option_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bc38e03f32ded10e918e44e0a69f6cde531403 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CY)RhkE)4%caKYZ?lNlHo znmk<`Lo_CyonXjyC_upFzW-FW6UXm3Nbj9>ymR9Q50?!e)Z&~j#GU_;v+W1tMYG^@ z`y$&KE4^%2EWTB<)AZE>ImT5VvJ;rUWa%X?VBU7nXJ5>f*;S#@r3>eI@hgZfb?s;9+UD?kPldJ&WLpzGuIW@qarty zebr3ZAGixMtPEVZ^V9}bqa|*wO2=PyM#;6D`r|Ryw5X%p3pPq^C3!bCodu;on@81%W9)Hf9 g_ORk{eNG)?UY~>WBino#1_lNOPgg&ebxsLQ02Z0LGynhq literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_progress_bar.png b/editor/icons/icon_GUI_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..7d70e6beb53596d4bca404296e9bbcef3c5cfd33 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG zGSjL`wb>8p4r&g`0)PzdYdE-$P_U-@w k|NlQ#=4?+-PdnqeTKUhcw^Z607#J8lUHx3vIVCg!0Ew7MAOHXW literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_progress_fill.png b/editor/icons/icon_GUI_progress_fill.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7b4c554c6ba49a5bb250afe06a3caf726dd2df GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG zIC#1^hFJ6_CrGgNykO#&xBK$<|Ns3KVMlv<^q)L^x?Q2$aH000rIK3eje2c~3@a0^ pFzB!u7#Zz5uvB9H9S=4JePscDuXkC085kHCJYD@<);T3K0RR+4EuH`X literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_scroll_bg.png b/editor/icons/icon_GUI_scroll_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1908fd8aee138ea714f91c699184d537ba30ce81 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CY)RhkE)4%caKYZ?lNlHo p_&r@5Lo_BPCrGd^Zm?otVDe#L^qbP-%fP_E;OXk;vd$@?2>?oz6$bzS literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_scroll_grabber.png b/editor/icons/icon_GUI_scroll_grabber.png new file mode 100644 index 0000000000000000000000000000000000000000..4be7f4e6ccce96d3b1c5271a909515aa6440a8b1 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CY)RhkE)4%caKYZ?lNlHo zJUm?-Lo_B{J+qOw!9jreprueogVKWkQTw>K6s#xlGt8a9QLn1L?OKojp6)X-8Y bDh7R7^;zdOO@7P3z`)??>gTe~DWM4f>)ktg literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_slider_grabber.png b/editor/icons/icon_GUI_slider_grabber.png new file mode 100644 index 0000000000000000000000000000000000000000..76edc3b81f572d0b0b17c515794b54872151005f GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG z#Cp0ohFJ6_CrGf0FuUb6{r~?zJvAZ0BRL`ALkm}KdP2gCqbE-MkdD>m=4-wzAt8}8 z@rS{;kdjs(3!V>0l%BQvD(W$BXsll%v0<)<;haPRZZBo_M>#Qm(ySs(40{*w{5*0? Ss*YU-A}wAck<)1D^Id;V6NYtb9|!q2Y-oYHUpx|s2WtAhK_JRh~MVXMEMW^_4k zYW%uQz-p3^=XsUAojY|kITcG5O)`D|_uZaW--b;(_s?GSZO<{rAsS9*}ML zSnKkiJcZ%j@0X`D8X_x3*%L4SA?xr_nZ_F zD8fItxO&pIMc>Of9)9*Y$n=CEB6^v^t(!CD{&6#0c>g`W@_o5#F2nbv-)GKLP4!B( iKfS42^uz0;@?Y<)aDC-1Go68ffx*+&&t;ucLK6TCiP|^- literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_spinbox_updown.png b/editor/icons/icon_GUI_spinbox_updown.png new file mode 100644 index 0000000000000000000000000000000000000000..ff65df801bf42d9272da9684d461b2d791d78126 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG z@_D*AhFJ6-4L;~~*g<4Y<%BDX8T%WTJ_-2mv(fd!{tL}j9T)tw`4{fly;N@L4D&di zBNs9jvOnMQd)i#dwDd;dgBzL4^;K*qoME`Ld`g+SaE{sR;z{cnv=}Bl`Te)fZuZ%G z|5OUTH>Jo5PMvAWaAB>gZku1u3Z0dG9bS`W-^{(et(d{rB}8yz%=+u%i&@gX@hmXf zeC*7+)0^)2Ex%koiQ72aW7)}+PZnMZD^+(&MfqyJRnhfW$8cofoqzoHaR={CXE?`j zhxc;XcO|8`GjEiamRvpCF8O4Vp69i9abNT&ukk#mlDe4h7wfB2lb`=gub-BB(>HS3 z?PiwRt;yXbB~#l^?H4NXW3Z{scelTM@&{9o*rLB`5~sc~FfcH9y85}Sb4q9e0DaGx APXGV_ literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_tab_menu.png b/editor/icons/icon_GUI_tab_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc63f2d415f70f1a2af0a714a74a7fdc9272a96 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG zxO=)dhFJ6_ryOAX_y52C=>rE6n4iierli#L_{s|FF)x_4bKwoP=}I+h0<0e-3tAc* wA8L!pFT0|2i_tAcXz@k|cLOPI9v+6jwbH^z7OEODFfcH9y85}Sb4q9e07fh>i2wiq literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_toggle_off.png b/editor/icons/icon_GUI_toggle_off.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c599172de738676b3f352a219a94b04bccc76c GIT binary patch literal 1143 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU{K&-V_;xdG`FsWfq{W7$=lt9;Xep2*t>i( z0|SeWr;B4qM&sKE-;9`0k$>mr?wmPu&FmLGC-+Elgou=j9!XFNJ*dNCzOC?O{3ef$ zUgC>pv#`X5#@=u}v531>NHm;vb;PR7;7u1i!%**8By$#c7}-21b;=Xd)Ynyp#( z>E0f-?q|&pdG8eOFFsdZ&-b07-QtL%T)M}!l=AoYYL%v+=9NxvW0>N)MBZVg_buH? zuNkgQ3A%pRV2-?uOw4<`Te&Gp2X5VpiWgvcKdDC6L67^~|K<*fN#Tq&!K<%c+x6`A zv;*7T3JT6V_RXuEp-y~a<=U@vHM*{`v$1X4^)Nm%QuAri&bs^G`!$!gxu&!%VcW2B z%B)pktFP~R_}+`*{Aa(3HqJqeKX?!P)CpVKe7?&tP3XXBr6h)$+{kO+Gk*qgC*1zl z5%h|ClEB3EI;Vdr>V`{I%qu@7QS9cTpd`QiF6T;?h`6|S=bwKrX7Exf%G*ErzGHAp zKSR#9FJI=Y3DNpKsc3~s-{+ryelvJ^t&Hc_s$^IZwz`;M9m5OWrUV;a_eZh`x4%tR z`Xt=Y@nrVbs=xPt?0CJ)S;;7^r;?3fO3?ORL-Fjbw|aNXeQdFrVP36*!o=ulslIQn z9{aq9>!jtRoot!TGCY_;wElj-Wxldiiw5uK#Z@Was4u9G#uE7W7r#SERTtRKY~ zI!^SYM&3W#wy!i+oI!22nJ!ZbF=2gA8P*>{gzq# z^}M5i&$}B(9$K7Jx=^)l@-30>qrD0o4x98d?J`$2FgS>~zDb!OQ2p@qt@KZ_3QE!{ zs~rWtFn&mKu4lA}(-Dhj7O-dHI9yhOt) z!S_?i!hjti8X|g{OVvEHCW+tDb_f%g`0&|xH}%_PDq;#PYgMhA z%Q>bUoC&Lc?$%UFfBp5BPxOWDE>F(4|Gd?G_R^(G7nd;vO0<3U{Orkk{eETM{Y~PeFvB}>uGX6- zGAmg$rk|GfTKO`q{Mq4VfrH!L8Vde&aOvsrSz5`-bkodbox)0ar7KC>3BUcK7=kU>rU{#lC{>Mlmj z_uu_C`iD_RrufHgJAzjE7){=`qhpP9vYco1AAxp@BaeIkGh8VCwdaQa#zF=L1_n=8 KKbLh*2~7aX;TLEC literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_toggle_on.png b/editor/icons/icon_GUI_toggle_on.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd6ce7bee7fcee1a66a1a7bf9c1a1792723f98e GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU{K&-V_;xdG`FsWfq{W7$=lt9;Xep2*t>i( z0|WDJPZ!6KjK;S!&S%GjiX7kne4l(qnBKCLk|%5V)da58FOaz8RIVE(;3!yf(Q9%m z+tJ<|O&5I~1)?@It<4bQauwXI84=#}_Jz`B;aJ;eckf)_G1;u$J9+x|cZC;U&hQa_ zcK5s5+6zAq95DDkr+EMOJJ#>-ls5<}yV;z(V9;zj`)qUHV;Qq!XBcKEEGlI1pT_f> z-}pY;1tF(9cW&MKm7A6Is;qMBcL^`1sI}J`RXpz{J)6#8akyirxJ$~6pWzJRhYfP3 z_Jx}{$Q*a?c#%BierB{;i$HhKDe2UvDP9fNewn7#O`qvH)529ziTQz(0E@jyZ(u}) z%yD%&%G-L^J);oaica=!ob zk1`*Kn50tdDzjEt;P}VO41Lc{)~82qd+_^T;QjCYX_4C)9(=D`taDmyla95oOZl(k zGRG}*duE!P`)^fAW+~2hTib*sxZQA>o;LPVE|Dg_af1Htb|#(AL)e%y5q( zfHA=E*q+FhA*To%X?7EwPsHC{f4of6j*ns8 z>wkCcH|*S5**8;G^Qn;F-w=n{UyT#uvvxeTU}13Cay!tBL7}B$0gLd(g;%d$-lT%p_YW82-l_h6Y%$IfiedDEDb zy5ZcJcD5O3OUes54;+2By#3m*Cky+-l zT*CQDBeqdrru*XpMQq7_vJ6Cx8ocamNTyX zDw%wyQ)%CCR>4@_rU${%`<+4$eBQI3A>yz7_nEur`aOTG)YmFxU}(6J?|}~2l(~t{ zE^QrR%a<=-tIZJbNKT;bp}b4U!rN0SR7#%P$+I-Rt$ny(BGolxZF;ZadC=;T zM^4kdmbLXzH+$O^k>1BYG?lDaABfttEYoO+x0-uS+_nF2Uxo99E6QDqKEBg_*<-lO w>dZC^!MjWW{+GWTGr0Xo*{!Ey&rk7vlX6b5Z{O6-z`(%Z>FVdQ&MBb@08ljQW&i*H literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_tree_arrow_down.png b/editor/icons/icon_GUI_tree_arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef7b41de643b1b4cc3843a92a424add88379398 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CY)RhkE)4%caKYZ?lNlHo z;yqm)Lo_B{?Kk9Va1dZtpVzze!TgrP&$}M1*2!(zdUNXIJ?t5)1dLL||LM0HZf1Sa z7<=jEO@=cER5Mv$a9J=4PdJ9Y>tXNedC|wuv%iX!k>EWh;m^Rpz~JfX=d#Wzp$PypC`y|E literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_unchecked.png b/editor/icons/icon_GUI_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..8341cdc64333179cdedb2c307a44f2a41b17cb2e GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG z%<*(_46*2a8?>AEkbyw0{&B9BYe7qN4(hFOH2WYI*(N(dM>Ta*^VbZ6E)SV*HmSJM z^7qBzG9R)HL?2tsQ!Qoa+s#%q?aAC?bA}aScebXmF?gDu)ce}5%E(}N%=@y*cim!+ zg{GV1E@_@!RUUY5&f_q~`H$o`2nsl56hG2^_m%xT|LU`ACN>i gGBS?8RLjqAaonU)rX^R2fq{X+)78&qol`;+06u6`Z~y=R literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_vslider_bg.png b/editor/icons/icon_GUI_vslider_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8c6cac1ff1ec0461792ffb5fb3460db7fa2952 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG zD0;d$hFJ6_CoB*!cr?-5@$vbC%Q`xP#CxO+vJR|Z3}Iq;Cc`LG%V~U?fq{X+)78&q Iol`;+0LwTZApigX literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_vsplit_bg.png b/editor/icons/icon_GUI_vsplit_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0c29b1e35c94f5bc4022953f4cfa183504762d41 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4mJh`h9ms@x)~T4*pj^6T^Rm@;DWu&Co?cG whhDc0JPDx0ZkaB=|#s^P6c~%CcH4K`%7sZw^FfcH9y85}Sb4q9e01FrxumAu6 literal 0 HcmV?d00001 diff --git a/editor/icons/icon_GUI_vsplitter.png b/editor/icons/icon_GUI_vsplitter.png new file mode 100644 index 0000000000000000000000000000000000000000..56fb20bc3ff53a2058f230cd64fded7604f7c4ce GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyVBp|jV_;zLO!|4Bfq{W7$=lt9;Xep2*t>i( z0|SG;r;B5VN9Wsfj*JWn3``pji?kW7TbR?R`$W;(V8yRl3_1D%-f%r+L@s5Xg7;}er>qer1h(3}YgZ4>5BVP|7tV4JIL VbBrN$HvT literal 0 HcmV?d00001 diff --git a/editor/icons/icon_gui_close_light.png b/editor/icons/icon_gui_close_light.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e3a80e3b72695cbf7f43668a5559c1058a36f4 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG z^m@8DhFJ8TowSknkb!{f{76MX;eZXkUT!WMoVm80V7QRl?q1yCQJBNcwd2&M{r|tz z+WlA^#J*Mk#a^o^XUa>@I3BWbJ1@1U?Ba)j{8#&2S36}ro6^k{)1Yi{^y}*yFU_;k z%C~%idiJiqq_vgli14~S$^HizEvE0Y5Z{~G;ac3ijiqM02lt8e)qgfuF{M>8%S&&6 SeTad9fx*+&&t;ucLK6UF099}R literal 0 HcmV?d00001 diff --git a/editor/icons/icon_help.png b/editor/icons/icon_help.png index f05b512f4cfd7d5570e594bcf3ef3e31ecb86d4e..d70807000eea92cf39a86e3ae07f7aa6d33cdc47 100644 GIT binary patch delta 308 zcmX@a@{nnQS-qI2i(`mI@72kMe$0jfuJ^Zh2Dw@u6j~p)h%@sclZvePO|H&thtr-5 z98R+CaJtYmS$e^et-iwR&6EUPT@IRTyXRqC|L;aYl1BWjWji-qJEt<2+2hxgEgD^q zYWK!nH$2A0aX_oZVEw8r&Vp&&5!vqB8c5dF~#XysBsC6ifPkUTk&jyN$syn`091dkwGeZt|#_u*A8> zM5@*yoqN))`irT@fAI5LdFjSEb4)V%-TS_Bf^W{OXQ|UwPTL&`_Hu5>S8i>3dhli;k_zUYFz!^CeFf==vY-@W@|1WWgq00Dka>ooJsvXXL}DUs$=MZ4ac zygyr$zwiA=#{Zl}VIOSX2Z^}$Gu&Y;aE^{W>prVY$k(qj?kcye zVZ5+pnfdH`xd5%Epp^^tbZn+hQsS>kPL3?STYmD2{QLL# zm2I3`a~Ui|oI)(0|5^~V^H6$Poa?M(%%`0aB3lGDJ*&Lu%5Z|A;ZbG&0ZYb)H}~Qs zq>ioq^X84YBzME}eUI0)Jgwiv{J@IAwri19gE$w1#@usra$Y|F^2KYBh1Vl;eEpcm~o&I3)yl$4`y1V-(6yFVY%2a&Ea3K6= zM^KgZSp{Pmy`y)1e0V0aMSpVQ__*nQUc6nj&5gTzr&(I8@RsxS-MO)Gk%sS_W%ayS zw^K{gpBL=dcTXZGFYayGZmZ-s|MV~aIpJH(!*JxsjuTSHm=!j5_H11BYS;Ufx&1lm z>*M@`0*(uQ*mM2Wqeq*caA=5i%Rl(d8=!T`h~dNIB|$4sJ(|d;(iHYu&C;sMx~#@# y`H#AF;j6zg)-Y~x<;Z-s>)y}f?9Y$q|M1?|DzJR(>t75E3=E#GelF{r5}E+%di?VI`Y+3ft5X&j0?Yq!2{NLMY1 z7CCw}!{k@g`^mP4zdPiw{$hRXhlTHDdC?1*N*d(_ne9?`wY|6l$P@z z*}rCM`qfBlu4kWrb{aklw*2E8YR_OfVfCxuZxb1!{de7cSNuTmgX*y#Ccc;F>#A=% zp0u$-(&@$j{QW7BVLNvPU45Chc_&N3xxHc&#T&Lg;NSZ_$Uad)Df#)G__T@P|F>;< z5b)W- + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_dropdown.svg b/editor/icons/source/icon_GUI_dropdown.svg new file mode 100644 index 0000000000..f313b09983 --- /dev/null +++ b/editor/icons/source/icon_GUI_dropdown.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_hslider_bg.svg b/editor/icons/source/icon_GUI_hslider_bg.svg new file mode 100644 index 0000000000..a920bf34ab --- /dev/null +++ b/editor/icons/source/icon_GUI_hslider_bg.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_hsplitter.svg b/editor/icons/source/icon_GUI_hsplitter.svg new file mode 100644 index 0000000000..01c893fc56 --- /dev/null +++ b/editor/icons/source/icon_GUI_hsplitter.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_option_arrow.svg b/editor/icons/source/icon_GUI_option_arrow.svg new file mode 100644 index 0000000000..5cd943e9e3 --- /dev/null +++ b/editor/icons/source/icon_GUI_option_arrow.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_play_button_group.svg b/editor/icons/source/icon_GUI_play_button_group.svg new file mode 100644 index 0000000000..84bdb00505 --- /dev/null +++ b/editor/icons/source/icon_GUI_play_button_group.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_progress_bar.svg b/editor/icons/source/icon_GUI_progress_bar.svg new file mode 100644 index 0000000000..1edd33dd85 --- /dev/null +++ b/editor/icons/source/icon_GUI_progress_bar.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_progress_fill.svg b/editor/icons/source/icon_GUI_progress_fill.svg new file mode 100644 index 0000000000..cf55c55ab1 --- /dev/null +++ b/editor/icons/source/icon_GUI_progress_fill.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_scroll_bg.svg b/editor/icons/source/icon_GUI_scroll_bg.svg new file mode 100644 index 0000000000..29604b9e14 --- /dev/null +++ b/editor/icons/source/icon_GUI_scroll_bg.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/editor/icons/source/icon_GUI_scroll_grabber.svg b/editor/icons/source/icon_GUI_scroll_grabber.svg new file mode 100644 index 0000000000..b9d2bbbec0 --- /dev/null +++ b/editor/icons/source/icon_GUI_scroll_grabber.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_scroll_grabber_hl.svg b/editor/icons/source/icon_GUI_scroll_grabber_hl.svg new file mode 100644 index 0000000000..ce9a66c5bc --- /dev/null +++ b/editor/icons/source/icon_GUI_scroll_grabber_hl.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_slider_grabber.svg b/editor/icons/source/icon_GUI_slider_grabber.svg new file mode 100644 index 0000000000..fb6c9d1c5c --- /dev/null +++ b/editor/icons/source/icon_GUI_slider_grabber.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_slider_grabber_hl.svg b/editor/icons/source/icon_GUI_slider_grabber_hl.svg new file mode 100644 index 0000000000..c7e9018ac3 --- /dev/null +++ b/editor/icons/source/icon_GUI_slider_grabber_hl.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_spinbox_updown.svg b/editor/icons/source/icon_GUI_spinbox_updown.svg new file mode 100644 index 0000000000..e29d7fe0d2 --- /dev/null +++ b/editor/icons/source/icon_GUI_spinbox_updown.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_tab_menu.svg b/editor/icons/source/icon_GUI_tab_menu.svg new file mode 100644 index 0000000000..39e0d1f261 --- /dev/null +++ b/editor/icons/source/icon_GUI_tab_menu.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_toggle_off.svg b/editor/icons/source/icon_GUI_toggle_off.svg new file mode 100644 index 0000000000..f0cf10a653 --- /dev/null +++ b/editor/icons/source/icon_GUI_toggle_off.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_toggle_on.svg b/editor/icons/source/icon_GUI_toggle_on.svg new file mode 100644 index 0000000000..79715dd767 --- /dev/null +++ b/editor/icons/source/icon_GUI_toggle_on.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_tree_arrow_down.svg b/editor/icons/source/icon_GUI_tree_arrow_down.svg new file mode 100644 index 0000000000..1dd209720f --- /dev/null +++ b/editor/icons/source/icon_GUI_tree_arrow_down.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_tree_arrow_right.svg b/editor/icons/source/icon_GUI_tree_arrow_right.svg new file mode 100644 index 0000000000..43134ba1b1 --- /dev/null +++ b/editor/icons/source/icon_GUI_tree_arrow_right.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_unchecked.svg b/editor/icons/source/icon_GUI_unchecked.svg new file mode 100644 index 0000000000..053cbe6de5 --- /dev/null +++ b/editor/icons/source/icon_GUI_unchecked.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_vslider_bg.svg b/editor/icons/source/icon_GUI_vslider_bg.svg new file mode 100644 index 0000000000..cfa4feeca6 --- /dev/null +++ b/editor/icons/source/icon_GUI_vslider_bg.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_vsplit_bg.svg b/editor/icons/source/icon_GUI_vsplit_bg.svg new file mode 100644 index 0000000000..e11940cf53 --- /dev/null +++ b/editor/icons/source/icon_GUI_vsplit_bg.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_GUI_vsplitter.svg b/editor/icons/source/icon_GUI_vsplitter.svg new file mode 100644 index 0000000000..80f7c2ce12 --- /dev/null +++ b/editor/icons/source/icon_GUI_vsplitter.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_gui_close_dark.svg b/editor/icons/source/icon_gui_close_dark.svg new file mode 100644 index 0000000000..ccb4239784 --- /dev/null +++ b/editor/icons/source/icon_gui_close_dark.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_gui_close_light.svg b/editor/icons/source/icon_gui_close_light.svg new file mode 100644 index 0000000000..90d811965b --- /dev/null +++ b/editor/icons/source/icon_gui_close_light.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/editor/icons/source/icon_help.svg b/editor/icons/source/icon_help.svg index 01e85e0f55..cc8517d2d1 100644 --- a/editor/icons/source/icon_help.svg +++ b/editor/icons/source/icon_help.svg @@ -14,7 +14,7 @@ viewBox="0 0 16 16" id="svg2" version="1.1" - inkscape:version="0.91 r13725" + inkscape:version="0.92+devel unknown" inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_help.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="31.999999" - inkscape:cx="5.4018713" - inkscape:cy="8.2308388" + inkscape:cx="9.7940153" + inkscape:cy="7.5068869" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -46,7 +46,8 @@ inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" - inkscape:window-maximized="1"> + inkscape:window-maximized="1" + inkscape:document-rotation="0"> @@ -59,7 +60,7 @@ image/svg+xml - + @@ -69,42 +70,9 @@ id="layer1" transform="translate(0,-1036.3622)"> - - - - + id="path4270" /> diff --git a/editor/icons/source/icon_help_search.svg b/editor/icons/source/icon_help_search.svg new file mode 100644 index 0000000000..ab914c0c64 --- /dev/null +++ b/editor/icons/source/icon_help_search.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index dc2eddda39..d10831eea1 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -1056,7 +1056,7 @@ void ScriptEditor::_notification(int p_what) { } EditorSettings::get_singleton()->connect("settings_changed", this, "_editor_settings_changed"); - help_search->set_icon(get_icon("Help", "EditorIcons")); + help_search->set_icon(get_icon("HelpSearch", "EditorIcons")); site_search->set_icon(get_icon("Instance", "EditorIcons")); class_search->set_icon(get_icon("ClassList", "EditorIcons")); @@ -2172,11 +2172,17 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { members_overview_enabled = true; editor = p_editor; + Ref sb = p_editor->get_gui_base()->get_stylebox("panel", "TabContainer")->duplicate(); + sb->set_default_margin(MARGIN_TOP, 0); + add_style_override("panel", sb); + VBoxContainer *main_container = memnew(VBoxContainer); + add_child(main_container); + menu_hb = memnew(HBoxContainer); - add_child(menu_hb); + main_container->add_child(menu_hb); script_split = memnew(HSplitContainer); - add_child(script_split); + main_container->add_child(script_split); script_split->set_v_size_flags(SIZE_EXPAND_FILL); list_split = memnew(VSplitContainer); diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 7f17365931..010a5604ec 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -115,9 +115,9 @@ typedef ScriptEditorBase *(*CreateScriptEditorFunc)(const Ref