summaryrefslogtreecommitdiff
path: root/schist_gtk4_gui/src/lib.rs
blob: 99c090e151325bd084ba5fa5e817405fe47c4214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
mod window;

use gtk::{gdk::Display, gio, glib, prelude::*, Application, CssProvider};

const APP_ID: &str = "net.joeac.schist";

pub fn run() -> glib::ExitCode {
    gio::resources_register_include!("resources.gresource")
        .expect("failed to register resources");

    let app = Application::builder().application_id(APP_ID).build();
    app.connect_startup(|_| load_css());
    app.connect_activate(build_window);
    app.run()
}

fn build_window(app: &Application) {
    let window = window::Window::new(app);
    window.present()
}

fn load_css() {
    let css_provider = CssProvider::new();
    css_provider.load_from_resource("/net/joeac/schist/css/styles.css");

    gtk::style_context_add_provider_for_display(
        &Display::default().expect("failed to connect to a display"),
        &css_provider,
        gtk::STYLE_PROVIDER_PRIORITY_APPLICATION,
    );
}