X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4660b556510ff167944fd6dc1add696f73e0d3e6..5df8beb1d95030c94f678458fc1980049f537992:/include/wx/generic/dataview.h diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index efa5a11c74..d48a6f050e 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -78,11 +78,20 @@ public: // Create DC on request virtual wxDC *GetDC(); + + void SetHasAttr( bool set ) { m_hasAttr = set; } + void SetAttr( const wxDataViewItemAttr &attr ) { m_attr = attr; } + bool GetWantsAttr() { return m_wantsAttr; } private: wxDC *m_dc; int m_align; wxDataViewCellMode m_mode; + +protected: + bool m_wantsAttr; + bool m_hasAttr; + wxDataViewItemAttr m_attr; protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) @@ -128,13 +137,30 @@ public: virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ); virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ); -private: +protected: wxString m_text; protected: DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer) }; +// --------------------------------------------------------- +// wxDataViewTextRendererAttr +// --------------------------------------------------------- + +class WXDLLIMPEXP_ADV wxDataViewTextRendererAttr: public wxDataViewTextRenderer +{ +public: + wxDataViewTextRendererAttr( const wxString &varianttype = wxT("string"), + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + int align = wxDVR_DEFAULT_ALIGNMENT ); + + bool Render( wxRect cell, wxDC *dc, int state ); + +protected: + DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRendererAttr) +}; + // --------------------------------------------------------- // wxDataViewBitmapRenderer // --------------------------------------------------------- @@ -217,7 +243,7 @@ protected: // wxDataViewIconTextRenderer // --------------------------------------------------------- -class wxDataViewIconTextRenderer: public wxDataViewCustomRenderer +class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewCustomRenderer { public: wxDataViewIconTextRenderer( const wxString &varianttype = wxT("wxDataViewIconText"), @@ -302,7 +328,7 @@ public: virtual void SetResizeable( bool resizeable ); virtual void SetHidden( bool hidden ); virtual void SetSortOrder( bool ascending ); - + virtual void SetReorderable( bool reorderable ); // getters: @@ -321,7 +347,8 @@ public: virtual bool IsHidden() const { return (m_flags & wxDATAVIEW_COL_HIDDEN) != 0; } virtual bool IsSortOrderAscending() const; - + virtual bool IsReorderable() const + { return (m_flags & wxDATAVIEW_COL_REORDERABLE) != 0; } private: int m_width; @@ -330,6 +357,7 @@ private: wxAlignment m_align; wxString m_title; bool m_ascending; + bool m_autosize; void Init(int width); @@ -442,17 +470,20 @@ public: // utility functions not part of the API return GetClientSize().GetWidth() / GetColumnCount(); } + // called by header window after reorder + void ColumnMoved( wxDataViewColumn* col, unsigned int new_pos ); + // updates the header window after a change in a column setting void OnColumnChange(); wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; } private: - wxDataViewColumnList m_cols; - wxDataViewModelNotifier *m_notifier; - wxDataViewMainWindow *m_clientArea; - wxDataViewHeaderWindow *m_headerArea; - wxDataViewColumn* m_sortingColumn; + wxDataViewColumnList m_cols; + wxDataViewModelNotifier *m_notifier; + wxDataViewMainWindow *m_clientArea; + wxDataViewHeaderWindow *m_headerArea; + wxDataViewColumn *m_sortingColumn; private: void OnSize( wxSizeEvent &event );