Re: help with gif in XRC file

Steve Cookson - gmail <[email protected]> Mon, 04 May 2015 13:32:57 -0300
Newsgroups gmane.comp.lang.perl.wxperl
Message-ID <[email protected]>
Hi Francois,

I don't recall the your installation was sooo painless!

Is the .gif path correct?  It looks kinda short.

Steve.

On 01/05/15 08:22, RAPPAZ Francois wrote:
> Hi
> I have upgrade to a recent strawberry and the installation of Wx was painless. The errors when the main frame close are gone.
>
> I'm now learning with Wx::Demo and I'm trying to use and XRC file to build an GUI.
>
> I have 3 files (see below). The xrc folder has been copied from ..perl\site\lib\Wx\DemoModules\files\xrc
>
> It contains the resource.xrc file and 5 gif files that are used in resource.xrc.
>
> When I run my code I received the following errors
>
> 13:11:10: Unknown image data format.
> 13:11:10: XRC error: 21: cannot create bitmap from "fileopen.gif"
> ...
>
> I'm surely missing something pretty obvious, but ...
>
> Thanks for help
>
> François
>
> My files are
> ./test.pl:
>
> use strict;
> use warnings;
> use Xrc;
> my $a = Xrc->new;
> $a->app->MainLoop;
>
> ./Xrc.pm:
>
> use Wx::XRC;
> use strict;
> use warnings;
> package Xrc;
>
> use strict;
> use base qw(Wx::Panel Class::Accessor::Fast);
>
> use Wx::Event qw(EVT_BUTTON EVT_MENU);
>
> __PACKAGE__->mk_ro_accessors( qw(xrc app) );
>
> sub new {
>      my( $class, $parent ) = @_;
>      my $self = $class->SUPER::new( $parent );
>
>      # load XRC file
>      $self->{xrc} = Wx::XmlResource->new();
>      $self->xrc->InitAllHandlers();
>     
>      $self->xrc->Load('xrc/resource.xrc');
>
>      $self->{app} = Wx::SimpleApp->new;
>     show_frame($self);
>      return $self;
> }
>
> sub show_frame {
>      my( $self ) = @_;
>
>      my $frame = Wx::Frame->new
>        ( undef, -1, 'XML resources demo', [50, 50], [450, 340] );
>        my $menubar = $self->xrc->LoadMenuBar( 'mainmenu' );
>         my $toolbar = $self->xrc->LoadToolBar( $self, 'toolbar' );
>
>        $frame->SetMenuBar( $menubar );
>         $frame->SetToolBar( $toolbar );
>
>      EVT_MENU( $frame, Wx::XmlResource::GetXRCID( 'menu_quit' ),
>                sub { $frame->Close } );
>      EVT_MENU( $frame, Wx::XmlResource::GetXRCID( 'menu_dlg1' ),
>                sub { $self->show_dialog( $frame, undef ) } );
>
>      $frame->Show;
> }
> 1;
> ./xrc/resource.xrc
> <?xml version="1.0"?>
> <resource>
>    <object class="wxMenuBar" name="mainmenu">
>      <style>wxMB_DOCKABLE</style>
>      <object class="wxMenu" name="menu_file">
>        <label>$File</label>
>        <style>wxMENU_TEAROFF</style>
>        <object class="wxMenuItem" name="menu_dlg1">
>          <label>Dialog</label>
>        </object>
>        <object class="separator"/>
>        <object class="wxMenuItem" name="menu_quit">
>          <label>E$xit\tAlt-X</label>
>        </object>
>      </object>
>    </object>
>    <object class="wxToolBar" name="toolbar">
>      <style>wxTB_FLAT|wxTB_DOCKABLE</style>
>      <margins>2,2</margins>
>      <object class="tool" name="menu_open">
> 	    <bitmap>fileopen.gif</bitmap>
>        <tooltip>Open catalog</tooltip>
>      </object>
>      <object class="tool" name="menu_save">
> 	    <bitmap>filesave.gif</bitmap>
>        <tooltip>Save catalog</tooltip>
>      </object>
> ...
>