1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef nsDragService_h_
7 #define nsDragService_h_
9 #include "nsBaseDragService.h"
11 #include <Cocoa/Cocoa.h>
13 extern NSString
* const kWildcardPboardType
;
14 extern NSString
* const kCorePboardType_url
;
15 extern NSString
* const kCorePboardType_urld
;
16 extern NSString
* const kCorePboardType_urln
;
18 class nsDragService
: public nsBaseDragService
24 NS_IMETHOD
InvokeDragSession(nsIDOMNode
*aDOMNode
, nsISupportsArray
* anArrayTransferables
,
25 nsIScriptableRegion
* aRegion
, uint32_t aActionType
);
26 NS_IMETHOD
EndDragSession(bool aDoneDrag
);
29 NS_IMETHOD
GetData(nsITransferable
* aTransferable
, uint32_t aItemIndex
);
30 NS_IMETHOD
IsDataFlavorSupported(const char *aDataFlavor
, bool *_retval
);
31 NS_IMETHOD
GetNumDropItems(uint32_t * aNumItems
);
34 virtual ~nsDragService();
38 NSImage
* ConstructDragImage(nsIDOMNode
* aDOMNode
,
40 nsIScriptableRegion
* aRegion
);
42 nsCOMPtr
<nsISupportsArray
> mDataItems
; // only valid for a drag started within gecko
43 NSView
* mNativeDragView
;
44 NSEvent
* mNativeDragEvent
;
47 #endif // nsDragService_h_