diff options
Diffstat (limited to 'logic/popup.gd')
| -rw-r--r-- | logic/popup.gd | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/logic/popup.gd b/logic/popup.gd deleted file mode 100644 index 95fc2c3..0000000 --- a/logic/popup.gd +++ /dev/null @@ -1,76 +0,0 @@ -extends Control -class_name ModalPopup - -signal dismissed # () - -export var clear_signals_on_hide := true - -var control : Control -var control_parent : Node - -onready var title := get_node("title") as Label -onready var background := get_node("background") as Panel -onready var dismiss_button := get_node("dismiss") as Button - - -func _init(): - self.anchor_right = 1.0 - self.anchor_bottom = 1.0 - self.rect_clip_content = true - self.connect("hide", self, "_clear_signals") - - -func _ready(): - dismiss_button.connect("pressed", self, "dismiss") - - -func _clear_signals(): - if clear_signals_on_hide == false: - return - - for signal_name in ["dismissed"]: - for it in get_signal_connection_list(signal_name): - disconnect(it.signal, it.target, it.method) - - -func dismiss(): - emit_signal("dismissed") - close_popup() - - -func open_popup(title: String, item: Control): - if visible == true: - return - - self.title.text = title - - control = item - control.connect("hide", self, "close_popup") - 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 - control.anchor_bottom = background.anchor_bottom - control.margin_left = 20 - control.margin_top = 20 - control.margin_right = -20 - control.margin_bottom = -20 - - self.show() - control.show() - - -func close_popup(): - if visible == false: - return - - control.disconnect("hide", self, "close_popup") - control.hide() - self.hide() - remove_child(control) - control_parent.add_child(control) - control_parent = null - |
