Tk- getOpenFile sticks on W2K server

M

MoshiachNow

HI,

It works nicely on my XP,but sticks on W2K.

Any suggestion for a better fileselct for Tk,or how to use getOpenFile
on W2k ?

Thanks
 
Z

zentara

HI,

It works nicely on my XP,but sticks on W2K.

Any suggestion for a better fileselct for Tk,or how to use getOpenFile
on W2k ?

Thanks


Did you look at the requirements for ActiveStatePerl ( assuming that
is what you are using)? W2k needs to be at Service Pack 5+.

You can always write your own, like:

#!/usr/bin/perl
use strict;
use Tk;
require Tk::DirTree;
require Tk::Adjuster;
require Tk::TList;

# The initial directory
my $initial_dir = '/';

# The main window...
my $main = new MainWindow( -title => 'Explorer)' );

# A frame for the tree, adjuster and tlist
my $tree_adj_tablist = $main->Frame();
$tree_adj_tablist->pack(
-expand => 'yes',
-fill => 'both',
-side => 'top'
);

# A scrolled directory tree
my $tree = $tree_adj_tablist->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'
);

# An adjuster
my $adjuster = $tree_adj_tablist->Adjuster(
-widget => $tree,
-side => 'left'
);
$adjuster->pack( -side => 'left', -fill => 'y' );

# A scrolled tab_list widget
my $tab_list = $tree_adj_tablist->Scrolled(
'TList',
-background => 'White',
-orient => 'vertical',
-selectmode => 'extended',
-scrollbars => 'os'
);
$tab_list->pack(
-expand => 'yes',
-fill => 'both',
-padx => 2,
-pady => 2,
-side => 'right'
);


# Ok button
my $ok = $main->Button(
-text => 'Ok',
-underline => 0,
-width => 4,
-command => sub { my $selected = $tab_list->info('selection');
#print "@{$selected}\n";
foreach( @{$selected} ){
print $tab_list->entrycget($_, '-text'),"\n";
}
})->pack( -side => 'right', -padx => 10, -pady => 10 );


# A Quit button (will be suppressed???...)
my $quit = $main->Button(
-text => 'Quit',
-underline => 0,
-width => 6,
-command => sub { exit }
);
$quit->pack( -side => 'right', -padx => 10, -pady => 10 );

# Configuring tree and tab_list widgets...
$tree->configure( -browsecmd => sub { list_dir( $tab_list, @_ ); } );

# We list the content of the initial dir inside the tab_list
list_dir( $tab_list, $initial_dir );

MainLoop();

#----------------------------------------------------------------------------

# Displays Dirs and files in TList widget
sub list_dir {
my ( $tab_list, $path ) = @_;

# Erase the TList content
$tab_list->delete( 0, 'end' );

opendir MY_DIR, $path or return;

foreach my $file ( sort readdir(MY_DIR) ) {

# Do not display '.' and '..'
next if ( $file eq '.' or $file eq '..' );

# Insert the files in the TList
$tab_list->insert( 'end', -text => $file );
}
closedir MY_DIR;
}

__END__
 
M

MoshiachNow

# The initial directory
my $initial_dir = '/';


How do I cause the browser to see all disks from the top,not only my
current disk ?
Thanks
 
Z

zentara

# The initial directory
my $initial_dir = '/';


How do I cause the browser to see all disks from the top,not only my
current disk ?
Thanks

Well I use linux, and '/' is the top. All other disks have to be mounted
somewhere on /.

If you are using Windows, I don't know how they do it.
 
D

David Harmon

On Tue, 26 Sep 2006 10:20:05 GMT in comp.lang.perl.misc, zentara
Well I use linux, and '/' is the top. All other disks have to be mounted
somewhere on /.

If you are using Windows, I don't know how they do it.

use Win32API::File ("getLogicalDrives");
@roots= getLogicalDrives()
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top