#!/usr/bin/perl -w
#
# Button Boxes
#
# The Button Box widgets are used to arrange buttons with padding.
#
package button_box;
use Glib qw(TRUE FALSE);
use Gtk2;
sub create_bbox {
my ($horizontal, $spacing, $layout) = @_;
my $title = ucfirst $layout;
my $frame = Gtk2::Frame->new ($title);
my $bbox = $horizontal
? Gtk2::HButtonBox->new
: Gtk2::VButtonBox->new;
$bbox->set_border_width (5);
$frame->add ($bbox);
$bbox->set_layout ($layout);
$bbox->set_spacing ($spacing);
my $button = Gtk2::Button->new_from_stock ('gtk-ok');
$bbox->add ($button);
$button = Gtk2::Button->new_from_stock ('gtk-cancel');
$bbox->add ($button);
$button = Gtk2::Button->new_from_stock ('gtk-help');
$bbox->add ($button);
return $frame;
}
my $window = undef;
sub do {
if (!$window) {
$window = Gtk2::Window->new;
$window->set_title ("Button Boxes");
$window->signal_connect (destroy => sub { $window = undef; 1 });
$window->set_border_width (10);
my $main_vbox = Gtk2::VBox->new (FALSE, 0);
$window->add ($main_vbox);
my $frame_horz = Gtk2::Frame->new ("Horizontal Button Boxes");
$main_vbox->pack_start ($frame_horz, TRUE, TRUE, 10);
my $vbox = Gtk2::VBox->new (FALSE, 0);
$vbox->set_border_width (10);
$frame_horz->add ($vbox);
$vbox->pack_start (create_bbox (TRUE, 40, 'spread'), TRUE, TRUE, 0);
$vbox->pack_start (create_bbox (TRUE, 40, 'edge'), TRUE, TRUE, 5);
$vbox->pack_start (create_bbox (TRUE, 40, 'start'), TRUE, TRUE, 5);
$vbox->pack_start (create_bbox (TRUE, 40, 'end'), TRUE, TRUE, 5);
my $frame_vert = Gtk2::Frame->new ("Vertical Button Boxes");
$main_vbox->pack_start ($frame_vert, TRUE, TRUE, 10);
my $hbox = Gtk2::HBox->new (FALSE, 0);
$hbox->set_border_width (10);
$frame_vert->add ($hbox);
$hbox->pack_start (create_bbox (FALSE, 30, 'spread'), TRUE, TRUE, 0);
$hbox->pack_start (create_bbox (FALSE, 30, 'edge'), TRUE, TRUE, 5);
$hbox->pack_start (create_bbox (FALSE, 30, 'start'), TRUE, TRUE, 5);
$hbox->pack_start (create_bbox (FALSE, 30, 'end'), TRUE, TRUE, 5);
}
if (!$window->visible) {
$window->show_all;
} else {
$window->destroy;
$window = undef;
}
return $window;
}
1;
__END__
Copyright (C) 2003 by the gtk2-perl team (see the file AUTHORS for the
full list)
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.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 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.