From e04f33a614e2723db47f69a7f3146b030ee5e326 Mon Sep 17 00:00:00 2001 From: dam Date: Wed, 30 Mar 2022 16:37:28 +0000 Subject: Add dismiss button logic on popup. --- logic/popup.gd | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'logic') diff --git a/logic/popup.gd b/logic/popup.gd index 5a1c2a5..2ff91fe 100644 --- a/logic/popup.gd +++ b/logic/popup.gd @@ -1,7 +1,10 @@ extends Control class_name ModalPopup +signal dismissed # () + var control : Control +var control_parent : Node onready var title := get_node("title") as Label onready var background := get_node("background") as Panel @@ -13,13 +16,20 @@ func _init(): func _ready(): - get_node("back").connect("pressed", self, "hide") + get_node("dismiss").connect("pressed", self, "dismiss") -func popup_control(title: String, item: Control): +func open_popup(title: String, item: Control): + if visible == true: + return + self.title.text = title + control = item - control.connect("visibility_changed", self, "closed") + control_parent = control.get_parent() + control_parent.remove_child(control) + self.add_child(control) + control.anchor_left = background.anchor_left control.anchor_top = background.anchor_top control.anchor_right = background.anchor_right @@ -29,16 +39,22 @@ func popup_control(title: String, item: Control): control.margin_right = -20 control.margin_bottom = -20 add_child(control) - show() + + self.show() control.show() -# self.visible = true -func closed(): - if control.visible == true: +func dismiss(): + emit_signal("dismissed") + + +func close_popup(): + if visible == false: return - control.disconnect("visibility_changed", self, "closed") - remove_child(control) self.hide() + control.hide() + remove_child(control) + control_parent.add_child(control) + control_parent = null -- cgit v1.2.3