1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_BASE_DRAGDROP_OS_EXCHANGE_DATA_PROVIDER_MAC_H_
6 #define UI_BASE_DRAGDROP_OS_EXCHANGE_DATA_PROVIDER_MAC_H_
8 #import "base/mac/scoped_nsobject.h"
9 #include "ui/base/dragdrop/os_exchange_data.h"
15 // OSExchangeData::Provider implementation for Mac.
16 class UI_BASE_EXPORT OSExchangeDataProviderMac
17 : public OSExchangeData::Provider
{
19 OSExchangeDataProviderMac();
20 explicit OSExchangeDataProviderMac(NSPasteboard
* pasteboard
);
21 virtual ~OSExchangeDataProviderMac();
23 // Overridden from OSExchangeData::Provider:
24 virtual Provider
* Clone() const OVERRIDE
;
25 virtual void MarkOriginatedFromRenderer() OVERRIDE
;
26 virtual bool DidOriginateFromRenderer() const OVERRIDE
;
27 virtual void SetString(const base::string16
& data
) OVERRIDE
;
28 virtual void SetURL(const GURL
& url
, const base::string16
& title
) OVERRIDE
;
29 virtual void SetFilename(const base::FilePath
& path
) OVERRIDE
;
30 virtual void SetFilenames(const std::vector
<FileInfo
>& filenames
) OVERRIDE
;
31 virtual void SetPickledData(const OSExchangeData::CustomFormat
& format
,
32 const Pickle
& data
) OVERRIDE
;
33 virtual bool GetString(base::string16
* data
) const OVERRIDE
;
34 virtual bool GetURLAndTitle(OSExchangeData::FilenameToURLPolicy policy
,
36 base::string16
* title
) const OVERRIDE
;
37 virtual bool GetFilename(base::FilePath
* path
) const OVERRIDE
;
38 virtual bool GetFilenames(std::vector
<FileInfo
>* filenames
) const OVERRIDE
;
39 virtual bool GetPickledData(const OSExchangeData::CustomFormat
& format
,
40 Pickle
* data
) const OVERRIDE
;
41 virtual bool HasString() const OVERRIDE
;
43 OSExchangeData::FilenameToURLPolicy policy
) const OVERRIDE
;
44 virtual bool HasFile() const OVERRIDE
;
45 virtual bool HasCustomFormat(
46 const OSExchangeData::CustomFormat
& format
) const OVERRIDE
;
49 base::scoped_nsobject
<NSPasteboard
> pasteboard_
;
51 DISALLOW_COPY_AND_ASSIGN(OSExchangeDataProviderMac
);
56 #endif // UI_BASE_DRAGDROP_OS_EXCHANGE_DATA_PROVIDER_MAC_H_