X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6acba9a7194b30113636efb08e0b165f91011e79..9c54e4ae1f401a9c337b97b588e5a356d79cbe82:/include/wx/html/htmlcell.h?ds=inline diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h index 4d476606f2..e3b1abce93 100644 --- a/include/wx/html/htmlcell.h +++ b/include/wx/html/htmlcell.h @@ -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) };