.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Goo::Canvas 3pm" .TH Goo::Canvas 3pm "2014-08-15" "perl v5.20.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Goo::Canvas \- wrapper for GooCanvas .SH "HIERARCHY" .IX Header "HIERARCHY" .Vb 6 \& Glib::Object \& +\-\-\-\-Glib::InitiallyUnowned \& +\-\-\-\-Gtk2::Object \& +\-\-\-\-Gtk2::Widget \& +\-\-\-\-Gtk2::Container \& +\-\-\-\-Goo::Canvas .Ve .SH "INTERFACES" .IX Header "INTERFACES" .Vb 2 \& Glib::Object::_Unregistered::AtkImplementorIface \& Gtk2::Buildable .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Goo::Canvas; \& use Gtk2 \*(Aq\-init\*(Aq; \& use Glib qw(TRUE FALSE); \& \& my $window = Gtk2::Window\->new(\*(Aqtoplevel\*(Aq); \& $window\->signal_connect(\*(Aqdelete_event\*(Aq => sub { Gtk2\->main_quit; }); \& $window\->set_default_size(640, 600); \& \& my $swin = Gtk2::ScrolledWindow\->new; \& $swin\->set_shadow_type(\*(Aqin\*(Aq); \& $window\->add($swin); \& \& my $canvas = Goo::Canvas\->new(); \& $canvas\->set_size_request(600, 450); \& $canvas\->set_bounds(0, 0, 1000, 1000); \& $swin\->add($canvas); \& \& my $root = $canvas\->get_root_item(); \& my $rect = Goo::Canvas::Rect\->new( \& $root, 100, 100, 400, 400, \& \*(Aqline\-width\*(Aq => 10, \& \*(Aqradius\-x\*(Aq => 20, \& \*(Aqradius\-y\*(Aq => 10, \& \*(Aqstroke\-color\*(Aq => \*(Aqyellow\*(Aq, \& \*(Aqfill\-color\*(Aq => \*(Aqred\*(Aq \& ); \& $rect\->signal_connect(\*(Aqbutton\-press\-event\*(Aq, \& \e&on_rect_button_press); \& \& my $text = Goo::Canvas::Text\->new( \& $root, "Hello World", 300, 300, \-1, \*(Aqcenter\*(Aq, \& \*(Aqfont\*(Aq => \*(AqSans 24\*(Aq, \& ); \& $text\->rotate(45, 300, 300); \& $window\->show_all(); \& Gtk2\->main; \& \& sub on_rect_button_press { \& print "Rect item pressed!\en"; \& return TRUE; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1GTK+\s0 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. .PP For more documents, please read GooCanvas Manual and the demo programs provided in the source distribution in both perl\-Goo::Canvas and GooCanvas. .SH "METHODS" .IX Header "METHODS" .SS "widget = Goo::Canvas\->\fBnew\fP" .IX Subsection "widget = Goo::Canvas->new" .ie n .SS "list = $canvas\->\fBget_bounds\fP" .el .SS "list = \f(CW$canvas\fP\->\fBget_bounds\fP" .IX Subsection "list = $canvas->get_bounds" .ie n .SS "$canvas\->\fBset_bounds\fP ($left, $top, $right, $bottom)" .el .SS "\f(CW$canvas\fP\->\fBset_bounds\fP ($left, \f(CW$top\fP, \f(CW$right\fP, \f(CW$bottom\fP)" .IX Subsection "$canvas->set_bounds ($left, $top, $right, $bottom)" .IP "\(bu" 4 \&\f(CW$left\fR (double) .IP "\(bu" 4 \&\f(CW$top\fR (double) .IP "\(bu" 4 \&\f(CW$right\fR (double) .IP "\(bu" 4 \&\f(CW$bottom\fR (double) .ie n .SS "cairo_surface_t = $pixbuf\->\fBcairo_surface_from_pixbuf\fP" .el .SS "cairo_surface_t = \f(CW$pixbuf\fP\->\fBcairo_surface_from_pixbuf\fP" .IX Subsection "cairo_surface_t = $pixbuf->cairo_surface_from_pixbuf" .ie n .SS "$canvas\->\fBconvert_from_item_space\fP ($item, $x, $y)" .el .SS "\f(CW$canvas\fP\->\fBconvert_from_item_space\fP ($item, \f(CW$x\fP, \f(CW$y\fP)" .IX Subsection "$canvas->convert_from_item_space ($item, $x, $y)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .ie n .SS "$canvas\->\fBconvert_from_pixels\fP ($x, $y)" .el .SS "\f(CW$canvas\fP\->\fBconvert_from_pixels\fP ($x, \f(CW$y\fP)" .IX Subsection "$canvas->convert_from_pixels ($x, $y)" .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .ie n .SS "$canvas\->\fBconvert_to_item_space\fP ($item, $x, $y)" .el .SS "\f(CW$canvas\fP\->\fBconvert_to_item_space\fP ($item, \f(CW$x\fP, \f(CW$y\fP)" .IX Subsection "$canvas->convert_to_item_space ($item, $x, $y)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .ie n .SS "$canvas\->\fBconvert_to_pixels\fP ($x, $y)" .el .SS "\f(CW$canvas\fP\->\fBconvert_to_pixels\fP ($x, \f(CW$y\fP)" .IX Subsection "$canvas->convert_to_pixels ($x, $y)" .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .ie n .SS "item = $canvas\->\fBcreate_item\fP ($model)" .el .SS "item = \f(CW$canvas\fP\->\fBcreate_item\fP ($model)" .IX Subsection "item = $canvas->create_item ($model)" .IP "\(bu" 4 \&\f(CW$model\fR (Goo::Canvas::ItemModel) .ie n .SS "$commands\->\fBcreate_path\fP ($cr)" .el .SS "\f(CW$commands\fP\->\fBcreate_path\fP ($cr)" .IX Subsection "$commands->create_path ($cr)" .IP "\(bu" 4 \&\f(CW$cr\fR (cairo_t) .ie n .SS "double = $canvas\->\fBget_default_line_width\fP" .el .SS "double = \f(CW$canvas\fP\->\fBget_default_line_width\fP" .IX Subsection "double = $canvas->get_default_line_width" .ie n .SS "$canvas\->\fBgrab_focus\fP ($item)" .el .SS "\f(CW$canvas\fP\->\fBgrab_focus\fP ($item)" .IX Subsection "$canvas->grab_focus ($item)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .ie n .SS "item = $canvas\->\fBget_item_at\fP ($x, $y, $is_pointer_event)" .el .SS "item = \f(CW$canvas\fP\->\fBget_item_at\fP ($x, \f(CW$y\fP, \f(CW$is_pointer_event\fP)" .IX Subsection "item = $canvas->get_item_at ($x, $y, $is_pointer_event)" .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .IP "\(bu" 4 \&\f(CW$is_pointer_event\fR (boolean) .ie n .SS "item = $canvas\->\fBget_item\fP ($model)" .el .SS "item = \f(CW$canvas\fP\->\fBget_item\fP ($model)" .IX Subsection "item = $canvas->get_item ($model)" .IP "\(bu" 4 \&\f(CW$model\fR (Goo::Canvas::ItemModel) .ie n .SS "arrayref = $canvas\->\fBget_items_at\fP ($x, $y, $is_pointer_event)" .el .SS "arrayref = \f(CW$canvas\fP\->\fBget_items_at\fP ($x, \f(CW$y\fP, \f(CW$is_pointer_event\fP)" .IX Subsection "arrayref = $canvas->get_items_at ($x, $y, $is_pointer_event)" .IP "\(bu" 4 \&\f(CW$x\fR (double) .IP "\(bu" 4 \&\f(CW$y\fR (double) .IP "\(bu" 4 \&\f(CW$is_pointer_event\fR (boolean) .ie n .SS "arrayref = $canvas\->\fBget_items_in_area\fP ($area, $inside_area, $allow_overlaps, $include_containers)" .el .SS "arrayref = \f(CW$canvas\fP\->\fBget_items_in_area\fP ($area, \f(CW$inside_area\fP, \f(CW$allow_overlaps\fP, \f(CW$include_containers\fP)" .IX Subsection "arrayref = $canvas->get_items_in_area ($area, $inside_area, $allow_overlaps, $include_containers)" .IP "\(bu" 4 \&\f(CW$area\fR (GooCanvasBounds) .IP "\(bu" 4 \&\f(CW$inside_area\fR (boolean) .IP "\(bu" 4 \&\f(CW$allow_overlaps\fR (boolean) .IP "\(bu" 4 \&\f(CW$include_containers\fR (boolean) .ie n .SS "grabstatus = $canvas\->\fBkeyboard_grab\fP ($item, $owner_events, $time)" .el .SS "grabstatus = \f(CW$canvas\fP\->\fBkeyboard_grab\fP ($item, \f(CW$owner_events\fP, \f(CW$time\fP)" .IX Subsection "grabstatus = $canvas->keyboard_grab ($item, $owner_events, $time)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$owner_events\fR (boolean) .IP "\(bu" 4 \&\f(CW$time\fR (unsigned) .ie n .SS "$canvas\->\fBkeyboard_ungrab\fP ($item, $time)" .el .SS "\f(CW$canvas\fP\->\fBkeyboard_ungrab\fP ($item, \f(CW$time\fP)" .IX Subsection "$canvas->keyboard_ungrab ($item, $time)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$time\fR (unsigned) .ie n .SS "GArray = $path_data\->\fBparse_path_data\fP" .el .SS "GArray = \f(CW$path_data\fP\->\fBparse_path_data\fP" .IX Subsection "GArray = $path_data->parse_path_data" .ie n .SS "grabstatus = $canvas\->\fBpointer_grab\fP ($item, $event_mask, $cursor, $time)" .el .SS "grabstatus = \f(CW$canvas\fP\->\fBpointer_grab\fP ($item, \f(CW$event_mask\fP, \f(CW$cursor\fP, \f(CW$time\fP)" .IX Subsection "grabstatus = $canvas->pointer_grab ($item, $event_mask, $cursor, $time)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$event_mask\fR (Gtk2::Gdk::EventMask) .IP "\(bu" 4 \&\f(CW$cursor\fR (Gtk2::Gdk::Cursor) the cursor to display during the grab, or undef means no change .IP "\(bu" 4 \&\f(CW$time\fR (unsigned) .ie n .SS "$canvas\->\fBpointer_ungrab\fP ($item, $time)" .el .SS "\f(CW$canvas\fP\->\fBpointer_ungrab\fP ($item, \f(CW$time\fP)" .IX Subsection "$canvas->pointer_ungrab ($item, $time)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .IP "\(bu" 4 \&\f(CW$time\fR (unsigned) .ie n .SS "$canvas\->\fBregister_widget_item\fP ($witem)" .el .SS "\f(CW$canvas\fP\->\fBregister_widget_item\fP ($witem)" .IX Subsection "$canvas->register_widget_item ($witem)" .IP "\(bu" 4 \&\f(CW$witem\fR (Goo::Canvas::Widget) .ie n .SS "$canvas\->\fBrender\fP ($cr, $bounds, $scale)" .el .SS "\f(CW$canvas\fP\->\fBrender\fP ($cr, \f(CW$bounds\fP, \f(CW$scale\fP)" .IX Subsection "$canvas->render ($cr, $bounds, $scale)" .IP "\(bu" 4 \&\f(CW$cr\fR (cairo_t) .IP "\(bu" 4 \&\f(CW$bounds\fR (GooCanvasBounds) .IP "\(bu" 4 \&\f(CW$scale\fR (double) .ie n .SS "$canvas\->\fBrequest_redraw\fP ($bounds)" .el .SS "\f(CW$canvas\fP\->\fBrequest_redraw\fP ($bounds)" .IX Subsection "$canvas->request_redraw ($bounds)" .IP "\(bu" 4 \&\f(CW$bounds\fR (GooCanvasBounds) .ie n .SS "$canvas\->\fBrequest_update\fP" .el .SS "\f(CW$canvas\fP\->\fBrequest_update\fP" .IX Subsection "$canvas->request_update" .ie n .SS "item = $canvas\->\fBget_root_item\fP" .el .SS "item = \f(CW$canvas\fP\->\fBget_root_item\fP" .IX Subsection "item = $canvas->get_root_item" .ie n .SS "itemmodel = $canvas\->\fBget_root_item_model\fP" .el .SS "itemmodel = \f(CW$canvas\fP\->\fBget_root_item_model\fP" .IX Subsection "itemmodel = $canvas->get_root_item_model" .ie n .SS "$canvas\->\fBset_root_item_model\fP ($model)" .el .SS "\f(CW$canvas\fP\->\fBset_root_item_model\fP ($model)" .IX Subsection "$canvas->set_root_item_model ($model)" .IP "\(bu" 4 \&\f(CW$model\fR (Goo::Canvas::ItemModel) .ie n .SS "$canvas\->\fBset_root_item\fP ($item)" .el .SS "\f(CW$canvas\fP\->\fBset_root_item\fP ($item)" .IX Subsection "$canvas->set_root_item ($item)" .IP "\(bu" 4 \&\f(CW$item\fR (Goo::Canvas::Item) .ie n .SS "double = $canvas\->\fBget_scale\fP" .el .SS "double = \f(CW$canvas\fP\->\fBget_scale\fP" .IX Subsection "double = $canvas->get_scale" .ie n .SS "$canvas\->\fBset_scale\fP ($scale)" .el .SS "\f(CW$canvas\fP\->\fBset_scale\fP ($scale)" .IX Subsection "$canvas->set_scale ($scale)" .IP "\(bu" 4 \&\f(CW$scale\fR (double) .ie n .SS "$canvas\->\fBscroll_to\fP ($left, $top)" .el .SS "\f(CW$canvas\fP\->\fBscroll_to\fP ($left, \f(CW$top\fP)" .IX Subsection "$canvas->scroll_to ($left, $top)" .IP "\(bu" 4 \&\f(CW$left\fR (double) .IP "\(bu" 4 \&\f(CW$top\fR (double) .ie n .SS "$canvas\->\fBunregister_item\fP ($model)" .el .SS "\f(CW$canvas\fP\->\fBunregister_item\fP ($model)" .IX Subsection "$canvas->unregister_item ($model)" .IP "\(bu" 4 \&\f(CW$model\fR (Goo::Canvas::ItemModel) .ie n .SS "$canvas\->\fBunregister_widget_item\fP ($witem)" .el .SS "\f(CW$canvas\fP\->\fBunregister_widget_item\fP ($witem)" .IX Subsection "$canvas->unregister_widget_item ($witem)" .IP "\(bu" 4 \&\f(CW$witem\fR (Goo::Canvas::Widget) .ie n .SS "$canvas\->\fBupdate\fP" .el .SS "\f(CW$canvas\fP\->\fBupdate\fP" .IX Subsection "$canvas->update" .SH "PROPERTIES" .IX Header "PROPERTIES" .ie n .IP "'anchor' (Gtk2::AnchorType : default ""north-west"" : readable / writable)" 4 .el .IP "'anchor' (Gtk2::AnchorType : default ``north-west'' : readable / writable)" 4 .IX Item "'anchor' (Gtk2::AnchorType : default north-west : readable / writable)" Where to place the canvas when it is smaller than the widget's allocated area .IP "'automatic\-bounds' (boolean : default false : readable / writable)" 4 .IX Item "'automatic-bounds' (boolean : default false : readable / writable)" If the bounds are automatically calculated based on the bounds of all the items in the canvas .IP "'background\-color' (string : default undef : writable)" 4 .IX Item "'background-color' (string : default undef : writable)" The color to use for the canvas background .IP "'background\-color\-rgb' (Glib::UInt : default 0 : writable)" 4 .IX Item "'background-color-rgb' (Glib::UInt : default 0 : writable)" The color to use for the canvas background, specified as a 24\-bit integer value, 0xRRGGBB .IP "'bounds\-from\-origin' (boolean : default true : readable / writable)" 4 .IX Item "'bounds-from-origin' (boolean : default true : readable / writable)" If the automatic bounds are calculated from the origin .IP "'bounds\-padding' (double : default 0 : readable / writable)" 4 .IX Item "'bounds-padding' (double : default 0 : readable / writable)" The padding added to the automatic bounds .IP "'clear\-background' (boolean : default true : readable / writable)" 4 .IX Item "'clear-background' (boolean : default true : readable / writable)" If the background is cleared before the canvas is painted .IP "'integer\-layout' (boolean : default false : readable / writable)" 4 .IX Item "'integer-layout' (boolean : default false : readable / writable)" If all item layout is done to the nearest integer .IP "'redraw\-when\-scrolled' (boolean : default false : readable / writable)" 4 .IX Item "'redraw-when-scrolled' (boolean : default false : readable / writable)" If the canvas is completely redrawn when scrolled, to reduce the flicker of static items .IP "'resolution\-x' (double : default 96 : readable / writable)" 4 .IX Item "'resolution-x' (double : default 96 : readable / writable)" The horizontal resolution of the display, in dots per inch .IP "'resolution\-y' (double : default 96 : readable / writable)" 4 .IX Item "'resolution-y' (double : default 96 : readable / writable)" The vertical resolution of the display, in dots per inch .IP "'scale' (double : default 1 : readable / writable)" 4 .IX Item "'scale' (double : default 1 : readable / writable)" The magnification factor of the canvas .IP "'scale\-x' (double : default 1 : readable / writable)" 4 .IX Item "'scale-x' (double : default 1 : readable / writable)" The horizontal magnification factor of the canvas .IP "'scale\-y' (double : default 1 : readable / writable)" 4 .IX Item "'scale-y' (double : default 1 : readable / writable)" The vertical magnification factor of the canvas .ie n .IP "'units' (Gtk2::Unit : default ""pixel"" : readable / writable)" 4 .el .IP "'units' (Gtk2::Unit : default ``pixel'' : readable / writable)" 4 .IX Item "'units' (Gtk2::Unit : default pixel : readable / writable)" The units to use for the canvas .IP "'x1' (double : default 0 : readable / writable)" 4 .IX Item "'x1' (double : default 0 : readable / writable)" The x coordinate of the left edge of the canvas bounds, in canvas units .IP "'x2' (double : default 1000 : readable / writable)" 4 .IX Item "'x2' (double : default 1000 : readable / writable)" The x coordinate of the right edge of the canvas bounds, in canvas units .IP "'y1' (double : default 0 : readable / writable)" 4 .IX Item "'y1' (double : default 0 : readable / writable)" The y coordinate of the top edge of the canvas bounds, in canvas units .IP "'y2' (double : default 1000 : readable / writable)" 4 .IX Item "'y2' (double : default 1000 : readable / writable)" The y coordinate of the bottom edge of the canvas bounds, in canvas units .SH "SIGNALS" .IX Header "SIGNALS" .IP "\fBset-scroll-adjustments\fR (Goo::Canvas, Gtk2::Adjustment, Gtk2::Adjustment)" 4 .IX Item "set-scroll-adjustments (Goo::Canvas, Gtk2::Adjustment, Gtk2::Adjustment)" .PD 0 .IP "\fBitem-created\fR (Goo::Canvas, Goo::Canvas::Item, Goo::Canvas::ItemModel)" 4 .IX Item "item-created (Goo::Canvas, Goo::Canvas::Item, Goo::Canvas::ItemModel)" .PD .SH "ENUMS AND FLAGS" .IX Header "ENUMS AND FLAGS" .SS "enum Gtk2::AnchorType" .IX Subsection "enum Gtk2::AnchorType" .IP "\(bu" 4 \&'center' / '\s-1GTK_ANCHOR_CENTER\s0' .IP "\(bu" 4 \&'north' / '\s-1GTK_ANCHOR_NORTH\s0' .IP "\(bu" 4 \&'north\-west' / '\s-1GTK_ANCHOR_NORTH_WEST\s0' .IP "\(bu" 4 \&'north\-east' / '\s-1GTK_ANCHOR_NORTH_EAST\s0' .IP "\(bu" 4 \&'south' / '\s-1GTK_ANCHOR_SOUTH\s0' .IP "\(bu" 4 \&'south\-west' / '\s-1GTK_ANCHOR_SOUTH_WEST\s0' .IP "\(bu" 4 \&'south\-east' / '\s-1GTK_ANCHOR_SOUTH_EAST\s0' .IP "\(bu" 4 \&'west' / '\s-1GTK_ANCHOR_WEST\s0' .IP "\(bu" 4 \&'east' / '\s-1GTK_ANCHOR_EAST\s0' .IP "\(bu" 4 \&'n' / '\s-1GTK_ANCHOR_N\s0' .IP "\(bu" 4 \&'nw' / '\s-1GTK_ANCHOR_NW\s0' .IP "\(bu" 4 \&'ne' / '\s-1GTK_ANCHOR_NE\s0' .IP "\(bu" 4 \&'s' / '\s-1GTK_ANCHOR_S\s0' .IP "\(bu" 4 \&'sw' / '\s-1GTK_ANCHOR_SW\s0' .IP "\(bu" 4 \&'se' / '\s-1GTK_ANCHOR_SE\s0' .IP "\(bu" 4 \&'w' / '\s-1GTK_ANCHOR_W\s0' .IP "\(bu" 4 \&'e' / '\s-1GTK_ANCHOR_E\s0' .SS "flags Gtk2::Gdk::EventMask" .IX Subsection "flags Gtk2::Gdk::EventMask" .IP "\(bu" 4 \&'exposure\-mask' / '\s-1GDK_EXPOSURE_MASK\s0' .IP "\(bu" 4 \&'pointer\-motion\-mask' / '\s-1GDK_POINTER_MOTION_MASK\s0' .IP "\(bu" 4 \&'pointer\-motion\-hint\-mask' / '\s-1GDK_POINTER_MOTION_HINT_MASK\s0' .IP "\(bu" 4 \&'button\-motion\-mask' / '\s-1GDK_BUTTON_MOTION_MASK\s0' .IP "\(bu" 4 \&'button1\-motion\-mask' / '\s-1GDK_BUTTON1_MOTION_MASK\s0' .IP "\(bu" 4 \&'button2\-motion\-mask' / '\s-1GDK_BUTTON2_MOTION_MASK\s0' .IP "\(bu" 4 \&'button3\-motion\-mask' / '\s-1GDK_BUTTON3_MOTION_MASK\s0' .IP "\(bu" 4 \&'button\-press\-mask' / '\s-1GDK_BUTTON_PRESS_MASK\s0' .IP "\(bu" 4 \&'button\-release\-mask' / '\s-1GDK_BUTTON_RELEASE_MASK\s0' .IP "\(bu" 4 \&'key\-press\-mask' / '\s-1GDK_KEY_PRESS_MASK\s0' .IP "\(bu" 4 \&'key\-release\-mask' / '\s-1GDK_KEY_RELEASE_MASK\s0' .IP "\(bu" 4 \&'enter\-notify\-mask' / '\s-1GDK_ENTER_NOTIFY_MASK\s0' .IP "\(bu" 4 \&'leave\-notify\-mask' / '\s-1GDK_LEAVE_NOTIFY_MASK\s0' .IP "\(bu" 4 \&'focus\-change\-mask' / '\s-1GDK_FOCUS_CHANGE_MASK\s0' .IP "\(bu" 4 \&'structure\-mask' / '\s-1GDK_STRUCTURE_MASK\s0' .IP "\(bu" 4 \&'property\-change\-mask' / '\s-1GDK_PROPERTY_CHANGE_MASK\s0' .IP "\(bu" 4 \&'visibility\-notify\-mask' / '\s-1GDK_VISIBILITY_NOTIFY_MASK\s0' .IP "\(bu" 4 \&'proximity\-in\-mask' / '\s-1GDK_PROXIMITY_IN_MASK\s0' .IP "\(bu" 4 \&'proximity\-out\-mask' / '\s-1GDK_PROXIMITY_OUT_MASK\s0' .IP "\(bu" 4 \&'substructure\-mask' / '\s-1GDK_SUBSTRUCTURE_MASK\s0' .IP "\(bu" 4 \&'scroll\-mask' / '\s-1GDK_SCROLL_MASK\s0' .IP "\(bu" 4 \&'all\-events\-mask' / '\s-1GDK_ALL_EVENTS_MASK\s0' .SS "enum Gtk2::Gdk::GrabStatus" .IX Subsection "enum Gtk2::Gdk::GrabStatus" .IP "\(bu" 4 \&'success' / '\s-1GDK_GRAB_SUCCESS\s0' .IP "\(bu" 4 \&'already\-grabbed' / '\s-1GDK_GRAB_ALREADY_GRABBED\s0' .IP "\(bu" 4 \&'invalid\-time' / '\s-1GDK_GRAB_INVALID_TIME\s0' .IP "\(bu" 4 \&'not\-viewable' / '\s-1GDK_GRAB_NOT_VIEWABLE\s0' .IP "\(bu" 4 \&'frozen' / '\s-1GDK_GRAB_FROZEN\s0' .SS "enum Gtk2::Unit" .IX Subsection "enum Gtk2::Unit" .IP "\(bu" 4 \&'pixel' / '\s-1GTK_UNIT_PIXEL\s0' .IP "\(bu" 4 \&'points' / '\s-1GTK_UNIT_POINTS\s0' .IP "\(bu" 4 \&'inch' / '\s-1GTK_UNIT_INCH\s0' .IP "\(bu" 4 \&'mm' / '\s-1GTK_UNIT_MM\s0' .SH "SEE ALSO" .IX Header "SEE ALSO" Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2014 Gtk2\-Perl Team