Updated FloatingMenu

Added test button from Script Editor.
Changed Settings from adding to tree as a panel, and instead use a
Window that will handle the panel.  Also implemented this for Script
Editor.
This commit is contained in:
Mario Steele 2026-02-28 02:41:42 -06:00
parent 35931783cc
commit 9075ec35cf
2 changed files with 52 additions and 3 deletions

View file

@ -5,6 +5,7 @@ const COL_ON := Color.LIGHT_GREEN
const COL_OFF := Color.LIGHT_SALMON
const SETTINGS_PANEL = preload("res://UI/settings_panel.tscn")
const SCRIPT_EDITOR = preload("res://UI/Controls/script_editor.tscn")
# Indicators
@onready var indicators: Control = %indicators
@ -18,6 +19,7 @@ const SETTINGS_PANEL = preload("res://UI/settings_panel.tscn")
@onready var btn_step_away: GDSubMenuButton = %btn_step_away
@onready var btn_tuber: GDSubMenuButton = %btn_tuber
@onready var btn_chat: GDSubMenuButton = %btn_chat
@onready var btn_script_editor: GDSubMenuButton = %btn_script_editor
@onready var btn_user_list: GDSubMenuButton = %btn_user_list
@onready var btn_settings: GDSubMenuButton = %btn_settings
@onready var btn_end: GDSubMenuButton = %btn_end
@ -25,6 +27,9 @@ const SETTINGS_PANEL = preload("res://UI/settings_panel.tscn")
var is_anchored := true
var anchored_position: Vector2
var _set_win: Window
var _edit_win: Window
func start(_main_menu_button: GDSubMenuButton = null) -> void:
anchored_position = position
var _parent: Control = get_parent()
@ -98,11 +103,43 @@ func calculate_anchored_pos() -> void:
func _connect_signals() -> void:
btn_end.properly_pressed.connect(func(): get_tree().quit())
btn_settings.properly_pressed.connect(_handle_settings)
btn_script_editor.properly_pressed.connect(_handle_script_editor)
btn_run_obs.properly_pressed.connect(_handle_run_obs)
func _handle_settings() -> void:
if _set_win: return
var win := Window.new()
win.borderless = false
win.always_on_top = false
win.mode = Window.MODE_WINDOWED
var pnl := SETTINGS_PANEL.instantiate()
Globals.disable_mouse_passthrough()
get_tree().root.add_child(pnl)
pnl.show()
#Globals.disable_mouse_passthrough()
win.add_child(pnl)
win.size = Vector2i(1000,800)
win.close_requested.connect(func(): win.queue_free(); _set_win = null)
win.name = "SettingsWindow"
win.title = "Settings"
get_tree().root.add_child(win)
win.show()
_set_win = win
func _handle_script_editor() -> void:
if _edit_win: return
var win := Window.new()
win.borderless = false
win.always_on_top = false
win.mode = Window.MODE_WINDOWED
var pnl := SCRIPT_EDITOR.instantiate()
win.name = "ScriptEditorWindow"
win.title = "Script Editor"
win.add_child(pnl)
win.size = Vector2i(800,600)
win.close_requested.connect(func(): win.queue_free(); _edit_win = null)
get_tree().root.add_child(win)
win.show()
_edit_win = win
func _handle_run_obs() -> void:
EventManager.test_notification("Hello World!")
#endregion