=pod =for advent_year 2010 =for advent_day 03 =for advent_title Seasonal Help =for advent_author Jerrad Pierce Santa doesn't have much work for his computer elves in the off-season, so he recently started contracting them out for the first three quarters of the year. Unfortunately for poor P<2008-13|Gluggagægir> most customers aren't using Unix-family systems. Worse still, he often has to create and support WordPress installations. Glugg was eventually able to convince some clients to A. Of course, the desktops were not Debian and therefore lacked a native S/Key. Of course, being a good perl hack Glugg checked CPAN and found Crypt::SKey, but he needed to find a way to make its functionality accessible to his command prompt fearing Windows users. The GUI Loft to the rescue! Loft provides an intuitive GUI-based GUI designer shown in the screen shot below. With it you can produce a a non-threatening skin for you application with native platform controls based on M. Thanks to WINE, Glugg had a snazzy interface for generating passkeys after a few minutes of banging around with a mouse on his Xm/OS laptop. Finally, he need only implement some event callbacks and his mission to bring security to the masses was complete.
The specification for a Loft application's skin is stored in a small binary file which you can easily load using the Win32::GUI::Loft::Design class, although other methods are available to you. One short-coming of this otherwise easy-as-pie system though, is that A, the filename parameter to newScalar() is not optional. This means it is not possible to inline your Loft design file into F in an attempt to simplify distribution of your program. Another minor peeve is that the position of the application in the window designer is stored in the binary and it serves as default location for the application window when it starts, although one could argue that this is a feature. If you find it a nuisance, you'll have to reposition the window programatically. Finally, it shold be noted that winkey32.exe provides the same functionality as our example script, without all the dependencies/performance hit from PAR. The Gui Loft

otp2.gld

=sourcedcode otp2.pl

otp2.zip

A PARchive of the script, it does not seem to work under WINE though. =cut