X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9861f022c31f3f46b694f77cb166b02452a63b6d..55bfbcb92b41ab1c6a0d490f2f3fcadefc069bb7:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index c495318526..f54e93fb84 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -233,6 +233,33 @@ private: void InitStatics(); // BAD }; +//----------------------------------------------------------------------------- +// wxDataViewEditorCtrlEvtHandler +//----------------------------------------------------------------------------- + +class wxDataViewEditorCtrlEvtHandler: public wxEvtHandler +{ +public: + wxDataViewEditorCtrlEvtHandler( wxControl *editor, wxDataViewRenderer *owner ); + + void AcceptChangesAndFinish(); + void SetFocusOnIdle( bool focus = true ) { m_focusOnIdle = focus; } + +protected: + void OnChar( wxKeyEvent &event ); + void OnKillFocus( wxFocusEvent &event ); + void OnIdle( wxIdleEvent &event ); + +private: + wxDataViewRenderer *m_owner; + wxControl *m_editorCtrl; + bool m_finished; + bool m_focusOnIdle; + +private: + DECLARE_EVENT_TABLE() +}; + // --------------------------------------------------------- // wxDataViewRendererBase // --------------------------------------------------------- @@ -280,10 +307,29 @@ public: // to combine alignment flags (e.g. wxALIGN_LEFT|wxALIGN_BOTTOM) virtual void SetAlignment( int align ) = 0; virtual int GetAlignment() const = 0; - + + // in-place editing + virtual bool HasEditorCtrl() + { return false; } + virtual wxControl* CreateEditorCtrl(wxWindow * WXUNUSED(parent), + wxRect WXUNUSED(labelRect), + const wxVariant& WXUNUSED(value)) + { return NULL; } + virtual bool GetValueFromEditorCtrl(wxControl * WXUNUSED(editor), + wxVariant& WXUNUSED(value)) + { return false; } + + virtual bool StartEditing( unsigned int row, wxRect labelRect ); + virtual void CancelEditing(); + virtual bool FinishEditing(); + + wxControl *GetEditorCtrl() { return m_editorCtrl; } + protected: wxString m_variantType; wxDataViewColumn *m_owner; + wxControl *m_editorCtrl; + unsigned int m_row; // for m_editorCtrl // internal utility: const wxDataViewCtrl* GetView() const; @@ -447,7 +493,7 @@ public: private: wxDataViewListModel *m_model; wxList m_cols; - + protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCtrlBase) };