44 lines
1.2 KiB
GDScript
44 lines
1.2 KiB
GDScript
@tool
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# Script Spliter
|
|
# https://github.com/CodeNameTwister/Script-Spliter
|
|
#
|
|
# Script Spliter addon for godot 4
|
|
# author: "Twister"
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
extends "res://addons/script_spliter/core/ui/multi_split_container.gd"
|
|
|
|
const PREVIEW : PackedScene = preload("res://addons/script_spliter/context/panel_preview.tscn")
|
|
|
|
var preview : Control = null
|
|
|
|
func get_total_containers() -> int:
|
|
var total : int = 0
|
|
for x : Node in get_children():
|
|
if x is SplitContainerItem:
|
|
if x.get_child_count() > 0:
|
|
total += 1
|
|
return total
|
|
|
|
func _notification(what: int) -> void:
|
|
if what == NOTIFICATION_PREDELETE:
|
|
if is_instance_valid(preview) and !preview.is_queued_for_deletion():
|
|
preview.queue_free()
|
|
|
|
func make_split_container_item() -> Control:
|
|
var x : SplitContainerItem = SplitContainerItem.new()
|
|
x.size_flags_horizontal = Control.SIZE_FILL
|
|
x.size_flags_vertical = Control.SIZE_FILL
|
|
x.custom_minimum_size = Vector2.ZERO
|
|
x.clip_contents = true
|
|
x.visible = false
|
|
return x
|
|
|
|
func has_items() -> bool:
|
|
return get_child_count() > 0
|
|
|
|
func is_split_container_item(x : Object) -> bool:
|
|
return x is SplitContainerItem
|
|
|