// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
-// Licence: wxWindows Licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WINPARS_H_
#define _WX_WINPARS_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "winpars.h"
#endif
#include "wx/html/htmlcell.h"
#include "wx/encconv.h"
-class WXDLLEXPORT wxHtmlWinParser;
-class WXDLLEXPORT wxHtmlWinTagHandler;
-class WXDLLEXPORT wxHtmlTagsModule;
+class WXDLLIMPEXP_HTML wxHtmlWindow;
+class WXDLLIMPEXP_HTML wxHtmlWinParser;
+class WXDLLIMPEXP_HTML wxHtmlWinTagHandler;
+class WXDLLIMPEXP_HTML wxHtmlTagsModule;
//--------------------------------------------------------------------------------
// wxHtmlWinParser
// wxHtmlWindow. It uses special wxHtmlWinTagHandler.
//--------------------------------------------------------------------------------
-class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
+class WXDLLIMPEXP_HTML wxHtmlWinParser : public wxHtmlParser
{
+ DECLARE_ABSTRACT_CLASS(wxHtmlWinParser)
friend class wxHtmlWindow;
public:
- wxHtmlWinParser(wxWindow *wnd = NULL);
+ wxHtmlWinParser(wxHtmlWindow *wnd = NULL);
~wxHtmlWinParser();
virtual void InitParser(const wxString& source);
virtual void DoneParser();
virtual wxObject* GetProduct();
+ virtual wxFSFile *OpenURL(wxHtmlURLType type, const wxString& url) const;
+
// Set's the DC used for parsing. If SetDC() is not called,
// parsing won't proceed
- virtual void SetDC(wxDC *dc, double pixel_scale = 1.0)
+ virtual void SetDC(wxDC *dc, double pixel_scale = 1.0)
{ m_DC = dc; m_PixelScale = pixel_scale; }
wxDC *GetDC() {return m_DC;}
// height/width. They return h/w of default font
// for this DC. If you want actual values, call
// GetDC()->GetChar...()
-
+
// returns associated wxWindow
- wxWindow *GetWindow() {return m_Window;}
+ wxHtmlWindow *GetWindow() {return m_Window;}
+
+ // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
+ void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
- // sets fonts to be used when displaying HTML page.
- void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes);
-
// Adds tags module. see wxHtmlTagsModule for details.
static void AddModule(wxHtmlTagsModule *module);
const wxHtmlLinkInfo& GetLink() const { return m_Link; }
void SetLink(const wxHtmlLinkInfo& link);
+#if !wxUSE_UNICODE
void SetInputEncoding(wxFontEncoding enc);
wxFontEncoding GetInputEncoding() const { return m_InputEnc; }
wxFontEncoding GetOutputEncoding() const { return m_OutputEnc; }
wxEncodingConverter *GetEncodingConverter() const { return m_EncConv; }
+#endif
// creates font depending on m_Font* members.
virtual wxFont* CreateCurrentFont();
protected:
- virtual void AddText(const char *txt);
+ virtual void AddText(const wxChar* txt);
private:
bool m_tmpLastWasSpace;
- // temporary variable used by AddText
- wxWindow *m_Window;
+ wxChar *m_tmpStrBuf;
+ size_t m_tmpStrBufSize;
+ // temporary variables used by AddText
+ wxHtmlWindow *m_Window;
// window we're parsing for
double m_PixelScale;
wxDC *m_DC;
// This list is used to initialize m_Handlers member.
wxHtmlContainerCell *m_Container;
- // actual container. See Open/CloseContainer for details.
+ // current container. See Open/CloseContainer for details.
int m_FontBold, m_FontItalic, m_FontUnderlined, m_FontFixed; // this is not TRUE,FALSE but 1,0, we need it for indexing
int m_FontSize; /* -2 to +4, 0 is default */
wxFont* m_FontsTable[2][2][2][2][7];
wxString m_FontsFacesTable[2][2][2][2][7];
+#if !wxUSE_UNICODE
wxFontEncoding m_FontsEncTable[2][2][2][2][7];
+#endif
// table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off
// state of these flags (from left to right):
// [bold][italic][underlined][fixed_size]
wxString m_FontFaceFixed, m_FontFaceNormal;
// html font sizes and faces of fixed and proportional fonts
+#if !wxUSE_UNICODE
wxFontEncoding m_InputEnc, m_OutputEnc;
// I/O font encodings
wxEncodingConverter *m_EncConv;
+#endif
+
+ wxHtmlWordCell *m_lastWordCell;
+
+ DECLARE_NO_COPY_CLASS(wxHtmlWinParser)
};
-//--------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
// wxHtmlWinTagHandler
// This is basicly wxHtmlTagHandler except
// it is extended with protected member m_Parser pointing to
// the wxHtmlWinParser object
-//--------------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
-class WXDLLEXPORT wxHtmlWinTagHandler : public wxHtmlTagHandler
+class WXDLLIMPEXP_HTML wxHtmlWinTagHandler : public wxHtmlTagHandler
{
DECLARE_ABSTRACT_CLASS(wxHtmlWinTagHandler)
protected:
wxHtmlWinParser *m_WParser; // same as m_Parser, but overcasted
+
+ DECLARE_NO_COPY_CLASS(wxHtmlWinTagHandler)
};
-//--------------------------------------------------------------------------------
+//----------------------------------------------------------------------------
// wxHtmlTagsModule
// This is basic of dynamic tag handlers binding.
// The class provides methods for filling parser's handlers
// hash table.
// (See documentation for details)
-//--------------------------------------------------------------------------------
+//----------------------------------------------------------------------------
-class WXDLLEXPORT wxHtmlTagsModule : public wxModule
+class WXDLLIMPEXP_HTML wxHtmlTagsModule : public wxModule
{
DECLARE_DYNAMIC_CLASS(wxHtmlTagsModule)
virtual void OnExit();
// This is called by wxHtmlWinParser.
- // The method must simply call parser->AddTagHandler(new <handler_class_name>);
- // for each handler
+ // The method must simply call parser->AddTagHandler(new
+ // <handler_class_name>); for each handler
virtual void FillHandlersTable(wxHtmlWinParser * WXUNUSED(parser)) { }
};
#endif
#endif // _WX_WINPARS_H_
-
-
-
-