diff options
Diffstat (limited to 'clock.pl')
-rwxr-xr-x | clock.pl | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -47,7 +47,7 @@ $button_time->signal_connect(clicked => sub { } }); -my $drawing_area = Gtk2::DrawingArea->new; +my $drawing_area; my $adj_h = Gtk2::Adjustment->new(0.0, 0.0, 23.0, 1.0, 5.0, 0.0); my $adj_m = Gtk2::Adjustment->new(0.0, 0.0, 59.0, 1.0, 5.0, 0.0); @@ -65,7 +65,7 @@ $my_win->{window}->add(gtkpack_(Gtk2::VBox->new(0,0), ), 1, gtkpack_(Gtk2::VBox->new(0,0), 0, gtkpack_(Gtk2::HBox->new(0,0), - 0, $drawing_area + 0, $drawing_area = gtkset_size_request(Gtk2::DrawingArea->new, 300, 300), ), 0, gtkpack_(Gtk2::HBox->new(1,0), 0, Gtk2::HBox->new(1,0), @@ -102,10 +102,10 @@ $my_win->{window}->add(gtkpack_(Gtk2::VBox->new(0,0), ); my $pressed; -$drawing_area->set_size_request(300,300); $drawing_area->set_events([ 'button_press_mask', 'button_release_mask', "pointer_motion_mask" ]); $drawing_area->signal_connect(expose_event => \&expose_event); -$drawing_area->signal_connect(realize => \&configure_event); +$drawing_area->signal_connect(realize => sub { print "REALIZE\n" }); +$drawing_area->signal_connect(configure => sub { print "CONFIGURE\n" }); $drawing_area->signal_connect(button_press_event => sub { $pressed = 1 }); $drawing_area->signal_connect(button_release_event => sub { $first = 1; $pressed = 0 }); $drawing_area->signal_connect(motion_notify_event => \&motion_event); @@ -201,13 +201,12 @@ sub determine_radian { sub expose_event { my ($widget, $event) = @_; my ($x, $y, $width, $height) = $event->area->values; + unless ($pixmap) { + my $window = $widget->window; + $pixmap = Gtk2::Gdk::Pixmap->new($window, $width, $height, $window->get_depth); + } $widget->window->draw_drawable($widget->style->fg_gc('normal'), $pixmap, $x, $y, $x, $y, $width, $height); -} - -sub configure_event { - my ($widget) = @_; - my $window = $widget->window; - $pixmap = Gtk2::Gdk::Pixmap->new($window, $widget->allocation->width, $widget->allocation->height, $window->get_depth); + 0; } sub rad_to_time { @@ -217,7 +216,7 @@ sub rad_to_time { } sub time_to_rad { - my ($sec, $min, $hour, undef, undef, undef, undef, undef, undef) = @_; + my ($sec, $min, $hour) = @_; $dRadians_hour = $hour % 12 * $PI / 6; $dRadians_min = $min * $PI / 30; $dRadians_sec = $sec * $PI / 30; |