diff --git a/libbackground/ChangeLog b/libbackground/ChangeLog index d191761da..40dedd594 100644 --- a/libbackground/ChangeLog +++ b/libbackground/ChangeLog @@ -1,3 +1,7 @@ +2002-02-22 Richard Hestilow + + * preferences.[ch]: Add function bg_preferences_save. + 2002-02-17 Bradford Hovinen * applier.c (need_root_pixmap_p): We don't need a root pixmap if diff --git a/libbackground/preferences.c b/libbackground/preferences.c index be56ffd78..0edb2e4d6 100644 --- a/libbackground/preferences.c +++ b/libbackground/preferences.c @@ -277,3 +277,41 @@ read_color_from_string (const gchar *string) return color; } + +#define DGB "/desktop/gnome/background/" + +void +bg_preferences_save (BGPreferences *prefs) +{ + GConfChangeSet *cs; + gchar *tmp; + + g_return_if_fail (prefs != NULL); + g_return_if_fail (IS_BG_PREFERENCES (prefs)); + + cs = gconf_change_set_new (); + gconf_change_set_set_bool (cs, DGB "enabled", prefs->enabled); + gconf_change_set_set_int (cs, DGB "wallpaper-type", prefs->wallpaper_type); + gconf_change_set_set_string (cs, DGB "wallpaper-filename", prefs->wallpaper_filename); + + tmp = g_strdup_printf ("#%02x%02x%02x", + prefs->color1->red >> 8, + prefs->color1->green >> 8, + prefs->color1->blue >> 8); + gconf_change_set_set_string (cs, DGB "color1", tmp); + g_free (tmp); + + tmp = g_strdup_printf ("#%02x%02x%02x", + prefs->color2->red >> 8, + prefs->color2->green >> 8, + prefs->color2->blue >> 8); + gconf_change_set_set_string (cs, DGB "color2", tmp); + g_free (tmp); + + gconf_change_set_set_int (cs, DGB "orientation", prefs->orientation); + gconf_client_commit_change_set (gconf_client_get_default (), cs, TRUE, NULL); + gconf_change_set_unref (cs); +} + +#undef DGB + diff --git a/libbackground/preferences.h b/libbackground/preferences.h index dcb73df80..ff41c2866 100644 --- a/libbackground/preferences.h +++ b/libbackground/preferences.h @@ -85,4 +85,6 @@ void bg_preferences_load (BGPreferences *prefs); void bg_preferences_merge_entry (BGPreferences *prefs, const GConfEntry *entry); +void bg_preferences_save (BGPreferences *prefs); + #endif /* __PREFERENCES_H */