Invalidate best size of wxOSX wxChoice after its number of items changes.
This fixes the calculation of the initial best size as previously the default value was not updated even if longer strings were added later. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c94c3a77b8
commit
c236dbaed2
@ -93,6 +93,10 @@ protected:
|
||||
wxArrayString m_strings;
|
||||
wxChoiceDataArray m_datas ;
|
||||
wxMenu* m_popUpMenu ;
|
||||
|
||||
private:
|
||||
// This should be called when the number of items in the control changes.
|
||||
void DoAfterItemCountChange();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -100,6 +100,13 @@ bool wxChoice::Create(wxWindow *parent,
|
||||
// adding/deleting items to/from the list
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void wxChoice::DoAfterItemCountChange()
|
||||
{
|
||||
InvalidateBestSize();
|
||||
|
||||
GetPeer()->SetMaximum( GetCount() );
|
||||
}
|
||||
|
||||
int wxChoice::DoInsertItems(const wxArrayStringsAdapter & items,
|
||||
unsigned int pos,
|
||||
void **clientData, wxClientDataType type)
|
||||
@ -132,7 +139,7 @@ int wxChoice::DoInsertItems(const wxArrayStringsAdapter & items,
|
||||
AssignNewItemClientData(idx, clientData, i, type);
|
||||
}
|
||||
|
||||
GetPeer()->SetMaximum( GetCount() );
|
||||
DoAfterItemCountChange();
|
||||
|
||||
return pos - 1;
|
||||
}
|
||||
@ -148,8 +155,8 @@ void wxChoice::DoDeleteOneItem(unsigned int n)
|
||||
|
||||
m_strings.RemoveAt( n ) ;
|
||||
m_datas.RemoveAt( n ) ;
|
||||
GetPeer()->SetMaximum( GetCount() ) ;
|
||||
|
||||
DoAfterItemCountChange();
|
||||
}
|
||||
|
||||
void wxChoice::DoClear()
|
||||
@ -162,7 +169,7 @@ void wxChoice::DoClear()
|
||||
m_strings.Empty() ;
|
||||
m_datas.Empty() ;
|
||||
|
||||
GetPeer()->SetMaximum( 0 ) ;
|
||||
DoAfterItemCountChange();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user