From adf732f34d13c2e91dc7bafa853c5f7ac8a7b1e2 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sun, 15 Dec 2024 17:08:06 +0000 Subject: Styles window --- schist_gtk4_gui/resources/css/styles.css | 1 + schist_gtk4_gui/resources/css/window.css | 4 ++++ schist_gtk4_gui/resources/resources.gresource.xml | 2 ++ schist_gtk4_gui/src/lib.rs | 14 +++++++++++++- schist_gtk4_gui/src/window/mod.rs | 5 ++++- 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 schist_gtk4_gui/resources/css/styles.css create mode 100644 schist_gtk4_gui/resources/css/window.css diff --git a/schist_gtk4_gui/resources/css/styles.css b/schist_gtk4_gui/resources/css/styles.css new file mode 100644 index 0000000..b42e2df --- /dev/null +++ b/schist_gtk4_gui/resources/css/styles.css @@ -0,0 +1 @@ +@import 'window.css'; diff --git a/schist_gtk4_gui/resources/css/window.css b/schist_gtk4_gui/resources/css/window.css new file mode 100644 index 0000000..c07e199 --- /dev/null +++ b/schist_gtk4_gui/resources/css/window.css @@ -0,0 +1,4 @@ +.window { + background-color: #011120; + color: #e1f9ff; +} diff --git a/schist_gtk4_gui/resources/resources.gresource.xml b/schist_gtk4_gui/resources/resources.gresource.xml index a74cfc9..30fdd9f 100644 --- a/schist_gtk4_gui/resources/resources.gresource.xml +++ b/schist_gtk4_gui/resources/resources.gresource.xml @@ -2,5 +2,7 @@ window.ui + css/styles.css + css/window.css diff --git a/schist_gtk4_gui/src/lib.rs b/schist_gtk4_gui/src/lib.rs index 4c3055c..99c090e 100644 --- a/schist_gtk4_gui/src/lib.rs +++ b/schist_gtk4_gui/src/lib.rs @@ -1,6 +1,6 @@ mod window; -use gtk::{gio, glib, prelude::*, Application}; +use gtk::{gdk::Display, gio, glib, prelude::*, Application, CssProvider}; const APP_ID: &str = "net.joeac.schist"; @@ -9,6 +9,7 @@ pub fn run() -> glib::ExitCode { .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() } @@ -17,3 +18,14 @@ 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, + ); +} diff --git a/schist_gtk4_gui/src/window/mod.rs b/schist_gtk4_gui/src/window/mod.rs index 9482184..dcbba04 100644 --- a/schist_gtk4_gui/src/window/mod.rs +++ b/schist_gtk4_gui/src/window/mod.rs @@ -1,6 +1,9 @@ mod imp; -use gtk::{gio, glib::{self, object::IsA}}; +use gtk::{ + gio, + glib::{self, object::IsA}, +}; gtk::glib::wrapper! { pub struct Window(ObjectSubclass) -- cgit v1.2.3