@@ -7,14 +7,24 @@ const ViewportScene = preload("res://src/ui_parts/display.tscn")
77
88@onready var panel_container : PanelContainer = $ PanelContainer
99
10+ var main_splitter : SplitContainer
11+
12+
1013func _ready () -> void :
1114 Configs .theme_changed .connect (update_theme )
1215 Configs .layout_changed .connect (update_layout )
16+ Configs .orientation_changed .connect (update_orientation )
1317 update_layout ()
1418 update_theme ()
1519 var version = JavaClassWrapper .wrap ("android.os.Build$VERSION" )
1620 if version : Configs .current_sdk = version .SDK_INT
1721
22+ func update_orientation ():
23+ if Configs .current_orientation == Configs .orientation .PORTRAIT :
24+ main_splitter .vertical = true
25+ else :
26+ main_splitter .vertical = false
27+
1828func update_theme () -> void :
1929 var stylebox := StyleBoxFlat .new ()
2030 stylebox .bg_color = ThemeUtils .overlay_panel_inner_color
@@ -26,54 +36,53 @@ func update_layout() -> void:
2636 for child in panel_container .get_children ():
2737 child .queue_free ()
2838
29- var top_left := Configs .savedata .get_layout_parts (SaveData .LayoutLocation .TOP_LEFT )
30- var bottom_left := Configs .savedata .get_layout_parts (SaveData .LayoutLocation .BOTTOM_LEFT )
39+ var side_panel_top := Configs .savedata .get_layout_parts (SaveData .LayoutLocation .SIDE_PANEL_TOP )
40+ var side_panel_bottom := Configs .savedata .get_layout_parts (SaveData .LayoutLocation .SIDE_PANEL_BOTTOM )
3141
32- # Set up the horizontal splitter.
33- var main_splitter := VSplitContainer .new ()
34- main_splitter .size_flags_horizontal = Control . SIZE_FILL
42+ # Set up the main splitter.
43+ main_splitter = SplitContainer .new ()
44+ main_splitter .vertical = true
3545 main_splitter .dragger_visibility = SplitContainer .DRAGGER_HIDDEN_COLLAPSED
3646 main_splitter .touch_dragger_enabled = true
3747 main_splitter .split_offset = Configs .savedata .main_splitter_offset
3848 main_splitter .dragged .connect (_on_main_splitter_dragged )
3949 panel_container .add_child (main_splitter )
4050
41- var top_margin_container := MarginContainer .new ()
42- top_margin_container .custom_minimum_size .x = 350
43- top_margin_container .begin_bulk_theme_override ()
44- top_margin_container .add_theme_constant_override ("margin_top" , 6 )
45- top_margin_container .add_theme_constant_override ("margin_bottom" , 3 )
46- top_margin_container .add_theme_constant_override ("margin_left" , 6 )
47- top_margin_container .add_theme_constant_override ("margin_right" , 6 )
48- top_margin_container .end_bulk_theme_override ()
49- main_splitter .add_child (top_margin_container )
51+ var side_panel_margin_container := MarginContainer .new ()
52+ side_panel_margin_container .begin_bulk_theme_override ()
53+ side_panel_margin_container .add_theme_constant_override ("margin_top" , 6 )
54+ side_panel_margin_container .add_theme_constant_override ("margin_bottom" , 3 )
55+ side_panel_margin_container .add_theme_constant_override ("margin_left" , 6 )
56+ side_panel_margin_container .add_theme_constant_override ("margin_right" , 6 )
57+ side_panel_margin_container .end_bulk_theme_override ()
58+ main_splitter .add_child (side_panel_margin_container )
5059
51- var bottom_margin_container := MarginContainer .new ()
52- bottom_margin_container .add_theme_constant_override ("margin_top" , 3 )
53- bottom_margin_container .add_child (create_layout_node (Utils .LayoutPart .VIEWPORT ))
54- main_splitter .add_child (bottom_margin_container )
60+ var main_view_margin_container := MarginContainer .new ()
61+ main_view_margin_container .add_theme_constant_override ("margin_top" , 3 )
62+ main_view_margin_container .add_child (create_layout_node (Utils .LayoutPart .VIEWPORT ))
63+ main_splitter .add_child (main_view_margin_container )
5564
56- var left_vbox := VBoxContainer .new ()
57- left_vbox .add_theme_constant_override ("separation" , 6 )
58- top_margin_container .add_child (left_vbox )
65+ var side_panel_vbox := VBoxContainer .new ()
66+ side_panel_vbox .add_theme_constant_override ("separation" , 6 )
67+ side_panel_margin_container .add_child (side_panel_vbox )
5968
6069 var global_actions := GlobalActionsScene .instantiate ()
61- left_vbox .add_child (global_actions )
70+ side_panel_vbox .add_child (global_actions )
6271
63- if not top_left .is_empty () and not bottom_left .is_empty ():
72+ if not side_panel_top .is_empty () and not side_panel_bottom .is_empty ():
6473 # Layout parts both on top and on the bottom.
65- var top_vertical_split_container := VSplitContainer .new ()
66- top_vertical_split_container .size_flags_vertical = Control .SIZE_EXPAND_FILL
67- top_vertical_split_container .dragger_visibility = SplitContainer .DRAGGER_HIDDEN_COLLAPSED
68- top_vertical_split_container .touch_dragger_enabled = true
69- top_vertical_split_container .split_offset = Configs .savedata .top_vertical_splitter_offset
70- top_vertical_split_container .dragged .connect (_on_top_vertical_splitter_dragged )
71- top_vertical_split_container .add_child (create_layout_node (top_left [0 ]))
72- top_vertical_split_container .add_child (create_layout_node (bottom_left [0 ]))
73- left_vbox .add_child (top_vertical_split_container )
74- elif top_left .size () == 2 or bottom_left .size () == 2 :
74+ var side_panel_split_container := VSplitContainer .new ()
75+ side_panel_split_container .size_flags_vertical = Control .SIZE_EXPAND_FILL
76+ side_panel_split_container .dragger_visibility = SplitContainer .DRAGGER_HIDDEN_COLLAPSED
77+ side_panel_split_container .touch_dragger_enabled = true
78+ side_panel_split_container .split_offset = Configs .savedata .side_panel_splitter_offset
79+ side_panel_split_container .dragged .connect (_on_side_panel_splitter_dragged )
80+ side_panel_split_container .add_child (create_layout_node (side_panel_top [0 ]))
81+ side_panel_split_container .add_child (create_layout_node (side_panel_bottom [0 ]))
82+ side_panel_vbox .add_child (side_panel_split_container )
83+ elif side_panel_top .size () == 2 or side_panel_bottom .size () == 2 :
7584 # Tabs for the different layout parts.
76- var layout_parts := top_left if bottom_left .is_empty () else bottom_left
85+ var layout_parts := side_panel_top if side_panel_bottom .is_empty () else side_panel_bottom
7786 var vbox := VBoxContainer .new ()
7887 vbox .size_flags_vertical = Control .SIZE_EXPAND_FILL
7988 var buttons_hbox := HBoxContainer .new ()
@@ -114,19 +123,19 @@ func update_layout() -> void:
114123 if i == 0 :
115124 btn .button_pressed = true
116125 layout_nodes [part ].show ()
117- left_vbox .add_child (vbox )
126+ side_panel_vbox .add_child (vbox )
118127 else :
119128 # Layout parts disabled.
120- if not top_left .is_empty ():
121- left_vbox .add_child (create_layout_node (top_left [0 ]))
122- elif not bottom_left .is_empty ():
123- left_vbox .add_child (create_layout_node (bottom_left [0 ]))
129+ if not side_panel_top .is_empty ():
130+ side_panel_vbox .add_child (create_layout_node (side_panel_top [0 ]))
131+ elif not side_panel_bottom .is_empty ():
132+ side_panel_vbox .add_child (create_layout_node (side_panel_bottom [0 ]))
124133
125134func _on_main_splitter_dragged (offset : int ) -> void :
126135 Configs .savedata .main_splitter_offset = offset
127136
128- func _on_top_vertical_splitter_dragged (offset : int ) -> void :
129- Configs .savedata .top_vertical_splitter_offset = offset
137+ func _on_side_panel_splitter_dragged (offset : int ) -> void :
138+ Configs .savedata .side_panel_splitter_offset = offset
130139
131140
132141func create_layout_node (layout_part : Utils .LayoutPart ) -> Node :
0 commit comments