Initial commit, layout mockup

This commit is contained in:
2025-02-15 22:57:49 +01:00
commit 21b101e2bb
70 changed files with 7646 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
@tool
class_name DockableReferenceControl
extends Container
## Control that mimics its own visibility and rect into another Control.
var reference_to: Control:
get:
return _reference_to
set(control):
if _reference_to != control:
if is_instance_valid(_reference_to):
_reference_to.renamed.disconnect(_on_reference_to_renamed)
_reference_to.minimum_size_changed.disconnect(update_minimum_size)
_reference_to = control
minimum_size_changed.emit()
if not is_instance_valid(_reference_to):
return
_reference_to.renamed.connect(_on_reference_to_renamed)
_reference_to.minimum_size_changed.connect(update_minimum_size)
_reference_to.visible = visible
_reposition_reference()
var _reference_to: Control = null
func _ready() -> void:
mouse_filter = MOUSE_FILTER_IGNORE
set_notify_transform(true)
func _notification(what: int) -> void:
if what == NOTIFICATION_VISIBILITY_CHANGED and _reference_to:
_reference_to.visible = visible
elif what == NOTIFICATION_TRANSFORM_CHANGED and _reference_to:
_reposition_reference()
func _get_minimum_size() -> Vector2:
return _reference_to.get_combined_minimum_size() if _reference_to else Vector2.ZERO
func _reposition_reference() -> void:
_reference_to.global_position = global_position
_reference_to.size = size
func _on_reference_to_renamed() -> void:
name = _reference_to.name