✨ Set UI scale
This commit is contained in:
@@ -12,3 +12,4 @@ script = ExtResource("2_e87mh")
|
|||||||
|
|
||||||
[node name="SettingsWindow" parent="." instance=ExtResource("3_x07a0")]
|
[node name="SettingsWindow" parent="." instance=ExtResource("3_x07a0")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
|||||||
@@ -9,8 +9,13 @@ public partial class SettingsWindow : Window
|
|||||||
{
|
{
|
||||||
CloseRequested += Hide;
|
CloseRequested += Hide;
|
||||||
_uiScaleSpinBox = GetNode<SpinBox>("%UiScaleSpinBox");
|
_uiScaleSpinBox = GetNode<SpinBox>("%UiScaleSpinBox");
|
||||||
//_uiScaleSlider.Value = Singletons.AppState.IdeSettings.UiScale;
|
|
||||||
_uiScaleSpinBox.ValueChanged += OnUiScaleSpinBoxValueChanged;
|
_uiScaleSpinBox.ValueChanged += OnUiScaleSpinBoxValueChanged;
|
||||||
|
AboutToPopup += OnAboutToPopup;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnAboutToPopup()
|
||||||
|
{
|
||||||
|
_uiScaleSpinBox.Value = Singletons.AppState.IdeSettings.UiScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnUiScaleSpinBoxValueChanged(double value)
|
private void OnUiScaleSpinBoxValueChanged(double value)
|
||||||
@@ -19,5 +24,6 @@ public partial class SettingsWindow : Window
|
|||||||
Singletons.AppState.IdeSettings.UiScale = valueFloat;
|
Singletons.AppState.IdeSettings.UiScale = valueFloat;
|
||||||
|
|
||||||
GetTree().GetRoot().ContentScaleFactor = valueFloat;
|
GetTree().GetRoot().ContentScaleFactor = valueFloat;
|
||||||
|
PopupCenteredRatio(0.5f); // Re-size the window after scaling
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,34 +1,58 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://dnh73b3speojs"]
|
[gd_scene load_steps=3 format=3 uid="uid://dnh73b3speojs"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b7umbl07avv6d" path="res://Features/Settings/SettingsWindow.cs" id="1_xkmyt"]
|
[ext_resource type="Script" uid="uid://b7umbl07avv6d" path="res://Features/Settings/SettingsWindow.cs" id="1_xkmyt"]
|
||||||
|
|
||||||
|
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_xkmyt"]
|
||||||
|
|
||||||
[node name="SettingsWindow" type="Window"]
|
[node name="SettingsWindow" type="Window"]
|
||||||
oversampling_override = 1.0
|
oversampling_override = 1.0
|
||||||
title = "Settings"
|
title = "Settings"
|
||||||
initial_position = 2
|
initial_position = 2
|
||||||
size = Vector2i(845, 400)
|
size = Vector2i(845, 400)
|
||||||
transient = true
|
transient = true
|
||||||
transient_to_focused = true
|
|
||||||
exclusive = true
|
exclusive = true
|
||||||
popup_window = true
|
popup_window = true
|
||||||
popup_wm_hint = true
|
popup_wm_hint = true
|
||||||
script = ExtResource("1_xkmyt")
|
script = ExtResource("1_xkmyt")
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
[node name="HSplitContainer" type="HSplitContainer" parent="."]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
theme_override_constants/separation = 4
|
||||||
|
theme_override_constants/minimum_grab_thickness = 10
|
||||||
|
theme_override_icons/grabber = SubResource("PlaceholderTexture2D_xkmyt")
|
||||||
|
split_offset = 200
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
[node name="PanelContainer2" type="PanelContainer" parent="HSplitContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PanelContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="PanelContainer" type="PanelContainer" parent="HSplitContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="HSplitContainer/PanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 5
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 5
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="HSplitContainer/PanelContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer/PanelContainer/MarginContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBoxContainer2/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "UI Scale"
|
text = "UI Scale"
|
||||||
|
|
||||||
[node name="UiScaleSpinBox" type="SpinBox" parent="VBoxContainer/HBoxContainer"]
|
[node name="UiScaleSpinBox" type="SpinBox" parent="HSplitContainer/PanelContainer/MarginContainer/VBoxContainer2/HBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
min_value = 0.5
|
min_value = 0.5
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public partial class IdeWindow : Control
|
|||||||
SharpIdeMsbuildLocator.Register();
|
SharpIdeMsbuildLocator.Register();
|
||||||
GodotOtelExtensions.AddServiceDefaults();
|
GodotOtelExtensions.AddServiceDefaults();
|
||||||
Singletons.AppState = AppStateLoader.LoadAppStateFromConfigFile();
|
Singletons.AppState = AppStateLoader.LoadAppStateFromConfigFile();
|
||||||
|
GetTree().GetRoot().ContentScaleFactor = Singletons.AppState.IdeSettings.UiScale;
|
||||||
//GetWindow().SetMinSize(new Vector2I(1152, 648));
|
//GetWindow().SetMinSize(new Vector2I(1152, 648));
|
||||||
Callable.From(() => PickSolution(true)).CallDeferred();
|
Callable.From(() => PickSolution(true)).CallDeferred();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,11 +34,6 @@ project/assembly_name="SharpIDE.Godot"
|
|||||||
|
|
||||||
enabled=PackedStringArray("res://addons/R3.Godot/plugin.cfg", "res://addons/csharp_gdextension_bindgen/plugin.cfg")
|
enabled=PackedStringArray("res://addons/R3.Godot/plugin.cfg", "res://addons/csharp_gdextension_bindgen/plugin.cfg")
|
||||||
|
|
||||||
[gui]
|
|
||||||
|
|
||||||
theme/default_font_multichannel_signed_distance_field=true
|
|
||||||
theme/default_font_generate_mipmaps=true
|
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
CodeFixes={
|
CodeFixes={
|
||||||
|
|||||||
Reference in New Issue
Block a user