X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c937bcac0fb8a8df7c0cbfc8c478a2874fec3eb9..cde23b64b5194f0d71cf16c85ea33d28419c815f:/include/wx/generic/dataview.h diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index a9c57e1c4e..d8b141f0f9 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -18,332 +18,9 @@ #include "wx/scrolwin.h" #include "wx/icon.h" -// --------------------------------------------------------- -// classes -// --------------------------------------------------------- - -class WXDLLIMPEXP_FWD_ADV wxDataViewCtrl; class WXDLLIMPEXP_FWD_ADV wxDataViewMainWindow; class WXDLLIMPEXP_FWD_ADV wxDataViewHeaderWindow; -// --------------------------------------------------------- -// wxDataViewRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewRenderer: public wxDataViewRendererBase -{ -public: - wxDataViewRenderer( const wxString &varianttype, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - virtual ~wxDataViewRenderer(); - - // these methods are used to draw the cell contents, Render() doesn't care - // about the attributes while RenderWithAttr() does -- override it if you - // want to take the attributes defined for this cell into account, otherwise - // overriding Render() is enough - virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0; - - // NB: RenderWithAttr() also has more standard parameter order and types - virtual bool - RenderWithAttr(wxDC& dc, - const wxRect& rect, - int align, // combination of horizontal and vertical - const wxDataViewItemAttr *attr, // may be NULL if none - int state); - - virtual wxSize GetSize() const = 0; - - virtual void SetAlignment( int align ); - virtual int GetAlignment() const; - - virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE) - { m_ellipsizeMode = mode; } - virtual wxEllipsizeMode GetEllipsizeMode() const - { return m_ellipsizeMode; } - - virtual void SetMode( wxDataViewCellMode mode ) - { m_mode=mode; } - virtual wxDataViewCellMode GetMode() const - { return m_mode; } - - virtual bool Activate( wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col) ) - { return false; } - - virtual bool LeftClick( wxPoint WXUNUSED(cursor), - wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col) ) - { return false; } - virtual bool RightClick( wxPoint WXUNUSED(cursor), - wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col) ) - { return false; } - virtual bool StartDrag( wxPoint WXUNUSED(cursor), - wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col) ) - { return false; } - - // Create DC on request - virtual wxDC *GetDC(); - - // implementation - int CalculateAlignment() const; - -protected: - // This is just a convenience for the derived classes overriding - // RenderWithAttr() to avoid repeating the same wxFAIL_MSG() in all of them - bool DummyRender(wxRect WXUNUSED(cell), - wxDC * WXUNUSED(dc), - int WXUNUSED(state)) - { - wxFAIL_MSG("shouldn't be called at all, use RenderWithAttr() instead"); - - return false; - } - -private: - wxDC *m_dc; - int m_align; - wxDataViewCellMode m_mode; - - wxEllipsizeMode m_ellipsizeMode; - - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewCustomRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewCustomRenderer: public wxDataViewRenderer -{ -public: - wxDataViewCustomRenderer( const wxString &varianttype = wxT("string"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - // Draw the text using the provided attributes - void RenderText(wxDC& dc, - const wxRect& rect, - int align, - const wxString& text, - const wxDataViewItemAttr *attr, // may be NULL if none - int state, - int xoffset = 0); - - // Overload using standard attributes - void RenderText(const wxString& text, - int xoffset, - wxRect cell, - wxDC *dc, - int state) - { - RenderText(*dc, cell, wxALIGN_NOT, text, NULL, state, xoffset); - } - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer) -}; - - -// --------------------------------------------------------- -// wxDataViewTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewTextRenderer( const wxString &varianttype = wxT("string"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool RenderWithAttr(wxDC& dc, - const wxRect& rect, - int align, - const wxDataViewItemAttr *attr, - int state); - virtual bool Render(wxRect cell, wxDC *dc, int state) - { - return DummyRender(cell, dc, state); - } - - wxSize GetSize() const; - - // in-place editing - virtual bool HasEditorCtrl() const; - virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, - const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ); - -protected: - wxString m_text; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewBitmapRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewBitmapRenderer( const wxString &varianttype = wxT("wxBitmap"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - bool Render( wxRect cell, wxDC *dc, int state ); - wxSize GetSize() const; - -private: - wxIcon m_icon; - wxBitmap m_bitmap; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewToggleRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewToggleRenderer( const wxString &varianttype = wxT("bool"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - bool Render( wxRect cell, wxDC *dc, int state ); - bool Activate( wxRect cell, wxDataViewModel *model, const wxDataViewItem & item, - unsigned int col ); - wxSize GetSize() const; - -private: - bool m_toggle; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewProgressRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewProgressRenderer( const wxString &label = wxEmptyString, - const wxString &varianttype = wxT("long"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant& value ) const; - - virtual bool RenderWithAttr(wxDC& dc, - const wxRect& rect, - int align, - const wxDataViewItemAttr *attr, - int state); - virtual bool Render(wxRect cell, wxDC *dc, int state) - { - return DummyRender(cell, dc, state); - } - virtual wxSize GetSize() const; - -private: - wxString m_label; - int m_value; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewIconTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewIconTextRenderer( const wxString &varianttype = wxT("wxDataViewIconText"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool RenderWithAttr(wxDC& dc, - const wxRect& rect, - int align, - const wxDataViewItemAttr *attr, - int state); - virtual bool Render(wxRect cell, wxDC *dc, int state) - { - return DummyRender(cell, dc, state); - } - virtual wxSize GetSize() const; - - virtual bool HasEditorCtrl() const { return true; } - virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, - const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ); - -private: - wxDataViewIconText m_value; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer) -}; - -// --------------------------------------------------------- -// wxDataViewDateRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewDateRenderer( const wxString &varianttype = wxT("datetime"), - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant& value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - virtual bool Activate( wxRect cell, - wxDataViewModel *model, - const wxDataViewItem& item, - unsigned int col ); - -private: - wxDateTime m_date; - -protected: - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer) -}; - // --------------------------------------------------------- // wxDataViewColumn // ---------------------------------------------------------