File: dataview.h

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (478 lines) | stat: -rw-r--r-- 21,783 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
/////////////////////////////////////////////////////////////////////////////
// Name:        wx/osx/carbon/dataview.h
// Purpose:     wxDataViewCtrl native implementation header for carbon
// Author:
// Copyright:   (c) 2009
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

#ifndef _WX_DATAVIEWCTRL_CARBON_H_
#define _WX_DATAVIEWCTRL_CARBON_H_

#include "wx/defs.h"

#if wxUSE_GUI

#include "wx/osx/core/dataview.h"
#include "wx/osx/private.h"

// ============================================================================
// wxDataViewColumnNativeData
// ============================================================================
class wxDataViewColumnNativeData
{
public:
//
// constructors / destructor
//
  wxDataViewColumnNativeData()
  {
  }
  wxDataViewColumnNativeData(DataBrowserPropertyID initPropertyID)
                            :m_PropertyID(initPropertyID)
  {
  }

//
// data access methods
//
  DataBrowserPropertyID GetPropertyID() const
  {
    return m_PropertyID;
  }

  void SetPropertyID(DataBrowserPropertyID newPropertyID)
  {
    m_PropertyID = newPropertyID;
  }

protected:
private:
//
// variables
//
  DataBrowserPropertyID m_PropertyID; // each column is identified by its unique property ID (NOT by the column's index)
};

// ============================================================================
// wxDataViewRendererNativeData
// ============================================================================
class wxDataViewRendererNativeData
{
public:
//
// constructors / destructor
//
  wxDataViewRendererNativeData()
  {
  }
  wxDataViewRendererNativeData(DataBrowserPropertyType initPropertyType, DataBrowserItemDataRef initItemDataRef=NULL)
                              :m_ItemDataRef(initItemDataRef), m_PropertyType(initPropertyType)
  {
  }

//
// data access methods
//
  DataBrowserItemDataRef GetItemDataRef() const
  {
    return m_ItemDataRef;
  }
  DataBrowserPropertyType GetPropertyType() const
  {
    return m_PropertyType;
  }

  void SetItemDataRef(DataBrowserItemDataRef newItemDataRef)
  {
    m_ItemDataRef = newItemDataRef;
  }
  void SetPropertyType(DataBrowserPropertyType newPropertyType)
  {
    m_PropertyType = newPropertyType;
  }

protected:
private:
//
// variables
//
  DataBrowserItemDataRef m_ItemDataRef;

  DataBrowserPropertyType m_PropertyType;
};

// ============================================================================
// wxMacDataBrowserTableViewControl
// ============================================================================
//
// This is a wrapper class for the Mac OS X data browser environment.
// It covers all data browser functionality for the native browser's list
// and column style.
//

// data browser's property IDs have a reserved ID range from 0 - 1023
// therefore, the first usable property ID is 'kMinPropertyID'
DataBrowserPropertyID const kMinPropertyID = 1024;

// array of data browser item IDs
WX_DEFINE_ARRAY_SIZE_T(size_t,wxArrayDataBrowserItemID);

class wxMacDataBrowserTableViewControl : public wxMacControl
{
public:
//
// constructors / destructor
//
  wxMacDataBrowserTableViewControl(wxWindow* peer, const wxPoint& pos, const wxSize& size, long style);
  wxMacDataBrowserTableViewControl()
  {
  }
  ~wxMacDataBrowserTableViewControl();

//
// callback handling
//
  OSStatus SetCallbacks      (DataBrowserCallbacks const*       callbacks);
  OSStatus SetCustomCallbacks(DataBrowserCustomCallbacks const* customCallbacks);

//
// DnD handling
//
  OSStatus EnableAutomaticDragTracking(bool enable=true);

//
// header handling
//
  OSStatus GetHeaderDesc(DataBrowserPropertyID property, DataBrowserListViewHeaderDesc* desc) const;

  OSStatus SetHeaderDesc(DataBrowserPropertyID property, DataBrowserListViewHeaderDesc* desc);

//
// layout handling
//
  OSStatus AutoSizeColumns();

  OSStatus EnableCellSizeModification(bool enableHeight=true, bool enableWidth=true); // enables or disables the column width and row height modification (default: false)

  OSStatus GetAttributes        (OptionBits* attributes);
  OSStatus GetColumnWidth       (DataBrowserPropertyID column, UInt16 *width ) const; // returns the column width in pixels
  OSStatus GetDefaultColumnWidth(UInt16 *width ) const; // returns the default column width in pixels
  OSStatus GetDefaultRowHeight  (UInt16 * height ) const;
  OSStatus GetHeaderButtonHeight(UInt16 *height );
  OSStatus GetPartBounds        (DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect* bounds);
  OSStatus GetRowHeight         (DataBrowserItemID item , UInt16 *height) const;
  OSStatus GetScrollPosition    (UInt32* top, UInt32 *left) const;

  OSStatus SetAttributes (OptionBits attributes);
  OSStatus SetColumnWidth(DataBrowserPropertyID column, UInt16 width); // sets the column width in pixels
  OSStatus SetDefaultColumnWidth( UInt16 width );
  OSStatus SetDefaultRowHeight( UInt16 height );
  OSStatus SetHasScrollBars( bool horiz, bool vert );
  OSStatus SetHeaderButtonHeight( UInt16 height );
  OSStatus SetHiliteStyle(DataBrowserTableViewHiliteStyle hiliteStyle);
  OSStatus SetIndent(float Indent);
  OSStatus SetItemRowHeight( DataBrowserItemID item , UInt16 height);
  OSStatus SetScrollPosition( UInt32 top , UInt32 left );

//
// column handling
//
  OSStatus GetColumnCount   (UInt32* numColumns) const;
  OSStatus GetColumnIndex   (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex* index) const; // returns for the passed property the corresponding column index
  OSStatus GetFreePropertyID(DataBrowserPropertyID* propertyID) const; // this method returns a property id that is valid and currently not used; if it cannot be found 'errDataBrowserPropertyNotSupported' is returned
  OSStatus GetPropertyFlags (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags *flags ) const;
  OSStatus GetPropertyID    (DataBrowserItemDataRef itemData, DataBrowserPropertyID* propertyID) const; // returns for the passed item data reference the corresponding property ID
  OSStatus GetPropertyID    (DataBrowserTableViewColumnIndex index, DataBrowserPropertyID* propertyID) const; // returns for the passed column index the corresponding property ID

  OSStatus IsUsedPropertyID(DataBrowserPropertyID propertyID) const; // checks if passed property id is used by the control; no error is returned if the id exists

  OSStatus RemoveColumnByProperty(DataBrowserTableViewColumnID propertyID);
  OSStatus RemoveColumnByIndex   (DataBrowserTableViewColumnIndex index);

  OSStatus SetColumnIndex     (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index);
  OSStatus SetDisclosureColumn(DataBrowserPropertyID propertyID, Boolean expandableRows=false);
  OSStatus SetPropertyFlags   (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags flags);

//
// item handling
//
  OSStatus AddItem(DataBrowserItemID container, DataBrowserItemID const* itemID) // adds a single item
  {
    return AddItems(container,1,itemID,kDataBrowserItemNoProperty);
  }
  OSStatus AddItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty); // adds items to the data browser

  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
  OSStatus GetItemCount (ItemCount* numItems) const
  {
    return GetItemCount(kDataBrowserNoItem,true,kDataBrowserItemAnyState,numItems);
  }
  OSStatus GetItemCount (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, ItemCount* numItems) const;
  OSStatus GetItemID    (DataBrowserTableViewRowIndex row, DataBrowserItemID* item) const;
  OSStatus GetItems     (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, Handle items) const;
  OSStatus GetItemRow   (DataBrowserItemID item, DataBrowserTableViewRowIndex* row) const;
  OSStatus GetItemState (DataBrowserItemID item, DataBrowserItemState* state) const;

  OSStatus IsUsedItemID(DataBrowserItemID itemID) const; // checks if the passed id is in use

  OSStatus RevealItem(DataBrowserItemID item, DataBrowserPropertyID propertyID, DataBrowserRevealOptions options) const;

  OSStatus RemoveItem(DataBrowserItemID container, DataBrowserItemID const* itemID) // removes a single item
  {
    return RemoveItems(container,1,itemID,kDataBrowserItemNoProperty);
  }
  OSStatus RemoveItems(void) // removes all items
  {
    return RemoveItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty);
  }
  OSStatus RemoveItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty);

  OSStatus UpdateItem(DataBrowserItemID container, DataBrowserItemID const* item) // updates all columns of the passed item
  {
    return UpdateItems(container,1,item,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty);
  }
  OSStatus UpdateItems(void) // updates all items
  {
    return UpdateItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty);
  }
  OSStatus UpdateItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty, DataBrowserPropertyID propertyID) const;

//
// item selection
//
  size_t   GetSelectedItemIDs(wxArrayDataBrowserItemID& itemIDs) const; // returns the number of selected item and the item IDs in the array
  OSStatus GetSelectionAnchor(DataBrowserItemID *first, DataBrowserItemID *last) const;
  OSStatus GetSelectionFlags (DataBrowserSelectionFlags* flags) const;

  bool IsItemSelected(DataBrowserItemID item) const;

  OSStatus SetSelectionFlags(DataBrowserSelectionFlags flags);
  OSStatus SetSelectedItems (UInt32 numItems, DataBrowserItemID const* itemIDs, DataBrowserSetOption operation);

//
// item sorting
//
  OSStatus GetSortOrder   (DataBrowserSortOrder* order) const;
  OSStatus GetSortProperty(DataBrowserPropertyID* propertyID) const;

  OSStatus Resort(DataBrowserItemID container=kDataBrowserNoItem, Boolean sortChildren=true);

  OSStatus SetSortOrder   (DataBrowserSortOrder  order);
  OSStatus SetSortProperty(DataBrowserPropertyID propertyID);

//
// container handling
//
  OSStatus CloseContainer(DataBrowserItemID containerID);

  OSStatus OpenContainer(DataBrowserItemID containerID);

protected :
//
// standard callback functions
//
  static pascal Boolean  DataBrowserCompareProc          (ControlRef browser, DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty);
  static pascal void     DataBrowserGetContextualMenuProc(ControlRef browser, MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection);
  static pascal OSStatus DataBrowserGetSetItemDataProc   (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean getValue);
  static pascal void     DataBrowserItemNotificationProc (ControlRef browser, DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData);

  virtual Boolean  DataBrowserCompareProc          (DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty) = 0;
  virtual void     DataBrowserGetContextualMenuProc(MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection) = 0;
  virtual OSStatus DataBrowserGetSetItemDataProc   (DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean getValue) = 0;
  virtual void     DataBrowserItemNotificationProc (DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData) = 0;

//
// callback functions for customized types
//
  static pascal void                      DataBrowserDrawItemProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice);
  static pascal Boolean                   DataBrowserEditItemProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit);
  static pascal Boolean                   DataBrowserHitTestProc (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect);
  static pascal DataBrowserTrackingResult DataBrowserTrackingProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers);

  virtual void                      DataBrowserDrawItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice) = 0;
  virtual Boolean                   DataBrowserEditItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit) = 0;
  virtual Boolean                   DataBrowserHitTestProc (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect) = 0;
  virtual DataBrowserTrackingResult DataBrowserTrackingProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers) = 0;

//
// callback functions for drag & drop
//
  static pascal Boolean DataBrowserAcceptDragProc (ControlRef browser, DragReference dragRef, DataBrowserItemID itemID);
  static pascal Boolean DataBrowserAddDragItemProc(ControlRef browser, DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef);
  static pascal Boolean DataBrowserReceiveDragProc(ControlRef browser, DragReference dragRef, DataBrowserItemID itemID);

  virtual Boolean DataBrowserAcceptDragProc (DragReference dragRef, DataBrowserItemID itemID)                         = 0;
  virtual Boolean DataBrowserAddDragItemProc(DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef) = 0;
  virtual Boolean DataBrowserReceiveDragProc(DragReference dragRef, DataBrowserItemID itemID)                         = 0;

//
// event handler for hit testing
//
  void*  m_macDataViewCtrlEventHandler;

private:
//
// wxWidget internal stuff
//
    DECLARE_ABSTRACT_CLASS(wxMacDataBrowserTableViewControl)
};

// ============================================================================
// wxMacDataBrowserListViewControl
// ============================================================================
//
// This class is a wrapper for the native browser's list view style. It expands
// the inherited functionality of the table view control class.
// The term list view is in this case Mac OS X specific and is not related
// to any wxWidget naming conventions.
//
class wxMacDataBrowserListViewControl : public wxMacDataBrowserTableViewControl
{
public:
//
// constructors / destructor
//
  wxMacDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style) : wxMacDataBrowserTableViewControl(peer,pos,size,style)
  {
  }

//
// column handling
//
  OSStatus AddColumn(DataBrowserListViewColumnDesc *columnDesc, DataBrowserTableViewColumnIndex position);

protected:
private:
};


// ============================================================================
// wxMacDataViewDataBrowserListViewControl
// ============================================================================
//
// This is the internal interface class between wxDataViewCtrl (wxWidget) and
// the native data browser (Mac OS X carbon).
//
class wxMacDataViewDataBrowserListViewControl : public wxMacDataBrowserListViewControl, public wxDataViewWidgetImpl
{
public:
//
// constructors / destructor
//
  wxMacDataViewDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style);

 //
 // column related methods (inherited from wxDataViewWidgetImpl)
 //
  virtual bool              ClearColumns       ();
  virtual bool              DeleteColumn       (wxDataViewColumn* columnPtr);
  virtual void              DoSetExpanderColumn(wxDataViewColumn const* columnPtr);
  virtual wxDataViewColumn* GetColumn          (unsigned int pos) const;
  virtual int               GetColumnPosition  (wxDataViewColumn const* columnPtr) const;
  virtual bool              InsertColumn       (unsigned int pos, wxDataViewColumn* columnPtr);
  virtual void              FitColumnWidthToContent(unsigned int WXUNUSED(pos)) { /*not implemented*/ }

 //
 // item related methods (inherited from wxDataViewWidgetImpl)
 //
  virtual bool         Add          (wxDataViewItem const& parent, wxDataViewItem const& item);
  virtual bool         Add          (wxDataViewItem const& parent, wxDataViewItemArray const& items);
  virtual void         Collapse     (wxDataViewItem const& item);
  virtual void         EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr);
  virtual void         Expand       (wxDataViewItem const& item);
  virtual unsigned int GetCount     () const;
  virtual wxRect       GetRectangle (wxDataViewItem const& item, wxDataViewColumn const* columnPtr);
  virtual bool         IsExpanded   (wxDataViewItem const& item) const;
  virtual bool         Reload       ();
  virtual bool         Remove       (wxDataViewItem const& parent, wxDataViewItem const& item);
  virtual bool         Remove       (wxDataViewItem const& parent, wxDataViewItemArray const& item);
  virtual bool         Update       (wxDataViewColumn const* columnPtr);
  virtual bool         Update       (wxDataViewItem const& parent, wxDataViewItem const& item);
  virtual bool         Update       (wxDataViewItem const& parent, wxDataViewItemArray const& items);

 //
 // model related methods
 //
  virtual bool AssociateModel(wxDataViewModel* model);

 //
 // selection related methods (inherited from wxDataViewWidgetImpl)
 //
  virtual wxDataViewItem GetCurrentItem() const;
  virtual void SetCurrentItem(const wxDataViewItem& item);
  virtual wxDataViewColumn *GetCurrentColumn() const;
  virtual int  GetSelectedItemsCount() const;
  virtual int  GetSelections(wxDataViewItemArray& sel)   const;
  virtual bool IsSelected   (wxDataViewItem const& item) const;
  virtual void Select       (wxDataViewItem const& item);
  virtual void SelectAll    ();
  virtual void Unselect     (wxDataViewItem const& item);
  virtual void UnselectAll  ();

 //
 // sorting related methods
 //
  virtual wxDataViewColumn* GetSortingColumn () const;
  virtual void              Resort           ();

 //
 // other methods (inherited from wxDataViewWidgetImpl)
 //
  virtual void DoSetIndent (int indent);
  virtual void HitTest     (wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
  virtual void SetRowHeight(wxDataViewItem const& item, unsigned int height);
  virtual void OnSize      ();

  virtual void StartEditor( const wxDataViewItem & item, unsigned int column );

 //
 // other methods
 //
  wxDataViewCtrl* GetDataViewCtrl() const
  {
    return dynamic_cast<wxDataViewCtrl*>(GetWXPeer());
  }

protected:
//
// standard callback functions (inherited from wxMacDataBrowserTableViewControl)
//
  virtual Boolean  DataBrowserCompareProc          (DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty);
  virtual void     DataBrowserItemNotificationProc (DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData);
  virtual void     DataBrowserGetContextualMenuProc(MenuRef* menu, UInt32* helpType, CFStringRef* helpItemString, AEDesc* selection);
  virtual OSStatus DataBrowserGetSetItemDataProc   (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemDataRef itemData, Boolean getValue);

//
// callback functions for customized types (inherited from wxMacDataBrowserTableViewControl)
//
  virtual void                      DataBrowserDrawItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, DataBrowserItemState state, Rect const* rectangle, SInt16 bitDepth, Boolean colorDevice);
  virtual Boolean                   DataBrowserEditItemProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, CFStringRef theString, Rect* maxEditTextRect, Boolean* shrinkToFit);
  virtual Boolean                   DataBrowserHitTestProc (DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Rect const* mouseRect);
  virtual DataBrowserTrackingResult DataBrowserTrackingProc(DataBrowserItemID itemID, DataBrowserPropertyID propertyID, Rect const* theRect, Point startPt, EventModifiers modifiers);

//
// callback functions for drag & drop (inherited from wxMacDataBrowserTableViewControl)
//
  virtual Boolean DataBrowserAcceptDragProc (DragReference dragRef, DataBrowserItemID itemID);
  virtual Boolean DataBrowserAddDragItemProc(DragReference dragRef, DataBrowserItemID itemID, ItemReference* itemRef);
  virtual Boolean DataBrowserReceiveDragProc(DragReference dragRef, DataBrowserItemID itemID);

//
// drag & drop helper methods
//
  wxDataFormat           GetDnDDataFormat(wxDataObjectComposite* dataObjects);
  wxDataObjectComposite* GetDnDDataObjects(DragReference dragRef, ItemReference itemRef) const; // create the data objects from the native dragged object

//
// other methods
//
  wxDataViewColumn* GetColumnPtr(DataBrowserPropertyID propertyID) const; // returns for the passed property the corresponding pointer to a column; NULL is returned if not found

private:
};

typedef wxMacDataViewDataBrowserListViewControl* wxMacDataViewDataBrowserListViewControlPointer;

#endif // WX_GUI
#endif // _WX_MACCARBONDATAVIEWCTRL_H_