[gtk+] Drop the shape window example in testgtk



commit 535e604b91205fc7dc13b82727492ff182da0860
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Aug 8 21:05:19 2017 -0400

    Drop the shape window example in testgtk
    
    Not sure this can be rescued without root window coordinates.
    It is also somewhat inherently X11-specific.

 tests/testgtk.c |  225 -------------------------------------------------------
 1 files changed, 0 insertions(+), 225 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 2843d84..37513bd 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -5702,230 +5702,6 @@ create_paned_keyboard_navigation (GtkWidget *widget)
     gtk_widget_show (GTK_WIDGET (window4));
 }
 
-
-/*
- * Shaped Windows
- */
-
-typedef struct _cursoroffset {gint x,y;} CursorOffset;
-
-static void
-shape_pressed (GtkWidget *widget, GdkEventButton *event)
-{
-  CursorOffset *p;
-
-  /* ignore double and triple click */
-  if (event->type != GDK_BUTTON_PRESS)
-    return;
-
-  p = g_object_get_data (G_OBJECT (widget), "cursor_offset");
-  p->x = (int) event->x;
-  p->y = (int) event->y;
-
-  gtk_grab_add (widget);
-  gdk_seat_grab (gdk_event_get_seat ((GdkEvent *) event),
-                 gtk_widget_get_window (widget),
-                 GDK_SEAT_CAPABILITY_ALL_POINTING,
-                 TRUE, NULL, (GdkEvent *) event, NULL, NULL);
-}
-
-static void
-shape_released (GtkWidget      *widget,
-                GdkEventButton *event)
-{
-  gtk_grab_remove (widget);
-  gdk_seat_ungrab (gdk_event_get_seat ((GdkEvent *) event));
-}
-
-static void
-shape_motion (GtkWidget      *widget,
-             GdkEventMotion *event)
-{
-  gint xp, yp;
-  CursorOffset * p;
-
-  p = g_object_get_data (G_OBJECT (widget), "cursor_offset");
-
-  /*
-   * Can't use event->x / event->y here 
-   * because I need absolute coordinates.
-   */
-  gdk_window_get_device_position (gdk_screen_get_root_window (gtk_widget_get_screen (widget)),
-                                  gdk_event_get_device ((GdkEvent *) event),
-                                  &xp, &yp, NULL);
-  gtk_window_move (GTK_WINDOW (widget), xp  - p->x, yp  - p->y);
-}
-
-GtkWidget *
-shape_create_icon (GdkScreen *screen,
-                  char      *xpm_file,
-                  gint       x,
-                  gint       y,
-                  gint       px,
-                  gint       py,
-                  gint       window_type)
-{
-  GtkWidget *window;
-  GtkWidget *image;
-  GtkWidget *fixed;
-  CursorOffset* icon_pos;
-  cairo_surface_t *mask;
-  cairo_region_t *mask_region;
-  GdkPixbuf *pixbuf;
-  cairo_t *cr;
-
-  /*
-   * GDK_WINDOW_TOPLEVEL works also, giving you a title border
-   */
-  window = gtk_window_new (window_type);
-  gtk_window_set_screen (GTK_WINDOW (window), screen);
-  
-  fixed = gtk_fixed_new ();
-  gtk_widget_set_size_request (fixed, 100, 100);
-  gtk_container_add (GTK_CONTAINER (window), fixed);
-  gtk_widget_show (fixed);
-  
-  gtk_widget_realize (window);
-
-  pixbuf = gdk_pixbuf_new_from_file (xpm_file, NULL);
-  g_assert (pixbuf); /* FIXME: error handling */
-
-  mask = cairo_image_surface_create (CAIRO_FORMAT_A1,
-                                     gdk_pixbuf_get_width (pixbuf),
-                                     gdk_pixbuf_get_height (pixbuf));
-  cr = cairo_create (mask);
-  gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
-  cairo_paint (cr);
-  cairo_destroy (cr);
-
-  mask_region = gdk_cairo_region_create_from_surface (mask);
-                                                  
-  cairo_region_translate (mask_region, px, py);
-
-  image = gtk_image_new_from_pixbuf (pixbuf);
-  gtk_fixed_put (GTK_FIXED (fixed), image, px,py);
-  gtk_widget_show (image);
-  
-  gtk_widget_shape_combine_region (window, mask_region);
-  
-  cairo_region_destroy (mask_region);
-  cairo_surface_destroy (mask);
-  g_object_unref (pixbuf);
-
-  g_signal_connect (window, "button_press_event",
-                   G_CALLBACK (shape_pressed), NULL);
-  g_signal_connect (window, "button_release_event",
-                   G_CALLBACK (shape_released), NULL);
-  g_signal_connect (window, "motion_notify_event",
-                   G_CALLBACK (shape_motion), NULL);
-
-  icon_pos = g_new (CursorOffset, 1);
-  g_object_set_data (G_OBJECT (window), "cursor_offset", icon_pos);
-
-  gtk_window_move (GTK_WINDOW (window), x, y);
-  gtk_widget_show (window);
-  
-  return window;
-}
-
-void 
-create_shapes (GtkWidget *widget)
-{
-  /* Variables used by the Drag/Drop and Shape Window demos */
-  static GtkWidget *modeller = NULL;
-  static GtkWidget *sheets = NULL;
-  static GtkWidget *rings = NULL;
-  static GtkWidget *with_region = NULL;
-  GdkScreen *screen = gtk_widget_get_screen (widget);
-  
-  if (!(file_exists ("Modeller.xpm") &&
-       file_exists ("FilesQueue.xpm") &&
-       file_exists ("3DRings.xpm")))
-    return;
-  
-
-  if (!modeller)
-    {
-      modeller = shape_create_icon (screen, "Modeller.xpm",
-                                   440, 140, 0,0, GTK_WINDOW_POPUP);
-
-      g_signal_connect (modeller, "destroy",
-                       G_CALLBACK (gtk_widget_destroyed),
-                       &modeller);
-    }
-  else
-    gtk_widget_destroy (modeller);
-
-  if (!sheets)
-    {
-      sheets = shape_create_icon (screen, "FilesQueue.xpm",
-                                 580, 170, 0,0, GTK_WINDOW_POPUP);
-
-      g_signal_connect (sheets, "destroy",
-                       G_CALLBACK (gtk_widget_destroyed),
-                       &sheets);
-
-    }
-  else
-    gtk_widget_destroy (sheets);
-
-  if (!rings)
-    {
-      rings = shape_create_icon (screen, "3DRings.xpm",
-                                460, 270, 25,25, GTK_WINDOW_TOPLEVEL);
-
-      g_signal_connect (rings, "destroy",
-                       G_CALLBACK (gtk_widget_destroyed),
-                       &rings);
-    }
-  else
-    gtk_widget_destroy (rings);
-
-  if (!with_region)
-    {
-      cairo_region_t *region;
-      gint x, y;
-      
-      with_region = shape_create_icon (screen, "3DRings.xpm",
-                                       460, 270, 25,25, GTK_WINDOW_TOPLEVEL);
-
-      gtk_window_set_decorated (GTK_WINDOW (with_region), FALSE);
-      
-      g_signal_connect (with_region, "destroy",
-                       G_CALLBACK (gtk_widget_destroyed),
-                       &with_region);
-
-      /* reset shape from mask to a region */
-      x = 0;
-      y = 0;
-      region = cairo_region_create ();
-
-      while (x < 460)
-        {
-          while (y < 270)
-            {
-              GdkRectangle rect;
-              rect.x = x;
-              rect.y = y;
-              rect.width = 10;
-              rect.height = 10;
-
-              cairo_region_union_rectangle (region, &rect);
-              
-              y += 20;
-            }
-          y = 0;
-          x += 20;
-        }
-
-      gdk_window_shape_combine_region (gtk_widget_get_window (with_region),
-                                       region,
-                                       0, 0);
-    }
-  else
-    gtk_widget_destroy (with_region);
-}
-
 /*
  * WM Hints demo
  */
@@ -8300,7 +8076,6 @@ struct {
   { "rotated text", create_rotated_text },
   { "saved position", create_saved_position },
   { "scrolled windows", create_scrolled_windows },
-  { "shapes", create_shapes },
   { "size groups", create_size_groups },
   { "snapshot", create_snapshot },
   { "spinbutton", create_spins },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]