Fixed theme update and some widgets.

This commit is contained in:
Daniel J. Ramirez 2017-11-11 11:57:54 -06:00
parent 35e7f99299
commit 592ee82010
4 changed files with 29 additions and 14 deletions

View file

@ -284,9 +284,10 @@ void EditorNode::_notification(int p_what) {
if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/editor/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/editor/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
property_editor->set_enable_capitalize_paths(bool(EDITOR_DEF("interface/editor/capitalize_properties", true))); property_editor->set_enable_capitalize_paths(bool(EDITOR_DEF("interface/editor/capitalize_properties", true)));
Ref<Theme> theme = create_editor_theme(theme_base->get_theme()); Ref<Theme> theme = create_custom_theme(theme_base->get_theme());
theme_base->set_theme(theme); theme_base->set_theme(theme);
gui_base->set_theme(theme);
gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); 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")); play_button_panel->add_style_override("panel", gui_base->get_stylebox("PlayButtonPanel", "EditorStyles"));
@ -4691,9 +4692,9 @@ EditorNode::EditorNode() {
theme_base->add_child(gui_base); theme_base->add_child(gui_base);
gui_base->set_anchors_and_margins_preset(Control::PRESET_WIDE); gui_base->set_anchors_and_margins_preset(Control::PRESET_WIDE);
Ref<Theme> theme = create_editor_theme(); Ref<Theme> theme = create_custom_theme();
theme_base->set_theme(theme); theme_base->set_theme(theme);
gui_base->set_theme(create_custom_theme()); gui_base->set_theme(theme);
gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles"));
resource_preview = memnew(EditorResourcePreview); resource_preview = memnew(EditorResourcePreview);

View file

@ -582,7 +582,22 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("font_color_disabled", "CheckButton", font_color_disabled); theme->set_color("font_color_disabled", "CheckButton", font_color_disabled);
theme->set_color("icon_color_hover", "CheckButton", font_color_hl); theme->set_color("icon_color_hover", "CheckButton", font_color_hl);
theme->set_constant("hseparation", "CheckButton", 4 * EDSCALE);
theme->set_constant("check_vadjust", "CheckButton", 0 * EDSCALE);
// Checkbox // Checkbox
Ref<StyleBoxFlat> sb_checkbox = style_menu->duplicate();
// HACK, in reality, the checkbox draws the text over the icon by default, so the margin compensates that.
const int cb_w = theme->get_icon("GuiChecked", "EditorIcons")->get_width() + default_margin_size;
sb_checkbox->set_default_margin(MARGIN_LEFT, cb_w * EDSCALE);
sb_checkbox->set_default_margin(MARGIN_RIGHT, default_margin_size * EDSCALE);
sb_checkbox->set_default_margin(MARGIN_TOP, default_margin_size * EDSCALE);
sb_checkbox->set_default_margin(MARGIN_BOTTOM, default_margin_size * EDSCALE);
theme->set_stylebox("normal", "CheckBox", sb_checkbox);
theme->set_stylebox("pressed", "CheckBox", sb_checkbox);
theme->set_stylebox("disabled", "CheckBox", sb_checkbox);
theme->set_stylebox("hover", "CheckBox", sb_checkbox);
theme->set_icon("checked", "CheckBox", theme->get_icon("GuiChecked", "EditorIcons")); theme->set_icon("checked", "CheckBox", theme->get_icon("GuiChecked", "EditorIcons"));
theme->set_icon("unchecked", "CheckBox", theme->get_icon("GuiUnchecked", "EditorIcons")); theme->set_icon("unchecked", "CheckBox", theme->get_icon("GuiUnchecked", "EditorIcons"));
theme->set_icon("radio_checked", "CheckBox", theme->get_icon("GuiRadioChecked", "EditorIcons")); theme->set_icon("radio_checked", "CheckBox", theme->get_icon("GuiRadioChecked", "EditorIcons"));
@ -594,6 +609,9 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("font_color_disabled", "CheckBox", font_color_disabled); theme->set_color("font_color_disabled", "CheckBox", font_color_disabled);
theme->set_color("icon_color_hover", "CheckBox", font_color_hl); theme->set_color("icon_color_hover", "CheckBox", font_color_hl);
theme->set_constant("hseparation", "CheckBox", 4 * EDSCALE);
theme->set_constant("check_vadjust", "CheckBox", 0 * EDSCALE);
// PopupMenu // PopupMenu
Ref<StyleBoxFlat> style_popup_menu = style_popup; Ref<StyleBoxFlat> style_popup_menu = style_popup;
theme->set_stylebox("panel", "PopupMenu", style_popup_menu); theme->set_stylebox("panel", "PopupMenu", style_popup_menu);
@ -1049,12 +1067,14 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
return theme; return theme;
} }
Ref<Theme> create_custom_theme() { Ref<Theme> create_custom_theme(const Ref<Theme> p_theme) {
Ref<Theme> theme = create_editor_theme(); Ref<Theme> theme;
String custom_theme = EditorSettings::get_singleton()->get("interface/theme/custom_theme"); String custom_theme = EditorSettings::get_singleton()->get("interface/theme/custom_theme");
if (custom_theme != "") { if (custom_theme != "") {
theme = ResourceLoader::load(custom_theme); theme = ResourceLoader::load(custom_theme);
} else {
theme = create_editor_theme(p_theme);
} }
String global_font = EditorSettings::get_singleton()->get("interface/editor/custom_font"); String global_font = EditorSettings::get_singleton()->get("interface/editor/custom_font");

View file

@ -34,6 +34,6 @@
Ref<Theme> create_editor_theme(Ref<Theme> p_theme = NULL); Ref<Theme> create_editor_theme(Ref<Theme> p_theme = NULL);
Ref<Theme> create_custom_theme(); Ref<Theme> create_custom_theme(Ref<Theme> p_theme = NULL);
#endif #endif

View file

@ -4373,7 +4373,7 @@ void CanvasItemEditorViewport::_on_mouse_exit() {
void CanvasItemEditorViewport::_on_select_type(Object *selected) { void CanvasItemEditorViewport::_on_select_type(Object *selected) {
CheckBox *check = Object::cast_to<CheckBox>(selected); CheckBox *check = Object::cast_to<CheckBox>(selected);
String type = check->get_text(); String type = check->get_text();
selector_label->set_text(vformat(TTR("Add %s"), type)); selector->set_title(vformat(TTR("Add %s"), type));
label->set_text(vformat(TTR("Adding %s..."), type)); label->set_text(vformat(TTR("Adding %s..."), type));
} }
@ -4698,7 +4698,7 @@ void CanvasItemEditorViewport::drop_data(const Point2 &p_point, const Variant &p
CheckBox *check = Object::cast_to<CheckBox>(btn_list[i]); CheckBox *check = Object::cast_to<CheckBox>(btn_list[i]);
check->set_pressed(check->get_text() == default_type); check->set_pressed(check->get_text() == default_type);
} }
selector_label->set_text(vformat(TTR("Add %s"), default_type)); selector->set_title(vformat(TTR("Add %s"), default_type));
selector->popup_centered_minsize(); selector->popup_centered_minsize();
} else { } else {
_perform_drop_data(); _perform_drop_data();
@ -4757,12 +4757,6 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
vbc->set_v_size_flags(SIZE_EXPAND_FILL); vbc->set_v_size_flags(SIZE_EXPAND_FILL);
vbc->set_custom_minimum_size(Size2(200, 260) * EDSCALE); vbc->set_custom_minimum_size(Size2(200, 260) * EDSCALE);
selector_label = memnew(Label);
vbc->add_child(selector_label);
selector_label->set_align(Label::ALIGN_CENTER);
selector_label->set_valign(Label::VALIGN_BOTTOM);
selector_label->set_custom_minimum_size(Size2(0, 30) * EDSCALE);
btn_group = memnew(VBoxContainer); btn_group = memnew(VBoxContainer);
vbc->add_child(btn_group); vbc->add_child(btn_group);
btn_group->set_h_size_flags(0); btn_group->set_h_size_flags(0);