diff options
author | Seth Nickell <snickell@stanford.edu> | 2002-03-15 09:23:45 +0000 |
---|---|---|
committer | Seth Nickell <seth@src.gnome.org> | 2002-03-15 09:23:45 +0000 |
commit | 8e834c8342c78da4bebdf7f452c548148446de76 (patch) | |
tree | fb2366e391b744ece23f97d1ff1da4afa65f276a | |
parent | c10c6c06cead8129f4bfe341b8f0b4cea88a2670 (diff) | |
download | gnome-control-center-8e834c8342c78da4bebdf7f452c548148446de76.tar.gz |
Add an enum type for specifying that we don't know the type (i.e. the key
2002-03-15 Seth Nickell <snickell@stanford.edu>
* preferences.c: (bg_preferences_load),
(bg_preferences_merge_entry), (read_wptype_from_string),
(read_color_from_string), (bg_preferences_get_wptype_as_string):
* preferences.h:
Add an enum type for specifying that we don't know the type (i.e. the
key was not available, or set to something invalid). Currently it
was using -1, which barfs with some compilers that set enums
to be uint.
-rw-r--r-- | libbackground/ChangeLog | 12 | ||||
-rw-r--r-- | libbackground/preferences.c | 21 |
2 files changed, 23 insertions, 10 deletions
diff --git a/libbackground/ChangeLog b/libbackground/ChangeLog index b7cfa1d0e..ab1f2fb8d 100644 --- a/libbackground/ChangeLog +++ b/libbackground/ChangeLog @@ -1,3 +1,15 @@ +2002-03-15 Seth Nickell <snickell@stanford.edu> + + * preferences.c: (bg_preferences_load), + (bg_preferences_merge_entry), (read_wptype_from_string), + (read_color_from_string), (bg_preferences_get_wptype_as_string): + * preferences.h: + + Add an enum type for specifying that we don't know the type (i.e. the + key was not available, or set to something invalid). Currently it + was using -1, which barfs with some compilers that set enums + to be uint. + 2002-03-09 Richard Hestilow <hestilow@ximian.com> * preview-file-selection.[ch]: Added. diff --git a/libbackground/preferences.c b/libbackground/preferences.c index 463a9772e..947984e5b 100644 --- a/libbackground/preferences.c +++ b/libbackground/preferences.c @@ -238,7 +238,7 @@ bg_preferences_load (BGPreferences *prefs) prefs->wallpaper_type = read_wptype_from_string (gconf_client_get_string (client, BG_PREFERENCES_PICTURE_OPTIONS, &error)); - if (prefs->wallpaper_type == -1) { + if (prefs->wallpaper_type == WPTYPE_UNSET) { prefs->wallpaper_enabled = FALSE; prefs->wallpaper_type = WPTYPE_CENTERED; } else { @@ -262,13 +262,12 @@ bg_preferences_merge_entry (BGPreferences *prefs, if (!strcmp (entry->key, BG_PREFERENCES_PICTURE_OPTIONS)) { wallpaper_type_t wallpaper_type = read_wptype_from_string (g_strdup (gconf_value_get_string (value))); - if (wallpaper_type == -1) { + if (wallpaper_type == WPTYPE_UNSET) { prefs->wallpaper_enabled = FALSE; } else { prefs->wallpaper_type = wallpaper_type; prefs->wallpaper_enabled = TRUE; } - } else if (!strcmp (entry->key, BG_PREFERENCES_PICTURE_FILENAME)) { prefs->wallpaper_filename = g_strdup (gconf_value_get_string (value)); @@ -301,8 +300,11 @@ bg_preferences_merge_entry (BGPreferences *prefs, prefs->gradient_enabled = TRUE; } else if (!strcmp (entry->key, BG_PREFERENCES_DRAW_BACKGROUND)) { - if (gconf_value_get_bool (value)) - prefs->enabled = TRUE; + if (gconf_value_get_bool (value) && + (prefs->wallpaper_filename != NULL) && + strcmp (prefs->wallpaper_filename, "") != 0 && + strcmp (prefs->wallpaper_filename, "(none)") != 0) + prefs->wallpaper_enabled = TRUE; else prefs->enabled = FALSE; } else { @@ -313,7 +315,7 @@ bg_preferences_merge_entry (BGPreferences *prefs, static wallpaper_type_t read_wptype_from_string (gchar *string) { - wallpaper_type_t type = -1; + wallpaper_type_t type = WPTYPE_UNSET; if (string) { if (!strncmp (string, "wallpaper", sizeof ("wallpaper"))) { @@ -363,10 +365,7 @@ read_color_from_string (const gchar *string) rgb = ((color->red >> 8) << 16) || ((color->green >> 8) << 8) || (color->blue >> 8); -#if 0 - /* fixme: I am not sure, but this can be accomplished otherwise */ - color->pixel = gdk_rgb_xpixel_from_rgb (rgb); -#endif + gdk_rgb_find_color (gdk_rgb_get_colormap (), color); } return color; @@ -389,6 +388,8 @@ bg_preferences_get_wptype_as_string (wallpaper_type_t wp) return "embossed"; case WPTYPE_NONE: return "none"; + case WPTYPE_UNSET: + return NULL; } return NULL; |