1 /*
2  * gog-theme.h :
3  *
4  * Copyright (C) 2003-2004 Jody Goldberg (jody@gnome.org)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of the
9  * License, or (at your option) version 3.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
19  * USA
20  */
21 #ifndef GOG_THEME_H
22 #define GOG_THEME_H
23 
24 #include <goffice/goffice.h>
25 
26 G_BEGIN_DECLS
27 
28 #define GOG_TYPE_THEME	(gog_theme_get_type ())
29 #define GOG_THEME(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GOG_TYPE_THEME, GogTheme))
30 #define GOG_IS_THEME(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GOG_TYPE_THEME))
31 
32 GType gog_theme_get_type (void);
33 
34 char const *gog_theme_get_name 		(GogTheme const *theme);
35 char const *gog_theme_get_id 		(GogTheme const *theme);
36 char const *gog_theme_get_description	(GogTheme const *theme);
37 GoResourceType gog_theme_get_resource_type (GogTheme const *theme);
38 void 	    gog_theme_fillin_style    	(GogTheme const *theme, GOStyle *style,
39 				         GogObject const *obj, int ind,
40 				         GOStyleFlag relevant_fields);
41 GogAxisColorMap const *gog_theme_get_color_map (GogTheme const *theme, gboolean discrete);
42 
43 GogTheme   *gog_theme_registry_lookup 		(char const *name);
44 GSList	   *gog_theme_registry_get_theme_names	(void);
45 void		gog_theme_save_to_home_dir (GogTheme *theme);
46 GogTheme   *gog_theme_edit			(GogTheme *theme, GOCmdContext *cc);
47 GogTheme   *gog_theme_dup			(GogTheme *theme);
48 gboolean	gog_theme_delete		(GogTheme *theme);
49 
50 void gog_theme_foreach (GFunc handler, gpointer user_data);
51 
52 /* private */
53 void _gog_themes_init	 (void);
54 void _gog_themes_shutdown (void);
55 
56 G_END_DECLS
57 
58 #endif /* GOG_THEME_H */
59