X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f828871d12d34950779ed29599cbd13f05e00992..4e2251ecd324ba89c486434485efcb1d32ee7dca:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 2a25f409c0..8893378606 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -131,11 +131,11 @@ public: virtual bool Cleared(); // Used internally - virtual void AddViewingColumn( wxDataViewColumn *view_column, unsigned int model_column ); - virtual void RemoveViewingColumn( wxDataViewColumn *column ); + void AddViewingColumn( wxDataViewColumn *view_column, unsigned int model_column ); + void RemoveViewingColumn( wxDataViewColumn *column ); - virtual void AddNotifier( wxDataViewListModelNotifier *notifier ); - virtual void RemoveNotifier( wxDataViewListModelNotifier *notifier ); + void AddNotifier( wxDataViewListModelNotifier *notifier ); + void RemoveNotifier( wxDataViewListModelNotifier *notifier ); wxList m_notifiers; wxList m_viewingColumns; @@ -159,6 +159,9 @@ public: wxDataViewSortedListModel( wxDataViewListModel *child ); virtual ~wxDataViewSortedListModel(); + void SetAscending( bool ascending ) { m_ascending = ascending; } + bool GetAscending() { return m_ascending; } + virtual unsigned int GetNumberOfRows(); virtual unsigned int GetNumberOfCols(); // return type as reported by wxVariant @@ -191,9 +194,12 @@ public: virtual void Resort(); private: + bool m_ascending; wxDataViewListModel *m_child; wxDataViewSortedIndexArray m_array; wxDataViewListModelNotifier *m_notifierOnChild; + + void InitStatics(); // BAD protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewSortedListModel) @@ -258,16 +264,28 @@ class WXDLLIMPEXP_ADV wxDataViewColumnBase: public wxObject public: wxDataViewColumnBase( const wxString &title, wxDataViewRenderer *renderer, unsigned int model_column, int width = 80, int flags = wxDATAVIEW_COL_RESIZABLE ); + wxDataViewColumnBase( const wxBitmap &bitmap, wxDataViewRenderer *renderer, unsigned int model_column, + int width = 80, int flags = wxDATAVIEW_COL_RESIZABLE ); virtual ~wxDataViewColumnBase(); virtual void SetTitle( const wxString &title ); virtual wxString GetTitle(); + virtual void SetBitmap( const wxBitmap &bitmap ); + virtual const wxBitmap &GetBitmap(); + + virtual void SetAlignment( wxAlignment align ) = 0; + + virtual void SetSortable( bool sortable ) = 0; + virtual bool GetSortable() = 0; + virtual void SetSortOrder( bool ascending ) = 0; + virtual bool IsSortOrderAscending() = 0; + wxDataViewRenderer* GetRenderer() { return m_renderer; } unsigned int GetModelColumn() { return m_model_column; } - void SetOwner( wxDataViewCtrl *owner ) { m_owner = owner; } + virtual void SetOwner( wxDataViewCtrl *owner ) { m_owner = owner; } wxDataViewCtrl *GetOwner() { return m_owner; } virtual int GetWidth() = 0; @@ -278,6 +296,7 @@ private: int m_model_column; int m_flags; wxString m_title; + wxBitmap m_bitmap; wxDataViewCtrl *m_owner; protected: @@ -300,10 +319,28 @@ public: virtual bool AssociateModel( wxDataViewListModel *model ); wxDataViewListModel* GetModel(); - virtual bool AppendTextColumn( const wxString &label, unsigned int model_column ); - virtual bool AppendToggleColumn( const wxString &label, unsigned int model_column ); - virtual bool AppendProgressColumn( const wxString &label, unsigned int model_column ); - virtual bool AppendDateColumn( const wxString &label, unsigned int model_column ); + // short cuts + bool AppendTextColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1 ); + bool AppendToggleColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = 30 ); + bool AppendProgressColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = 80 ); + bool AppendDateColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1 ); + bool AppendBitmapColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1 ); + bool AppendTextColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1 ); + bool AppendToggleColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = 30 ); + bool AppendProgressColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = 80 ); + bool AppendDateColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1 ); + bool AppendBitmapColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1 ); + virtual bool AppendColumn( wxDataViewColumn *col ); virtual unsigned int GetNumberOfColumns(); virtual bool DeleteColumn( unsigned int pos ); @@ -342,7 +379,8 @@ public: m_row(-1), m_model(NULL), m_value(wxNullVariant), - m_editCancelled(false) + m_editCancelled(false), + m_column(NULL) { } wxDataViewEvent(const wxDataViewEvent& event) @@ -351,7 +389,8 @@ public: m_row(event.m_col), m_model(event.m_model), m_value(event.m_value), - m_editCancelled(event.m_editCancelled) + m_editCancelled(event.m_editCancelled), + m_column(event.m_column) { } int GetColumn() const { return m_col; } @@ -363,6 +402,10 @@ public: const wxVariant &GetValue() const { return m_value; } void SetValue( const wxVariant &value ) { m_value = value; } + // for wxEVT_DATAVIEW_COLUMN_HEADER_CLICKED only + void SetDataViewColumn( wxDataViewColumn *col ) { m_column = col; } + wxDataViewColumn *GetDataViewColumn() { return m_column; } + // was label editing canceled? (for wxEVT_COMMAND_DATVIEW_END_LABEL_EDIT only) bool IsEditCancelled() const { return m_editCancelled; } void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; } @@ -375,14 +418,17 @@ protected: wxDataViewModel *m_model; wxVariant m_value; bool m_editCancelled; + wxDataViewColumn *m_column; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewEvent) }; BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_ROW_SELECTED, -1) - DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_ROW_ACTIVATED, -1) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ROW_SELECTED, -1) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ROW_ACTIVATED, -1) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, -1) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, -1) END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); @@ -395,6 +441,8 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); #define EVT_DATAVIEW_ROW_SELECTED(id, fn) wx__DECLARE_DATAVIEWEVT(ROW_SELECTED, id, fn) #define EVT_DATAVIEW_ROW_ACTIVATED(id, fn) wx__DECLARE_DATAVIEWEVT(ROW_ACTIVATED, id, fn) +#define EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_CLICK, id, fn) +#define EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_RIGHT_CLICK, id, fn) #if defined(wxUSE_GENERICDATAVIEWCTRL)