diff options
Diffstat (limited to 'schist_gtk4_gui')
| -rw-r--r-- | schist_gtk4_gui/resources/css/styles.css | 1 | ||||
| -rw-r--r-- | schist_gtk4_gui/resources/css/window.css | 4 | ||||
| -rw-r--r-- | schist_gtk4_gui/resources/resources.gresource.xml | 2 | ||||
| -rw-r--r-- | schist_gtk4_gui/src/lib.rs | 14 | ||||
| -rw-r--r-- | schist_gtk4_gui/src/window/mod.rs | 5 |
5 files changed, 24 insertions, 2 deletions
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 @@ <gresources> <gresource prefix="/net/joeac/schist/"> <file compressed="true" preprocess="xml-stripblanks">window.ui</file> + <file compressed="true">css/styles.css</file> + <file compressed="true">css/window.css</file> </gresource> </gresources> 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<imp::Window>) |
