FastSplash(3p)        User Contributed Perl Documentation       FastSplash(3p)



NAME
       Tk::FastSplash - create a fast starting splash screen

SYNOPSIS
           BEGIN {
               require Tk::FastSplash;
               $splash = Tk::FastSplash->Show($image, $width, $height, $title,
                                          $overrideredirect);
           }
           ...
           use Tk;
           ...
           $splash->Destroy if $splash;
           MainLoop;

DESCRIPTION
       This module creates a fast loading splash screen for Perl/Tk programs.
       It uses lowlevel Perl/Tk stuff, so upward compatibility is not given
       (the module should work at least for Tk800.015, .022, .024, .025 and
       Tk804.025, but does not work with newer ActivePerl versions).

       The splash screen is created with the Show function. Supplied arguments
       are: filename of the displayed image, width and height of the image and
       the string for the title bar. $width and $height may be left undefined.
       If $overrideredirect is set to a true value, then the splash screen
       will come without window manager decoration. If something goes wrong,
       then Show will silently ignore all errors and continue without a splash
       screen. The splash screen can be destroyed with the Destroy method,
       best short before calling MainLoop.

       If you want to run this module on a Tk402.xxx system, then you have to
       set the variable $Tk::FastSplash::TK_VERSION to a value less than 800.

       $image should be one of the core Perl/Tk image types (gif, ppm, bmp).
       For jpegs and pngs, a "use Tk::JPEG" or "use Tk::PNG" prior to the call
       of the "Show" method would be necessary, but calling one of these two
       would slurp the whole Tk module in, making the point of FastSplash
       useless.

CAVEAT
       This module does forbidden things e.g. bootstrapping the Tk shared
       object or poking in the Perl/Tk internals. Because of this, this module
       can stop working in a new Perl/Tk release. If you are concerned about
       compatibility, then you should use Tk::Splash instead. If your primary
       concern is speed, then "Tk::FastSplash" is for you (and the primary
       reason I wrote this module). The splash window of "Tk::FastSplash"
       should pop up 1 or 2 seconds faster than using Tk::Splash or a vanilla
       Tk::Toplevel window.

BUGS
       Probably many.

       If used with newer ActivePerl (e.g. build 811), then it is possible
       that the application becomes unusable by using strange characters.

       You cannot call "Tk::FastSplash" twice in one application.

       The $^W variable should be turned off until the "use Tk" call.

       If FastSplash is executed in a BEGIN block (which is recommended for
       full speed), then strange things will happen when using "perl -c" or
       trying to compile a script: the splash screen will always pop up while
       doing those things. Therefore it is recommended to disable the splash
       screen in check or debug mode:

           BEGIN {
               if (!$^C && !$^P) {
                   require Tk::FastSplash;
                   $splash = Tk::FastSplash->Show($image, $width, $height, $title,
                                                  $overrideredirect);
               }
           }

       The -display switch is not honoured (but setting the environment
       variable DISPLAY will work).

       XXX Avoid Win32 raise/lower problem with this code (maybe)?

           # Windows constants
           my ($ONTOP, $NOTOP, $TOP) = (-1, -2, 0);
           my ($SWP_NOMOVE, $SWP_NOSIZE) = (2, 1);

           my $SetWindowPos        = new Win32::API("user32", "SetWindowPos", 'NNNNNNN', 'N');
           my $FindWindow          = new Win32::API("user32", "FindWindow", 'PP', 'N');

           # Reestablish Z order
           my $class = "TkTopLevel";
           my $topHwnd = $FindWindow->Call($class, $w->title);
           $topHwnd and $SetWindowPos->Call($topHwnd, $ONTOP, 0, 0, 0, 0, $SWP_NOMOVE | $SWP_NOSIZE);

AUTHOR
       Slaven Rezic (slaven@rezic.de)

SEE ALSO
       Tk::Splash, Tk::ProgressSplash, Tk::Splashscreen, Tk::mySplashScreen.



perl v5.12.2                      2005-08-25                    FastSplash(3p)
