00001 #ifndef __GDK_REGION_H__
00002 #define __GDK_REGION_H__
00003
00004 #include <gdk/gdktypes.h>
00005
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009
00010
00011
00012
00013
00014 typedef enum {
00015 GDK_EVEN_ODD_RULE,
00016 GDK_WINDING_RULE
00017 } GdkFillRule;
00018
00019
00020
00021
00022
00023
00024 typedef enum {
00025 GDK_OVERLAP_RECTANGLE_IN,
00026 GDK_OVERLAP_RECTANGLE_OUT,
00027 GDK_OVERLAP_RECTANGLE_PART
00028 } GdkOverlapType;
00029
00030 struct _GdkRegion {
00031 gpointer user_data;
00032 };
00033
00034 GdkRegion *gdk_region_new(void);
00035 void gdk_region_destroy(GdkRegion * region);
00036
00037 void gdk_region_get_clipbox(GdkRegion * region,
00038 GdkRectangle * rectangle);
00039
00040 gboolean gdk_region_empty(GdkRegion * region);
00041 gboolean gdk_region_equal(GdkRegion * region1, GdkRegion * region2);
00042 gboolean gdk_region_point_in(GdkRegion * region, int x, int y);
00043 GdkOverlapType gdk_region_rect_in(GdkRegion * region,
00044 GdkRectangle * rect);
00045
00046 GdkRegion *gdk_region_polygon(GdkPoint * points,
00047 gint npoints, GdkFillRule fill_rule);
00048
00049 void gdk_region_offset(GdkRegion * region, gint dx, gint dy);
00050 void gdk_region_shrink(GdkRegion * region, gint dx, gint dy);
00051
00052 GdkRegion *gdk_region_union_with_rect(GdkRegion * region,
00053 GdkRectangle * rect);
00054 GdkRegion *gdk_regions_intersect(GdkRegion * source1,
00055 GdkRegion * source2);
00056 GdkRegion *gdk_regions_union(GdkRegion * source1, GdkRegion * source2);
00057 GdkRegion *gdk_regions_subtract(GdkRegion * source1,
00058 GdkRegion * source2);
00059 GdkRegion *gdk_regions_xor(GdkRegion * source1, GdkRegion * source2);
00060
00061
00062 #ifdef __cplusplus
00063 }
00064 #endif
00065 #endif