]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataview.h
document column reordering in wxListCtrl; fix confusion between GetColumnOrder()...
[wxWidgets.git] / include / wx / dataview.h
index 23e6747392e0e3a2974257d8cbd4c7627adaf0a8..efc9f45a71af0410550eebfb9cc0bf8481a7a95c 100644 (file)
 
 class WXDLLIMPEXP_FWD_CORE wxDataFormat;
 
-#if defined(__WXGTK20__)
-    // for testing
-    // #define wxUSE_GENERICDATAVIEWCTRL 1
-#elif defined(__WXMAC__)
-#else
-    #define wxUSE_GENERICDATAVIEWCTRL 1
-#endif
-
 // ----------------------------------------------------------------------------
 // wxDataViewCtrl flags
 // ----------------------------------------------------------------------------
@@ -50,7 +42,7 @@ class WXDLLIMPEXP_FWD_ADV wxDataViewColumn;
 class WXDLLIMPEXP_FWD_ADV wxDataViewRenderer;
 class WXDLLIMPEXP_FWD_ADV wxDataViewModelNotifier;
 
-extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxDataViewCtrlNameStr[];
+extern WXDLLIMPEXP_DATA_ADV(const char) wxDataViewCtrlNameStr[];
 
 // the default width of new (text) columns:
 #define wxDVC_DEFAULT_WIDTH             80
@@ -375,6 +367,7 @@ public:
 
 protected:
     void OnChar( wxKeyEvent &event );
+    void OnTextEnter( wxCommandEvent &event );
     void OnKillFocus( wxFocusEvent &event );
     void OnIdle( wxIdleEvent &event );
 
@@ -479,8 +472,7 @@ public:
     { }
     wxDataViewIconText( const wxDataViewIconText &other )
         : wxObject()
-        , m_text(other.m_text), m_icon(other.m_icon)
-    { }
+    { m_icon = other.m_icon; m_text = other.m_text; }
 
     void SetText( const wxString &text ) { m_text = text; }
     wxString GetText() const             { return m_text; }
@@ -586,6 +578,7 @@ protected:
 #define wxDV_VERT_RULES              0x0008     // light vertical rules between columns
 
 #define wxDV_ROW_LINES               0x0010     // alternating colour in rows
+#define wxDV_VARIABLE_LINE_HEIGHT    0x0020     // variable line height
 
 class WXDLLIMPEXP_ADV wxDataViewCtrlBase: public wxControl
 {
@@ -698,6 +691,7 @@ public:
 
 
     virtual bool PrependColumn( wxDataViewColumn *col );
+    virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
     virtual bool AppendColumn( wxDataViewColumn *col );
 
     virtual unsigned int GetColumnCount() const = 0;
@@ -855,13 +849,13 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
 #define EVT_DATAVIEW_COLUMN_SORTED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_SORTED, id, fn)
 #define EVT_DATAVIEW_COLUMN_REORDERED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_REORDERED, id, fn)
 
-#if defined(wxUSE_GENERICDATAVIEWCTRL)
-    #include "wx/generic/dataview.h"
-#elif defined(__WXGTK20__)
+
+#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
     #include "wx/gtk/dataview.h"
-#elif defined(__WXMAC__)
-    #include "wx/mac/dataview.h"
+#elif defined(__WXMAC__) && !defined(__WXUNIVERSAL__)
+    #include "wx/osx/dataview.h"
 #else
+    #define wxUSE_GENERICDATAVIEWCTRL
     #include "wx/generic/dataview.h"
 #endif
 
@@ -888,6 +882,33 @@ private:
     long    m_min,m_max;
 };
 
+#ifndef __WXGTK20__
+
+// -------------------------------------
+// wxDataViewChoiceRenderer
+// -------------------------------------
+
+class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewCustomRenderer
+{
+public:
+    wxDataViewChoiceRenderer( const wxArrayString &choices,
+                            wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
+                            int alignment = wxDVR_DEFAULT_ALIGNMENT );
+    virtual bool HasEditorCtrl() { return true; }
+    virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
+    virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
+    virtual bool Render( wxRect rect, wxDC *dc, int state );
+    virtual wxSize GetSize() const;
+    virtual bool SetValue( const wxVariant &value );
+    virtual bool GetValue( wxVariant &value ) const;
+
+private:
+    wxArrayString m_choices;
+    wxString      m_data;
+};
+
+#endif
+
 //-----------------------------------------------------------------------------
 // wxDataViewTreeStore
 //-----------------------------------------------------------------------------