Use wxUIntPtr instead of wxClientData in wxDataViewListCtrl.

Do not delete the client data in wxDataViewListCtrl, this class mainly exists
for compatibility with wxListCtrl and as the latter doesn't delete its client
data, neither should the former.

See #11088.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-05-25 17:02:31 +00:00
parent dbec0fc8d8
commit 41abc29aa6
4 changed files with 25 additions and 24 deletions

View File

@@ -939,24 +939,20 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
class WXDLLIMPEXP_ADV wxDataViewListStoreLine
{
public:
wxDataViewListStoreLine( wxClientData *data = NULL )
wxDataViewListStoreLine( wxUIntPtr data = NULL )
{
m_data = data;
}
virtual ~wxDataViewListStoreLine()
{
delete m_data;
}
void SetData( wxClientData *data )
{ if (m_data) delete m_data; m_data = data; }
wxClientData *GetData() const
void SetData( wxUIntPtr data )
{ m_data = data; }
wxUIntPtr GetData() const
{ return m_data; }
wxVector<wxVariant> m_values;
private:
wxClientData *m_data;
wxUIntPtr m_data;
};
@@ -970,9 +966,9 @@ public:
void InsertColumn( unsigned int pos, const wxString &varianttype );
void AppendColumn( const wxString &varianttype );
void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL );
void AppendItem( const wxVector<wxVariant> &values, wxUIntPtr data = NULL );
void PrependItem( const wxVector<wxVariant> &values, wxUIntPtr data = NULL );
void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxUIntPtr data = NULL );
void DeleteItem( unsigned int pos );
void DeleteAllItems();
@@ -1052,11 +1048,11 @@ public:
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE );
void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL )
void AppendItem( const wxVector<wxVariant> &values, wxUIntPtr data = NULL )
{ GetStore()->AppendItem( values, data ); }
void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL )
void PrependItem( const wxVector<wxVariant> &values, wxUIntPtr data = NULL )
{ GetStore()->PrependItem( values, data ); }
void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL )
void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxUIntPtr data = NULL )
{ GetStore()->InsertItem( row, values, data ); }
void DeleteItem( unsigned row )
{ GetStore()->DeleteItem( row ); }