Skip to content

Commit a839b76

Browse files
committed
CraterCrashGH-59 Add configurable corner/border radius
1 parent 0ba992d commit a839b76

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

src/common/settings.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ void OrchestratorSettings::_register_settings()
161161
_settings.emplace_back(COLOR_NO_ALPHA_SETTING("ui/nodes/background_color", Color::html("#191d23")));
162162
_settings.emplace_back(COLOR_NO_ALPHA_SETTING("ui/nodes/border_color", Color(0.059f, 0.067f, 0.082f)));
163163
_settings.emplace_back(COLOR_NO_ALPHA_SETTING("ui/nodes/border_selected_color", Color(0.68f, 0.44f, 0.09f)));
164+
_settings.emplace_back(RANGE_SETTING("ui/nodes/border_radius", "0,16,1", 4));
164165
_settings.emplace_back(RANGE_SETTING("ui/nodes/border_width", "0,8,1", 2));
165166

166167
// Nodes

src/editor/theme/theme_cache.cpp

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
#include <godot_cpp/classes/graph_node.hpp>
2424
#include <godot_cpp/classes/project_settings.hpp>
2525
#include <godot_cpp/classes/style_box_flat.hpp>
26-
#include <godot_cpp/classes/window.hpp>
27-
#include <godot_cpp/variant/utility_functions.hpp>
2826

2927
void OrchestratorThemeCache::_settings_changed()
3028
{
@@ -38,7 +36,8 @@ void OrchestratorThemeCache::_settings_changed()
3836
const Color border = settings->get_setting("ui/nodes/border_color", Color(0, 0, 0));
3937
const Color select = settings->get_setting("ui/nodes/border_selected_color", Color(0.68f, 0.44f, 0.09f));
4038
const Color bkgrnd = settings->get_setting("ui/nodes/background_color", Color::html("#191d23"));
41-
const float bwidth = settings->get_setting("ui/nodes/border_width", 2);
39+
const int radius = settings->get_setting("ui/nodes/border_radius", 4);
40+
const int bwidth = settings->get_setting("ui/nodes/border_width", 2);
4241

4342
Ref<StyleBoxFlat> panel = get_theme_stylebox("panel", "GraphNode");
4443
if (!panel.is_valid())
@@ -52,6 +51,7 @@ void OrchestratorThemeCache::_settings_changed()
5251
new_panel->set_border_width(SIDE_TOP, 0);
5352
new_panel->set_content_margin_all(2);
5453
new_panel->set_content_margin(SIDE_BOTTOM, 6);
54+
new_panel->set_corner_radius_all(radius);
5555
new_panel->set_corner_radius(CORNER_TOP_LEFT, 0);
5656
new_panel->set_corner_radius(CORNER_TOP_RIGHT, 0);
5757
new_panel->set_bg_color(bkgrnd);
@@ -74,7 +74,14 @@ void OrchestratorThemeCache::_settings_changed()
7474
if (panel->get_bg_color() != bkgrnd)
7575
panel->set_bg_color(bkgrnd);
7676

77-
if (!UtilityFunctions::is_equal_approx(panel->get_border_width(SIDE_LEFT), bwidth))
77+
if (panel->get_corner_radius(CORNER_BOTTOM_LEFT) != radius)
78+
{
79+
panel->set_corner_radius_all(radius);
80+
panel->set_corner_radius(CORNER_TOP_LEFT, 0);
81+
panel->set_corner_radius(CORNER_TOP_RIGHT, 0);
82+
}
83+
84+
if (panel->get_border_width(SIDE_LEFT) != bwidth)
7885
{
7986
panel->set_border_width_all(bwidth);
8087
panel->set_border_width(SIDE_TOP, 0);
@@ -89,7 +96,14 @@ void OrchestratorThemeCache::_settings_changed()
8996
if (panel_selected->get_border_color() != select)
9097
panel_selected->set_border_color(select);
9198

92-
if (!UtilityFunctions::is_equal_approx(panel_selected->get_border_width(SIDE_LEFT), bwidth))
99+
if (panel_selected->get_corner_radius(CORNER_BOTTOM_LEFT) != radius)
100+
{
101+
panel_selected->set_corner_radius_all(radius);
102+
panel_selected->set_corner_radius(CORNER_TOP_LEFT, 0);
103+
panel_selected->set_corner_radius(CORNER_TOP_RIGHT, 0);
104+
}
105+
106+
if (panel_selected->get_border_width(SIDE_LEFT) != bwidth)
93107
{
94108
panel_selected->set_border_width_all(bwidth);
95109
panel_selected->set_border_width(SIDE_TOP, 0);
@@ -115,6 +129,7 @@ void OrchestratorThemeCache::_settings_changed()
115129
new_titlebar->set_bg_color(color);
116130
new_titlebar->set_border_width_all(bwidth);
117131
new_titlebar->set_border_width(SIDE_BOTTOM, 0);
132+
new_titlebar->set_corner_radius_all(radius);
118133
new_titlebar->set_corner_radius(CORNER_BOTTOM_LEFT, 0);
119134
new_titlebar->set_corner_radius(CORNER_BOTTOM_RIGHT, 0);
120135

@@ -142,7 +157,14 @@ void OrchestratorThemeCache::_settings_changed()
142157
titlebar->set_border_color(border);
143158
}
144159

145-
if (!UtilityFunctions::is_equal_approx(titlebar->get_border_width(SIDE_LEFT), bwidth))
160+
if (titlebar->get_corner_radius(CORNER_TOP_LEFT) != radius)
161+
{
162+
titlebar->set_corner_radius_all(radius);
163+
titlebar->set_corner_radius(CORNER_BOTTOM_LEFT, 0);
164+
titlebar->set_corner_radius(CORNER_BOTTOM_RIGHT, 0);
165+
}
166+
167+
if (titlebar->get_border_width(SIDE_LEFT) != bwidth)
146168
{
147169
titlebar->set_border_width_all(bwidth);
148170
titlebar->set_border_width(SIDE_BOTTOM, 0);
@@ -156,7 +178,14 @@ void OrchestratorThemeCache::_settings_changed()
156178
if (titlebar_selected->get_border_color() != select)
157179
titlebar_selected->set_border_color(select);
158180

159-
if (!UtilityFunctions::is_equal_approx(titlebar_selected->get_border_width(SIDE_LEFT), bwidth))
181+
if (titlebar_selected->get_corner_radius(CORNER_TOP_LEFT) != radius)
182+
{
183+
titlebar_selected->set_corner_radius_all(radius);
184+
titlebar_selected->set_corner_radius(CORNER_BOTTOM_LEFT, 0);
185+
titlebar_selected->set_corner_radius(CORNER_BOTTOM_RIGHT, 0);
186+
}
187+
188+
if (titlebar_selected->get_border_width(SIDE_LEFT) != bwidth)
160189
{
161190
titlebar_selected->set_border_width_all(bwidth);
162191
titlebar_selected->set_border_width(SIDE_BOTTOM, 0);

0 commit comments

Comments
 (0)