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 )