ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/digital-clock
Revision: 1.3
Committed: Tue Jan 3 01:19:12 2006 UTC (18 years, 5 months ago) by root
Branch: MAIN
Changes since 1.2: +4 -1 lines
Log Message:
*** empty log message ***

File Contents

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