// 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.
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:
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);
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);