X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c33522fca7cddc441a316f5b9fb50d7685435ba..53cdd2c11d11b6286936b93158b157610b169edd:/include/wx/listbase.h diff --git a/include/wx/listbase.h b/include/wx/listbase.h index 4fad38b7a4..df07401a0e 100644 --- a/include/wx/listbase.h +++ b/include/wx/listbase.h @@ -22,7 +22,8 @@ // ---------------------------------------------------------------------------- // 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, wxIntPtr sortData); // ---------------------------------------------------------------------------- // wxListCtrl constants @@ -238,17 +239,20 @@ public: wxListItem& operator=(const wxListItem& item) { - m_mask = item.m_mask; - m_itemId = item.m_itemId; - m_col = item.m_col; - m_state = item.m_state; - m_stateMask = item.m_stateMask; - m_text = item.m_text; - m_image = item.m_image; - m_data = item.m_data; - m_format = item.m_format; - m_width = item.m_width; - m_attr = item.m_attr ? new wxListItemAttr(*item.m_attr) : NULL; + if ( &item != this ) + { + m_mask = item.m_mask; + m_itemId = item.m_itemId; + m_col = item.m_col; + m_state = item.m_state; + m_stateMask = item.m_stateMask; + m_text = item.m_text; + m_image = item.m_image; + m_data = item.m_data; + m_format = item.m_format; + m_width = item.m_width; + m_attr = item.m_attr ? new wxListItemAttr(*item.m_attr) : NULL; + } return *this; } @@ -376,10 +380,10 @@ class WXDLLIMPEXP_CORE wxListEvent : public wxNotifyEvent public: wxListEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) : wxNotifyEvent(commandType, winid) - , m_code(0) - , m_oldItemIndex(0) - , m_itemIndex(0) - , m_col(0) + , m_code(-1) + , m_oldItemIndex(-1) + , m_itemIndex(-1) + , m_col(-1) , m_pointDrag() , m_item() , m_editCancelled(false) @@ -437,32 +441,32 @@ private: // wxListCtrl event macros // ---------------------------------------------------------------------------- -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_BEGIN_RDRAG; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_END_LABEL_EDIT; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_DELETE_ITEM; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; - -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_SELECTED; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_DESELECTED; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_KEY_DOWN; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_INSERT_ITEM; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_COL_CLICK; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_ACTIVATED; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_CACHE_HINT; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_COL_RIGHT_CLICK; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_COL_BEGIN_DRAG; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_COL_DRAGGING; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_COL_END_DRAG; -extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LIST_ITEM_FOCUSED; +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_BEGIN_DRAG, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_BEGIN_RDRAG, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_DELETE_ITEM, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, wxListEvent ); + +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_KEY_DOWN, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_INSERT_ITEM, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_COL_CLICK, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_CACHE_HINT, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_COL_DRAGGING, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_COL_END_DRAG, wxListEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_LIST_ITEM_FOCUSED, wxListEvent ); typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); #define wxListEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxListEventFunction, &func) + wxEVENT_HANDLER_CAST(wxListEventFunction, func) #define wx__DECLARE_LISTEVT(evt, id, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_LIST_ ## evt, id, wxListEventHandler(fn))