Merge pull request #11789 from djrm/pr_visual_improvements
Added correct initialization for script editor theme.
This commit is contained in:
commit
a848fa6cde
9 changed files with 189 additions and 93 deletions
|
@ -146,6 +146,25 @@ void editor_register_and_generate_icons(Ref<Theme> p_theme, bool p_dark_theme =
|
|||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#84c2ff", "#5caeff"); // selection (blue)
|
||||
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#ea686c", "#e3383d"); // key xform (red)
|
||||
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#69ecbd", "#25e3a0"); // VS variant
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#8da6f0", "#6d8eeb"); // VS bool
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#7dc6ef", "#4fb2e9"); // VS int
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#61daf4", "#27ccf0"); // VS float
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#6ba7ec", "#4690e7"); // VS string
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#bd91f1", "#ad76ee"); // VS vector2
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#f191a5", "#ee758e"); // VS rect
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#e286f0", "#dc6aed"); // VS vector3
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#c4ec69", "#96ce1a"); // VS transform2D
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#f77070", "#f77070"); // VS plane
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#ec69a3", "#ec69a3"); // VS quat
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#ee7991", "#ee7991"); // VS aabb
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#e3ec69", "#b2bb19"); // VS basis
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#f6a86e", "#f49047"); // VS transform
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#6993ec", "#6993ec"); // VS path
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#69ec9a", "#2ce573"); // VS rid
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#79f3e8", "#12d5c3"); // VS object
|
||||
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#77edb1", "#57e99f"); // VS dict
|
||||
}
|
||||
|
||||
// these ones should be converted even if we are using a dark theme
|
||||
|
@ -474,7 +493,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
theme->set_stylebox("MenuPanel", "EditorStyles", style_menu);
|
||||
|
||||
// Script Editor
|
||||
theme->set_stylebox("ScriptEditorPanel", "EditorStyles", make_empty_stylebox(4, 0, 4, 4));
|
||||
theme->set_stylebox("ScriptEditorPanel", "EditorStyles", make_empty_stylebox(default_margin_size, 0, default_margin_size, default_margin_size));
|
||||
theme->set_stylebox("ScriptEditor", "EditorStyles", make_empty_stylebox(0, 0, 0, 0));
|
||||
|
||||
// Play button group
|
||||
|
@ -545,7 +564,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
theme->set_color("font_color_disabled", "OptionButton", font_color_disabled);
|
||||
theme->set_color("icon_color_hover", "OptionButton", font_color_hl);
|
||||
theme->set_icon("arrow", "OptionButton", theme->get_icon("GuiOptionArrow", "EditorIcons"));
|
||||
theme->set_constant("arrow_margin", "OptionButton", 4 * EDSCALE);
|
||||
theme->set_constant("arrow_margin", "OptionButton", default_margin_size * EDSCALE);
|
||||
theme->set_constant("modulate_arrow", "OptionButton", true);
|
||||
|
||||
// CheckButton
|
||||
|
@ -597,6 +616,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
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("updown", "Tree", theme->get_icon("GuiTreeUpdown", "EditorIcons"));
|
||||
theme->set_icon("select_arrow", "Tree", theme->get_icon("GuiDropdown", "EditorIcons"));
|
||||
theme->set_icon("select_option", "Tree", theme->get_icon("GuiTreeOption", "EditorIcons"));
|
||||
theme->set_stylebox("bg_focus", "Tree", style_focus);
|
||||
|
@ -672,8 +692,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
theme->set_color("font_color", "ItemList", font_color);
|
||||
theme->set_color("font_color_selected", "ItemList", mono_color);
|
||||
theme->set_color("guide_color", "ItemList", guide_color);
|
||||
theme->set_constant("vseparation", "ItemList", 2);
|
||||
theme->set_constant("hseparation", "ItemList", 2);
|
||||
theme->set_constant("vseparation", "ItemList", 2 * EDSCALE);
|
||||
theme->set_constant("hseparation", "ItemList", 2 * EDSCALE);
|
||||
theme->set_constant("icon_margin", "ItemList", default_margin_size * EDSCALE);
|
||||
theme->set_constant("line_separation", "ItemList", 2 * EDSCALE);
|
||||
|
||||
|
@ -880,21 +900,23 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
|
||||
// GraphNode
|
||||
|
||||
const float mv = dark_theme ? 0.0 : 1.0;
|
||||
const float mv2 = 1.0 - mv;
|
||||
const int gn_margin_side = 28;
|
||||
Ref<StyleBoxFlat> graphsb = make_flat_stylebox(Color(0, 0, 0, 0.3), gn_margin_side, 24, gn_margin_side, 5);
|
||||
Ref<StyleBoxFlat> graphsb = make_flat_stylebox(Color(mv, mv, mv, 0.7), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsb->set_border_width_all(border_width);
|
||||
graphsb->set_border_color_all(Color(1, 1, 1, 0.9));
|
||||
Ref<StyleBoxFlat> graphsbselected = make_flat_stylebox(Color(0, 0, 0, 0.6), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsb->set_border_color_all(Color(mv2, mv2, mv2, 0.9));
|
||||
Ref<StyleBoxFlat> graphsbselected = make_flat_stylebox(Color(mv, mv, mv, 0.9), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsbselected->set_border_width_all(border_width);
|
||||
graphsbselected->set_border_color_all(Color(accent_color.r, accent_color.g, accent_color.b, 0.9));
|
||||
graphsbselected->set_shadow_size(8 * EDSCALE);
|
||||
graphsbselected->set_shadow_color(shadow_color);
|
||||
Ref<StyleBoxFlat> graphsbcomment = make_flat_stylebox(Color(0, 0, 0, 0.3), gn_margin_side, 24, gn_margin_side, 5);
|
||||
Ref<StyleBoxFlat> graphsbcomment = make_flat_stylebox(Color(mv, mv, mv, 0.3), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsbcomment->set_border_width_all(border_width);
|
||||
graphsbcomment->set_border_color_all(Color(1, 1, 1, 0.9));
|
||||
Ref<StyleBoxFlat> graphsbcommentselected = make_flat_stylebox(Color(0, 0, 0, 0.4), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsbcomment->set_border_color_all(Color(mv2, mv2, mv2, 0.9));
|
||||
Ref<StyleBoxFlat> graphsbcommentselected = make_flat_stylebox(Color(mv, mv, mv, 0.4), gn_margin_side, 24, gn_margin_side, 5);
|
||||
graphsbcommentselected->set_border_width_all(border_width);
|
||||
graphsbcommentselected->set_border_color_all(Color(1, 1, 1, 0.9));
|
||||
graphsbcommentselected->set_border_color_all(Color(mv2, mv2, mv2, 0.9));
|
||||
Ref<StyleBoxFlat> graphsbbreakpoint = graphsbselected->duplicate();
|
||||
graphsbbreakpoint->set_draw_center(false);
|
||||
graphsbbreakpoint->set_border_color_all(warning_color);
|
||||
|
|
5
editor/icons/icon_GUI_tree_updown.svg
Normal file
5
editor/icons/icon_GUI_tree_updown.svg
Normal file
|
@ -0,0 +1,5 @@
|
|||
<svg width="14" height="14" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -1038.4)">
|
||||
<path transform="translate(0 1038.4)" d="m6.9844 1.002a1.0001 1.0001 0 0 0 -0.69141 0.29102l-3 3a1 1 0 0 0 0 1.4141 1 1 0 0 0 1.4141 0l2.293-2.293 2.293 2.293a1 1 0 0 0 1.4141 0 1 1 0 0 0 0 -1.4141l-3-3a1.0001 1.0001 0 0 0 -0.72266 -0.29102zm3 6.998a1 1 0 0 0 -0.69141 0.29297l-2.293 2.293-2.293-2.293a1 1 0 0 0 -0.7207 -0.29102 1 1 0 0 0 -0.69336 0.29102 1 1 0 0 0 0 1.4141l3 3a1.0001 1.0001 0 0 0 1.4141 0l3-3a1 1 0 0 0 0 -1.4141 1 1 0 0 0 -0.72266 -0.29297z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fff" fill-opacity=".58824" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="filter-blend-mode:normal;filter-gaussianBlur-deviation:0;font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -1,7 +1,7 @@
|
|||
<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -1040.4)">
|
||||
<path transform="translate(0 1040.4)" d="m4 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1z" fill="#ff7070"/>
|
||||
<path transform="translate(0 1040.4)" d="m14 4a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2h-1z" fill="#70bfff"/>
|
||||
<path transform="translate(0 1040.4)" d="m6 2v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5h-2z" fill="#7aff70"/>
|
||||
<path transform="translate(0 1040.4)" d="m4 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1z" fill="#ff8484"/>
|
||||
<path transform="translate(0 1040.4)" d="m14 4a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2h-1z" fill="#84c2ff"/>
|
||||
<path transform="translate(0 1040.4)" d="m6 2v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5h-2z" fill="#84ffb1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |
|
@ -1,5 +0,0 @@
|
|||
<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -1040.4)">
|
||||
<path transform="translate(0 1040.4)" d="m0 1v2h2v-2h-2zm3 2v6h2v-4a1 1 0 0 1 1 1v3h2v-3-1a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2v0.17578a3 3 0 0 0 -1 -0.17578h-2zm8 3a3 3 0 0 0 3 3 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-6h-2a3 3 0 0 0 -3 3zm-11-1v4h2v-4h-2zm14 0v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#93f1b9"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 463 B |
|
@ -1,5 +0,0 @@
|
|||
<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -1040.4)">
|
||||
<path transform="translate(0 1040.4)" d="m0 2v2h2v-2h-2zm13 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2zm0 5a3 3 0 0 0 -3 -3h-2v3a3 3 0 0 0 -3 -3h-2v6h2v-4a1 1 0 0 1 1 1v3h2v2h2v-2a3 3 0 0 0 3 -3zm-13-1v4h2v-4h-2zm10 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2z" fill="#adf18f"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 427 B |
|
@ -1683,9 +1683,8 @@ bool ScriptEditor::edit(const Ref<Script> &p_script, int p_line, int p_col, bool
|
|||
}
|
||||
ERR_FAIL_COND_V(!se, false);
|
||||
|
||||
// load script before adding as child else editor will crash at theme loading
|
||||
se->set_edited_script(p_script);
|
||||
tab_container->add_child(se);
|
||||
se->set_edited_script(p_script);
|
||||
se->set_tooltip_request_func("_get_debug_tooltip", this);
|
||||
if (se->get_edit_menu()) {
|
||||
se->get_edit_menu()->hide();
|
||||
|
|
|
@ -168,14 +168,34 @@ void ScriptTextEditor::_load_theme_settings() {
|
|||
|
||||
text_edit->add_constant_override("line_spacing", EDITOR_DEF("text_editor/theme/line_spacing", 4));
|
||||
|
||||
colors_cache.symbol_color = symbol_color;
|
||||
colors_cache.keyword_color = keyword_color;
|
||||
colors_cache.basetype_color = basetype_color;
|
||||
colors_cache.type_color = type_color;
|
||||
colors_cache.comment_color = comment_color;
|
||||
colors_cache.string_color = string_color;
|
||||
|
||||
theme_loaded = true;
|
||||
if (!script.is_null())
|
||||
_set_theme_for_script();
|
||||
}
|
||||
|
||||
void ScriptTextEditor::_set_theme_for_script() {
|
||||
|
||||
if (!theme_loaded)
|
||||
return;
|
||||
|
||||
TextEdit *text_edit = code_editor->get_text_edit();
|
||||
|
||||
List<String> keywords;
|
||||
script->get_language()->get_reserved_words(&keywords);
|
||||
for (List<String>::Element *E = keywords.front(); E; E = E->next()) {
|
||||
|
||||
text_edit->add_keyword_color(E->get(), keyword_color);
|
||||
text_edit->add_keyword_color(E->get(), colors_cache.keyword_color);
|
||||
}
|
||||
|
||||
//colorize core types
|
||||
const Color basetype_color = colors_cache.basetype_color;
|
||||
text_edit->add_keyword_color("String", basetype_color);
|
||||
text_edit->add_keyword_color("Vector2", basetype_color);
|
||||
text_edit->add_keyword_color("Rect2", basetype_color);
|
||||
|
@ -210,7 +230,7 @@ void ScriptTextEditor::_load_theme_settings() {
|
|||
if (n.begins_with("_"))
|
||||
n = n.substr(1, n.length());
|
||||
|
||||
text_edit->add_keyword_color(n, type_color);
|
||||
text_edit->add_keyword_color(n, colors_cache.type_color);
|
||||
}
|
||||
|
||||
//colorize comments
|
||||
|
@ -223,7 +243,7 @@ void ScriptTextEditor::_load_theme_settings() {
|
|||
String beg = comment.get_slice(" ", 0);
|
||||
String end = comment.get_slice_count(" ") > 1 ? comment.get_slice(" ", 1) : String();
|
||||
|
||||
text_edit->add_color_region(beg, end, comment_color, end == "");
|
||||
text_edit->add_color_region(beg, end, colors_cache.comment_color, end == "");
|
||||
}
|
||||
|
||||
//colorize strings
|
||||
|
@ -235,7 +255,7 @@ void ScriptTextEditor::_load_theme_settings() {
|
|||
String string = E->get();
|
||||
String beg = string.get_slice(" ", 0);
|
||||
String end = string.get_slice_count(" ") > 1 ? string.get_slice(" ", 1) : String();
|
||||
text_edit->add_color_region(beg, end, string_color, end == "");
|
||||
text_edit->add_color_region(beg, end, colors_cache.string_color, end == "");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,10 +283,10 @@ void ScriptTextEditor::reload_text() {
|
|||
|
||||
void ScriptTextEditor::_notification(int p_what) {
|
||||
|
||||
if (p_what == NOTIFICATION_READY) {
|
||||
|
||||
//emit_signal("name_changed");
|
||||
_load_theme_settings();
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_READY:
|
||||
_load_theme_settings();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -556,6 +576,8 @@ void ScriptTextEditor::set_edited_script(const Ref<Script> &p_script) {
|
|||
|
||||
emit_signal("name_changed");
|
||||
code_editor->update_line_and_column();
|
||||
|
||||
_set_theme_for_script();
|
||||
}
|
||||
|
||||
void ScriptTextEditor::_validate_script() {
|
||||
|
@ -1452,6 +1474,8 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color) {
|
|||
|
||||
ScriptTextEditor::ScriptTextEditor() {
|
||||
|
||||
theme_loaded = false;
|
||||
|
||||
code_editor = memnew(CodeTextEditor);
|
||||
add_child(code_editor);
|
||||
code_editor->add_constant_override("separation", 0);
|
||||
|
|
|
@ -57,6 +57,17 @@ class ScriptTextEditor : public ScriptEditorBase {
|
|||
int color_line;
|
||||
String color_args;
|
||||
|
||||
struct ColorsCache {
|
||||
Color symbol_color;
|
||||
Color keyword_color;
|
||||
Color basetype_color;
|
||||
Color type_color;
|
||||
Color comment_color;
|
||||
Color string_color;
|
||||
} colors_cache;
|
||||
|
||||
bool theme_loaded;
|
||||
|
||||
enum {
|
||||
EDIT_UNDO,
|
||||
EDIT_REDO,
|
||||
|
@ -101,6 +112,7 @@ protected:
|
|||
void _validate_script();
|
||||
void _code_complete_script(const String &p_code, List<String> *r_options, bool &r_force);
|
||||
void _load_theme_settings();
|
||||
void _set_theme_for_script();
|
||||
|
||||
void _notification(int p_what);
|
||||
static void _bind_methods();
|
||||
|
|
|
@ -331,44 +331,83 @@ public:
|
|||
VisualScriptEditorVariableEdit() { undo_redo = NULL; }
|
||||
};
|
||||
|
||||
static Color _color_from_type(Variant::Type p_type) {
|
||||
static Color _color_from_type(Variant::Type p_type, bool dark_theme = true) {
|
||||
Color color;
|
||||
switch (p_type) {
|
||||
case Variant::NIL: color = Color::html("69ecbd"); break;
|
||||
if (dark_theme)
|
||||
switch (p_type) {
|
||||
case Variant::NIL: color = Color::html("#69ecbd"); break;
|
||||
|
||||
case Variant::BOOL: color = Color::html("8da6f0"); break;
|
||||
case Variant::INT: color = Color::html("7dc6ef"); break;
|
||||
case Variant::REAL: color = Color::html("61daf4"); break;
|
||||
case Variant::STRING: color = Color::html("6ba7ec"); break;
|
||||
case Variant::BOOL: color = Color::html("#8da6f0"); break;
|
||||
case Variant::INT: color = Color::html("#7dc6ef"); break;
|
||||
case Variant::REAL: color = Color::html("#61daf4"); break;
|
||||
case Variant::STRING: color = Color::html("#6ba7ec"); break;
|
||||
|
||||
case Variant::VECTOR2: color = Color::html("bd91f1"); break;
|
||||
case Variant::RECT2: color = Color::html("f191a5"); break;
|
||||
case Variant::VECTOR3: color = Color::html("d67dee"); break;
|
||||
case Variant::TRANSFORM2D: color = Color::html("c4ec69"); break;
|
||||
case Variant::PLANE: color = Color::html("f77070"); break;
|
||||
case Variant::QUAT: color = Color::html("ec69a3"); break;
|
||||
case Variant::RECT3: color = Color::html("ee7991"); break;
|
||||
case Variant::BASIS: color = Color::html("e3ec69"); break;
|
||||
case Variant::TRANSFORM: color = Color::html("f6a86e"); break;
|
||||
case Variant::VECTOR2: color = Color::html("#bd91f1"); break;
|
||||
case Variant::RECT2: color = Color::html("#f191a5"); break;
|
||||
case Variant::VECTOR3: color = Color::html("#d67dee"); break;
|
||||
case Variant::TRANSFORM2D: color = Color::html("#c4ec69"); break;
|
||||
case Variant::PLANE: color = Color::html("#f77070"); break;
|
||||
case Variant::QUAT: color = Color::html("#ec69a3"); break;
|
||||
case Variant::RECT3: color = Color::html("#ee7991"); break;
|
||||
case Variant::BASIS: color = Color::html("#e3ec69"); break;
|
||||
case Variant::TRANSFORM: color = Color::html("#f6a86e"); break;
|
||||
|
||||
case Variant::COLOR: color = Color::html("9dff70"); break;
|
||||
case Variant::NODE_PATH: color = Color::html("6993ec"); break;
|
||||
case Variant::_RID: color = Color::html("69ec9a"); break;
|
||||
case Variant::OBJECT: color = Color::html("79f3e8"); break;
|
||||
case Variant::DICTIONARY: color = Color::html("77edb1"); break;
|
||||
case Variant::COLOR: color = Color::html("#9dff70"); break;
|
||||
case Variant::NODE_PATH: color = Color::html("#6993ec"); break;
|
||||
case Variant::_RID: color = Color::html("#69ec9a"); break;
|
||||
case Variant::OBJECT: color = Color::html("#79f3e8"); break;
|
||||
case Variant::DICTIONARY: color = Color::html("#77edb1"); break;
|
||||
|
||||
case Variant::ARRAY: color = Color::html("e0e0e0"); break;
|
||||
case Variant::POOL_BYTE_ARRAY: color = Color::html("aaf4c8"); break;
|
||||
case Variant::POOL_INT_ARRAY: color = Color::html("afdcf5"); break;
|
||||
case Variant::POOL_REAL_ARRAY: color = Color::html("97e7f8"); break;
|
||||
case Variant::POOL_STRING_ARRAY: color = Color::html("9dc4f2"); break;
|
||||
case Variant::POOL_VECTOR2_ARRAY: color = Color::html("d1b3f5"); break;
|
||||
case Variant::POOL_VECTOR3_ARRAY: color = Color::html("df9bf2"); break;
|
||||
case Variant::POOL_COLOR_ARRAY: color = Color::html("e9ff97"); break;
|
||||
case Variant::ARRAY: color = Color::html("#e0e0e0"); break;
|
||||
case Variant::POOL_BYTE_ARRAY: color = Color::html("#aaf4c8"); break;
|
||||
case Variant::POOL_INT_ARRAY: color = Color::html("#afdcf5"); break;
|
||||
case Variant::POOL_REAL_ARRAY: color = Color::html("#97e7f8"); break;
|
||||
case Variant::POOL_STRING_ARRAY: color = Color::html("#9dc4f2"); break;
|
||||
case Variant::POOL_VECTOR2_ARRAY: color = Color::html("#d1b3f5"); break;
|
||||
case Variant::POOL_VECTOR3_ARRAY: color = Color::html("#df9bf2"); break;
|
||||
case Variant::POOL_COLOR_ARRAY: color = Color::html("#e9ff97"); break;
|
||||
|
||||
default:
|
||||
color.set_hsv(p_type / float(Variant::VARIANT_MAX), 0.7, 0.7);
|
||||
}
|
||||
else
|
||||
switch (p_type) {
|
||||
case Variant::NIL: color = Color::html("#25e3a0"); break;
|
||||
|
||||
case Variant::BOOL: color = Color::html("#6d8eeb"); break;
|
||||
case Variant::INT: color = Color::html("#4fb2e9"); break;
|
||||
case Variant::REAL: color = Color::html("#27ccf0"); break;
|
||||
case Variant::STRING: color = Color::html("#4690e7"); break;
|
||||
|
||||
case Variant::VECTOR2: color = Color::html("#ad76ee"); break;
|
||||
case Variant::RECT2: color = Color::html("#ee758e"); break;
|
||||
case Variant::VECTOR3: color = Color::html("#dc6aed"); break;
|
||||
case Variant::TRANSFORM2D: color = Color::html("#96ce1a"); break;
|
||||
case Variant::PLANE: color = Color::html("#f77070"); break;
|
||||
case Variant::QUAT: color = Color::html("#ec69a3"); break;
|
||||
case Variant::RECT3: color = Color::html("#ee7991"); break;
|
||||
case Variant::BASIS: color = Color::html("#b2bb19"); break;
|
||||
case Variant::TRANSFORM: color = Color::html("#f49047"); break;
|
||||
|
||||
case Variant::COLOR: color = Color::html("#3cbf00"); break;
|
||||
case Variant::NODE_PATH: color = Color::html("#6993ec"); break;
|
||||
case Variant::_RID: color = Color::html("#2ce573"); break;
|
||||
case Variant::OBJECT: color = Color::html("#12d5c3"); break;
|
||||
case Variant::DICTIONARY: color = Color::html("#57e99f"); break;
|
||||
|
||||
case Variant::ARRAY: color = Color::html("#737373"); break;
|
||||
case Variant::POOL_BYTE_ARRAY: color = Color::html("#61ea98"); break;
|
||||
case Variant::POOL_INT_ARRAY: color = Color::html("#61baeb"); break;
|
||||
case Variant::POOL_REAL_ARRAY: color = Color::html("#40d3f2"); break;
|
||||
case Variant::POOL_STRING_ARRAY: color = Color::html("#609fea"); break;
|
||||
case Variant::POOL_VECTOR2_ARRAY: color = Color::html("#9d5dea"); break;
|
||||
case Variant::POOL_VECTOR3_ARRAY: color = Color::html("#ca5aea"); break;
|
||||
case Variant::POOL_COLOR_ARRAY: color = Color::html("#92ba00"); break;
|
||||
|
||||
default:
|
||||
color.set_hsv(p_type / float(Variant::VARIANT_MAX), 0.3, 0.3);
|
||||
}
|
||||
|
||||
default:
|
||||
color.set_hsv(p_type / float(Variant::VARIANT_MAX), 0.7, 0.7);
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
|
@ -531,7 +570,7 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
|
|||
Color c = sbf->get_border_color(MARGIN_TOP);
|
||||
c.a = 1;
|
||||
if (EditorSettings::get_singleton()->get("interface/theme/use_graph_node_headers")) {
|
||||
Color mono_color = ((c.r + c.g + c.b) / 3) < 0.5 ? Color(1.0, 1.0, 1.0) : Color(0, 0, 0);
|
||||
Color mono_color = ((c.r + c.g + c.b) / 3) < 0.7 ? Color(1.0, 1.0, 1.0) : Color(0.0, 0.0, 0.0);
|
||||
mono_color.a = 0.85;
|
||||
c = mono_color;
|
||||
}
|
||||
|
@ -542,10 +581,12 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
|
|||
gnode->add_style_override("frame", sbf);
|
||||
}
|
||||
|
||||
const Color mono_color = get_color("mono_color", "Editor");
|
||||
|
||||
int slot_idx = 0;
|
||||
|
||||
bool single_seq_output = node->get_output_sequence_port_count() == 1 && node->get_output_sequence_port_text(0) == String();
|
||||
gnode->set_slot(0, node->has_input_sequence_port(), TYPE_SEQUENCE, Color(1, 1, 1, 1), single_seq_output, TYPE_SEQUENCE, Color(1, 1, 1, 1), seq_port, seq_port);
|
||||
gnode->set_slot(0, node->has_input_sequence_port(), TYPE_SEQUENCE, mono_color, single_seq_output, TYPE_SEQUENCE, mono_color, seq_port, seq_port);
|
||||
gnode->set_offset(pos * EDSCALE);
|
||||
slot_idx++;
|
||||
|
||||
|
@ -562,7 +603,7 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
|
|||
text2->set_text(node->get_output_sequence_port_text(i));
|
||||
text2->set_align(Label::ALIGN_RIGHT);
|
||||
gnode->add_child(text2);
|
||||
gnode->set_slot(slot_idx, false, 0, Color(), true, TYPE_SEQUENCE, Color(1, 1, 1, 1), seq_port, seq_port);
|
||||
gnode->set_slot(slot_idx, false, 0, Color(), true, TYPE_SEQUENCE, mono_color, seq_port, seq_port);
|
||||
slot_idx++;
|
||||
}
|
||||
}
|
||||
|
@ -677,10 +718,11 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
|
|||
|
||||
gnode->add_child(hbc);
|
||||
|
||||
bool dark_theme = get_constant("dark_theme", "Editor");
|
||||
if (i < mixed_seq_ports) {
|
||||
gnode->set_slot(slot_idx, left_ok, left_type, _color_from_type(left_type), true, TYPE_SEQUENCE, Color(1, 1, 1, 1), Ref<Texture>(), seq_port);
|
||||
gnode->set_slot(slot_idx, left_ok, left_type, _color_from_type(left_type, dark_theme), true, TYPE_SEQUENCE, mono_color, Ref<Texture>(), seq_port);
|
||||
} else {
|
||||
gnode->set_slot(slot_idx, left_ok, left_type, _color_from_type(left_type), right_ok, right_type, _color_from_type(right_type));
|
||||
gnode->set_slot(slot_idx, left_ok, left_type, _color_from_type(left_type, dark_theme), right_ok, right_type, _color_from_type(right_type, dark_theme));
|
||||
}
|
||||
|
||||
slot_idx++;
|
||||
|
@ -710,7 +752,7 @@ void VisualScriptEditor::_update_members() {
|
|||
functions->set_text(0, TTR("Functions:"));
|
||||
functions->add_button(0, Control::get_icon("Override", "EditorIcons"), 1);
|
||||
functions->add_button(0, Control::get_icon("Add", "EditorIcons"), 0);
|
||||
functions->set_custom_bg_color(0, Control::get_color("prop_section", "Editor"));
|
||||
functions->set_custom_color(0, Control::get_color("mono_color", "Editor"));
|
||||
|
||||
List<StringName> func_names;
|
||||
script->get_function_list(&func_names);
|
||||
|
@ -719,13 +761,7 @@ void VisualScriptEditor::_update_members() {
|
|||
ti->set_text(0, E->get());
|
||||
ti->set_selectable(0, true);
|
||||
ti->set_editable(0, true);
|
||||
//ti->add_button(0,Control::get_icon("Edit","EditorIcons"),0); function arguments are in the node now
|
||||
//ti->add_button(0, Control::get_icon("Del", "EditorIcons"), 1);
|
||||
ti->set_metadata(0, E->get());
|
||||
if (E->get() == edited_func) {
|
||||
ti->set_custom_bg_color(0, get_color("prop_category", "Editor"));
|
||||
ti->set_custom_color(0, Color(1, 1, 1, 1));
|
||||
}
|
||||
if (selected == E->get())
|
||||
ti->select(0);
|
||||
}
|
||||
|
@ -734,7 +770,7 @@ void VisualScriptEditor::_update_members() {
|
|||
variables->set_selectable(0, false);
|
||||
variables->set_text(0, TTR("Variables:"));
|
||||
variables->add_button(0, Control::get_icon("Add", "EditorIcons"));
|
||||
variables->set_custom_bg_color(0, Control::get_color("prop_section", "Editor"));
|
||||
variables->set_custom_color(0, Control::get_color("mono_color", "Editor"));
|
||||
|
||||
Ref<Texture> type_icons[Variant::VARIANT_MAX] = {
|
||||
Control::get_icon("MiniVariant", "EditorIcons"),
|
||||
|
@ -778,8 +814,6 @@ void VisualScriptEditor::_update_members() {
|
|||
|
||||
ti->set_selectable(0, true);
|
||||
ti->set_editable(0, true);
|
||||
//ti->add_button(0, Control::get_icon("Edit", "EditorIcons"), 0);
|
||||
//ti->add_button(0, Control::get_icon("Del", "EditorIcons"), 1);
|
||||
ti->set_metadata(0, E->get());
|
||||
if (selected == E->get())
|
||||
ti->select(0);
|
||||
|
@ -789,7 +823,7 @@ void VisualScriptEditor::_update_members() {
|
|||
_signals->set_selectable(0, false);
|
||||
_signals->set_text(0, TTR("Signals:"));
|
||||
_signals->add_button(0, Control::get_icon("Add", "EditorIcons"));
|
||||
_signals->set_custom_bg_color(0, Control::get_color("prop_section", "Editor"));
|
||||
_signals->set_custom_color(0, Control::get_color("mono_color", "Editor"));
|
||||
|
||||
List<StringName> signal_names;
|
||||
script->get_custom_signal_list(&signal_names);
|
||||
|
@ -798,8 +832,6 @@ void VisualScriptEditor::_update_members() {
|
|||
ti->set_text(0, E->get());
|
||||
ti->set_selectable(0, true);
|
||||
ti->set_editable(0, true);
|
||||
//ti->add_button(0, Control::get_icon("Edit", "EditorIcons"), 0);
|
||||
//ti->add_button(0, Control::get_icon("Del", "EditorIcons"), 1);
|
||||
ti->set_metadata(0, E->get());
|
||||
if (selected == E->get())
|
||||
ti->select(0);
|
||||
|
@ -2767,18 +2799,30 @@ void VisualScriptEditor::_notification(int p_what) {
|
|||
variable_editor->connect("changed", this, "_update_members");
|
||||
signal_editor->connect("changed", this, "_update_members");
|
||||
|
||||
Ref<Theme> tm = EditorNode::get_singleton()->get_theme_base()->get_theme();
|
||||
|
||||
bool dark_theme = tm->get_constant("dark_theme", "Editor");
|
||||
|
||||
List<Pair<String, Color> > colors;
|
||||
colors.push_back(Pair<String, Color>("flow_control", Color::html("#f4f4f4")));
|
||||
colors.push_back(Pair<String, Color>("functions", Color::html("#f58581")));
|
||||
colors.push_back(Pair<String, Color>("data", Color::html("#80f6cf")));
|
||||
colors.push_back(Pair<String, Color>("operators", Color::html("#ab97df")));
|
||||
colors.push_back(Pair<String, Color>("custom", Color::html("#80bbf6")));
|
||||
colors.push_back(Pair<String, Color>("constants", Color::html("#f680b0")));
|
||||
if (dark_theme) {
|
||||
colors.push_back(Pair<String, Color>("flow_control", Color::html("#f4f4f4")));
|
||||
colors.push_back(Pair<String, Color>("functions", Color::html("#f58581")));
|
||||
colors.push_back(Pair<String, Color>("data", Color::html("#80f6cf")));
|
||||
colors.push_back(Pair<String, Color>("operators", Color::html("#ab97df")));
|
||||
colors.push_back(Pair<String, Color>("custom", Color::html("#80bbf6")));
|
||||
colors.push_back(Pair<String, Color>("constants", Color::html("#f680b0")));
|
||||
} else {
|
||||
colors.push_back(Pair<String, Color>("flow_control", Color::html("#424242")));
|
||||
colors.push_back(Pair<String, Color>("functions", Color::html("#f26661")));
|
||||
colors.push_back(Pair<String, Color>("data", Color::html("#13bb83")));
|
||||
colors.push_back(Pair<String, Color>("operators", Color::html("#8265d0")));
|
||||
colors.push_back(Pair<String, Color>("custom", Color::html("#4ea0f2")));
|
||||
colors.push_back(Pair<String, Color>("constants", Color::html("#f02f7d")));
|
||||
}
|
||||
|
||||
for (List<Pair<String, Color> >::Element *E = colors.front(); E; E = E->next()) {
|
||||
print_line(E->get().first);
|
||||
Ref<StyleBoxFlat> sb = EditorNode::get_singleton()->get_theme_base()->get_theme()->get_stylebox("frame", "GraphNode");
|
||||
if (sb != NULL) {
|
||||
Ref<StyleBoxFlat> sb = tm->get_stylebox("frame", "GraphNode");
|
||||
if (!sb.is_null()) {
|
||||
Ref<StyleBoxFlat> frame_style = sb->duplicate();
|
||||
Color c = sb->get_border_color(MARGIN_TOP);
|
||||
Color cn = E->get().second;
|
||||
|
|
Loading…
Reference in a new issue