From 74d028729fabca2041e4025835294d0769b0cb6d Mon Sep 17 00:00:00 2001 From: "Daniel J. Ramirez" Date: Thu, 14 Sep 2017 00:45:00 -0500 Subject: Improved VisualScriptEditor --- modules/visual_script/visual_script_editor.cpp | 35 ++++++++++++++++++-------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'modules/visual_script/visual_script_editor.cpp') diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 671a507377..ee83c44793 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -491,10 +491,6 @@ void VisualScriptEditor::_update_graph(int p_only_id) { gnode->set_overlay(GraphNode::OVERLAY_BREAKPOINT); } - if (node_styles.has(node->get_category())) { - gnode->add_style_override("frame", node_styles[node->get_category()]); - } - gnode->set_meta("__vnode", node); gnode->set_name(itos(E->get())); gnode->connect("dragged", this, "_node_moved", varray(E->get())); @@ -527,6 +523,25 @@ void VisualScriptEditor::_update_graph(int p_only_id) { gnode->connect("resize_request", this, "_comment_node_resized", varray(E->get())); } + if (node_styles.has(node->get_category())) { + Ref sbf = node_styles[node->get_category()]; + if (gnode->is_comment()) + sbf = EditorNode::get_singleton()->get_theme_base()->get_theme()->get_stylebox("comment", "GraphNode"); + + 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); + mono_color.a = 0.85; + c = mono_color; + } + + gnode->add_color_override("title_color", c); + c.a = 0.7; + gnode->add_color_override("close_color", c); + gnode->add_style_override("frame", sbf); + } + int slot_idx = 0; bool single_seq_output = node->get_output_sequence_port_count() == 1 && node->get_output_sequence_port_text(0) == String(); @@ -2753,12 +2768,12 @@ void VisualScriptEditor::_notification(int p_what) { signal_editor->connect("changed", this, "_update_members"); List > colors; - colors.push_back(Pair("functions", Color(1, 0.9, 0.9))); - colors.push_back(Pair("data", Color(0.9, 1.0, 0.9))); - colors.push_back(Pair("operators", Color(0.9, 0.9, 1.0))); - colors.push_back(Pair("flow_control", Color(1.0, 1.0, 1.0))); - colors.push_back(Pair("custom", Color(0.8, 1.0, 1.0))); - colors.push_back(Pair("constants", Color(1.0, 0.8, 1.0))); + colors.push_back(Pair("flow_control", Color::html("#f4f4f4"))); + colors.push_back(Pair("functions", Color::html("#f58581"))); + colors.push_back(Pair("data", Color::html("#80f6cf"))); + colors.push_back(Pair("operators", Color::html("#ab97df"))); + colors.push_back(Pair("custom", Color::html("#80bbf6"))); + colors.push_back(Pair("constants", Color::html("#f680b0"))); for (List >::Element *E = colors.front(); E; E = E->next()) { print_line(E->get().first); -- cgit v1.2.3