Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: webkit/glue/plugins/pepper_widget.cc

Issue 5828003: Move the Pepper implementation from webkit/glue/plugins/pepper_* to... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/glue/plugins/pepper_widget.h ('k') | webkit/glue/plugins/plugin_list.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "webkit/glue/plugins/pepper_widget.h"
6
7 #include "base/logging.h"
8 #include "ppapi/c/dev/ppb_widget_dev.h"
9 #include "ppapi/c/dev/ppp_widget_dev.h"
10 #include "ppapi/c/pp_completion_callback.h"
11 #include "ppapi/c/pp_errors.h"
12 #include "webkit/glue/plugins/pepper_common.h"
13 #include "webkit/glue/plugins/pepper_image_data.h"
14 #include "webkit/glue/plugins/pepper_plugin_instance.h"
15 #include "webkit/glue/plugins/pepper_plugin_module.h"
16
17 namespace pepper {
18
19 namespace {
20
21 PP_Bool IsWidget(PP_Resource resource) {
22 return BoolToPPBool(!!Resource::GetAs<Widget>(resource));
23 }
24
25 PP_Bool Paint(PP_Resource resource, const PP_Rect* rect, PP_Resource image_id) {
26 scoped_refptr<Widget> widget(Resource::GetAs<Widget>(resource));
27 if (!widget)
28 return PP_FALSE;
29
30 scoped_refptr<ImageData> image(Resource::GetAs<ImageData>(image_id));
31 if (!image)
32 return PP_FALSE;
33
34 return BoolToPPBool(widget->Paint(rect, image));
35 }
36
37 PP_Bool HandleEvent(PP_Resource resource, const PP_InputEvent* event) {
38 scoped_refptr<Widget> widget(Resource::GetAs<Widget>(resource));
39 return BoolToPPBool(widget && widget->HandleEvent(event));
40 }
41
42 PP_Bool GetLocation(PP_Resource resource, PP_Rect* location) {
43 scoped_refptr<Widget> widget(Resource::GetAs<Widget>(resource));
44 return BoolToPPBool(widget && widget->GetLocation(location));
45 }
46
47 void SetLocation(PP_Resource resource, const PP_Rect* location) {
48 scoped_refptr<Widget> widget(Resource::GetAs<Widget>(resource));
49 if (widget)
50 widget->SetLocation(location);
51 }
52
53 const PPB_Widget_Dev ppb_widget = {
54 &IsWidget,
55 &Paint,
56 &HandleEvent,
57 &GetLocation,
58 &SetLocation,
59 };
60
61 } // namespace
62
63 Widget::Widget(PluginInstance* instance)
64 : Resource(instance->module()),
65 instance_(instance) {
66 }
67
68 Widget::~Widget() {
69 }
70
71 // static
72 const PPB_Widget_Dev* Widget::GetInterface() {
73 return &ppb_widget;
74 }
75
76 Widget* Widget::AsWidget() {
77 return this;
78 }
79
80 bool Widget::GetLocation(PP_Rect* location) {
81 *location = location_;
82 return true;
83 }
84
85 void Widget::SetLocation(const PP_Rect* location) {
86 location_ = *location;
87 SetLocationInternal(location);
88 }
89
90 void Widget::Invalidate(const PP_Rect* dirty) {
91 const PPP_Widget_Dev* widget = static_cast<const PPP_Widget_Dev*>(
92 module()->GetPluginInterface(PPP_WIDGET_DEV_INTERFACE));
93 if (!widget)
94 return;
95 ScopedResourceId resource(this);
96 widget->Invalidate(instance_->pp_instance(), resource.id, dirty);
97 }
98
99 } // namespace pepper
OLDNEW
« no previous file with comments | « webkit/glue/plugins/pepper_widget.h ('k') | webkit/glue/plugins/plugin_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698