Goo-Canvas
view release on metacpan or search on metacpan
xs/goocanvas.xs view on Meta::CPAN
);
$rect->signal_connect('button-press-event',
\&on_rect_button_press);
my $text = Goo::Canvas::Text->new(
$root, "Hello World", 300, 300, -1, 'center',
'font' => 'Sans 24',
);
$text->rotate(45, 300, 300);
$window->show_all();
Gtk2->main;
sub on_rect_button_press {
print "Rect item pressed!\n";
return TRUE;
}
=head1 DESCRIPTION
GTK+ doesn't has an built-in canvas widget. GooCanvas is wonderful.
It is easy to use and has powerful and extensible methods to create items
in canvas. Just try it.
For more documents, please read GooCanvas Manual and the demo programs
provided in the source distribution in both perl-Goo::Canvas and
GooCanvas.
=cut
GtkWidget*
goo_canvas_new(class)
C_ARGS:
/* void */
GooCanvasItem*
goo_canvas_get_root_item(canvas)
GooCanvas *canvas
void
goo_canvas_set_root_item(canvas, item)
GooCanvas *canvas
GooCanvasItem *item
GooCanvasItemModel*
goo_canvas_get_root_item_model(canvas)
GooCanvas *canvas
void
goo_canvas_set_root_item_model(canvas, model)
GooCanvas *canvas
GooCanvasItemModel *model
void
goo_canvas_get_bounds(canvas)
GooCanvas *canvas
PREINIT:
gdouble left;
gdouble top;
gdouble right;
gdouble bottom;
PPCODE:
goo_canvas_get_bounds(canvas, &left, &top, &right, &bottom);
mXPUSHn(left);
mXPUSHn(top);
mXPUSHn(right);
mXPUSHn(bottom);
void
goo_canvas_set_bounds(canvas, left, top, right, bottom)
GooCanvas *canvas
gdouble left
gdouble top
gdouble right
gdouble bottom
gdouble
goo_canvas_get_scale(canvas)
GooCanvas *canvas
void
goo_canvas_set_scale(canvas, scale)
GooCanvas *canvas
gdouble scale
GooCanvasItem*
goo_canvas_get_item(canvas, model)
GooCanvas *canvas
GooCanvasItemModel *model
GooCanvasItem*
goo_canvas_get_item_at(canvas, x, y, is_pointer_event)
GooCanvas *canvas
gdouble x
gdouble y
gboolean is_pointer_event
AV*
goo_canvas_get_items_at(canvas, x, y, is_pointer_event)
GooCanvas *canvas
gdouble x
gdouble y
gboolean is_pointer_event
PREINIT:
GList *list, *i;
CODE:
list = goo_canvas_get_items_at(canvas, x, y, is_pointer_event);
RETVAL = newAV();
for ( i = list; i != NULL; i = i->next ) {
av_push(RETVAL, newSVGooCanvasItem((GooCanvasItem*)i->data));
}
sv_2mortal((SV*)RETVAL);
OUTPUT:
RETVAL
CLEANUP:
g_list_free (list);
AV*
goo_canvas_get_items_in_area(canvas, area, inside_area, allow_overlaps, include_containers)
GooCanvas *canvas
GooCanvasBounds *area
gboolean inside_area
( run in 1.088 second using v1.01-cache-2.11-cpan-5511b514fd6 )