summaryrefslogtreecommitdiff
path: root/schist_gtk4_gui/src/window/mod.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-14 10:47:52 +0000
committerJoe Carstairs <me@joeac.net>2024-12-14 10:47:52 +0000
commit96d68fc72cc74fd0858846b9c0df0424faa46adb (patch)
tree42ba59b51cef93ec29a45866a697225984a734fa /schist_gtk4_gui/src/window/mod.rs
parentbe9313986c9a32d134433d47c866b1f25a7847ab (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.rs24
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()
+ }
}