[gtk+/rendering-cleanup] testgtk: Use Pixbugs in the shapes example
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup] testgtk: Use Pixbugs in the shapes example
- Date: Fri, 6 Aug 2010 22:31:24 +0000 (UTC)
commit 220341363b3bdce360cca9c82f5969257d5751da
Author: Benjamin Otte <otte redhat com>
Date: Fri Aug 6 22:28:09 2010 +0200
testgtk: Use Pixbugs in the shapes example
tests/testgtk.c | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 794ae05..e64664a 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -7266,15 +7266,13 @@ shape_create_icon (GdkScreen *screen,
gint window_type)
{
GtkWidget *window;
- GtkWidget *pixmap;
+ GtkWidget *image;
GtkWidget *fixed;
CursorOffset* icon_pos;
- GdkBitmap *gdk_pixmap_mask;
- GdkPixmap *gdk_pixmap;
+ GdkBitmap *mask;
+ GdkPixbuf *pixbuf;
GtkStyle *style;
- style = gtk_widget_get_default_style ();
-
/*
* GDK_WINDOW_TOPLEVEL works also, giving you a title border
*/
@@ -7293,18 +7291,24 @@ shape_create_icon (GdkScreen *screen,
GDK_BUTTON_PRESS_MASK);
gtk_widget_realize (window);
- gdk_pixmap = gdk_pixmap_create_from_xpm (window->window, &gdk_pixmap_mask,
- &style->bg[GTK_STATE_NORMAL],
- xpm_file);
- pixmap = gtk_image_new_from_pixmap (gdk_pixmap, gdk_pixmap_mask);
- gtk_fixed_put (GTK_FIXED (fixed), pixmap, px,py);
- gtk_widget_show (pixmap);
+ pixbuf = gdk_pixbuf_new_from_file (xpm_file, NULL);
+ g_assert (pixbuf); /* FIXME: error handling */
+
+ gdk_pixbuf_render_pixmap_and_mask_for_colormap (pixbuf,
+ gtk_widget_get_colormap (window),
+ NULL,
+ &mask,
+ 128);
+
+ image = gtk_image_new_from_pixbuf (pixbuf);
+ gtk_fixed_put (GTK_FIXED (fixed), image, px,py);
+ gtk_widget_show (image);
- gtk_widget_shape_combine_mask (window, gdk_pixmap_mask, px, py);
+ gtk_widget_shape_combine_mask (window, mask, px, py);
- g_object_unref (gdk_pixmap_mask);
- g_object_unref (gdk_pixmap);
+ g_object_unref (mask);
+ g_object_unref (pixbuf);
g_signal_connect (window, "button_press_event",
G_CALLBACK (shape_pressed), NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]