X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed62f740a1b075d6645682b0064b78c89f9e4dfc..3a4abf80552dce71c27568d849c677671c752043:/include/wx/html/htmlcell.h diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h index 09e3cd29b0..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 @@ -150,6 +145,13 @@ enum }; +// Superscript/subscript/normal script mode of a cell +enum wxHtmlScriptMode +{ + wxHTML_SCRIPT_NORMAL, + wxHTML_SCRIPT_SUB, + wxHTML_SCRIPT_SUP +}; // --------------------------------------------------------------------------- @@ -181,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; } @@ -302,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) @@ -338,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; @@ -348,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; @@ -419,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; } @@ -432,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()