#!/usr/bin/perl use Tk; use warnings; use strict; # Variables for emulators use vars qw($snesCommand $genesisCommand $nesCommand $snesDirectory $nesDirectory $genesisDirectory $opt $system $directory $command); $snesCommand="zsnes"; $genesisCommand="dgen"; $nesCommand="nestra"; $snesDirectory="~/roms/nes/"; $genesisDirectory="~/roms/genesis/Roms/"; $snesDirectory="~/roms/snes/Roms/"; my $mw=MainWindow->new(-title=>"Launcher"); my $systemPick=$mw->Optionmenu(-command=>\&changeList, -variable=>\$system); $systemPick->addOptions("SNES","NES","Genesis"); $opt=$mw->Scrolled("Listbox",-selectmode=>'single', -scrollbars=>"se"); my $go=$mw->Button(-text=>"Go for it", -command=>\&gogo); # Geometry $systemPick->pack(); $opt->pack(-expand=>1,-fill=>"both"); $go->pack(); sub changeList { $opt->delete(0,'end'); if ($system=="SNES") { $command=$snesCommand; $directory=$snesDirectory; my @dir=glob($snesDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } elsif ($system=="NES") { $command=$nesCommand; $directory=$nesDirectory; my @dir=glob($nesDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } elsif ($system=="Genesis") { $command=$genesisCommand; $directory=$genesisDirectory; my @dir=glob($genesisDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } } sub gogo { my $selected=$opt->get($opt->curselection()); system("$command $directory$selected"); } &changeList; MainLoop;