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 func _init(): anchor_right = 1.0 anchor_bottom = 1.0 func _ready(): get_node("dismiss").connect("pressed", self, "dismiss") func open_popup(title: String, item: Control): if visible == true: return self.title.text = title control = item 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 add_child(control) self.show() control.show() func dismiss(): emit_signal("dismissed") func close_popup(): if visible == false: return self.hide() control.hide() remove_child(control) control_parent.add_child(control) control_parent = null