#include "wx/textctrl.h"
#include "wx/headercol.h"
#include "wx/variant.h"
+#include "wx/dnd.h" // For wxDragResult declaration only.
#include "wx/dynarray.h"
#include "wx/icon.h"
#include "wx/itemid.h"
void SetColour(const wxColour& colour) { m_colour = colour; }
void SetBold( bool set ) { m_bold = set; }
void SetItalic( bool set ) { m_italic = set; }
+ void SetBackgroundColour(const wxColour& colour) { m_bgColour = colour; }
// accessors
bool HasColour() const { return m_colour.IsOk(); }
bool GetBold() const { return m_bold; }
bool GetItalic() const { return m_italic; }
- bool IsDefault() const { return !(HasColour() || HasFont()); }
+ bool HasBackgroundColour() const { return m_bgColour.IsOk(); }
+ const wxColour& GetBackgroundColour() const { return m_bgColour; }
+
+ bool IsDefault() const { return !(HasColour() || HasFont() || HasBackgroundColour()); }
// Return the font based on the given one with this attribute applied to it.
wxFont GetEffectiveFont(const wxFont& font) const;
wxColour m_colour;
bool m_bold;
bool m_italic;
+ wxColour m_bgColour;
};
virtual unsigned GetRow( const wxDataViewItem &item ) const;
wxDataViewItem GetItem( unsigned int row ) const;
- // compare based on index
-
- virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2,
- unsigned int column, bool ascending ) const;
- virtual bool HasDefaultCompare() const;
-
// implement base methods
virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const;
wxDataViewItem GetCurrentItem() const;
void SetCurrentItem(const wxDataViewItem& item);
- virtual wxDataViewItem GetSelection() const = 0;
+ // Currently focused column of the current item or NULL if no column has focus
+ virtual wxDataViewColumn *GetCurrentColumn() const = 0;
+
+ // Selection: both GetSelection() and GetSelections() can be used for the
+ // controls both with and without wxDV_MULTIPLE style. For single selection
+ // controls GetSelections() is not very useful however. And for multi
+ // selection controls GetSelection() returns an invalid item if more than
+ // one item is selected. Use GetSelectedItemsCount() or HasSelection() to
+ // check if any items are selected at all.
+ virtual int GetSelectedItemsCount() const = 0;
+ bool HasSelection() const { return GetSelectedItemsCount() != 0; }
+ wxDataViewItem GetSelection() const;
virtual int GetSelections( wxDataViewItemArray & sel ) const = 0;
virtual void SetSelections( const wxDataViewItemArray & sel ) = 0;
virtual void Select( const wxDataViewItem & item ) = 0;
virtual bool SetRowHeight( int WXUNUSED(rowHeight) ) { return false; }
- virtual void StartEditor( const wxDataViewItem & WXUNUSED(item),
- unsigned int WXUNUSED(column) )
- { }
+ virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) = 0;
+
+ // Use EditItem() instead
+ wxDEPRECATED( void StartEditor(const wxDataViewItem& item, unsigned int column) );
#if wxUSE_DRAG_AND_DROP
virtual bool EnableDragSource(const wxDataFormat& WXUNUSED(format))
#if wxUSE_DRAG_AND_DROP
, m_dataObject(NULL),
m_dataBuffer(NULL),
- m_dataSize(0)
+ m_dataSize(0),
+ m_dragFlags(0),
+ m_dropEffect(wxDragNone)
#endif
{ }
, m_dataObject(event.m_dataObject),
m_dataFormat(event.m_dataFormat),
m_dataBuffer(event.m_dataBuffer),
- m_dataSize(event.m_dataSize)
+ m_dataSize(event.m_dataSize),
+ m_dragFlags(event.m_dragFlags),
+ m_dropEffect(event.m_dropEffect)
#endif
{ }
size_t GetDataSize() const { return m_dataSize; }
void SetDataBuffer( void* buf ) { m_dataBuffer = buf;}
void *GetDataBuffer() const { return m_dataBuffer; }
+ void SetDragFlags( int flags ) { m_dragFlags = flags; }
+ int GetDragFlags() const { return m_dragFlags; }
+ void SetDropEffect( wxDragResult effect ) { m_dropEffect = effect; }
+ wxDragResult GetDropEffect() const { return m_dropEffect; }
#endif // wxUSE_DRAG_AND_DROP
virtual wxEvent *Clone() const { return new wxDataViewEvent(*this); }
wxDataFormat m_dataFormat;
void* m_dataBuffer;
size_t m_dataSize;
+
+ int m_dragFlags;
+ wxDragResult m_dropEffect;
#endif // wxUSE_DRAG_AND_DROP
private:
virtual bool HasDefaultCompare() const
{ return true; }
virtual unsigned int GetColumnCount() const
- { return 1; };
+ { return 1; }
virtual wxString GetColumnType( unsigned int WXUNUSED(col) ) const
{ return wxT("wxDataViewIconText"); }