################################################ # Custom loader for Wx distribution from # http://www.wxperl.co.uk/repository # ################################################ package Wx::Loader::Custom; use strict; use warnings; our @ISA = qw( Wx::Loader::Standard ); $Wx::wx_binary_loader = __PACKAGE__ if !$Wx::wx_binary_loader; sub loader_info { 'Linux PPM Distribution from http://www.wxperl.co.uk/repository'; } our $_library_extension = '.0'; sub boot_overload { my $package = shift; require DynaLoader; for my $dll ( qw( base core adv ) ) { if(my $file = $package->library_path($dll) ) { my $libref = DynaLoader::dl_load_file($file, 0); push(@DynaLoader::dl_librefs,$libref) if $libref; } } return 0; } #--------------------------------------------------------- # Allow legacy packaging call to override our load method #--------------------------------------------------------- my( $load_fun ) = ( \&_load_dll ); sub _load_dll { my $dllpath = __PACKAGE__->library_path($_[0]); return ( $dllpath ) ? Wx::_load_plugin( $dllpath ) : 0; } sub external_set_load { $load_fun = $_[1] } sub load_dll { shift; goto &$load_fun; } #--------------------------------------------------------- # Extra methods #--------------------------------------------------------- sub library_path { my($class, $libraryid) = @_; return undef unless exists $Wx::dlls->{$libraryid} && $Wx::dlls->{$libraryid}; my $file = ( $Wx::wx_path ) ? $Wx::wx_path . '/' . $Wx::dlls->{$libraryid} : $Wx::dlls->{$libraryid}; $file .= $_library_extension; return $file; } 1;