On Mon, Apr 6, 2009 at 5:13 PM, Gabor Szabo <[email protected]> wrote:
> On 4/6/09, j <[email protected]> wrote:
>> Can anyone send an example of embedding an image in code as a scalar and
>> using with Wx::Bitmap?  Thanks.
>>
> Try to look at Wx::Demo on CPAN. Maybe it has one.
>

This is what I did for embedding an icon to Padre::Plugin::Catalyst:

 - created a XPM file (just edited a png then saved as xpm using gimp);
 - opened the file in a text editor, and ripped off the C string array
(ok, ok, static char * xpm[]) as a Perl array reference;
 - used the Wx::Bitmap->newFromXPM() constructor, passing the array ref.

It worked like a charm. The only thing you need to worry with this is
escaping any string-termination character from each string inside the
array (or just use q{} to wrap each element if you don't want the
trouble).

Since you specifically asked for an example, here's my code. I did
this in a hurry, so there are probably a lot better ways to do it.
Feel free to share them :-)

-------------------------8<---------------------------
my $icon = [

'16 16 46 1'   , '   c None'   , '.  c #D15C5C', '+  c #E88888', '@  c #E10000',
'#  c #D03131' , '$  c #D26262', '%  c #D26161', '&  c #E99F9F', '*  c #EFACAC',
'=  c #EFADAD' , '-  c #E79090', ';  c #D14949', '>  c #D22727', ',  c #E26666',
'\'  c #E26363', ')  c #E26464', '!  c #D42A2A', '~  c #D40101', '{  c #D50B0B',
']  c #D71313' , '^  c #D50C0C', '/  c #D40404', '(  c #D26767', '_  c #DF5353',
':  c #E15B5B' , '<  c #D95D5D', '[  c #D21313', '}  c #D30000', '|  c #DA0000',
'1  c #D90000' , '2  c #D31111', '3  c #D14646', '4  c #DC1313', '5  c #EC0000',
'6  c #E20000' , '7  c #F00000', '8  c #F20000', '9  c #D33232', '0  c #D64646',
'a  c #D46969' , 'b  c #D35555', 'c  c #D23A3A', 'd  c #E89090', 'e  c #E98E8E',
'f  c #D60000' , 'g  c #D70101', '                ', '            .   ',
'            +   ', '            @#  ', '                '  , '
        ',
'        $%      ', '       &*=-;    ', '      >,\'\')!    ', '
~{]]^/    ',
'(_: < [}|1}2    ', '345    67869    ', ' 0a         b c ', '
    de'  ,
'              fg', '                ',
];

return Wx::Bitmap->newFromXPM( $icon );

------------------------->8---------------------------


If you need more information, check out:

http://docs.wxwidgets.org/2.8.8/wx_wxbitmap.html#wxbitmap


Cheers,

garu

Reply via email to