CatalystX-Restarter-GTK
view release on metacpan or search on metacpan
lib/CatalystX/Restarter/GTK.pm view on Meta::CPAN
my $win = Gtk2::Window->new('toplevel');
$win->set_title($app_name);
$win->set_keep_above(1);
$win->set_position('center');
my $status = Gtk2::Label->new;
my $menu_bar = Gtk2::MenuBar->new;
my $view = Gtk2::MenuItem->new('_View');
my $mview = Gtk2::Menu->new;
my $console = Gtk2::MenuItem->new('Console');
$console->signal_connect('activate', sub { $obj->show_msg; });
$mview->append($console);
$view->set_submenu($mview);
my $restart = Gtk2::MenuItem->new('Restart');
my $mrestart = Gtk2::Menu->new;
$mrestart->append($restart);
my $tools = Gtk2::MenuItem->new('_Tools');
$tools->set_submenu($mrestart);
$menu_bar->append($view);
$menu_bar->append($tools);
$menu_bar->set_size_request(-1, 22);
my $vbox = Gtk2::VBox->new(FALSE, 0);
$vbox->pack_start($menu_bar, FALSE, FALSE, 0);
my $hbox = Gtk2::HBox->new(TRUE, 0);
lib/CatalystX/Restarter/GTK.pm view on Meta::CPAN
$win->hide;
}
});
$win->show_all;
my $buffer = Gtk2::TextBuffer->new;
#-- Create tray icon and menu
my $trayicon = Gtk2::StatusIcon->new_from_file($status_msg{stopped}->{icon});
$trayicon->set_visible(TRUE);
my $traymenu = Gtk2::Menu->new;
my $tray_mconsole = Gtk2::MenuItem->new('View Console');
$tray_mconsole->signal_connect('activate' => sub { $console->activate; });
my $tray_mrestart = Gtk2::MenuItem->new('Restart');
$tray_mrestart->signal_connect('activate' => sub { $restart->activate; });
my $mexit = Gtk2::MenuItem->new('Exit');
$mexit->signal_connect('activate' => sub { Gtk2->main_quit; });
$traymenu->append($tray_mconsole);
$traymenu->append($tray_mrestart);
$traymenu->append(Gtk2::SeparatorMenuItem->new);
$traymenu->append($mexit);
$trayicon->signal_connect('popup-menu', sub {
my ($ticon, $button, $time) = @_;
my ($x, $y, $push) = Gtk2::StatusIcon::position_menu($traymenu, $ticon);
$traymenu->show_all;
$traymenu->popup(undef, undef, sub {($x, $y,$push)}, undef, $button, $time);
});
$obj = { %$obj, win => $win, trayicon => $trayicon, msg_buffer => $buffer, app_name => $app_name, lbstatus => $status, bt_restart => $restart, bt_console => $console };
( run in 1.112 second using v1.01-cache-2.11-cpan-49f99fa48dc )