1 #############################################################################
2 ## Name: ext/html/XS/HtmlTagHandler.xsp
3 ## Purpose: XS for Wx::HtmlTagHandler
4 ## Author: Mattia Barbon
7 ## RCS-ID: $Id: HtmlTagHandler.xsp 2210 2007-08-23 21:01:47Z mbarbon $
8 ## Copyright: (c) 2003-2004, 2007 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 #include <wx/html/htmlpars.h>
16 #include "cpp/htmltag.h"
21 #include "cpp/v_cback.h"
23 #define DEC_V_CBACK_BOOL__WXHTMLTAG( NAME ) \
24 bool NAME( const wxHtmlTag& tag );
27 #define DEF_V_CBACK_BOOL__WXHTMLTAG_pure( CLASS, BASE, METHOD ) \
28 DEF_V_CBACK_BOOL__WXOBJECTs_( const wxHtmlTag&, CLASS, return false, \
29 METHOD, wxPli_NOCONST )
32 #define DEF_V_CBACK_BOOL__WXHTMLTAG_pure( CLASS, BASE, METHOD ) \
33 bool CLASS::METHOD( const wxHtmlTag& p1 ) \
36 if( wxPliFCback( aTHX_ &m_callback, #METHOD ) ) \
38 wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback, \
40 "q", &p1, "Wx::HtmlTag" ) ); \
41 return SvTRUE( ret ); \
46 class wxPlHtmlTagHandler : public wxHtmlTagHandler
48 WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHtmlTagHandler );
49 WXPLI_DECLARE_V_CBACK();
51 wxPlHtmlTagHandler( const char* package )
52 :m_callback( "Wx::PlHtmlTagHandler" )
54 m_callback.SetSelf( wxPli_make_object( this, package ), true );
57 wxHtmlParser* GetParser() { return m_Parser; }
59 DEC_V_CBACK_WXSTRING__VOID( GetSupportedTags );
60 DEC_V_CBACK_BOOL__WXHTMLTAG( HandleTag );
63 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHtmlTagHandler, wxHtmlTagHandler );
65 DEF_V_CBACK_WXSTRING__VOID_pure( wxPlHtmlTagHandler, wxHtmlTagHandler, GetSupportedTags );
66 DEF_V_CBACK_BOOL__WXHTMLTAG_pure( wxPlHtmlTagHandler, wxHtmlTagHandler, HandleTag );
68 class wxPlHtmlWinTagHandler : public wxHtmlWinTagHandler
70 WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHtmlWinTagHandler );
71 WXPLI_DECLARE_V_CBACK();
73 wxPlHtmlWinTagHandler( const char* package )
74 :m_callback( "Wx::PlHtmlWinTagHandler" )
76 m_callback.SetSelf( wxPli_make_object( this, package ), true );
79 wxHtmlWinParser* GetParser() { return m_WParser; }
81 DEC_V_CBACK_WXSTRING__VOID( GetSupportedTags );
82 DEC_V_CBACK_BOOL__WXHTMLTAG( HandleTag );
85 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler );
87 DEF_V_CBACK_WXSTRING__VOID_pure( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler, GetSupportedTags );
88 DEF_V_CBACK_BOOL__WXHTMLTAG_pure( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler, HandleTag );
93 %name{Wx::HtmlTagHandler} class wxHtmlTagHandler
95 void SetParser(wxHtmlParser *parser);
96 wxString GetSupportedTags();
97 bool HandleTag(const wxHtmlTag& tag);
100 %name{Wx::HtmlWinTagHandler} class wxHtmlWinTagHandler
104 %name{Wx::PlHtmlTagHandler} class wxPlHtmlTagHandler
106 wxPlHtmlTagHandler() %code{% RETVAL = new wxPlHtmlTagHandler( CLASS ); %};
107 wxHtmlParser* GetParser();
110 %name{Wx::PlHtmlWinTagHandler} class wxPlHtmlWinTagHandler
112 wxPlHtmlWinTagHandler()
113 %code{% RETVAL = new wxPlHtmlWinTagHandler( CLASS ); %};
114 wxHtmlWinParser* GetParser();