1// Copyright (c) 2011 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#include "ppapi/cpp/private/flash_menu.h" 6 7#include "ppapi/c/pp_errors.h" 8#include "ppapi/cpp/completion_callback.h" 9#include "ppapi/cpp/instance_handle.h" 10#include "ppapi/cpp/module.h" 11#include "ppapi/cpp/module_impl.h" 12#include "ppapi/cpp/point.h" 13 14namespace pp { 15 16namespace { 17 18template <> const char* interface_name<PPB_Flash_Menu>() { 19 return PPB_FLASH_MENU_INTERFACE; 20} 21 22} // namespace 23 24namespace flash { 25 26Menu::Menu(const InstanceHandle& instance, 27 const struct PP_Flash_Menu* menu_data) { 28 if (has_interface<PPB_Flash_Menu>()) { 29 PassRefFromConstructor(get_interface<PPB_Flash_Menu>()->Create( 30 instance.pp_instance(), menu_data)); 31 } 32} 33 34int32_t Menu::Show(const Point& location, 35 int32_t* selected_id, 36 const CompletionCallback& cc) { 37 if (!has_interface<PPB_Flash_Menu>()) 38 return cc.MayForce(PP_ERROR_NOINTERFACE); 39 return get_interface<PPB_Flash_Menu>()->Show( 40 pp_resource(), 41 &location.pp_point(), 42 selected_id, 43 cc.pp_completion_callback()); 44} 45 46} // namespace flash 47} // namespace pp 48