Revision: | 1.2 |
Committed: | Wed Jan 18 11:05:09 2006 UTC (18 years, 4 months ago) by root |
Branch: | MAIN |
CVS Tags: | rel-7_3, rel-7_2, rel-7_1, before_dynamic_fontidx, rel-7_6, rel-7_5, rel-7_8, rel-7_9, rel-7_7, rel-9_14, rel-7_4, rel-9_11, rel-9_10, rel-8_1, rel-9_12, rel-8_5a, rel-7_3a, rel-8_2, rel-8_9, rel-8_8, dynamic_fontidx, rel-8_0, rel-8_4, rel-9_0, rel-8_3, rxvt-unicode-rel-9_15, rel-8_6, rel-8_7, rel-9_09, rel-9_02, rel-9_01, rel-9_06, rel-9_07, rel-9_05 |
Changes since 1.1: | +3 -5 lines |
Log Message: | *** empty log message *** |
# | 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 (1 + int urxvt::NOW) |
12 | ->interval (1) |
13 | ->cb (sub { $self->want_refresh }); |
14 | |
15 | () |
16 | } |
17 | |
18 | # before refreshing: replace upper right with the clock display |
19 | sub on_refresh_begin { |
20 | my ($self) = @_; |
21 | |
22 | my $time = sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2, 1, 0]; |
23 | my $xpos = $self->ncol - length $time; |
24 | |
25 | $xpos >= 0 |
26 | or return; |
27 | |
28 | $self->{digital_clock_rend} = $self->ROW_r (0, [(urxvt::DEFAULT_RSTYLE) x length $time], $xpos); |
29 | $self->{digital_clock_text} = $self->ROW_t (0, $time, $xpos); |
30 | |
31 | () |
32 | } |
33 | |
34 | # after refreshing: restore previous screen contents |
35 | sub on_refresh_end { |
36 | my ($self) = @_; |
37 | |
38 | exists $self->{digital_clock_text} |
39 | or return; |
40 | |
41 | $self->ROW_r (0, delete $self->{digital_clock_rend}); |
42 | $self->ROW_t (0, delete $self->{digital_clock_text}); |
43 | |
44 | () |
45 | } |
46 | |
47 |