Skip to content

Commit 2284bb9

Browse files
committed
Change layout of settings menu
Split the settings controls into sections: Display, Input, Other Add panel containers for each section Fix focus modes for some controls
1 parent 4e8d33d commit 2284bb9

File tree

1 file changed

+125
-66
lines changed

1 file changed

+125
-66
lines changed

src/ui/game_menu/settings_menu.tscn

+125-66
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
1-
[gd_scene load_steps=4 format=3 uid="uid://cx86ea3loo8a2"]
1+
[gd_scene load_steps=5 format=3 uid="uid://cx86ea3loo8a2"]
22

33
[ext_resource type="Theme" uid="uid://bql5sxaowafw3" path="res://resources/theme/wc3_theme.tres" id="1_73d58"]
44
[ext_resource type="Script" path="res://src/ui/game_menu/settings_menu.gd" id="2_2dtmk"]
55
[ext_resource type="ButtonGroup" uid="uid://di3e75guncq3c" path="res://resources/button_groups/interface_size_setting_button_group.tres" id="2_fh8ol"]
6+
[ext_resource type="StyleBox" uid="uid://bw17avoi3cj5m" path="res://resources/theme/selected_unit_info/panel_container.tres" id="4_o5p4r"]
67

78
[node name="SettingsMenu" type="PanelContainer" node_paths=PackedStringArray("_damage_numbers", "_enable_floating_text", "_enable_vfx", "_enable_sfx", "_enable_mouse_scroll", "_show_combat_log", "_show_tutorial_on_start", "_projectile_density", "_mouse_scroll", "_keyboard_scroll", "_apply_button", "_display_mode_combo")]
8-
custom_minimum_size = Vector2(800, 700)
9+
custom_minimum_size = Vector2(800, 900)
910
theme = ExtResource("1_73d58")
1011
theme_type_variation = &"MainPanelContainer"
1112
script = ExtResource("2_2dtmk")
12-
_damage_numbers = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/DamageNumbers")
13-
_enable_floating_text = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/FloatingText")
14-
_enable_vfx = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/EnableVfx")
15-
_enable_sfx = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/EnableSfx")
16-
_enable_mouse_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/EnableMouseScroll")
17-
_show_combat_log = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/ShowCombatLog")
18-
_show_tutorial_on_start = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/ShowTutorialOnStart")
19-
_projectile_density = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/ProjectileDensity")
20-
_mouse_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/MouseScroll")
21-
_keyboard_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/KeyboardScroll")
13+
_damage_numbers = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/DamageNumbers")
14+
_enable_floating_text = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/FloatingText")
15+
_enable_vfx = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/EnableVfx")
16+
_enable_sfx = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer/EnableSfx")
17+
_enable_mouse_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer/EnableMouseScroll")
18+
_show_combat_log = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer/ShowCombatLog")
19+
_show_tutorial_on_start = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer/ShowTutorialOnStart")
20+
_projectile_density = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/ProjectileDensity")
21+
_mouse_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer/MouseScroll")
22+
_keyboard_scroll = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer/KeyboardScroll")
2223
_interface_size_button_group = ExtResource("2_fh8ol")
2324
_apply_button = NodePath("MarginContainer/VBoxContainer/HBoxContainer/ApplyButton")
24-
_display_mode_combo = NodePath("MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer/DisplayModeCombo")
25+
_display_mode_combo = NodePath("MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/DisplayModeCombo")
2526

2627
[node name="MarginContainer" type="MarginContainer" parent="."]
2728
layout_mode = 2
@@ -44,20 +45,37 @@ horizontal_alignment = 1
4445
layout_mode = 2
4546
size_flags_vertical = 3
4647

47-
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"]
48+
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"]
4849
layout_mode = 2
49-
theme_override_constants/separation = 10
50+
size_flags_horizontal = 3
51+
theme_override_constants/margin_right = 10
52+
53+
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer"]
54+
layout_mode = 2
55+
size_flags_horizontal = 3
56+
theme_override_constants/separation = 20
5057

51-
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
58+
[node name="SectionDisplay" type="PanelContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"]
59+
layout_mode = 2
60+
theme_override_styles/panel = ExtResource("4_o5p4r")
61+
62+
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay"]
5263
layout_mode = 2
5364
theme_override_constants/separation = 10
5465

55-
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer"]
66+
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
67+
layout_mode = 2
68+
theme_type_variation = &"LabelLarge"
69+
text = "Display"
70+
horizontal_alignment = 1
71+
72+
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
5673
layout_mode = 2
5774
text = "Display Mode"
5875

59-
[node name="DisplayModeCombo" type="OptionButton" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer"]
76+
[node name="DisplayModeCombo" type="OptionButton" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
6077
layout_mode = 2
78+
size_flags_horizontal = 0
6179
selected = 0
6280
item_count = 3
6381
popup/item_0/text = "Full Screen"
@@ -66,109 +84,150 @@ popup/item_1/id = 1
6684
popup/item_2/text = "Windowed"
6785
popup/item_2/id = 2
6886

69-
[node name="DamageNumbers" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
87+
[node name="InterfaceSizeLabel" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
7088
layout_mode = 2
71-
focus_mode = 0
72-
text = "Show all damage numbers"
89+
text = "Interface size"
7390

74-
[node name="FloatingText" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
91+
[node name="HBoxContainer7" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
7592
layout_mode = 2
76-
text = "Enable floating text"
93+
size_flags_vertical = 3
7794

78-
[node name="EnableVfx" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
95+
[node name="SmallInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/HBoxContainer7"]
7996
layout_mode = 2
80-
text = "Enable visual effects"
97+
focus_mode = 0
98+
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
99+
toggle_mode = true
100+
button_group = ExtResource("2_fh8ol")
101+
text = "Small"
102+
flat = true
81103

82-
[node name="EnableSfx" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
104+
[node name="MediumInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/HBoxContainer7"]
83105
layout_mode = 2
84106
focus_mode = 0
85-
text = "Enable sound effects"
107+
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
108+
toggle_mode = true
109+
button_pressed = true
110+
button_group = ExtResource("2_fh8ol")
111+
text = "Medium"
112+
flat = true
86113

87-
[node name="EnableMouseScroll" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
114+
[node name="LargeInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/HBoxContainer7"]
88115
layout_mode = 2
89116
focus_mode = 0
90-
text = "Enable mouse scroll"
117+
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
118+
toggle_mode = true
119+
button_group = ExtResource("2_fh8ol")
120+
text = "Large"
121+
flat = true
91122

92-
[node name="ShowCombatLog" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
123+
[node name="DamageNumbers" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
93124
layout_mode = 2
94125
focus_mode = 0
95-
text = "Show combat log"
126+
text = "Show all damage numbers"
96127

97-
[node name="ShowTutorialOnStart" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
128+
[node name="FloatingText" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
98129
layout_mode = 2
99130
focus_mode = 0
100-
text = "Display tutorial"
131+
text = "Enable floating text"
132+
133+
[node name="EnableVfx" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
134+
layout_mode = 2
135+
focus_mode = 0
136+
text = "Enable visual effects"
101137

102-
[node name="Label4" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
138+
[node name="ProjectileDensityLabel" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
103139
layout_mode = 2
104140
tooltip_text = "Decreasing this setting can reduce lag in late game."
105-
text = "Projectile Density:"
141+
mouse_filter = 1
142+
text = "Projectile Density
143+
"
106144

107-
[node name="ProjectileDensity" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
145+
[node name="ProjectileDensity" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer"]
146+
custom_minimum_size = Vector2(350, 0)
108147
layout_mode = 2
148+
size_flags_horizontal = 0
109149
tooltip_text = "Decreasing this setting can reduce lag in late game."
150+
focus_mode = 0
110151
max_value = 1.0
111152
step = 0.1
153+
scrollable = false
154+
155+
[node name="SectionInput" type="PanelContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"]
156+
layout_mode = 2
157+
theme_override_styles/panel = ExtResource("4_o5p4r")
158+
159+
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput"]
160+
layout_mode = 2
161+
theme_override_constants/separation = 10
162+
163+
[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
164+
layout_mode = 2
165+
theme_type_variation = &"LabelLarge"
166+
text = "Input"
167+
horizontal_alignment = 1
168+
169+
[node name="EnableMouseScroll" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
170+
layout_mode = 2
171+
tooltip_text = "Enables moving the camera by placing the mouse on the edge of the screen."
172+
focus_mode = 0
173+
text = "Enable mouse scroll"
112174

113-
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
175+
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
114176
layout_mode = 2
115-
text = "Mouse scroll:"
177+
text = "Mouse scroll"
116178

117-
[node name="MouseScroll" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
179+
[node name="MouseScroll" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
180+
custom_minimum_size = Vector2(350, 0)
118181
layout_mode = 2
182+
size_flags_horizontal = 0
119183
focus_mode = 0
120184
max_value = 1.0
121185
step = 0.25
122186
value = 0.5
123187
scrollable = false
124188

125-
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
189+
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
126190
layout_mode = 2
127-
text = "Keyboard scroll:"
191+
text = "Keyboard scroll"
128192

129-
[node name="KeyboardScroll" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
193+
[node name="KeyboardScroll" type="HSlider" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionInput/VBoxContainer"]
194+
custom_minimum_size = Vector2(350, 0)
130195
layout_mode = 2
196+
size_flags_horizontal = 0
131197
focus_mode = 0
132198
max_value = 1.0
133199
step = 0.25
134200
value = 0.5
135201
scrollable = false
136202

137-
[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
203+
[node name="SectionOther" type="PanelContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"]
138204
layout_mode = 2
139-
text = "Interface size:"
205+
theme_override_styles/panel = ExtResource("4_o5p4r")
140206

141-
[node name="HBoxContainer7" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer"]
207+
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther"]
142208
layout_mode = 2
143-
size_flags_vertical = 3
209+
theme_override_constants/separation = 10
210+
211+
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer"]
212+
layout_mode = 2
213+
theme_type_variation = &"LabelLarge"
214+
text = "Misc"
215+
horizontal_alignment = 1
144216

145-
[node name="SmallInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer7"]
217+
[node name="EnableSfx" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer"]
146218
layout_mode = 2
147219
focus_mode = 0
148-
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
149-
toggle_mode = true
150-
button_group = ExtResource("2_fh8ol")
151-
text = "Small"
152-
flat = true
220+
text = "Enable sound effects"
153221

154-
[node name="MediumInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer7"]
222+
[node name="ShowCombatLog" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer"]
155223
layout_mode = 2
156224
focus_mode = 0
157-
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
158-
toggle_mode = true
159-
button_pressed = true
160-
button_group = ExtResource("2_fh8ol")
161-
text = "Medium"
162-
flat = true
225+
text = "Show combat log"
163226

164-
[node name="LargeInterfaceSizeButton" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer7"]
227+
[node name="ShowTutorialOnStart" type="CheckBox" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionOther/VBoxContainer"]
165228
layout_mode = 2
166229
focus_mode = 0
167-
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
168-
toggle_mode = true
169-
button_group = ExtResource("2_fh8ol")
170-
text = "Large"
171-
flat = true
230+
text = "Display tutorial"
172231

173232
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
174233
layout_mode = 2
@@ -192,7 +251,7 @@ disabled = true
192251
text = "Apply"
193252

194253
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
195-
[connection signal="item_selected" from="MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer/HBoxContainer/DisplayModeCombo" to="." method="_on_display_mode_combo_item_selected"]
254+
[connection signal="item_selected" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/SectionDisplay/VBoxContainer/DisplayModeCombo" to="." method="_on_display_mode_combo_item_selected"]
196255
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/OkButton" to="." method="_on_ok_button_pressed"]
197256
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_cancel_button_pressed"]
198257
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/ApplyButton" to="." method="_on_apply_button_pressed"]

0 commit comments

Comments
 (0)