X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/62e9285abaaf4f5d1261434b20b390a4c0486585..7d3f6b4ded6aa412cb1cc306fef478955d448c5b:/include/wx/generic/dataview.h?ds=sidebyside diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index aee0e0e968..d47b028b04 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -17,6 +17,7 @@ #include "wx/control.h" #include "wx/scrolwin.h" #include "wx/icon.h" +#include "wx/vector.h" class WXDLLIMPEXP_FWD_ADV wxDataViewMainWindow; class WXDLLIMPEXP_FWD_ADV wxDataViewHeaderWindow; @@ -56,7 +57,7 @@ public: virtual wxString GetTitle() const { return m_title; } virtual void SetWidth(int width) { m_width = width; UpdateDisplay(); } - virtual int GetWidth() const { return m_width; } + virtual int GetWidth() const; virtual void SetMinWidth(int minWidth) { m_minWidth = minWidth; UpdateDisplay(); } virtual int GetMinWidth() const { return m_minWidth; } @@ -79,7 +80,7 @@ public: private: // common part of all ctors void Init(int width, wxAlignment align, int flags); - + void UpdateDisplay(); wxString m_title; @@ -121,7 +122,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDataViewCtrlNameStr ); + const wxString& name = wxDataViewCtrlNameStr ) : wxScrollHelper(this) { Create(parent, id, pos, size, style, validator, name); @@ -206,10 +207,7 @@ protected: public: // utility functions not part of the API // returns the "best" width for the idx-th column - unsigned int GetBestColumnWidth(int WXUNUSED(idx)) const - { - return GetClientSize().GetWidth() / GetColumnCount(); - } + unsigned int GetBestColumnWidth(int idx) const; // called by header window after reorder void ColumnMoved( wxDataViewColumn* col, unsigned int new_pos ); @@ -229,7 +227,16 @@ public: // utility functions not part of the API wxDataViewColumn *GetColumnAt(unsigned int pos) const; private: + virtual wxDataViewItem DoGetCurrentItem() const; + virtual void DoSetCurrentItem(const wxDataViewItem& item); + + void InvalidateColBestWidths(); + void InvalidateColBestWidth(int idx); + wxDataViewColumnList m_cols; + // cached column best widths or 0 if not computed, values are for + // respective columns from m_cols and the arrays have same size + wxVector m_colsBestWidths; wxDataViewModelNotifier *m_notifier; wxDataViewMainWindow *m_clientArea; wxDataViewHeaderWindow *m_headerArea;