#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;
use feature ':5.14';
use Gtk3 '-init';
use Glib qw/TRUE FALSE/;
my $COUNT = 0;
sub message_cb {
my $parent_window = shift;
#my $FirstMsg = 'This action will cause the universe to stop existing.';
$COUNT = $COUNT + 1;
if ($COUNT eq 5) {
$COUNT = 1;
print "----------------------------------------------------------------------\n";
}
my $FirstMsg = "Message Type";
my $SecondMsg = "Info box.";
# Not working
my $messagedialog;
if ($COUNT == 1) {
print "Not working: Gtk3::MessageDialog->new_with_markup\n";
$messagedialog = Gtk3::MessageDialog->new_with_markup($parent_window,
['modal', 'destroy-with-parent'],
'warning',
'ok',
sprintf("$FirstMsg"));
}
# Fix for COUNT 1
else {
if ($COUNT == 2) {
print "Working: Gtk3::MessageDialog->new and set_markup()\n";
}
$messagedialog = Gtk3::MessageDialog->new($parent_window,
['modal', 'destroy-with-parent'],
'warning',
'ok',
undef);
$messagedialog->set_markup(sprintf("$FirstMsg"));
}
if (defined($messagedialog)) {
$messagedialog->signal_connect('response'=>\&dialog_response);
if ($COUNT == 3) {
print "Not working: format_secondary_text()\n";
$messagedialog->format_secondary_text($SecondMsg);
}
elsif ($COUNT == 4) {
print "Not working: format_secondary_markup()\n";
$messagedialog->format_secondary_markup($SecondMsg);
}
$messagedialog->show();
}
}
sub dialog_response {
my ($widget, $response_id) = @_;
$widget->destroy();
}
my $window = Gtk3::Window->new('toplevel');
$window->set_title("Message Test");
$window->set_default_size(200, 50);
$window->set_border_width(20);
$window->signal_connect('destroy'=>sub {Gtk3->main_quit;});
my $button1 = Gtk3::Button->new("Show");
$button1->signal_connect ('clicked'=>sub{\&message_cb($window);});
my $hbox = Gtk3::Box->new("horizontal", 5);
$hbox->pack_start($button1, TRUE, TRUE, 0);
$hbox->set_homogeneous (TRUE);
$window->add($hbox);
$window->show_all;
Gtk3->main;