Index: ui/views/controls/md_slider.cc |
diff --git a/ui/views/controls/md_slider.cc b/ui/views/controls/md_slider.cc |
deleted file mode 100644 |
index 64bed2fac3d083e1bff9778592433134fa340550..0000000000000000000000000000000000000000 |
--- a/ui/views/controls/md_slider.cc |
+++ /dev/null |
@@ -1,149 +0,0 @@ |
-// Copyright 2016 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 "ui/views/controls/md_slider.h" |
- |
-#include "cc/paint/paint_flags.h" |
-#include "third_party/skia/include/core/SkColor.h" |
-#include "third_party/skia/include/core/SkPaint.h" |
-#include "ui/gfx/animation/slide_animation.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/geometry/point.h" |
-#include "ui/gfx/geometry/rect.h" |
-#include "ui/views/controls/slider.h" |
- |
-namespace views { |
- |
-// Color of slider at the active and the disabled state, respectively. |
-const SkColor kActiveColor = SkColorSetARGB(0xFF, 0x42, 0x85, 0xF4); |
-const SkColor kDisabledColor = SkColorSetARGB(0xFF, 0xBD, 0xBD, 0xBD); |
-const uint8_t kHighlightColorAlpha = 0x4D; |
- |
-// The thickness of the slider. |
-const int kLineThickness = 2; |
- |
-// The radius used to draw rounded slider ends. |
-const float kSliderRoundedRadius = 2.f; |
- |
-// The radius of the thumb and the highlighted thumb of the slider, |
-// respectively. |
-const float kThumbRadius = 6.f; |
-const float kThumbHighlightRadius = 10.f; |
- |
-// The stroke of the thumb when the slider is disabled. |
-const int kThumbStroke = 2; |
- |
-// Duration of the thumb highlight growing effect animation. |
-const int kSlideHighlightChangeDurationMs = 150; |
- |
-MdSlider::MdSlider(SliderListener* listener) |
- : Slider(listener), is_active_(true), thumb_highlight_radius_(0.f) { |
- SchedulePaint(); |
-} |
- |
-MdSlider::~MdSlider() {} |
- |
-void MdSlider::OnPaint(gfx::Canvas* canvas) { |
- Slider::OnPaint(canvas); |
- |
- // Paint the slider. |
- const gfx::Rect content = GetContentsBounds(); |
- const int width = content.width() - kThumbRadius * 2; |
- const int full = GetAnimatingValue() * width; |
- const int empty = width - full; |
- const int y = content.height() / 2 - kLineThickness / 2; |
- const int x = content.x() + full + kThumbRadius; |
- const SkColor current_thumb_color = |
- is_active_ ? kActiveColor : kDisabledColor; |
- |
- // Extra space used to hide slider ends behind the thumb. |
- const int extra_padding = 1; |
- |
- cc::PaintFlags slider_flags; |
- slider_flags.setAntiAlias(true); |
- slider_flags.setColor(current_thumb_color); |
- canvas->DrawRoundRect( |
- gfx::Rect(content.x(), y, full + extra_padding, kLineThickness), |
- kSliderRoundedRadius, slider_flags); |
- slider_flags.setColor(kDisabledColor); |
- canvas->DrawRoundRect(gfx::Rect(x + kThumbRadius - extra_padding, y, |
- empty + extra_padding, kLineThickness), |
- kSliderRoundedRadius, slider_flags); |
- |
- gfx::Point thumb_center(x, content.height() / 2); |
- |
- // Paint the thumb highlight if it exists. |
- const int thumb_highlight_radius = |
- HasFocus() ? kThumbHighlightRadius : thumb_highlight_radius_; |
- if (is_active_ && thumb_highlight_radius > kThumbRadius) { |
- cc::PaintFlags highlight; |
- SkColor kHighlightColor = SkColorSetA(kActiveColor, kHighlightColorAlpha); |
- highlight.setColor(kHighlightColor); |
- highlight.setFlags(cc::PaintFlags::kAntiAlias_Flag); |
- canvas->DrawCircle(thumb_center, thumb_highlight_radius, highlight); |
- } |
- |
- // Paint the thumb of the slider. |
- cc::PaintFlags flags; |
- flags.setColor(current_thumb_color); |
- flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); |
- |
- if (!is_active_) { |
- flags.setStrokeWidth(kThumbStroke); |
- flags.setStyle(cc::PaintFlags::kStroke_Style); |
- } |
- canvas->DrawCircle( |
- thumb_center, |
- is_active_ ? kThumbRadius : (kThumbRadius - kThumbStroke / 2), flags); |
-} |
- |
-const char* MdSlider::GetClassName() const { |
- return "MdSlider"; |
-} |
- |
-void MdSlider::UpdateState(bool control_on) { |
- is_active_ = control_on; |
- SchedulePaint(); |
-} |
- |
-int MdSlider::GetThumbWidth() { |
- return kThumbRadius * 2; |
-} |
- |
-void MdSlider::SetHighlighted(bool is_highlighted) { |
- if (!highlight_animation_) { |
- if (!is_highlighted) |
- return; |
- |
- highlight_animation_.reset(new gfx::SlideAnimation(this)); |
- highlight_animation_->SetSlideDuration(kSlideHighlightChangeDurationMs); |
- } |
- if (is_highlighted) |
- highlight_animation_->Show(); |
- else |
- highlight_animation_->Hide(); |
-} |
- |
-void MdSlider::AnimationProgressed(const gfx::Animation* animation) { |
- if (animation != highlight_animation_.get()) { |
- Slider::AnimationProgressed(animation); |
- return; |
- } |
- thumb_highlight_radius_ = |
- animation->CurrentValueBetween(kThumbRadius, kThumbHighlightRadius); |
- SchedulePaint(); |
-} |
- |
-void MdSlider::AnimationEnded(const gfx::Animation* animation) { |
- if (animation != highlight_animation_.get()) { |
- Slider::AnimationEnded(animation); |
- return; |
- } |
- if (animation == highlight_animation_.get() && |
- !highlight_animation_->IsShowing()) { |
- highlight_animation_.reset(); |
- } |
-} |
- |
-} // namespace views |