Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
Commita60529ec9f97663138e15d5f9598962c61f34d7e (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-04-02 06:49:46 +0200
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-04-02 06:50:28 +0200
Files4e39940ea1cc19aaf17ebc7d4863c302c4e0a176 /badwolf.c
goodwolf-a60529ec9f97663138e15d5f9598962c61f34d7e.tar
goodwolf-a60529ec9f97663138e15d5f9598962c61f34d7e.tar.gz
goodwolf-a60529ec9f97663138e15d5f9598962c61f34d7e.zip
Parent27e52f39ecc17e934e642152117948321bd6abbe (diff)
Add CSS Provider for styling the interface
1 files changed, 26 insertions, 0 deletions
-rw-r--r--badwolf.c26
diff --git a/badwolf.c b/badwolf.c
index 5fe7d21..bdbbbd4 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -13,6 +13,7 @@
#include <locale.h> /* LC_* */
#include <stdio.h> /* perror(), fprintf() */
#include <stdlib.h> /* malloc() */
+#include <unistd.h> /* access() */
const gchar *homepage = "https://hacktivis.me/projects/badwolf";
const gchar *version = VERSION;
@@ -790,6 +791,31 @@ main(int argc, char *argv[])
GTK_WINDOW(window->main_window), BADWOLF_DEFAULT_WIDTH, BADWOLF_DEFAULT_HEIGHT);
gtk_window_set_role(GTK_WINDOW(window->main_window), "browser");
+ GtkCssProvider *css_provider_app = gtk_css_provider_new();
+ gchar *provider_path_app = g_build_filename(DATADIR, "interface.css", NULL);
+ if(access(provider_path_app, R_OK) == 0)
+ {
+ gtk_css_provider_load_from_path(css_provider_app, provider_path_app, NULL);
+ gtk_style_context_add_provider_for_screen(
+ gtk_widget_get_screen(GTK_WIDGET(window->main_window)),
+ GTK_STYLE_PROVIDER(css_provider_app),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+ g_free(provider_path_app);
+
+ GtkCssProvider *css_provider_user = gtk_css_provider_new();
+ gchar *provider_path_user =
+ g_build_filename(g_get_user_data_dir(), "badwolf", "interface.css", NULL);
+ if(access(provider_path_user, R_OK) == 0)
+ {
+ gtk_css_provider_load_from_path(css_provider_user, provider_path_user, NULL);
+ gtk_style_context_add_provider_for_screen(
+ gtk_widget_get_screen(GTK_WIDGET(window->main_window)),
+ GTK_STYLE_PROVIDER(css_provider_user),
+ GTK_STYLE_PROVIDER_PRIORITY_USER);
+ }
+ g_free(provider_path_user);
+
gtk_widget_set_tooltip_text(window->new_tab, _("Open new tab"));
gtk_notebook_set_action_widget(GTK_NOTEBOOK(window->notebook), window->new_tab, GTK_PACK_END);