X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b52f7aba0dce7c2a1d26d41a930856b93b02870..45b323521bcc3b79c6aa02acc48269eb7e5a80f0:/include/wx/gbsizer.h diff --git a/include/wx/gbsizer.h b/include/wx/gbsizer.h index 797d9d377d..54b03abe35 100644 --- a/include/wx/gbsizer.h +++ b/include/wx/gbsizer.h @@ -25,9 +25,9 @@ // Classes to represent a position in the grid and a size of an item in the // grid, IOW, the number of rows and columns it occupies. I chose to use these // instead of wxPoint and wxSize because they are (x,y) and usually pixel -// oriented whild grids and tables are usually thought of as (row,col) so some -// confusion would definitly result in using wxPoint... -// +// oriented while grids and tables are usually thought of as (row,col) so some +// confusion would definitely result in using wxPoint... +// // NOTE: This should probably be refactored to a common RowCol data type which // is used for this and also for wxGridCellCoords. //--------------------------------------------------------------------------- @@ -44,7 +44,7 @@ public: int GetCol() const { return m_col; } void SetRow(int row) { m_row = row; } void SetCol(int col) { m_col = col; } - + bool operator==(const wxGBPosition& p) const { return m_row == p.m_row && m_col == p.m_col; } bool operator!=(const wxGBPosition& p) const { return !(*this == p); } @@ -66,7 +66,7 @@ public: int GetColspan() const { return m_colspan; } void SetRowspan(int rowspan) { m_rowspan = rowspan; } void SetColspan(int colspan) { m_colspan = colspan; } - + bool operator==(const wxGBSpan& o) const { return m_rowspan == o.m_rowspan && m_colspan == o.m_colspan; } bool operator!=(const wxGBSpan& o) const { return !(*this == o); } @@ -75,7 +75,7 @@ private: int m_colspan; }; - + WXDLLEXPORT_DATA(extern const wxGBSpan) wxDefaultSpan; @@ -117,7 +117,7 @@ public: // default ctor wxGBSizerItem(); - + // Get the grid position of the item wxGBPosition GetPos() const { return m_pos; } void GetPos(int& row, int& col) const; @@ -147,20 +147,20 @@ public: // Get the row and column of the endpoint of this item void GetEndPos(int& row, int& col); - - wxGridBagSizer* GetSizer() const { return m_sizer; } - void SetSizer(wxGridBagSizer* sizer) { m_sizer = sizer; } - - + + wxGridBagSizer* GetGBSizer() const { return m_gbsizer; } + void SetGBSizer(wxGridBagSizer* sizer) { m_gbsizer = sizer; } + + protected: wxGBPosition m_pos; wxGBSpan m_span; - wxGridBagSizer* m_sizer; + wxGridBagSizer* m_gbsizer; // so SetPos/SetSpan can check for intersects + - -private: +private: DECLARE_DYNAMIC_CLASS(wxGBSizerItem) - DECLARE_NO_COPY_CLASS(wxGBSizerItem) + DECLARE_NO_COPY_CLASS(wxGBSizerItem) }; @@ -202,6 +202,10 @@ public: wxSize GetEmptyCellSize() const { return m_emptyCellSize; } void SetEmptyCellSize(const wxSize& sz) { m_emptyCellSize = sz; } + // Get the size of the specified cell, including hgap and vgap. Only + // valid after a Layout. + wxSize GetCellSize(int row, int col) const; + // Get the grid position of the specified item (non-recursive) wxGBPosition GetItemPosition(wxWindow *window); wxGBPosition GetItemPosition(wxSizer *sizer); @@ -225,24 +229,31 @@ public: bool SetItemSpan(wxWindow *window, const wxGBSpan& span); bool SetItemSpan(wxSizer *sizer, const wxGBSpan& span); bool SetItemSpan(size_t index, const wxGBSpan& span); - + // Find the sizer item for the given window or subsizer, returns NULL if // not found. (non-recursive) wxGBSizerItem* FindItem(wxWindow* window); wxGBSizerItem* FindItem(wxSizer* sizer); - + // Return the sizer item for the given grid cell, or NULL if there is no // item at that position. (non-recursive) wxGBSizerItem* FindItemAtPosition(const wxGBPosition& pos); - + + // Return the sizer item located at the point given in pt, or NULL if + // there is no item at that point. The (x,y) coordinates in pt correspond + // to the client coordinates of the window using the sizer for + // layout. (non-recursive) + wxGBSizerItem* FindItemAtPoint(const wxPoint& pt); + + // Return the sizer item that has a matching user data (it only compares // pointer values) or NULL if not found. (non-recursive) wxGBSizerItem* FindItemWithData(const wxObject* userData); - + // These are what make the sizer do size calculations and layout virtual void RecalcSizes(); virtual wxSize CalcMin(); @@ -255,7 +266,7 @@ public: bool CheckForIntersection(wxGBSizerItem* item, wxGBSizerItem* excludeItem = NULL); bool CheckForIntersection(const wxGBPosition& pos, const wxGBSpan& span, wxGBSizerItem* excludeItem = NULL); - + // The Add base class virtuals should not be used with this class, but // we'll try to make them automatically select a location for the item // anyway. @@ -276,17 +287,17 @@ public: virtual void Prepend( int width, int height, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); virtual void Prepend( wxSizerItem *item ); - + protected: wxGBPosition FindEmptyCell(); wxSize m_emptyCellSize; - - + + private: DECLARE_CLASS(wxGridBagSizer) - DECLARE_NO_COPY_CLASS(wxGridBagSizer) + DECLARE_NO_COPY_CLASS(wxGridBagSizer) }; //---------------------------------------------------------------------------