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:
Mattia Barbon
2003-02-11 21:14:17 +00:00
parent 201ebeaa96
commit 03a1817871
4 changed files with 28 additions and 2 deletions

View File

@@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ;
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 ) ;
}
@@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const
}
return wxSize(lbWidth, lbHeight);
}

View File

@@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item)
void wxComboBox::Delete(int n)
{
if ( HasClientObjectData() )
{
SetClientObject(n, NULL);
}
m_choice->Delete( n );
}

View File

@@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ;
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 ) ;
}
@@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const
}
return wxSize(lbWidth, lbHeight);
}

View File

@@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item)
void wxComboBox::Delete(int n)
{
if ( HasClientObjectData() )
{
SetClientObject(n, NULL);
}
m_choice->Delete( n );
}