Fix recently broken wxPickerBase::SetPickerCtrlGrowable()

Resetting growable flag didn't work correctly after the changes of
0d86c01b8b, fix this and reuse the same code for
both this function and SetTextCtrlGrowable().

See https://github.com/wxWidgets/wxWidgets/pull/296
This commit is contained in:
Vadim Zeitlin 2016-06-09 15:24:44 +02:00
parent 2e67381548
commit dd562649f0
2 changed files with 25 additions and 17 deletions

View File

@ -76,29 +76,14 @@ public: // public API
{ return (GetTextCtrlItem()->GetFlag() & wxGROW) != 0; }
void SetTextCtrlGrowable(bool grow = true)
{
wxSizerItem* const item = GetTextCtrlItem();
int f = item->GetFlag();
if ( grow )
f |= wxGROW;
else
f &= ~wxGROW;
item->SetFlag(f);
DoSetGrowableFlagFor(GetTextCtrlItem(), grow);
}
bool IsPickerCtrlGrowable() const
{ return (GetPickerCtrlItem()->GetFlag() & wxGROW) != 0; }
void SetPickerCtrlGrowable(bool grow = true)
{
wxSizerItem* const item = GetPickerCtrlItem();
int f = item->GetFlag();
if ( grow )
{
f &= ~wxALIGN_MASK;
f |= wxGROW;
}
item->SetFlag(f);
DoSetGrowableFlagFor(GetPickerCtrlItem(), grow);
}
bool HasTextCtrl() const
@ -174,6 +159,9 @@ protected:
wxBoxSizer *m_sizer;
private:
// Common implementation of Set{Text,Picker}CtrlGrowable().
void DoSetGrowableFlagFor(wxSizerItem* item, bool grow);
wxDECLARE_ABSTRACT_CLASS(wxPickerBase);
};

View File

@ -153,6 +153,26 @@ void wxPickerBase::DoSetToolTip(wxToolTip *tip)
#endif // wxUSE_TOOLTIPS
void wxPickerBase::DoSetGrowableFlagFor(wxSizerItem* item, bool grow)
{
// We assume that our controls use either wxALIGN_CENTER_VERTICAL or wxGROW
// style, this code would need to be changed in the unlikely event any
// other style is used for them.
int f = item->GetFlag();
if ( grow )
{
f &= ~wxALIGN_CENTER_VERTICAL;
f |= wxGROW;
}
else
{
f &= ~wxGROW;
f |= wxALIGN_CENTER_VERTICAL;
}
item->SetFlag(f);
}
// ----------------------------------------------------------------------------
// wxPickerBase - event handlers
// ----------------------------------------------------------------------------