26 if (!ImGui::Begin(
"Node Editor Style", show))
32 auto paneWidth = ImGui::GetContentRegionAvail().x;
34 auto& editorStyle = ed::GetStyle();
35 ImGui::BeginHorizontal(
"Style buttons", ImVec2(paneWidth, 0), 1.0F);
36 ImGui::TextUnformatted(
"Values");
38 if (ImGui::Button(
"Reset to defaults"))
40 editorStyle = ed::Style();
42 ImGui::EndHorizontal();
44 ImGui::DragFloat4(
"Node Padding", &editorStyle.NodePadding.x, 0.1F, 0.0F, 40.0F);
45 ImGui::DragFloat(
"Node Rounding", &editorStyle.NodeRounding, 0.1F, 0.0F, 40.0F);
46 ImGui::DragFloat(
"Node Border Width", &editorStyle.NodeBorderWidth, 0.1F, 0.0F, 15.0F);
47 ImGui::DragFloat(
"Hovered Node Border Width", &editorStyle.HoveredNodeBorderWidth, 0.1F, 0.0F, 15.0F);
48 ImGui::DragFloat(
"Selected Node Border Width", &editorStyle.SelectedNodeBorderWidth, 0.1F, 0.0F, 15.0F);
49 ImGui::DragFloat(
"Pin Rounding", &editorStyle.PinRounding, 0.1F, 0.0F, 40.0F);
50 ImGui::DragFloat(
"Pin Border Width", &editorStyle.PinBorderWidth, 0.1F, 0.0F, 15.0F);
51 ImGui::DragFloat(
"Link Strength", &editorStyle.LinkStrength, 1.0F, 0.0F, 500.0F);
54 ImGui::DragFloat(
"Scroll Duration", &editorStyle.ScrollDuration, 0.001F, 0.0F, 2.0F);
55 ImGui::DragFloat(
"Flow Marker Distance", &editorStyle.FlowMarkerDistance, 1.0F, 1.0F, 200.0F);
56 ImGui::DragFloat(
"Flow Speed", &editorStyle.FlowSpeed, 1.0F, 1.0F, 2000.0F);
57 ImGui::DragFloat(
"Flow Duration", &editorStyle.FlowDuration, 0.001F, 0.0F, 5.0F);
65 ImGui::DragFloat(
"Group Rounding", &editorStyle.GroupRounding, 0.1F, 0.0F, 40.0F);
66 ImGui::DragFloat(
"Group Border Width", &editorStyle.GroupBorderWidth, 0.1F, 0.0F, 15.0F);
70 static ImGuiColorEditFlags edit_mode = ImGuiColorEditFlags_DisplayRGB;
71 ImGui::BeginHorizontal(
"Color Mode", ImVec2(paneWidth, 0), 1.0F);
72 ImGui::TextUnformatted(
"Filter Colors");
76 ImGui::RadioButton(
"RGB", &edit_mode, ImGuiColorEditFlags_DisplayRGB);
78 ImGui::RadioButton(
"HSV", &edit_mode, ImGuiColorEditFlags_DisplayHSV);
80 ImGui::RadioButton(
"HEX", &edit_mode, ImGuiColorEditFlags_DisplayHex);
81 ImGui::EndHorizontal();
83 static ImGuiTextFilter filter;
84 filter.Draw(
"##NodeEditorStyleEditor", paneWidth);
88 ImGui::PushItemWidth(-160);
89 for (
int i = 0; i < ed::StyleColor_Count; i++)
91 const auto* name = ed::GetStyleColorName(
static_cast<ed::StyleColor
>(i));
92 if (!filter.PassFilter(name))
97 ImGui::ColorEdit4(name, &editorStyle.Colors[i].x, edit_mode);
100 for (
size_t i = 0; i < colors.size(); i++)
102 const auto* name = colorNames.at(i);
103 if (!filter.PassFilter(name))
107 ImGui::ColorEdit4(name, &colors.at(i).x, edit_mode);
109 ImGui::PopItemWidth();
116 auto& editorStyle = ed::GetStyle();
119 editorStyle.Colors[ed::StyleColor_Bg] = ImColor(255, 255, 255, 255);
120 editorStyle.Colors[ed::StyleColor_Grid] = ImColor(120, 120, 120, 40);
121 editorStyle.Colors[ed::StyleColor_GroupBg] = ImColor(130, 130, 130, 160);
127 ImGui::StyleColorsLight();
128 ImGui::GetStyle().Colors[ImGuiCol_WindowBg] = ImColor(255, 255, 255, 255);
129 ImGui::GetStyle().Colors[ImGuiCol_FrameBg] = ImColor(240, 240, 240, 255);
133 ed::Style defaultStyle{};
134 for (
int i = 0; i < ed::StyleColor_Count; i++)
136 editorStyle.Colors[i] = defaultStyle.Colors[i];
143 ImGui::StyleColorsDark();