summaryrefslogtreecommitdiff
path: root/schist_gtk4_gui
diff options
context:
space:
mode:
Diffstat (limited to 'schist_gtk4_gui')
-rw-r--r--schist_gtk4_gui/resources/css/styles.css1
-rw-r--r--schist_gtk4_gui/resources/css/window.css4
-rw-r--r--schist_gtk4_gui/resources/resources.gresource.xml2
-rw-r--r--schist_gtk4_gui/src/lib.rs14
-rw-r--r--schist_gtk4_gui/src/window/mod.rs5
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>)