From 6a322e11b2bc11ea6ab66981d64bddcfdda90d19 Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Tue, 19 May 1998 16:17:00 +0000 Subject: [PATCH] gdk_region_get_clipbox() lets you get a rectangle around the region. gdk_region_get_clipbox() lets you get a rectangle around the region. --- gdk/gdk.h | 3 +++ gdk/gdkregion.c | 19 +++++++++++++++++++ gdk/x11/gdkregion-x11.c | 19 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/gdk/gdk.h b/gdk/gdk.h index 092226d8b3..e80c838b98 100644 --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -770,6 +770,9 @@ guchar gdk_color_context_get_index_from_palette (GdkColorContext *cc, GdkRegion* gdk_region_new (void); void gdk_region_destroy (GdkRegion *region); +void gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle); + gboolean gdk_region_empty (GdkRegion *region); gboolean gdk_region_equal (GdkRegion *region1, GdkRegion *region2); diff --git a/gdk/gdkregion.c b/gdk/gdkregion.c index 4b5c1c866c..19b921d033 100644 --- a/gdk/gdkregion.c +++ b/gdk/gdkregion.c @@ -82,6 +82,25 @@ gdk_region_equal (GdkRegion *region1, return XEqualRegion (private1->xregion, private2->xregion); } +void +gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle) +{ + GdkRegionPrivate *rp; + XRectangle r; + + g_return_if_fail(region != NULL); + g_return_if_fail(rectangle != NULL); + + rp = (GdkRegionPrivate *)region; + XClipBox(rp->xregion, &r); + + rectangle->x = r.x; + rectangle->y = r.y; + rectangle->width = r.width; + rectangle->height = r.height; +} + gboolean gdk_region_point_in (GdkRegion *region, gint x, diff --git a/gdk/x11/gdkregion-x11.c b/gdk/x11/gdkregion-x11.c index 4b5c1c866c..19b921d033 100644 --- a/gdk/x11/gdkregion-x11.c +++ b/gdk/x11/gdkregion-x11.c @@ -82,6 +82,25 @@ gdk_region_equal (GdkRegion *region1, return XEqualRegion (private1->xregion, private2->xregion); } +void +gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle) +{ + GdkRegionPrivate *rp; + XRectangle r; + + g_return_if_fail(region != NULL); + g_return_if_fail(rectangle != NULL); + + rp = (GdkRegionPrivate *)region; + XClipBox(rp->xregion, &r); + + rectangle->x = r.x; + rectangle->y = r.y; + rectangle->width = r.width; + rectangle->height = r.height; +} + gboolean gdk_region_point_in (GdkRegion *region, gint x,