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 #include "cc/scrollbar_layer_impl.h" | 5 #include "cc/scrollbar_layer_impl.h" |
6 | 6 |
7 #include "cc/layer_tree_impl.h" | 7 #include "cc/layer_tree_impl.h" |
8 #include "cc/layer_tree_settings.h" | |
8 #include "cc/quad_sink.h" | 9 #include "cc/quad_sink.h" |
9 #include "cc/scrollbar_animation_controller.h" | 10 #include "cc/scrollbar_animation_controller.h" |
11 #include "cc/solid_color_draw_quad.h" | |
10 #include "cc/texture_draw_quad.h" | 12 #include "cc/texture_draw_quad.h" |
11 #include "ui/gfx/rect_conversions.h" | 13 #include "ui/gfx/rect_conversions.h" |
12 | 14 |
13 using WebKit::WebRect; | 15 using WebKit::WebRect; |
14 using WebKit::WebScrollbar; | 16 using WebKit::WebScrollbar; |
15 | 17 |
16 namespace cc { | 18 namespace cc { |
17 | 19 |
18 scoped_ptr<ScrollbarLayerImpl> ScrollbarLayerImpl::create(LayerTreeImpl* treeImp l, int id, scoped_ptr<ScrollbarGeometryFixedThumb> geometry) | 20 scoped_ptr<ScrollbarLayerImpl> ScrollbarLayerImpl::create(LayerTreeImpl* treeImp l, int id, scoped_ptr<ScrollbarGeometryFixedThumb> geometry) |
19 { | 21 { |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 gfx::Rect contentBoundsRect(gfx::Point(), contentBounds()); | 146 gfx::Rect contentBoundsRect(gfx::Point(), contentBounds()); |
145 | 147 |
146 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState()); | 148 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState()); |
147 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); | 149 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); |
148 | 150 |
149 WebRect thumbRect, backTrackRect, foreTrackRect; | 151 WebRect thumbRect, backTrackRect, foreTrackRect; |
150 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba ckTrackRect, thumbRect, foreTrackRect); | 152 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba ckTrackRect, thumbRect, foreTrackRect); |
151 if (!m_geometry->hasThumb(&m_scrollbar)) | 153 if (!m_geometry->hasThumb(&m_scrollbar)) |
152 thumbRect = WebRect(); | 154 thumbRect = WebRect(); |
153 | 155 |
156 if (layerTreeImpl()->settings().solidColorScrollbars) { | |
157 int thicknessOverride = layerTreeImpl()->settings().solidColorScrollbarT hicknessDIP; | |
158 if (thicknessOverride != -1) { | |
159 if (m_scrollbar.orientation() == WebScrollbar::Vertical) | |
160 thumbRect.width = thicknessOverride; | |
jamesr
2013/02/20 01:49:01
if the thickness is in DIPs, but the quads are in
aelias_OOO_until_Jul13
2013/02/20 05:26:51
The call scrollbarLayerRectToContentRect() below s
| |
161 else | |
162 thumbRect.height = thicknessOverride; | |
163 } | |
164 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); | |
165 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); | |
166 quad->SetNew(sharedQuadState, quadRect, layerTreeImpl()->settings().soli dColorScrollbarColor); | |
167 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | |
168 return; | |
169 } | |
170 | |
154 if (m_thumbResourceId && !thumbRect.isEmpty()) { | 171 if (m_thumbResourceId && !thumbRect.isEmpty()) { |
155 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); | 172 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); |
156 gfx::Rect opaqueRect; | 173 gfx::Rect opaqueRect; |
157 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; | 174 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |
158 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); | 175 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
159 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p remultipledAlpha, uvTopLeft, uvBottomRight, opacity, flipped); | 176 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p remultipledAlpha, uvTopLeft, uvBottomRight, opacity, flipped); |
160 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 177 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
161 } | 178 } |
162 | 179 |
163 if (!m_backTrackResourceId) | 180 if (!m_backTrackResourceId) |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
272 { | 289 { |
273 return m_owner->m_isCustomScrollbar; | 290 return m_owner->m_isCustomScrollbar; |
274 } | 291 } |
275 | 292 |
276 const char* ScrollbarLayerImpl::layerTypeAsString() const | 293 const char* ScrollbarLayerImpl::layerTypeAsString() const |
277 { | 294 { |
278 return "ScrollbarLayer"; | 295 return "ScrollbarLayer"; |
279 } | 296 } |
280 | 297 |
281 } // namespace cc | 298 } // namespace cc |
OLD | NEW |