diff options
| author | Joe Carstairs <me@joeac.net> | 2024-12-14 10:47:52 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-12-14 10:47:52 +0000 |
| commit | 96d68fc72cc74fd0858846b9c0df0424faa46adb (patch) | |
| tree | 42ba59b51cef93ec29a45866a697225984a734fa /schist_gtk4_gui/src/window/mod.rs | |
| parent | be9313986c9a32d134433d47c866b1f25a7847ab (diff) | |
Moves UI definition to XML
Diffstat (limited to 'schist_gtk4_gui/src/window/mod.rs')
| -rw-r--r-- | schist_gtk4_gui/src/window/mod.rs | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/schist_gtk4_gui/src/window/mod.rs b/schist_gtk4_gui/src/window/mod.rs index fde5f42..9482184 100644 --- a/schist_gtk4_gui/src/window/mod.rs +++ b/schist_gtk4_gui/src/window/mod.rs @@ -1,10 +1,18 @@ -use gtk::{prelude::*, Application, ApplicationWindow}; +mod imp; -pub fn build_window(app: &Application) { - ApplicationWindow::builder() - .application(app) - .title("Schist") - .fullscreened(true) - .build() - .present() +use gtk::{gio, glib::{self, object::IsA}}; + +gtk::glib::wrapper! { + pub struct Window(ObjectSubclass<imp::Window>) + @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 Window { + pub fn new<A: IsA<gtk::Application>>(app: &A) -> Self { + glib::Object::builder() + .property("application", app) + .build() + } } |
