X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f828871d12d34950779ed29599cbd13f05e00992..48468900108e7228d5438179c73acaf4fe4b04d6:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 2a25f409c0..2eb0882ae5 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -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,11 +264,23 @@ 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; } @@ -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,18 @@ public: virtual bool AssociateModel( wxDataViewListModel *model ); wxDataViewListModel* GetModel(); + // short cuts 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 ); + virtual bool AppendBitmapColumn( const wxString &label, unsigned int model_column ); + virtual bool AppendTextColumn( const wxBitmap &label, unsigned int model_column ); + virtual bool AppendToggleColumn( const wxBitmap &label, unsigned int model_column ); + virtual bool AppendProgressColumn( const wxBitmap &label, unsigned int model_column ); + virtual bool AppendDateColumn( const wxBitmap &label, unsigned int model_column ); + virtual bool AppendBitmapColumn( const wxBitmap &label, unsigned int model_column ); + virtual bool AppendColumn( wxDataViewColumn *col ); virtual unsigned int GetNumberOfColumns(); virtual bool DeleteColumn( unsigned int pos ); @@ -342,7 +369,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 +379,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 +392,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,6 +408,7 @@ protected: wxDataViewModel *m_model; wxVariant m_value; bool m_editCancelled; + wxDataViewColumn *m_column; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewEvent) @@ -383,6 +417,8 @@ private: BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_ROW_SELECTED, -1) DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_ROW_ACTIVATED, -1) + DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, -1) + DECLARE_EVENT_TYPE(wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, -1) END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); @@ -395,6 +431,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)