Files
uarep-ctl/scenes/nine-patch-button.gd
2023-04-12 11:58:07 +03:00

36 lines
1.2 KiB
GDScript

@tool
extends PanelContainer
@export var text: String = '': get = get_text, set = set_text
@export var texture_state0: Texture2D = preload('res://data/кнопка-квадрат-0.png'): set = _state_set_texture
@export var texture_state1: Texture2D = preload('res://data/кнопка-квадрат-1.png'): set = _state_set_texture
@export var pressed: bool = false: get = is_pressed, set = set_pressed
@export var toggle_mode: bool = false: get = is_toggle_mode, set = set_toggle_mode
func _state_set_texture(val: Texture2D): $state.set_texture(val)
func _state_get_texture(): return $state.get_texture()
func set_text (val: String): $button.set_text(val)
func set_pressed (val: bool): $button.set_pressed(val)
func set_toggle_mode (val: bool):
if is_inside_tree():
$button.set_toggle_mode(val)
func get_text(): return $button.get_text()
func is_pressed(): return $button.is_pressed()
func is_toggle_mode(): return $button.is_toggle_mode()
func _on_button_toggled(val: bool):
if val: $state.set_texture(texture_state1)
else: $state.set_texture(texture_state0)
func button_connect(button_signal: String, proc: Callable):
$button.connect(button_signal, proc)