A better test would be a simple one.
#! /usr/bin/env perl
use strict;
use warnings;
use Wx ':everything';
use Wx::Event ':everything';
my $window = Wx::Frame->new(undef, wxID_ANY, $0);
my $panel = Wx::Panel->new($window);
my $toggle = Wx::Button->new($panel, wxID_ANY, "&Toggle");
my $status = $window->CreateStatusBar(2, wxSB_RAISED);
$status->SetStatusText("foo", 0);
$status->SetStatusText("bar", 1);
my $warning = Wx::StaticText->new($status, wxID_ANY, "warning");
$warning->SetBackgroundColour(Wx::Colour->new('yellow'));
$warning->SetForegroundColour(Wx::Colour->new('red'));
sub fit_warning { $warning->SetSize($status->GetFieldRect(0)) }
EVT_SIZE($status, \&fit_warning);
EVT_BUTTON($toggle, $toggle, sub {
unless ($warning->IsShown) {
$warning->SetLabel(scalar localtime);
fit_warning();
$warning->Show;
} else {
$warning->Hide;
}
});
$warning->Hide;
$window->Show;
Wx::SimpleApp->new->MainLoop;