Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

wx::perl::splashfast(3) [osx man page]

SplashFast(3)						User Contributed Perl Documentation					     SplashFast(3)

Wx::Perl::SplashFast - Fast splash screen for the Wx module. SYNOPSIS
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(); DESCRIPTION
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. USAGE
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 ; ... import ( IMG_FILE, SPLASH_TIMEOUT ) IMG_FILE Path of the image file to show. SPLASH_TIMEOUT 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 ); } new ( IMG_FILE , SPLASH_TIMEOUT ) Show the splash screen. IMG_FILE Path of the image file to show. SPLASH_TIMEOUT Timeout of the splash screen in milliseconds. EXAMPLE
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 " ; my $win = myFrame->new() ; $win->Show(1) ; $myApp->SetTopWindow( $win ) ; $myApp->MainLoop(); SEE ALSO
Wx, <Wx:SplashScreen> AUTHOR
Graciliano M. P. <> Thanks to wxWidgets people and Mattia Barbon for wxPerl! :P COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.0 2007-06-18 SplashFast(3)

Check Out this Related Man Page

Wx::Thread(3)						User Contributed Perl Documentation					     Wx::Thread(3)

Thread - using wxPerl with threads SYNOPSIS
# the order of these use()s is important use threads; use threads::shared; use Wx; my $DONE_EVENT : shared = Wx::NewEventType; my $worker = threads->create( &work ); # create frames, etc my $frame = Wx::Frame->new( ... ); EVT_COMMAND( $frame, -1, $DONE_EVENT, &done ); $app->MainLoop; sub done { my( $frame, $event ) = @_; print $event->GetData; } sub work { # ... do stuff, create a shared $result value my $threvent = new Wx::PlThreadEvent( -1, $DONE_EVENT, $result ); Wx::PostEvent( $frame, $threvent ); } # event handler sub OnCreateThread { # @_ = () is necessary to avoid "Scalars leaked" my( $self, $event ) = @_; @_ = (); threads->create( ... ); } DESCRIPTION
Threaded GUI application are somewhat different from non-GUI threaded applications in that the main thread (which runs the GUI) must never block. Also, in wxWidgets, no thread other than the main thread can manipulate GUI objects. This leads to a hybrid model where worker threads must send events to the main thread in order to change the GUI state or signal their termination. Order of module loading It's necessary for "use Wx" to happen after <use threads::shared>. Sending events from worker threads "Wx::PlThreadEvent" can be used to communicate between worker and GUI threads. The event can carry a shared value between threads. my $DONE_EVENT : shared = Wx::NewEventType; sub work { # ... do some stuff my $progress = new Wx::PlThreadEvent( -1, $DONE_EVENT, $progress ); Wx::PostEvent( $frame, $progress ); # ... do stuff, create a shared $result value my $end = new Wx::PlThreadEvent( -1, $DONE_EVENT, $result ); Wx::PostEvent( $frame, $end ); } The target of the event can be any "Wx::EvtHandler" Receiving events from worker threads "Wx::PlThreadEvent" is a command event and can be handled as such. The "->GetData" method can be used to retrieve the shared data contained inside the event. my $DONE_EVENT : shared = Wx::NewEventType; EVT_COMMAND( $frame, -1, $DONE_EVENT, &done ); sub done { my( $frame, $event ) = @_; print $event->GetData; } Creating new threads Creating new threads from event handlers works without problems except from a little snag. In order not to trigger a bug in the Perl interpreter, all event handler that directly or indirectly cause a thread creation must clean @_ before starting the thread. For example: sub OnCreateThread { my( $self, $event ) = @_; @_ = (); threads->create( ... ); } failure to do that will cause "scalars leaked" warnings from the Perl interpreter. perl v5.10.0 2007-04-28 Wx::Thread(3)
Man Page