<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: gdk/gdk.h
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/gdk.h,v
retrieving revision 1.42
diff -u -r1.42 gdk.h
--- gdk.h	1998/09/25 23:04:29	1.42
+++ gdk.h	1998/10/05 22:31:48
@@ -419,6 +419,7 @@
 					 GdkBitmap  **mask,
 					 GdkColor    *transparent_color,
 					 gchar     **data);
+GdkPixmap *gdk_pixmap_foreign_new       (guint32     anid);
 GdkPixmap *gdk_pixmap_ref		(GdkPixmap  *pixmap);
 void	   gdk_pixmap_unref		(GdkPixmap  *pixmap);
 
Index: gdk/gdkpixmap.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/gdkpixmap.c,v
retrieving revision 1.20
diff -u -r1.20 gdkpixmap.c
--- gdkpixmap.c	1998/08/25 00:06:19	1.20
+++ gdkpixmap.c	1998/10/05 22:31:51
@@ -749,6 +749,53 @@
 }
 
 GdkPixmap*
+gdk_pixmap_foreign_new (guint32 anid)
+{
+  GdkPixmap *pixmap;
+  GdkWindowPrivate *window_private;
+  GdkWindowPrivate *private;
+  Pixmap xpixmap;
+  Window root_return;
+  unsigned int x_ret, y_ret, w_ret, h_ret, bw_ret, depth_ret;
+
+  /* check to make sure we were passed something at
+     least a little sane */
+  g_return_val_if_fail((anid != 0), NULL);
+  
+  /* set the pixmap to the passed in value */
+  xpixmap = anid;
+  /* get the root window */
+  window_private = &amp;gdk_root_parent;
+
+  /* get information about the Pixmap to fill in the structure for
+     the gdk window */
+  if (!XGetGeometry(window_private-&gt;xdisplay, xpixmap, &amp;root_return,
+		    &amp;x_ret, &amp;y_ret, &amp;w_ret, &amp;h_ret, &amp;bw_ret, &amp;depth_ret))
+      return NULL;
+      
+  /* allocate a new gdk pixmap */
+  private = g_new(GdkWindowPrivate, 1);
+  pixmap = (GdkPixmap *)private;
+
+  private-&gt;xdisplay = window_private-&gt;xdisplay;
+  private-&gt;window_type = GDK_WINDOW_PIXMAP;
+  private-&gt;xwindow = xpixmap;
+  private-&gt;colormap = NULL;
+  private-&gt;parent = NULL;
+  private-&gt;x = 0;
+  private-&gt;y = 0;
+  private-&gt;width = w_ret;
+  private-&gt;height = h_ret;
+  private-&gt;resize_count = 0;
+  private-&gt;ref_count = 1;
+  private-&gt;destroyed = 0;
+  
+  gdk_xid_table_insert(&amp;private-&gt;xwindow, pixmap);
+
+  return pixmap;
+}
+
+GdkPixmap*
 gdk_pixmap_ref (GdkPixmap *pixmap)
 {
   GdkWindowPrivate *private = (GdkWindowPrivate *)pixmap;
</pre></body></html>