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 CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ | 5 #ifndef CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ |
6 #define CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ | 6 #define CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ |
7 | 7 |
8 #include "cc/base/cc_export.h" | 8 #include "cc/base/cc_export.h" |
9 #include "cc/input/scrollbar.h" | 9 #include "cc/input/scrollbar.h" |
10 #include "cc/layers/layer_impl.h" | 10 #include "cc/layers/layer_impl.h" |
11 #include "cc/resources/ui_resource_client.h" | |
12 | 11 |
13 namespace cc { | 12 namespace cc { |
14 | 13 |
15 class LayerTreeImpl; | 14 class LayerTreeImpl; |
16 class ScrollView; | 15 class ScrollView; |
17 | 16 |
18 class CC_EXPORT ScrollbarLayerImpl : public LayerImpl { | 17 class CC_EXPORT ScrollbarLayerImpl : public LayerImpl { |
19 public: | 18 public: |
20 static scoped_ptr<ScrollbarLayerImpl> Create( | 19 static scoped_ptr<ScrollbarLayerImpl> Create( |
21 LayerTreeImpl* tree_impl, | 20 LayerTreeImpl* tree_impl, |
22 int id, | 21 int id, |
23 ScrollbarOrientation orientation); | 22 ScrollbarOrientation orientation); |
24 virtual ~ScrollbarLayerImpl(); | 23 virtual ~ScrollbarLayerImpl(); |
25 | 24 |
26 // LayerImpl implementation. | 25 // LayerImpl implementation. |
27 virtual ScrollbarLayerImpl* ToScrollbarLayer() OVERRIDE; | 26 virtual ScrollbarLayerImpl* ToScrollbarLayer() OVERRIDE; |
28 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) | 27 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) |
29 OVERRIDE; | 28 OVERRIDE; |
30 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; | 29 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; |
31 | 30 |
32 virtual bool WillDraw(DrawMode draw_mode, | 31 virtual bool WillDraw(DrawMode draw_mode, |
33 ResourceProvider* resource_provider) OVERRIDE; | 32 ResourceProvider* resource_provider) OVERRIDE; |
34 virtual void AppendQuads(QuadSink* quad_sink, | 33 virtual void AppendQuads(QuadSink* quad_sink, |
35 AppendQuadsData* append_quads_data) OVERRIDE; | 34 AppendQuadsData* append_quads_data) OVERRIDE; |
36 | 35 |
| 36 virtual void DidLoseOutputSurface() OVERRIDE; |
| 37 |
37 int scroll_layer_id() const { return scroll_layer_id_; } | 38 int scroll_layer_id() const { return scroll_layer_id_; } |
38 void set_scroll_layer_id(int id) { scroll_layer_id_ = id; } | 39 void set_scroll_layer_id(int id) { scroll_layer_id_ = id; } |
39 | 40 |
40 ScrollbarOrientation Orientation() const; | 41 ScrollbarOrientation Orientation() const; |
41 float CurrentPos() const; | 42 float CurrentPos() const; |
42 int Maximum() const; | 43 int Maximum() const; |
43 | 44 |
44 void set_thumb_thickness(int thumb_thickness) { | 45 void set_thumb_thickness(int thumb_thickness) { |
45 thumb_thickness_ = thumb_thickness; | 46 thumb_thickness_ = thumb_thickness; |
46 } | 47 } |
47 int thumb_thickness() const { return thumb_thickness_; } | 48 int thumb_thickness() const { return thumb_thickness_; } |
48 void set_thumb_length(int thumb_length) { | 49 void set_thumb_length(int thumb_length) { |
49 thumb_length_ = thumb_length; | 50 thumb_length_ = thumb_length; |
50 } | 51 } |
51 void set_track_start(int track_start) { | 52 void set_track_start(int track_start) { |
52 track_start_ = track_start; | 53 track_start_ = track_start; |
53 } | 54 } |
54 void set_track_length(int track_length) { | 55 void set_track_length(int track_length) { |
55 track_length_ = track_length; | 56 track_length_ = track_length; |
56 } | 57 } |
57 void set_vertical_adjust(float vertical_adjust) { | 58 void set_vertical_adjust(float vertical_adjust) { |
58 vertical_adjust_ = vertical_adjust; | 59 vertical_adjust_ = vertical_adjust; |
59 } | 60 } |
60 void set_track_ui_resource_id(UIResourceId uid) { | 61 void set_track_resource_id(ResourceProvider::ResourceId id) { |
61 track_ui_resource_id_ = uid; | 62 track_resource_id_ = id; |
62 } | 63 } |
63 void set_thumb_ui_resource_id(UIResourceId uid) { | 64 void set_thumb_resource_id(ResourceProvider::ResourceId id) { |
64 thumb_ui_resource_id_ = uid; | 65 thumb_resource_id_ = id; |
65 } | 66 } |
66 void set_visible_to_total_length_ratio(float ratio) { | 67 void set_visible_to_total_length_ratio(float ratio) { |
67 visible_to_total_length_ratio_ = ratio; | 68 visible_to_total_length_ratio_ = ratio; |
68 } | 69 } |
69 void set_is_overlay_scrollbar(bool is_overlay_scrollbar) { | 70 void set_is_overlay_scrollbar(bool is_overlay_scrollbar) { |
70 is_overlay_scrollbar_ = is_overlay_scrollbar; | 71 is_overlay_scrollbar_ = is_overlay_scrollbar; |
71 } | 72 } |
72 bool is_overlay_scrollbar() const { return is_overlay_scrollbar_; } | 73 bool is_overlay_scrollbar() const { return is_overlay_scrollbar_; } |
73 | 74 |
74 void SetCurrentPos(float current_pos) { current_pos_ = current_pos; } | 75 void SetCurrentPos(float current_pos) { current_pos_ = current_pos; } |
75 void SetMaximum(int maximum) { maximum_ = maximum; } | 76 void SetMaximum(int maximum) { maximum_ = maximum; } |
76 | 77 |
77 gfx::Rect ComputeThumbQuadRect() const; | 78 gfx::Rect ComputeThumbQuadRect() const; |
78 | 79 |
79 protected: | 80 protected: |
80 ScrollbarLayerImpl(LayerTreeImpl* tree_impl, | 81 ScrollbarLayerImpl(LayerTreeImpl* tree_impl, |
81 int id, | 82 int id, |
82 ScrollbarOrientation orientation); | 83 ScrollbarOrientation orientation); |
83 | 84 |
84 private: | 85 private: |
85 virtual const char* LayerTypeAsString() const OVERRIDE; | 86 virtual const char* LayerTypeAsString() const OVERRIDE; |
86 | 87 |
87 gfx::Rect ScrollbarLayerRectToContentRect(gfx::RectF layer_rect) const; | 88 gfx::Rect ScrollbarLayerRectToContentRect(gfx::RectF layer_rect) const; |
88 | 89 |
89 UIResourceId track_ui_resource_id_; | 90 ResourceProvider::ResourceId track_resource_id_; |
90 UIResourceId thumb_ui_resource_id_; | 91 ResourceProvider::ResourceId thumb_resource_id_; |
91 | 92 |
92 float current_pos_; | 93 float current_pos_; |
93 int maximum_; | 94 int maximum_; |
94 int thumb_thickness_; | 95 int thumb_thickness_; |
95 int thumb_length_; | 96 int thumb_length_; |
96 int track_start_; | 97 int track_start_; |
97 int track_length_; | 98 int track_length_; |
98 ScrollbarOrientation orientation_; | 99 ScrollbarOrientation orientation_; |
99 | 100 |
100 // Difference between the clip layer's height and the visible viewport | 101 // Difference between the clip layer's height and the visible viewport |
101 // height (which may differ in the presence of top-controls hiding). | 102 // height (which may differ in the presence of top-controls hiding). |
102 float vertical_adjust_; | 103 float vertical_adjust_; |
103 | 104 |
104 float visible_to_total_length_ratio_; | 105 float visible_to_total_length_ratio_; |
105 | 106 |
106 int scroll_layer_id_; | 107 int scroll_layer_id_; |
107 | 108 |
108 bool is_overlay_scrollbar_; | 109 bool is_overlay_scrollbar_; |
109 | 110 |
110 DISALLOW_COPY_AND_ASSIGN(ScrollbarLayerImpl); | 111 DISALLOW_COPY_AND_ASSIGN(ScrollbarLayerImpl); |
111 }; | 112 }; |
112 | 113 |
113 } // namespace cc | 114 } // namespace cc |
114 #endif // CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ | 115 #endif // CC_LAYERS_SCROLLBAR_LAYER_IMPL_H_ |
OLD | NEW |