Chromium Code Reviews| Index: cc/input/inner_viewport_scrollbar.cc |
| diff --git a/cc/input/inner_viewport_scrollbar.cc b/cc/input/inner_viewport_scrollbar.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1178d09825729dd35b145f0b36ee485d2061325f |
| --- /dev/null |
| +++ b/cc/input/inner_viewport_scrollbar.cc |
| @@ -0,0 +1,70 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "cc/input/inner_viewport_scrollbar.h" |
| + |
| +#include "cc/layers/layer.h" |
| +#include "third_party/skia/include/core/SkCanvas.h" |
| + |
| +namespace cc { |
| + |
| +InnerViewportScrollbar::InnerViewportScrollbar( |
| + scoped_refptr<Layer> scroll_layer, |
| + scoped_refptr<Layer> clip_layer, |
| + ScrollbarOrientation orientation, |
| + size_t thickness) |
| + : scroll_layer_(scroll_layer), |
| + clip_layer_(clip_layer), |
| + orientation_(orientation), |
| + thickness_(thickness) {} |
| + |
| +InnerViewportScrollbar::~InnerViewportScrollbar() {} |
| + |
| +ScrollbarOrientation InnerViewportScrollbar::Orientation() const { |
| + return orientation_; |
| +} |
| + |
| +gfx::Point InnerViewportScrollbar::Location() const { |
| + return gfx::Point(); |
| +} |
| + |
| +bool InnerViewportScrollbar::IsOverlay() const { |
| + return true; |
| +} |
| + |
| +bool InnerViewportScrollbar::HasThumb() const { |
| + return true; |
| +} |
| + |
| +int InnerViewportScrollbar::ThumbThickness() const { |
| + return thickness_; |
| +} |
| + |
| +int InnerViewportScrollbar::ThumbLength() const { |
| + gfx::Rect track_rect = TrackRect(); |
|
jamesr
2013/07/03 21:12:14
this is dead code
|
| + if (orientation_ == HORIZONTAL) { |
| + float ratio = static_cast<float>(track_rect.width()) / |
| + clip_layer_->bounds().width(); |
| + return track_rect.width() - ratio * scroll_layer_->max_scroll_offset().x(); |
|
enne (OOO)
2013/06/19 23:38:28
(1) I think this math is not quite right. Can you
trchen
2013/06/20 01:16:08
Your relative layer space approach should work wit
wjmaclean
2013/06/21 18:20:53
We still need something that will work without a b
wjmaclean
2013/06/21 18:20:53
Yes, I'll add a unit test.
trchen
2013/06/24 21:38:04
I think we can do without dummy values. Most of th
|
| + } else { |
| + float ratio = static_cast<float>(track_rect.height()) / |
| + clip_layer_->bounds().height(); |
| + return track_rect.height() - ratio * scroll_layer_->max_scroll_offset().y(); |
| + } |
| +} |
| + |
| +gfx::Rect InnerViewportScrollbar::TrackRect() const { |
| + if (orientation_ == HORIZONTAL) |
|
enne (OOO)
2013/06/19 23:38:28
style nit: {}
wjmaclean
2013/06/21 18:20:53
Done.
jamesr
2013/07/03 21:12:14
I'm pretty sure this is completely dead code.
|
| + return gfx::Rect( |
| + 0, 0, clip_layer_->bounds().width() - thickness_, thickness_); |
| + else |
| + return gfx::Rect( |
| + 0, 0, thickness_, clip_layer_->bounds().height() - thickness_); |
| +} |
| + |
| +void InnerViewportScrollbar::PaintPart(SkCanvas* canvas, |
| + ScrollbarPart part, |
| + gfx::Rect content_rect) {} |
| + |
| +} // namespace cc |