X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6154212e512945487e19c393fa3b9119c45bd801..b5ec7dd6eebda65b5f430cebf2f92eaddc4f7c9e:/include/wx/generic/dataview.h diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index 083d4b1cfb..3674ee73c1 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -99,6 +99,8 @@ public: wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int align = wxDVR_DEFAULT_ALIGNMENT ); + void RenderText( const wxString &text, int xoffset, wxRect cell, wxDC *dc, int state ); + protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer) }; @@ -210,6 +212,35 @@ private: protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer) }; + +// --------------------------------------------------------- +// wxDataViewIconTextRenderer +// --------------------------------------------------------- + +class wxDataViewIconTextRenderer: public wxDataViewCustomRenderer +{ +public: + wxDataViewIconTextRenderer( const wxString &varianttype = wxT("wxDataViewIconText"), + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + int align = wxDVR_DEFAULT_ALIGNMENT ); + virtual ~wxDataViewIconTextRenderer(); + + bool SetValue( const wxVariant &value ); + bool GetValue( wxVariant &value ) const; + + virtual bool Render( wxRect cell, wxDC *dc, int state ); + virtual wxSize GetSize() const; + + virtual bool HasEditorCtrl() { return true; } + virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ); + virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ); + +private: + wxDataViewIconText m_value; + +protected: + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer) +}; // --------------------------------------------------------- // wxDataViewDateRenderer @@ -314,6 +345,8 @@ protected: // wxDataViewCtrl // --------------------------------------------------------- +WX_DECLARE_LIST(wxDataViewColumn, wxDataViewColumnList ); + class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase, public wxScrollHelperNative { @@ -326,6 +359,8 @@ class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase, public: wxDataViewCtrl() : wxScrollHelperNative(this) { + //No sorting column at start, I think + m_sortingColumn = NULL; Init(); } @@ -335,6 +370,7 @@ public: const wxValidator& validator = wxDefaultValidator ) : wxScrollHelperNative(this) { + m_sortingColumn = NULL; Create(parent, id, pos, size, style, validator ); } @@ -349,16 +385,38 @@ public: virtual bool AssociateModel( wxDataViewModel *model ); virtual bool AppendColumn( wxDataViewColumn *col ); + virtual bool PrependColumn( wxDataViewColumn *col ); virtual void DoSetExpanderColumn(); virtual void DoSetIndent(); + virtual unsigned int GetColumnCount() const; + virtual wxDataViewColumn* GetColumn( unsigned int pos ) const; + virtual bool DeleteColumn( wxDataViewColumn *column ); + virtual bool ClearColumns(); + virtual int GetColumnPosition( const wxDataViewColumn *column ) const; + + virtual wxDataViewColumn *GetSortingColumn() const; + + virtual wxDataViewItem GetSelection() const; virtual int GetSelections( wxDataViewItemArray & sel ) const; virtual void SetSelections( const wxDataViewItemArray & sel ); virtual void Select( const wxDataViewItem & item ); virtual void Unselect( const wxDataViewItem & item ); virtual bool IsSelected( const wxDataViewItem & item ) const; + virtual void SelectAll(); + virtual void UnselectAll(); + + virtual void EnsureVisible( const wxDataViewItem & item, + const wxDataViewColumn *column = NULL ); + virtual void HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column ) const; + virtual wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn *column = NULL ) const; + + virtual void Expand( const wxDataViewItem & item ); + virtual void Collapse( const wxDataViewItem & item ); + +protected: virtual int GetSelections( wxArrayInt & sel ) const; virtual void SetSelections( const wxArrayInt & sel ); virtual void Select( int row ); @@ -367,15 +425,13 @@ public: virtual void SelectRange( int from, int to ); virtual void UnselectRange( int from, int to ); - virtual void SelectAll(); - virtual void UnselectAll(); - - virtual void EnsureVisible( int row ); - virtual void EnsureVisible( const wxDataViewItem & item, wxDataViewColumn *column = NULL ); + virtual void EnsureVisible( int row, int column ); virtual wxDataViewItem GetItemByRow( unsigned int row ) const; virtual int GetRowByItem( const wxDataViewItem & item ) const; + wxDataViewColumn* GetSortingColumn() { return m_sortingColumn; } + void SetSortingColumn( wxDataViewColumn* column ) { m_sortingColumn = column; } public: // utility functions not part of the API @@ -391,9 +447,11 @@ public: // utility functions not part of the API wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; } private: + wxDataViewColumnList m_cols; wxDataViewModelNotifier *m_notifier; wxDataViewMainWindow *m_clientArea; wxDataViewHeaderWindow *m_headerArea; + wxDataViewColumn* m_sortingColumn; private: void OnSize( wxSizeEvent &event );