Pepper_47_C++_interfaces
view.cc
Go to the documentation of this file.
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 #include "ppapi/cpp/view.h"
6 
7 #include "ppapi/c/ppb_view.h"
9 
10 namespace pp {
11 
12 namespace {
13 
14 template <> const char* interface_name<PPB_View_1_0>() {
15  return PPB_VIEW_INTERFACE_1_0;
16 }
17 
18 template <> const char* interface_name<PPB_View_1_1>() {
19  return PPB_VIEW_INTERFACE_1_1;
20 }
21 
22 template <> const char* interface_name<PPB_View_1_2>() {
23  return PPB_VIEW_INTERFACE_1_2;
24 }
25 
26 } // namespace
27 
29 }
30 
31 View::View(PP_Resource view_resource) : Resource(view_resource) {
32 }
33 
35  PP_Rect out;
36  if (has_interface<PPB_View_1_2>()) {
37  if (PP_ToBool(get_interface<PPB_View_1_2>()->GetRect(pp_resource(), &out)))
38  return Rect(out);
39  } else if (has_interface<PPB_View_1_1>()) {
40  if (PP_ToBool(get_interface<PPB_View_1_1>()->GetRect(pp_resource(), &out)))
41  return Rect(out);
42  } else if (has_interface<PPB_View_1_0>()) {
43  if (PP_ToBool(get_interface<PPB_View_1_0>()->GetRect(pp_resource(), &out)))
44  return Rect(out);
45  }
46  return Rect();
47 }
48 
49 bool View::IsFullscreen() const {
50  if (has_interface<PPB_View_1_2>()) {
51  return PP_ToBool(get_interface<PPB_View_1_2>()->IsFullscreen(
52  pp_resource()));
53  } else if (has_interface<PPB_View_1_1>()) {
54  return PP_ToBool(get_interface<PPB_View_1_1>()->IsFullscreen(
55  pp_resource()));
56  } else if (has_interface<PPB_View_1_0>()) {
57  return PP_ToBool(get_interface<PPB_View_1_0>()->IsFullscreen(
58  pp_resource()));
59  }
60  return false;
61 }
62 
63 bool View::IsVisible() const {
64  if (has_interface<PPB_View_1_2>())
65  return PP_ToBool(get_interface<PPB_View_1_2>()->IsVisible(pp_resource()));
66  else if (has_interface<PPB_View_1_1>())
67  return PP_ToBool(get_interface<PPB_View_1_1>()->IsVisible(pp_resource()));
68  else if (has_interface<PPB_View_1_0>())
69  return PP_ToBool(get_interface<PPB_View_1_0>()->IsVisible(pp_resource()));
70  return false;
71 }
72 
73 bool View::IsPageVisible() const {
74  if (has_interface<PPB_View_1_2>()) {
75  return PP_ToBool(get_interface<PPB_View_1_2>()->IsPageVisible(
76  pp_resource()));
77  } else if (has_interface<PPB_View_1_1>()) {
78  return PP_ToBool(get_interface<PPB_View_1_1>()->IsPageVisible(
79  pp_resource()));
80  } else if (has_interface<PPB_View_1_0>()) {
81  return PP_ToBool(get_interface<PPB_View_1_0>()->IsPageVisible(
82  pp_resource()));
83  }
84  return true;
85 }
86 
88  PP_Rect out;
89  if (has_interface<PPB_View_1_2>()) {
90  if (PP_ToBool(get_interface<PPB_View_1_2>()->GetClipRect(pp_resource(),
91  &out)))
92  return Rect(out);
93  } else if (has_interface<PPB_View_1_1>()) {
94  if (PP_ToBool(get_interface<PPB_View_1_1>()->GetClipRect(pp_resource(),
95  &out)))
96  return Rect(out);
97  } else if (has_interface<PPB_View_1_0>()) {
98  if (PP_ToBool(get_interface<PPB_View_1_0>()->GetClipRect(pp_resource(),
99  &out)))
100  return Rect(out);
101  }
102  return Rect();
103 }
104 
105 float View::GetDeviceScale() const {
106  if (has_interface<PPB_View_1_2>())
107  return get_interface<PPB_View_1_2>()->GetDeviceScale(pp_resource());
108  else if (has_interface<PPB_View_1_1>())
109  return get_interface<PPB_View_1_1>()->GetDeviceScale(pp_resource());
110  return 1.0f;
111 }
112 
113 float View::GetCSSScale() const {
114  if (has_interface<PPB_View_1_2>())
115  return get_interface<PPB_View_1_2>()->GetCSSScale(pp_resource());
116  else if (has_interface<PPB_View_1_1>())
117  return get_interface<PPB_View_1_1>()->GetCSSScale(pp_resource());
118  return 1.0f;
119 }
120 
122  PP_Point out;
123  if (has_interface<PPB_View_1_2>()) {
124  if (PP_ToBool(get_interface<PPB_View_1_2>()->GetScrollOffset(pp_resource(),
125  &out))) {
126  return Point(out);
127  }
128  }
129  return Point();
130 }
131 
132 } // namespace pp
float GetDeviceScale() const
Definition: view.cc:105
A 2 dimensional point with 0,0 being the upper-left starting coordinate.
Definition: point.h:16
Definition: rect.h:19
bool IsFullscreen() const
Definition: view.cc:49
bool IsPageVisible() const
Definition: view.cc:73
PP_Resource pp_resource() const
Definition: resource.h:47
Rect GetClipRect() const
Definition: view.cc:87
bool IsVisible() const
Definition: view.cc:63
float GetCSSScale() const
Definition: view.cc:113
A reference counted module resource.
Definition: resource.h:20
View()
Default constructor for creating an is_null() View object.
Definition: view.cc:28
Rect GetRect() const
Definition: view.cc:34
Point GetScrollOffset() const
Definition: view.cc:121