Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / ext / html / XS / HtmlTagHandler.xsp
diff --git a/deb-src/libwx-perl/libwx-perl-0.96/ext/html/XS/HtmlTagHandler.xsp b/deb-src/libwx-perl/libwx-perl-0.96/ext/html/XS/HtmlTagHandler.xsp
new file mode 100755 (executable)
index 0000000..0a6cb18
--- /dev/null
@@ -0,0 +1,115 @@
+#############################################################################
+## Name:        ext/html/XS/HtmlTagHandler.xsp
+## Purpose:     XS for Wx::HtmlTagHandler
+## Author:      Mattia Barbon
+## Modified by:
+## Created:     30/11/2003
+## RCS-ID:      $Id: HtmlTagHandler.xsp 2210 2007-08-23 21:01:47Z mbarbon $
+## Copyright:   (c) 2003-2004, 2007 Mattia Barbon
+## Licence:     This program is free software; you can redistribute it and/or
+##              modify it under the same terms as Perl itself
+#############################################################################
+
+%module{Wx};
+
+#include <wx/html/htmlpars.h>
+#include "cpp/htmltag.h"
+
+%file{cpp/htmltag.h};
+%{
+
+#include "cpp/v_cback.h"
+
+#define DEC_V_CBACK_BOOL__WXHTMLTAG( NAME ) \
+    bool NAME( const wxHtmlTag& tag );
+
+#if 0
+#define DEF_V_CBACK_BOOL__WXHTMLTAG_pure( CLASS, BASE, METHOD )              \
+    DEF_V_CBACK_BOOL__WXOBJECTs_( const wxHtmlTag&, CLASS, return false,     \
+                                  METHOD, wxPli_NOCONST )
+#endif
+
+#define DEF_V_CBACK_BOOL__WXHTMLTAG_pure( CLASS, BASE, METHOD )              \
+    bool CLASS::METHOD( const wxHtmlTag& p1 )                                \
+    {                                                                        \
+        dTHX;                                                                \
+        if( wxPliFCback( aTHX_ &m_callback, #METHOD ) )                      \
+        {                                                                    \
+            wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback,              \
+                                             G_SCALAR|G_DISCARD,             \
+                                             "q", &p1, "Wx::HtmlTag" ) );    \
+            return SvTRUE( ret );                                            \
+        } else                                                               \
+            return false;                                                    \
+    }
+
+class wxPlHtmlTagHandler : public wxHtmlTagHandler
+{
+    WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHtmlTagHandler );
+    WXPLI_DECLARE_V_CBACK();
+public:
+    wxPlHtmlTagHandler( const char* package )
+        :m_callback( "Wx::PlHtmlTagHandler" )
+    {
+        m_callback.SetSelf( wxPli_make_object( this, package ), true );
+    }
+
+    wxHtmlParser* GetParser() { return m_Parser; }
+
+    DEC_V_CBACK_WXSTRING__VOID( GetSupportedTags );
+    DEC_V_CBACK_BOOL__WXHTMLTAG( HandleTag );
+};
+
+WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHtmlTagHandler, wxHtmlTagHandler );
+
+DEF_V_CBACK_WXSTRING__VOID_pure( wxPlHtmlTagHandler, wxHtmlTagHandler, GetSupportedTags );
+DEF_V_CBACK_BOOL__WXHTMLTAG_pure( wxPlHtmlTagHandler, wxHtmlTagHandler, HandleTag );
+
+class wxPlHtmlWinTagHandler : public wxHtmlWinTagHandler
+{
+    WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHtmlWinTagHandler );
+    WXPLI_DECLARE_V_CBACK();
+public:
+    wxPlHtmlWinTagHandler( const char* package )
+        :m_callback( "Wx::PlHtmlWinTagHandler" )
+    {
+        m_callback.SetSelf( wxPli_make_object( this, package ), true );
+    }
+
+    wxHtmlWinParser* GetParser() { return m_WParser; }
+
+    DEC_V_CBACK_WXSTRING__VOID( GetSupportedTags );
+    DEC_V_CBACK_BOOL__WXHTMLTAG( HandleTag );
+};
+
+WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler );
+
+DEF_V_CBACK_WXSTRING__VOID_pure( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler, GetSupportedTags );
+DEF_V_CBACK_BOOL__WXHTMLTAG_pure( wxPlHtmlWinTagHandler, wxHtmlWinTagHandler, HandleTag );
+
+%}
+%file{-};
+
+%name{Wx::HtmlTagHandler} class wxHtmlTagHandler
+{
+    void SetParser(wxHtmlParser *parser);
+    wxString GetSupportedTags();
+    bool HandleTag(const wxHtmlTag& tag);
+};
+
+%name{Wx::HtmlWinTagHandler} class wxHtmlWinTagHandler
+{
+};
+
+%name{Wx::PlHtmlTagHandler} class wxPlHtmlTagHandler
+{
+    wxPlHtmlTagHandler() %code{% RETVAL = new wxPlHtmlTagHandler( CLASS ); %};
+    wxHtmlParser* GetParser();
+};
+
+%name{Wx::PlHtmlWinTagHandler} class wxPlHtmlWinTagHandler
+{
+    wxPlHtmlWinTagHandler()
+        %code{% RETVAL = new wxPlHtmlWinTagHandler( CLASS ); %};
+    wxHtmlWinParser* GetParser();
+};