// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PPAPI_CPP_PRIVATE_FLASH_CLIPBOARD_H_ #define PPAPI_CPP_PRIVATE_FLASH_CLIPBOARD_H_ #include <string> #include <vector> #include "ppapi/c/private/ppb_flash_clipboard.h" #include "ppapi/cpp/var.h" namespace pp { class InstanceHandle; namespace flash { class Clipboard { public: // Returns true if the required interface is available. static bool IsAvailable(); // Returns a format ID on success or PP_FLASH_CLIPBOARD_FORMAT_INVALID on // failure. static uint32_t RegisterCustomFormat(const InstanceHandle& instance, const std::string& format_name); // Returns true if the given format is available from the given clipboard. static bool IsFormatAvailable(const InstanceHandle& instance, PP_Flash_Clipboard_Type clipboard_type, uint32_t format); // Returns true on success, in which case |out| will be filled with // data read from the given clipboard in the given format. static bool ReadData(const InstanceHandle& instance, PP_Flash_Clipboard_Type clipboard_type, uint32_t clipboard_format, Var* out); // Returns true on success in which case all of |data| will be written to // the clipboard. Otherwise nothing will be written. static bool WriteData(const InstanceHandle& instance, PP_Flash_Clipboard_Type clipboard_type, const std::vector<uint32_t>& formats, const std::vector<Var>& data_items); }; } // namespace flash } // namespace pp #endif // PPAPI_CPP_PRIVATE_FLASH_CLIPBOARD_H_