// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "gbsizer.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
}
-bool wxGridBagSizer::Add( wxWindow *window,
- const wxGBPosition& pos, const wxGBSpan& span,
- int flag, int border, wxObject* userData )
+wxSizerItem* wxGridBagSizer::Add( wxWindow *window,
+ const wxGBPosition& pos, const wxGBSpan& span,
+ int flag, int border, wxObject* userData )
{
wxGBSizerItem* item = new wxGBSizerItem(window, pos, span, flag, border, userData);
if ( Add(item) )
- return true;
+ return item;
else
{
delete item;
- return false;
+ return (wxSizerItem*)NULL;
}
}
-bool wxGridBagSizer::Add( wxSizer *sizer,
+wxSizerItem* wxGridBagSizer::Add( wxSizer *sizer,
const wxGBPosition& pos, const wxGBSpan& span,
int flag, int border, wxObject* userData )
{
wxGBSizerItem* item = new wxGBSizerItem(sizer, pos, span, flag, border, userData);
if ( Add(item) )
- return true;
+ return item;
else
{
delete item;
- return false;
+ return (wxSizerItem*)NULL;
}
}
-bool wxGridBagSizer::Add( int width, int height,
+wxSizerItem* wxGridBagSizer::Add( int width, int height,
const wxGBPosition& pos, const wxGBSpan& span,
int flag, int border, wxObject* userData )
{
wxGBSizerItem* item = new wxGBSizerItem(width, height, pos, span, flag, border, userData);
if ( Add(item) )
- return true;
+ return item;
else
{
delete item;
- return false;
+ return (wxSizerItem*)NULL;
}
}
-bool wxGridBagSizer::Add( wxGBSizerItem *item )
+wxSizerItem* wxGridBagSizer::Add( wxGBSizerItem *item )
{
- wxCHECK_MSG( !CheckForIntersection(item), false,
+ wxCHECK_MSG( !CheckForIntersection(item), NULL,
wxT("An item is already at that position") );
m_children.Append(item);
item->SetGBSizer(this);
if ( item->GetWindow() )
item->GetWindow()->SetContainingSizer( this );
- return true;
+ return item;
}
wxGBSizerItem* item = (wxGBSizerItem*)node->GetData();
wxRect rect(item->GetPosition(), item->GetSize());
rect.Inflate(m_hgap, m_vgap);
- if ( rect.Inside(pt) )
+ if ( rect.Contains(pt) )
return item;
node = node->GetNext();
}
m_cols = m_colWidths.GetCount();
int idx, width, height;
- AdjustForGrowables(sz, m_calculatedMinSize, m_rows, m_cols);
+ AdjustForGrowables(sz);
// Find the start positions on the window of the rows and columns
wxArrayInt rowpos;
{
int row, col, endrow, endcol;
wxGBSizerItem* item = (wxGBSizerItem*)node->GetData();
- item->GetPos(row, col);
- item->GetEndPos(endrow, endcol);
- height = 0;
- for(idx=row; idx <= endrow; idx++)
- height += m_rowHeights[idx];
- height += (endrow - row) * m_vgap; // add a vgap for every row spanned
+ if ( item->IsShown() )
+ {
+ item->GetPos(row, col);
+ item->GetEndPos(endrow, endcol);
- width = 0;
- for (idx=col; idx <= endcol; idx++)
- width += m_colWidths[idx];
- width += (endcol - col) * m_hgap; // add a hgap for every col spanned
+ height = 0;
+ for(idx=row; idx <= endrow; idx++)
+ height += m_rowHeights[idx];
+ height += (endrow - row) * m_vgap; // add a vgap for every row spanned
- SetItemBounds(item, colpos[col], rowpos[row], width, height);
+ width = 0;
+ for (idx=col; idx <= endcol; idx++)
+ width += m_colWidths[idx];
+ width += (endcol - col) * m_hgap; // add a hgap for every col spanned
+
+ SetItemBounds(item, colpos[col], rowpos[row], width, height);
+ }
node = node->GetNext();
}
// we'll try to make them automatically select a location for the item
// anyway.
-void wxGridBagSizer::Add( wxWindow *window, int, int flag, int border, wxObject* userData )
+wxSizerItem* wxGridBagSizer::Add( wxWindow *window, int, int flag, int border, wxObject* userData )
{
- Add(window, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
+ return Add(window, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
}
-void wxGridBagSizer::Add( wxSizer *sizer, int, int flag, int border, wxObject* userData )
+wxSizerItem* wxGridBagSizer::Add( wxSizer *sizer, int, int flag, int border, wxObject* userData )
{
- Add(sizer, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
+ return Add(sizer, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
}
-void wxGridBagSizer::Add( int width, int height, int, int flag, int border, wxObject* userData )
+wxSizerItem* wxGridBagSizer::Add( int width, int height, int, int flag, int border, wxObject* userData )
{
- Add(width, height, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
+ return Add(width, height, FindEmptyCell(), wxDefaultSpan, flag, border, userData);
}
// this class and should not be used. Their implementation in this class
// simply fails.
-void wxGridBagSizer::Add( wxSizerItem * )
-{ wxFAIL_MSG(wxT("Invalid Add form called.")); }
+wxSizerItem* wxGridBagSizer::Add( wxSizerItem * )
+{
+ wxFAIL_MSG(wxT("Invalid Add form called."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Prepend( wxWindow *, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Prepend( wxWindow *, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Prepend( wxSizer *, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Prepend( wxSizer *, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Prepend( int, int, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Prepend( int, int, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Prepend( wxSizerItem * )
-{ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Prepend( wxSizerItem * )
+{
+ wxFAIL_MSG(wxT("Prepend should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Insert( size_t, wxWindow *, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Insert( size_t, wxWindow *, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Insert( size_t, wxSizer *, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Insert( size_t, wxSizer *, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Insert( size_t, int, int, int, int, int, wxObject* )
-{ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Insert( size_t, int, int, int, int, int, wxObject* )
+{
+ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
-void wxGridBagSizer::Insert( size_t, wxSizerItem * )
-{ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer.")); }
+wxSizerItem* wxGridBagSizer::Insert( size_t, wxSizerItem * )
+{
+ wxFAIL_MSG(wxT("Insert should not be used with wxGridBagSizer."));
+ return (wxSizerItem*)NULL;
+}
//---------------------------------------------------------------------------