#!/usr/bin/perl -w use strict; use Tk; use Tk::LabFrame; use Tk::Pane; my $self = {}; $self->{'mw'} = tkinit(); my $fr_lframe = $self->{'mw'}->LabFrame(-label => 'Friends') ->pack(-side => 'bottom', -fill => 'x'); $self->{'wgt'}->{'fr_frame'} = $fr_lframe->Scrolled('Frame', -scrollbars => 'oe', -background => 'red', -sticky => 'nsew') ->pack(-side => 'top', -fill => 'both', -expand => 1); update_friends($self, 'list#test_user#freddy#erik#klaus#dieter#peter'); MainLoop; sub update_friends { my $self = shift; my $msg = shift; if ($msg =~ /^list#(.*)/) { my @friend_list = sort split /#/, $1; $self->{'wgt'}->{'fr_frame'}->gridPropagate(0); my ($row, $col) = (0, 0); for my $friend (@friend_list) { print "R: $row | C: $col\n"; $self->{'wgt'}->{'fr_frame'}->gridRowconfigure($row, -weight => 1); $self->{'wgt'}->{'fr_frame'}->Label(-text => "- $friend", -font => 'Arial 7.5', -foreground => 'blue', -justify => 'left') ->grid(-row => $row, -column => $col++, -sticky => 'ew'); if ($col > 1) { $col = 0; $row++; } } $self->{'wgt'}->{'fr_frame'}->gridColumnconfigure(0, -weight => 1); $self->{'wgt'}->{'fr_frame'}->gridColumnconfigure(1, -weight => 1); } }