]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/markupparser.cpp
fix memory leak in wxScreenDC, fixes #13249
[wxWidgets.git] / src / common / markupparser.cpp
index 535e62bade558b3009e2c6988648efc9fe0ef1c8..d9dcf452c7e2f01f4f9153e6076bcd80e0b3b774 100644 (file)
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_MARKUP
+
 #ifndef WX_PRECOMP
 #ifndef WX_PRECOMP
-#endif // WX_PRECOMP
+    #include "wx/log.h"
+#endif
 
 #include "wx/private/markupparser.h"
 
 
 #include "wx/private/markupparser.h"
 
@@ -425,3 +428,53 @@ wxString wxMarkupParser::Quote(const wxString& text)
 
     return quoted;
 }
 
     return quoted;
 }
+
+/* static */
+wxString wxMarkupParser::Strip(const wxString& text)
+{
+    class StripOutput : public wxMarkupParserOutput
+    {
+    public:
+        StripOutput() { }
+
+        const wxString& GetText() const { return m_text; }
+
+        virtual void OnText(const wxString& text) { m_text += text; }
+
+        virtual void OnBoldStart() { }
+        virtual void OnBoldEnd() { }
+
+        virtual void OnItalicStart() { }
+        virtual void OnItalicEnd() { }
+
+        virtual void OnUnderlinedStart() { }
+        virtual void OnUnderlinedEnd() { }
+
+        virtual void OnStrikethroughStart() { }
+        virtual void OnStrikethroughEnd() { }
+
+        virtual void OnBigStart() { }
+        virtual void OnBigEnd() { }
+
+        virtual void OnSmallStart() { }
+        virtual void OnSmallEnd() { }
+
+        virtual void OnTeletypeStart() { }
+        virtual void OnTeletypeEnd() { }
+
+        virtual void OnSpanStart(const wxMarkupSpanAttributes& WXUNUSED(a)) { }
+        virtual void OnSpanEnd(const wxMarkupSpanAttributes& WXUNUSED(a)) { }
+
+    private:
+        wxString m_text;
+    };
+
+    StripOutput output;
+    wxMarkupParser parser(output);
+    if ( !parser.Parse(text) )
+        return wxString();
+
+    return output.GetText();
+}
+
+#endif // wxUSE_MARKUP