V-Panel/scripts/module_base.gd

41 lines
705 B
GDScript

extends PanelBase
class_name ModuleBase
signal module_ready
@export var module_title: String = "Module"
var _initialized: bool = false
func _ready() -> void:
# Don't intercept mouse events — DashboardGrid handles drag-and-drop
_set_mouse_ignore(self)
if not _initialized:
_initialize()
func initialize() -> void:
pass
func refresh(data: Dictionary) -> void:
pass
func get_module_title() -> String:
return module_title
func _initialize() -> void:
_initialized = true
initialize()
module_ready.emit()
func _set_mouse_ignore(node: Node) -> void:
if node is Control:
node.mouse_filter = Control.MOUSE_FILTER_IGNORE
for child in node.get_children():
_set_mouse_ignore(child)