App-TimeTracker-Gtk3StatusIcon
view release on metacpan or search on metacpan
lib/App/TimeTracker/Gtk3StatusIcon.pm view on Meta::CPAN
my $lock;
if ($caller[1] =~ /tracker_gtk3statusicon.pl$/) {
$lock = Lock::File->new($TRACKER_HOME.'/tracker_gtk3statusicon.lock', { blocking=>0 });
unless ($lock) {
say "tracker_gtk3statusicon.pl seems to be running already...";
exit 0;
}
}
Gtk3->init;
my $menu = Gtk3::Menu->new();
my $task = get_current_task();
my $icon = Gtk3::StatusIcon->new_from_file($ICONS{$task->{status}});
my @items;
for my $line ($task->{lines}->@*) {
my $item = Gtk3::MenuItem->new($line);
$item->signal_connect( activate => sub {
Clipboard->copy($item->get_label) if $task->{status} eq 'busy';
} );
$menu->append($item);
push(@items, $item);
}
my $quit = Gtk3::ImageMenuItem->new_from_stock('gtk-quit');
$quit->signal_connect( activate => sub { Gtk3->main_quit } );
$menu->append($quit);
$menu->show_all();
$icon->signal_connect( 'activate' => sub { $menu->popup_at_pointer } );
my $loop = IO::Async::Loop::Glib->new();
my $file = IO::Async::File->new(
filename => $TRACKER_HOME,
( run in 1.271 second using v1.01-cache-2.11-cpan-49f99fa48dc )