#!/usr/local/bin/perl -w
use Tk;
require Tk::Text;
{
package Tk::Dwidget;
use base qw(Tk::Frame);
Construct Tk::Widget 'Dwidget';
sub Populate
{
my ($cw,$args) = @_;
$cw->SUPER::Populate($args);
my $w = $cw->Label(-text => 'A Subwidget')->pack;
$cw->Advertise('label' => $w);
$cw->ConfigSpecs(-foreground => [$w,'foreground','Foreground','yellow'],
-background => ['METHOD','background','Background','white']
);
}
sub background
{
# print 'background(',join(',',@_),")\n";
my $w = shift;
if (@_)
{
$w->Subwidget('label')->configure(-background => @_);
}
return $w->Subwidget('label')->cget('-background');
}
}
my $mw = MainWindow->new;
$mw->optionAdd('*Dwidget.Foreground' => 'green');
my $w = $mw->Dwidget(-bg => 'red')->pack;
$w->repeat(5000,sub { my $fg = $w->cget('-fg');
my $bg = $w->cget('-bg');
$w->configure(-fg => $bg, -bg => $fg)});
$w->after(4000,sub {$w->configure(-fg => 'blue')});
MainLoop;