31 lines
842 B
Rust
31 lines
842 B
Rust
mod imp;
|
|
|
|
use gio::Settings;
|
|
use glib::Object;
|
|
use gtk::subclass::prelude::*;
|
|
use gtk::{gio, glib};
|
|
|
|
use crate::APP_ID;
|
|
|
|
glib::wrapper! {
|
|
pub struct Window(ObjectSubclass<imp::Window>)
|
|
@extends adw::ApplicationWindow, 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(app: &adw::Application) -> Self {
|
|
// Create new window
|
|
Object::new(&[("application", app)])
|
|
}
|
|
|
|
fn setup_settings(&self) {
|
|
let settings = Settings::new(APP_ID);
|
|
self.imp()
|
|
.settings
|
|
.set(settings)
|
|
.expect("`settings` should not be set before calling `setup_settings`.");
|
|
}
|
|
}
|