Provided by: libgoocanvas2-perl_0.06-1_all bug


       GooCanvas2 - Perl binding for GooCanvas2 widget using Glib::Object::Introspection


               #!/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();

               my $canvas = GooCanvas2::Canvas->new();

               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);


               # Pass control to the Gtk3 main event loop

               # 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;


       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


       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 information 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

       The GooCanvas2 module provides the following objects, items and models. For more details
       see <>.

       Core Objects

       ·   GooCanvas2::Canvas - the main canvas widget

       ·   GooCanvas2::CanvasItem - the interface for canvas items

       ·   GooCanvas2::CanvasItemModel - the interface for canvas item models.

       ·   GooCanvas2::CanvasItemSimple - the base class for the standard canvas items.

       ·   GooCanvas2::CanvasItemModelSimple - the base class for the standard canvas item

       ·   GooCanvas2::CanvasStyle - support for cascading style properties for canvas items.

       Standard Canvas Items

       ·   GooCanvas2::CanvasGroup - a group of items.

       ·   GooCanvas2::CanvasEllipse - an ellipse item.

       ·   GooCanvas2::CanvasGrid - a grid item.

       ·   GooCanvas2::CanvasImage - an image item.

       ·   GooCanvas2::CanvasPath - a path item (a series of lines and curves).

       ·   GooCanvas2::CanvasPolyline - a polyline item (a series of lines with optional arrows).

       ·   GooCanvas2::CanvasRect - a rectangle item.

       ·   GooCanvas2::CanvasText - a text item.

       ·   GooCanvas2::CanvasWidget - an embedded widget item.

       ·   GooCanvas2::CanvasTable - a table container to layout items.

       Standard Canvas Item Models

       ·   GooCanvas2::CanvasGroupModel - a model for a group of items.

       ·   GooCanvas2::CanvasEllipseModel - a model for ellipse items.

       ·   GooCanvas2::CanvasGridModel - a model for grid items.

       ·   GooCanvas2::CanvasImageModel - a model for image items.

       ·   GooCanvas2::CanvasPathModel - a model for path items (a series of lines and curves).

       ·   GooCanvas2::CanvasPolylineModel - a model for polyline items (a series of lines with
           optional arrows).

       ·   GooCanvas2::CanvasRectModel - a model for rectangle items.

       ·   GooCanvas2::CanvasTextModel - a model for text items.

       ·   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:

       ·   The array ref normally returned by the following functions is flattened into a list:



       ·   GooCanvas Homepage at <>

       ·   GooCanvas2 API Reference <>

       ·   Gtk3

       ·   Glib::Object::Introspection


       Maximilian Lika, <>


       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.