#!/usr/bin/perl
use strict;
use warnings;
use Gtk2::Notify -init, 'Replace Widgets';
my $win = Gtk2::Window->new;
$win->show;
$win->signal_connect(destroy => sub { Gtk2->main_quit });
my $button = Gtk2::Button->new('Click here to change notification');
$button->show;
$win->add($button);
my $n = Gtk2::Notify->new(
'Widget Attachment Test',
'Button has not been clicked yet',
'',
$button,
);
$n->set_category('presence.online');
$n->set_timeout(0);
$button->signal_connect(clicked => \&clicked_cb, $n);
my $exposed_signal_id = $button->signal_connect(expose_event => \&exposed_cb, $n);
Gtk2->main;
sub exposed_cb {
my ($button, $event, $n) = @_;
$button->signal_handler_disconnect($exposed_signal_id);
$n->show;
}
my $count = 0;
sub clicked_cb {
my ($button, $n) = @_;
$count++;
$n->update(
'Widget Attachment Test',
"You clicked the button $count times"
);
$n->show;
}