| Wx documentation | Contained in the Wx distribution. |
Wx::Perl::SplashFast - Fast splash screen for the Wx module.
use Wx::Perl::SplashFast ('/path/to/logo.jpg',3000);
# timeout in milliseconds
package myApp ;
# subclass Wx::App ...
package myFrame;
# subclass Wx::Frame ...
package main;
my $myApp = myApp->new();
my $frame = myFrame->new();
$myApp->MainLoop();
Using Wx::SplashScreen from Wx::App::OnInit may cause a high delay before the splash screen is shown on low end machines.
This module works around this limitation; you just need to follow the example.
Just put the code inside the 'BEGIN {}' of your main app, like:
sub BEGIN {
use Wx::Perl::SplashFast ;
Wx::Perl::SplashFast->new("./logo.jpg",5000);
}
or load the module before any other:
use Wx::Perl::SplashFast ("./logo.jpg",5000) ;
use Wx ;
...
Path of the image file to show.
Timeout of the splash screen in milliseconds.
If you use Wx::Perl::SplashFast './logo.jpg', 1000; this has the same
affetc as.
BEGIN {
require Wx::Perl::SplashFast;
Wx::Perl::SplashFast->new( './logo.jpg', 1000 );
}
Show the splash screen.
Path of the image file to show.
Timeout of the splash screen in milliseconds.
use Wx::Perl::SplashFast ("./logo.jpg",5000) ;
# Don't forget to put your own image in the same path. Duh
package myApp ;
use base 'Wx::App';
sub OnInit { return(@_[0]) ;}
package myFrame ;
use base 'Wx::Frame';
use Wx qw( wxDEFAULT_FRAME_STYLE );
sub new {
my $app = shift ;
my( $frame ) = $app->SUPER::new( @_[0] , -1, 'wxPerl Test' ,
[0,0] , [400,300] ) ;
return( $frame ) ;
}
package main ;
use Wx ;
my $myApp = myApp->new() ;
print "window\n" ;
my $win = myFrame->new() ;
$win->Show(1) ;
$myApp->SetTopWindow( $win ) ;
$myApp->MainLoop();
Graciliano M. P. <gm@virtuasites.com.br> Thanks to wxWidgets people and Mattia Barbon for wxPerl! :P
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Wx documentation | Contained in the Wx distribution. |
############################################################################# ## Name: ext/pperl/splashfast/SplashFast.pm ## Purpose: Wx::Perl::SplashFast -> Show a splash before loading Wx. ## Author: Graciliano M. P. ## Modified by: ## Created: 30/06/2002 ## RCS-ID: $Id: SplashFast.pm 2723 2009-12-25 17:35:15Z mbarbon $ ## Copyright: (c) 2002-2006, 2009 Graciliano M. P. ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# use strict; package Wx::Perl::SplashFast ; use vars qw($VERSION) ; $VERSION = '0.02'; # for wxPerl 0.15+ sub import { Wx::Perl::SplashFast::new(@_) if @_ > 1; } sub new { my $class = shift; Wx::Perl::SplashFast::App->new() ; Wx::InitAllImageHandlers() ; my $dummy; my $any = Wx::constant( 'wxBITMAP_TYPE_ANY', 0, $dummy ); my $spl_c = Wx::constant( 'wxSPLASH_CENTRE_ON_SCREEN', 0, $dummy ); my $spl_ti = Wx::constant( 'wxSPLASH_TIMEOUT', 0, $dummy ); my $bitmap = Wx::Bitmap->new( $_[0], $any ); my $splash = Wx::SplashScreen->new( $bitmap , $spl_c|$spl_ti , $_[1] || 1000 , undef , -1 ); return $splash ; } ################### # SPLASHFAST::APP # ################### # Ghost package for your APP. use Wx::App; package Wx::Perl::SplashFast::App ; use vars qw(@ISA) ; @ISA = qw(Wx::App) ; sub OnInit { return 1 } ############################################################################### ## WX BASICS: ################################################################# ############################################################################### use Wx::Mini; Wx::_start(); ####### # END # ####### 1; __END__
# Local variables: # # mode: cperl # # End: #