home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Editores / Perl5 / perl / lib / site / auto / Tk / Frame / packscrollbars.al < prev    next >
Encoding:
Text File  |  1997-08-10  |  2.1 KB  |  83 lines

  1. # NOTE: Derived from blib\lib\Tk\Frame.pm.  Changes made here will be lost.
  2. package Tk::Frame;
  3.  
  4. sub packscrollbars
  5. {
  6.  my ($cw) = @_;
  7.  my $opt    = $cw->cget('-scrollbars');
  8.  my $slice  = $cw->Subwidget('ysbslice');
  9.  my $xsb    = $cw->Subwidget('xscrollbar');
  10.  my $corner = $cw->Subwidget('corner');
  11.  my $w      = $cw->Subwidget('scrolled');
  12.  my $xside  = (($opt =~ /n/) ? 'top' : 'bottom');
  13.  my $havex  = 0;
  14.  my $havey  = 0;
  15.  $opt =~ s/r//;
  16.  $cw->{'pack_pending'} = 0;
  17.  if (defined $slice)
  18.   {
  19.    my $reqy;
  20.    my $ysb    = $cw->Subwidget('yscrollbar');
  21.    if ($opt =~ /(o)?[we]/ && (($reqy = !defined($1)) || $ysb->Needed))
  22.     {
  23.      my $yside = (($opt =~ /w/) ? 'left' : 'right');  
  24.      $slice->pack(-side => $yside, -fill => 'y',-before => $slice->{'before'});
  25.      $havey = 1;
  26.      if ($reqy)
  27.       {
  28.        $w->configure(-yscrollcommand => ['set', $ysb]);
  29.       }
  30.      else
  31.       {
  32.        $w->configure(-yscrollcommand => ['sbset', $cw, $ysb, \$cw->{'packysb'}]);
  33.       }
  34.     }
  35.    else
  36.     {
  37.      $w->configure(-yscrollcommand => undef) unless $opt =~ s/[we]//;
  38.      $slice->packForget;
  39.     }
  40.    $cw->{'packysb'} = $havey;
  41.   }
  42.  if (defined $xsb)
  43.   {
  44.    my $reqx;
  45.    if ($opt =~ /(o)?[ns]/ && (($reqx = !defined($1)) || $xsb->Needed))
  46.     {
  47.      $xsb->pack(-side => $xside, -fill => 'x',-before => $xsb->{'before'});
  48.      $havex = 1;
  49.      if ($reqx)
  50.       {
  51.        $w->configure(-xscrollcommand => ['set', $xsb]);
  52.       }
  53.      else
  54.       {
  55.        $w->configure(-xscrollcommand => ['sbset', $cw, $xsb, \$cw->{'packxsb'}]);
  56.       }
  57.     }
  58.    else
  59.     {
  60.      $w->configure(-xscrollcommand => undef) unless $opt =~ s/[ns]//;
  61.      $xsb->packForget;
  62.     }
  63.    $cw->{'packxsb'} = $havex;
  64.   }
  65.  if (defined $corner)
  66.   {
  67.    if ($havex && $havey && defined $corner->{'before'})
  68.     {
  69.      my $anchor = $opt;
  70.      $anchor =~ s/o//g;
  71.      $corner->configure(-height => $xsb->ReqHeight);
  72.      $corner->pack(-before => $corner->{'before'}, -side => $xside, 
  73.                    -anchor => $anchor, -fill => 'x');
  74.     }
  75.    else
  76.     {
  77.      $corner->packForget;
  78.     }
  79.   }
  80. }
  81.  
  82. 1;
  83.