File: demo-timer.pl

package info (click to toggle)
libtickit-async-perl 0.25-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 156 kB
  • sloc: perl: 390; makefile: 5
file content (41 lines) | stat: -r--r--r-- 730 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl

use v5.14;
use warnings;

use IO::Async::Loop;
use IO::Async::Timer::Periodic;
use Tickit::Async;

use Tickit::Widget::Static;

use Tickit::Widget::VBox;
use Tickit::Widget::Frame;

my $tickit = Tickit::Async->new;

my $vbox = Tickit::Widget::VBox->new( spacing => 1 );

$vbox->add( Tickit::Widget::Frame->new(
      child => my $static = Tickit::Widget::Static->new(
         text => "Flashing text",
         align  => "centre",
         valign => "middle",
      ),
      style => { linetype => "single" },
) );

my $fg = 1;
sub tick
{
   $fg++;
   $fg = 1 if $fg > 7;
   $static->set_style( fg => $fg );

   $tickit->timer( after => 0.5, \&tick );
}
tick();

$tickit->set_root_widget( $vbox );

$tickit->run;