many wxItemContainer-related changes:

1. the main function for item insertion is now DoInsertItems() which allows
   for much more efficient addition of many new items at once
2. the items client data management is done entirely in wxItemContainer
   itself, the derived classes don't have to distinguish between void and
   object client data
3. many fixes for sorted controls, in particular implemented wxCB_SORT support
   in wxGTK combobox


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-07-26 13:54:14 +00:00
parent 7f73c398d5
commit a236aa2058
98 changed files with 2825 additions and 2678 deletions

View File

@@ -69,8 +69,8 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxChoiceNameStr);
virtual void Delete(unsigned int n);
virtual void Clear();
virtual void DoDeleteOneItem(unsigned int n);
virtual void DoClear();
virtual unsigned int GetCount() const ;
virtual int GetSelection() const ;
@@ -83,17 +83,12 @@ public:
protected:
virtual wxSize DoGetBestSize() const ;
virtual int DoAppend(const wxString& item);
virtual int DoInsert(const wxString& item, unsigned int pos);
virtual int DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData, wxClientDataType type);
virtual void DoSetItemClientData(unsigned int n, void* clientData);
virtual void* DoGetItemClientData(unsigned int n) const;
virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
// free all memory we have (used by Clear() and dtor)
// prevent collision with some BSD definitions of macro Free()
void FreeData();
wxArrayString m_strings;
wxChoiceDataArray m_datas ;

View File

@@ -85,8 +85,8 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase
const wxString& name = wxComboBoxNameStr);
// List functions
virtual void Delete(unsigned int n);
virtual void Clear();
virtual void DoDeleteOneItem(unsigned int n);
virtual void DoClear();
virtual int GetSelection() const;
virtual void SetSelection(int n);
@@ -135,19 +135,16 @@ protected:
// common part of all ctors
void Init();
void FreeData();
// override the base class virtuals involved in geometry calculations
virtual wxSize DoGetBestSize() const;
virtual void DoMoveWindow(int x, int y, int width, int height);
virtual int DoAppend(const wxString& item);
virtual int DoInsert(const wxString& item, unsigned int pos);
virtual int DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData, wxClientDataType type);
virtual void DoSetItemClientData(unsigned int n, void* clientData);
virtual void * DoGetItemClientData(unsigned int n) const;
virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
virtual wxClientData * DoGetItemClientObject(unsigned int n) const;
// the subcontrols
wxComboBoxText* m_text;

View File

@@ -89,8 +89,8 @@ public:
// implement base class pure virtuals
virtual void Refresh(bool eraseBack = true, const wxRect *rect = NULL);
virtual void Clear();
virtual void Delete(unsigned int n);
virtual void DoClear();
virtual void DoDeleteOneItem(unsigned int n);
virtual unsigned int GetCount() const;
virtual wxString GetString(unsigned int n) const;
@@ -111,16 +111,15 @@ public:
protected:
// from wxItemContainer
virtual int DoAppend(const wxString& item);
virtual int DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData, wxClientDataType type);
virtual void DoSetItemClientData(unsigned int n, void* clientData);
virtual void* DoGetItemClientData(unsigned int n) const;
virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
// from wxListBoxBase
virtual void DoSetSelection(int n, bool select);
virtual void DoInsertItems(const wxArrayString& items, unsigned int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData);
virtual void DoSetFirstItem(int n);
virtual int DoListHitTest(const wxPoint& point) const;

View File

@@ -824,8 +824,7 @@ class wxMacListControl
{
public:
virtual void MacDelete( unsigned int n ) = 0;
virtual void MacInsert( unsigned int n, const wxString& item, int column = -1 ) = 0;
virtual void MacInsert( unsigned int n, const wxArrayString& items, int column = -1 ) = 0;
virtual void MacInsert( unsigned int n, const wxArrayStringsAdapter& items, int column = -1 ) = 0;
// returns index of newly created line
virtual int MacAppend( const wxString& item ) = 0;
virtual void MacSetString( unsigned int n, const wxString& item ) = 0;
@@ -975,8 +974,7 @@ public :
// add and remove
virtual void MacDelete( unsigned int n );
virtual void MacInsert( unsigned int n, const wxString& item, int column = -1 );
virtual void MacInsert( unsigned int n, const wxArrayString& items, int column = -1 );
virtual void MacInsert( unsigned int n, const wxArrayStringsAdapter& items, int column = -1 );
virtual int MacAppend( const wxString& item );
virtual void MacClear();