ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/digital-clock
(Generate patch)

Comparing rxvt-unicode/src/perl/digital-clock (file contents):
Revision 1.2 by root, Tue Jan 3 01:15:44 2006 UTC vs.
Revision 1.3 by root, Tue Jan 3 01:19:12 2006 UTC

3# this creates a simple digital clock by overwriting the refresh hooks 3# this creates a simple digital clock by overwriting the refresh hooks
4 4
5sub on_init { 5sub on_init {
6 my ($self) = @_; 6 my ($self) = @_;
7 7
8 # force a refresh every second
8 $self->{digital_clock_refresh} = urxvt::timer 9 $self->{digital_clock_refresh} = urxvt::timer
9 ->new 10 ->new
10 ->start (urxvt::NOW) 11 ->start (urxvt::NOW)
11 ->cb (sub { 12 ->cb (sub {
12 $self->{digital_clock_refresh}->start ($self->{digital_clock_refresh}->at + 1); 13 $self->{digital_clock_refresh}->start ($self->{digital_clock_refresh}->at + 1);
14 }); 15 });
15 16
16 () 17 ()
17} 18}
18 19
20# before refreshing: replace upper right with the clock display
19sub on_refresh_begin { 21sub on_refresh_begin {
20 my ($self) = @_; 22 my ($self) = @_;
21 23
22 my $time = sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2, 1, 0]; 24 my $time = sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2, 1, 0];
23 my $xpos = $self->ncol - length $time; 25 my $xpos = $self->ncol - length $time;
24 26
25 $self->{digital_clock_rend} = $self->ROW_r (0, [(0x00020000 + urxvt::DEFAULT_RSTYLE) x length $time], $xpos); 27 $self->{digital_clock_rend} = $self->ROW_r (0, [(urxvt::DEFAULT_RSTYLE) x length $time], $xpos);
26 $self->{digital_clock_text} = $self->ROW_t (0, $time, $xpos); 28 $self->{digital_clock_text} = $self->ROW_t (0, $time, $xpos);
27 29
28 () 30 ()
29} 31}
30 32
33# after refreshing: restore previous screen contents
31sub on_refresh_end { 34sub on_refresh_end {
32 my ($self) = @_; 35 my ($self) = @_;
33 36
34 $self->ROW_r (0, $self->{digital_clock_rend}); 37 $self->ROW_r (0, $self->{digital_clock_rend});
35 $self->ROW_t (0, $self->{digital_clock_text}); 38 $self->ROW_t (0, $self->{digital_clock_text});

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines