#!/usr/bin/perl -w use Tk; use strict; use warnings; use English; my $initialdir; if ($OSNAME =~ /win/i){ $initialdir = 'C:\temp'; } if ($OSNAME =~ /linux|unix|bsd/i){ $initialdir = '/tmp'; } my $main = new MainWindow; my $menubar = $main->Frame(-relief=>"raised", -borderwidth=>2); my $filebutton = $menubar->Menubutton( -text=>"File", -underline => 0 ); my $filemenu = $filebutton->Menu(); $filebutton->configure( -menu=>$filemenu ); $filemenu->command( -command => \&open_choice, -label => "Open...", -underline => 0 ); $filemenu->command( -command => \&save_choice, -label => "Save...", -underline => 0 ); $filemenu->separator; $filemenu->command( -label => "Exit", -command => \&exit_choice, -underline => 1 ); my $helpbutton = $menubar->Menubutton( -text=>"Help", -underline => 0 ); $filebutton->pack( -side=>"left" ); $helpbutton->pack( -side=>"right" ); $menubar->pack( -side=>"top", -fill=>"x" ); MainLoop; sub open_choice { my $filename = $main->getOpenFile( -defaultextension => "cnf", -filetypes => [ ['Configuration Files','.cnf'], ['All Files','*'] ], -initialdir=> $initialdir, ); return unless $filename; print "Open file $filename\n"; } sub save_choice { my $filename = $main->getSaveFile( -defaultextension => "cnf", -filetypes => [ ['Configuration Files','.cnf'], ['All Files','*'] ], -initialdir => $initialdir, ); return unless $filename; }