From 7b8d99ae16d350840701ee4e269ff49fbcfc3a91 Mon Sep 17 00:00:00 2001 From: Reinout Meliesie Date: Tue, 24 Dec 2024 01:18:05 +0100 Subject: [PATCH] Introduce GTK application CSS --- src/application.css | 0 src/main.rs | 25 ++++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 src/application.css diff --git a/src/application.css b/src/application.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs index 44fca61..daf9904 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,15 @@ mod persistence ; mod ui ; mod utility ; -use { gtk4 :: glib :: * , libadwaita :: { * , prelude :: * } } ; +use { + gtk4 :: { + CssProvider , + style_context_add_provider_for_display , + STYLE_PROVIDER_PRIORITY_APPLICATION , + gdk :: * , + glib :: * , + } , + libadwaita :: { * , prelude :: * } } ; use crate :: { error :: { * , ZoodexError :: * } , persistence :: * , ui :: * } ; @@ -14,11 +22,22 @@ fn main () -> ExitCode { let application = Application :: builder () . application_id ("com.kernelmaft.zoodex") . build () ; - application . connect_activate (on_activate) ; + application . connect_startup (add_style_provider) ; + application . connect_activate (show_window) ; application . run () } -fn on_activate ( app : & Application ) { +fn add_style_provider ( _ : & Application ) { + let style_provider = CssProvider :: new () ; + style_provider . load_from_string ( include_str ! ("application.css") ) ; + style_context_add_provider_for_display ( + & Display :: default () . unwrap () , + & style_provider , + STYLE_PROVIDER_PRIORITY_APPLICATION , + ) ; +} + +fn show_window ( app : & Application ) { let ui = UI :: new (app) ; ui . show_window () ;