X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3c7fc996a73e9f6a83067bc28a3c5581a3fee65..8120bbc9166a16f95c03d0ee50974117429be9e0:/include/wx/gtk/dataview.h diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h index 3d650b3cac..e575a4f2c0 100644 --- a/include/wx/gtk/dataview.h +++ b/include/wx/gtk/dataview.h @@ -22,13 +22,13 @@ class WXDLLIMPEXP_CORE wxDataViewCtrl; // --------------------------------------------------------- -// wxDataViewCell +// wxDataViewRenderer // --------------------------------------------------------- -class wxDataViewCell: public wxDataViewCellBase +class wxDataViewRenderer: public wxDataViewRendererBase { public: - wxDataViewCell( const wxString &varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); + wxDataViewRenderer( const wxString &varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); // implementation void* GetGtkHandle() { return m_renderer; } @@ -38,71 +38,88 @@ protected: void* m_renderer; protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) }; // --------------------------------------------------------- -// wxDataViewTextCell +// wxDataViewTextRenderer // --------------------------------------------------------- -class wxDataViewTextCell: public wxDataViewCell +class wxDataViewTextRenderer: public wxDataViewRenderer { public: - wxDataViewTextCell( const wxString &varianttype = wxT("string"), + wxDataViewTextRenderer( const wxString &varianttype = wxT("string"), wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); bool SetValue( const wxVariant &value ); bool GetValue( wxVariant &value ); protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer) }; // --------------------------------------------------------- -// wxDataViewToggleCell +// wxDataViewBitmapRenderer // --------------------------------------------------------- -class wxDataViewToggleCell: public wxDataViewCell +class wxDataViewBitmapRenderer: public wxDataViewRenderer { public: - wxDataViewToggleCell( const wxString &varianttype = wxT("bool"), + wxDataViewBitmapRenderer( const wxString &varianttype = wxT("wxBitmap"), + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); + + bool SetValue( const wxVariant &value ); + bool GetValue( wxVariant &value ); + +protected: + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer) +}; + +// --------------------------------------------------------- +// wxDataViewToggleRenderer +// --------------------------------------------------------- + +class wxDataViewToggleRenderer: public wxDataViewRenderer +{ +public: + wxDataViewToggleRenderer( const wxString &varianttype = wxT("bool"), wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); bool SetValue( const wxVariant &value ); bool GetValue( wxVariant &value ); protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer) }; // --------------------------------------------------------- -// wxDataViewCustomCell +// wxDataViewCustomRenderer // --------------------------------------------------------- -class wxDataViewCustomCell: public wxDataViewCell +class wxDataViewCustomRenderer: public wxDataViewRenderer { public: - wxDataViewCustomCell( const wxString &varianttype = wxT("string"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - bool no_init = false ); - virtual ~wxDataViewCustomCell(); + wxDataViewCustomRenderer( const wxString &varianttype = wxT("string"), + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + bool no_init = false ); + virtual ~wxDataViewCustomRenderer(); bool Init(); virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0; virtual wxSize GetSize() = 0; virtual bool Activate( wxRect cell, - wxDataViewListModel *model, size_t col, size_t row ) + wxDataViewListModel *model, unsigned int col, unsigned int row ) { return false; } virtual bool LeftClick( wxPoint cursor, wxRect cell, - wxDataViewListModel *model, size_t col, size_t row ) + wxDataViewListModel *model, unsigned int col, unsigned int row ) { return false; } virtual bool RightClick( wxPoint cursor, wxRect cell, - wxDataViewListModel *model, size_t col, size_t row ) + wxDataViewListModel *model, unsigned int col, unsigned int row ) { return false; } virtual bool StartDrag( wxPoint cursor, wxRect cell, - wxDataViewListModel *model, size_t col, size_t row ) + wxDataViewListModel *model, unsigned int col, unsigned int row ) { return false; } // Create DC on request @@ -112,20 +129,20 @@ private: wxDC *m_dc; protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer) }; // --------------------------------------------------------- -// wxDataViewProgressCell +// wxDataViewProgressRenderer // --------------------------------------------------------- -class wxDataViewProgressCell: public wxDataViewCustomCell +class wxDataViewProgressRenderer: public wxDataViewCustomRenderer { public: - wxDataViewProgressCell( const wxString &label = wxEmptyString, - const wxString &varianttype = wxT("long"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); - virtual ~wxDataViewProgressCell(); + wxDataViewProgressRenderer( const wxString &label = wxEmptyString, + const wxString &varianttype = wxT("long"), + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT ); + virtual ~wxDataViewProgressRenderer(); bool SetValue( const wxVariant &value ); @@ -137,17 +154,17 @@ private: int m_value; protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer) }; // --------------------------------------------------------- -// wxDataViewDateCell +// wxDataViewDateRenderer // --------------------------------------------------------- -class wxDataViewDateCell: public wxDataViewCustomCell +class wxDataViewDateRenderer: public wxDataViewCustomRenderer { public: - wxDataViewDateCell( const wxString &varianttype = wxT("datetime"), + wxDataViewDateRenderer( const wxString &varianttype = wxT("datetime"), wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE ); bool SetValue( const wxVariant &value ); @@ -155,13 +172,13 @@ public: virtual bool Render( wxRect cell, wxDC *dc, int state ); virtual wxSize GetSize(); virtual bool Activate( wxRect cell, - wxDataViewListModel *model, size_t col, size_t row ); + wxDataViewListModel *model, unsigned int col, unsigned int row ); private: wxDateTime m_date; protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateCell) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer) }; // --------------------------------------------------------- @@ -171,11 +188,23 @@ protected: class WXDLLIMPEXP_CORE wxDataViewColumn: public wxDataViewColumnBase { public: - wxDataViewColumn( const wxString &title, wxDataViewCell *cell, size_t model_column, - int fixed_width = 80, wxDataViewColumnSizing sizing = wxDATAVIEW_COL_WIDTH_FIXED, int flags = 0 ); + wxDataViewColumn( const wxString &title, wxDataViewRenderer *renderer, unsigned int model_column, + int width = 80, int flags = wxDATAVIEW_COL_RESIZABLE ); + wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *renderer, unsigned int model_column, + int width = 80, int flags = wxDATAVIEW_COL_RESIZABLE ); virtual ~wxDataViewColumn(); virtual void SetTitle( const wxString &title ); + virtual void SetBitmap( const wxBitmap &bitmap ); + + virtual void SetOwner( wxDataViewCtrl *owner ); + + virtual void SetAlignment( wxAlignment align ); + + virtual void SetSortable( bool sortable ); + virtual bool GetSortable(); + virtual void SetSortOrder( bool ascending ); + virtual bool IsSortOrderAscending(); virtual int GetWidth(); @@ -188,7 +217,12 @@ public: private: // holds the GTK handle void* m_column; - + + // delayed connection to mouse events + friend class wxDataViewCtrl; + void OnInternalIdle(); + bool m_isConnected; + protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn) }; @@ -225,12 +259,27 @@ public: virtual bool AssociateModel( wxDataViewListModel *model ); virtual bool AppendColumn( wxDataViewColumn *col ); + virtual void SetSelection( int row ); // -1 for unselect + virtual void SetSelectionRange( unsigned int from, unsigned int to ); + virtual void SetSelections( const wxArrayInt& aSelections); + virtual void Unselect( unsigned int row ); + + virtual bool IsSelected( unsigned int row ) const; + virtual int GetSelection() const; + virtual int GetSelections(wxArrayInt& aSelections) const; + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + private: friend class wxDataViewCtrlDC; + friend class wxDataViewColumn; friend class wxGtkDataViewListModelNotifier; GtkWidget *m_treeview; wxDataViewListModelNotifier *m_notifier; + virtual void OnInternalIdle(); + private: DECLARE_DYNAMIC_CLASS(wxDataViewCtrl) DECLARE_NO_COPY_CLASS(wxDataViewCtrl)