#!/usr/bin/perl -w use strict; use Gtk2 '-init'; use constant TRUE => 1; use constant FALSE => 0; my $window = Gtk2::Window->new; $window->set_title('Widget Layout'); $window->signal_connect( destroy => sub { Gtk2->main_quit; } ); $window->set_border_width(3); my $vbox = Gtk2::VBox->new( FALSE, 6 ); $window->add($vbox); #-------------------------------------- my $frame0 = Gtk2::Frame->new('Button0'); $vbox->pack_start( $frame0, TRUE, TRUE, 0 ); $frame0->set_border_width(3); my $hbox0 = Gtk2::HBox->new( FALSE, 6 ); $frame0->add($hbox0); $hbox0->set_border_width(3); my $inc_button0 = Gtk2::Button->new('_Click Me'); $hbox0->pack_start( $inc_button0, FALSE, FALSE, 0 ); my $count0 = 0; my $reset_button0 = Gtk2::Button->new('Reset0'); $hbox0->pack_start( $reset_button0, FALSE, FALSE, 0 ); my $label0 = Gtk2::Label->new("But0 Clicked $count0 times"); #$label0->set_angle (50); $vbox->pack_start( $label0, TRUE, TRUE, 0 ); $inc_button0->signal_connect( clicked => sub { $count0++; $label0->set_text("But0 Clicked $count0 times"); } ); $reset_button0->signal_connect( clicked => sub { $count0 = 0; $label0->set_text("But0 Clicked $count0 times"); } ); #------------------------------------------------------------ my $frame1 = Gtk2::Frame->new('Button1'); $vbox->pack_start( $frame1, TRUE, TRUE, 0 ); $frame1->set_border_width(3); my $hbox1 = Gtk2::HBox->new( FALSE, 6 ); $frame1->add($hbox1); $hbox1->set_border_width(3); my $inc_button1 = Gtk2::Button->new('_Click Me'); $hbox1->pack_start( $inc_button1, FALSE, FALSE, 0 ); my $count1 = 0; my $reset_button1 = Gtk2::Button->new('Reset1'); $hbox1->pack_start( $reset_button1, FALSE, FALSE, 0 ); my $label1 = Gtk2::Label->new("But1 Clicked $count1 times"); $vbox->pack_start( $label1, TRUE, TRUE, 0 ); $inc_button1->signal_connect( clicked => sub { $count1++; $label1->set_text("But1 Clicked $count1 times"); } ); $reset_button1->signal_connect( clicked => sub { $count1 = 0; $label1->set_text("But1 Clicked $count1 times"); } ); #----------------------------------------------------------- my $frame2 = Gtk2::Frame->new('Button2'); $vbox->pack_start( $frame2, TRUE, TRUE, 0 ); $frame2->set_border_width(3); my $hbox2 = Gtk2::HBox->new( FALSE, 6 ); $frame2->add($hbox2); $hbox2->set_border_width(3); my $inc_button2 = Gtk2::Button->new('_Click Me'); $hbox2->pack_start( $inc_button2, FALSE, FALSE, 0 ); my $count2 = 0; my $reset_button2 = Gtk2::Button->new('Reset2'); $hbox2->pack_start( $reset_button2, FALSE, FALSE, 0 ); my $label2 = Gtk2::Label->new("But2 Clicked $count2 times"); $vbox->pack_start( $label2, TRUE, TRUE, 0 ); $inc_button2->signal_connect( clicked => sub { $count2++; $label2->set_text("But2 Clicked $count2 times"); } ); $reset_button2->signal_connect( clicked => sub { $count2 = 0; $label2->set_text("But2 Clicked $count2 times"); } ); #----------------------------------------------------------- my $quit_button = Gtk2::Button->new('_Quit'); $vbox->pack_start( $quit_button, FALSE, FALSE, 0 ); $quit_button->signal_connect( clicked => sub { Gtk2->main_quit; } ); #---------------------------------------------------------- $window->show_all; Gtk2->main;