OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 CCScrollbarLayerImpl_h | 5 // Temporary forwarding header |
6 #define CCScrollbarLayerImpl_h | 6 #include "cc/scrollbar_layer_impl.h" |
7 | |
8 #if USE(ACCELERATED_COMPOSITING) | |
9 | |
10 #include "CCLayerImpl.h" | |
11 #include "CCScrollbarGeometryFixedThumb.h" | |
12 #include <public/WebRect.h> | |
13 #include <public/WebScrollbar.h> | |
14 #include <public/WebVector.h> | |
15 | |
16 namespace cc { | |
17 | |
18 class ScrollView; | |
19 | |
20 class CCScrollbarLayerImpl : public CCLayerImpl { | |
21 public: | |
22 static scoped_ptr<CCScrollbarLayerImpl> create(int id); | |
23 virtual ~CCScrollbarLayerImpl(); | |
24 | |
25 CCScrollbarGeometryFixedThumb* scrollbarGeometry() const { return m_geometry
.get(); } | |
26 void setScrollbarGeometry(PassOwnPtr<CCScrollbarGeometryFixedThumb>); | |
27 void setScrollbarData(WebKit::WebScrollbar*); | |
28 | |
29 void setBackTrackResourceId(CCResourceProvider::ResourceId id) { m_backTrack
ResourceId = id; } | |
30 void setForeTrackResourceId(CCResourceProvider::ResourceId id) { m_foreTrack
ResourceId = id; } | |
31 void setThumbResourceId(CCResourceProvider::ResourceId id) { m_thumbResource
Id = id; } | |
32 | |
33 float currentPos() const { return m_currentPos; } | |
34 void setCurrentPos(float currentPos) { m_currentPos = currentPos; } | |
35 | |
36 int totalSize() const { return m_totalSize; } | |
37 void setTotalSize(int totalSize) { m_totalSize = totalSize; } | |
38 | |
39 int maximum() const { return m_maximum; } | |
40 void setMaximum(int maximum) { m_maximum = maximum; } | |
41 | |
42 WebKit::WebScrollbar::Orientation orientation() const { return m_orientation
; } | |
43 | |
44 virtual void appendQuads(CCQuadSink&, CCAppendQuadsData&) OVERRIDE; | |
45 | |
46 virtual void didLoseContext() OVERRIDE; | |
47 | |
48 protected: | |
49 explicit CCScrollbarLayerImpl(int id); | |
50 | |
51 private: | |
52 // nested class only to avoid namespace problem | |
53 class CCScrollbar : public WebKit::WebScrollbar { | |
54 public: | |
55 explicit CCScrollbar(CCScrollbarLayerImpl* owner) : m_owner(owner) { } | |
56 | |
57 // WebScrollbar implementation | |
58 virtual bool isOverlay() const; | |
59 virtual int value() const; | |
60 virtual WebKit::WebPoint location() const; | |
61 virtual WebKit::WebSize size() const; | |
62 virtual bool enabled() const; | |
63 virtual int maximum() const; | |
64 virtual int totalSize() const; | |
65 virtual bool isScrollViewScrollbar() const; | |
66 virtual bool isScrollableAreaActive() const; | |
67 virtual void getTickmarks(WebKit::WebVector<WebKit::WebRect>& tickmarks)
const; | |
68 virtual WebScrollbar::ScrollbarControlSize controlSize() const; | |
69 virtual WebScrollbar::ScrollbarPart pressedPart() const; | |
70 virtual WebScrollbar::ScrollbarPart hoveredPart() const; | |
71 virtual WebScrollbar::ScrollbarOverlayStyle scrollbarOverlayStyle() cons
t; | |
72 virtual WebScrollbar::Orientation orientation() const; | |
73 virtual bool isCustomScrollbar() const; | |
74 | |
75 private: | |
76 CCScrollbarLayerImpl* m_owner; | |
77 | |
78 }; | |
79 | |
80 virtual const char* layerTypeAsString() const OVERRIDE; | |
81 | |
82 CCScrollbar m_scrollbar; | |
83 | |
84 CCResourceProvider::ResourceId m_backTrackResourceId; | |
85 CCResourceProvider::ResourceId m_foreTrackResourceId; | |
86 CCResourceProvider::ResourceId m_thumbResourceId; | |
87 | |
88 OwnPtr<CCScrollbarGeometryFixedThumb> m_geometry; | |
89 | |
90 // Data to implement CCScrollbar | |
91 WebKit::WebScrollbar::ScrollbarOverlayStyle m_scrollbarOverlayStyle; | |
92 WebKit::WebVector<WebKit::WebRect> m_tickmarks; | |
93 WebKit::WebScrollbar::Orientation m_orientation; | |
94 WebKit::WebScrollbar::ScrollbarControlSize m_controlSize; | |
95 WebKit::WebScrollbar::ScrollbarPart m_pressedPart; | |
96 WebKit::WebScrollbar::ScrollbarPart m_hoveredPart; | |
97 | |
98 float m_currentPos; | |
99 int m_totalSize; | |
100 int m_maximum; | |
101 | |
102 bool m_isScrollableAreaActive; | |
103 bool m_isScrollViewScrollbar; | |
104 bool m_enabled; | |
105 bool m_isCustomScrollbar; | |
106 bool m_isOverlayScrollbar; | |
107 }; | |
108 | |
109 } | |
110 #endif // USE(ACCELERATED_COMPOSITING) | |
111 | |
112 #endif | |
OLD | NEW |