Tcl-pTk

 view release on metacpan or  search on metacpan

lib/Tcl/pTk/Tree.pm  view on Meta::CPAN

package Tcl::pTk::Tree;
# Tree -- TixTree widget
#
# Derived from Tree.tcl in Tix 4.1
#
# Chris Dean <ctdean@cogit.com>
#
# Converted to Tcl::pTk  John Cerney

our ($VERSION) = ('1.11');

use Tcl::pTk ();
use Tcl::pTk::Derived;
use Tcl::pTk::HList;
use base  qw(Tcl::pTk::Derived Tcl::pTk::HList);
use strict;

Construct Tcl::pTk::Widget 'Tree';

sub Tcl::pTk::Widget::ScrlTree { shift->Scrolled('Tree' => @_) }


       
sub Populate
{
 my( $w, $args ) = @_;

 $w->SUPER::Populate( $args );
 
 # Make the button-1 motion not change the selection. like it does in perl/tk
 $w->call('bind', 'TixHList', '<B1-Motion>', '');

 $w->ConfigSpecs(
        -ignoreinvoke => ['PASSIVE',  'ignoreInvoke', 'IgnoreInvoke', 0],
        -opencmd      => ['CALLBACK', 'openCmd',      'OpenCmd', 'OpenCmd' ],
        -indicatorcmd => ['SELF', 'indicatorCmd', 'IndicatorCmd', [$w, 'IndicatorCmd']],
        -closecmd     => ['CALLBACK', 'closeCmd',     'CloseCmd', 'CloseCmd'],
        -indicator    => ['SELF', 'indicator', 'Indicator', 1],
        -indent       => ['SELF', 'indent', 'Indent', 20],
        -width        => ['SELF', 'width', 'Width', 20],
        -itemtype     => ['SELF', 'itemtype', 'Itemtype', 'imagetext'],
	-foreground   => ['SELF'],
       );
}

sub autosetmode
{
 my( $w ) = @_;
 $w->setmode();
}

sub IndicatorCmd
{
 my( $w, $ent, $event ) = @_;

 my $mode = $w->getmode( $ent );

 if ( $event eq '<Arm>' )
  {
   if ($mode eq 'open' )
    {
     $w->_indicator_image( $ent, 'plusarm' );
    }
   else
    {
     $w->_indicator_image( $ent, 'minusarm' );
    }
  }
 elsif ( $event eq '<Disarm>' )
  {
   if ($mode eq 'open' )
    {
     $w->_indicator_image( $ent, 'plus' );
    }
   else



( run in 0.821 second using v1.01-cache-2.11-cpan-ff9377addf4 )