]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataview.h
use wxString's UTF8 methods in wxCocoa, it's slightly more efficient in UTF8 build
[wxWidgets.git] / include / wx / dataview.h
index 86b9199a1961d9d59412a2b1be125b446a55ad78..76b98fcf144d3b91a65e553426478f8e9c93fb9c 100644 (file)
@@ -74,6 +74,7 @@ public:
         { m_id = item.m_id; }
     bool IsOk() const                  { return m_id != NULL; }
     void* GetID() const                { return m_id; }
+    operator const void* () const      { return m_id; }
     
 private:
     void* m_id;
@@ -153,7 +154,7 @@ public:
     // default compare function
     virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, 
                          unsigned int column, bool ascending );
-    
+
 protected:
     // the user should not delete this class directly: he should use DecRef() instead!
     virtual ~wxDataViewModel() { }
@@ -396,7 +397,7 @@ protected:
 // wxDataViewCtrlBase
 // ---------------------------------------------------------
 
-WX_DECLARE_OBJARRAY(wxDataViewItem, wxDataViewItemArray);
+WX_DEFINE_ARRAY(wxDataViewItem, wxDataViewItemArray);
 
 #define wxDV_SINGLE                  0x0000     // for convenience
 #define wxDV_MULTIPLE                0x0001     // can select multiple items
@@ -474,29 +475,23 @@ public:
     int GetIndent() const 
         { return m_indent; } 
 
-    //Selection Code
+    virtual wxDataViewItem GetSelection() = 0;
     virtual int GetSelections( wxDataViewItemArray & sel ) const = 0;
     virtual void SetSelections( const wxDataViewItemArray & sel ) = 0;
     virtual void Select( const wxDataViewItem & item ) = 0;
     virtual void Unselect( const wxDataViewItem & item ) = 0;
     virtual bool IsSelected( const wxDataViewItem & item ) const = 0;
 
-    virtual int GetSelections( wxArrayInt & sel ) const = 0; 
-    virtual void SetSelections( const wxArrayInt & sel ) = 0;
-    virtual void Select( int row ) = 0;
-    virtual void Unselect( int row ) = 0;
-    virtual bool IsSelected( int row ) const = 0;
-    virtual void SelectRange( int from, int to ) = 0;
-    virtual void UnselectRange( int from, int to ) = 0;
-
     virtual void SelectAll() = 0;
     virtual void UnselectAll() = 0;
 
-    virtual void EnsureVisible( int row ) = 0;
-    virtual void EnsureVisible( const wxDataViewItem & item ) = 0;
-
-    virtual wxDataViewItem GetItemByRow( unsigned int row ) const = 0;
-    virtual int GetRowByItem( const wxDataViewItem & item ) const = 0;
+    virtual void EnsureVisible( const wxDataViewItem & item,
+                                wxDataViewColumn *column = NULL ) = 0;
+                                
+    virtual void HitTest( const wxPoint &point, 
+                          wxDataViewItem &item, unsigned int &column ) const = 0;
+    virtual wxRect GetItemRect( const wxDataViewItem &item, 
+                          unsigned int column ) const = 0;
 
 protected:
     virtual void DoSetExpanderColumn() = 0 ;
@@ -568,9 +563,12 @@ private:
 
 BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_SELECTED, -1)
+    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_DESELECTED, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, -1)
+    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, -1)
+    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, -1)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, -1)
@@ -591,8 +589,11 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
     wx__DECLARE_EVT1(wxEVT_COMMAND_DATAVIEW_ ## evt, id, wxDataViewEventHandler(fn))
 
 #define EVT_DATAVIEW_ITEM_SELECTED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_SELECTED, id, fn)
+#define EVT_DATAVIEW_ITEM_DESELECTED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_DESELECTED, id, fn)
 #define EVT_DATAVIEW_ITEM_ACTIVATED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_ACTIVATED, id, fn)
+#define EVT_DATAVIEW_ITEM_COLLAPSING(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_COLLAPSING, id, fn)
 #define EVT_DATAVIEW_ITEM_COLLAPSED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_COLLAPSED, id, fn)
+#define EVT_DATAVIEW_ITEM_EXPANDING(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EXPANDING, id, fn)
 #define EVT_DATAVIEW_ITEM_EXPANDED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EXPANDED, id, fn)
 #define EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_CLICK, id, fn)
 #define EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_RIGHT_CLICK, id, fn)