summaryrefslogtreecommitdiff
path: root/chromium/ppapi/cpp/dev/widget_dev.cc
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
committerZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
commit679147eead574d186ebf3069647b4c23e8ccace6 (patch)
treefc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/ppapi/cpp/dev/widget_dev.cc
downloadqtwebengine-chromium-679147eead574d186ebf3069647b4c23e8ccace6.tar.gz
Initial import.
Diffstat (limited to 'chromium/ppapi/cpp/dev/widget_dev.cc')
-rw-r--r--chromium/ppapi/cpp/dev/widget_dev.cc83
1 files changed, 83 insertions, 0 deletions
diff --git a/chromium/ppapi/cpp/dev/widget_dev.cc b/chromium/ppapi/cpp/dev/widget_dev.cc
new file mode 100644
index 00000000000..14efe1d6879
--- /dev/null
+++ b/chromium/ppapi/cpp/dev/widget_dev.cc
@@ -0,0 +1,83 @@
+// Copyright (c) 2010 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.
+
+#include "ppapi/cpp/dev/widget_dev.h"
+
+#include "ppapi/c/dev/ppb_widget_dev.h"
+#include "ppapi/cpp/image_data.h"
+#include "ppapi/cpp/input_event.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/module_impl.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_Widget_Dev_0_3>() {
+ return PPB_WIDGET_DEV_INTERFACE_0_3;
+}
+
+template <> const char* interface_name<PPB_Widget_Dev_0_4>() {
+ return PPB_WIDGET_DEV_INTERFACE_0_4;
+}
+
+} // namespace
+
+Widget_Dev::Widget_Dev(PP_Resource resource) : Resource(resource) {
+}
+
+Widget_Dev::Widget_Dev(const Widget_Dev& other) : Resource(other) {
+}
+
+bool Widget_Dev::Paint(const Rect& rect, ImageData* image) {
+ if (has_interface<PPB_Widget_Dev_0_4>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_4>()->Paint(
+ pp_resource(), &rect.pp_rect(), image->pp_resource()));
+ } else if (has_interface<PPB_Widget_Dev_0_3>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_3>()->Paint(
+ pp_resource(), &rect.pp_rect(), image->pp_resource()));
+ }
+ return false;
+}
+
+bool Widget_Dev::HandleEvent(const InputEvent& event) {
+ if (has_interface<PPB_Widget_Dev_0_4>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_4>()->HandleEvent(
+ pp_resource(), event.pp_resource()));
+ } else if (has_interface<PPB_Widget_Dev_0_3>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_3>()->HandleEvent(
+ pp_resource(), event.pp_resource()));
+ }
+ return false;
+}
+
+bool Widget_Dev::GetLocation(Rect* location) {
+ if (has_interface<PPB_Widget_Dev_0_4>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_4>()->GetLocation(
+ pp_resource(), &location->pp_rect()));
+ } else if (has_interface<PPB_Widget_Dev_0_3>()) {
+ return PP_ToBool(get_interface<PPB_Widget_Dev_0_3>()->GetLocation(
+ pp_resource(), &location->pp_rect()));
+ }
+ return false;
+}
+
+void Widget_Dev::SetLocation(const Rect& location) {
+ if (has_interface<PPB_Widget_Dev_0_4>()) {
+ get_interface<PPB_Widget_Dev_0_4>()->SetLocation(pp_resource(),
+ &location.pp_rect());
+ } else if (has_interface<PPB_Widget_Dev_0_3>()) {
+ get_interface<PPB_Widget_Dev_0_3>()->SetLocation(pp_resource(),
+ &location.pp_rect());
+ }
+}
+
+void Widget_Dev::SetScale(float scale) {
+ if (has_interface<PPB_Widget_Dev_0_4>())
+ get_interface<PPB_Widget_Dev_0_4>()->SetScale(pp_resource(), scale);
+}
+
+} // namespace pp