]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataview.h
No changes, just factor our wxDirection parsing code in wxXRC.
[wxWidgets.git] / include / wx / dataview.h
index 13f91f3882da774de082e24370e2e9436b300404..c99fe07fe7a3053d6019fc296dfdd511ccb4863e 100644 (file)
 #include "wx/variant.h"
 #include "wx/dynarray.h"
 #include "wx/icon.h"
+#include "wx/itemid.h"
 #include "wx/weakref.h"
 #include "wx/vector.h"
 #include "wx/dataobj.h"
+#include "wx/withimages.h"
 
 class WXDLLIMPEXP_FWD_CORE wxImageList;
 
@@ -44,7 +46,6 @@ class WXDLLIMPEXP_FWD_CORE wxImageList;
 // wxDataViewCtrl globals
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_FWD_ADV wxDataViewItem;
 class WXDLLIMPEXP_FWD_ADV wxDataViewModel;
 class WXDLLIMPEXP_FWD_ADV wxDataViewCtrl;
 class WXDLLIMPEXP_FWD_ADV wxDataViewColumn;
@@ -78,33 +79,14 @@ extern WXDLLIMPEXP_DATA_ADV(const char) wxDataViewCtrlNameStr[];
 // wxDataViewItem
 // ---------------------------------------------------------
 
-class WXDLLIMPEXP_ADV wxDataViewItem
+// Make it a class and not a typedef to allow forward declaring it.
+class wxDataViewItem : public wxItemId<void*>
 {
 public:
-    wxDataViewItem( void* id = NULL )
-        { m_id = id; }
-    wxDataViewItem( const wxDataViewItem &item )
-        { 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;
+    wxDataViewItem() : wxItemId<void*>() { }
+    wxEXPLICIT wxDataViewItem(void* pItem) : wxItemId<void*>(pItem) { }
 };
 
-inline
-bool operator==(const wxDataViewItem& left, const wxDataViewItem& right)
-{
-    return left.GetID() == right.GetID();
-}
-
-inline
-bool operator!=(const wxDataViewItem& left, const wxDataViewItem& right)
-{
-    return !(left == right);
-}
-
 WX_DEFINE_ARRAY(wxDataViewItem, wxDataViewItemArray);
 
 // ---------------------------------------------------------
@@ -700,7 +682,9 @@ public:
                                 const wxDataViewColumn *column = NULL ) = 0;
     virtual void HitTest( const wxPoint & point, wxDataViewItem &item, wxDataViewColumn* &column ) const = 0;
     virtual wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn *column = NULL ) const = 0;
-    
+
+    virtual bool SetRowHeight( int WXUNUSED(rowHeight) ) { return false; }
+
     virtual void StartEditor( const wxDataViewItem & WXUNUSED(item),
                               unsigned int WXUNUSED(column) )
         { }
@@ -761,7 +745,8 @@ public:
         m_column(NULL),
         m_pos(-1,-1),
         m_cacheFrom(0),
-        m_cacheTo(0)
+        m_cacheTo(0),
+        m_editCancelled(false)
 #if wxUSE_DRAG_AND_DROP
         , m_dataObject(NULL),
         m_dataBuffer(NULL),
@@ -778,7 +763,8 @@ public:
         m_column(event.m_column),
         m_pos(event.m_pos),
         m_cacheFrom(event.m_cacheFrom),
-        m_cacheTo(event.m_cacheTo)
+        m_cacheTo(event.m_cacheTo),
+        m_editCancelled(event.m_editCancelled)
 #if wxUSE_DRAG_AND_DROP
         , m_dataObject(event.m_dataObject),
         m_dataFormat(event.m_dataFormat),
@@ -799,6 +785,10 @@ public:
     const wxVariant &GetValue() const { return m_value; }
     void SetValue( const wxVariant &value ) { m_value = value; }
 
+    // for wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE only
+    bool IsEditCancelled() const { return m_editCancelled; }
+    void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; }
+
     // for wxEVT_DATAVIEW_COLUMN_HEADER_CLICKED only
     void SetDataViewColumn( wxDataViewColumn *col ) { m_column = col; }
     wxDataViewColumn *GetDataViewColumn() const { return m_column; }
@@ -838,6 +828,7 @@ protected:
     wxPoint             m_pos;
     int                 m_cacheFrom;
     int                 m_cacheTo;
+    bool                m_editCancelled;
 
 #if wxUSE_DRAG_AND_DROP
     wxDataObject       *m_dataObject;
@@ -1220,10 +1211,11 @@ public:
 
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_ADV wxDataViewTreeCtrl: public wxDataViewCtrl
+class WXDLLIMPEXP_ADV wxDataViewTreeCtrl: public wxDataViewCtrl,
+                                          public wxWithImages
 {
 public:
-    wxDataViewTreeCtrl() { Init(); }
+    wxDataViewTreeCtrl() { }
     wxDataViewTreeCtrl(wxWindow *parent,
                        wxWindowID id,
                        const wxPoint& pos = wxDefaultPosition,
@@ -1231,13 +1223,9 @@ public:
                        long style = wxDV_NO_HEADER | wxDV_ROW_LINES,
                        const wxValidator& validator = wxDefaultValidator)
     {
-        Init();
-
         Create(parent, id, pos, size, style, validator);
     }
 
-    virtual ~wxDataViewTreeCtrl();
-
     bool Create(wxWindow *parent,
                 wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
@@ -1253,24 +1241,21 @@ public:
     bool IsContainer( const wxDataViewItem& item ) const
         { return GetStore()->IsContainer(item); }
 
-    void SetImageList( wxImageList *imagelist );
-    wxImageList* GetImageList() { return m_imageList; }
-
     wxDataViewItem AppendItem( const wxDataViewItem& parent,
-        const wxString &text, int icon = -1, wxClientData *data = NULL );
+        const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL );
     wxDataViewItem PrependItem( const wxDataViewItem& parent,
-        const wxString &text, int icon = -1, wxClientData *data = NULL );
+        const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL );
     wxDataViewItem InsertItem( const wxDataViewItem& parent, const wxDataViewItem& previous,
-        const wxString &text, int icon = -1, wxClientData *data = NULL );
+        const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL );
 
     wxDataViewItem PrependContainer( const wxDataViewItem& parent,
-        const wxString &text, int icon = -1, int expanded = -1,
+        const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE,
         wxClientData *data = NULL );
     wxDataViewItem AppendContainer( const wxDataViewItem& parent,
-        const wxString &text, int icon = -1, int expanded = -1,
+        const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE,
         wxClientData *data = NULL );
     wxDataViewItem InsertContainer( const wxDataViewItem& parent, const wxDataViewItem& previous,
-        const wxString &text, int icon = -1, int expanded = -1,
+        const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE,
         wxClientData *data = NULL );
 
     wxDataViewItem GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const
@@ -1300,14 +1285,6 @@ public:
     void OnCollapsed( wxDataViewEvent &event );
     void OnSize( wxSizeEvent &event );
 
-private:
-    void Init()
-    {
-        m_imageList = NULL;
-    }
-
-    wxImageList *m_imageList;
-
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewTreeCtrl)