]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataview.h
remove file containing many obsolete defines, if anyone wants to revive MicroWindows...
[wxWidgets.git] / include / wx / dataview.h
index 085655fb1627368aee4889b36d6213ac4e29737c..90cb52b033ccc0f89995382198dfe13271817bbb 100644 (file)
 // 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[];
@@ -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();
+    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)
 };