File indexing completed on 2024-04-28 13:20:21
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Carson Black <uhhadd@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include <gtk/gtk.h> 0008 #include <glib.h> 0009 #include <gio/gio.h> 0010 #include <gdk/gdk.h> 0011 0012 gchar *path; 0013 GFile *file; 0014 GFileMonitor *mon; 0015 GtkCssProvider *provider; 0016 0017 void reload_colours() { 0018 if (provider != NULL) { 0019 gtk_style_context_remove_provider_for_screen( 0020 gdk_screen_get_default(), 0021 GTK_STYLE_PROVIDER(provider) 0022 ); 0023 g_clear_object(&provider); 0024 } 0025 provider = gtk_css_provider_new(); 0026 gtk_style_context_add_provider_for_screen( 0027 gdk_screen_get_default(), 0028 GTK_STYLE_PROVIDER (provider), 0029 GTK_STYLE_PROVIDER_PRIORITY_USER+1 0030 ); 0031 gtk_css_provider_load_from_file( 0032 provider, 0033 file, 0034 NULL 0035 ); 0036 } 0037 0038 __attribute__((visibility("default"))) void gtk_module_init(gint *argc, gchar ***argv[]) { 0039 path = g_strconcat(g_get_user_config_dir(), "/gtk-3.0/colors.css", NULL); 0040 file = g_file_new_for_path(path); 0041 0042 mon = g_file_monitor_file( 0043 file, 0044 G_FILE_MONITOR_NONE, 0045 NULL, 0046 NULL 0047 ); 0048 0049 g_signal_connect(mon, "changed", G_CALLBACK(reload_colours), NULL); 0050 }