.\" 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 "Gtk3 3pm" .TH Gtk3 3pm "2014-09-30" "perl v5.20.1" "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" Gtk3 \- Perl interface to the 3.x series of the gtk+ toolkit .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 7 \& use Gtk3 \-init; \& my $window = Gtk3::Window\->new (\*(Aqtoplevel\*(Aq); \& my $button = Gtk3::Button\->new (\*(AqQuit\*(Aq); \& $button\->signal_connect (clicked => sub { Gtk3::main_quit }); \& $window\->add ($button); \& $window\->show_all; \& Gtk3::main; .Ve .SH "ABSTRACT" .IX Header "ABSTRACT" Perl bindings to the 3.x series of the gtk+ toolkit. This module allows you to write graphical user interfaces in a Perlish and object-oriented way, freeing you from the casting and memory management in C, yet remaining very close in spirit to original \s-1API.\s0 .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Gtk3 module allows a Perl developer to use the gtk+ graphical user interface library. Find out more about gtk+ at . .PP The gtk+ reference manual is also a handy companion when writing Gtk3 programs in Perl: . The Perl bindings follow the C \s-1API\s0 very closely, and the C reference documentation should be considered the canonical source. .PP To discuss Gtk3 and ask questions join gtk\-perl\-list@gnome.org at . .PP Also have a look at the gtk2\-perl website and sourceforge project page, . .SS "Porting from Gtk2 to Gtk3" .IX Subsection "Porting from Gtk2 to Gtk3" The majority of the \s-1API\s0 has not changed, so as a first approximation you can run \f(CW\*(C`s/Gtk2/Gtk3/\*(C'\fR on your application. A big exception to this rule is APIs that were deprecated in gtk+ 2.x \*(-- these were all removed from gtk+ 3.0 and thus from Gtk3. The migration guide at describes what to use instead. Apart from this, here is a list of some other incompatible differences between Gtk2 and Gtk3: .IP "\(bu" 4 The call syntax for class-static methods is now always \&\f(CW\*(C`Gtk3::Stock::lookup\*(C'\fR instead of \f(CW\*(C`Gtk3::Stock\->lookup\*(C'\fR. .IP "\(bu" 4 The \f(CW%Gtk2::Gdk::Keysyms\fR hash is gone; instead of \f(CW\*(C`Gtk2::Gdk::Keysyms{XYZ}\*(C'\fR, use \f(CW\*(C`Gtk3::Gdk::KEY_XYZ\*(C'\fR. .IP "\(bu" 4 The Gtk2::Pango compatibility wrapper was not carried over; simply use the namespace \*(L"Pango\*(R" everywhere. It gets set up automatically when loading Gtk3. .IP "\(bu" 4 The types Gtk3::Allocation and Gtk3::Gdk::Rectangle are now aliases for Cairo::RectangleInt, and as such they are represented as plain hashes with keys 'width', 'height', 'x' and 'y'. .IP "\(bu" 4 Gtk3::Editable: Callbacks connected to the \*(L"insert-text\*(R" signal do not have as many options anymore as they had in Gtk2. Changes to arguments will not be propagated to the next signal handler, and only the updated position can and must be returned. .IP "\(bu" 4 Gtk3::Menu: The position callback passed to \fIpopup()\fR does not receive x and y parameters anymore. .IP "\(bu" 4 Gtk3::RadioAction: The constructor now follows the C \s-1API.\s0 .IP "\(bu" 4 Gtk3::TreeModel: \fIiter_next()\fR is now a method that is modifying the iter directly, instead of returning a new one. \fIrows_reordered()\fR and the \&\*(L"rows-reordered\*(R" signal are currently unusable. .IP "\(bu" 4 Gtk3::TreeSelection: \fIget_selected_rows()\fR now returns two values: an array ref containing the selected paths, and the model. \fIget_user_data()\fR is not available currently. .IP "\(bu" 4 Gtk3::TreeSortable: \fIget_sort_column_id()\fR has an additional boolean return value. .IP "\(bu" 4 Gtk3::TreeStore, Gtk3::ListStore: \fIreorder()\fR is currently unusable. .IP "\(bu" 4 Gtk3::Gdk::Atom: The constructor \fInew()\fR is not provided anymore, and the class function \fIintern()\fR must now be called as \f(CW\*(C`Gtk3::Gdk::Atom::intern (name, only_if_exists)\*(C'\fR. .IP "\(bu" 4 Implementations of Gtk3::TreeModel: Gtk3::TreeIter now has a constructor called \fInew()\fR expecting \f(CW\*(C`key => value\*(C'\fR pairs; \&\fInew_from_arrayref()\fR does not exist anymore. To access the contents of Gtk3::TreeIter, use \fIstamp()\fR, \fIuser_data()\fR, \fIuser_data2()\fR and \fIuser_data3()\fR; \&\fIto_arrayref()\fR does not exist anymore. \s-1\fIGET_ITER\s0()\fR, \s-1\fIITER_CHILDREN\s0()\fR, \&\s-1\fIITER_NTH_CHILD\s0()\fR and \s-1\fIITER_PARENT\s0()\fR must return an additional boolean value. \&\s-1\fIITER_NEXT\s0()\fR must modify the iter and return a boolean rather than return a new iter. \s-1\fIGET_VALUE\s0()\fR must return the value wrapped with \f(CW\*(C`Glib::Object::Introspection::GValueWrapper\->new\*(C'\fR. .IP "\(bu" 4 Implementations of Gtk3::CellLayout: \s-1\fIGET_CELLS\s0()\fR now needs to return an array ref instead of a list. .PP Note also that Gtk3::CHECK_VERSION will always fail when passed 2.y.z, so if you have any existing version checks in your code, you will most likely need to remove them. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "Glib" 4 .IX Item "Glib" .PD 0 .IP "Glib::Object::Introspection" 4 .IX Item "Glib::Object::Introspection" .PD .SH "AUTHORS" .IX Header "AUTHORS" .IP "Torsten Scho\*:nfeld " 4 .IX Item "Torsten Scho:nfeld " .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (C) 2011\-2013 by Torsten Schoenfeld .PP This library is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.