diff options
author | Federico Mena Quintero <federico@nuclecu.unam.mx> | 1998-04-14 00:49:06 +0000 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-04-14 00:49:06 +0000 |
commit | af36f7765aa24a4bfc7630fd4e0cff30785202b9 (patch) | |
tree | 75abe89adfab007f00dffe75a9d8a8bead003246 | |
parent | 0b0524d3971ffcdfe8c8135ead62d97fe208e541 (diff) | |
download | gdk-pixbuf-af36f7765aa24a4bfc7630fd4e0cff30785202b9.tar.gz |
New function; wrapper for XPolygonRegion().
1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for
XPolygonRegion().
* gdk/gdk.h: Added prototype for gdk_region_polygon().
* gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 9 | ||||
-rw-r--r-- | gdk/gdk.h | 6 | ||||
-rw-r--r-- | gdk/gdkregion.c | 33 | ||||
-rw-r--r-- | gdk/gdktypes.h | 10 | ||||
-rw-r--r-- | gdk/x11/gdkregion-x11.c | 33 |
11 files changed, 144 insertions, 1 deletions
@@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c29337704..d9d795418 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for + XPolygonRegion(). + + * gdk/gdk.h: Added prototype for gdk_region_polygon(). + + * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons. + Mon Apr 13 15:04:26 1998 Michael K. Johnson <johnsonm@redhat.com> * gtk/testgtk.c (create_clist): removed duplicate call to @@ -771,7 +771,11 @@ gboolean gdk_region_point_in (GdkRegion *region, int x, int y); GdkOverlapType gdk_region_rect_in (GdkRegion *region, - GdkRectangle *rect); + GdkRectangle *rect); + +GdkRegion* gdk_region_polygon (GdkPoint *points, + gint npoints, + GdkFillRule fill_rule); void gdk_region_offset (GdkRegion *region, gint dx, diff --git a/gdk/gdkregion.c b/gdk/gdkregion.c index e949b3cad..6034bbae8 100644 --- a/gdk/gdkregion.c +++ b/gdk/gdkregion.c @@ -119,6 +119,39 @@ gdk_region_rect_in (GdkRegion *region, return GDK_OVERLAP_RECTANGLE_OUT; /*what else ? */ } +GdkRegion * +gdk_region_polygon (GdkPoint *points, + gint npoints, + GdkFillRule fill_rule) +{ + GdkRegionPrivate *private; + GdkRegion *region; + Region xregion; + int xfill_rule; + + g_return_val_if_fail (points != NULL, NULL); + g_return_val_if_fail (npoints != 0, NULL); /* maybe we should check for at least three points */ + + switch (fill_rule) + { + case GDK_EVEN_ODD_RULE: + xfill_rule = EvenOddRule; + break; + + case GDK_WINDING_RULE: + xfill_rule = WindingRule; + break; + } + + xregion = XPolygonRegion ((XPoint *) points, npoints, xfill_rule); + private = g_new (GdkRegionPrivate, 1); + private->xregion = xregion; + region = (GdkRegion *) private; + region->user_data = NULL; + + return region; +} + void gdk_region_offset (GdkRegion *region, gint dx, diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h index 6a2860e59..9ff8c1312 100644 --- a/gdk/gdktypes.h +++ b/gdk/gdktypes.h @@ -239,6 +239,16 @@ typedef enum GDK_OPAQUE_STIPPLED } GdkFill; +/* GC fill rule for polygons + * EvenOddRule + * WindingRule + */ +typedef enum +{ + GDK_EVEN_ODD_RULE, + GDK_WINDING_RULE +} GdkFillRule; + /* GC line styles * Solid: * OnOffDash: diff --git a/gdk/x11/gdkregion-x11.c b/gdk/x11/gdkregion-x11.c index e949b3cad..6034bbae8 100644 --- a/gdk/x11/gdkregion-x11.c +++ b/gdk/x11/gdkregion-x11.c @@ -119,6 +119,39 @@ gdk_region_rect_in (GdkRegion *region, return GDK_OVERLAP_RECTANGLE_OUT; /*what else ? */ } +GdkRegion * +gdk_region_polygon (GdkPoint *points, + gint npoints, + GdkFillRule fill_rule) +{ + GdkRegionPrivate *private; + GdkRegion *region; + Region xregion; + int xfill_rule; + + g_return_val_if_fail (points != NULL, NULL); + g_return_val_if_fail (npoints != 0, NULL); /* maybe we should check for at least three points */ + + switch (fill_rule) + { + case GDK_EVEN_ODD_RULE: + xfill_rule = EvenOddRule; + break; + + case GDK_WINDING_RULE: + xfill_rule = WindingRule; + break; + } + + xregion = XPolygonRegion ((XPoint *) points, npoints, xfill_rule); + private = g_new (GdkRegionPrivate, 1); + private->xregion = xregion; + region = (GdkRegion *) private; + region->user_data = NULL; + + return region; +} + void gdk_region_offset (GdkRegion *region, gint dx, |