Hi Mark,

Thanks again for this.  I'm happy to test the revisions you very kindly
made. But I'm not clear how to start. 

I've been happily coding in wxPerl for the last year or so and using Perl as
the glue to call other applications, like SWI-Prolog (which is amazing, if
you haven't tried it) and Ffmpeg to do simple video editing/processing.
wxWidgets has a wonderful array of components like wxMediaCtrl which I use
as the front-end to display what Ffmpeg is doing.

However, I've not (until now) lifted the bonnet on wxPerl and looked at what
makes it tick.

If I download the GNU tarball, can I do the usual Makefile.PL, make, make
test, make install on it, or is there another way?

I'll continue to investigate, but if you get this before I find the answer,
I'd be grateful to hear from you.

Regards

Steve



-----Original Message-----
From: Mark Dootson [mailto:mark.doot...@znix.com] 
Sent: 13 April 2010 14:03
To: wxperl-users@perl.org
Cc: Mattia Barbon <mattia.bar...@libero.it>; Steve Cookson
Subject: Re: How to add a new module to Wx

Hi,

I thought I'd chip in with a populated template for Steve to test. 
However, basic testing here brought up a problem. wxRichTextPrinting has 
no wxRTTI information (there's no IMPLEMENT_CLASS macro) so the wxPerl 
code ( wxPli_object_2_sv ) throws warnings.

The attached patch wraps wxRichTextPrinting but is not applied to SVN as 
the wxRichTextPrinting constructor code is none standard. It does what 
wxPli_object_2_sv would do if wxRichTextPrinting had ClassInfo. I'm 
fairly sure this is OK because wxRichTextPrinting inherits directly from 
wxObject and, as there is no need to wrap wxRichTextPrinting to handle 
Perl virtual methods, I don't think there is anywhere else in the wxPerl 
code that would attempt to reference the missing class info.
My question to Mattia is, this seems wrong and a bit of a hack. Is there 
a better way to handle it?

I suppose the correct fix is to patch wxRichTextPrinting to implement 
wxRTTI, but this would not help any existing 2.8.x installations.

Some simple usage has been added to wxDemo in SVN. I've tested the patch 
building and with the basic wxDemo usage on msw/linux/mac with wxWidgets 
2.8.10, and all seems to work OK.

Apologies to Steve if you have already been tackling this. It wasn't my 
original intention to just wrap the classes, but solving the above 
problem meant I ended up with the classes more or less wrapped anyway.

Regards

Mark


On 10/04/2010 09:40, Mattia Barbon wrote:
> Steve Cookson wrote:
>
> Hi,
>
>> I'm not sure whether I should be sending this to the group or directly
>> to Mattia
>
> Better to the group (it will be in the archives, and there are other
> people beside me that have some experience in wrapping wxWidgets classes).
>
>> but I'm trying to understand how to print a wxRichTextCtrl from
>> wxPerl. I understand that wxRichTextPrinting and wxRichTextPrintout
>> are not implemented yet in wxPerl.
>
> Correct.
>
>> So I need to do something to access the original C++ code (maybe wrap
>> or re-write). Re-writing seems to be an easier route as I don't
>> understand the Wx XS framework that Mattia uses. However, it would be
>> a bit anti-social. It would be better to use the current wxPerl
>> framework.
>
> I wouldn't call it antisocial, but wrapping the C++ code is definitely
> more maintainable in the long run.
>
>> As far as I can see the wxPerl framework is dll driven and provides an
>> XS-based interface to the dlls? Is that right?
>
> Correct.
>
>  > There seems to be some
>> automation/facilitation of the process, but it's not clear to me how
>> it works. I've also never used XS before.
>>
>> Are there some instructions about how to do this available?
>
> I'm sure I answered this on the mailing list, but can't find the mails;
> I just committed some documentation that should at least get you
> started; see lib/Wx/NewClass.pod. I think that wxRichTextPrinting should
> be reasonably easy to wrap.
>
> Regards,
> Mattia
>

Reply via email to