Implement the new method to all the implementations (generic, GTK, OS X), show it in the sample and update the documentation.
		
			
				
	
	
		
			235 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/osx/dvrenderers.h
 | |
| // Purpose:     All OS X wxDataViewCtrl renderer classes
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2009-11-07 (extracted from wx/osx/dataview.h)
 | |
| // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_OSX_DVRENDERERS_H_
 | |
| #define _WX_OSX_DVRENDERERS_H_
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewCustomRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewCustomRenderer : public wxDataViewCustomRendererBase
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("string"); }
 | |
| 
 | |
|     wxDataViewCustomRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                              wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                              int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual ~wxDataViewCustomRenderer();
 | |
| 
 | |
| 
 | |
|     // implementation only
 | |
|     // -------------------
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual wxDC* GetDC(); // creates a device context and keeps it
 | |
|     void SetDC(wxDC* newDCPtr); // this method takes ownership of the pointer
 | |
| 
 | |
| private:
 | |
|     wxControl* m_editorCtrlPtr; // pointer to an in-place editor control
 | |
| 
 | |
|     wxDC* m_DCPtr;
 | |
| 
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer);
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewTextRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("string"); }
 | |
| 
 | |
|     wxDataViewTextRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                            wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                            int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| #if wxUSE_MARKUP && wxOSX_USE_COCOA
 | |
|     void EnableMarkup(bool enable = true);
 | |
| #endif // wxUSE_MARKUP && Cocoa
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
| #if wxUSE_MARKUP && wxOSX_USE_COCOA
 | |
|     // True if we should interpret markup in our text.
 | |
|     bool m_useMarkup;
 | |
| #endif // wxUSE_MARKUP && Cocoa
 | |
| 
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer);
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewBitmapRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("wxBitmap"); }
 | |
| 
 | |
|     wxDataViewBitmapRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                              wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                              int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
| private:
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer);
 | |
| };
 | |
| 
 | |
| // -------------------------------------
 | |
| // wxDataViewChoiceRenderer
 | |
| // -------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     wxDataViewChoiceRenderer(const wxArrayString& choices,
 | |
|                              wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
 | |
|                              int alignment = wxDVR_DEFAULT_ALIGNMENT );
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     wxString GetChoice(size_t index) const { return m_choices[index]; }
 | |
|     const wxArrayString& GetChoices() const { return m_choices; }
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
|     wxArrayString m_choices;
 | |
| 
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewChoiceRenderer);
 | |
| };
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // wxDataViewChoiceByIndexRenderer
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewChoiceByIndexRenderer: public wxDataViewChoiceRenderer
 | |
| {
 | |
| public:
 | |
|     wxDataViewChoiceByIndexRenderer(const wxArrayString& choices,
 | |
|                                     wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
 | |
|                                     int alignment = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool SetValue(const wxVariant& value) wxOVERRIDE;
 | |
|     virtual bool GetValue(wxVariant& value) const wxOVERRIDE;
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col) wxOVERRIDE;
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewIconTextRenderer
 | |
| // ---------------------------------------------------------
 | |
| class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("wxDataViewIconText"); }
 | |
| 
 | |
|     wxDataViewIconTextRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                                wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                                int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer);
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewToggleRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("bool"); }
 | |
| 
 | |
|     wxDataViewToggleRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                              wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                              int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer);
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewProgressRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("long"); }
 | |
| 
 | |
|     wxDataViewProgressRenderer(const wxString& label = wxEmptyString,
 | |
|                                const wxString& varianttype = GetDefaultType(),
 | |
|                                wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
 | |
|                                int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer);
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewDateRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|     static wxString GetDefaultType() { return wxS("datetime"); }
 | |
| 
 | |
|     wxDataViewDateRenderer(const wxString& varianttype = GetDefaultType(),
 | |
|                            wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
 | |
|                            int align = wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
|     virtual bool MacRender();
 | |
| 
 | |
|     virtual void OSXOnCellChanged(NSObject *value,
 | |
|                                   const wxDataViewItem& item,
 | |
|                                   unsigned col);
 | |
| 
 | |
| private:
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer);
 | |
| };
 | |
| 
 | |
| #endif // _WX_OSX_DVRENDERERS_H_
 | |
| 
 |