]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/gbsizer.h
0bfb617b25c75c369e3ac779bd0fd23e644d2322
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;