X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6953da00886c52a9e1d9183e1f1f27e75843cfa4..835a347314148e6facab05ceb51c14c704a0d8a7:/include/wx/html/htmlcell.h diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h index 046fb2085e..62afdebae4 100644 --- a/include/wx/html/htmlcell.h +++ b/include/wx/html/htmlcell.h @@ -8,14 +8,9 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - #ifndef _WX_HTMLCELL_H_ #define _WX_HTMLCELL_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "htmlcell.h" -#endif - #include "wx/defs.h" #if wxUSE_HTML @@ -104,6 +99,7 @@ private: class WXDLLIMPEXP_HTML wxHtmlRenderingStyle { public: + virtual ~wxHtmlRenderingStyle() {} virtual wxColour GetSelectedTextColour(const wxColour& clr) = 0; virtual wxColour GetSelectedTextBgColour(const wxColour& clr) = 0; }; @@ -149,6 +145,13 @@ enum }; +// Superscript/subscript/normal script mode of a cell +enum wxHtmlScriptMode +{ + wxHTML_SCRIPT_NORMAL, + wxHTML_SCRIPT_SUB, + wxHTML_SCRIPT_SUP +}; // --------------------------------------------------------------------------- @@ -180,6 +183,10 @@ public: int GetHeight() const {return m_Height;} int GetDescent() const {return m_Descent;} + void SetScriptMode(wxHtmlScriptMode mode, long previousBase); + wxHtmlScriptMode GetScriptMode() const { return m_ScriptMode; } + long GetScriptBaseline() { return m_ScriptBaseline; } + // Formatting cells are not visible on the screen, they only alter // renderer's state. bool IsFormattingCell() const { return m_Width == 0 && m_Height == 0; } @@ -301,21 +308,26 @@ public: { return wxEmptyString; } protected: + // pointer to the next cell wxHtmlCell *m_Next; - // pointer to the next cell + // pointer to parent cell wxHtmlContainerCell *m_Parent; - // pointer to parent cell + + // dimensions of fragment (m_Descent is used to position text & images) long m_Width, m_Height, m_Descent; - // dimensions of fragment - // m_Descent is used to position text&images.. + // position where the fragment is drawn: long m_PosX, m_PosY; - // position where the fragment is drawn + + // superscript/subscript/normal: + wxHtmlScriptMode m_ScriptMode; + long m_ScriptBaseline; + + // destination address if this fragment is hypertext link, NULL otherwise wxHtmlLinkInfo *m_Link; - // destination address if this fragment is hypertext link, NULL otherwise + // true if this cell can be placed on pagebreak, false otherwise bool m_CanLiveOnPagebreak; - // true if this cell can be placed on pagebreak, false otherwise + // unique identifier of the cell, generated from "id" property of tags wxString m_id; - // unique identifier of the cell, generated from "id" property of tags DECLARE_ABSTRACT_CLASS(wxHtmlCell) DECLARE_NO_COPY_CLASS(wxHtmlCell) @@ -337,7 +349,7 @@ protected: class WXDLLIMPEXP_HTML wxHtmlWordCell : public wxHtmlCell { public: - wxHtmlWordCell(const wxString& word, wxDC& dc); + wxHtmlWordCell(const wxString& word, const wxDC& dc); void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, wxHtmlRenderingInfo& info); wxCursor GetCursor() const; @@ -347,8 +359,8 @@ public: void SetPreviousWord(wxHtmlWordCell *cell); protected: - void SetSelectionPrivPos(wxDC& dc, wxHtmlSelection *s) const; - void Split(wxDC& dc, + void SetSelectionPrivPos(const wxDC& dc, wxHtmlSelection *s) const; + void Split(const wxDC& dc, const wxPoint& selFrom, const wxPoint& selTo, unsigned& pos1, unsigned& pos2) const; @@ -418,6 +430,8 @@ public: #if WXWIN_COMPATIBILITY_2_4 wxDEPRECATED( wxHtmlCell* GetFirstCell() const ); #endif + // returns last child cell: + wxHtmlCell* GetLastChild() const { return m_LastCell; } // see comment in wxHtmlCell about this method virtual bool IsTerminalCell() const { return false; } @@ -431,7 +445,7 @@ public: // Removes indentation on top or bottom of the container (i.e. above or // below first/last terminal cell). For internal use only. - void RemoveExtraSpacing(bool top, bool bottom); + virtual void RemoveExtraSpacing(bool top, bool bottom); // Returns the maximum possible length of the container. // Call Layout at least once before using GetMaxTotalWidth()