: wxSizerItem(width, height, 0, flag, border, userData),
m_pos(pos),
m_span(span),
- m_sizer(NULL)
+ m_gbsizer(NULL)
{
}
: wxSizerItem(window, 0, flag, border, userData),
m_pos(pos),
m_span(span),
- m_sizer(NULL)
+ m_gbsizer(NULL)
{
}
: wxSizerItem(sizer, 0, flag, border, userData),
m_pos(pos),
m_span(span),
- m_sizer(NULL)
+ m_gbsizer(NULL)
{
}
: wxSizerItem(),
m_pos(-1,-1),
m_span(-1,-1),
- m_sizer(NULL)
+ m_gbsizer(NULL)
{
}
bool wxGBSizerItem::SetPos( const wxGBPosition& pos )
{
- if (m_sizer)
+ if (m_gbsizer)
{
- wxCHECK_MSG( !m_sizer->CheckForIntersection(pos, m_span, this), false,
+ wxCHECK_MSG( !m_gbsizer->CheckForIntersection(pos, m_span, this), false,
wxT("An item is already at that position") );
}
m_pos = pos;
bool wxGBSizerItem::SetSpan( const wxGBSpan& span )
{
- if (m_sizer)
+ if (m_gbsizer)
{
- wxCHECK_MSG( !m_sizer->CheckForIntersection(m_pos, span, this), false,
+ wxCHECK_MSG( !m_gbsizer->CheckForIntersection(m_pos, span, this), false,
wxT("An item is already at that position") );
}
m_span = span;
bool wxGridBagSizer::Add( wxGBSizerItem *item )
{
- m_children.Append(item);
- item->SetSizer(this);
+ wxCHECK_MSG( !CheckForIntersection(item), false,
+ wxT("An item is already at that position") );
+ m_children.Append(item);
+ item->SetGBSizer(this);
if ( item->GetWindow() )
item->GetWindow()->SetContainingSizer( this );
+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();