# # buildfile.pl # # build pure XMLBuilder xml files # use strict; use Win32::GUI::XMLBuilder; use Cwd; use File::Basename; my $__FILE__; our $gui; if (! -f $ARGV[0]) { Win32::GUI::XMLBuilder->new(*DATA); } else { $__FILE__ = basename($ARGV[0]); my $__DIR__ = getcwd."/".dirname($ARGV[0]); chdir($__DIR__) || die "chdir $__DIR__,$!\n"; $gui = Win32::GUI::XMLBuilder->new({file=>$__FILE__}); } Win32::GUI::Dialog; sub loadGUI { $__FILE__ = Win32::GUI::GetOpenFileName( -title => 'Choose XML file...', -directory => '.', -filter => [ "XMLBuilder Files (*,xml, *.wgx)" => "*.xml;*.wgx", "XML (*.xml)" => "*.xml", "WGX (*.wgx)" => "*.wgx", "All files" => "*.*", ], ); &reloadGUI; } sub reloadGUI { if (-f $__FILE__) { foreach (%{$gui}) { $gui->{$_}->DESTROY if ref $gui->{$_} eq 'Win32::GUI::Window'; } undef $gui; $gui = Win32::GUI::XMLBuilder->new({file=>$__FILE__}); } } __END__ $self->{MAIN}->Center;