X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5dbe15d0bacde245539f54c4d97af6b4696f01f..e93523680ba3c83cdae75b511214c82f28a2d853:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 8ad75c0d26..90cb52b033 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -68,25 +68,26 @@ extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxDataViewCtrlNameStr[]; class WXDLLIMPEXP_ADV wxDataViewItem { public: - wxDataViewItem( wxUint32 id = 0 ) - { m_id = id; m_reserved1 = 0; m_reserved2 = NULL; } + wxDataViewItem( void* id = NULL ) + { m_id = id; } wxDataViewItem( const wxDataViewItem &item ) - { m_id = item.m_id; m_reserved1 = item.m_reserved1; m_reserved2 = item.m_reserved2; } - bool IsOk() const { return m_id != 0; } - wxUint32 GetID() const { return m_id; } - -public: - wxUint32 m_reserved1; - void* m_reserved2; + { m_id = item.m_id; } + bool IsOk() const { return m_id != NULL; } + void* GetID() const { return m_id; } private: - wxUint32 m_id; + void* m_id; }; +bool operator == (const wxDataViewItem &left, const wxDataViewItem &right); + // --------------------------------------------------------- // wxDataViewModel // --------------------------------------------------------- +typedef int (wxCALLBACK *wxDataViewModelCompare) + (const wxDataViewItem& item1, const wxDataViewItem& item2, unsigned int col, unsigned int option ); + class WXDLLIMPEXP_ADV wxDataViewModel: public wxObjectRefData { public: @@ -107,11 +108,8 @@ public: // define hierachy virtual bool HasChildren( const wxDataViewItem &item ) const = 0; - virtual int GetChildCount( const wxDataViewItem &item ) const = 0; - virtual wxDataViewItem GetParent( const wxDataViewItem &child ) const = 0; virtual wxDataViewItem GetFirstChild( const wxDataViewItem &parent ) const = 0; virtual wxDataViewItem GetNextSibling( const wxDataViewItem &item ) const = 0; - virtual wxDataViewItem GetNthChild( const wxDataViewItem &parent, unsigned int n ) const = 0; // delegated notifiers virtual bool ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item ); @@ -123,11 +121,15 @@ public: void AddNotifier( wxDataViewModelNotifier *notifier ); void RemoveNotifier( wxDataViewModelNotifier *notifier ); + void SetCompareFunction( wxDataViewModelCompare func ) { m_cmpFunc = func; } + wxDataViewModelCompare GetCompareFunction() { return m_cmpFunc; } + protected: // the user should not delete this class directly: he should use DecRef() instead! virtual ~wxDataViewModel() { } - wxList m_notifiers; + wxList m_notifiers; + wxDataViewModelCompare m_cmpFunc; }; // --------------------------------------------------------- @@ -401,13 +403,30 @@ public: virtual bool ClearColumns(); virtual wxDataViewColumn* GetColumn( unsigned int pos ); + void SetExpanderColumn( unsigned int col ) + { m_expander_column = col ; DoSetExpanderColumn(); } + unsigned int GetExpanderColumn() const + { return m_expander_column; } + + void SetIndent( int indent ) + { m_indent = indent ; DoSetIndent(); } + int GetIndent() const + { return m_indent; } + // TODO selection code + virtual wxDataViewItem GetSelection() = 0; + +protected: + virtual void DoSetExpanderColumn() = 0 ; + virtual void DoSetIndent() = 0; private: wxDataViewModel *m_model; wxList m_cols; wxDataViewEventModelNotifier *m_eventNotifier; - + unsigned int m_expander_column; + int m_indent ; + protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCtrlBase) };