#include "wx/textctrl.h"
#include "wx/bitmap.h"
#include "wx/variant.h"
-#include "wx/listctrl.h"
#include "wx/dynarray.h"
#include "wx/icon.h"
};
+
+// ----------------------------------------------------------------------------
+// wxDataViewItemAttr: a structure containing the visual attributes of an item
+// ----------------------------------------------------------------------------
+
+// TODO: this should be renamed to wxItemAttr or something general like this
+
+class WXDLLIMPEXP_ADV wxDataViewItemAttr
+{
+public:
+ // ctors
+ wxDataViewItemAttr()
+ {
+ m_bold = false;
+ m_italic = false;
+ }
+
+ // setters
+ void SetColour(const wxColour& colour) { m_colour = colour; }
+ void SetBold( bool set ) { m_bold = set; }
+ void SetItalic( bool set ) { m_italic = set; }
+
+ // accessors
+ bool HasColour() const { return m_colour.Ok(); }
+ const wxColour& GetColour() const { return m_colour; }
+
+ bool GetBold() const { return m_bold; }
+ bool GetItalic() const { return m_italic; }
+
+private:
+ wxColour m_colour;
+ bool m_bold;
+ bool m_italic;
+};
+
+
// ---------------------------------------------------------
// wxDataViewModel
// ---------------------------------------------------------
virtual bool SetValue( const wxVariant &variant,
const wxDataViewItem &item, unsigned int col ) = 0;
+ // Get text attribute, return false of default attributes should be used
+ virtual bool GetAttr( const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col), wxDataViewItemAttr &WXUNUSED(attr) )
+ { return false; }
+
// define hierachy
virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const = 0;
virtual bool IsContainer( const wxDataViewItem &item ) const = 0;
virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2,
unsigned int column, bool ascending );
virtual bool HasDefaultCompare() const { return false; }
+
+ // internal
+ virtual bool IsIndexListModel() const { return false; }
protected:
// the user should not delete this class directly: he should use DecRef() instead!
wxDataViewIndexListModel( unsigned int initial_size = 0 );
~wxDataViewIndexListModel();
- virtual unsigned int GetRowCount() = 0;
-
virtual void GetValue( wxVariant &variant,
unsigned int row, unsigned int col ) const = 0;
virtual bool SetValue( const wxVariant &variant,
unsigned int row, unsigned int col ) = 0;
+ virtual bool GetAttr( unsigned int WXUNUSED(row), unsigned int WXUNUSED(col), wxDataViewItemAttr &WXUNUSED(attr) )
+ { return false; }
+
void RowPrepended();
void RowInserted( unsigned int before );
void RowAppended();
virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2,
unsigned int column, bool ascending );
- virtual bool HasDefaultCompare() const { return true; }
+ virtual bool HasDefaultCompare() const;
// implement base methods
const wxDataViewItem &item, unsigned int col ) const;
virtual bool SetValue( const wxVariant &variant,
const wxDataViewItem &item, unsigned int col );
+ virtual bool GetAttr( const wxDataViewItem &item, unsigned int col, wxDataViewItemAttr &attr );
virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const;
virtual bool IsContainer( const wxDataViewItem &item ) const;
virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const;
+ // internal
+ virtual bool IsIndexListModel() const { return true; }
+ unsigned int GetLastIndex() const { return m_lastIndex; }
+
private:
wxDataViewItemArray m_hash;
unsigned int m_lastIndex;
+ bool m_ordered;
+ bool m_useHash;
};
const wxBitmap &GetBitmap() const { return m_bitmap; }
unsigned int GetModelColumn() const { return static_cast<unsigned int>(m_model_column); }
- wxDataViewCtrl *GetOwner() { return m_owner; }
- wxDataViewRenderer* GetRenderer() { return m_renderer; }
+ wxDataViewCtrl *GetOwner() const { return m_owner; }
+ wxDataViewRenderer* GetRenderer() const { return m_renderer; }
protected:
wxDataViewRenderer *m_renderer;
// wxDataViewSpinRenderer
// -------------------------------------
-class wxDataViewSpinRenderer: public wxDataViewCustomRenderer
+class WXDLLIMPEXP_ADV wxDataViewSpinRenderer: public wxDataViewCustomRenderer
{
public:
wxDataViewSpinRenderer( int min, int max,
virtual unsigned int GetColumnCount() const
{ return 1; };
virtual wxString GetColumnType( unsigned int WXUNUSED(col) ) const
- { return "wxDataViewIconText"; }
+ { return wxT("wxDataViewIconText"); }
wxDataViewTreeStoreNode *FindNode( const wxDataViewItem &item ) const;
wxDataViewTreeStoreContainerNode *FindContainerNode( const wxDataViewItem &item ) const;