From OrganicDesign Wiki
# Not done yet
# Interface requirements
use SWF::Builder; # PPM Install: SWF-Builder
use Image::Magick; # ImageMagick-6.2.3-0-Q16-windows-dll.exe
use SDL; # ppm install http://www.broadwell.org/dl/ppm/5.8/win32/SDL_perl.ppd
use SDL::App;
use SDL::Constants;
use SDL::Surface;
use SDL::Rect;
use SDL::OpenGL;
use SDL::Event;
use SDL::Cursor;
my $menu = new SDL::Surface -name => 'data/menu.png';
my $app = new SDL::App -w => $menu->width(), -h => $menu->height(), -resizeable => 1;
my $hilight = new SDL::Surface -name => 'data/highlight.png';
my %menu = (
start => [ 115, 30, 160, 40 ],
help => [ 120, 100, 120, 40 ],
giveup => [ 120, 230, 120, 40 ],
spawnserver => [ 115, 170, 165, 40 ],
credits => [ 115, 285, 160, 40 ],
);
my %events = (
SDL_MOUSEMOTION() => sub {
my ($e) = @_;
drawMenu($app,
$e->motion_x(),
$e->motion_y(),
$menu,
$hilight,
%menu);
},
SDL_MOUSEBUTTONUP() => sub {
my ($e) = @_;
my $routine = drawMenu($app,
$e->motion_x(),
$e->motion_y(),
$menu,
$hilight,
%menu);
&{$routine} if ($routine);
},
SDL_QUIT() => sub { exit(0); },
SDL_KEYDOWN() => sub {
my ($e) = @_;
exit(0) if ($e->key_sym() == SDLK_ESCAPE);
},
);
}