package Gnome2::PanelApplet; # $Id$ use 5.008; use strict; use warnings; use Gnome2; use Gnome2::GConf; require DynaLoader; our @ISA = qw(DynaLoader); our $VERSION = '0.02'; sub import { my $self = shift(); $self -> VERSION(@_); } sub dl_load_flags { 0x01 } Gnome2::PanelApplet -> bootstrap($VERSION); sub gconf_get_list { my ($applet, $key, $check_error) = @_; $check_error = 1 unless defined $check_error; my $value = $applet->gconf_get_value ($key, $check_error); return $value->{value}; } sub gconf_set_list { my ($applet, $key, $list_type, $list, $check_error) = @_; $check_error = 1 unless defined $check_error; $applet->gconf_set_value ($key, { type => $list_type, value => $list }, $check_error); } 1; __END__ =head1 NAME Gnome2::PanelApplet - Perl interface to GNOME's applet library =head1 SYNOPSIS # Initialize. Gnome2::Program->init ('My Applet', '0.01', 'libgnomeui' sm_connect => FALSE); # Register our applet with that bonobo thingy. The OAFIID stuff is # specified in a .server file. See # C<examples/GNOME_PerlAppletSample.server> in the # I<Gnome2::PanelApplet> tarball for an example. Gnome2::PanelApplet::Factory->main ( 'OAFIID:PerlSampleApplet_Factory', # iid of the applet 'Gnome2::PanelApplet', # type of the applet \&fill # sub that populates the applet ); sub fill { my ($applet, $iid, $data) = @_; # Safety measure: if we're passed the wrong IID, just return. if ($iid ne 'OAFIID:PerlSampleApplet') { return FALSE; } # Gnome2::PanelApplet isa Gtk2::EventBox, so it isa Gtk2::Container # in particular. That means we can call add() on it. my $label = Gtk2::Label->new ('Hi, there!'); $applet->add ($label); $applet->show_all; return TRUE; } =head1 ABSTRACT Use Perl to write GNOME applets that sit on the panel. =head1 DOCUMENTATION I<Gnome2::PanelApplet::Factory-E<gt>main> is documented in L<Gnome2::PanelApplet::Factory>. The methods you can call on the applet instance are documented in L<Gnome2::PanelApplet::main>. The GConf helper functions are documented in L<Gnome2::PanelApplet::GConf>. =head1 SEE ALSO L<Gnome2::PanelApplet::index>, L<Gnome2>, L<Gtk2>, L<Gtk2::api> and L<http://developer.gnome.org/doc/API/2.0/panel-applet/>. =head1 AUTHOR Emmanuele Bassi E<lt>emmanuele.bassi at iol dot itE<gt> Torsten Schoenfeld E<lt>kaffeetisch at gmx dot deE<gt> =head1 COPYRIGHT AND LICENSE Copyright (C) 2003, 2007 by the gtk2-perl team This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA =cut