38 lines
1.1 KiB
GDScript
38 lines
1.1 KiB
GDScript
@tool
|
|
extends Button
|
|
class_name AccordionButton
|
|
|
|
#var downcaret : CompressedTexture2D = preload("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
#var upcaret : CompressedTexture2D = preload("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
|
|
var curvisible : bool = false
|
|
|
|
func _enter_tree() -> void:
|
|
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
expand_icon = true
|
|
icon_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
|
if (!pressed.is_connected(ButtonPressed.bind())):
|
|
pressed.connect(ButtonPressed.bind())
|
|
|
|
func ButtonPressed():
|
|
curvisible = !curvisible
|
|
_handleVisibility()
|
|
|
|
func Open():
|
|
curvisible = true
|
|
_handleVisibility()
|
|
|
|
func Close():
|
|
curvisible = false
|
|
_handleVisibility()
|
|
|
|
func _handleVisibility():
|
|
if (!curvisible):
|
|
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
else:
|
|
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-up-solid.svg")
|
|
|
|
for child in get_parent().get_children():
|
|
if (child != self and child is Control):
|
|
child.visible = curvisible
|