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