static void gtk_theme_changed (GSettings *settings, gchar *key, AppearanceData *data) { MateThemeInfo *theme = NULL; gchar *name; GtkSettings *gtksettings = gtk_settings_get_default (); name = g_settings_get_string (settings, key); if (name) { gchar *current; theme = mate_theme_info_find (name); /* Manually update GtkSettings to new gtk+ theme. * This will eventually happen anyway, but we need the * info for the color scheme updates already. */ g_object_get (gtksettings, "gtk-theme-name", ¤t, NULL); if (strcmp (current, name) != 0) { g_object_set (gtksettings, "gtk-theme-name", name, NULL); update_message_area (data); } g_free (current); check_color_schemes_enabled (gtksettings, data); update_color_buttons_from_settings (gtksettings, data); g_free (name); } gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "gtk_themes_delete"), theme_is_writable (theme)); }
static void icon_theme_changed (GSettings *settings, gchar *key, AppearanceData *data) { MateThemeIconInfo *theme = NULL; gchar *name; name = g_settings_get_string (settings, key); if (name) { theme = mate_theme_icon_info_find (name); g_free (name); } gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "icon_themes_delete"), theme_is_writable (theme)); }
static void cursor_theme_changed (GSettings *settings, gchar *key, AppearanceData *data) { MateThemeCursorInfo *theme = NULL; gchar *name; name = g_settings_get_string (settings, key); if (name) { theme = mate_theme_cursor_info_find (name); g_free (name); } update_cursor_size_scale (theme, data); gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "cursor_themes_delete"), theme_is_writable (theme)); }
static void theme_selection_changed_cb (GtkWidget *icon_view, AppearanceData *data) { GList *selection; MateThemeMetaInfo *theme = NULL; gboolean is_custom = FALSE; selection = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view)); if (selection) { GtkTreeModel *model; GtkTreeIter iter; gchar *name; model = gtk_icon_view_get_model (GTK_ICON_VIEW (icon_view)); gtk_tree_model_get_iter (model, &iter, selection->data); gtk_tree_model_get (model, &iter, COL_NAME, &name, -1); is_custom = !strcmp (name, CUSTOM_THEME_NAME); if (is_custom) theme = data->theme_custom; else theme = mate_theme_meta_info_find (name); if (theme) { mate_meta_theme_set (theme); theme_message_area_update (data); } g_free (name); g_list_foreach (selection, (GFunc) gtk_tree_path_free, NULL); g_list_free (selection); } gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_delete"), theme_is_writable (theme)); gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_save"), is_custom); }