Gtk2
view release on metacpan or search on metacpan
xs/GdkRegion.xs view on Meta::CPAN
GdkPoint *points = NULL;
gint npoints, i;
AV *array;
SV **value;
CODE:
if (!gperl_sv_is_array_ref (points_ref))
croak ("point list has to be a reference to an array");
array = (AV *) SvRV (points_ref);
npoints = (av_len (array) + 1) / 2;
points = g_new0 (GdkPoint, npoints);
for (i = 0; i < npoints; i++) {
if ((value = av_fetch (array, 2*i, 0)) && gperl_sv_is_defined (*value))
points[i].x = SvIV (*value);
if ((value = av_fetch (array, 2*i + 1, 0)) && gperl_sv_is_defined (*value))
points[i].y = SvIV (*value);
}
RETVAL = gdk_region_polygon (points, npoints, fill_rule);
g_free (points);
OUTPUT:
RETVAL
## GdkRegion *gdk_region_copy (GdkRegion *region)
## GdkRegion *gdk_region_rectangle (GdkRectangle *rectangle)
GdkRegion_own *
gdk_region_rectangle (class, rectangle)
GdkRectangle *rectangle
C_ARGS:
rectangle
## void gdk_region_destroy (GdkRegion *region)
## void gdk_region_get_clipbox (GdkRegion *region, GdkRectangle *rectangle)
GdkRectangle_copy *
gdk_region_get_clipbox (region)
GdkRegion *region
PREINIT:
GdkRectangle rectangle;
CODE:
gdk_region_get_clipbox (region, &rectangle);
RETVAL = &rectangle;
OUTPUT:
RETVAL
## void gdk_region_get_rectangles (GdkRegion *region, GdkRectangle **rectangles, gint *n_rectangles)
=for apidoc
Returns a list of rectangles (Gtk2::Gdk::Rectangle's), the area covered by the
region.
=cut
void
gdk_region_get_rectangles (region)
GdkRegion *region
PREINIT:
GdkRectangle *rectangles = NULL;
gint n_rectangles;
int i;
PPCODE:
gdk_region_get_rectangles (region, &rectangles, &n_rectangles);
EXTEND (SP, n_rectangles);
for (i = 0 ; i < n_rectangles ; i++)
PUSHs (sv_2mortal (newSVGdkRectangle_copy (rectangles + i)));
g_free (rectangles);
## gboolean gdk_region_empty (GdkRegion *region)
gboolean
gdk_region_empty (region)
GdkRegion *region
## gboolean gdk_region_equal (GdkRegion *region1, GdkRegion *region2)
gboolean
gdk_region_equal (region1, region2)
GdkRegion *region1
GdkRegion *region2
## gboolean gdk_region_point_in (GdkRegion *region, int x, int y)
gboolean
gdk_region_point_in (region, x, y)
GdkRegion *region
int x
int y
## GdkOverlapType gdk_region_rect_in (GdkRegion *region, GdkRectangle *rect)
GdkOverlapType
gdk_region_rect_in (region, rect)
GdkRegion *region
GdkRectangle *rect
## void gdk_region_offset (GdkRegion *region, gint dx, gint dy)
void
gdk_region_offset (region, dx, dy)
GdkRegion *region
gint dx
gint dy
## void gdk_region_shrink (GdkRegion *region, gint dx, gint dy)
void
gdk_region_shrink (region, dx, dy)
GdkRegion *region
gint dx
gint dy
## void gdk_region_union_with_rect (GdkRegion *region, GdkRectangle *rect)
void
gdk_region_union_with_rect (region, rect)
GdkRegion *region
GdkRectangle *rect
## void gdk_region_intersect (GdkRegion *source1, GdkRegion *source2)
void
gdk_region_intersect (source1, source2)
GdkRegion *source1
GdkRegion *source2
## void gdk_region_union (GdkRegion *source1, GdkRegion *source2)
void
gdk_region_union (source1, source2)
GdkRegion *source1
( run in 0.771 second using v1.01-cache-2.11-cpan-5511b514fd6 )