use strict; use warnings; use Tk; use Tk::TableMatrix; require Tk::Dialog; my $mw = Tk::MainWindow->new; $mw->geometry('1000x800'); # TableMatrix my $t = $mw->Scrolled('TableMatrix', -rows => 500, -cols => 1, -colwidth => -500, -scrollbars => 'e' )->pack(-expand => 1, -fill => 'both');; my $width = $t->colWidth(0); # print "\ncolumn width: $width\n"; $width = $width * -1; my $heightwin = $mw->Toplevel(-title => 'Height set window'); $heightwin->geometry("${width}x1000-2000-2000"); my $twtest = $heightwin->Text(-wrap=>'word', -width=> $width)->pack(-expand=> 1, -fill=>'both'); $mw -> focus; my @tw; while () { my $i = $. - 1; chomp; # $tw[$i] = $heightwin->Text(-wrap=>'word', -width=> $width)->pack(-expand=> 1, -fill=>'both'); $twtest->delete('0.0','end'); $twtest->insert('end', $_); my $endidx = $twtest->index('end - 1 chars'); # print "end index: $endidx\n"; $twtest->update; my @dline = $twtest->dlineinfo($endidx); my $high = -1 * ($dline[1] + 17); #do customize '+ 17' based on font size # print "\nSetting height of row $i to $high\n"; $t->rowHeight($i, $high); $tw[$i] = $mw->Text(-wrap=>'word', )->pack(qw/ -expand 1 -fill both /); $tw[$i]->insert('end', "$i - $_"); $t->windowConfigure("$i,0", -window => $tw[$i]); # -sticky => 's', #put the Text widget in the tablematrix table } $heightwin->destroy; MainLoop; __DATA__ The general budget 1. The Head of the Agency shall provide the Steering Board by 30 June each year with an overall estimate of the draft general budget for the following year, fully respecting the limits set down in the financial framework. 2. The Head of the Agency shall propose the draft general budget to the Steering Board by 30 September each year. The draft shall include: (a) the appropriations deemed necessary: (i) to cover the Agency's running, staffing and meeting costs; (ii) for procuring external advice, notably operational analysis, essential for the Agency to discharge its tasks, and for specific research and technology activities for the common benefit of all participating Member States, notably technical case-studies and pre-feasibility studies; (b) a forecast of the revenue needed to cover expenditure. 3. The Steering Board shall aim to ensure that the appropriations referred to in paragraph 2(a)(ii) shall represent a significant share of the total appropriations referred to in paragraph 2. These appropriations shall reflect actual needs and shall allow for an operational role for the Agency. 4. The draft general budget shall be accompanied by a detailed staff establishment plan and detailed justifications. 5. The Steering Board, acting by unanimity, may decide that the draft general budget shall furthermore cover a particular project or programme where this is clearly for the common benefit of all participating Member States. 6. The appropriations shall be classified in titles and chapters grouping expenditure together by type or purpose, subdivided as necessary into articles. 7. Each title may include a chapter entitled «provisional appropriations» . These appropriations shall be entered where there is uncertainty, based on serious grounds, about the amount of appropriations needed or the scope for implementing the appropriations entered.