aboutsummaryrefslogtreecommitdiff
path: root/logic/popup.gd
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-03-30 16:37:28 +0000
committerdam <dam@gudinoff>2022-03-30 16:37:28 +0000
commite04f33a614e2723db47f69a7f3146b030ee5e326 (patch)
tree999dd486901a363e4f1b427117de0e120eb465b4 /logic/popup.gd
parent8d4db7d2c92aa719da8ce218df9490283754d20b (diff)
downloadsurgery-log-e04f33a614e2723db47f69a7f3146b030ee5e326.tar.zst
surgery-log-e04f33a614e2723db47f69a7f3146b030ee5e326.zip
Add dismiss button logic on popup.
Diffstat (limited to 'logic/popup.gd')
-rw-r--r--logic/popup.gd34
1 files changed, 25 insertions, 9 deletions
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