X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/69941f05864fa8b37856ccc1338124bfac756a2b..e63fdcd600e2eb717a19f9fa2895e9256e83c890:/include/wx/html/winpars.h?ds=sidebyside diff --git a/include/wx/html/winpars.h b/include/wx/html/winpars.h index 5eca52c705..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; @@ -35,39 +37,36 @@ class wxHtmlTagsModule; class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser { - DECLARE_DYNAMIC_CLASS(wxHtmlWinParser) - friend class wxHtmlWindow; public: - wxHtmlWinParser() : wxHtmlParser() {wxHtmlWinParser(NULL);} - wxHtmlWinParser(wxWindow *wnd); + wxHtmlWinParser(wxWindow *wnd = NULL); + ~wxHtmlWinParser(); virtual void InitParser(const wxString& source); virtual void DoneParser(); virtual wxObject* GetProduct(); - virtual void SetDC(wxDC *dc) {m_DC = dc;} + virtual void SetDC(wxDC *dc, double pixel_scale = 1.0) {m_DC = dc; m_PixelScale = pixel_scale;} // Set's the DC used for parsing. If SetDC() is not called, // parsing won't proceed wxDC *GetDC() {return m_DC;} + 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, 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;} @@ -85,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;} @@ -94,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); @@ -116,6 +121,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser // temporary variable used by AddText wxWindow *m_Window; // window we're parsing for + double m_PixelScale; wxDC *m_DC; // Device Context we're parsing for static wxList m_Modules; @@ -130,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 @@ -138,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; };