use wxUIntPtr instead of long for 3rd parameter of wxListCtrl::SortItems() to allow passing pointers to it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-04-15 21:23:50 +00:00
parent 975fe60bba
commit 6e2f308461
12 changed files with 28 additions and 22 deletions

View File

@@ -226,6 +226,10 @@ Changes in behaviour which may result in compilation errors
- wxEVT_GRID_CELL_CHANGE event renamed to wxEVT_GRID_CELL_CHANGED and shouldn't - wxEVT_GRID_CELL_CHANGE event renamed to wxEVT_GRID_CELL_CHANGED and shouldn't
be vetoed any more, use the new wxEVT_GRID_CELL_CHANGING event to do it. be vetoed any more, use the new wxEVT_GRID_CELL_CHANGING event to do it.
- wxListCtrlCompare function used with wxListCtrl::SortItems() must now declare
its third parameter as wxUIntPtr and not long (this allows passing pointers
to it under 64 bit platforms too).
- Global wxPendingEvents and wxPendingEventsLocker objects were removed. - Global wxPendingEvents and wxPendingEventsLocker objects were removed.
You may use wxEventLoopBase::SuspendProcessingOfPendingEvents instead of You may use wxEventLoopBase::SuspendProcessingOfPendingEvents instead of
locking wxPendingEventsLocker now. locking wxPendingEventsLocker now.

View File

@@ -138,7 +138,7 @@ public:
long InsertColumn( long col, const wxString& heading, long InsertColumn( long col, const wxString& heading,
int format = wxLIST_FORMAT_LEFT, int width = -1 ); int format = wxLIST_FORMAT_LEFT, int width = -1 );
bool ScrollList( int dx, int dy ); bool ScrollList( int dx, int dy );
bool SortItems( wxListCtrlCompare fn, long data ); bool SortItems( wxListCtrlCompare fn, wxUIntPtr data );
bool Update( long item ); bool Update( long item );
// Must provide overload to avoid hiding it (and warnings about it) // Must provide overload to avoid hiding it (and warnings about it)
virtual void Update() { wxControl::Update(); } virtual void Update() { wxControl::Update(); }

View File

@@ -610,7 +610,7 @@ public:
void InsertItem( wxListItem &item ); void InsertItem( wxListItem &item );
void InsertColumn( long col, wxListItem &item ); void InsertColumn( long col, wxListItem &item );
int GetItemWidthWithImage(wxListItem * item); int GetItemWidthWithImage(wxListItem * item);
void SortItems( wxListCtrlCompare fn, long data ); void SortItems( wxListCtrlCompare fn, wxUIntPtr data );
size_t GetItemCount() const; size_t GetItemCount() const;
bool IsEmpty() const { return GetItemCount() == 0; } bool IsEmpty() const { return GetItemCount() == 0; }

View File

@@ -22,7 +22,8 @@
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// type of compare function for wxListCtrl sort operation // type of compare function for wxListCtrl sort operation
typedef int (wxCALLBACK *wxListCtrlCompare)(long item1, long item2, long sortData); typedef
int (wxCALLBACK *wxListCtrlCompare)(long item1, long item2, wxUIntPtr sortData);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxListCtrl constants // wxListCtrl constants

View File

@@ -353,7 +353,7 @@ public:
// or zero if the two items are equivalent. // or zero if the two items are equivalent.
// data is arbitrary data to be passed to the sort function. // data is arbitrary data to be passed to the sort function.
bool SortItems(wxListCtrlCompare fn, long data); bool SortItems(wxListCtrlCompare fn, wxUIntPtr data);
// IMPLEMENTATION // IMPLEMENTATION
virtual bool MSWCommand(WXUINT param, WXWORD id); virtual bool MSWCommand(WXUINT param, WXWORD id);

View File

@@ -281,7 +281,7 @@ class WXDLLIMPEXP_CORE wxListCtrl: public wxControl
// or zero if the two items are equivalent. // or zero if the two items are equivalent.
// data is arbitrary data to be passed to the sort function. // data is arbitrary data to be passed to the sort function.
bool SortItems(wxListCtrlCompare fn, long data); bool SortItems(wxListCtrlCompare fn, wxUIntPtr data);
wxMacDataBrowserListCtrlControl* GetListPeer() const; wxMacDataBrowserListCtrlControl* GetListPeer() const;
@@ -317,7 +317,7 @@ class WXDLLIMPEXP_CORE wxListCtrl: public wxControl
void Command(wxCommandEvent& event) { ProcessCommand(event); }; void Command(wxCommandEvent& event) { ProcessCommand(event); };
wxListCtrlCompare GetCompareFunc() { return m_compareFunc; }; wxListCtrlCompare GetCompareFunc() { return m_compareFunc; };
long GetCompareFuncData() { return m_compareFuncData; }; wxUIntPtr GetCompareFuncData() { return m_compareFuncData; };
// public overrides needed for pimpl approach // public overrides needed for pimpl approach
@@ -391,7 +391,7 @@ protected:
void* m_macListCtrlEventHandler; void* m_macListCtrlEventHandler;
void* m_cgContext; void* m_cgContext;
wxListCtrlCompare m_compareFunc; wxListCtrlCompare m_compareFunc;
long m_compareFuncData; wxUIntPtr m_compareFuncData;
wxTextCtrl* m_textCtrl; // The control used for editing a label wxTextCtrl* m_textCtrl; // The control used for editing a label
wxImageList * m_imageListNormal; // The image list for normal icons wxImageList * m_imageListNormal; // The image list for normal icons

View File

@@ -842,7 +842,7 @@ public:
using the specified @a fnSortCallBack function. This function must have the using the specified @a fnSortCallBack function. This function must have the
following prototype: following prototype:
@code @code
int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData) int wxCALLBACK wxListCompareFunction(long item1, long item2, wxUIntPtr sortData)
@endcode @endcode
It is called each time when the two items must be compared and should return 0 It is called each time when the two items must be compared and should return 0
@@ -860,7 +860,7 @@ public:
Please see the @ref page_samples_listctrl for an example of using this function. Please see the @ref page_samples_listctrl for an example of using this function.
*/ */
bool SortItems(wxListCtrlCompare fnSortCallBack, long data); bool SortItems(wxListCtrlCompare fnSortCallBack, wxUIntPtr data);
protected: protected:

View File

@@ -71,7 +71,8 @@ static const int NUM_ITEMS = 10;
// number of items in icon/small icon view // number of items in icon/small icon view
static const int NUM_ICONS = 9; static const int NUM_ICONS = 9;
int wxCALLBACK MyCompareFunction(long item1, long item2, long WXUNUSED(sortData)) int wxCALLBACK
MyCompareFunction(long item1, long item2, wxUIntPtr WXUNUSED(sortData))
{ {
// inverse the order // inverse the order
if (item1 < item2) if (item1 < item2)

View File

@@ -52,7 +52,7 @@
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static static
int wxCALLBACK wxFileDataNameCompare( long data1, long data2, long sortOrder) int wxCALLBACK wxFileDataNameCompare( long data1, long data2, wxUIntPtr sortOrder)
{ {
wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1); wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1);
wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2); wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2);
@@ -70,7 +70,7 @@ int wxCALLBACK wxFileDataNameCompare( long data1, long data2, long sortOrder)
} }
static static
int wxCALLBACK wxFileDataSizeCompare(long data1, long data2, long sortOrder) int wxCALLBACK wxFileDataSizeCompare(long data1, long data2, wxUIntPtr sortOrder)
{ {
wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1); wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1);
wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2); wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2);
@@ -92,7 +92,7 @@ int wxCALLBACK wxFileDataSizeCompare(long data1, long data2, long sortOrder)
} }
static static
int wxCALLBACK wxFileDataTypeCompare(long data1, long data2, long sortOrder) int wxCALLBACK wxFileDataTypeCompare(long data1, long data2, wxUIntPtr sortOrder)
{ {
wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1); wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1);
wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2); wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2);
@@ -114,7 +114,7 @@ int wxCALLBACK wxFileDataTypeCompare(long data1, long data2, long sortOrder)
} }
static static
int wxCALLBACK wxFileDataTimeCompare(long data1, long data2, long sortOrder) int wxCALLBACK wxFileDataTimeCompare(long data1, long data2, wxUIntPtr sortOrder)
{ {
wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1); wxFileData *fd1 = (wxFileData *)wxUIntToPtr(data1);
wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2); wxFileData *fd2 = (wxFileData *)wxUIntToPtr(data2);

View File

@@ -4152,7 +4152,7 @@ int wxListMainWindow::GetItemWidthWithImage(wxListItem * item)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static wxListCtrlCompare list_ctrl_compare_func_2; static wxListCtrlCompare list_ctrl_compare_func_2;
static long list_ctrl_compare_data; static wxUIntPtr list_ctrl_compare_data;
int LINKAGEMODE list_ctrl_compare_func_1( wxListLineData **arg1, wxListLineData **arg2 ) int LINKAGEMODE list_ctrl_compare_func_1( wxListLineData **arg1, wxListLineData **arg2 )
{ {
@@ -4166,7 +4166,7 @@ int LINKAGEMODE list_ctrl_compare_func_1( wxListLineData **arg1, wxListLineData
return list_ctrl_compare_func_2( data1, data2, list_ctrl_compare_data ); return list_ctrl_compare_func_2( data1, data2, list_ctrl_compare_data );
} }
void wxListMainWindow::SortItems( wxListCtrlCompare fn, long data ) void wxListMainWindow::SortItems( wxListCtrlCompare fn, wxUIntPtr data )
{ {
// selections won't make sense any more after sorting the items so reset // selections won't make sense any more after sorting the items so reset
// them // them
@@ -4918,7 +4918,7 @@ bool wxGenericListCtrl::ScrollList( int dx, int dy )
// or zero if the two items are equivalent. // or zero if the two items are equivalent.
// data is arbitrary data to be passed to the sort function. // data is arbitrary data to be passed to the sort function.
bool wxGenericListCtrl::SortItems( wxListCtrlCompare fn, long data ) bool wxGenericListCtrl::SortItems( wxListCtrlCompare fn, wxUIntPtr data )
{ {
m_mainWin->SortItems( fn, data ); m_mainWin->SortItems( fn, data );
return true; return true;

View File

@@ -1865,12 +1865,12 @@ bool wxListCtrl::ScrollList(int dx, int dy)
struct wxInternalDataSort struct wxInternalDataSort
{ {
wxListCtrlCompare user_fn; wxListCtrlCompare user_fn;
long data; wxUIntPtr data;
}; };
int CALLBACK wxInternalDataCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) int CALLBACK wxInternalDataCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{ {
struct wxInternalDataSort *internalData = (struct wxInternalDataSort *) lParamSort; wxInternalDataSort * const internalData = (wxInternalDataSort *) lParamSort;
wxListItemInternalData *data1 = (wxListItemInternalData *) lParam1; wxListItemInternalData *data1 = (wxListItemInternalData *) lParam1;
wxListItemInternalData *data2 = (wxListItemInternalData *) lParam2; wxListItemInternalData *data2 = (wxListItemInternalData *) lParam2;
@@ -1882,9 +1882,9 @@ int CALLBACK wxInternalDataCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM l
} }
bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) bool wxListCtrl::SortItems(wxListCtrlCompare fn, wxUIntPtr data)
{ {
struct wxInternalDataSort internalData; wxInternalDataSort internalData;
internalData.user_fn = fn; internalData.user_fn = fn;
internalData.data = data; internalData.data = data;

View File

@@ -2205,7 +2205,7 @@ bool wxListCtrl::ScrollList(int dx, int dy)
} }
bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) bool wxListCtrl::SortItems(wxListCtrlCompare fn, wxUIntPtr data)
{ {
if (m_genericImpl) if (m_genericImpl)
return m_genericImpl->SortItems(fn, data); return m_genericImpl->SortItems(fn, data);