X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b1a3a964997a143de68f2e3c75fa8dd82a4e3361..d929eddf3a3dbb04f37624d255f4e24e07595ca1:/include/wx/html/htmlpars.h diff --git a/include/wx/html/htmlpars.h b/include/wx/html/htmlpars.h index 6fe3d7f780..d34d1a1a89 100644 --- a/include/wx/html/htmlpars.h +++ b/include/wx/html/htmlpars.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: htmlpars.h +// Name: wx/html/htmlpars.h // Purpose: wxHtmlParser class (generic parser) // Author: Vaclav Slavik // RCS-ID: $Id$ @@ -15,7 +15,9 @@ #include "wx/html/htmltag.h" #include "wx/filesys.h" -#include "wx/hash.h" +#include "wx/hashmap.h" +#include "wx/hashset.h" +#include "wx/vector.h" #include "wx/fontenc.h" class WXDLLIMPEXP_FWD_BASE wxMBConv; @@ -26,6 +28,14 @@ class WXDLLIMPEXP_FWD_HTML wxHtmlEntitiesParser; class wxHtmlTextPieces; class wxHtmlParserState; +WX_DECLARE_HASH_SET_WITH_DECL_PTR(wxHtmlTagHandler*, + wxPointerHash, wxPointerEqual, + wxHtmlTagHandlersSet, + class WXDLLIMPEXP_HTML); +WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxHtmlTagHandler*, + wxHtmlTagHandlersHash, + class WXDLLIMPEXP_HTML); + enum wxHtmlURLType { @@ -146,14 +156,14 @@ protected: wxHtmlTagsCache *cache); // Adds text to the output. - // This is called from Parse() and must be overriden in derived classes. + // This is called from Parse() and must be overridden in derived classes. // txt is not guaranteed to be only one word. It is largest continuous part // of text (= not broken by tags) virtual void AddText(const wxString& txt) = 0; // Adds tag and proceeds it. Parse() may (and usually is) called from this method. - // This is called from Parse() and may be overriden. - // Default behavior is that it looks for proper handler in m_Handlers. The tag is + // This is called from Parse() and may be overridden. + // Default behaviour is that it looks for proper handler in m_Handlers. The tag is // ignored if no hander is found. // Derived class is *responsible* for filling in m_Handlers table. virtual void AddTag(const wxHtmlTag& tag); @@ -178,15 +188,15 @@ protected: // it may (and often does) contain more references to one object // m_HandlersList is list of all handlers and it is guaranteed to contain // only one reference to each handler instance. - wxList m_HandlersList; - wxHashTable m_HandlersHash; + wxHtmlTagHandlersSet m_HandlersSet; + wxHtmlTagHandlersHash m_HandlersHash; - DECLARE_NO_COPY_CLASS(wxHtmlParser) + wxDECLARE_NO_COPY_CLASS(wxHtmlParser); // class for opening files (file system) wxFileSystem *m_FS; // handlers stack used by PushTagHandler and PopTagHandler - wxList *m_HandlersStack; + wxVector m_HandlersStack; // entity parse wxHtmlEntitiesParser *m_entitiesParser; @@ -218,6 +228,9 @@ public: virtual void SetParser(wxHtmlParser *parser) { m_Parser = parser; } + virtual wxHtmlParser* GetParser() const + { return m_Parser; } + // Returns list of supported tags. The list is in uppercase and // tags are delimited by ','. // Example : "I,B,FONT,P" @@ -244,7 +257,7 @@ protected: wxHtmlParser *m_Parser; - DECLARE_NO_COPY_CLASS(wxHtmlTagHandler) + wxDECLARE_NO_COPY_CLASS(wxHtmlTagHandler); }; @@ -259,8 +272,12 @@ public: virtual ~wxHtmlEntitiesParser(); // Sets encoding of output string. - // Has no effect if wxUSE_WCHAR_T==0 or wxUSE_UNICODE==1 + // Has no effect if wxUSE_UNICODE==1 +#if wxUSE_UNICODE + void SetEncoding(wxFontEncoding WXUNUSED(encoding)) {} +#else void SetEncoding(wxFontEncoding encoding); +#endif // Parses entities in input and replaces them with respective characters // (with respect to output encoding) @@ -277,12 +294,12 @@ public: #endif protected: -#if wxUSE_WCHAR_T && !wxUSE_UNICODE +#if !wxUSE_UNICODE wxMBConv *m_conv; wxFontEncoding m_encoding; #endif - DECLARE_NO_COPY_CLASS(wxHtmlEntitiesParser) + wxDECLARE_NO_COPY_CLASS(wxHtmlEntitiesParser); };