#! /usr/bin/perl -w
use strict;
use Glib qw/TRUE FALSE/;
use Gtk2 '-init';
my $deg = 0;
my $label;
Glib::Timeout->add (200,sub{ &rotate_label() });
#standard window creation, placement, and signal connecting
my $window = Gtk2::Window->new('toplevel');
$window->signal_connect('delete_event' => sub { Gtk2->main_quit; });
$window->set_border_width(5);
$window->set_position('center_always');
#this vbox will geturn the bulk of the gui
my $vbox = &ret_vbox();
#add and show the vbox
$window->add($vbox);
$window->show();
#our main event-loop
Gtk2->main();
sub ret_vbox {
#create a vbox to pack the following widgets
my $vbox = Gtk2::VBox->new(FALSE,5);
#this will be the label who gets rotated throughout the program
$label = Gtk2::Label->new();
#start with it at 90deg to have max space alllocated to it
$label->set_angle(90);
$label->set_markup('Rotating Label');
$vbox->pack_start($label,FALSE,FALSE,4);
#create table to pack the labels that will demo how mnemonic text work
my $table = Gtk2::Table->new (2, 2, FALSE);
my $lbl_mnemonic_one = Gtk2::Label->new_with_mnemonic("Label _One:");
$lbl_mnemonic_one->set_alignment (1, 1);
$table->attach_defaults ($lbl_mnemonic_one, 0, 1, 0, 1);
my $ent_one = Gtk2::Entry->new();
$lbl_mnemonic_one->set_mnemonic_widget ($ent_one);
$table->attach_defaults ($ent_one, 1, 2, 0, 1);
my $lbl_mnemonic_two = Gtk2::Label->new();
$lbl_mnemonic_two->set_markup_with_mnemonic('Label _Two');
$lbl_mnemonic_two->set_alignment (0, 0);
$table->attach_defaults ($lbl_mnemonic_two, 0, 1, 1, 2);
my $ent_two = Gtk2::Entry->new();
$lbl_mnemonic_two->set_mnemonic_widget ($ent_two);
$table->attach_defaults ($ent_two, 1, 2, 1, 2);
$vbox->pack_end($table,FALSE,FALSE,4);
$vbox->pack_end(Gtk2::HSeparator->new(),FALSE,FALSE,4);
#create a label that will demo pango markup
my $label_markup = Gtk2::Label->new();
$label_markup->set_markup("Label with Tango Pangomarkup");
$vbox->pack_end($label_markup,FALSE,FALSE,4);
$vbox->pack_end(Gtk2::HSeparator->new(),FALSE,FALSE,4);
$vbox->show_all();
return $vbox;
}
sub rotate_label {
$deg = $deg +5;
($deg==360)&&($deg =0);
$label->set_angle($deg);
return 1;
}