Set m_rows, m_cols so GetRows/GetCols in the base class work. Added

GetCellSize method.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-11-07 17:45:10 +00:00
parent 2825b3f502
commit 6217b9aa7e
3 changed files with 35 additions and 13 deletions

View File

@@ -94,6 +94,15 @@ pointer values) or NULL if not found. (non-recursive)
\membersection{wxGridBagSizer::GetCellSize}\label{wxgridbagsizergetcellsize}
\constfunc{wxSize}{GetCellSize}{\param{int }{row}, \param{int }{col}}
Get the size of the specified cell, including hgap and vgap. Only
valid after a Layout.
\membersection{wxGridBagSizer::GetEmptyCellSize}\label{wxgridbagsizergetemptycellsize} \membersection{wxGridBagSizer::GetEmptyCellSize}\label{wxgridbagsizergetemptycellsize}
\constfunc{wxSize}{GetEmptyCellSize}{\void} \constfunc{wxSize}{GetEmptyCellSize}{\void}

View File

@@ -202,6 +202,10 @@ public:
wxSize GetEmptyCellSize() const { return m_emptyCellSize; } wxSize GetEmptyCellSize() const { return m_emptyCellSize; }
void SetEmptyCellSize(const wxSize& sz) { m_emptyCellSize = sz; } void SetEmptyCellSize(const wxSize& sz) { m_emptyCellSize = sz; }
// Get the size of the specified cell, including hgap and vgap. Only
// valid after a Layout.
wxSize GetCellSize(int row, int col) const;
// Get the grid position of the specified item (non-recursive) // Get the grid position of the specified item (non-recursive)
wxGBPosition GetItemPosition(wxWindow *window); wxGBPosition GetItemPosition(wxWindow *window);
wxGBPosition GetItemPosition(wxSizer *sizer); wxGBPosition GetItemPosition(wxSizer *sizer);

View File

@@ -238,6 +238,15 @@ bool wxGridBagSizer::Add( wxGBSizerItem *item )
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
wxSize wxGridBagSizer::GetCellSize(int row, int col) const
{
wxCHECK_MSG( (row < m_rows) && (col < m_cols),
wxDefaultSize,
wxT("Invalid cell."));
return wxSize( m_colWidths[col], m_rowHeights[row] );
}
wxGBPosition wxGridBagSizer::GetItemPosition(wxWindow *window) wxGBPosition wxGridBagSizer::GetItemPosition(wxWindow *window)
{ {
wxGBPosition badpos(-1,-1); wxGBPosition badpos(-1,-1);
@@ -456,14 +465,14 @@ wxSize wxGridBagSizer::CalcMin()
// Now traverse the heights and widths arrays calcing the totals, including gaps // Now traverse the heights and widths arrays calcing the totals, including gaps
int width = 0; int width = 0;
int ncols = m_colWidths.GetCount(); m_cols = m_colWidths.GetCount();
for (idx=0; idx < ncols; idx++) for (idx=0; idx < m_cols; idx++)
width += m_colWidths[idx] + ( idx == ncols-1 ? 0 : m_hgap ); width += m_colWidths[idx] + ( idx == m_cols-1 ? 0 : m_hgap );
int height = 0; int height = 0;
int nrows = m_rowHeights.GetCount(); m_rows = m_rowHeights.GetCount();
for (idx=0; idx < nrows; idx++) for (idx=0; idx < m_rows; idx++)
height += m_rowHeights[idx] + ( idx == nrows-1 ? 0 : m_vgap ); height += m_rowHeights[idx] + ( idx == m_rows-1 ? 0 : m_vgap );
return wxSize(width, height); return wxSize(width, height);
} }
@@ -481,17 +490,17 @@ void wxGridBagSizer::RecalcSizes()
wxPoint pt( GetPosition() ); wxPoint pt( GetPosition() );
wxSize sz( GetSize() ); wxSize sz( GetSize() );
int nrows = m_rowHeights.GetCount(); m_rows = m_rowHeights.GetCount();
int ncols = m_colWidths.GetCount(); m_cols = m_colWidths.GetCount();
int idx, width, height; int idx, width, height;
AdjustForGrowables(sz, minsz, nrows, ncols); AdjustForGrowables(sz, minsz, m_rows, m_cols);
// Find the start positions on the window of the rows and columns // Find the start positions on the window of the rows and columns
wxArrayInt rowpos; wxArrayInt rowpos;
rowpos.Add(0, nrows); rowpos.Add(0, m_rows);
int y = pt.y; int y = pt.y;
for (idx=0; idx < nrows; idx++) for (idx=0; idx < m_rows; idx++)
{ {
height = m_rowHeights[idx] + m_vgap; height = m_rowHeights[idx] + m_vgap;
rowpos[idx] = y; rowpos[idx] = y;
@@ -499,9 +508,9 @@ void wxGridBagSizer::RecalcSizes()
} }
wxArrayInt colpos; wxArrayInt colpos;
colpos.Add(0, ncols); colpos.Add(0, m_cols);
int x = pt.x; int x = pt.x;
for (idx=0; idx < ncols; idx++) for (idx=0; idx < m_cols; idx++)
{ {
width = m_colWidths[idx] + m_hgap; width = m_colWidths[idx] + m_hgap;
colpos[idx] = x; colpos[idx] = x;