NAME¶
Gtk2 - Perl interface to the 2.x series of the Gimp Toolkit library
SYNOPSIS¶
use Gtk2 -init;
# Gtk2->init; works if you didn't use -init on use
my $window = Gtk2::Window->new ('toplevel');
my $button = Gtk2::Button->new ('Quit');
$button->signal_connect (clicked => sub { Gtk2->main_quit });
$window->add ($button);
$window->show_all;
Gtk2->main;
ABSTRACT¶
Perl bindings to the 2.x series of the Gtk+ widget set. 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 API.
DESCRIPTION¶
The Gtk2 module allows a Perl developer to use the Gtk+ graphical user interface
library. Find out more about Gtk+ at
http://www.gtk.org.
The GTK+ Reference Manual is also a handy companion when writing Gtk programs in
any language.
http://developer.gnome.org/doc/API/2.0/gtk/ The Perl bindings
follow the C API very closely, and the C reference documentation should be
considered the canonical source.
To discuss gtk2-perl, ask questions and flame/praise the authors, join
gtk-perl-list@gnome.org at lists.gnome.org.
Also have a look at the gtk2-perl website and sourceforge project page,
http://gtk2-perl.sourceforge.net
INITIALIZATION¶
use Gtk2 qw/-init/;
use Gtk2 qw/-init -threads-init/;
- -init
- Equivalent to Gtk2->init, called to initialize GLIB and
GTK+. Just about every Gtk2-Perl script should do "use Gtk2
-init"; This initialization should take place before using any other
Gtk2 functions in your GUI applications. It will initialize everything
needed to operate the toolkit and parses some standard command line
options. @ARGV is adjusted accordingly so your own code will never see
those standard arguments.
- -threads-init
- Equivalent to Gtk2::Gdk::Threads->init, called to
initialze/enable gdk's thread safety mechanisms so that gdk can be
accessed from multiple threads when used in conjunction with
Gtk2::Gdk::Threads->enter and Gtk2::Gdk::Threads->leave. If invoked
as Gtk2::Gdk::Threads->init it should be done before Gtk2->init is
called, if done by "use Gtk2 -init -threads-init" order does not
matter.
EXPORTS¶
Gtk2 exports nothing by default, but some constants are available upon request.
- Tag: constants
-
GTK_PRIORITY_RESIZE
GTK_PATH_PRIO_LOWEST
GTK_PATH_PRIO_GTK
GTK_PATH_PRIO_APPLICATION
GTK_PATH_PRIO_THEME
GTK_PATH_PRIO_RC
GTK_PATH_PRIO_HIGHEST
GDK_PRIORITY_EVENTS
GDK_PRIORITY_REDRAW
GDK_CURRENT_TIME
See Glib for other standard priority levels.
SEE ALSO¶
perl(1), Glib(3pm), Pango(3pm).
Gtk2::Gdk::Keysyms(3pm) contains a hash of key codes, culled from
gdk/gdkkeysyms.h
Gtk2::api(3pm) describes how to map the C API into Perl, and some of the
important differences in the Perl bindings.
Gtk2::Helper(3pm) contains stuff that makes writing Gtk2 programs a little
easier.
Gtk2::SimpleList(3pm) makes the GtkListStore and GtkTreeModel a
lot
easier to use.
Gtk2::Pango(3pm) exports various little-used but important constants you may
need to work with pango directly.
Gtk2::index(3pm) lists the autogenerated api documentation pod files for Gtk2.
Gtk2 also provides code to make it relatively painless to create Perl wrappers
for other GLib/Gtk-based libraries. See Gtk2::CodeGen, ExtUtils::PkgConfig,
and ExtUtils::Depends. If you're writing bindings, you'll probably also be
interested in Gtk2::devel, which is a supplement to Glib::devel and
Glib::xsapi. The Binding Howto, at
http://gtk2-perl.sourceforge.net/doc/binding_howto.pod.html, ties it all
together.
AUTHORS¶
The gtk2-perl team:
muppet <scott at asofyet dot org>
Ross McFarland <rwmcfa1 at neces dot com>
Torsten Schoenfeld <kaffeetisch at web dot de>
Marc Lehmann <pcg at goof dot com>
Goeran Thyni <gthyni at kirra dot net>
Joern Reder <joern at zyn dot de>
Chas Owens <alas at wilma dot widomaker dot com>
Guillaume Cottenceau <gc at mandrakesoft dot com>
COPYRIGHT AND LICENSE¶
Copyright 2003-2011 by the gtk2-perl team.
This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Library General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU Library General Public License for more
details.
You should have received a copy of the GNU Library General Public License along
with this library; if not, write to the Free Software Foundation, Inc., 59
Temple Place - Suite 330, Boston, MA 02111-1307 USA.