Fix client data handling: delete client data for all items when a
wxChoice is deleted, delete client data for an item when that item is deleted (backported). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ;
|
|||||||
|
|
||||||
wxChoice::~wxChoice()
|
wxChoice::~wxChoice()
|
||||||
{
|
{
|
||||||
// DeleteMenu( m_macPopUpMenuId ) ;
|
if ( HasClientObjectData() )
|
||||||
|
{
|
||||||
|
size_t i, max = GetCount();
|
||||||
|
|
||||||
|
for ( i = 0; i < max; ++i )
|
||||||
|
delete GetClientObject(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteMenu( m_macPopUpMenuId ) ;
|
||||||
// DisposeMenu( m_macPopUpMenuHandle ) ;
|
// DisposeMenu( m_macPopUpMenuHandle ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const
|
|||||||
}
|
}
|
||||||
return wxSize(lbWidth, lbHeight);
|
return wxSize(lbWidth, lbHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item)
|
|||||||
|
|
||||||
void wxComboBox::Delete(int n)
|
void wxComboBox::Delete(int n)
|
||||||
{
|
{
|
||||||
|
if ( HasClientObjectData() )
|
||||||
|
{
|
||||||
|
SetClientObject(n, NULL);
|
||||||
|
}
|
||||||
m_choice->Delete( n );
|
m_choice->Delete( n );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ;
|
|||||||
|
|
||||||
wxChoice::~wxChoice()
|
wxChoice::~wxChoice()
|
||||||
{
|
{
|
||||||
// DeleteMenu( m_macPopUpMenuId ) ;
|
if ( HasClientObjectData() )
|
||||||
|
{
|
||||||
|
size_t i, max = GetCount();
|
||||||
|
|
||||||
|
for ( i = 0; i < max; ++i )
|
||||||
|
delete GetClientObject(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteMenu( m_macPopUpMenuId ) ;
|
||||||
// DisposeMenu( m_macPopUpMenuHandle ) ;
|
// DisposeMenu( m_macPopUpMenuHandle ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const
|
|||||||
}
|
}
|
||||||
return wxSize(lbWidth, lbHeight);
|
return wxSize(lbWidth, lbHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item)
|
|||||||
|
|
||||||
void wxComboBox::Delete(int n)
|
void wxComboBox::Delete(int n)
|
||||||
{
|
{
|
||||||
|
if ( HasClientObjectData() )
|
||||||
|
{
|
||||||
|
SetClientObject(n, NULL);
|
||||||
|
}
|
||||||
m_choice->Delete( n );
|
m_choice->Delete( n );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user