package Tk::CanvasG; require Tk::Frame; @ISA = qw(Tk::Frame); Construct Tk::Widget 'CanvasG'; use strict; use warnings 'all'; use vars qw($VERSION); $VERSION = '0.1.0'; use Data::Dumper; # # create the widget # sub Populate { my($frame, $args) = @_; # get widget specific options my $bg = delete $args->{-fieldbackground} || delete $args->{-background} || "black"; my $fg = delete $args->{-fieldforeground} || delete $args->{-foreground} || "lightgreen"; # Populate Frame $frame->SUPER::Populate($args); # create advertised widget: Canvas print Dumper($bg, $fg); my $canvas = $frame -> Canvas (-background => $bg)->pack (-fill => "both", -expand => 1); $frame -> Advertise ('canvas' => $canvas); # delegates to frame $frame -> Delegates (DEFAULT => $frame); # configure to canvas $frame -> ConfigSpecs ('-fieldbg' => '-fieldbackground', '-fieldfg' => '-fieldforeground', -fieldbackground => ["PASSIVE", "", "", "#000000"], -fieldforeground => ["PASSIVE", "", "", "#1fff1f"], DEFAULT => [$canvas]); } # Populate # return true 1; __END__