| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/dev/widget_client_dev.h" | 5 #include "ppapi/cpp/dev/widget_client_dev.h" |
| 6 | 6 |
| 7 #include "ppapi/c/dev/ppp_scrollbar_dev.h" | 7 #include "ppapi/c/dev/ppp_scrollbar_dev.h" |
| 8 #include "ppapi/c/dev/ppp_widget_dev.h" | 8 #include "ppapi/c/dev/ppp_widget_dev.h" |
| 9 #include "ppapi/cpp/dev/scrollbar_dev.h" | 9 #include "ppapi/cpp/dev/scrollbar_dev.h" |
| 10 #include "ppapi/cpp/dev/widget_dev.h" | 10 #include "ppapi/cpp/dev/widget_dev.h" |
| 11 #include "ppapi/cpp/instance.h" | 11 #include "ppapi/cpp/instance.h" |
| 12 #include "ppapi/cpp/instance_handle.h" |
| 12 #include "ppapi/cpp/module.h" | 13 #include "ppapi/cpp/module.h" |
| 13 #include "ppapi/cpp/module_impl.h" | 14 #include "ppapi/cpp/module_impl.h" |
| 14 #include "ppapi/cpp/rect.h" | 15 #include "ppapi/cpp/rect.h" |
| 15 | 16 |
| 16 namespace pp { | 17 namespace pp { |
| 17 | 18 |
| 18 namespace { | 19 namespace { |
| 19 | 20 |
| 20 // PPP_Widget_Dev -------------------------------------------------------------- | 21 // PPP_Widget_Dev -------------------------------------------------------------- |
| 21 | 22 |
| 22 const char kPPPWidgetInterface[] = PPP_WIDGET_DEV_INTERFACE; | 23 const char kPPPWidgetInterface[] = PPP_WIDGET_DEV_INTERFACE; |
| 23 | 24 |
| 24 void Widget_Invalidate(PP_Instance instance, | 25 void Widget_Invalidate(PP_Instance instance, |
| 25 PP_Resource widget_id, | 26 PP_Resource widget_id, |
| 26 const PP_Rect* dirty_rect) { | 27 const PP_Rect* dirty_rect) { |
| 27 void* object = | 28 void* object = Instance::GetPerInstanceObject(instance, kPPPWidgetInterface); |
| 28 pp::Instance::GetPerInstanceObject(instance, kPPPWidgetInterface); | |
| 29 if (!object) | 29 if (!object) |
| 30 return; | 30 return; |
| 31 return static_cast<WidgetClient_Dev*>(object)->InvalidateWidget( | 31 return static_cast<WidgetClient_Dev*>(object)->InvalidateWidget( |
| 32 Widget_Dev(widget_id), *dirty_rect); | 32 Widget_Dev(widget_id), *dirty_rect); |
| 33 } | 33 } |
| 34 | 34 |
| 35 static PPP_Widget_Dev widget_interface = { | 35 static PPP_Widget_Dev widget_interface = { |
| 36 &Widget_Invalidate, | 36 &Widget_Invalidate, |
| 37 }; | 37 }; |
| 38 | 38 |
| 39 // PPP_Scrollbar_Dev ----------------------------------------------------------- | 39 // PPP_Scrollbar_Dev ----------------------------------------------------------- |
| 40 | 40 |
| 41 const char kPPPScrollbarInterface[] = PPP_SCROLLBAR_DEV_INTERFACE; | 41 const char kPPPScrollbarInterface[] = PPP_SCROLLBAR_DEV_INTERFACE; |
| 42 | 42 |
| 43 void Scrollbar_ValueChanged(PP_Instance instance, | 43 void Scrollbar_ValueChanged(PP_Instance instance, |
| 44 PP_Resource scrollbar_id, | 44 PP_Resource scrollbar_id, |
| 45 uint32_t value) { | 45 uint32_t value) { |
| 46 void* object = | 46 void* object = |
| 47 pp::Instance::GetPerInstanceObject(instance, kPPPScrollbarInterface); | 47 Instance::GetPerInstanceObject(instance, kPPPScrollbarInterface); |
| 48 if (!object) | 48 if (!object) |
| 49 return; | 49 return; |
| 50 return static_cast<WidgetClient_Dev*>(object)->ScrollbarValueChanged( | 50 return static_cast<WidgetClient_Dev*>(object)->ScrollbarValueChanged( |
| 51 Scrollbar_Dev(scrollbar_id), value); | 51 Scrollbar_Dev(scrollbar_id), value); |
| 52 } | 52 } |
| 53 | 53 |
| 54 void Scrollbar_OverlayChanged(PP_Instance instance, | 54 void Scrollbar_OverlayChanged(PP_Instance instance, |
| 55 PP_Resource scrollbar_id, | 55 PP_Resource scrollbar_id, |
| 56 PP_Bool overlay) { | 56 PP_Bool overlay) { |
| 57 void* object = | 57 void* object = |
| 58 pp::Instance::GetPerInstanceObject(instance, kPPPScrollbarInterface); | 58 Instance::GetPerInstanceObject(instance, kPPPScrollbarInterface); |
| 59 if (!object) | 59 if (!object) |
| 60 return; | 60 return; |
| 61 return static_cast<WidgetClient_Dev*>(object)->ScrollbarOverlayChanged( | 61 return static_cast<WidgetClient_Dev*>(object)->ScrollbarOverlayChanged( |
| 62 Scrollbar_Dev(scrollbar_id), PP_ToBool(overlay)); | 62 Scrollbar_Dev(scrollbar_id), PP_ToBool(overlay)); |
| 63 } | 63 } |
| 64 | 64 |
| 65 static PPP_Scrollbar_Dev scrollbar_interface = { | 65 static PPP_Scrollbar_Dev scrollbar_interface = { |
| 66 &Scrollbar_ValueChanged, | 66 &Scrollbar_ValueChanged, |
| 67 &Scrollbar_OverlayChanged, | 67 &Scrollbar_OverlayChanged, |
| 68 }; | 68 }; |
| 69 | 69 |
| 70 } // namespace | 70 } // namespace |
| 71 | 71 |
| 72 WidgetClient_Dev::WidgetClient_Dev(Instance* instance) | 72 WidgetClient_Dev::WidgetClient_Dev(const InstanceHandle& instance) |
| 73 : associated_instance_(instance) { | 73 : associated_instance_(instance) { |
| 74 pp::Module::Get()->AddPluginInterface(kPPPWidgetInterface, &widget_interface); | 74 Module::Get()->AddPluginInterface(kPPPWidgetInterface, &widget_interface); |
| 75 associated_instance_->AddPerInstanceObject(kPPPWidgetInterface, this); | 75 Instance::AddPerInstanceObject(instance, kPPPWidgetInterface, this); |
| 76 pp::Module::Get()->AddPluginInterface(kPPPScrollbarInterface, | 76 Module::Get()->AddPluginInterface(kPPPScrollbarInterface, |
| 77 &scrollbar_interface); | 77 &scrollbar_interface); |
| 78 associated_instance_->AddPerInstanceObject(kPPPScrollbarInterface, this); | 78 Instance::AddPerInstanceObject(instance, kPPPScrollbarInterface, this); |
| 79 } | 79 } |
| 80 | 80 |
| 81 WidgetClient_Dev::~WidgetClient_Dev() { | 81 WidgetClient_Dev::~WidgetClient_Dev() { |
| 82 associated_instance_->RemovePerInstanceObject(kPPPScrollbarInterface, this); | 82 Instance::RemovePerInstanceObject(associated_instance_, |
| 83 associated_instance_->RemovePerInstanceObject(kPPPWidgetInterface, this); | 83 kPPPScrollbarInterface, this); |
| 84 Instance::RemovePerInstanceObject(associated_instance_, |
| 85 kPPPWidgetInterface, this); |
| 84 } | 86 } |
| 85 | 87 |
| 86 } // namespace pp | 88 } // namespace pp |
| OLD | NEW |