浏览代码

Unified script panel backgrounds.
- simplefied it with using the new rtl.
- removed ("ScriptPanel", "EditorStyles") for since rtl now can be used
- unified backgrounds when script editor color is set to transparent => option to set background color adapt to theme is deprecated.

toger5 8 年之前
父节点
当前提交
b606285219

+ 2 - 16
editor/editor_help.cpp

@@ -1711,12 +1711,6 @@ void EditorHelp::_notification(int p_what) {
 			_update_doc();
 		} break;
 
-		case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
-			Ref<StyleBoxFlat> style(memnew(StyleBoxFlat));
-			style->set_bg_color(EditorSettings::get_singleton()->get("text_editor/highlighting/background_color"));
-			background_panel->add_style_override("panel", style);
-		} break;
-
 		default: break;
 	}
 }
@@ -1786,14 +1780,11 @@ EditorHelp::EditorHelp() {
 
 	{
 		background_panel = memnew(Panel);
-		Ref<StyleBoxFlat> style(memnew(StyleBoxFlat));
-		style->set_bg_color(EditorSettings::get_singleton()->get("text_editor/highlighting/background_color"));
 		background_panel->set_v_size_flags(SIZE_EXPAND_FILL);
-		background_panel->add_style_override("panel", style); //get_stylebox("normal","TextEdit"));
 		vbc->add_child(background_panel);
 		class_desc = memnew(RichTextLabel);
 		background_panel->add_child(class_desc);
-		class_desc->set_area_as_parent_rect(8);
+		class_desc->set_area_as_parent_rect();
 		class_desc->connect("meta_clicked", this, "_class_desc_select");
 		class_desc->connect("gui_input", this, "_class_desc_input");
 	}
@@ -1881,10 +1872,6 @@ void EditorHelpBit::_bind_methods() {
 }
 
 void EditorHelpBit::_notification(int p_what) {
-
-	if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
-		add_style_override("panel", get_stylebox("ScriptPanel", "EditorStyles"));
-	}
 }
 
 void EditorHelpBit::set_text(const String &p_text) {
@@ -1897,8 +1884,7 @@ EditorHelpBit::EditorHelpBit() {
 
 	rich_text = memnew(RichTextLabel);
 	add_child(rich_text);
-	rich_text->set_area_as_parent_rect(8 * EDSCALE);
+	rich_text->set_area_as_parent_rect();
 	rich_text->connect("meta_clicked", this, "_meta_clicked");
 	set_custom_minimum_size(Size2(0, 70 * EDSCALE));
-	add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("ScriptPanel", "EditorStyles"));
 }

+ 8 - 10
editor/editor_themes.cpp

@@ -198,6 +198,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
 	bool highlight_tabs = EDITOR_DEF("interface/theme/highlight_tabs", false);
 	int border_size = EDITOR_DEF("interface/theme/border_size", 1);
 
+	Color script_bg_color = EDITOR_DEF("text_editor/highlighting/background_color", Color(0, 0, 0, 0));
+
 	switch (preset) {
 		case 0: { // Default
 			highlight_color = Color::html("#699ce8");
@@ -279,8 +281,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
 	editor_register_fonts(theme);
 
 	// Editor background
-	Ref<StyleBoxFlat> style_panel = make_flat_stylebox(dark_color_2, 4, 4, 4, 4);
-	theme->set_stylebox("Background", "EditorStyles", style_panel);
+	theme->set_stylebox("Background", "EditorStyles", make_flat_stylebox(dark_color_2, 4, 4, 4, 4));
 
 	// Focus
 	Ref<StyleBoxFlat> focus_sbt = make_flat_stylebox(contrast_color_1, 4, 4, 4, 4);
@@ -424,12 +425,6 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
 	style_tree_bg->set_border_color_all(dark_color_3);
 	theme->set_stylebox("bg", "Tree", style_tree_bg);
 
-	// Script background
-	Ref<StyleBoxFlat> style_script_bg = make_flat_stylebox(dark_color_1, 0, 0, 0, 0);
-	style_script_bg->set_border_width_all(border_width);
-	style_script_bg->set_border_color_all(dark_color_3);
-	theme->set_stylebox("ScriptPanel", "EditorStyles", style_script_bg);
-
 	// Tree
 	theme->set_icon("checked", "Tree", theme->get_icon("GuiChecked", "EditorIcons"));
 	theme->set_icon("unchecked", "Tree", theme->get_icon("GuiUnchecked", "EditorIcons"));
@@ -614,11 +609,14 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
 	theme->set_icon("grabber_highlight", "VSlider", theme->get_icon("GuiSliderGrabberHl", "EditorIcons"));
 
 	//RichTextLabel
-	theme->set_color("font_color", "RichTextLabel", font_color);
+	Color rtl_combined_bg_color = dark_color_1.linear_interpolate(script_bg_color, script_bg_color.a);
+	Color rtl_font_color = (rtl_combined_bg_color.r + rtl_combined_bg_color.g + rtl_combined_bg_color.b > 0.5 * 3) ? Color(0, 0, 0) : Color(1, 1, 1);
+	theme->set_color("default_color", "RichTextLabel", rtl_font_color);
 	theme->set_stylebox("focus", "RichTextLabel", make_empty_stylebox());
+	theme->set_stylebox("normal", "RichTextLabel", make_flat_stylebox(script_bg_color, 6, 6, 6, 6));
 
 	// Panel
-	theme->set_stylebox("panel", "Panel", style_panel);
+	theme->set_stylebox("panel", "Panel", make_flat_stylebox(dark_color_1, 6, 4, 6, 4));
 
 	// Label
 	theme->set_color("font_color", "Label", font_color);

+ 0 - 3
editor/plugins/script_editor_plugin.cpp

@@ -1149,8 +1149,6 @@ void ScriptEditor::_notification(int p_what) {
 
 		case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
 
-			tab_container->add_style_override("panel", editor->get_gui_base()->get_stylebox("ScriptPanel", "EditorStyles"));
-
 			help_search->set_icon(get_icon("HelpSearch", "EditorIcons"));
 			site_search->set_icon(get_icon("Instance", "EditorIcons"));
 			class_search->set_icon(get_icon("ClassList", "EditorIcons"));
@@ -2210,7 +2208,6 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
 	members_overview->set_v_size_flags(SIZE_EXPAND_FILL);
 
 	tab_container = memnew(TabContainer);
-	tab_container->add_style_override("panel", p_editor->get_gui_base()->get_stylebox("ScriptPanel", "EditorStyles"));
 	tab_container->set_tabs_visible(false);
 	script_split->add_child(tab_container);
 

+ 1 - 0
scene/resources/default_theme/default_theme.cpp

@@ -794,6 +794,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
 	// RichTextLabel
 
 	theme->set_stylebox("focus", "RichTextLabel", focus);
+	theme->set_stylebox("normal", "RichTextLabel", make_stylebox(tree_bg_png, 3, 3, 3, 3));
 
 	theme->set_font("normal_font", "RichTextLabel", default_font);
 	theme->set_font("bold_font", "RichTextLabel", default_font);