\wxheading{Derived from}
-\helpref{wxFlexGridSizer}{wxflexgridsizer}
+\helpref{wxFlexGridSizer}{wxflexgridsizer}\\
+\helpref{wxGridSizer}{wxgridsizer}\\
+\helpref{wxSizer}{wxsizer}\\
+\helpref{wxObject}{wxobject}
+
\wxheading{Include files}
+\membersection{wxGridBagSizer::FindItemAtPoint}\label{wxgridbagsizerfinditematpoint}
+
+\func{wxGBSizerItem*}{FindItemAtPoint}{\param{const wxPoint\& }{pt}}
+
+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)
+
+
+
\membersection{wxGridBagSizer::FindItemAtPosition}\label{wxgridbagsizerfinditematposition}
\func{wxGBSizerItem*}{FindItemAtPosition}{\param{const wxGBPosition\& }{pos}}
// 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.
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);
+wxGBSizerItem* wxGridBagSizer::FindItemAtPoint(const wxPoint& pt)
+{
+ wxSizerItemList::compatibility_iterator node = m_children.GetFirst();
+ while (node)
+ {
+ wxGBSizerItem* item = (wxGBSizerItem*)node->GetData();
+ wxRect rect(item->GetPosition(), item->GetSize());
+ rect.Inflate(m_hgap, m_vgap);
+ if ( rect.Inside(pt) )
+ return item;
+ node = node->GetNext();
+ }
+ return NULL;
+}
+
+
+
+
wxGBSizerItem* wxGridBagSizer::FindItemWithData(const wxObject* userData)
{
wxSizerItemList::compatibility_iterator node = m_children.GetFirst();