added wxFlexGridSizer::Add{Row,Col}Growable() (#2603)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-07-13 18:06:50 +00:00
parent 9379b3f68d
commit 67ef83eb03
4 changed files with 42 additions and 5 deletions

View File

@@ -372,6 +372,7 @@ All (GUI):
- Implement wxListCtrl::GetSubItemRect() in generic version (David Barnard). - Implement wxListCtrl::GetSubItemRect() in generic version (David Barnard).
- Added wxVListBox::GetItemRect() (Javier Urien). - Added wxVListBox::GetItemRect() (Javier Urien).
- Show busy cursor in wxLaunchDefaultBrowser and add wxBROWSER_NOBUSYCURSOR. - Show busy cursor in wxLaunchDefaultBrowser and add wxBROWSER_NOBUSYCURSOR.
- Added wxFlexGridSizer::Is{Row,Col}Growable() (Marcin Wojdyr).
wxGTK: wxGTK:

View File

@@ -785,6 +785,8 @@ public:
void AddGrowableCol( size_t idx, int proportion = 0 ); void AddGrowableCol( size_t idx, int proportion = 0 );
void RemoveGrowableCol( size_t idx ); void RemoveGrowableCol( size_t idx );
bool IsRowGrowable( size_t idx );
bool IsColGrowable( size_t idx );
// the sizer cells may grow in both directions, not grow at all or only // the sizer cells may grow in both directions, not grow at all or only
// grow in one direction but not the other // grow in one direction but not the other

View File

@@ -571,17 +571,24 @@ public:
/** /**
Specifies that column @a idx (starting from zero) should be grown if Specifies that column @a idx (starting from zero) should be grown if
there is extra space available to the sizer. there is extra space available to the sizer.
The @a proportion parameter has the same meaning as the stretch factor for
the sizers() except that if all proportions are 0, The @a proportion parameter has the same meaning as the stretch factor
then all columns are resized equally (instead of not being resized at all). for the sizers() except that if all proportions are 0, then all columns
are resized equally (instead of not being resized at all).
Notice that the row must not be already growable, if you need to change
the proportion you must call RemoveGrowableCol() first and then make it
growable (with a different proportion) again. You can use IsColGrowable()
to check whether a column is already growable.
*/ */
void AddGrowableCol(size_t idx, int proportion = 0); void AddGrowableCol(size_t idx, int proportion = 0);
/** /**
Specifies that row idx (starting from zero) should be grown if there Specifies that row idx (starting from zero) should be grown if there
is extra space available to the sizer. is extra space available to the sizer.
See AddGrowableCol() for the description
of @a proportion parameter. This is identical to AddGrowableCol() except that it works with rows
and not columns.
*/ */
void AddGrowableRow(size_t idx, int proportion = 0); void AddGrowableRow(size_t idx, int proportion = 0);
@@ -606,6 +613,20 @@ public:
*/ */
int GetNonFlexibleGrowMode() const; int GetNonFlexibleGrowMode() const;
/**
Returns @true if column @a idx is growable.
@since 2.9.0
*/
bool IsColGrowable(size_t idx);
/**
Returns @true if row @a idx is growable.
@since 2.9.0
*/
bool IsRowGrowable(size_t idx);
/** /**
Specifies that column idx is no longer growable. Specifies that column idx is no longer growable.
*/ */

View File

@@ -1820,15 +1820,28 @@ void wxFlexGridSizer::AdjustForGrowables(const wxSize& sz)
} }
} }
bool wxFlexGridSizer::IsRowGrowable( size_t idx )
{
return m_growableRows.Index( idx ) != wxNOT_FOUND;
}
bool wxFlexGridSizer::IsColGrowable( size_t idx )
{
return m_growableCols.Index( idx ) != wxNOT_FOUND;
}
void wxFlexGridSizer::AddGrowableRow( size_t idx, int proportion ) void wxFlexGridSizer::AddGrowableRow( size_t idx, int proportion )
{ {
wxASSERT_MSG( !IsRowGrowable( idx ),
"AddGrowableRow() called for growable row" );
m_growableRows.Add( idx ); m_growableRows.Add( idx );
m_growableRowsProportions.Add( proportion ); m_growableRowsProportions.Add( proportion );
} }
void wxFlexGridSizer::AddGrowableCol( size_t idx, int proportion ) void wxFlexGridSizer::AddGrowableCol( size_t idx, int proportion )
{ {
wxASSERT_MSG( !IsColGrowable( idx ),
"AddGrowableCol() called for growable column" );
m_growableCols.Add( idx ); m_growableCols.Add( idx );
m_growableColsProportions.Add( proportion ); m_growableColsProportions.Add( proportion );
} }