]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/htmlcell.h
Implemented wxDC stack with focus locking and unlocking
[wxWidgets.git] / include / wx / html / htmlcell.h
index 4d476606f2ec90cb5c3f68895668bd26650724f5..61e748c14d015cf54d40954edf7650b9b5d722ce 100644 (file)
@@ -175,6 +175,10 @@ public:
     int GetHeight() const {return m_Height;}
     int GetDescent() const {return m_Descent;}
 
     int GetHeight() const {return m_Height;}
     int GetDescent() const {return m_Descent;}
 
+    // Formatting cells are not visible on the screen, they only alter
+    // renderer's state.
+    bool IsFormattingCell() const { return m_Width == 0 && m_Height == 0; }
+
     const wxString& GetId() const { return m_id; }
     void SetId(const wxString& id) { m_id = id; }
 
     const wxString& GetId() const { return m_id; }
     void SetId(const wxString& id) { m_id = id; }
 
@@ -250,12 +254,10 @@ public:
     // Sets cell's behaviour on pagebreaks (see AdjustPagebreak). Default
     // is true - the cell can be split on two pages
     void SetCanLiveOnPagebreak(bool can) { m_CanLiveOnPagebreak = can; }
     // Sets cell's behaviour on pagebreaks (see AdjustPagebreak). Default
     // is true - the cell can be split on two pages
     void SetCanLiveOnPagebreak(bool can) { m_CanLiveOnPagebreak = can; }
-
-    // Returns y-coordinates that contraint the cell, i.e. left is highest
-    // and right lowest coordinate such that the cell lays between then.
-    // Note: this method does not return meaningful values if you haven't
-    //       called Layout() before!
-    virtual void GetHorizontalConstraints(int *left, int *right) const;
+    
+    // Can the line be broken before this cell?
+    virtual bool IsLinebreakAllowed() const
+        { return !IsFormattingCell(); }
 
     // Returns true for simple == terminal cells, i.e. not composite ones.
     // This if for internal usage only and may disappear in future versions!
 
     // Returns true for simple == terminal cells, i.e. not composite ones.
     // This if for internal usage only and may disappear in future versions!
@@ -334,6 +336,9 @@ public:
               wxHtmlRenderingInfo& info);
     wxCursor GetCursor() const;
     wxString ConvertToText(wxHtmlSelection *sel) const;
               wxHtmlRenderingInfo& info);
     wxCursor GetCursor() const;
     wxString ConvertToText(wxHtmlSelection *sel) const;
+    bool IsLinebreakAllowed() const { return m_allowLinebreak; }
+
+    void SetPreviousWord(wxHtmlWordCell *cell);
 
 protected:
     void SetSelectionPrivPos(wxDC& dc, wxHtmlSelection *s) const;
 
 protected:
     void SetSelectionPrivPos(wxDC& dc, wxHtmlSelection *s) const;
@@ -342,6 +347,7 @@ protected:
                unsigned& pos1, unsigned& pos2) const;
     
     wxString m_Word;
                unsigned& pos1, unsigned& pos2) const;
     
     wxString m_Word;
+    bool     m_allowLinebreak;
 };
 
 
 };
 
 
@@ -398,7 +404,6 @@ public:
     virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;
     virtual const wxHtmlCell* Find(int condition, const void* param) const;
     virtual void OnMouseClick(wxWindow *parent, int x, int y, const wxMouseEvent& event);
     virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;
     virtual const wxHtmlCell* Find(int condition, const void* param) const;
     virtual void OnMouseClick(wxWindow *parent, int x, int y, const wxMouseEvent& event);
-    virtual void GetHorizontalConstraints(int *left, int *right) const;
 
     virtual wxHtmlCell* GetFirstChild() const { return m_Cells; }
 #if WXWIN_COMPATIBILITY_2_4
 
     virtual wxHtmlCell* GetFirstChild() const { return m_Cells; }
 #if WXWIN_COMPATIBILITY_2_4
@@ -413,6 +418,11 @@ public:
     
     virtual wxHtmlCell *GetFirstTerminal() const;
     virtual wxHtmlCell *GetLastTerminal() const;
     
     virtual wxHtmlCell *GetFirstTerminal() const;
     virtual wxHtmlCell *GetLastTerminal() const;
+    
+    
+    // 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);
 
 protected:
     void UpdateRenderingStatePre(wxHtmlRenderingInfo& info,
 
 protected:
     void UpdateRenderingStatePre(wxHtmlRenderingInfo& info,