diff --git a/ovr-utils/icons/close.svg b/ovr-utils/icons/close.svg new file mode 100644 index 0000000..331727a --- /dev/null +++ b/ovr-utils/icons/close.svg @@ -0,0 +1 @@ + diff --git a/ovr-utils/icons/close.svg.import b/ovr-utils/icons/close.svg.import new file mode 100644 index 0000000..91c6423 --- /dev/null +++ b/ovr-utils/icons/close.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/close.svg-4ddfafaefba273b37f7839c4b0365913.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icons/close.svg" +dest_files=[ "res://.import/close.svg-4ddfafaefba273b37f7839c4b0365913.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=10.0 diff --git a/ovr-utils/styles/menu.theme b/ovr-utils/styles/menu.theme index c0bc092..39a6d16 100644 Binary files a/ovr-utils/styles/menu.theme and b/ovr-utils/styles/menu.theme differ diff --git a/ovr-utils/ui/ListOverlayItem.tscn b/ovr-utils/ui/ListOverlayItem.tscn index 4eb2734..6ea9564 100644 --- a/ovr-utils/ui/ListOverlayItem.tscn +++ b/ovr-utils/ui/ListOverlayItem.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://ui/overlay_list_item.gd" type="Script" id=1] [ext_resource path="res://icons/remove.svg" type="Texture" id=2] @@ -9,84 +9,134 @@ [ext_resource path="res://icons/person.svg" type="Texture" id=7] [ext_resource path="res://icons/visible.svg" type="Texture" id=8] [ext_resource path="res://styles/menu.theme" type="Theme" id=9] +[ext_resource path="res://icons/list.svg" type="Texture" id=10] +[ext_resource path="res://icons/close.svg" type="Texture" id=11] -[node name="ListOverlayItem" type="PanelContainer"] +[node name="ListOverlayItem" type="MarginContainer"] margin_top = 1727.0 margin_right = 2048.0 margin_bottom = 1920.0 rect_min_size = Vector2( 100, 128 ) theme = ExtResource( 9 ) +custom_constants/margin_right = 8 +custom_constants/margin_top = 8 +custom_constants/margin_left = 8 +custom_constants/margin_bottom = 8 script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } -[node name="Label" type="Label" parent="."] -margin_left = 8.0 -margin_top = 16.0 -margin_right = 2040.0 -margin_bottom = 191.0 -text = "Main Menu" - -[node name="HBoxContainer" type="HBoxContainer" parent="."] +[node name="BasicOptions" type="PanelContainer" parent="."] margin_left = 8.0 margin_top = 8.0 margin_right = 2040.0 +margin_bottom = 215.0 + +[node name="Label" type="Label" parent="BasicOptions"] +margin_left = 8.0 +margin_top = 16.0 +margin_right = 2024.0 +margin_bottom = 191.0 +text = "Main Menu" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="List" type="HBoxContainer" parent="BasicOptions"] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 2024.0 margin_bottom = 199.0 alignment = 2 +__meta__ = { +"_edit_use_anchors_": false +} -[node name="Remove" type="Button" parent="HBoxContainer"] -margin_left = 952.0 -margin_right = 1128.0 -margin_bottom = 191.0 -focus_mode = 0 -icon = ExtResource( 2 ) - -[node name="Reset" type="Button" parent="HBoxContainer"] -margin_left = 1132.0 -margin_right = 1308.0 -margin_bottom = 191.0 -focus_mode = 0 -icon = ExtResource( 5 ) - -[node name="Target" type="OptionButton" parent="HBoxContainer"] -margin_left = 1312.0 -margin_right = 1492.0 -margin_bottom = 191.0 -focus_mode = 0 -text = "Left" -icon = ExtResource( 6 ) -clip_text = true -items = [ "Head", ExtResource( 7 ), false, 0, null, "Left", ExtResource( 6 ), false, 1, null, "Right", ExtResource( 6 ), false, 2, null, "World", ExtResource( 3 ), false, 3, null ] -selected = 1 - -[node name="Size" type="Button" parent="HBoxContainer"] -margin_left = 1496.0 -margin_right = 1672.0 -margin_bottom = 191.0 -focus_mode = 0 -toggle_mode = true -icon = ExtResource( 4 ) - -[node name="Grab" type="Button" parent="HBoxContainer"] -margin_left = 1676.0 -margin_right = 1852.0 +[node name="Grab" type="Button" parent="BasicOptions/List"] +margin_left = 1480.0 +margin_right = 1656.0 margin_bottom = 191.0 focus_mode = 0 toggle_mode = true icon = ExtResource( 3 ) -[node name="Visibility" type="Button" parent="HBoxContainer"] -margin_left = 1856.0 -margin_right = 2032.0 +[node name="Visibility" type="Button" parent="BasicOptions/List"] +margin_left = 1660.0 +margin_right = 1836.0 margin_bottom = 191.0 focus_mode = 0 toggle_mode = true pressed = true icon = ExtResource( 8 ) -[connection signal="pressed" from="HBoxContainer/Remove" to="." method="_on_Remove_pressed"] -[connection signal="pressed" from="HBoxContainer/Reset" to="." method="_on_Reset_pressed"] -[connection signal="item_selected" from="HBoxContainer/Target" to="." method="_on_Target_item_selected"] -[connection signal="toggled" from="HBoxContainer/Grab" to="." method="_on_Grab_toggled"] -[connection signal="toggled" from="HBoxContainer/Visibility" to="." method="_on_Visibility_toggled"] +[node name="Options" type="Button" parent="BasicOptions/List"] +margin_left = 1840.0 +margin_right = 2016.0 +margin_bottom = 191.0 +icon = ExtResource( 10 ) + +[node name="MoreOptions" type="HSplitContainer" parent="."] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 2040.0 +margin_bottom = 215.0 + +[node name="Spacer" type="Control" parent="MoreOptions"] +margin_right = 1104.0 +margin_bottom = 207.0 +size_flags_horizontal = 3 + +[node name="Container" type="PanelContainer" parent="MoreOptions"] +margin_left = 1116.0 +margin_right = 2032.0 +margin_bottom = 207.0 + +[node name="List" type="HBoxContainer" parent="MoreOptions/Container"] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 908.0 +margin_bottom = 199.0 +alignment = 2 + +[node name="Remove" type="Button" parent="MoreOptions/Container/List"] +margin_right = 176.0 +margin_bottom = 191.0 +icon = ExtResource( 2 ) + +[node name="Size" type="Button" parent="MoreOptions/Container/List"] +margin_left = 180.0 +margin_right = 356.0 +margin_bottom = 191.0 +toggle_mode = true +icon = ExtResource( 4 ) + +[node name="Target" type="OptionButton" parent="MoreOptions/Container/List"] +margin_left = 360.0 +margin_right = 540.0 +margin_bottom = 191.0 +text = "Left" +icon = ExtResource( 6 ) +clip_text = true +items = [ "Head", ExtResource( 7 ), false, 0, null, "Left", ExtResource( 6 ), false, 1, null, "Right", ExtResource( 6 ), false, 2, null, "World", ExtResource( 3 ), false, 3, null ] +selected = 1 + +[node name="Reset" type="Button" parent="MoreOptions/Container/List"] +margin_left = 544.0 +margin_right = 720.0 +margin_bottom = 191.0 +icon = ExtResource( 5 ) + +[node name="CloseOptions" type="Button" parent="MoreOptions/Container/List"] +margin_left = 724.0 +margin_right = 900.0 +margin_bottom = 191.0 +icon = ExtResource( 11 ) + +[connection signal="toggled" from="BasicOptions/List/Grab" to="." method="_on_Grab_toggled"] +[connection signal="toggled" from="BasicOptions/List/Visibility" to="." method="_on_Visibility_toggled"] +[connection signal="pressed" from="BasicOptions/List/Options" to="." method="_on_Options_pressed"] +[connection signal="pressed" from="MoreOptions/Container/List/Remove" to="." method="_on_Remove_pressed"] +[connection signal="item_selected" from="MoreOptions/Container/List/Target" to="." method="_on_Target_item_selected"] +[connection signal="pressed" from="MoreOptions/Container/List/Reset" to="." method="_on_Reset_pressed"] +[connection signal="pressed" from="MoreOptions/Container/List/CloseOptions" to="." method="_on_CloseOptions_pressed"] diff --git a/ovr-utils/ui/MainOverlay.tscn b/ovr-utils/ui/MainOverlay.tscn index 58a98f5..d23c190 100644 --- a/ovr-utils/ui/MainOverlay.tscn +++ b/ovr-utils/ui/MainOverlay.tscn @@ -39,7 +39,7 @@ __meta__ = { } [node name="ListOverlayItem" parent="VSplitContainer/Control/Overlays" instance=ExtResource( 7 )] -margin_top = 1638.0 +margin_top = 1717.0 margin_bottom = 1845.0 overlay_name = "MainOverlay" diff --git a/ovr-utils/ui/add_menu.gd b/ovr-utils/ui/add_menu.gd index 837a290..a20e4e2 100644 --- a/ovr-utils/ui/add_menu.gd +++ b/ovr-utils/ui/add_menu.gd @@ -14,7 +14,7 @@ func _ready() -> void: func add_overlay(type): - OverlayManager.add_overlay(type, type + str(randi()%100)) + OverlayManager.add_overlay(type, type + " " + str(randi()%1000)) visible = false diff --git a/ovr-utils/ui/overlay_list_item.gd b/ovr-utils/ui/overlay_list_item.gd index fc8fdd5..1256280 100644 --- a/ovr-utils/ui/overlay_list_item.gd +++ b/ovr-utils/ui/overlay_list_item.gd @@ -1,13 +1,14 @@ -extends PanelContainer +extends Control export var overlay_name: String var overlay func _ready() -> void: overlay = OverlayManager.get_node(overlay_name) - $Label.text = overlay_name + $MoreOptions.visible = false + $BasicOptions/Label.text = overlay_name name = overlay_name - $HBoxContainer/Target.selected = overlay.TARGETS.find(Settings.s.overlays[overlay_name].target) + $MoreOptions/Container/List/Target.selected = overlay.TARGETS.find(Settings.s.overlays[overlay_name].target) overlay.connect("overlay_visibility_changed", self, "_overlay_visibility_changed") @@ -16,27 +17,34 @@ func _on_Visibility_toggled(state: bool) -> void: overlay.overlay_visible = state -func _on_Target_item_selected(index: int) -> void: - overlay.target = overlay.TARGETS[index] - - -func _on_Reset_pressed() -> void: - overlay.reset_offset() - - func _on_Grab_toggled(state: bool) -> void: overlay.get_node("OverlayInteraction").grab_mode = state func _overlay_visibility_changed(state: bool): - $HBoxContainer/Visibility.pressed = state + $BasicOptions/List/Visibility.pressed = state if state: - $HBoxContainer/Visibility.icon = preload("res://icons/visible.svg") + $BasicOptions/List/Visibility.icon = preload("res://icons/visible.svg") else: - $HBoxContainer/Visibility.icon = preload("res://icons/hidden.svg") + $BasicOptions/List/Visibility.icon = preload("res://icons/hidden.svg") func _on_Remove_pressed() -> void: if overlay.type and overlay.type != "main": OverlayManager.remove_overlay(overlay_name) + +func _on_Reset_pressed() -> void: + overlay.reset_offset() + + +func _on_Target_item_selected(index: int) -> void: + overlay.target = overlay.TARGETS[index] + + +func _on_Options_pressed() -> void: + $MoreOptions.visible = true + + +func _on_CloseOptions_pressed() -> void: + $MoreOptions.visible = false