// 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
};
+// Superscript/subscript/normal script mode of a cell
+enum wxHtmlScriptMode
+{
+ wxHTML_SCRIPT_NORMAL,
+ wxHTML_SCRIPT_SUB,
+ wxHTML_SCRIPT_SUP
+};
// ---------------------------------------------------------------------------
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; }
{ 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)
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;
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;
#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; }
// 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()