Home | History | Annotate | Download | only in clipboard
      1 // Copyright (c) 2012 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.
      4 //
      5 // Due to restrictions of most operating systems, we don't directly map each
      6 // type of custom data to a native data transfer type. Instead, we serialize
      7 // each key-value pair into the pickle as a pair of string objects, and then
      8 // write the binary data in the pickle to the native data transfer object.
      9 
     10 #ifndef UI_BASE_CLIPBOARD_CUSTOM_DATA_HELPER_H_
     11 #define UI_BASE_CLIPBOARD_CUSTOM_DATA_HELPER_H_
     12 
     13 #include <map>
     14 #include <vector>
     15 
     16 #include "base/strings/string16.h"
     17 #include "ui/base/ui_export.h"
     18 
     19 class Pickle;
     20 
     21 #if defined(OS_MACOSX)
     22 #ifdef __OBJC__
     23 @class NSString;
     24 #else
     25 class NSString;
     26 #endif
     27 #endif  // defined(OS_MACOSX)
     28 
     29 namespace ui {
     30 
     31 #if defined(OS_MACOSX)
     32 UI_EXPORT extern NSString* const kWebCustomDataPboardType;
     33 #elif (!defined(OS_WIN) && defined(USE_AURA)) || defined(TOOLKIT_GTK)
     34 UI_EXPORT extern const char kMimeTypeWebCustomData[];
     35 #endif
     36 
     37 UI_EXPORT void ReadCustomDataTypes(const void* data,
     38                                    size_t data_length,
     39                                    std::vector<base::string16>* types);
     40 UI_EXPORT void ReadCustomDataForType(const void* data,
     41                                      size_t data_length,
     42                                      const base::string16& type,
     43                                      base::string16* result);
     44 UI_EXPORT void ReadCustomDataIntoMap(
     45     const void* data,
     46     size_t data_length,
     47     std::map<base::string16, base::string16>* result);
     48 
     49 UI_EXPORT void WriteCustomDataToPickle(
     50     const std::map<base::string16, base::string16>& data,
     51     Pickle* pickle);
     52 
     53 }  // namespace ui
     54 
     55 #endif  // UI_BASE_CLIPBOARD_CLIPBOARD_H_
     56