1 #############################################################################
2 ## Name: ext/xrc/XS/XmlSubclassFactory.xsp
3 ## Purpose: XS++ for Wx::XmlSubclassHandler
4 ## Author: Mattia Barbon
7 ## RCS-ID: $Id: XmlSubclassFactory.xsp 2079 2007-07-08 21:18:04Z mbarbon $
8 ## Copyright: (c) 2003-2004 Mattia Barbon
9 ## Licence: This program is free software; you can redistribute it and/or
10 ## modify it under the same terms as Perl itself
11 #############################################################################
15 %typemap{wxPliXmlSubclassFactory*}{simple};
16 %typemap{wxXmlSubclassFactory*}{simple};
21 #define DEC_V_CBACK_WXOBJECT__WXSTRING_pure( METHOD ) \
22 wxObject* METHOD( const wxString& )
24 #define DEF_V_CBACK_WXOBJECT__WXSTRING_pure( CLASS, BASE, METHOD ) \
25 wxObject* CLASS::METHOD( const wxString& param1 ) \
28 if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, #METHOD ) ) \
30 SV* ret = wxPliVirtualCallback_CallCallback( aTHX_ &m_callback, \
31 G_SCALAR, "P", ¶m1 );\
32 wxObject* val = (wxObject*)wxPli_sv_2_object( aTHX_ ret, NULL ); \
33 SvREFCNT_dec( ret ); \
39 #include "cpp/v_cback.h"
41 class wxPliXmlSubclassFactory : public wxXmlSubclassFactory
43 wxPliVirtualCallback m_callback;
45 wxPliXmlSubclassFactory( const char* package )
46 : m_callback( "Wx::XmlSubclassFactory" )
48 m_callback.SetSelf( wxPli_make_object( this, package ), true );
51 DEC_V_CBACK_WXOBJECT__WXSTRING_pure( Create );
54 DEF_V_CBACK_WXOBJECT__WXSTRING_pure( wxPliXmlSubclassFactory, wxXmlSubclassFactory, Create );
60 #include "cpp/factory.h"
63 %name{Wx::XmlSubclassFactory} class wxXmlSubclassFactory
65 wxXmlSubclassFactory()
66 %code{% RETVAL = new wxPliXmlSubclassFactory( CLASS ); %};
67 ## ~wxXmlSubclassFactory();