mod imp;

use glib::Object;
use gtk::{gio, glib::{self, subclass::types::ObjectSubclassIsExt}, Application, Button};

glib::wrapper! {
    pub struct MemoryCardsSetupScene(ObjectSubclass<imp::MemoryCardsSetupScene>)
        @extends gtk::ApplicationWindow, gtk::Window, gtk::Widget,
        @implements gio::ActionGroup, gio::ActionMap, gtk::Accessible, gtk::Buildable,
                    gtk::ConstraintTarget, gtk::Native, gtk::Root, gtk::ShortcutManager;
}

impl MemoryCardsSetupScene {
    pub fn new(app: &Application) -> Self {
        Object::builder().property("application", app).build()
    }
    
    pub fn get_edit_button(&self) -> &Button {
        self.imp().edit_button.as_ref()
    }

    pub fn get_start_button(&self) -> &Button {
        self.imp().start_button.as_ref()
    }

    pub fn get_back_button(&self) -> &Button {
        self.imp().back_button.as_ref()
    }
}
