diff --git a/scenes/button-flat/nine-patch-button.gd b/scenes/button-flat/nine-patch-button.gd index d11bc4c..7e2e61d 100644 --- a/scenes/button-flat/nine-patch-button.gd +++ b/scenes/button-flat/nine-patch-button.gd @@ -3,18 +3,17 @@ extends PanelContainer func set_text(val: String): $button.set_text(val) -func set_pressed(val: bool): $button.set_pressed(val) func set_disabled(val: bool): disabled = val func get_text(): return $button.get_text() func is_pressed(): return $button.is_pressed() func is_toggle_mode(): return $button.is_toggle_mode() +var _pressed: = false @export var texture_state0: Texture2D = preload('res://data/кнопка-квадрат-0.png'): set(val): texture_state0 = val - if is_inside_tree(): - $state.set_texture(val) + $state.set_texture(val) @export var texture_state1: Texture2D = preload('res://data/кнопка-квадрат-1.png'): @@ -27,40 +26,43 @@ func is_toggle_mode(): return $button.is_toggle_mode() @export var strips_rotation: float = 0.0: set(val): strips_rotation = val - if is_inside_tree(): - $back.strips_rotation = deg_to_rad(val) + $back.strips_rotation = deg_to_rad(val) @export var text: String = '': set(val): text = val - if is_inside_tree(): - $button.set_text(val) + $button.set_text(val) @export var disabled: bool = false: set(val): disabled = val - if is_inside_tree(): - $button.set_disabled(val) - $back.disabled = val - $state.modulate.a = 0.5 if val else 1.0 + $button.set_disabled(val) + $back.disabled = val + $state.modulate.a = 0.5 if val else 1.0 @export var pressed: bool = false: set(val): pressed = val + _pressed = val if is_inside_tree(): $button.set_pressed(val) + _on_button_toggled(val) -@export var toggle_mode: bool = false: +@export var toggle_mode: bool = true: set(val): toggle_mode = val if is_inside_tree(): $button.set_toggle_mode(val) +func set_pressed(val: bool): + pressed = val + + func button_connect(button_signal: String, proc: Callable): var rc = $button.connect(button_signal, proc) if rc != Error.OK: @@ -75,8 +77,8 @@ func _on_resized() -> void: func _enter_tree() -> void: $back.scale = size $back.material.set('shader_parameter/scale', size / Vector2(20.0, 20.0)) - $button.set_toggle_mode(true) $button.connect('toggled', _on_button_toggled) + pressed = _pressed func _exit_tree() -> void: