summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1998-04-14 00:49:06 +0000
committerArturo Espinosa <unammx@src.gnome.org>1998-04-14 00:49:06 +0000
commitaf36f7765aa24a4bfc7630fd4e0cff30785202b9 (patch)
tree75abe89adfab007f00dffe75a9d8a8bead003246
parent0b0524d3971ffcdfe8c8135ead62d97fe208e541 (diff)
downloadgdk-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--ChangeLog9
-rw-r--r--ChangeLog.pre-2-09
-rw-r--r--ChangeLog.pre-2-109
-rw-r--r--ChangeLog.pre-2-29
-rw-r--r--ChangeLog.pre-2-49
-rw-r--r--ChangeLog.pre-2-69
-rw-r--r--ChangeLog.pre-2-89
-rw-r--r--gdk/gdk.h6
-rw-r--r--gdk/gdkregion.c33
-rw-r--r--gdk/gdktypes.h10
-rw-r--r--gdk/x11/gdkregion-x11.c33
11 files changed, 144 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c29337704..d9d795418 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/gdk/gdk.h b/gdk/gdk.h
index a87437694..1cfa3e608 100644
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -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,