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

Side by Side Diff: webkit/plugins/ppapi/ppb_scrollbar_impl.h

Issue 7538006: Pepper and WebKit API change to support a plugin knowing if a scrollbar is an overlay one. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Get rid of ScrollbarGroup's methods and the ResizeClient interface Created 9 years, 4 months 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_ 5 #ifndef WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_
6 #define WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_ 6 #define WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "ppapi/thunk/ppb_scrollbar_api.h" 10 #include "ppapi/thunk/ppb_scrollbar_api.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScrollbarClient.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScrollbarClient.h"
13 #include "ui/gfx/rect.h" 13 #include "ui/gfx/rect.h"
14 #include "webkit/plugins/ppapi/ppb_widget_impl.h" 14 #include "webkit/plugins/ppapi/ppb_widget_impl.h"
15 15
16 namespace webkit { 16 namespace webkit {
17 namespace ppapi { 17 namespace ppapi {
18 18
19 class PPB_ScrollbarGroup_Impl;
19 class PluginInstance; 20 class PluginInstance;
20 21
21 class PPB_Scrollbar_Impl : public PPB_Widget_Impl, 22 class PPB_Scrollbar_Impl : public PPB_Widget_Impl,
22 public ::ppapi::thunk::PPB_Scrollbar_API, 23 public ::ppapi::thunk::PPB_Scrollbar_API,
23 public WebKit::WebScrollbarClient { 24 public WebKit::WebScrollbarClient {
24 public: 25 public:
25 PPB_Scrollbar_Impl(PluginInstance* instance, bool vertical); 26 static PP_Resource Create(PluginInstance* instance,
27 PP_Resource scrollbar_group,
28 bool vertical);
29
26 virtual ~PPB_Scrollbar_Impl(); 30 virtual ~PPB_Scrollbar_Impl();
27 31
28 // ResourceObjectBase override. 32 // ResourceObjectBase override.
29 virtual PPB_Scrollbar_API* AsPPB_Scrollbar_API() OVERRIDE; 33 virtual PPB_Scrollbar_API* AsPPB_Scrollbar_API() OVERRIDE;
30 34
31 // Returns a pointer to the interface implementing PPB_Scrollbar_0_3 that is
32 // exposed to the plugin. New code should use the thunk system for the new
33 // version of this API.
34 static const PPB_Scrollbar_0_3_Dev* Get0_3Interface();
35
36 // PPB_Scrollbar_API implementation. 35 // PPB_Scrollbar_API implementation.
37 virtual uint32_t GetThickness() OVERRIDE; 36 virtual uint32_t GetThickness() OVERRIDE;
37 virtual bool IsOverlay() OVERRIDE;
38 virtual uint32_t GetValue() OVERRIDE; 38 virtual uint32_t GetValue() OVERRIDE;
39 virtual void SetValue(uint32_t value) OVERRIDE; 39 virtual void SetValue(uint32_t value) OVERRIDE;
40 virtual void SetDocumentSize(uint32_t size) OVERRIDE; 40 virtual void SetDocumentSize(uint32_t size) OVERRIDE;
41 virtual void SetTickMarks(const PP_Rect* tick_marks, uint32_t count) OVERRIDE; 41 virtual void SetTickMarks(const PP_Rect* tick_marks, uint32_t count) OVERRIDE;
42 virtual void ScrollBy(PP_ScrollBy_Dev unit, int32_t multiplier) OVERRIDE; 42 virtual void ScrollBy(PP_ScrollBy_Dev unit, int32_t multiplier) OVERRIDE;
43 43
44 private: 44 private:
45 PPB_Scrollbar_Impl(PluginInstance* instance,
46 PPB_ScrollbarGroup_Impl* group);
47 void Init(bool vertical);
48
45 // PPB_Widget private implementation. 49 // PPB_Widget private implementation.
46 virtual PP_Bool PaintInternal(const gfx::Rect& rect, 50 virtual PP_Bool PaintInternal(const gfx::Rect& rect,
47 PPB_ImageData_Impl* image) OVERRIDE; 51 PPB_ImageData_Impl* image) OVERRIDE;
48 virtual PP_Bool HandleEventInternal( 52 virtual PP_Bool HandleEventInternal(
49 const ::ppapi::InputEventData& data) OVERRIDE; 53 const ::ppapi::InputEventData& data) OVERRIDE;
50 virtual void SetLocationInternal(const PP_Rect* location) OVERRIDE; 54 virtual void SetLocationInternal(const PP_Rect* location) OVERRIDE;
51 55
52 // WebKit::WebScrollbarClient implementation. 56 // WebKit::WebScrollbarClient implementation.
53 virtual void valueChanged(WebKit::WebScrollbar* scrollbar) OVERRIDE; 57 virtual void valueChanged(WebKit::WebScrollbar* scrollbar) OVERRIDE;
58 // TODO(jam): add OVERRIDE once WebKit is rolled
59 virtual void overlayChanged(WebKit::WebScrollbar* scrollbar);
54 virtual void invalidateScrollbarRect(WebKit::WebScrollbar* scrollbar, 60 virtual void invalidateScrollbarRect(WebKit::WebScrollbar* scrollbar,
55 const WebKit::WebRect& rect) OVERRIDE; 61 const WebKit::WebRect& rect) OVERRIDE;
56 virtual void getTickmarks( 62 virtual void getTickmarks(
57 WebKit::WebScrollbar* scrollbar, 63 WebKit::WebScrollbar* scrollbar,
58 WebKit::WebVector<WebKit::WebRect>* tick_marks) const OVERRIDE; 64 WebKit::WebVector<WebKit::WebRect>* tick_marks) const OVERRIDE;
59 65
60 void NotifyInvalidate(); 66 void NotifyInvalidate();
61 67
62 gfx::Rect dirty_; 68 gfx::Rect dirty_;
63 std::vector<WebKit::WebRect> tickmarks_; 69 std::vector<WebKit::WebRect> tickmarks_;
64 scoped_ptr<WebKit::WebScrollbar> scrollbar_; 70 scoped_refptr<PPB_ScrollbarGroup_Impl> scrollbar_group_;
71 scoped_ptr<WebKit::WebScrollbar> scrollbar_;
65 72
66 DISALLOW_COPY_AND_ASSIGN(PPB_Scrollbar_Impl); 73 DISALLOW_COPY_AND_ASSIGN(PPB_Scrollbar_Impl);
67 }; 74 };
68 75
69 } // namespace ppapi 76 } // namespace ppapi
70 } // namespace webkit 77 } // namespace webkit
71 78
72 #endif // WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_ 79 #endif // WEBKIT_PLUGINS_PPAPI_PPB_SCROLLBAR_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698