diff options
| author | dam <dam@gudinoff> | 2022-03-30 16:37:28 +0000 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2022-03-30 16:37:28 +0000 |
| commit | e04f33a614e2723db47f69a7f3146b030ee5e326 (patch) | |
| tree | 999dd486901a363e4f1b427117de0e120eb465b4 /logic | |
| parent | 8d4db7d2c92aa719da8ce218df9490283754d20b (diff) | |
| download | surgery-log-e04f33a614e2723db47f69a7f3146b030ee5e326.tar.zst surgery-log-e04f33a614e2723db47f69a7f3146b030ee5e326.zip | |
Add dismiss button logic on popup.
Diffstat (limited to 'logic')
| -rw-r--r-- | logic/popup.gd | 34 |
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 |
