Hi I have the following script (copied fairlay verbatim from gtk2-perl tutorial) and I cant seem to get the value out of the show_chooser sub-routine. It prints to the shell but doesnt seem to want to go any where else.
I must be missing something simple. Any help appreciated #!/usr/bin/perl use Gtk2 '-init'; use strict; use warnings; my $window=Gtk2::Window->new('toplevel'); $window -> signal_connect ('delete_event' => sub { Gtk2->main_quit;}); my $filename; my $filename1; sub ret_vbox { my $vbox=Gtk2::VBox->new(0,5); my $frm_file_chooser_btn = Gtk2::Frame->new('Gtk2::FileChooserButton'); $frm_file_chooser_btn->set_border_width(5); my $hbox_frm_file_chooser_btn = Gtk2::HBox->new(0,1); $hbox_frm_file_chooser_btn->set_border_width(5); my $fc_btn_file=Gtk2::FileChooserButton->new ('select a file', 'open'); $hbox_frm_file_chooser_btn->pack_start($fc_btn_file,1,1,6); my $fc_btn_folder=Gtk2::FileChooserButton->new ('select a directory', 'select-folder'); $hbox_frm_file_chooser_btn->pack_start($fc_btn_folder,1,1,6); $frm_file_chooser_btn->add($hbox_frm_file_chooser_btn); $vbox->pack_start($frm_file_chooser_btn,0,0,6); my $frm_file_chooser_dialog = Gtk2::Frame->new('Gtk2 File Chooser Incarnations'); my $hbox_f1_chooser_dialog = Gtk2::HBox->new(0,5); $hbox_f1_chooser_dialog->set_border_width(10); my $btn_open = Gtk2::Button->new('_Open'); $btn_open->signal_connect('clicked' => sub {show_chooser('File Chooser Type Open','open')}); $hbox_f1_chooser_dialog->pack_start($btn_open,1,1,6); my $btn_save = Gtk2::Button->new('_Save'); $btn_save->signal_connect('clicked' => sub {show_chooser('File Chooser Type Save','save')}); $hbox_f1_chooser_dialog->pack_start($btn_save,1,1,6); my $btn_select_folder = Gtk2::Button->new('S_elect Folder'); $btn_select_folder->signal_connect('clicked' => sub {show_chooser('File Chooser Type Select Folder','select-folder')}); $hbox_f1_chooser_dialog->pack_start($btn_select_folder,1,1,6); my $btn_create_folder = Gtk2::Button->new('_Create Folder'); $btn_create_folder->signal_connect('clicked' => sub {show_chooser('File Chooser Type Create Folder','create-folder')}); $hbox_f1_chooser_dialog->pack_start($btn_create_folder,1,1,6); my $test=$show_chooser::filename; $vbox->add($hbox_f1_chooser_dialog); my $frame = Gtk2::Frame->new(); #my $filename2=$show_chooser::filename1; #my $label= Gtk2::Label->new ($filename2); #$frame->add($label); #$vbox->add($frame); $vbox -> show_all(); #print $filename1; return $vbox; } sub show_chooser { my ($heading,$type) = @_; my $file_chooser =Gtk2::FileChooserDialog->new ( $heading,undef,$type,'gtk-cancel' => 'cancel','gtk-ok' => 'ok' ); ($type eq 'save')&&($file_chooser->set_current_name("tux.kom")); if ('ok' eq $file_chooser->run){$filename = $file_chooser-> get_filename; print "filename $filename\n"; my $filename1 = $filename; # this prints } #print $filename1; $file_chooser->destroy; if (defined $filename) { if ((-f $filename)&&($type eq 'save')) { my $overwrite = show_message_dialog ($window,'question','Overwrite existing file:'."<b>\n$filename</b>",'yes-no'); return if ($overwrite eq 'no'); } return $filename; 1; #print $show_chooser::filename1; } return $filename; print $filename; #shell says no value } sub show_message_dialog { my ($parent,$icon,$text,$button_type) = @_; my $dialog = Gtk2::MessageDialog->new_with_markup ($parent, [qw/modal destroy-with-parent/],$icon,$button_type,sprintf "text"); my $retval = $dialog->run; $dialog->destroy; return $retval; } #my $label=Gtk2->new ($filename); #$filename1=show_chooser; $window->add(&ret_vbox); $window->show(); Gtk2->main(); 0; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>