namespace Deskcandy { [GtkTemplate(ui = "/moe/solarpunk/Deskcandy/presets_page.ui")] public class PresetsPage : Gtk.Bin { private new unowned Window parent; public PresetsPage(Window parent) { this.parent = parent; var preset_action_group = new SimpleActionGroup(); var create_preset = new SimpleAction("create", null); preset_action_group.add_action(create_preset); create_preset.activate.connect(this.on_create_preset); var delete_preset = new SimpleAction("delete", null); delete_preset.activate.connect(this.on_delete_preset); preset_action_group.add_action(delete_preset); this.insert_action_group("presets", preset_action_group); } private void on_create_preset(SimpleAction a, Variant? v) { this.parent.main_stack.visible_child_name = "editor"; } private void on_delete_preset(SimpleAction a, Variant? v) { message("delete"); } [GtkCallback] private void on_cancel_new_preset_button_clicked(Gtk.Widget w) { var popover = (Gtk.Popover)w.get_ancestor(typeof(Gtk.Popover)); popover.popdown(); this.parent.main_stack.visible_child_name = "presets"; } [GtkCallback] private void on_cancel_delete_preset_button_clicked(Gtk.Widget w) { var popover = (Gtk.Popover)w.get_ancestor(typeof(Gtk.Popover)); popover.popdown(); } } }