http://www.perlmonks.org?node_id=997995


in reply to Tk::AbstractCanvas problem

My problem is that when the number of nodes are a bit high the canvas adjusts the node sized in some weird way

Can you show a minimal code example? Your problem description is quite vague.

How can I make a small view of my whole Graph Layout window which I can use as a control widget

You could take a screenshot of the whole canvas, with bbox('all'), then resize it smaller, along with hash which correlates the reduced coordinates to the larger one. Then bind the mouse to the smaller image to constantly get its coordinates, when the mouse enters it.

Here is how to capture the whole canvas.

#!/usr/bin/perl use Tk; #to change the background color, edit the ps file # 0.000 0.000 0.000 setrgbcolor AdjustColor # fill $width = 800; $height = 500; my $main = MainWindow->new(); my $canvas = $main->Canvas( -width=>$width, -height=>$height, -background=>"black"); $canvas->pack( -expand=>1,-fill=>'both'); &create; $canvas->update; $main->update; $main->Button( -text => "Save", -command => [sub { $canvas->update; my @capture=(); my ($x0,$y0,$x1,$y1)=$canvas->bbox('all'); @capture=('-x'=>$x0,'-y'=>$y0,-height=>$y1-$y0,-width=>$x1-$x +0); $canvas -> postscript(-colormode=>'color', -file=>$0.'.ps', -rotate=>0, -width=>800, -height=>500, @capture); } ] )->pack; MainLoop; sub create{ $canvas->createOval(100, 100, 600, 600,-fill=>'green') }

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh