]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/gbsizer.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxGBPosition 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  12     This class represents the position of an item in a virtual grid of rows and 
  13     columns managed by a wxGridBagSizer. 
  22         Default constructor, setting the row and column to (0,0). 
  26         Construct a new wxGBPosition, setting the row and column. 
  28     wxGBPosition(int row
, int col
); 
  31         Get the current column value. 
  36         Get the current row value. 
  41         Set a new column value. 
  51         Checks if the position is valid. An invalid position is (-1,-1). 
  53     bool operator!(const wxGBPosition
& p
) const; 
  56         Compare equality of two wxGBPositions. 
  58     bool operator==(const wxGBPosition
& p
) const; 
  66     A wxSizer that can lay out items in a virtual grid like a wxFlexGridSizer 
  67     but in this case explicit positioning of the items is allowed using 
  68     wxGBPosition, and items can optionally span more than one row and/or column 
  74 class wxGridBagSizer 
: public wxFlexGridSizer
 
  78         Constructor, with optional parameters to specify the gap between the 
  81     wxGridBagSizer(int vgap 
= 0, int hgap 
= 0); 
  85         Adds the given item to the given position. 
  87         @return A valid pointer if the item was successfully placed at the 
  88                  given position, or @NULL if something was already there. 
  90     wxSizerItem
* Add(wxWindow
* window
, const wxGBPosition
& pos
, 
  91                      const wxGBSpan
& span 
= wxDefaultSpan
, 
  92                      int flag 
= 0, int border 
= 0, wxObject
* userData 
= NULL
); 
  93     wxSizerItem
* Add(wxSizer
* sizer
, const wxGBPosition
& pos
, 
  94                      const wxGBSpan
& span 
= wxDefaultSpan
, 
  95                      int flag 
= 0, int border 
= 0, wxObject
* userData 
= NULL
); 
  96     wxSizerItem
* Add(int width
, int height
, const wxGBPosition
& pos
, 
  97                      const wxGBSpan
& span 
= wxDefaultSpan
, 
  98                      int flag 
= 0, int border 
= 0, wxObject
* userData 
= NULL
); 
  99     wxSizerItem
* Add(wxGBSizerItem
* item
); 
 103         Called when the managed size of the sizer is needed or when layout 
 110         Look at all items and see if any intersect (or would overlap) the given 
 111         item. Returns @true if so, @false if there would be no overlap. If an 
 112         @a excludeItem is given then it will not be checked for intersection, 
 113         for example it may be the item we are checking the position of. 
 115     bool CheckForIntersection(wxGBSizerItem
* item
, 
 116                               wxGBSizerItem
* excludeItem 
= NULL
); 
 117     bool CheckForIntersection(const wxGBPosition
& pos
, const wxGBSpan
& span
, 
 118                               wxGBSizerItem
* excludeItem 
= NULL
); 
 123         Find the sizer item for the given window or subsizer, returns @NULL if 
 124         not found. (non-recursive) 
 126     wxGBSizerItem
* FindItem(wxWindow
* window
); 
 127     wxGBSizerItem
* FindItem(wxSizer
* sizer
); 
 131         Return the sizer item located at the point given in pt, or @NULL if 
 132         there is no item at that point. The (x,y) coordinates in @a pt 
 133         correspond to the client coordinates of the window using the sizer for 
 134         layout. (non-recursive) 
 136     wxGBSizerItem
* FindItemAtPoint(const wxPoint
& pt
); 
 139         Return the sizer item for the given grid cell, or @NULL if there is no 
 140         item at that position. (non-recursive) 
 142     wxGBSizerItem
* FindItemAtPosition(const wxGBPosition
& pos
); 
 145         Return the sizer item that has a matching user data (it only compares 
 146         pointer values) or @NULL if not found. (non-recursive) 
 148     wxGBSizerItem
* FindItemWithData(const wxObject
* userData
); 
 151         Get the size of the specified cell, including hgap and vgap. Only valid 
 152         after window layout has been performed. 
 154     wxSize 
GetCellSize(int row
, int col
) const; 
 157         Get the size used for cells in the grid with no item. 
 159     wxSize 
GetEmptyCellSize() const; 
 163         Get the grid position of the specified item. 
 165     wxGBPosition 
GetItemPosition(wxWindow
* window
); 
 166     wxGBPosition 
GetItemPosition(wxSizer
* sizer
); 
 167     wxGBPosition 
GetItemPosition(size_t index
); 
 172         Get the row/col spanning of the specified item. 
 174     wxGBSpan 
GetItemSpan(wxWindow
* window
); 
 175     wxGBSpan 
GetItemSpan(wxSizer
* sizer
); 
 176     wxGBSpan 
GetItemSpan(size_t index
); 
 180         Called when the managed size of the sizer is needed or when layout 
 186         Set the size used for cells in the grid with no item. 
 188     void SetEmptyCellSize(const wxSize
& sz
); 
 192         Set the grid position of the specified item. Returns @true on success. 
 193         If the move is not allowed (because an item is already there) then 
 196     bool SetItemPosition(wxWindow
* window
, const wxGBPosition
& pos
); 
 197     bool SetItemPosition(wxSizer
* sizer
, const wxGBPosition
& pos
); 
 198     bool SetItemPosition(size_t index
, const wxGBPosition
& pos
); 
 203         Set the row/col spanning of the specified item. Returns @true on 
 204         success. If the move is not allowed (because an item is already there) 
 205         then @false is returned. 
 207     bool SetItemSpan(wxWindow
* window
, const wxGBSpan
& span
); 
 208     bool SetItemSpan(wxSizer
* sizer
, const wxGBSpan
& span
); 
 209     bool SetItemSpan(size_t index
, const wxGBSpan
& span
); 
 218     The wxGBSizerItem class is used by the wxGridBagSizer for tracking the 
 219     items in the sizer. It adds grid position and spanning information to the 
 220     normal wxSizerItem by adding wxGBPosition and wxGBSpan attrbibutes. Most of 
 221     the time you will not need to use a wxGBSizerItem directly in your code, 
 222     but there are a couple of cases where it is handy. 
 227 class wxGBSizerItem 
: public wxSizerItem
 
 231         Construct a sizer item for tracking a spacer. 
 233     wxGBSizerItem(int width
, int height
, const wxGBPosition
& pos
, 
 234                   const wxGBSpan
& span
, int flag
, int border
, 
 237         Construct a sizer item for tracking a window. 
 239     wxGBSizerItem(wxWindow
* window
, const wxGBPosition
& pos
, 
 240                   const wxGBSpan
& span
, int flag
, int border
, 
 243         Construct a sizer item for tracking a subsizer. 
 245     wxGBSizerItem(wxSizer
* sizer
, const wxGBPosition
& pos
, 
 246                   const wxGBSpan
& span
, int flag
, int border
, 
 250         Get the row and column of the endpoint of this item. 
 252     void GetEndPos(int& row
, int& col
); 
 256         Get the grid position of the item. 
 258     wxGBPosition 
GetPos() const; 
 259     void GetPos(int& row
, int& col
) const; 
 264         Get the row and column spanning of the item. 
 266     wxGBSpan 
GetSpan() const; 
 267     void GetSpan(int& rowspan
, int& colspan
) const; 
 271         Returns @true if this item and the @a other item instersect. 
 273     bool Intersects(const wxGBSizerItem
& other
); 
 275         Returns @true if the given pos/span would intersect with this item. 
 277     bool Intersects(const wxGBPosition
& pos
, const wxGBSpan
& span
); 
 280         If the item is already a member of a sizer then first ensure that there 
 281         is no other item that would intersect with this one at the new 
 282         position, then set the new position. Returns @true if the change is 
 283         successful and after the next Layout the item will be moved. 
 285     bool SetPos(const wxGBPosition
& pos
); 
 288         If the item is already a member of a sizer then first ensure that there 
 289         is no other item that would intersect with this one with its new 
 290         spanning size, then set the new spanning. Returns @true if the change 
 291         is successful and after the next Layout the item will be resized. 
 293     bool SetSpan(const wxGBSpan
& span
); 
 301     This class is used to hold the row and column spanning attributes of items 
 311         Default constructor, setting the rowspan and colspan to (1,1) meaning 
 312         that the item occupies one cell in each direction. 
 316         Construct a new wxGBSpan, setting the @a rowspan and @a colspan. 
 318     wxGBSpan(int rowspan
, int colspan
); 
 321         Get the current colspan value. 
 323     int GetColspan() const; 
 326         Get the current rowspan value. 
 328     int GetRowspan() const; 
 331         Set a new colspan value. 
 333     void SetColspan(int colspan
); 
 336         Set a new rowspan value. 
 338     void SetRowspan(int rowspan
); 
 341         Checks if the span is valid. An invalid span is (-1,-1). 
 343     bool operator!(const wxGBSpan
& o
) const; 
 346         Compare equality of two wxGBSpans. 
 348     bool operator==(const wxGBSpan
& o
) const;