git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			631 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			631 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/mac/carbon/dataview.h
 | |
| // Purpose:     wxDataViewCtrl native implementation header
 | |
| // Author:      
 | |
| // Id:          $Id$
 | |
| // Copyright:   (c) 2007
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_MACCARBONDATAVIEWCTRL_H_
 | |
| #define _WX_MACCARBONDATAVIEWCTRL_H_
 | |
| 
 | |
| // --------------------------------------------------------
 | |
| // Type definitions to mask native types
 | |
| // --------------------------------------------------------
 | |
| 
 | |
| typedef void*         WXDataBrowserItemDataRef;
 | |
| typedef unsigned long WXDataBrowserPropertyType;
 | |
| typedef wxUint32      WXDataBrowserPropertyID;
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewRenderer : public wxDataViewRendererBase
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|   wxDataViewRenderer(wxString const& varianttype, wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited methods from wxDataViewRendererBase
 | |
| //
 | |
|   virtual int GetAlignment() const
 | |
|   {
 | |
|     return this->m_alignment;
 | |
|   }
 | |
|   virtual wxDataViewCellMode GetMode() const
 | |
|   {
 | |
|     return this->m_mode;
 | |
|   }
 | |
|   virtual bool GetValue(wxVariant& value) const
 | |
|   {
 | |
|     value = this->m_value;
 | |
|     return true;
 | |
|   }
 | |
| 
 | |
|   virtual void SetAlignment(int WXUNUSED(align)) // is always identical to the header alignment
 | |
|   {
 | |
|   }
 | |
|   virtual void SetMode(wxDataViewCellMode mode);
 | |
|   virtual bool SetValue(wxVariant const& newValue)
 | |
|   {
 | |
|     this->m_value = newValue;
 | |
|     return true;
 | |
|   }
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   WXDataBrowserItemDataRef GetDataReference() const
 | |
|   {
 | |
|     return this->m_dataReference;
 | |
|   }
 | |
|   wxVariant const& GetValue() const
 | |
|   {
 | |
|     return this->m_value;
 | |
|   }
 | |
| 
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const = 0;
 | |
| 
 | |
|   virtual bool Render() = 0; // a call to the appropriate data browser function filling the data reference with the stored datum;
 | |
|                                  // returns 'true' if the data value could be rendered, 'false' otherwise
 | |
| 
 | |
|   void SetDataReference(WXDataBrowserItemDataRef const& newDataReference)
 | |
|   {
 | |
|     this->m_dataReference = newDataReference;
 | |
|   }
 | |
| 
 | |
| private:
 | |
| //
 | |
| // variables
 | |
| //
 | |
|   WXDataBrowserItemDataRef m_dataReference; // data reference of the data browser; the data will be assigned to this reference during rendering
 | |
| 
 | |
|   int m_alignment; // contains the alignment flags
 | |
| 
 | |
|   wxDataViewCellMode m_mode; // storing the mode that determines how the cell is going to be shown
 | |
| 
 | |
|   wxVariant m_value; // value that is going to be rendered
 | |
| 
 | |
| //
 | |
| // wxWidget internal stuff
 | |
| //
 | |
|   DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewCustomRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewCustomRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|   wxDataViewCustomRenderer(wxString const& varianttype=wxT("string"), wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
|   
 | |
|   virtual ~wxDataViewCustomRenderer();
 | |
| 
 | |
|   void RenderText( const wxString &text, int xoffset, wxRect cell, wxDC *dc, int state );
 | |
| 
 | |
| //
 | |
| // methods handling render space
 | |
| //
 | |
|   virtual wxSize GetSize() const = 0;
 | |
| 
 | |
| //
 | |
| // methods handling user actions
 | |
| // 
 | |
|   virtual bool Render(wxRect cell, wxDC* dc, int state) = 0;
 | |
| 
 | |
|   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 StartDrag( wxPoint WXUNUSED(cursor),
 | |
|                           wxRect WXUNUSED(cell),
 | |
|                           wxDataViewModel *WXUNUSED(model),
 | |
|                           const wxDataViewItem & WXUNUSED(item), 
 | |
|                           unsigned int WXUNUSED(col) )
 | |
|                           { return false; }
 | |
|     
 | |
| //
 | |
| // device context handling
 | |
| //
 | |
|   virtual wxDC* GetDC(); // creates a device context and keeps it
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual bool Render(); // declared in wxDataViewRenderer but will not be used here, therefore calling this function will
 | |
|                              // return 'true' without having done anything
 | |
| 
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
|   void SetDC(wxDC* newDCPtr); // this method takes ownership of the pointer
 | |
| 
 | |
| protected:
 | |
| private:
 | |
| //
 | |
| // variables
 | |
| //
 | |
|   wxControl* m_editorCtrlPtr; // pointer to an in-place editor control
 | |
| 
 | |
|   wxDC* m_DCPtr;
 | |
| 
 | |
| //
 | |
| // wxWidget internal stuff
 | |
| //
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewTextRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|     wxDataViewTextRenderer(wxString const& varianttype=wxT("string"), wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
| protected:
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewTextRendererAttr
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewTextRendererAttr: public wxDataViewTextRenderer
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|     wxDataViewTextRendererAttr(wxString const& varianttype=wxT("string"), wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRendererAttr)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewBitmapRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|   wxDataViewBitmapRenderer(wxString const& varianttype=wxT("wxBitmap"), wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
| protected:
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewToggleRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|   wxDataViewIconTextRenderer(wxString const& varianttype = wxT("wxDataViewIconText"), wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
|   
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
|   
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
|   
 | |
| protected:
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewToggleRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|   wxDataViewToggleRenderer(wxString const& varianttype = wxT("bool"), wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
| protected:
 | |
| private:
 | |
|   DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewProgressRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|   wxDataViewProgressRenderer(wxString const& label = wxEmptyString, wxString const& varianttype=wxT("long"),
 | |
|                              wxDataViewCellMode mode=wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
| protected:
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewDateRenderer
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewRenderer
 | |
| {
 | |
| public:
 | |
|   wxDataViewDateRenderer(wxString const& varianttype=wxT("datetime"), wxDataViewCellMode mode=wxDATAVIEW_CELL_ACTIVATABLE, int align=wxDVR_DEFAULT_ALIGNMENT);
 | |
| 
 | |
| //
 | |
| // inherited functions from wxDataViewRenderer
 | |
| //
 | |
|   virtual bool Render();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   virtual WXDataBrowserPropertyType GetPropertyType() const;
 | |
| 
 | |
| protected:
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewColumn
 | |
| // ---------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_ADV wxDataViewColumn: public wxDataViewColumnBase
 | |
| {
 | |
| public:
 | |
| //
 | |
| // constructors / destructor
 | |
| //
 | |
|   wxDataViewColumn(wxString const& title, wxDataViewRenderer* renderer, unsigned int model_column, int width=80, wxAlignment align=wxALIGN_CENTER,
 | |
|                    int flags=wxDATAVIEW_COL_RESIZABLE);
 | |
|   wxDataViewColumn(wxBitmap const& bitmap, wxDataViewRenderer* renderer, unsigned int model_column, int width=80, wxAlignment align=wxALIGN_CENTER,
 | |
|                    int flags=wxDATAVIEW_COL_RESIZABLE);
 | |
| 
 | |
| //
 | |
| // inherited methods from wxDataViewColumnBase
 | |
| //
 | |
|   virtual wxAlignment GetAlignment() const
 | |
|   {
 | |
|     return this->m_alignment;
 | |
|   }
 | |
|   virtual int GetFlags() const
 | |
|   {
 | |
|     return this->m_flags;
 | |
|   }
 | |
|   virtual int GetMaxWidth() const
 | |
|   {
 | |
|     return this->m_maxWidth;
 | |
|   }
 | |
|   virtual int GetMinWidth() const
 | |
|   {
 | |
|     return this->m_minWidth;
 | |
|   }
 | |
|   virtual wxString GetTitle() const
 | |
|   {
 | |
|     return this->m_title;
 | |
|   }
 | |
|   virtual int GetWidth() const
 | |
|   {
 | |
|     return this->m_width;
 | |
|   }
 | |
| 
 | |
|   virtual bool IsHidden() const
 | |
|   {
 | |
|     return false; // not implemented
 | |
|   }
 | |
|   virtual bool IsReorderable() const
 | |
|   {
 | |
|     return ((this->m_flags & wxDATAVIEW_COL_REORDERABLE) != 0);
 | |
|   }
 | |
|   virtual bool IsResizeable() const
 | |
|   {
 | |
|     return ((this->m_flags & wxDATAVIEW_COL_RESIZABLE) != 0);
 | |
|   }
 | |
|   virtual bool IsSortable() const
 | |
|   {
 | |
|     return ((this->m_flags & wxDATAVIEW_COL_SORTABLE) != 0);
 | |
|   }
 | |
|   virtual bool IsSortOrderAscending() const
 | |
|   {
 | |
|     return this->m_ascending;
 | |
|   }
 | |
| 
 | |
|   virtual void SetAlignment(wxAlignment align);
 | |
|   virtual void SetBitmap   (wxBitmap const& bitmap);
 | |
|   virtual void SetFlags    (int flags);
 | |
|   virtual void SetHidden(bool WXUNUSED(hidden))
 | |
|   {
 | |
|   }
 | |
|   virtual void SetMaxWidth   (int maxWidth);
 | |
|   virtual void SetMinWidth   (int minWidth);
 | |
|   virtual void SetReorderable(bool reorderable);
 | |
|   virtual void SetResizeable (bool resizeable);
 | |
|   virtual void SetSortable   (bool sortable);
 | |
|   virtual void SetSortOrder  (bool ascending);
 | |
|   virtual void SetTitle      (wxString const& title);
 | |
|   virtual void SetWidth      (int  width);
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
|   WXDataBrowserPropertyID GetPropertyID() const
 | |
|   {
 | |
|     return this->m_propertyID;
 | |
|   }
 | |
|   
 | |
|   void SetPropertyID(WXDataBrowserPropertyID newID)
 | |
|   {
 | |
|     this->m_propertyID = newID;
 | |
|   }
 | |
|   void SetWidthVariable(int NewWidth)
 | |
|   {
 | |
|     this->m_width = NewWidth;
 | |
|   }
 | |
| 
 | |
| protected:
 | |
| private:
 | |
| //
 | |
| // variables
 | |
| //
 | |
|   bool m_ascending; // sorting order
 | |
| 
 | |
|   WXDataBrowserPropertyID m_propertyID; // each column is identified by its unique property ID (NOT by the column index)
 | |
|   
 | |
|   int m_flags;    // flags for the column
 | |
|   int m_maxWidth; // maximum width for the column
 | |
|   int m_minWidth; // minimum width for the column
 | |
|   int m_width;    // column width
 | |
| 
 | |
|   wxAlignment m_alignment; // column header alignment
 | |
| 
 | |
|   wxString m_title; // column title
 | |
| 
 | |
|  // wxWidget internal stuff:
 | |
|   DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn)
 | |
| };
 | |
| 
 | |
| // ---------------------------------------------------------
 | |
| // wxDataViewCtrl
 | |
| // ---------------------------------------------------------
 | |
| class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase
 | |
| {
 | |
| public:
 | |
|  // Constructors / destructor:
 | |
|   wxDataViewCtrl()
 | |
|   {
 | |
|     this->Init();
 | |
|   }
 | |
|   wxDataViewCtrl(wxWindow *parent, wxWindowID id, wxPoint const& pos = wxDefaultPosition, wxSize const& size = wxDefaultSize, long style = 0,
 | |
|                  wxValidator const& validator = wxDefaultValidator)
 | |
|   {
 | |
|     this->Init();
 | |
|     this->Create(parent, id, pos, size, style, validator );
 | |
|   }
 | |
| 
 | |
|   ~wxDataViewCtrl();
 | |
| 
 | |
|  // explicit control creation
 | |
|   bool Create(wxWindow *parent, wxWindowID id, wxPoint const& pos=wxDefaultPosition, wxSize const& size=wxDefaultSize, long style=0,
 | |
|               wxValidator const& validator=wxDefaultValidator);
 | |
| 
 | |
|   virtual wxControl* GetMainWindow() // should disappear as it is not of any use for the native implementation
 | |
|   {
 | |
|     return this;
 | |
|   }
 | |
|   
 | |
|  // inherited methods from 'wxDataViewCtrlBase':
 | |
|   virtual bool AssociateModel(wxDataViewModel* model);
 | |
| 
 | |
|   virtual bool AppendColumn(wxDataViewColumn* columnPtr);
 | |
|   virtual bool PrependColumn(wxDataViewColumn* columnPtr);
 | |
|   virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
 | |
|   
 | |
|   virtual bool ClearColumns();
 | |
|   virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
 | |
|   virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
 | |
|   virtual unsigned int GetColumnCount() const;
 | |
|   virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const;
 | |
| 
 | |
|   virtual void Collapse(wxDataViewItem const& item);
 | |
|   virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
 | |
|   virtual void Expand(wxDataViewItem const& item);
 | |
|   
 | |
|   virtual wxDataViewColumn* GetSortingColumn() const;
 | |
| 
 | |
|   virtual unsigned int GetCount() const;
 | |
|   virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
 | |
|   virtual wxDataViewItem GetSelection() const;
 | |
|   virtual int GetSelections(wxDataViewItemArray& sel) const;
 | |
|   
 | |
|   virtual void HitTest(wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
 | |
| 
 | |
|   virtual bool IsSelected(wxDataViewItem const& item) const;
 | |
| 
 | |
|   virtual void SelectAll();
 | |
|   virtual void Select(wxDataViewItem const& item);
 | |
|   virtual void SetSelections(wxDataViewItemArray const& sel);
 | |
| 
 | |
|   virtual void Unselect(wxDataViewItem const& item);
 | |
|   virtual void UnselectAll();
 | |
| 
 | |
| //
 | |
| // implementation
 | |
| //
 | |
| 
 | |
|  // adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added:
 | |
|   void AddChildrenLevel(wxDataViewItem const& parentItem);
 | |
| 
 | |
|  // finishes editing of custom items; if no custom item is currently edited the method does nothing
 | |
|   void FinishCustomItemEditing();
 | |
| 
 | |
|  // returns a pointer to a column;
 | |
|  // in case the pointer cannot be found NULL is returned:
 | |
|   wxDataViewColumn* GetColumnPtr(WXDataBrowserPropertyID propertyID) const;
 | |
|  // returns the current being rendered item of the customized renderer (this item is only valid during editing)
 | |
|   wxDataViewItem const& GetCustomRendererItem() const
 | |
|   {
 | |
|     return this->m_CustomRendererItem;
 | |
|   }
 | |
|  // returns a pointer to a customized renderer (this pointer is only valid during editing)
 | |
|   wxDataViewCustomRenderer* GetCustomRendererPtr() const
 | |
|   {
 | |
|     return this->m_CustomRendererPtr;
 | |
|   }
 | |
| 
 | |
|  // checks if currently a delete process is running:
 | |
|   bool IsDeleting() const
 | |
|   {
 | |
|     return this->m_Deleting;
 | |
|   }
 | |
| 
 | |
|  // with CG, we need to get the context from an kEventControlDraw event
 | |
|  // unfortunately, the DataBrowser callbacks don't provide the context
 | |
|  // and we need it, so we need to set/remove it before and after draw 
 | |
|  // events so we can access it in the callbacks.
 | |
|   void MacSetDrawingContext(void* context)
 | |
|   {
 | |
|     this->m_cgContext = context;
 | |
|   }
 | |
|   void* MacGetDrawingContext() const
 | |
|   {
 | |
|     return this->m_cgContext;
 | |
|   }
 | |
| 
 | |
|  // sets the currently being edited item of the custom renderer
 | |
|   void SetCustomRendererItem(wxDataViewItem const& NewItem)
 | |
|   {
 | |
|     this->m_CustomRendererItem = NewItem;
 | |
|   }
 | |
|  // sets the custom renderer
 | |
|   void SetCustomRendererPtr(wxDataViewCustomRenderer* NewCustomRendererPtr)
 | |
|   {
 | |
|     this->m_CustomRendererPtr = NewCustomRendererPtr;
 | |
|   }
 | |
|  // sets the flag indicating a deletion process:
 | |
|   void SetDeleting(bool deleting)
 | |
|   {
 | |
|     this->m_Deleting = deleting;
 | |
|   }
 | |
| 
 | |
|   virtual wxVisualAttributes GetDefaultAttributes() const
 | |
|   {
 | |
|       return GetClassDefaultAttributes(GetWindowVariant());
 | |
|   }
 | |
| 
 | |
|   static wxVisualAttributes
 | |
|   GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 | |
| 
 | |
| protected:
 | |
|  // inherited methods from wxDataViewCtrlBase:
 | |
|   virtual void DoSetExpanderColumn();
 | |
|   virtual void DoSetIndent();
 | |
| 
 | |
|  // event handling:
 | |
|   void OnSize(wxSizeEvent &event);
 | |
| 
 | |
| private:
 | |
|  // type definitions:
 | |
|   WX_DECLARE_HASH_MAP(WXDataBrowserPropertyID,wxDataViewColumn*,wxIntegerHash,wxIntegerEqual,ColumnPointerHashMapType);
 | |
| 
 | |
|  // initializing of local variables:
 | |
|   void Init();
 | |
| 
 | |
| ///
 | |
| // variables
 | |
| //
 | |
| 
 | |
|   bool m_Deleting; // flag indicating if a delete process is running; this flag is necessary because the notifier indicating an item deletion in the model may be called
 | |
|                    // after the actual deletion of the item; then, the callback function "wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc" may
 | |
|                    // try to update data into variables that are already deleted; this flag will ignore all variable update requests during item deletion
 | |
| 
 | |
|   void* m_cgContext; // pointer to core graphics context
 | |
| 
 | |
|   wxDataViewCustomRenderer* m_CustomRendererPtr; // pointer to a valid custom renderer while editing; this class does NOT own the pointer
 | |
|   
 | |
|   wxDataViewItem m_CustomRendererItem; // currently edited item by the customerenderer; it is invalid while not editing
 | |
| 
 | |
|   ColumnPointerHashMapType m_ColumnPointers; // all column pointers are stored in a hash map with the property ID as a key
 | |
| 
 | |
|  // wxWidget internal stuff:
 | |
|   DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
 | |
|   DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
 | |
|   DECLARE_EVENT_TABLE()
 | |
| };
 | |
| 
 | |
| 
 | |
| #endif // _WX_MACCARBONDATAVIEWCTRL_H_
 |