diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-11-09 01:49:49 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-11-09 01:49:49 (GMT) |
commit | 2df715e74d6600ed0a5688a43f6ecd873957326a (patch) | |
tree | feeb09b609a1fea8ae4441a83107767007ccba37 /src/gtkext | |
parent | e5808e7df6eb36ff8e150e57e8691a0b05222844 (diff) |
Loaded GTK CSS extensions from files in a given theme directory.
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/Makefile.am | 3 | ||||
-rw-r--r-- | src/gtkext/theme.c | 106 | ||||
-rw-r--r-- | src/gtkext/theme.h | 39 |
3 files changed, 1 insertions, 147 deletions
diff --git a/src/gtkext/Makefile.am b/src/gtkext/Makefile.am index bdd0a31..f1bd18a 100644 --- a/src/gtkext/Makefile.am +++ b/src/gtkext/Makefile.am @@ -16,8 +16,7 @@ libgtkext_la_SOURCES = \ gtkstatusstack.h gtkstatusstack.c \ gtkviewpanel-int.h \ gtkviewpanel.h gtkviewpanel.c \ - support.h support.c \ - theme.h theme.c + support.h support.c libgtkext_la_LIBADD = \ graph/libgtkextgraph.la diff --git a/src/gtkext/theme.c b/src/gtkext/theme.c deleted file mode 100644 index fbaed3c..0000000 --- a/src/gtkext/theme.c +++ /dev/null @@ -1,106 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * theme.c - prototypes pour l'ajout d'extensions au thème GTK - * - * Copyright (C) 2009-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#include "theme.h" - - -#include <config.h> - - - -static const char *_themes_directories[] = { - - PACKAGE_SOURCE_DIR G_DIR_SEPARATOR_S "themes", - PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "themes", - NULL - -}; - - - -/****************************************************************************** -* * -* Paramètres : - * -* * -* Description : Charge le thème GTK pour les composants spécifiques. * -* * -* Retour : true ou false selon le bilan de l'opération. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool load_extra_gtk_theme(void) -{ - GdkScreen *screen; /* Ecran(s) concerné(s) */ - const char **iter_f; /* Boucle de parcours #1 */ - bool done; /* Traitement d'un fichier */ - const char **iter_d; /* Boucle de parcours #2 */ - gchar *filename; /* Chemin d'accès constitué */ - GtkCssProvider *provider; /* Nouveau fournisseur CSS */ - - static const char *css_files[] = { - "portions.css", - "segments.css", - "icons.css", - NULL - }; - - screen = gdk_screen_get_default(); - - done = true; - - for (iter_f = css_files; *iter_f != NULL; iter_f++) - { - done = false; - - for (iter_d = _themes_directories; *iter_d != NULL && !done; iter_d++) - { - filename = g_strdup_printf("%s%s%s", *iter_d, G_DIR_SEPARATOR_S, *iter_f); - - if (g_file_test(filename, G_FILE_TEST_EXISTS)) - { - provider = gtk_css_provider_new(); - done = gtk_css_provider_load_from_path(provider, filename, NULL); - - if (done) - gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_USER); - - g_object_unref(G_OBJECT(provider)); - - } - - g_free(filename); - - } - - if (!done) - break; - - } - - return done; - -} diff --git a/src/gtkext/theme.h b/src/gtkext/theme.h deleted file mode 100644 index 3c893a4..0000000 --- a/src/gtkext/theme.h +++ /dev/null @@ -1,39 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * theme.h - prototypes pour l'ajout d'extensions au thème GTK - * - * Copyright (C) 2014 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#ifndef _GTKEXT_THEME_H -#define _GTKEXT_THEME_H - - -#include <stdbool.h> -#include <gtk/gtk.h> - - - -/* Charge le thème GTK pour les composants spécifiques. */ -bool load_extra_gtk_theme(void); - - - -#endif /* _GTKEXT_THEME_H */ |