#include "wx/dynarray.h"
#include "wx/icon.h"
#include "wx/imaglist.h"
+#include "wx/weakref.h"
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
// ----------------------------------------------------------------------------
// the default minimal width of the columns:
#define wxDVC_DEFAULT_MINWIDTH 30
-// the default alignment of wxDataViewRenderers:
-#define wxDVR_DEFAULT_ALIGNMENT (wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL)
+// The default alignment of wxDataViewRenderers is to take
+// the alignment from the column it owns.
+#define wxDVR_DEFAULT_ALIGNMENT -1
// ---------------------------------------------------------
virtual void Resort() = 0;
void SetOwner( wxDataViewModel *owner ) { m_owner = owner; }
- wxDataViewModel *GetOwner() { return m_owner; }
+ wxDataViewModel *GetOwner() const { return m_owner; }
private:
wxDataViewModel *m_owner;
wxDataViewItemArray m_hash;
unsigned int m_lastIndex;
bool m_ordered;
- bool m_useHash;
};
// ---------------------------------------------------------
#ifdef __WXMAC__
// better than nothing
-typedef wxDataViewVirtualListModel wxDataViewIndexListModel
+typedef wxDataViewIndexListModel wxDataViewVirtualListModel;
#else
class WXDLLIMPEXP_ADV wxDataViewVirtualListModel: public wxDataViewModel
wxDataViewRendererBase( const wxString &varianttype,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int alignment = wxDVR_DEFAULT_ALIGNMENT );
+ ~wxDataViewRendererBase();
virtual bool Validate( wxVariant& WXUNUSED(value) )
{ return true; }
void SetOwner( wxDataViewColumn *owner ) { m_owner = owner; }
- wxDataViewColumn* GetOwner() { return m_owner; }
+ wxDataViewColumn* GetOwner() const { return m_owner; }
// renderer properties:
protected:
wxString m_variantType;
wxDataViewColumn *m_owner;
- wxControl *m_editorCtrl;
+ wxWeakRef<wxControl> m_editorCtrl;
wxDataViewItem m_item; // for m_editorCtrl
// internal utility:
: m_text(text), m_icon(icon)
{ }
wxDataViewIconText( const wxDataViewIconText &other )
+ : wxObject()
{ m_icon = other.m_icon; m_text = other.m_text; }
void SetText( const wxString &text ) { m_text = text; }
#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
{
virtual bool PrependColumn( wxDataViewColumn *col );
+ virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
virtual bool AppendColumn( wxDataViewColumn *col );
virtual unsigned int GetColumnCount() const = 0;
{ return m_expander_column; }
virtual wxDataViewColumn *GetSortingColumn() const = 0;
-
+
void SetIndent( int indent )
{ m_indent = indent ; DoSetIndent(); }
int GetIndent() const
#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