dataview.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/osx/carbon/dataview.h
  3. // Purpose: wxDataViewCtrl native implementation header for carbon
  4. // Author:
  5. // Copyright: (c) 2009
  6. // Licence: wxWindows licence
  7. /////////////////////////////////////////////////////////////////////////////
  8. #ifndef _WX_DATAVIEWCTRL_CARBON_H_
  9. #define _WX_DATAVIEWCTRL_CARBON_H_
  10. #include "wx/defs.h"
  11. #if wxUSE_GUI
  12. #include "wx/osx/core/dataview.h"
  13. #include "wx/osx/private.h"
  14. // ============================================================================
  15. // wxDataViewColumnNativeData
  16. // ============================================================================
  17. class wxDataViewColumnNativeData
  18. {
  19. public:
  20. //
  21. // constructors / destructor
  22. //
  23. wxDataViewColumnNativeData()
  24. {
  25. }
  26. wxDataViewColumnNativeData(DataBrowserPropertyID initPropertyID)
  27. :m_PropertyID(initPropertyID)
  28. {
  29. }
  30. //
  31. // data access methods
  32. //
  33. DataBrowserPropertyID GetPropertyID() const
  34. {
  35. return m_PropertyID;
  36. }
  37. void SetPropertyID(DataBrowserPropertyID newPropertyID)
  38. {
  39. m_PropertyID = newPropertyID;
  40. }
  41. protected:
  42. private:
  43. //
  44. // variables
  45. //
  46. DataBrowserPropertyID m_PropertyID; // each column is identified by its unique property ID (NOT by the column's index)
  47. };
  48. // ============================================================================
  49. // wxDataViewRendererNativeData
  50. // ============================================================================
  51. class wxDataViewRendererNativeData
  52. {
  53. public:
  54. //
  55. // constructors / destructor
  56. //
  57. wxDataViewRendererNativeData()
  58. {
  59. }
  60. wxDataViewRendererNativeData(DataBrowserPropertyType initPropertyType, DataBrowserItemDataRef initItemDataRef=NULL)
  61. :m_ItemDataRef(initItemDataRef), m_PropertyType(initPropertyType)
  62. {
  63. }
  64. //
  65. // data access methods
  66. //
  67. DataBrowserItemDataRef GetItemDataRef() const
  68. {
  69. return m_ItemDataRef;
  70. }
  71. DataBrowserPropertyType GetPropertyType() const
  72. {
  73. return m_PropertyType;
  74. }
  75. void SetItemDataRef(DataBrowserItemDataRef newItemDataRef)
  76. {
  77. m_ItemDataRef = newItemDataRef;
  78. }
  79. void SetPropertyType(DataBrowserPropertyType newPropertyType)
  80. {
  81. m_PropertyType = newPropertyType;
  82. }
  83. protected:
  84. private:
  85. //
  86. // variables
  87. //
  88. DataBrowserItemDataRef m_ItemDataRef;
  89. DataBrowserPropertyType m_PropertyType;
  90. };
  91. // ============================================================================
  92. // wxMacDataBrowserTableViewControl
  93. // ============================================================================
  94. //
  95. // This is a wrapper class for the Mac OS X data browser environment.
  96. // It covers all data brower functionality for the native browser's list
  97. // and column style.
  98. //
  99. // data browser's property IDs have a reserved ID range from 0 - 1023
  100. // therefore, the first usable property ID is 'kMinPropertyID'
  101. DataBrowserPropertyID const kMinPropertyID = 1024;
  102. // array of data browser item IDs
  103. WX_DEFINE_ARRAY_SIZE_T(size_t,wxArrayDataBrowserItemID);
  104. class wxMacDataBrowserTableViewControl : public wxMacControl
  105. {
  106. public:
  107. //
  108. // constructors / destructor
  109. //
  110. wxMacDataBrowserTableViewControl(wxWindow* peer, const wxPoint& pos, const wxSize& size, long style);
  111. wxMacDataBrowserTableViewControl()
  112. {
  113. }
  114. ~wxMacDataBrowserTableViewControl();
  115. //
  116. // callback handling
  117. //
  118. OSStatus SetCallbacks (DataBrowserCallbacks const* callbacks);
  119. OSStatus SetCustomCallbacks(DataBrowserCustomCallbacks const* customCallbacks);
  120. //
  121. // DnD handling
  122. //
  123. OSStatus EnableAutomaticDragTracking(bool enable=true);
  124. //
  125. // header handling
  126. //
  127. OSStatus GetHeaderDesc(DataBrowserPropertyID property, DataBrowserListViewHeaderDesc* desc) const;
  128. OSStatus SetHeaderDesc(DataBrowserPropertyID property, DataBrowserListViewHeaderDesc* desc);
  129. //
  130. // layout handling
  131. //
  132. OSStatus AutoSizeColumns();
  133. OSStatus EnableCellSizeModification(bool enableHeight=true, bool enableWidth=true); // enables or disables the column width and row height modification (default: false)
  134. OSStatus GetAttributes (OptionBits* attributes);
  135. OSStatus GetColumnWidth (DataBrowserPropertyID column, UInt16 *width ) const; // returns the column width in pixels
  136. OSStatus GetDefaultColumnWidth(UInt16 *width ) const; // returns the default column width in pixels
  137. OSStatus GetDefaultRowHeight (UInt16 * height ) const;
  138. OSStatus GetHeaderButtonHeight(UInt16 *height );
  139. OSStatus GetPartBounds (DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect* bounds);
  140. OSStatus GetRowHeight (DataBrowserItemID item , UInt16 *height) const;
  141. OSStatus GetScrollPosition (UInt32* top, UInt32 *left) const;
  142. OSStatus SetAttributes (OptionBits attributes);
  143. OSStatus SetColumnWidth(DataBrowserPropertyID column, UInt16 width); // sets the column width in pixels
  144. OSStatus SetDefaultColumnWidth( UInt16 width );
  145. OSStatus SetDefaultRowHeight( UInt16 height );
  146. OSStatus SetHasScrollBars( bool horiz, bool vert );
  147. OSStatus SetHeaderButtonHeight( UInt16 height );
  148. OSStatus SetHiliteStyle(DataBrowserTableViewHiliteStyle hiliteStyle);
  149. OSStatus SetIndent(float Indent);
  150. OSStatus SetItemRowHeight( DataBrowserItemID item , UInt16 height);
  151. OSStatus SetScrollPosition( UInt32 top , UInt32 left );
  152. //
  153. // column handling
  154. //
  155. OSStatus GetColumnCount (UInt32* numColumns) const;
  156. OSStatus GetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex* index) const; // returns for the passed property the corresponding column index
  157. OSStatus GetFreePropertyID(DataBrowserPropertyID* propertyID) const; // this method returns a property id that is valid and currently not used; if it cannot be found 'errDataBrowerPropertyNotSupported' is returned
  158. OSStatus GetPropertyFlags (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags *flags ) const;
  159. OSStatus GetPropertyID (DataBrowserItemDataRef itemData, DataBrowserPropertyID* propertyID) const; // returns for the passed item data reference the corresponding property ID
  160. OSStatus GetPropertyID (DataBrowserTableViewColumnIndex index, DataBrowserPropertyID* propertyID) const; // returns for the passed column index the corresponding property ID
  161. OSStatus IsUsedPropertyID(DataBrowserPropertyID propertyID) const; // checks if passed property id is used by the control; no error is returned if the id exists
  162. OSStatus RemoveColumnByProperty(DataBrowserTableViewColumnID propertyID);
  163. OSStatus RemoveColumnByIndex (DataBrowserTableViewColumnIndex index);
  164. OSStatus SetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index);
  165. OSStatus SetDisclosureColumn(DataBrowserPropertyID propertyID, Boolean expandableRows=false);
  166. OSStatus SetPropertyFlags (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags flags);
  167. //
  168. // item handling
  169. //
  170. OSStatus AddItem(DataBrowserItemID container, DataBrowserItemID const* itemID) // adds a single item
  171. {
  172. return AddItems(container,1,itemID,kDataBrowserItemNoProperty);
  173. }
  174. OSStatus AddItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty); // adds items to the data browser
  175. OSStatus GetFreeItemID(DataBrowserItemID* id) const; // this method returns an item id that is valid and currently not used; if it cannot be found 'errDataBrowserItemNotAdded' is returned
  176. OSStatus GetItemCount (ItemCount* numItems) const
  177. {
  178. return GetItemCount(kDataBrowserNoItem,true,kDataBrowserItemAnyState,numItems);
  179. }
  180. OSStatus GetItemCount (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, ItemCount* numItems) const;
  181. OSStatus GetItemID (DataBrowserTableViewRowIndex row, DataBrowserItemID* item) const;
  182. OSStatus GetItems (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, Handle items) const;
  183. OSStatus GetItemRow (DataBrowserItemID item, DataBrowserTableViewRowIndex* row) const;
  184. OSStatus GetItemState (DataBrowserItemID item, DataBrowserItemState* state) const;
  185. OSStatus IsUsedItemID(DataBrowserItemID itemID) const; // checks if the passed id is in use
  186. OSStatus RevealItem(DataBrowserItemID item, DataBrowserPropertyID propertyID, DataBrowserRevealOptions options) const;
  187. OSStatus RemoveItem(DataBrowserItemID container, DataBrowserItemID const* itemID) // removes a single item
  188. {
  189. return RemoveItems(container,1,itemID,kDataBrowserItemNoProperty);
  190. }
  191. OSStatus RemoveItems(void) // removes all items
  192. {
  193. return RemoveItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty);
  194. }
  195. OSStatus RemoveItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty);
  196. OSStatus UpdateItem(DataBrowserItemID container, DataBrowserItemID const* item) // updates all columns of the passed item
  197. {
  198. return UpdateItems(container,1,item,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty);
  199. }
  200. OSStatus UpdateItems(void) // updates all items
  201. {
  202. return UpdateItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty);
  203. }
  204. OSStatus UpdateItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty, DataBrowserPropertyID propertyID) const;
  205. //
  206. // item selection
  207. //
  208. size_t GetSelectedItemIDs(wxArrayDataBrowserItemID& itemIDs) const; // returns the number of selected item and the item IDs in the array
  209. OSStatus GetSelectionAnchor(DataBrowserItemID *first, DataBrowserItemID *last) const;
  210. OSStatus GetSelectionFlags (DataBrowserSelectionFlags* flags) const;
  211. bool IsItemSelected(DataBrowserItemID item) const;
  212. OSStatus SetSelectionFlags(DataBrowserSelectionFlags flags);
  213. OSStatus SetSelectedItems (UInt32 numItems, DataBrowserItemID const* itemIDs, DataBrowserSetOption operation);
  214. //
  215. // item sorting
  216. //
  217. OSStatus GetSortOrder (DataBrowserSortOrder* order) const;
  218. OSStatus GetSortProperty(DataBrowserPropertyID* propertyID) const;
  219. OSStatus Resort(DataBrowserItemID container=kDataBrowserNoItem, Boolean sortChildren=true);
  220. OSStatus SetSortOrder (DataBrowserSortOrder order);
  221. OSStatus SetSortProperty(DataBrowserPropertyID propertyID);
  222. //
  223. // container handling
  224. //
  225. OSStatus CloseContainer(DataBrowserItemID containerID);
  226. OSStatus OpenContainer(DataBrowserItemID containerID);
  227. protected :
  228. //
  229. // standard callback functions
  230. //
  231. static pascal Boolean DataBrowserCompareProc (ControlRef browser, DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty);
  232. static pascal void DataBrowserGetContextualMenuProc(ControlRef browser, MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection);
  233. static pascal OSStatus DataBrowserGetSetItemDataProc (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean getValue);
  234. static pascal void DataBrowserItemNotificationProc (ControlRef browser, DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData);
  235. virtual Boolean DataBrowserCompareProc (DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty) = 0;
  236. virtual void DataBrowserGetContextualMenuProc(MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection) = 0;
  237. virtual OSStatus DataBrowserGetSetItemDataProc (DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean getValue) = 0;
  238. virtual void DataBrowserItemNotificationProc (DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData) = 0;
  239. //
  240. // callback functions for customized types
  241. //
  242. static pascal void DataBrowserDrawItemProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice);
  243. static pascal Boolean DataBrowserEditItemProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit);
  244. static pascal Boolean DataBrowserHitTestProc (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect);
  245. static pascal DataBrowserTrackingResult DataBrowserTrackingProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers);
  246. virtual void DataBrowserDrawItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice) = 0;
  247. virtual Boolean DataBrowserEditItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit) = 0;
  248. virtual Boolean DataBrowserHitTestProc (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect) = 0;
  249. virtual DataBrowserTrackingResult DataBrowserTrackingProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers) = 0;
  250. //
  251. // callback functions for drag & drop
  252. ///
  253. static pascal Boolean DataBrowserAcceptDragProc (ControlRef browser, DragReference dragRef, DataBrowserItemID itemID);
  254. static pascal Boolean DataBrowserAddDragItemProc(ControlRef browser, DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef);
  255. static pascal Boolean DataBrowserReceiveDragProc(ControlRef browser, DragReference dragRef, DataBrowserItemID itemID);
  256. virtual Boolean DataBrowserAcceptDragProc (DragReference dragRef, DataBrowserItemID itemID) = 0;
  257. virtual Boolean DataBrowserAddDragItemProc(DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef) = 0;
  258. virtual Boolean DataBrowserReceiveDragProc(DragReference dragRef, DataBrowserItemID itemID) = 0;
  259. //
  260. // event handler for hit testing
  261. ///
  262. void* m_macDataViewCtrlEventHandler;
  263. private:
  264. //
  265. // wxWidget internal stuff
  266. //
  267. DECLARE_ABSTRACT_CLASS(wxMacDataBrowserTableViewControl)
  268. };
  269. // ============================================================================
  270. // wxMacDataBrowserListViewControl
  271. // ============================================================================
  272. //
  273. // This class is a wrapper for the native browser's list view style. It expands
  274. // the inherited functionality of the table view control class.
  275. // The term list view is in this case Mac OS X specific and is not related
  276. // to any wxWidget naming conventions.
  277. //
  278. class wxMacDataBrowserListViewControl : public wxMacDataBrowserTableViewControl
  279. {
  280. public:
  281. //
  282. // constructors / destructor
  283. //
  284. wxMacDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style) : wxMacDataBrowserTableViewControl(peer,pos,size,style)
  285. {
  286. }
  287. //
  288. // column handling
  289. //
  290. OSStatus AddColumn(DataBrowserListViewColumnDesc *columnDesc, DataBrowserTableViewColumnIndex position);
  291. protected:
  292. private:
  293. };
  294. // ============================================================================
  295. // wxMacDataViewDataBrowserListViewControl
  296. // ============================================================================
  297. //
  298. // This is the internal interface class between wxDataViewCtrl (wxWidget) and
  299. // the native data browser (Mac OS X carbon).
  300. //
  301. class wxMacDataViewDataBrowserListViewControl : public wxMacDataBrowserListViewControl, public wxDataViewWidgetImpl
  302. {
  303. public:
  304. //
  305. // constructors / destructor
  306. //
  307. wxMacDataViewDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style);
  308. //
  309. // column related methods (inherited from wxDataViewWidgetImpl)
  310. //
  311. virtual bool ClearColumns ();
  312. virtual bool DeleteColumn (wxDataViewColumn* columnPtr);
  313. virtual void DoSetExpanderColumn(wxDataViewColumn const* columnPtr);
  314. virtual wxDataViewColumn* GetColumn (unsigned int pos) const;
  315. virtual int GetColumnPosition (wxDataViewColumn const* columnPtr) const;
  316. virtual bool InsertColumn (unsigned int pos, wxDataViewColumn* columnPtr);
  317. virtual void FitColumnWidthToContent(unsigned int WXUNUSED(pos)) { /*not implemented*/ }
  318. //
  319. // item related methods (inherited from wxDataViewWidgetImpl)
  320. //
  321. virtual bool Add (wxDataViewItem const& parent, wxDataViewItem const& item);
  322. virtual bool Add (wxDataViewItem const& parent, wxDataViewItemArray const& items);
  323. virtual void Collapse (wxDataViewItem const& item);
  324. virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr);
  325. virtual void Expand (wxDataViewItem const& item);
  326. virtual unsigned int GetCount () const;
  327. virtual wxRect GetRectangle (wxDataViewItem const& item, wxDataViewColumn const* columnPtr);
  328. virtual bool IsExpanded (wxDataViewItem const& item) const;
  329. virtual bool Reload ();
  330. virtual bool Remove (wxDataViewItem const& parent, wxDataViewItem const& item);
  331. virtual bool Remove (wxDataViewItem const& parent, wxDataViewItemArray const& item);
  332. virtual bool Update (wxDataViewColumn const* columnPtr);
  333. virtual bool Update (wxDataViewItem const& parent, wxDataViewItem const& item);
  334. virtual bool Update (wxDataViewItem const& parent, wxDataViewItemArray const& items);
  335. //
  336. // model related methods
  337. //
  338. virtual bool AssociateModel(wxDataViewModel* model);
  339. //
  340. // selection related methods (inherited from wxDataViewWidgetImpl)
  341. //
  342. virtual wxDataViewItem GetCurrentItem() const;
  343. virtual void SetCurrentItem(const wxDataViewItem& item);
  344. virtual wxDataViewColumn *GetCurrentColumn() const;
  345. virtual int GetSelectedItemsCount() const;
  346. virtual int GetSelections(wxDataViewItemArray& sel) const;
  347. virtual bool IsSelected (wxDataViewItem const& item) const;
  348. virtual void Select (wxDataViewItem const& item);
  349. virtual void SelectAll ();
  350. virtual void Unselect (wxDataViewItem const& item);
  351. virtual void UnselectAll ();
  352. //
  353. // sorting related methods
  354. //
  355. virtual wxDataViewColumn* GetSortingColumn () const;
  356. virtual void Resort ();
  357. //
  358. // other methods (inherited from wxDataViewWidgetImpl)
  359. //
  360. virtual void DoSetIndent (int indent);
  361. virtual void HitTest (wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
  362. virtual void SetRowHeight(wxDataViewItem const& item, unsigned int height);
  363. virtual void OnSize ();
  364. virtual void StartEditor( const wxDataViewItem & item, unsigned int column );
  365. //
  366. // other methods
  367. //
  368. wxDataViewCtrl* GetDataViewCtrl() const
  369. {
  370. return dynamic_cast<wxDataViewCtrl*>(GetWXPeer());
  371. }
  372. protected:
  373. //
  374. // standard callback functions (inherited from wxMacDataBrowserTableViewControl)
  375. //
  376. virtual Boolean DataBrowserCompareProc (DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty);
  377. virtual void DataBrowserItemNotificationProc (DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData);
  378. virtual void DataBrowserGetContextualMenuProc(MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection);
  379. virtual OSStatus DataBrowserGetSetItemDataProc (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemDataRef itemData, Boolean getValue);
  380. //
  381. // callback functions for customized types (inherited from wxMacDataBrowserTableViewControl)
  382. //
  383. virtual void DataBrowserDrawItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice);
  384. virtual Boolean DataBrowserEditItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit);
  385. virtual Boolean DataBrowserHitTestProc (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect);
  386. virtual DataBrowserTrackingResult DataBrowserTrackingProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers);
  387. //
  388. // callback functions for drag & drop (inherited from wxMacDataBrowserTableViewControl)
  389. //
  390. virtual Boolean DataBrowserAcceptDragProc (DragReference dragRef, DataBrowserItemID itemID);
  391. virtual Boolean DataBrowserAddDragItemProc(DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef);
  392. virtual Boolean DataBrowserReceiveDragProc(DragReference dragRef, DataBrowserItemID itemID);
  393. //
  394. // drag & drop helper methods
  395. //
  396. wxDataFormat GetDnDDataFormat(wxDataObjectComposite* dataObjects);
  397. wxDataObjectComposite* GetDnDDataObjects(DragReference dragRef, ItemReference itemRef) const; // create the data objects from the native dragged object
  398. //
  399. // other methods
  400. //
  401. wxDataViewColumn* GetColumnPtr(DataBrowserPropertyID propertyID) const; // returns for the passed property the corresponding pointer to a column; NULL is returned if not found
  402. private:
  403. };
  404. typedef wxMacDataViewDataBrowserListViewControl* wxMacDataViewDataBrowserListViewControlPointer;
  405. #endif // WX_GUI
  406. #endif // _WX_MACCARBONDATAVIEWCTRL_H_