AnyEvent-MQTT
view release on metacpan or search on metacpan
bin/anyevent-mqtt-monitor view on Meta::CPAN
@{$slist->{data}} = ();
my $scrolled = Gtk2::ScrolledWindow->new;
$scrolled->set_policy('automatic', 'automatic');
$scrolled->add($slist);
$vbox->add($scrolled);
foreach (['Quit' => sub { Gtk2->main_quit }]) {
my $button = Gtk2::Button->new($_->[0]);
$button->signal_connect(clicked => $_->[1]);
$vbox->pack_start($button, 0, 0, 0);
}
my $menu = Gtk2::Menu->new();
$menu->set_name('client menu');
my $tearoff = Gtk2::TearoffMenuItem->new();
$menu->append($tearoff);
$tearoff->show;
foreach (['History' => \&history_callback]) {
my ($title, $cb) = @$_;
my $item = Gtk2::MenuItem->new($title);
$item->signal_connect('activate', $cb);
$menu->append($item);
$item->show;
}
$win->show_all;
my $dialog = Gtk2::Window->new();
$dialog->signal_connect("destroy", sub { $dialog->hide(); 1; });
$dialog->set_role('dialog');
$dialog->realize();
bin/anyevent-mqtt-monitor view on Meta::CPAN
'Summary' => 'text');
$hist_list->set_rules_hint(1);
$hist_list->signal_connect(button_press_event => \&hist_button_press);
my $dialog_vbox = Gtk2::VBox->new(0,0);
$dialog->add($dialog_vbox);
$dialog_vbox->add($hist_list);
my $hide_button = Gtk2::Button->new('Hide');
$hide_button->signal_connect(clicked => sub { $dialog->hide(); 1; });
$dialog_vbox->add($hide_button);
my $hist_menu = Gtk2::Menu->new();
$hist_menu->set_name('hist menu');
my $hist_tearoff = Gtk2::TearoffMenuItem->new();
$hist_menu->append($hist_tearoff);
$hist_tearoff->show;
foreach (['Dump' => \&dump_callback]) {
my ($title, $cb) = @$_;
my $item = Gtk2::MenuItem->new($title);
$item->signal_connect('activate', $cb);
$hist_menu->append($item);
$item->show;
}
Gtk2->main;
sub log {
my ($topic, $message, $obj) = @_;
return unless ($retain || !$obj->retain); # skip retained messages
( run in 0.487 second using v1.01-cache-2.11-cpan-49f99fa48dc )