class wxMacDataBrowserListCtrlControl;
class wxMacListControl;
+class wxListCtrlTextCtrlWrapper;
+class wxListCtrlRenameTimer;
+
+WX_DECLARE_EXPORTED_LIST(wxListItem, wxColumnList);
class WXDLLEXPORT wxListCtrl: public wxControl
{
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);
+ void OnRenameCancelled(long itemEdit);
+
+ 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();
+ }
+
+ // 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
+ // events so we can access it in the callbacks.
+ void MacSetDrawingContext(void* context) { m_cgContext = context; }
+ void* MacGetDrawingContext() { return m_cgContext; }
protected:
// protected overrides needed for pimpl approach
int width, int height,
int sizeFlags = wxSIZE_AUTO);
+ virtual wxSize DoGetBestSize() const;
+
+ long m_current;
+ wxListCtrlTextCtrlWrapper *m_textctrlWrapper;
+ wxListCtrlRenameTimer *m_renameTimer;
// common part of all ctors
void Init();
wxGenericListCtrl* m_genericImpl; // allow use of the generic impl.
wxMacDataBrowserListCtrlControl* m_dbImpl;
- void* /*EventHandlerRef*/ m_macListCtrlEventHandler;
+ void* m_macListCtrlEventHandler;
+ void* m_cgContext;
wxListCtrlCompare m_compareFunc;
long m_compareFuncData;
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;
+
// keep track of whether or not we should delete the image list ourselves.
bool m_ownsImageListNormal,
m_ownsImageListSmall,
// keep track of inserted/deleted columns
int m_count; // for virtual lists, store item count
+
+private:
+ DECLARE_EVENT_TABLE()
};
#endif