.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
.\"
.\" 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 >0, 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
..
.if !\nF .nr F 0
.if \nF>0 \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
.\}
.\" ========================================================================
.\"
.IX Title "Gtk2::GladeXML::Simple 3pm"
.TH Gtk2::GladeXML::Simple 3pm "2018-06-30" "perl v5.26.2" "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"
Gtk2::GladeXML::Simple \- A clean object\-oriented interface to Gtk2::GladeXML
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 2
\& package MyApp;
\& use base qw( Gtk2::GladeXML::Simple );
\&
\& sub new {
\& my $class = shift;
\& my $self = $class\->SUPER::new( $gladefile );
\& return $self;
\& }
\&
\& ...
\&
\& # Signal handlers are methods of your class
\& sub on_button_clicked {
\& my $self = shift;
\& # You have access to your widgets directly
\& # or using $self\->get_widget( widget_name )
\& my $button = $self\->{button1};
\& }
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Gtk2::GladeXML::Simple is a module that provides a clean and easy interface
for Gnome/Gtk2 and Glade applications using an object-oriented syntax. You just
make Gtk2::GladeXML::Simple your application's base class, have your \f(CW\*(C`new\*(C'\fR call
\&\f(CW\*(C`SUPER::new\*(C'\fR, and the module will do the tedious and dirty work for you.
.PP
Gtk2::GladeXML::Simple offers:
.IP "\(bu" 4
Signal handler callbacks as methods of your class.
.Sp
.Vb 5
\& sub on_button1_clicked {
\& my $self = shift; # $self always received as first parameter
\& ...
\& # do anything you want in a OO fashioned way
\& }
.Ve
.IP "\(bu" 4
Autoconnection of signal handlers.
.IP "\(bu" 4
Autocalling of creation functions for custom widgets.
.IP "\(bu" 4
Access to the widgets as instance attributes.
.Sp
.Vb 3
\& my $btn = $self\->{button1}; # fetch widgets as instance attributes by their names
\& my $window = $self\->{main_window};
\& my $custom = $self\->{custom_widget};
.Ve
.SH "METHODS"
.IX Header "METHODS"
This class provides the following public methods:
.ie n .IP "new( $gladefile \fI[, \f(CI$root\fI, \f(CI$domain\fI ]\fR );" 4
.el .IP "new( \f(CW$gladefile\fR \fI[, \f(CI$root\fI, \f(CI$domain\fI ]\fR );" 4
.IX Item "new( $gladefile [, $root, $domain ] );"
This method creates a new object of your subclass of Gtk2::GladeXML::Simple.
The \f(CW$gladefile\fR parameter is the name of the file created by the Glade Visual Editor.
The \f(CW$root\fR is an optional parameter that tells \f(CW\*(C`libglade\*(C'\fR the name of the widget
to start building from. The optional \f(CW$domain\fR parameter that specifies the translation
domain for the glade xml file ( undef by default ).
.IP "glade_object" 4
.IX Item "glade_object"
This method returns the Gtk2::GladeXML object in play.
.ie n .IP "get_widget( $widget_name )" 4
.el .IP "get_widget( \f(CW$widget_name\fR )" 4
.IX Item "get_widget( $widget_name )"
Returns the widget with given name. Same as calling \f(CW$self\fR\->{$widget_name}.
.IP "get_widgets" 4
.IX Item "get_widgets"
Returns a list with all the widgets in the glade file.
.IP "run" 4
.IX Item "run"
Call this method in order to run your application. If you need another event loop
rather than the Gtk one, override \fIrun\fR in your class with your event loop (for
example the GStreamer event loop).
.SH "EXTENDED EXAMPLE"
.IX Header "EXTENDED EXAMPLE"
This example shows the usage of the module by creating a small Yahoo search
engine using WWW::Search::Yahoo.
.PP
.Vb 1
\& package YahooApp;
\&
\& use strict;
\& use warnings;
\& use Gtk2 \*(Aq\-init\*(Aq;
\& use Gtk2::Html2; #not part of the Gtk2 core widgets
\& use Gtk2::GladeXML::Simple;
\& use WWW::Search;
\&
\& use base qw( Gtk2::GladeXML::Simple );
\&
\& my $header =<
\& Found:
\&
\& HEADER
\&
\& my $footer =<