]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmlcell.cpp
using new API (no visual difference)
[wxWidgets.git] / src / html / htmlcell.cpp
index b4538e4fa07032768ed14a35b3f3deb4b3f69b65..114097e2fae2d7d956f740a2fd333766bb1c6f3b 100644 (file)
@@ -90,6 +90,8 @@ wxHtmlCell::wxHtmlCell() : wxObject()
     m_Next = NULL;
     m_Parent = NULL;
     m_Width = m_Height = m_Descent = 0;
+    m_ScriptMode = wxHTML_SCRIPT_NORMAL;        // <sub> or <sup> mode
+    m_ScriptBaseline = 0;                       // <sub> or <sup> baseline
     m_CanLiveOnPagebreak = true;
     m_Link = NULL;
 }
@@ -99,6 +101,21 @@ wxHtmlCell::~wxHtmlCell()
     delete m_Link;
 }
 
+// Update the descent value when whe are in a <sub> or <sup>.
+// prevbase is the parent base
+void wxHtmlCell::SetScriptMode(wxHtmlScriptMode mode, long previousBase)
+{
+    m_ScriptMode = mode;
+
+    if (mode == wxHTML_SCRIPT_SUP)
+        m_ScriptBaseline = previousBase - (m_Height + 1) / 2;
+    else if (mode == wxHTML_SCRIPT_SUB)
+        m_ScriptBaseline = previousBase + (m_Height + 1) / 6;
+    else
+        m_ScriptBaseline = 0;
+
+    m_Descent += m_ScriptBaseline;
+}
 
 void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y,
                               const wxMouseEvent& event)