use Tk; use Tk::Dialog; use Tk::TableMatrix; my $mw = MainWindow->new; $mw->minsize(600, 300); # minimum size of main window in pixels my $textfont = '-*-Helvetica-Medium-R-Normal--*-140-*-*-*-*-*-*'; my $arrayVar = {}; while () { my $i = $. - 1; /^([^\t]*)\t([^\t]*)/; $arrayVar->{"$i,0"} = "$1"; $arrayVar->{"$i,1"} = "$2"; } my $t = $mw->Scrolled('TableMatrix', -scrollbars => "osoe", -font => $textfont, -resizeborders => 'none', -rows => 3, -cols => 2, -wrap => 1, -rowheight => 4, -variable => $arrayVar, -colstretchmode => 'all', ); my $buttexit = $mw->Button( -text => "Exit", -command => sub{ $mw->destroy}); my $buttinfo = $mw->Button( -text => "View cellinfo", -command => sub{ my $cursorpos = $t->icursor(); my $activecont = $t->get(active); my $activeindex = $t->index('active'); my $linebreak; if ($activecont =~ /\n/) {$linebreak = "found"} else {$linebreak = "not found"}; $mw->Dialog( -title => 'Info', -text => "current cell contains:\n\n$activecont\n\nindex of active cell: $activeindex\nCursor position within cell: $cursorpos\n\nLine break $linebreak", -default_button => 'OK', -buttons => ['OK'] )->Show( ); }); $t->pack(-expand => 1, -fill => 'both'); $buttexit->pack(-expand => 1, -fill => 'both'); $buttinfo->pack(-expand => 1, -fill => 'both'); Tk::MainLoop; __DATA__ this is a relatively long string that will probably end up displayed on two lines if the window isn't wide enough blabla foo bar tralla lalala