X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/80fdcdb90ef779185492dab676d461fc34933312..9869c26285dc51d13607cddaa04f65ce983653a5:/include/wx/html/htmlcell.h diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h index b215c4f588..7f40f94ed5 100644 --- a/include/wx/html/htmlcell.h +++ b/include/wx/html/htmlcell.h @@ -3,7 +3,6 @@ // Purpose: wxHtmlCell class is used by wxHtmlWindow/wxHtmlWinParser // as a basic visual element of HTML page // Author: Vaclav Slavik -// RCS-ID: $Id$ // Copyright: (c) 1999-2003 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -34,9 +33,10 @@ class WXDLLIMPEXP_HTML wxHtmlSelection public: wxHtmlSelection() : m_fromPos(wxDefaultPosition), m_toPos(wxDefaultPosition), - m_fromPrivPos(wxDefaultPosition), m_toPrivPos(wxDefaultPosition), + m_fromCharacterPos(-1), m_toCharacterPos(-1), m_fromCell(NULL), m_toCell(NULL) {} + // this version is used for the user selection defined with the mouse void Set(const wxPoint& fromPos, const wxHtmlCell *fromCell, const wxPoint& toPos, const wxHtmlCell *toCell); void Set(const wxHtmlCell *fromCell, const wxHtmlCell *toCell); @@ -49,11 +49,13 @@ public: const wxPoint& GetToPos() const { return m_toPos; } // these are From/ToCell's private data - const wxPoint& GetFromPrivPos() const { return m_fromPrivPos; } - const wxPoint& GetToPrivPos() const { return m_toPrivPos; } - void SetFromPrivPos(const wxPoint& pos) { m_fromPrivPos = pos; } - void SetToPrivPos(const wxPoint& pos) { m_toPrivPos = pos; } - void ClearPrivPos() { m_toPrivPos = m_fromPrivPos = wxDefaultPosition; } + void ClearFromToCharacterPos() { m_toCharacterPos = m_fromCharacterPos = -1; } + bool AreFromToCharacterPosSet() const { return m_toCharacterPos != -1 && m_fromCharacterPos != -1; } + + void SetFromCharacterPos (wxCoord pos) { m_fromCharacterPos = pos; } + void SetToCharacterPos (wxCoord pos) { m_toCharacterPos = pos; } + wxCoord GetFromCharacterPos () const { return m_fromCharacterPos; } + wxCoord GetToCharacterPos () const { return m_toCharacterPos; } bool IsEmpty() const { return m_fromPos == wxDefaultPosition && @@ -61,7 +63,7 @@ public: private: wxPoint m_fromPos, m_toPos; - wxPoint m_fromPrivPos, m_toPrivPos; + wxCoord m_fromCharacterPos, m_toCharacterPos; const wxHtmlCell *m_fromCell, *m_toCell; }; @@ -88,10 +90,13 @@ public: const wxColour& GetFgColour() const { return m_fgColour; } void SetBgColour(const wxColour& c) { m_bgColour = c; } const wxColour& GetBgColour() const { return m_bgColour; } + void SetBgMode(int m) { m_bgMode = m; } + int GetBgMode() const { return m_bgMode; } private: wxHtmlSelectionState m_selState; wxColour m_fgColour, m_bgColour; + int m_bgMode; }; @@ -201,9 +206,17 @@ public: int WXUNUSED(y) = 0) const { return m_Link; } - // Returns cursor to be used when mouse is over the cell: + // Returns cursor to be used when mouse is over the cell, can be + // overridden by the derived classes to use a different cursor whenever the + // mouse is over this cell. virtual wxCursor GetMouseCursor(wxHtmlWindowInterface *window) const; + // Returns cursor to be used when mouse is over the given point, can be + // overridden if the cursor should change depending on where exactly inside + // the cell the mouse is. + virtual wxCursor GetMouseCursorAt(wxHtmlWindowInterface *window, + const wxPoint& relPos) const; + #if WXWIN_COMPATIBILITY_2_6 // this was replaced by GetMouseCursor, don't use in new code! virtual wxCursor GetCursor() const; @@ -277,10 +290,13 @@ public: // Returned value : true if pagebreak was modified, false otherwise // Usage : while (container->AdjustPagebreak(&p)) {} virtual bool AdjustPagebreak(int *pagebreak, - wxArrayInt& known_pagebreaks) const; + const wxArrayInt& known_pagebreaks, + int pageHeight) const; // Sets cell's behaviour on pagebreaks (see AdjustPagebreak). Default // is true - the cell can be split on two pages + // If there is no way to fit a cell in the current page size, the cell + // is always split, ignoring this setting. void SetCanLiveOnPagebreak(bool can) { m_CanLiveOnPagebreak = can; } // Can the line be broken before this cell? @@ -336,9 +352,9 @@ protected: wxHtmlContainerCell *m_Parent; // dimensions of fragment (m_Descent is used to position text & images) - long m_Width, m_Height, m_Descent; + int m_Width, m_Height, m_Descent; // position where the fragment is drawn: - long m_PosX, m_PosY; + int m_PosX, m_PosY; // superscript/subscript/normal: wxHtmlScriptMode m_ScriptMode; @@ -436,8 +452,10 @@ public: wxHtmlRenderingInfo& info); virtual void DrawInvisible(wxDC& dc, int x, int y, wxHtmlRenderingInfo& info); -/* virtual bool AdjustPagebreak(int *pagebreak, int *known_pagebreaks = NULL, int number_of_pages = 0) const;*/ - virtual bool AdjustPagebreak(int *pagebreak, wxArrayInt& known_pagebreaks) const; + + virtual bool AdjustPagebreak(int *pagebreak, + const wxArrayInt& known_pagebreaks, + int pageHeight) const; // insert cell at the end of m_Cells list void InsertCell(wxHtmlCell *cell); @@ -466,7 +484,7 @@ public: // sets minimal height of this container. void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align; m_LastLayout = -1;} - void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = true; m_BkColour = clr;} + void SetBackgroundColour(const wxColour& clr) {m_BkColour = clr;} // returns background colour (of wxNullColour if none set), so that widgets can // adapt to it: wxColour GetBackgroundColour(); @@ -526,7 +544,6 @@ protected: // alignment horizontal and vertical (left, center, right) int m_WidthFloat, m_WidthFloatUnits; // width float is used in adjustWidth - bool m_UseBkColour; wxColour m_BkColour; // background color of this container int m_Border;