Row tags are pretty straightforward, and work almost like regular tags, except they
affect all columns. What sort of thing are you trying to accomplish? Here is a simple example.
#!/usr/bin/perl
use Tk;
use Tk::TableMatrix;
my $mw = MainWindow->new;
my $arrayVar = {};
print "Filling Array...\n";
my ($rows,$cols) = (10, 10);
foreach my $row (0..($rows-1)){
foreach my $col (0..($cols-1)){
$arrayVar->{"$row,$col"} = "$row,$col";
}
}
print "Creating Table...\n";
## Test out the use of a callback to define tags on rows and columns
sub colSub{
my $col = shift;
return "OddCol" if( $col > 0 && $col%2) ;
}
my $t = $mw->Scrolled('TableMatrix', -rows => $rows, -cols => $cols,
-width => 6, -height => 6,
-titlerows => 1, -titlecols => 1,
-variable => $arrayVar,
-coltagcommand => \&colSub,
-colstretchmode => 'last',
-rowstretchmode => 'last',
-selectmode => 'extended',
-selecttitles => 0,
-drawmode => 'slow',
-scrollbars=>'se'
);
$mw->Button(-text => "Update", -command => \&update_table)
->pack(-side => 'bottom',-anchor => 'w');
# hideous Color definitions here:
$t->tagConfigure('active', -bg => 'white', -relief => 'sunken');
$t->tagConfigure('OddCol', -bg => 'lightyellow', -fg => 'black');
$t->tagConfigure('title', -bg => 'lightblue', -fg => 'black', -relief
+=> 'sunken');
$t->tagConfigure('dis', -state => 'disabled');
$t->pack(-expand => 1, -fill => 'both');
$t->focus;
Tk::MainLoop;
# $t->tagConfigure($anchor, -anchor => $anchor);
# $t->tagRow($anchor, ++$i);
# $t->set( "$i,$first",$anchor);
sub update_table {
print "1\n";
$t->tagCell('dis', '1,1' );
$t->activate('2,2');
$t->tagRow('active',3);
# $t->configure(-padx =>( $t->cget(-padx)));
# a trick needed sometimes to update
}
|