2024-02-25 18:47:13 +00:00
|
|
|
class_name UI
|
2024-02-17 18:43:47 +00:00
|
|
|
extends Node
|
2024-01-25 11:10:29 +00:00
|
|
|
|
2024-02-25 18:47:13 +00:00
|
|
|
static var focus: Control
|
|
|
|
|
2024-01-28 21:08:08 +00:00
|
|
|
signal chat_message_submitted(message: String)
|
|
|
|
|
2024-02-06 20:55:22 +00:00
|
|
|
@export var login: Signal
|
|
|
|
@export var logout: Signal
|
|
|
|
@export var ping_changed: Signal
|
|
|
|
@export var download_changed: Signal
|
|
|
|
@export var upload_changed: Signal
|
|
|
|
@export var message_received: Signal
|
2024-01-25 11:10:29 +00:00
|
|
|
|
|
|
|
func _enter_tree():
|
2024-02-25 18:47:13 +00:00
|
|
|
if get_node_or_null("/root/Main"):
|
|
|
|
return
|
|
|
|
|
|
|
|
connect_fake()
|
|
|
|
|
|
|
|
func _process(_delta):
|
|
|
|
var new_focus := get_viewport().gui_get_focus_owner()
|
|
|
|
|
|
|
|
if new_focus && new_focus.name != "Unfocus":
|
|
|
|
UI.focus = new_focus
|
|
|
|
else:
|
|
|
|
UI.focus = null
|
2024-02-06 14:51:48 +00:00
|
|
|
|
|
|
|
func connect_fake():
|
2024-02-06 20:55:22 +00:00
|
|
|
for property in get_property_list():
|
|
|
|
if property.type != TYPE_SIGNAL:
|
|
|
|
continue
|
|
|
|
|
|
|
|
add_user_signal(property.name)
|
2024-02-17 18:43:47 +00:00
|
|
|
set(property.name, Signal(self, property.name))
|
2024-02-25 18:47:13 +00:00
|
|
|
|
|
|
|
static func unfocus():
|
|
|
|
if UI.focus:
|
|
|
|
UI.focus.release_focus()
|