X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3ff5a475bd437b639278afe6005e9e462d4989f..09b895cb4a954494063eb17d3dc302a654fd99e5:/include/wx/mac/carbon/listctrl.h diff --git a/include/wx/mac/carbon/listctrl.h b/include/wx/mac/carbon/listctrl.h index 6f34071e49..c2aad6d74f 100644 --- a/include/wx/mac/carbon/listctrl.h +++ b/include/wx/mac/carbon/listctrl.h @@ -15,6 +15,8 @@ #include "wx/defs.h" #include "wx/generic/listctrl.h" +#define wxMAC_ALWAYS_USE_GENERIC_LISTCTRL wxT("mac.listctrl.always_use_generic") + class wxMacDataBrowserListCtrlControl; class wxMacListControl; class wxListCtrlTextCtrlWrapper; @@ -22,7 +24,7 @@ class wxListCtrlRenameTimer; WX_DECLARE_EXPORTED_LIST(wxListItem, wxColumnList); -class WXDLLEXPORT wxListCtrl: public wxControl +class WXDLLIMPEXP_CORE wxListCtrl: public wxControl { DECLARE_DYNAMIC_CLASS(wxListCtrl) public: @@ -106,10 +108,10 @@ class WXDLLEXPORT wxListCtrl: public wxControl // Sets the item text void SetItemText(long item, const wxString& str) ; - + void SetItemTextColour(long item, const wxColour& colour) ; wxColour GetItemTextColour(long item) const; - + void SetItemBackgroundColour(long item, const wxColour& colour) ; wxColour GetItemBackgroundColour(long item) const; @@ -120,7 +122,8 @@ class WXDLLEXPORT wxListCtrl: public wxControl long GetItemData(long item) const ; // Sets the item data - bool SetItemData(long item, long data) ; + bool SetItemPtrData(long item, wxUIntPtr data); + bool SetItemData(long item, long data) { return SetItemPtrData(item, data); } // Gets the item rectangle bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ; @@ -142,7 +145,7 @@ class WXDLLEXPORT wxListCtrl: public wxControl // Gets the number of selected items in the list control int GetSelectedItemCount() const; - + wxRect GetViewRect() const; // Gets the text colour of the listview @@ -314,13 +317,13 @@ class WXDLLEXPORT wxListCtrl: public wxControl wxListCtrlCompare GetCompareFunc() { return m_compareFunc; }; long GetCompareFuncData() { return m_compareFuncData; }; - - // public overrides needed for pimpl approach + + // public overrides needed for pimpl approach virtual bool SetFont(const wxFont& font); virtual bool SetForegroundColour(const wxColour& colour); virtual bool SetBackgroundColour(const wxColour& colour); virtual wxColour GetBackgroundColour(); - + // functions for editing/timer void OnRenameTimer(); bool OnRenameAccept(long itemEdit, const wxString& value); @@ -329,35 +332,43 @@ class WXDLLEXPORT wxListCtrl: public wxControl void ChangeCurrent(long current); void ResetCurrent() { ChangeCurrent((long)-1); } bool HasCurrent() const { return m_current != (long)-1; } - + void OnLeftDown(wxMouseEvent& event); void OnDblClick(wxMouseEvent& event); - + void FinishEditing(wxTextCtrl *text) { delete text; m_textctrlWrapper = NULL; SetFocus(); } - + virtual int GetScrollPos(int orient) const; - -#if wxABI_VERSION >= 20801 + void OnRightDown(wxMouseEvent& event); + void OnMiddleDown(wxMouseEvent& event); void OnChar(wxKeyEvent& event); virtual void SetFocus(); -#endif + void FireMouseEvent(wxEventType eventType, wxPoint position); virtual void SetDropTarget( wxDropTarget *dropTarget ); virtual wxDropTarget* GetDropTarget() const; - + // with CG, we need to get the context from an kEventControlDraw event // unfortunately, the DataBrowser callbacks don't provide the context - // and we need it, so we need to set/remove it before and after draw + // and we need it, so we need to set/remove it before and after draw // events so we can access it in the callbacks. void MacSetDrawingContext(void* context) { m_cgContext = context; } void* MacGetDrawingContext() { return m_cgContext; } + virtual wxVisualAttributes GetDefaultAttributes() const + { + return GetClassDefaultAttributes(GetWindowVariant()); + } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + protected: // protected overrides needed for pimpl approach @@ -372,23 +383,23 @@ protected: wxListCtrlRenameTimer *m_renameTimer; // common part of all ctors void Init(); - + wxGenericListCtrl* m_genericImpl; // allow use of the generic impl. wxMacDataBrowserListCtrlControl* m_dbImpl; void* m_macListCtrlEventHandler; void* m_cgContext; wxListCtrlCompare m_compareFunc; long m_compareFuncData; - + wxTextCtrl* m_textCtrl; // The control used for editing a label wxImageList * m_imageListNormal; // The image list for normal icons wxImageList * m_imageListSmall; // The image list for small icons wxImageList * m_imageListState; // The image list state icons (not implemented yet) - + wxColumnList m_colsInfo; // for storing info about each column wxColour m_textColor; - wxColour m_bgColor; - + wxColour m_bgColor; + // keep track of whether or not we should delete the image list ourselves. bool m_ownsImageListNormal, m_ownsImageListSmall, @@ -401,8 +412,10 @@ protected: // keep track of inserted/deleted columns int m_count; // for virtual lists, store item count - -private: + +private: + int CalcColumnAutoWidth(int col) const; + DECLARE_EVENT_TABLE() };