// wxDataViewCtrl globals
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_ADV wxDataViewItem;
-class WXDLLIMPEXP_ADV wxDataViewModel;
-class WXDLLIMPEXP_ADV wxDataViewCtrl;
-class WXDLLIMPEXP_ADV wxDataViewColumn;
-class WXDLLIMPEXP_ADV wxDataViewRenderer;
-class WXDLLIMPEXP_ADV wxDataViewModelNotifier;
+class WXDLLIMPEXP_FWD_ADV wxDataViewItem;
+class WXDLLIMPEXP_FWD_ADV wxDataViewModel;
+class WXDLLIMPEXP_FWD_ADV wxDataViewCtrl;
+class WXDLLIMPEXP_FWD_ADV wxDataViewColumn;
+class WXDLLIMPEXP_FWD_ADV wxDataViewRenderer;
+class WXDLLIMPEXP_FWD_ADV wxDataViewModelNotifier;
class wxDataViewEventModelNotifier;
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:
// 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 );
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();
+ virtual ~wxDataViewModel() { }
- wxList m_notifiers;
+ wxList m_notifiers;
+ wxDataViewModelCompare m_cmpFunc;
};
// ---------------------------------------------------------
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)
};