diff options
Diffstat (limited to 'gdk/x11/gdkregion-x11.c')
-rw-r--r-- | gdk/x11/gdkregion-x11.c | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/gdk/x11/gdkregion-x11.c b/gdk/x11/gdkregion-x11.c deleted file mode 100644 index 58192fdb0b..0000000000 --- a/gdk/x11/gdkregion-x11.c +++ /dev/null @@ -1,324 +0,0 @@ -/* GDK - The GIMP Drawing Kit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include "gdkprivate-x11.h" - -GdkRegion* -gdk_region_new (void) -{ - GdkRegionPrivate *private; - GdkRegion *region; - Region xregion; - - xregion = XCreateRegion(); - private = g_new (GdkRegionPrivate, 1); - private->xregion = xregion; - region = (GdkRegion*) private; - region->user_data = NULL; - - return region; -} - -void -gdk_region_destroy (GdkRegion *region) -{ - GdkRegionPrivate *private; - - g_return_if_fail (region != NULL); - - private = (GdkRegionPrivate *) region; - XDestroyRegion (private->xregion); - - g_free (private); -} - -gboolean -gdk_region_empty (GdkRegion *region) -{ - GdkRegionPrivate *private; - - g_return_val_if_fail (region != NULL, 0); - - private = (GdkRegionPrivate *) region; - - return XEmptyRegion (private->xregion); -} - -gboolean -gdk_region_equal (GdkRegion *region1, - GdkRegion *region2) -{ - GdkRegionPrivate *private1; - GdkRegionPrivate *private2; - - g_return_val_if_fail (region1 != NULL, 0); - g_return_val_if_fail (region2 != NULL, 0); - - private1 = (GdkRegionPrivate *) region1; - private2 = (GdkRegionPrivate *) region2; - - 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, - gint y) -{ - GdkRegionPrivate *private; - - g_return_val_if_fail (region != NULL, 0); - - private = (GdkRegionPrivate *) region; - - return XPointInRegion (private->xregion, x, y); -} - -GdkOverlapType -gdk_region_rect_in (GdkRegion *region, - GdkRectangle *rect) -{ - GdkRegionPrivate *private; - int res; - - g_return_val_if_fail (region != NULL, 0); - - private = (GdkRegionPrivate *) region; - - res = XRectInRegion (private->xregion, rect->x, rect->y, rect->width, rect->height); - - switch (res) - { - case RectangleIn: return GDK_OVERLAP_RECTANGLE_IN; - case RectangleOut: return GDK_OVERLAP_RECTANGLE_OUT; - case RectanglePart: return GDK_OVERLAP_RECTANGLE_PART; - } - - return GDK_OVERLAP_RECTANGLE_OUT; /*what else ? */ -} - -GdkRegion * -gdk_region_polygon (GdkPoint *points, - gint npoints, - GdkFillRule fill_rule) -{ - GdkRegionPrivate *private; - GdkRegion *region; - Region xregion; - gint xfill_rule = EvenOddRule; - - 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, - gint dy) -{ - GdkRegionPrivate *private; - - g_return_if_fail (region != NULL); - - private = (GdkRegionPrivate *) region; - - XOffsetRegion (private->xregion, dx, dy); -} - -void -gdk_region_shrink (GdkRegion *region, - gint dx, - gint dy) -{ - GdkRegionPrivate *private; - - g_return_if_fail (region != NULL); - - private = (GdkRegionPrivate *) region; - - XShrinkRegion (private->xregion, dx, dy); -} - -GdkRegion* -gdk_region_union_with_rect (GdkRegion *region, - GdkRectangle *rect) -{ - GdkRegionPrivate *private; - GdkRegion *res; - GdkRegionPrivate *res_private; - XRectangle xrect; - - g_return_val_if_fail (region != NULL, NULL); - - private = (GdkRegionPrivate *) region; - - xrect.x = rect->x; - xrect.y = rect->y; - xrect.width = rect->width; - xrect.height = rect->height; - - res = gdk_region_new (); - res_private = (GdkRegionPrivate *) res; - - XUnionRectWithRegion (&xrect, private->xregion, res_private->xregion); - - return res; -} - -GdkRegion* -gdk_regions_intersect (GdkRegion *source1, - GdkRegion *source2) -{ - GdkRegionPrivate *private1; - GdkRegionPrivate *private2; - GdkRegion *res; - GdkRegionPrivate *res_private; - - g_return_val_if_fail (source1 != NULL, NULL); - g_return_val_if_fail (source2 != NULL, NULL); - - private1 = (GdkRegionPrivate *) source1; - private2 = (GdkRegionPrivate *) source2; - - res = gdk_region_new (); - res_private = (GdkRegionPrivate *) res; - - XIntersectRegion (private1->xregion, private2->xregion, res_private->xregion); - - return res; -} - -GdkRegion* -gdk_regions_union (GdkRegion *source1, - GdkRegion *source2) -{ - GdkRegionPrivate *private1; - GdkRegionPrivate *private2; - GdkRegion *res; - GdkRegionPrivate *res_private; - - g_return_val_if_fail (source1 != NULL, NULL); - g_return_val_if_fail (source2 != NULL, NULL); - - private1 = (GdkRegionPrivate *) source1; - private2 = (GdkRegionPrivate *) source2; - - res = gdk_region_new (); - res_private = (GdkRegionPrivate *) res; - - XUnionRegion (private1->xregion, private2->xregion, res_private->xregion); - - return res; -} - -GdkRegion* -gdk_regions_subtract (GdkRegion *source1, - GdkRegion *source2) -{ - GdkRegionPrivate *private1; - GdkRegionPrivate *private2; - GdkRegion *res; - GdkRegionPrivate *res_private; - - g_return_val_if_fail (source1 != NULL, NULL); - g_return_val_if_fail (source2 != NULL, NULL); - - private1 = (GdkRegionPrivate *) source1; - private2 = (GdkRegionPrivate *) source2; - - res = gdk_region_new (); - res_private = (GdkRegionPrivate *) res; - - XSubtractRegion (private1->xregion, private2->xregion, res_private->xregion); - - return res; -} - -GdkRegion* -gdk_regions_xor (GdkRegion *source1, - GdkRegion *source2) -{ - GdkRegionPrivate *private1; - GdkRegionPrivate *private2; - GdkRegion *res; - GdkRegionPrivate *res_private; - - g_return_val_if_fail (source1 != NULL, NULL); - g_return_val_if_fail (source2 != NULL, NULL); - - private1 = (GdkRegionPrivate *) source1; - private2 = (GdkRegionPrivate *) source2; - - res = gdk_region_new (); - res_private = (GdkRegionPrivate *) res; - - XXorRegion (private1->xregion, private2->xregion, res_private->xregion); - - return res; -} - - - |