GooCanvas2(3) User Contributed Perl Documentation GooCanvas2(3) NAME GooCanvas2 - Perl binding for GooCanvas2 widget using Glib::Object::Introspection SYNOPSIS #!/usr/bin/perl -w use strict; use warnings; use Gtk3 -init; use GooCanvas2; my $window = Gtk3::Window->new(); $window->set_default_size(640, 600); $window->signal_connect('destroy' => sub {Gtk3->main_quit()}); my $scrolled_win = Gtk3::ScrolledWindow->new(); $scrolled_win->set_shadow_type('in'); my $canvas = GooCanvas2::Canvas->new(); $canvas->set_size_request(600,450); $canvas->set_bounds(0,0,1000,1000); $scrolled_win->add($canvas); my $root = $canvas->get_root_item(); # Add a few simple items my $rect_item = GooCanvas2::CanvasRect->new('parent' => $root, 'x' => 100, 'y' => 100, 'width' => 300, 'height' => 300, 'line_width' => 10.0, 'radius-x' => 20.0, 'radius-y' => 10.0, 'stroke-color' => 'yellow', 'fill-color' => 'red'); my $text_item = GooCanvas2::CanvasText->new('parent' => $root, 'text' => 'Hello World', 'x' => 300, 'y' => 300, 'width' => -1, 'anchor' => 'center', 'font' => 'Sans 24'); $text_item->rotate(45, 300, 300); # Connect a signal handler for the rectangle item. $rect_item->signal_connect('button_press_event' => \&on_rect_button_press); $window->add($scrolled_win); $window->show_all; # Pass control to the Gtk3 main event loop Gtk3->main(); # This handles button presses in item views. #We simply output a message to the console sub on_rect_button_press { my ($item, $target, $event) = @_; print "rect item received button press event \n"; return 1; } INSTALLATION You need to install the typelib file for GooCanvas-2.0. For example on Debian/Ubuntu it should be necessary to install the following package: sudo apt-get install gir1.2-goocanvas-2.0 On Mageia for example you have to install: urpmi lib64goocanvas-gir2.0 DESCRIPTION GooCanvas2 is a new canvas widget for use with Gtk3 that uses the Cairo 2d library for drawing. This is a simple and basic implementation of this wonderful Canvas widget. For more informations see For instructions, how to use GooCanvas2, please study the API reference at for now. A perl- specific documentation will perhaps come in later versions. But applying the C documentation should be no problem. OBJECTS, ITEMS, MODELS The GooCanvas2 module provides the following objects, items and models. For more details see . Core Objects o GooCanvas2::Canvas - the main canvas widget o GooCanvas2::CanvasItem - the interface for canvas items o GooCanvas2::CanvasItemModel - the interface for canvas item models. o GooCanvas2::CanvasItemSimple - the base class for the standard canvas items. o GooCanvas2::CanvasItemModelSimple - the base class for the standard canvas item models. o GooCanvas2::CanvasStyle - support for cascading style properties for canvas items. Standard Canvas Items o GooCanvas2::CanvasGroup - a group of items. o GooCanvas2::CanvasEllipse - an ellipse item. o GooCanvas2::CanvasGrid - a grid item. o GooCanvas2::CanvasImage - an image item. o GooCanvas2::CanvasPath - a path item (a series of lines and curves). o GooCanvas2::CanvasPolyline - a polyline item (a series of lines with optional arrows). o GooCanvas2::CanvasRect - a rectangle item. o GooCanvas2::CanvasText - a text item. o GooCanvas2::CanvasWidget - an embedded widget item. o GooCanvas2::CanvasTable - a table container to layout items. Standard Canvas Item Models o GooCanvas2::CanvasGroupModel - a model for a group of items. o GooCanvas2::CanvasEllipseModel - a model for ellipse items. o GooCanvas2::CanvasGridModel - a model for grid items. o GooCanvas2::CanvasImageModel - a model for image items. o GooCanvas2::CanvasPathModel - a model for path items (a series of lines and curves). o GooCanvas2::CanvasPolylineModel - a model for polyline items (a series of lines with optional arrows). o GooCanvas2::CanvasRectModel - a model for rectangle items. o GooCanvas2::CanvasTextModel - a model for text items. o GooCanvas2::CanvasTableModel - a model for a table container to layout items. Development status and informations Customizations and overrides In order to make things more Perlish, GooCanvas2 customizes the API generated by Glib::Object::Introspection in a few spots: o The array ref normally returned by the following functions is flattened into a list: GooCanvas2::Canvas::get_items_at GooCanvas2::Canvas::get_items_in_area GooCanvas2::CanvasItem::get_items_at GooCanvas2::CanvasItem::class_list_child_properties GooCanvas2::CanvasItemModell::class_list_child_properties SEE ALSO o GooCanvas Homepage at o GooCanvas2 API Reference o Gtk3 o Glib::Object::Introspection AUTHOR Maximilian Lika, COPYRIGHT AND LICENSE Copyright (C) 2017 by Maximilian Lika This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.22.3 or, at your option, any later version of Perl 5 you may have available. perl v5.38.2 2024-07-13 GooCanvas2(3)