| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ppapi/cpp/view.h" | 5 #include "ppapi/cpp/view.h" |
| 6 | 6 |
| 7 #include "ppapi/c/ppb_view.h" | 7 #include "ppapi/c/ppb_view.h" |
| 8 #include "ppapi/cpp/module_impl.h" | 8 #include "ppapi/cpp/module_impl.h" |
| 9 | 9 |
| 10 namespace pp { | 10 namespace pp { |
| 11 | 11 |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 template <> const char* interface_name<PPB_View_1_0>() { | 14 template <> const char* interface_name<PPB_View_1_0>() { |
| 15 return PPB_VIEW_INTERFACE_1_0; | 15 return PPB_VIEW_INTERFACE_1_0; |
| 16 } | 16 } |
| 17 | 17 |
| 18 template <> const char* interface_name<PPB_View_1_1>() { | 18 template <> const char* interface_name<PPB_View_1_1>() { |
| 19 return PPB_VIEW_INTERFACE_1_1; | 19 return PPB_VIEW_INTERFACE_1_1; |
| 20 } | 20 } |
| 21 | 21 |
| 22 template <> const char* interface_name<PPB_View_1_2>() { |
| 23 return PPB_VIEW_INTERFACE_1_2; |
| 24 } |
| 25 |
| 22 } // namespace | 26 } // namespace |
| 23 | 27 |
| 24 View::View() : Resource() { | 28 View::View() : Resource() { |
| 25 } | 29 } |
| 26 | 30 |
| 27 View::View(PP_Resource view_resource) : Resource(view_resource) { | 31 View::View(PP_Resource view_resource) : Resource(view_resource) { |
| 28 } | 32 } |
| 29 | 33 |
| 30 Rect View::GetRect() const { | 34 Rect View::GetRect() const { |
| 31 PP_Rect out; | 35 PP_Rect out; |
| 32 if (has_interface<PPB_View_1_1>()) { | 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>()) { |
| 33 if (PP_ToBool(get_interface<PPB_View_1_1>()->GetRect(pp_resource(), &out))) | 40 if (PP_ToBool(get_interface<PPB_View_1_1>()->GetRect(pp_resource(), &out))) |
| 34 return Rect(out); | 41 return Rect(out); |
| 35 } else if (has_interface<PPB_View_1_0>()) { | 42 } else if (has_interface<PPB_View_1_0>()) { |
| 36 if (PP_ToBool(get_interface<PPB_View_1_0>()->GetRect(pp_resource(), &out))) | 43 if (PP_ToBool(get_interface<PPB_View_1_0>()->GetRect(pp_resource(), &out))) |
| 37 return Rect(out); | 44 return Rect(out); |
| 38 } | 45 } |
| 39 return Rect(); | 46 return Rect(); |
| 40 } | 47 } |
| 41 | 48 |
| 42 bool View::IsFullscreen() const { | 49 bool View::IsFullscreen() const { |
| 43 if (has_interface<PPB_View_1_1>()) { | 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>()) { |
| 44 return PP_ToBool(get_interface<PPB_View_1_1>()->IsFullscreen( | 54 return PP_ToBool(get_interface<PPB_View_1_1>()->IsFullscreen( |
| 45 pp_resource())); | 55 pp_resource())); |
| 46 } else if (has_interface<PPB_View_1_0>()) { | 56 } else if (has_interface<PPB_View_1_0>()) { |
| 47 return PP_ToBool(get_interface<PPB_View_1_0>()->IsFullscreen( | 57 return PP_ToBool(get_interface<PPB_View_1_0>()->IsFullscreen( |
| 48 pp_resource())); | 58 pp_resource())); |
| 49 } | 59 } |
| 50 return false; | 60 return false; |
| 51 } | 61 } |
| 52 | 62 |
| 53 bool View::IsVisible() const { | 63 bool View::IsVisible() const { |
| 54 if (has_interface<PPB_View_1_1>()) | 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>()) |
| 55 return PP_ToBool(get_interface<PPB_View_1_1>()->IsVisible(pp_resource())); | 67 return PP_ToBool(get_interface<PPB_View_1_1>()->IsVisible(pp_resource())); |
| 56 else if (has_interface<PPB_View_1_0>()) | 68 else if (has_interface<PPB_View_1_0>()) |
| 57 return PP_ToBool(get_interface<PPB_View_1_0>()->IsVisible(pp_resource())); | 69 return PP_ToBool(get_interface<PPB_View_1_0>()->IsVisible(pp_resource())); |
| 58 return false; | 70 return false; |
| 59 } | 71 } |
| 60 | 72 |
| 61 bool View::IsPageVisible() const { | 73 bool View::IsPageVisible() const { |
| 62 if (has_interface<PPB_View_1_1>()) { | 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>()) { |
| 63 return PP_ToBool(get_interface<PPB_View_1_1>()->IsPageVisible( | 78 return PP_ToBool(get_interface<PPB_View_1_1>()->IsPageVisible( |
| 64 pp_resource())); | 79 pp_resource())); |
| 65 } else if (has_interface<PPB_View_1_0>()) { | 80 } else if (has_interface<PPB_View_1_0>()) { |
| 66 return PP_ToBool(get_interface<PPB_View_1_0>()->IsPageVisible( | 81 return PP_ToBool(get_interface<PPB_View_1_0>()->IsPageVisible( |
| 67 pp_resource())); | 82 pp_resource())); |
| 68 } | 83 } |
| 69 return true; | 84 return true; |
| 70 } | 85 } |
| 71 | 86 |
| 72 Rect View::GetClipRect() const { | 87 Rect View::GetClipRect() const { |
| 73 PP_Rect out; | 88 PP_Rect out; |
| 74 if (has_interface<PPB_View_1_1>()) { | 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>()) { |
| 75 if (PP_ToBool(get_interface<PPB_View_1_1>()->GetClipRect(pp_resource(), | 94 if (PP_ToBool(get_interface<PPB_View_1_1>()->GetClipRect(pp_resource(), |
| 76 &out))) | 95 &out))) |
| 77 return Rect(out); | 96 return Rect(out); |
| 78 } else if (has_interface<PPB_View_1_0>()) { | 97 } else if (has_interface<PPB_View_1_0>()) { |
| 79 if (PP_ToBool(get_interface<PPB_View_1_0>()->GetClipRect(pp_resource(), | 98 if (PP_ToBool(get_interface<PPB_View_1_0>()->GetClipRect(pp_resource(), |
| 80 &out))) | 99 &out))) |
| 81 return Rect(out); | 100 return Rect(out); |
| 82 } | 101 } |
| 83 return Rect(); | 102 return Rect(); |
| 84 } | 103 } |
| 85 | 104 |
| 86 float View::GetDeviceScale() const { | 105 float View::GetDeviceScale() const { |
| 87 if (has_interface<PPB_View_1_1>()) | 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>()) |
| 88 return get_interface<PPB_View_1_1>()->GetDeviceScale(pp_resource()); | 109 return get_interface<PPB_View_1_1>()->GetDeviceScale(pp_resource()); |
| 89 return 1.0f; | 110 return 1.0f; |
| 90 } | 111 } |
| 91 | 112 |
| 92 float View::GetCSSScale() const { | 113 float View::GetCSSScale() const { |
| 93 if (has_interface<PPB_View_1_1>()) | 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>()) |
| 94 return get_interface<PPB_View_1_1>()->GetCSSScale(pp_resource()); | 117 return get_interface<PPB_View_1_1>()->GetCSSScale(pp_resource()); |
| 95 return 1.0f; | 118 return 1.0f; |
| 96 } | 119 } |
| 97 | 120 |
| 121 Point View::GetScrollOffset() const { |
| 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 |
| 98 } // namespace pp | 132 } // namespace pp |
| OLD | NEW |