#!/usr/bin/perl -- #!D:\Strawberry\perl\bin\perl.exe ## ## ## perltidy -olq -csc -csci=10 -cscl="sub : BEGIN END if while for " -otr -opr -ce -nibc -i=4 -pt=0 "-nsak=*" #!/usr/bin/perl -- use strict; use warnings; use diagnostics; use Tk; use Tk::ROText; my $mw = tkinit( -background => '#990033' ); my $sw = $mw->screenwidth; #1920 my $sh = $mw->screenheight; #1080 my $frame_width = $sw * 0.108; print "\$sw : $sw\n\$frame_width : $frame_width\n"; my $frame = $mw->Frame(); #~ my $txt = $frame->ROText( my $txt = $frame->Scrolled( 'ROText', -width => $frame_width, -height => 22, -font => "{sans serif} 10", -background => 'lightgray' ); Enter_labels_in_textarea( $txt->Subwidget('scrolled'), enter_values( $frame_width ) ); $txt->insert('end', "\n\n\n\n".rand."\n" ); $frame->pack(qw/ -expand 1 -fill both /); $txt->pack(qw/ -expand 1 -fill both /); #~ $txt->grid( -row => 9, -column => 1 ); #~ $txt-> $mw->WidgetDump; MainLoop(); exit( 0 ); sub Enter_labels_in_textarea { my( $rotext, $enter_values ) = @_; foreach my $val (@$enter_values) { my( $text, @options ) = @$val; my $label = $txt->Label( -foreground => 'white', -font => 10, -height => 1, -cursor => 'leftbutton', -relief => 'raised', -justify => 'left', -text => $text, @options, ); $rotext->windowCreate( 'end', -window => $label , ); print "$label $text @options\n"; } } sub enter_values { my( $frame_width ) = @_; return [ [ 1, -background => 'navyblue', -width => ( $frame_width * ((2+length '1') /100) ) ], [ 'NAME', -background => '#990033', -width => ( $frame_width * 0.16 ), ], [ 'AGE', -background => '#990033', -width => ( $frame_width * ((2+length 'AGE') /100) ), ], [ 'PROFESSION', -background => '#990033', -width => ( $frame_width * ((2+length 'PROFESSION')/100) ), ], [ 'CONTACT', -background => '#FF0000', -width => ( $frame_width * 0.16 ), ], [ 'ADDRESS', -background => 'darkgreen', -width => ( $frame_width * 0.24 ), ], ]; }