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 |