summaryrefslogtreecommitdiff
path: root/capplets/common/gnome-theme-info.h
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@gnome.org>2002-11-01 16:09:43 +0000
committerJonathan Blandford <jrb@src.gnome.org>2002-11-01 16:09:43 +0000
commit9405d72d2fad085232190a18dab54ac04010646e (patch)
tree4863c36ee69ab0fadd7c53e1f4370e88a26f9b17 /capplets/common/gnome-theme-info.h
parentce78d4d67079af0b23ceb9990dc56797574e20ce (diff)
downloadgnome-control-center-9405d72d2fad085232190a18dab54ac04010646e.tar.gz
Rewrote to handle metathemes and icon themes. The WM stuff was previously
Fri Nov 1 11:01:16 2002 Jonathan Blandford <jrb@gnome.org> * gnome-theme-manager.c: Rewrote to handle metathemes and icon themes. The WM stuff was previously broken, too. * gnome-theme-installer.[ch]: Extract this code out to it's own file. Fri Nov 1 11:03:34 2002 Jonathan Blandford <jrb@gnome.org> * gnome-theme-info.[ch]: Moved theme-common, and gave more features.
Diffstat (limited to 'capplets/common/gnome-theme-info.h')
-rw-r--r--capplets/common/gnome-theme-info.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/capplets/common/gnome-theme-info.h b/capplets/common/gnome-theme-info.h
new file mode 100644
index 000000000..2063396cf
--- /dev/null
+++ b/capplets/common/gnome-theme-info.h
@@ -0,0 +1,103 @@
+/* gnome-theme-info.h - GNOME Theme information
+
+ Copyright (C) 2002 Jonathan Blandford <jrb@gnome.org>
+ All rights reserved.
+
+ This file is part of the Gnome Library.
+
+ The Gnome Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The Gnome Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Gnome Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+/*
+ @NOTATION@
+ */
+
+#ifndef GNOME_THEME_INFO_H
+#define GNOME_THEME_INFO_H
+
+#include <glib.h>
+
+
+typedef enum {
+ GNOME_THEME_METACITY = 1 << 0,
+ GNOME_THEME_GTK_2 = 1 << 1,
+ GNOME_THEME_GTK_2_KEYBINDING = 1 << 2,
+} GnomeThemeElement;
+
+typedef struct _GnomeThemeInfo GnomeThemeInfo;
+struct _GnomeThemeInfo
+{
+ gchar *path;
+ gchar *name;
+ guint has_gtk : 1;
+ guint has_keybinding : 1;
+ guint has_metacity : 1;
+ guint user_writable : 1;
+};
+
+typedef struct _GnomeThemeIconInfo GnomeThemeIconInfo;
+struct _GnomeThemeIconInfo
+{
+ gchar *path;
+ gchar *name;
+};
+
+typedef struct _GnomeThemeMetaInfo GnomeThemeMetaInfo;
+struct _GnomeThemeMetaInfo
+{
+ gchar *path;
+ gchar *name;
+ gchar *font;
+ gchar *comment;
+ gchar *icon_file;
+ gchar *background;
+ gchar *gtk_theme_name;
+ gchar *icon_theme_name;
+ gchar *metacity_theme_name;
+ GnomeThemeInfo *gtk_theme;
+ GnomeThemeInfo *icon_theme;
+ GnomeThemeInfo *metacity_theme;
+};
+
+
+/* Generic Themes */
+GnomeThemeInfo *gnome_theme_info_new (void);
+void gnome_theme_info_free (GnomeThemeInfo *theme_info);
+GnomeThemeInfo *gnome_theme_info_find (const gchar *theme_name);
+GList *gnome_theme_info_find_by_type (guint elements);
+GnomeThemeInfo *gnome_theme_info_find_by_dir (const gchar *theme_dir);
+
+
+
+/* Icon Themes */
+GnomeThemeIconInfo *gnome_theme_icon_info_new (void);
+void gnome_theme_icon_info_free (GnomeThemeIconInfo *icon_theme_info);
+GnomeThemeInfo *gnome_theme_icon_info_find (const gchar *icon_theme_name);
+GList *gnome_theme_icon_info_find_all (void);
+
+
+/* Meta themes*/
+GnomeThemeMetaInfo *gnome_theme_meta_info_new (void);
+void gnome_theme_meta_info_free (GnomeThemeMetaInfo *meta_theme_info);
+GnomeThemeMetaInfo *gnome_theme_meta_info_find (const char *meta_theme_name);
+GList *gnome_theme_meta_info_find_all (void);
+
+
+
+/* Theme monitoring */
+void gnome_theme_info_register_theme_change (GFunc func,
+ gpointer data);
+
+
+#endif /* GNOME_THEME_INFO_H */