| GDK Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> | 
GDK provides the GdkPoint, GdkRectangle and GdkRegion data types for representing pixels and sets of pixels on the screen.
GdkPoint is a simple structure containing an x and y coordinate of a point.
GdkRectangle is a structure holding the position and size of a rectangle. The intersection of two rectangles can be computed with gdk_rectangle_intersect(). To find the union of two rectangles use gdk_rectangle_union().
GdkRegion is an opaque data type holding a set of arbitrary pixels, and is usually used for clipping graphical operations (see gdk_gc_set_clip_region()).
| struct GdkPoint
{
  gint16 x;
  gint16 y;
}; | 
Defines the x and y coordinates of a point. Note that both are defined as gint16 values, so the coordinates are limited to between -32,768 and 32,767.
| struct GdkRectangle
{
  gint16 x;
  gint16 y;
  guint16 width;
  guint16 height;
}; | 
Defines the position and size of a rectangle.
| gint gdk_rectangle_intersect (GdkRectangle *src1, GdkRectangle *src2, GdkRectangle *dest); | 
Calculates the intersection of two rectangles.
| src1 : | a GdkRectangle. | 
| src2 : | a GdkRectangle. | 
| dest : | the intersection of src1 and src2. | 
| Returns : | TRUE if the rectangles intersect. | 
| void gdk_rectangle_union (GdkRectangle *src1, GdkRectangle *src2, GdkRectangle *dest); | 
Calculates the union of two rectangles. The union of rectangles src1 and src2 is the smallest rectangle which includes both src1 and src2 within it.
| src1 : | a GdkRectangle. | 
| src2 : | a GdkRectangle. | 
| dest : | the union of src1 and src2. | 
| struct GdkRegion
{
  gpointer user_data;
}; | 
A GdkRegion represents a set of pixels on the screen. The only user-visible field of the structure is the user_data member, which can be used to attach arbitrary data to the GdkRegion.
| GdkRegion* gdk_region_new (void); | 
Creates a new empty GdkRegion.
| Returns : | a new empty GdkRegion. | 
| GdkRegion* gdk_region_polygon (GdkPoint *points, gint npoints, GdkFillRule fill_rule); | 
Creates a new GdkRegion using the polygon defined by a number of points.
| typedef enum
{
  GDK_EVEN_ODD_RULE,
  GDK_WINDING_RULE
} GdkFillRule; | 
The method for determining which pixels are included in a region, when creating a GdkRegion from a polygon. The fill rule is only relevant for polygons which overlap themselves.
| void gdk_region_destroy (GdkRegion *region); | 
Destroys a GdkRegion.
| region : | a GdkRegion. | 
| GdkRegion* gdk_regions_intersect (GdkRegion *source1, GdkRegion *source2); | 
Returns the intersection of two regions.
| GdkRegion* gdk_regions_union (GdkRegion *source1, GdkRegion *source2); | 
Returns the union of two regions. This is all pixels in either of source1 or source2.
| GdkRegion* gdk_regions_subtract (GdkRegion *source1, GdkRegion *source2); | 
Subtracts one region from another. The result is a region containing all the pixels which are in source1, but which are not in source2.
| GdkRegion* gdk_regions_xor (GdkRegion *source1, GdkRegion *source2); | 
Returns the difference between the union and the intersection of two regions. This is a region containing the pixels that are in one of the source regions, but which are not in both.
| GdkRegion* gdk_region_union_with_rect (GdkRegion *region, GdkRectangle *rect); | 
Returns the union of a region and a rectangle.
| region : | a GdkRegion. | 
| rect : | a GdkRectangle. | 
| Returns : | the union of region and rect. | 
| void gdk_region_offset (GdkRegion *region, gint dx, gint dy); | 
Moves a region the specified distance.
| region : | a GdkRegion. | 
| dx : | the distance to move the region horizontally. | 
| dy : | the distance to move the region vertically. | 
| void gdk_region_shrink (GdkRegion *region, gint dx, gint dy); | 
Resizes a region by the specified amount. Positive values shrink the region. Negative values expand it.
| region : | a GdkRegion. | 
| dx : | the number of pixels to shrink the region horizontally. | 
| dy : | the number of pixels to shrink the region vertically. | 
| gboolean gdk_region_empty (GdkRegion *region); | 
Returns TRUE if the GdkRegion is empty.
| region : | a GdkRegion. | 
| Returns : | TRUE if region is empty. | 
| gboolean gdk_region_equal (GdkRegion *region1, GdkRegion *region2); | 
Returns TRUE if the two regions are the same.
| gboolean gdk_region_point_in (GdkRegion *region, int x, int y); | 
Returns TRUE if a point is in a region.
| region : | a GdkRegion. | 
| x : | the x coordinate of a point. | 
| y : | the y coordinate of a point. | 
| Returns : | TRUE if the point is in region. | 
| GdkOverlapType gdk_region_rect_in (GdkRegion *region, GdkRectangle *rect); | 
Tests whether a rectangle is within a region.
| region : | a GdkRegion. | 
| rect : | a GdkRectangle. | 
| Returns : | GDK_OVERLAP_RECTANGLE_IN, GDK_OVERLAP_RECTANGLE_OUT, or GDK_OVERLAP_RECTANGLE_PART, depending on whether the rectangle is inside, outside, or partly inside the GdkRegion, respectively. | 
| typedef enum
{
  GDK_OVERLAP_RECTANGLE_IN,
  GDK_OVERLAP_RECTANGLE_OUT,
  GDK_OVERLAP_RECTANGLE_PART
} GdkOverlapType; | 
Specifies the possible values returned by gdk_region_rect_in().
| void gdk_region_get_clipbox (GdkRegion *region, GdkRectangle *rectangle); | 
Returns the smallest rectangle which includes the entire GdkRegion.
| region : | a GdkRegion. | 
| rectangle : | returns the smallest rectangle which includes all of region. |