in reply to How do i select a directory in Tk?

Here is some sample code for DirTree. It prints the dirname with a right click, but you could easily modify it.
#!/usr/bin/perl use strict; use Tk; require Tk::DirTree; #### DEBUG #### $main::DEBUG = 1; # The initial directory my $initial_dir = '/'; # The main window... my $main_window = new MainWindow( -title => 'one test' ); # A scrolled directory tree my $tree = $main_window->Scrolled( 'DirTree', -width => 35, -height => 25, -scrollbars => 'osoe', -background => 'White', -selectmode => 'single', -selectbackground => 'DarkBlue', -selectforeground => 'White', -showhidden => 1, -directory => $initial_dir ); $tree->pack( -expand => 'yes', -fill => 'both', -padx => 2, -pady => 2, -side => 'left' ); # create the menu to be used for poping up my $menu = $main_window->Menu( -tearoff => 0, -menuitems => [ [ 'Button' => 'What?', -command => sub { print STDERR "Item is '", ( $tree->selectionGet() )[0] +, "'\n"; } ] ] ); # Create the binding for the right mouse button $tree->bind( '<Button-3>' => [ sub { my $widget = shift; my $y = shift; my $current_item = $widget->nearest($y); my $previous_item = ( $widget->selectionGet() )[0]; $main::DEBUG and print STDERR "old :", $previous_item, +"\n"; $main::DEBUG and print STDERR "current:", $current_item, +"\n"; # Clear selection and then set it to the new item $widget->selectionClear(); $widget->selectionSet($current_item); ### $$$$ Doesn't work: &destructor never called $menu->OnDestroy( [ \&destructor, $widget, $previous_item +] ); # Displaying the menu... # $menu->Popup( # -popover => 'cursor', # -popanchor => 'nw' # ); $menu->post($widget->pointerxy); destructor($widget, $previous_item); }, Ev('y') ] ); sub destructor { my $widget = shift; my $item = shift; $main::DEBUG and print STDERR "in destructor, item:", $item, "\n"; # Set selection to a particular item... $widget->selectionClear(); $widget->selectionSet($item); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- - - - $tree->waitVisibility(); $tree->selectionSet($initial_dir); MainLoop(); #### program sends above ####################

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