#! /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;