add an allow_fallback option when opening a theme

This commit is contained in:
Dana Jansens 2007-05-31 15:40:41 +00:00
parent 5e50b406d0
commit 5588c49335
3 changed files with 7 additions and 2 deletions

View file

@ -261,7 +261,7 @@ gint main(gint argc, gchar **argv)
/* load the theme specified in the rc file */ /* load the theme specified in the rc file */
{ {
RrTheme *theme; RrTheme *theme;
if ((theme = RrThemeNew(ob_rr_inst, config_theme, if ((theme = RrThemeNew(ob_rr_inst, config_theme, TRUE,
config_font_activewindow, config_font_activewindow,
config_font_inactivewindow, config_font_inactivewindow,
config_font_menutitle, config_font_menutitle,

View file

@ -65,6 +65,7 @@ static gboolean find_appearance(ParseState *ps, xmlNodePtr n, const gchar *names
#define FIND(type, args...) find_##type(&ps, root, args) #define FIND(type, args...) find_##type(&ps, root, args)
RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
gboolean allow_fallback,
RrFont *active_window_font, RrFont *inactive_window_font, RrFont *active_window_font, RrFont *inactive_window_font,
RrFont *menu_title_font, RrFont *menu_item_font, RrFont *menu_title_font, RrFont *menu_item_font,
RrFont *osd_font) RrFont *osd_font)
@ -85,12 +86,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
name = NULL; name = NULL;
} }
} }
if (!name) { if (name == NULL && allow_fallback) {
if (!parse_load_theme(DEFAULT_THEME, &ps.doc, &root, &ps.path)) { if (!parse_load_theme(DEFAULT_THEME, &ps.doc, &root, &ps.path)) {
g_message("Unable to load the theme '%s'", DEFAULT_THEME); g_message("Unable to load the theme '%s'", DEFAULT_THEME);
return NULL; return NULL;
} }
} }
if (name == NULL)
return NULL;
ps.inst = inst; ps.inst = inst;
theme = g_new0(RrTheme, 1); theme = g_new0(RrTheme, 1);

View file

@ -236,6 +236,7 @@ struct _RrTheme {
/*! The font values are all optional. If a NULL is used for any of them, then /*! The font values are all optional. If a NULL is used for any of them, then
the default font will be used. */ the default font will be used. */
RrTheme* RrThemeNew(const RrInstance *inst, const gchar *theme, RrTheme* RrThemeNew(const RrInstance *inst, const gchar *theme,
gboolean allow_fallback,
RrFont *active_window_font, RrFont *inactive_window_font, RrFont *active_window_font, RrFont *inactive_window_font,
RrFont *menu_title_font, RrFont *menu_item_font, RrFont *menu_title_font, RrFont *menu_item_font,
RrFont *osd_font); RrFont *osd_font);