Read control center directory structure out of GnomeVFS instead of

2002-01-28  Seth Nickell  <snickell@stanford.edu>

	* control-center/capplet-dir.c: (capplet_new), (capplet_dir_new),
	(capplet_dir_entry_destroy), (read_entries),
	(get_root_capplet_dir):
	* control-center/capplet-dir.h:

	Read control center directory structure out of GnomeVFS instead of
	directly off the disk.

	Also deal with pixmaps more uniformly, and properly load them
	out of PREFIX/share/pixmaps when they aren't an absolute path.

	* capplets/desktop-links/Sawfish/appearance-properties.desktop.in:
	* capplets/desktop-links/Sawfish/bindings-properties.desktop.in:
	* capplets/desktop-links/Sawfish/focus-properties.desktop.in:
	* capplets/desktop-links/Sawfish/match-properties.desktop.in:
	* capplets/desktop-links/Sawfish/maximize-properties.desktop.in:
	* capplets/desktop-links/Sawfish/meta-properties.desktop.in:
	* capplets/desktop-links/Sawfish/misc-properties.desktop.in:
	* capplets/desktop-links/Sawfish/move-properties.desktop.in:
	* capplets/desktop-links/Sawfish/placement-properties.desktop.in:
	* capplets/desktop-links/Sawfish/sound-properties.desktop.in:
	* capplets/desktop-links/Sawfish/workspace-properties.desktop.in:
	* capplets/ui-properties/behavior.desktop.in.in:

	Add a Categories Field.

	* capplets/desktop-links/Makefile.am:
	* capplets/desktop-links/Sawfish/Makefile.am:
	* capplets/file-types/Makefile.am:
	* capplets/theme-switcher/Makefile.am:
	* capplets/ui-properties/Makefile.am:
	* control-center/Gnome.directory.in.in:
	* control-center/Makefile.am:

	Install directory files into PREFIX/share/gnome/vfolders, the standard
	vfolder description location.
This commit is contained in:
Seth Nickell 2002-01-29 04:48:25 +00:00 committed by Seth Nickell
parent 788e46daac
commit 5fe3e40279
25 changed files with 2103 additions and 737 deletions

View file

@ -41,6 +41,8 @@ static void bg_preferences_class_init (BGPreferencesClass *class);
static void bg_preferences_finalize (GObject *object);
static GdkColor *read_color_from_string (const gchar *string);
static orientation_t read_orientation_from_string (gchar *string);
static wallpaper_type_t read_wptype_from_string (gchar *string);
GType
bg_preferences_get_type (void)
@ -173,22 +175,30 @@ bg_preferences_load (BGPreferences *prefs)
client = gconf_client_get_default ();
prefs->enabled = gconf_client_get_bool (client, "/desktop/gnome/background/enabled", &error);
prefs->wallpaper_type = gconf_client_get_int (client, "/desktop/gnome/background/wallpaper-type", &error);
prefs->wallpaper_filename = gconf_client_get_string (client, "/desktop/gnome/background/wallpaper-filename", &error);
prefs->wallpaper_enabled = gconf_client_get_bool (client, "/desktop/gnome/background/wallpaper-enabled", &error);
prefs->color1 = read_color_from_string (gconf_client_get_string (client, "/desktop/gnome/background/color1", &error));
prefs->color2 = read_color_from_string (gconf_client_get_string (client, "/desktop/gnome/background/color2", &error));
prefs->opacity = gconf_client_get_int (client, "/desktop/gnome/background/opacity", &error);
prefs->enabled = gconf_client_get_bool (client, BG_PREFERENCES_DRAW_BACKGROUND, &error);
prefs->wallpaper_filename = gconf_client_get_string (client, BG_PREFERENCES_PICTURE_FILENAME, &error);
prefs->color1 = read_color_from_string (gconf_client_get_string (client, BG_PREFERENCES_PRIMARY_COLOR, &error));
prefs->color2 = read_color_from_string (gconf_client_get_string (client, BG_PREFERENCES_SECONDARY_COLOR, &error));
prefs->opacity = gconf_client_get_int (client, BG_PREFERENCES_PICTURE_OPACITY, &error);
if (prefs->opacity >= 100 || prefs->opacity < 0)
prefs->adjust_opacity = FALSE;
prefs->orientation = gconf_client_get_int (client, "/desktop/gnome/background/orientation", &error);
prefs->orientation = read_orientation_from_string (gconf_client_get_string (client, BG_PREFERENCES_COLOR_SHADING_TYPE, &error));
if (prefs->orientation == ORIENTATION_SOLID)
prefs->gradient_enabled = FALSE;
else
prefs->gradient_enabled = TRUE;
prefs->wallpaper_type = read_wptype_from_string (gconf_client_get_string (client, BG_PREFERENCES_PICTURE_OPTIONS, &error));
if (prefs->wallpaper_type == -1) {
prefs->wallpaper_enabled = FALSE;
prefs->wallpaper_type = WPTYPE_CENTERED;
} else {
prefs->wallpaper_enabled = TRUE;
}
}
/* Parse the event name given (the event being notification of a property having
@ -205,10 +215,17 @@ bg_preferences_merge_entry (BGPreferences *prefs,
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_BG_PREFERENCES (prefs));
if (!strcmp (entry->key, "/desktop/gnome/background/wallpaper_type")) {
prefs->wallpaper_type = gconf_value_get_int (value);
if (!strcmp (entry->key, BG_PREFERENCES_PICTURE_OPTIONS)) {
prefs->wallpaper_type = read_wptype_from_string (g_strdup (gconf_value_get_string (value)));
if (prefs->wallpaper_type == -1) {
prefs->wallpaper_enabled = FALSE;
prefs->wallpaper_type = WPTYPE_CENTERED;
} else {
prefs->wallpaper_enabled = TRUE;
}
}
else if (!strcmp (entry->key, "/desktop/gnome/background/wallpaper-filename")) {
else if (!strcmp (entry->key, BG_PREFERENCES_PICTURE_FILENAME)) {
prefs->wallpaper_filename = g_strdup (gconf_value_get_string (value));
if (prefs->wallpaper_filename != NULL &&
@ -218,27 +235,27 @@ bg_preferences_merge_entry (BGPreferences *prefs,
else
prefs->wallpaper_enabled = FALSE;
}
else if (!strcmp (entry->key, "/desktop/gnome/background/color1")) {
else if (!strcmp (entry->key, BG_PREFERENCES_PRIMARY_COLOR)) {
prefs->color1 = read_color_from_string (gconf_value_get_string (value));
}
else if (!strcmp (entry->key, "/desktop/gnome/background/color2")) {
else if (!strcmp (entry->key, BG_PREFERENCES_SECONDARY_COLOR)) {
prefs->color2 = read_color_from_string (gconf_value_get_string (value));
}
else if (!strcmp (entry->key, "/desktop/gnome/background/opacity")) {
else if (!strcmp (entry->key, BG_PREFERENCES_PICTURE_OPACITY)) {
prefs->opacity = gconf_value_get_int (value);
if (prefs->opacity >= 100)
prefs->adjust_opacity = FALSE;
}
else if (!strcmp (entry->key, "/desktop/gnome/background/orientation")) {
prefs->orientation = gconf_value_get_int (value);
else if (!strcmp (entry->key, BG_PREFERENCES_COLOR_SHADING_TYPE)) {
prefs->orientation = read_orientation_from_string (g_strdup (gconf_value_get_string (value)));
if (prefs->orientation == ORIENTATION_SOLID)
prefs->gradient_enabled = FALSE;
else
prefs->gradient_enabled = TRUE;
}
else if (!strcmp (entry->key, "/desktop/gnome/background/wallpaper-enabled")) {
else if (!strcmp (entry->key, BG_PREFERENCES_DRAW_BACKGROUND)) {
if (gconf_value_get_bool (value) &&
(prefs->wallpaper_filename != NULL) &&
strcmp (prefs->wallpaper_filename, "") != 0 &&
@ -246,14 +263,51 @@ bg_preferences_merge_entry (BGPreferences *prefs,
prefs->wallpaper_enabled = TRUE;
else
prefs->wallpaper_enabled = FALSE;
}
else if (!strcmp (entry->key, "/desktop/gnome/background/wallpaper-type")) {
prefs->wallpaper_type = gconf_value_get_int (value);
} else {
g_warning ("%s: Unknown property: %s", G_GNUC_FUNCTION, entry->key);
g_warning ("%s: Unknown property: %s", __FUNCTION__, entry->key);
}
}
static wallpaper_type_t
read_wptype_from_string (gchar *string)
{
wallpaper_type_t type;
if (!strncmp (string, "wallpaper", sizeof ("wallpaper"))) {
type = WPTYPE_TILED;
} else if (!strncmp (string, "centered", sizeof ("centered"))) {
type = WPTYPE_CENTERED;
} else if (!strncmp (string, "scaled", sizeof ("scaled"))) {
type = WPTYPE_SCALED;
} else if (!strncmp (string, "stretched", sizeof ("stretched"))) {
type = WPTYPE_STRETCHED;
} else if (!strncmp (string, "embossed", sizeof ("embossed"))) {
type = WPTYPE_EMBOSSED;
} else {
type = -1;
}
g_free (string);
return type;
}
static orientation_t
read_orientation_from_string (gchar *string)
{
orientation_t type;
if (!strncmp (string, "vertical-gradient", sizeof ("vertical-gradient"))) {
type = ORIENTATION_VERT;
} else if (!strncmp (string, "horizontal-gradient", sizeof ("horizontal-gradient"))) {
type = ORIENTATION_HORIZ;
} else {
type = ORIENTATION_SOLID;
}
g_free (string);
return type;
}
static GdkColor *
read_color_from_string (const gchar *string)
{