refactor set theme

This commit is contained in:
Matt Parker
2026-01-31 13:32:19 +10:00
parent 694c554956
commit 6f02c1e1e7
2 changed files with 27 additions and 16 deletions

View File

@@ -0,0 +1,26 @@
using Godot;
namespace SharpIDE.Godot.Features.Settings;
public static class SetTheme
{
private static readonly Theme LightTheme = ResourceLoader.Load<Theme>("uid://dc7l6bjhn61i5");
private static readonly Color LightThemeClearColor = new Color("fdfdfd");
private static readonly Theme DarkTheme = ResourceLoader.Load<Theme>("uid://epmt8kq6efrs");
private static readonly Color DarkThemeClearColor = new Color("4d4d4d");
public static void SetIdeTheme(this Node node, string theme)
{
var rootWindow = node.GetTree().GetRoot();
if (theme is "Light")
{
RenderingServer.Singleton.SetDefaultClearColor(LightThemeClearColor);
rootWindow.Theme = LightTheme;
}
else if (theme is "Dark")
{
RenderingServer.Singleton.SetDefaultClearColor(DarkThemeClearColor);
rootWindow.Theme = DarkTheme;
}
}
}

View File

@@ -9,11 +9,6 @@ public partial class SettingsWindow : Window
private CheckButton _debuggerUseSharpDbgCheckButton = null!;
private OptionButton _themeOptionButton = null!;
private Theme _lightTheme = ResourceLoader.Load<Theme>("uid://dc7l6bjhn61i5");
private Color _lightThemeClearColor = new Color("fdfdfd");
private Theme _darkTheme = ResourceLoader.Load<Theme>("uid://epmt8kq6efrs");
private Color _darkThemeClearColor = new Color("4d4d4d");
public override void _Ready()
{
CloseRequested += Hide;
@@ -57,16 +52,6 @@ public partial class SettingsWindow : Window
private void OnThemeItemSelected(long index)
{
var selectedTheme = _themeOptionButton.GetItemText((int)index);
var rootWindow = GetTree().GetRoot();
if (selectedTheme is "Light")
{
RenderingServer.Singleton.SetDefaultClearColor(_lightThemeClearColor);
rootWindow.Theme = _lightTheme;
}
else if (selectedTheme is "Dark")
{
RenderingServer.Singleton.SetDefaultClearColor(_darkThemeClearColor);
rootWindow.Theme = _darkTheme;
}
this.SetIdeTheme(selectedTheme);
}
}