From 49f0b1ca22238ccdd8ae73ca4ffa96f7562259a4 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Tue, 18 Feb 2025 11:26:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5.=20=D0=A1=D0=BE=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D1=8F=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BD=D0=B5=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BD=D0=BE,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D1=83?= =?UTF-8?q?=20=D1=8D=D0=BA=D0=B7=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D1=81=D1=86=D0=B5=D0=BD=D0=B5=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=D0=B5=20=D0=BE=D1=82=20=D0=B8=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/button-flat/nine-patch-button.gd | 28 +++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) 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: