/////////////////////////////////////////////////////////////////////////////
-// Name: htmlpars.h
+// Name: wx/html/htmlpars.h
// Purpose: wxHtmlParser class (generic parser)
// Author: Vaclav Slavik
// RCS-ID: $Id$
#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;
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
{
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);
// 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<wxHtmlTagHandlersHash*> m_HandlersStack;
// entity parse
wxHtmlEntitiesParser *m_entitiesParser;
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"
wxHtmlParser *m_Parser;
- DECLARE_NO_COPY_CLASS(wxHtmlTagHandler)
+ wxDECLARE_NO_COPY_CLASS(wxHtmlTagHandler);
};
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)
#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);
};