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#ifndef PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
6#define PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
7
8#include <string>
9
10#include "ppapi/c/private/ppb_flash.h"
11#include "ppapi/shared_impl/singleton_resource_id.h"
12#include "ppapi/thunk/ppapi_thunk_export.h"
13
14struct PP_BrowserFont_Trusted_Description;
15
16namespace ppapi {
17namespace thunk {
18
19// This class collects all of the Flash interface-related APIs into one place.
20class PPAPI_THUNK_EXPORT PPB_Flash_Functions_API {
21 public:
22  virtual ~PPB_Flash_Functions_API() {}
23
24  virtual PP_Var GetProxyForURL(PP_Instance instance,
25                                const std::string& url) = 0;
26  virtual void UpdateActivity(PP_Instance instance) = 0;
27  virtual PP_Bool SetCrashData(PP_Instance instance, PP_FlashCrashKey key,
28                               PP_Var value) = 0;
29  virtual double GetLocalTimeZoneOffset(PP_Instance instance, PP_Time t) = 0;
30  virtual PP_Var GetSetting(PP_Instance instance, PP_FlashSetting setting) = 0;
31  virtual void SetInstanceAlwaysOnTop(PP_Instance instance, PP_Bool on_top) = 0;
32  virtual PP_Bool DrawGlyphs(
33      PP_Instance instance,
34      PP_Resource pp_image_data,
35      const PP_BrowserFont_Trusted_Description* font_desc,
36      uint32_t color,
37      const PP_Point* position,
38      const PP_Rect* clip,
39      const float transformation[3][3],
40      PP_Bool allow_subpixel_aa,
41      uint32_t glyph_count,
42      const uint16_t glyph_indices[],
43      const PP_Point glyph_advances[]) = 0;
44  virtual int32_t Navigate(PP_Instance instance,
45                           PP_Resource request_info,
46                           const char* target,
47                           PP_Bool from_user_action) = 0;
48  virtual PP_Bool IsRectTopmost(PP_Instance instance, const PP_Rect* rect) = 0;
49  virtual void InvokePrinting(PP_Instance instance) = 0;
50
51  static const SingletonResourceID kSingletonResourceID = FLASH_SINGLETON_ID;
52};
53
54}  // namespace thunk
55}  // namespace ppapi
56
57#endif // PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
58