[Xfce4-commits] [xfce/xfce4-settings] 01/03: Preliminary patch to dropping Gtk+ theme previews
noreply at xfce.org
noreply at xfce.org
Thu Jul 19 12:23:19 CEST 2018
This is an automated email from the git hooks/post-receive script.
b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-settings.
commit f7e068e5955e2d016592f82c2c834567400183a4
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Wed Jul 18 00:53:00 2018 +0200
Preliminary patch to dropping Gtk+ theme previews
---
dialogs/appearance-settings/main.c | 133 -------------------------------------
1 file changed, 133 deletions(-)
diff --git a/dialogs/appearance-settings/main.c b/dialogs/appearance-settings/main.c
index f4427f0..41bb981 100644
--- a/dialogs/appearance-settings/main.c
+++ b/dialogs/appearance-settings/main.c
@@ -56,15 +56,6 @@
/* Increase this number if new gtk settings have been added */
#define INITIALIZE_UINT (1)
-#define COLOR_SCHEME_SYMBOL ((gpointer) 1)
-#define GTK_RC_TOKEN_FG ((gpointer) 2)
-#define GTK_RC_TOKEN_BG ((gpointer) 3)
-#define GTK_RC_TOKEN_NORMAL ((gpointer) 4)
-#define GTK_RC_TOKEN_SELECTED ((gpointer) 5)
-
-gboolean gtkcss_get_color_scheme_for_theme (const gchar *gtkcss_filename, GdkRGBA **colors);
-static GdkPixbuf *theme_create_preview (GdkRGBA **colors);
-
enum
{
COLUMN_THEME_PREVIEW,
@@ -189,95 +180,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
return dpi;
}
-gboolean
-gtkcss_get_color_scheme_for_theme (const gchar *gtkcss_filename,
- GdkRGBA **colors)
-{
- GdkRGBA *bgn, *bgs, *fgn;
- GtkCssProvider *provider;
- GtkWidget *window, *icon_view;
- GtkStyleContext *window_ctx, *icon_view_ctx;
-
- g_return_val_if_fail (gtkcss_filename != NULL, FALSE);
-
- provider = gtk_css_provider_new();
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- icon_view = gtk_icon_view_new();
- gtk_container_add (GTK_CONTAINER(window), icon_view);
- window_ctx = gtk_widget_get_style_context(window);
- icon_view_ctx = gtk_widget_get_style_context(icon_view);
-
- gtk_css_provider_load_from_path (provider,
- gtkcss_filename,
- NULL);
-
- gtk_style_context_add_provider(window_ctx,
- GTK_STYLE_PROVIDER(provider),
- GTK_STYLE_PROVIDER_PRIORITY_USER);
- gtk_style_context_add_provider(icon_view_ctx,
- GTK_STYLE_PROVIDER(provider),
- GTK_STYLE_PROVIDER_PRIORITY_USER);
-
- gtk_style_context_get (window_ctx,
- GTK_STATE_FLAG_NORMAL,
- "background-color", &bgn,
- NULL);
-
- gtk_style_context_get (icon_view_ctx,
- GTK_STATE_FLAG_SELECTED,
- "background-color", &bgs,
- NULL);
-
- gtk_style_context_get (window_ctx,
- GTK_STATE_FLAG_NORMAL,
- "color", &fgn,
- NULL);
-
- colors[COLOR_BG] = bgn;
- colors[COLOR_SELECTED_BG] = bgs;
- colors[COLOR_FG] = fgn;
-
- gtk_widget_destroy(window);
-
- return TRUE;
-}
-
-static GdkPixbuf *
-theme_create_preview (GdkRGBA **colors)
-{
- GdkPixbuf *theme_preview;
- cairo_surface_t *s;
- cairo_t *cr;
- gint width = 44;
- gint height = 22;
-
- s = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
- cr = cairo_create (s);
-
- cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
-
- /* Draw three rectangles showcasing the background, foreground and selected background colors */
- /* FIXME - Colors always appear solid black */
- cairo_rectangle (cr, 0, 0, 16, 22);
- cairo_set_source_rgb (cr, colors[COLOR_BG]->red, colors[COLOR_BG]->green, colors[COLOR_BG]->blue);
- cairo_fill (cr);
-
- cairo_rectangle (cr, 15, 0, 30, 22);
- cairo_set_source_rgb (cr, colors[COLOR_FG]->red, colors[COLOR_FG]->green, colors[COLOR_FG]->blue);
- cairo_fill (cr);
-
- cairo_rectangle (cr, 29, 0, 42, 22);
- cairo_set_source_rgb (cr, colors[COLOR_SELECTED_BG]->red, colors[COLOR_SELECTED_BG]->green, colors[COLOR_SELECTED_BG]->blue);
- cairo_fill (cr);
-
- theme_preview = gdk_pixbuf_get_from_surface (s, 0, 0, width, height);
-
- cairo_destroy (cr);
- cairo_surface_destroy (s);
-
- return theme_preview;
-}
-
static void
cb_theme_tree_selection_changed (GtkTreeSelection *selection,
const gchar *property)
@@ -637,7 +539,6 @@ appearance_settings_load_ui_themes (preview_data *pd)
gint i;
GSList *check_list = NULL;
gchar *color_scheme = NULL;
- GdkPixbuf *preview;
GdkRGBA *colors[NUM_SYMBOLIC_COLORS];
g_return_val_if_fail (pd != NULL, FALSE);
@@ -699,23 +600,9 @@ appearance_settings_load_ui_themes (preview_data *pd)
comment_escaped = NULL;
}
- /* Retrieve the color values from the theme, parse them and create the palette preview pixbuf */
- if (g_file_test (gtkcss_filename, G_FILE_TEST_EXISTS) && gtkcss_get_color_scheme_for_theme (gtkcss_filename, colors))
- {
- preview = theme_create_preview (colors);
- }
- /* If the color scheme parsing doesn't return anything useful, show a blank pixbuf */
- else
- {
- preview = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 44, 22);
- gdk_pixbuf_fill (preview, 0x00);
- }
- g_free (color_scheme);
-
/* Append ui theme to the list store */
gtk_list_store_append (list_store, &iter);
gtk_list_store_set (list_store, &iter,
- COLUMN_THEME_PREVIEW, preview,
COLUMN_THEME_NAME, file,
COLUMN_THEME_DISPLAY_NAME, theme_name,
COLUMN_THEME_COMMENT, comment_escaped, -1);
@@ -724,7 +611,6 @@ appearance_settings_load_ui_themes (preview_data *pd)
if (G_LIKELY (index_file != NULL))
xfce_rc_close (index_file);
g_free (comment_escaped);
- g_object_unref (preview);
/* Check if this is the active theme, if so, select it */
if (G_UNLIKELY (g_utf8_collate (file, active_theme_name) == 0))
@@ -898,19 +784,6 @@ appearance_settings_dialog_channel_property_changed (XfconfChannel *channel,
g_free (selected_name);
g_free (new_name);
}
-
- if (reload)
- {
- preview_data *pd;
-
- gtk_list_store_clear (GTK_LIST_STORE (model));
-
- pd = preview_data_new (GTK_LIST_STORE (model), GTK_TREE_VIEW (object));
- g_idle_add_full (G_PRIORITY_HIGH_IDLE,
- (GSourceFunc) appearance_settings_load_ui_themes,
- pd,
- (GDestroyNotify) preview_data_free);
- }
}
else if (strcmp (property_name, "/Net/IconThemeName") == 0)
{
@@ -1067,12 +940,6 @@ cb_theme_uri_dropped (GtkWidget *widget,
object = gtk_builder_get_object (builder, "gtk_theme_treeview");
model = gtk_tree_view_get_model (GTK_TREE_VIEW (object));
gtk_list_store_clear (GTK_LIST_STORE (model));
-
- pd = preview_data_new (GTK_LIST_STORE (model), GTK_TREE_VIEW (object));
- g_idle_add_full (G_PRIORITY_HIGH_IDLE,
- (GSourceFunc) appearance_settings_load_ui_themes,
- pd,
- (GDestroyNotify) preview_data_free);
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list