X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/edbd0635f283adfe7aeb5c551e199493d05b6cf5..e63fdcd600e2eb717a19f9fa2895e9256e83c890:/include/wx/html/winpars.h diff --git a/include/wx/html/winpars.h b/include/wx/html/winpars.h index 4d0c8cd520..1d96d69de5 100644 --- a/include/wx/html/winpars.h +++ b/include/wx/html/winpars.h @@ -19,8 +19,10 @@ #if wxUSE_HTML #include "wx/module.h" +#include "wx/font.h" #include "wx/html/htmlpars.h" #include "wx/html/htmlcell.h" +#include "wx/encconv.h" class wxHtmlWinParser; class wxHtmlWinTagHandler; @@ -39,6 +41,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser public: wxHtmlWinParser(wxWindow *wnd = NULL); + ~wxHtmlWinParser(); virtual void InitParser(const wxString& source); virtual void DoneParser(); @@ -51,21 +54,19 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser double GetPixelScale() {return m_PixelScale;} int GetCharHeight() const {return m_CharHeight;} int GetCharWidth() const {return m_CharWidth;} - // NOTE : these functions do _not_ return _actual_ + // NOTE : these functions do _not_ return _actual_ // height/width. They return h/w of default font // for this DC. If you want actual values, call // GetDC() -> GetChar...() wxWindow *GetWindow() {return m_Window;} // returns associated wxWindow - void SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, const int *sizes); + void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes); // sets fonts to be used when displaying HTML page. - // *_italic_mode can be either wxSLANT or wxITALIC - - virtual wxList* GetTempData(); static void AddModule(wxHtmlTagsModule *module); // Adds tags module. see wxHtmlTagsModule for details. + static void RemoveModule(wxHtmlTagsModule *module); // parsing-related methods. These methods are called by tag handlers: wxHtmlContainerCell *GetContainer() const {return m_Container;} @@ -83,7 +84,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser // container int GetFontSize() const {return m_FontSize;} - void SetFontSize(int s) {m_FontSize = s;} + void SetFontSize(int s); int GetFontBold() const {return m_FontBold;} void SetFontBold(int x) {m_FontBold = x;} int GetFontItalic() const {return m_FontItalic;} @@ -92,19 +93,25 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser void SetFontUnderlined(int x) {m_FontUnderlined = x;} int GetFontFixed() const {return m_FontFixed;} void SetFontFixed(int x) {m_FontFixed = x;} + wxString GetFontFace() const {return GetFontFixed() ? m_FontFaceFixed : m_FontFaceNormal;} + void SetFontFace(const wxString& face); int GetAlign() const {return m_Align;} void SetAlign(int a) {m_Align = a;} - const wxColour& GetLinkColor() const {return m_LinkColor;} - void SetLinkColor(const wxColour& clr) {m_LinkColor = clr;} - const wxColour& GetActualColor() const {return m_ActualColor;} - void SetActualColor(const wxColour& clr) {m_ActualColor = clr;} - const wxString& GetLink() const {return m_Link;} - void SetLink(const wxString& link) {m_Link = link; m_UseLink = link.Length() > 0;} + const wxColour& GetLinkColor() const { return m_LinkColor; } + void SetLinkColor(const wxColour& clr) { m_LinkColor = clr; } + const wxColour& GetActualColor() const { return m_ActualColor; } + void SetActualColor(const wxColour& clr) { m_ActualColor = clr ;} + const wxHtmlLinkInfo& GetLink() const { return m_Link; } + void SetLink(const wxHtmlLinkInfo& link); + + void SetInputEncoding(wxFontEncoding enc); + wxFontEncoding GetInputEncoding() const { return m_InputEnc; } + wxFontEncoding GetOutputEncoding() const { return m_OutputEnc; } + wxEncodingConverter *GetEncodingConverter() const { return m_EncConv; } virtual wxFont* CreateCurrentFont(); // creates font depending on m_Font* members. - // (note : it calls wxHtmlWindow's CreateCurrentFont...) protected: virtual void AddText(const char *txt); @@ -129,7 +136,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser wxColour m_LinkColor; wxColour m_ActualColor; // basic font parameters. - wxString m_Link; + wxHtmlLinkInfo m_Link; // actual hypertext link or empty string bool m_UseLink; // TRUE if m_Link is not empty @@ -137,18 +144,23 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser // average height of normal-sized text int m_Align; // actual alignment - - wxFont *m_FontsTable[2][2][2][2][7]; + + wxFont* m_FontsTable[2][2][2][2][7]; + wxString m_FontsFacesTable[2][2][2][2][7]; + wxFontEncoding m_FontsEncTable[2][2][2][2][7]; // 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] - // last index is font size : from 0 to 7 (remapped from html sizes -2 to +4) + // last index is font size : from 0 to 6 (remapped from html sizes 1 to 7) // Note : this table covers all possible combinations of fonts, but not // all of them are used, so many items in table are usually NULL. int m_FontsSizes[7]; wxString m_FontFaceFixed, m_FontFaceNormal; - int m_ItalicModeFixed, m_ItalicModeNormal; // html font sizes and faces of fixed and proportional fonts + + wxFontEncoding m_InputEnc, m_OutputEnc; + // I/O font encodings + wxEncodingConverter *m_EncConv; };