]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/htmlcell.h
Add wxBitmap::GetNSImage() which creates an autoreleased NSImage either
[wxWidgets.git] / include / wx / html / htmlcell.h
index 4d476606f2ec90cb5c3f68895668bd26650724f5..e3b1abce930f69e9ff65c92c34335e1d0e1efbfd 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_HTMLCELL_H_
 #define _WX_HTMLCELL_H_
 
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "htmlcell.h"
 #endif
 
@@ -175,6 +175,10 @@ public:
     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; }
 
@@ -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; }
-
-    // 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!
@@ -334,6 +336,9 @@ public:
               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;
@@ -342,6 +347,9 @@ protected:
                unsigned& pos1, unsigned& pos2) const;
     
     wxString m_Word;
+    bool     m_allowLinebreak;
+
+    DECLARE_NO_COPY_CLASS(wxHtmlWordCell)
 };
 
 
@@ -398,7 +406,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 void GetHorizontalConstraints(int *left, int *right) const;
 
     virtual wxHtmlCell* GetFirstChild() const { return m_Cells; }
 #if WXWIN_COMPATIBILITY_2_4
@@ -413,6 +420,11 @@ public:
     
     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,
@@ -472,6 +484,8 @@ public:
 protected:
     wxColour m_Colour;
     unsigned m_Flags;
+
+    DECLARE_NO_COPY_CLASS(wxHtmlColourCell)
 };
 
 
@@ -493,6 +507,8 @@ public:
 
 protected:
     wxFont m_Font;
+
+    DECLARE_NO_COPY_CLASS(wxHtmlFontCell)
 };