summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-26 20:47:21 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-26 20:47:21 +0000
commit6c76c41189e78aadd38d2830d11a9b2711a50850 (patch)
tree3f18fd78ac5c23708be35dacb5bea11f4b129ea4
parentd93587c57a36a15683e0a431f8c015e6e6ceafcf (diff)
downloadchromium_src-6c76c41189e78aadd38d2830d11a9b2711a50850.zip
chromium_src-6c76c41189e78aadd38d2830d11a9b2711a50850.tar.gz
chromium_src-6c76c41189e78aadd38d2830d11a9b2711a50850.tar.bz2
Make MultiAnimation take time param and slow down tab highlight
BUG=157981 TEST=None Review URL: https://codereview.chromium.org/11274063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164399 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/launcher/tabbed_launcher_button.cc4
-rw-r--r--chrome/browser/ui/search/toolbar_search_animator.cc4
-rw-r--r--chrome/browser/ui/views/tabs/tab.cc6
-rw-r--r--ui/base/animation/multi_animation.cc12
-rw-r--r--ui/base/animation/multi_animation.h5
-rw-r--r--ui/base/animation/multi_animation_unittest.cc8
6 files changed, 28 insertions, 11 deletions
diff --git a/ash/launcher/tabbed_launcher_button.cc b/ash/launcher/tabbed_launcher_button.cc
index 9ab491f..7bd5682 100644
--- a/ash/launcher/tabbed_launcher_button.cc
+++ b/ash/launcher/tabbed_launcher_button.cc
@@ -68,7 +68,9 @@ void TabbedLauncherButton::IconView::SetTabImage(const gfx::ImageSkia& image) {
animation_parts.push_back(ui::MultiAnimation::Part(500, ui::Tween::ZERO));
animation_parts.push_back(
ui::MultiAnimation::Part(200, ui::Tween::EASE_OUT));
- animation_.reset(new ui::MultiAnimation(animation_parts));
+ animation_.reset(new ui::MultiAnimation(
+ animation_parts,
+ ui::MultiAnimation::GetDefaultTimerInterval()));
animation_->set_continuous(false);
animation_->set_delegate(this);
animation_->Start();
diff --git a/chrome/browser/ui/search/toolbar_search_animator.cc b/chrome/browser/ui/search/toolbar_search_animator.cc
index b33bb14..b534bed 100644
--- a/chrome/browser/ui/search/toolbar_search_animator.cc
+++ b/chrome/browser/ui/search/toolbar_search_animator.cc
@@ -136,7 +136,9 @@ void ToolbarSearchAnimator::InitBackgroundAnimation() {
parts.push_back(ui::MultiAnimation::Part(
background_change_duration_ms_ * InstantUI::GetSlowAnimationScaleFactor(),
ui::Tween::LINEAR));
- background_animation_.reset(new ui::MultiAnimation(parts));
+ background_animation_.reset(new ui::MultiAnimation(
+ parts,
+ ui::MultiAnimation::GetDefaultTimerInterval()));
background_animation_->set_continuous(false);
background_animation_->set_delegate(this);
}
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc
index 07a00ee..ed3ee77 100644
--- a/chrome/browser/ui/views/tabs/tab.cc
+++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -197,6 +197,7 @@ static const int kMiniTitleChangeAnimationDuration2MS = 0;
static const int kMiniTitleChangeAnimationDuration3MS = 550;
static const int kMiniTitleChangeAnimationStart3MS = 150;
static const int kMiniTitleChangeAnimationEnd3MS = 800;
+static const int kMiniTitleChangeAnimationIntervalMS = 40;
// Offset from the right edge for the start of the mini title change animation.
static const int kMiniTitleChangeInitialXOffset = 6;
@@ -261,7 +262,10 @@ void Tab::StartMiniTabTitleAnimation() {
parts[0].end_time_ms = kMiniTitleChangeAnimationEnd1MS;
parts[2].start_time_ms = kMiniTitleChangeAnimationStart3MS;
parts[2].end_time_ms = kMiniTitleChangeAnimationEnd3MS;
- mini_title_animation_.reset(new ui::MultiAnimation(parts));
+ mini_title_animation_.reset(new ui::MultiAnimation(
+ parts,
+ base::TimeDelta::FromMilliseconds(
+ kMiniTitleChangeAnimationIntervalMS)));
mini_title_animation_->SetContainer(animation_container());
mini_title_animation_->set_delegate(this);
}
diff --git a/ui/base/animation/multi_animation.cc b/ui/base/animation/multi_animation.cc
index 5a0c1e1..2e9e477 100644
--- a/ui/base/animation/multi_animation.cc
+++ b/ui/base/animation/multi_animation.cc
@@ -10,7 +10,7 @@
namespace ui {
// Default interval, in ms.
-static const int kDefaultInterval = 20;
+static const int kDefaultTimerInterval = 20;
static int TotalTime(const MultiAnimation::Parts& parts) {
int time_ms = 0;
@@ -21,8 +21,9 @@ static int TotalTime(const MultiAnimation::Parts& parts) {
return time_ms;
}
-MultiAnimation::MultiAnimation(const Parts& parts)
- : Animation(base::TimeDelta::FromMilliseconds(kDefaultInterval)),
+MultiAnimation::MultiAnimation(const Parts& parts,
+ base::TimeDelta timer_interval)
+ : Animation(timer_interval),
parts_(parts),
cycle_time_ms_(TotalTime(parts)),
current_value_(0),
@@ -33,6 +34,11 @@ MultiAnimation::MultiAnimation(const Parts& parts)
MultiAnimation::~MultiAnimation() {}
+// static.
+base::TimeDelta MultiAnimation::GetDefaultTimerInterval() {
+ return base::TimeDelta::FromMilliseconds(kDefaultTimerInterval);
+}
+
double MultiAnimation::GetCurrentValue() const {
return current_value_;
}
diff --git a/ui/base/animation/multi_animation.h b/ui/base/animation/multi_animation.h
index 37f04b0..cbe36c4 100644
--- a/ui/base/animation/multi_animation.h
+++ b/ui/base/animation/multi_animation.h
@@ -45,9 +45,12 @@ class UI_EXPORT MultiAnimation : public Animation {
typedef std::vector<Part> Parts;
- explicit MultiAnimation(const Parts& parts);
+ MultiAnimation(const Parts& parts, base::TimeDelta timer_interval);
virtual ~MultiAnimation();
+ // Default interval.
+ static base::TimeDelta GetDefaultTimerInterval();
+
// Sets whether the animation continues after it reaches the end. If true, the
// animation runs until explicitly stopped. The default is true.
void set_continuous(bool continuous) { continuous_ = continuous; }
diff --git a/ui/base/animation/multi_animation_unittest.cc b/ui/base/animation/multi_animation_unittest.cc
index 2c77ed7..0c21939 100644
--- a/ui/base/animation/multi_animation_unittest.cc
+++ b/ui/base/animation/multi_animation_unittest.cc
@@ -14,7 +14,7 @@ TEST(MultiAnimationTest, Basic) {
parts.push_back(MultiAnimation::Part(100, Tween::LINEAR));
parts.push_back(MultiAnimation::Part(100, Tween::EASE_OUT));
- MultiAnimation animation(parts);
+ MultiAnimation animation(parts, MultiAnimation::GetDefaultTimerInterval());
AnimationContainerElement* as_element =
static_cast<AnimationContainerElement*>(&animation);
as_element->SetStartTime(base::TimeTicks());
@@ -43,7 +43,7 @@ TEST(MultiAnimationTest, DifferingStartAndEnd) {
parts[0].start_time_ms = 100;
parts[0].end_time_ms = 400;
- MultiAnimation animation(parts);
+ MultiAnimation animation(parts, MultiAnimation::GetDefaultTimerInterval());
AnimationContainerElement* as_element =
static_cast<AnimationContainerElement*>(&animation);
as_element->SetStartTime(base::TimeTicks());
@@ -62,7 +62,7 @@ TEST(MultiAnimationTest, DifferingStartAndEnd) {
TEST(MultiAnimationTest, DontCycle) {
MultiAnimation::Parts parts;
parts.push_back(MultiAnimation::Part(200, Tween::LINEAR));
- MultiAnimation animation(parts);
+ MultiAnimation animation(parts, MultiAnimation::GetDefaultTimerInterval());
AnimationContainerElement* as_element =
static_cast<AnimationContainerElement*>(&animation);
as_element->SetStartTime(base::TimeTicks());
@@ -78,7 +78,7 @@ TEST(MultiAnimationTest, DontCycle) {
TEST(MultiAnimationTest, Cycle) {
MultiAnimation::Parts parts;
parts.push_back(MultiAnimation::Part(200, Tween::LINEAR));
- MultiAnimation animation(parts);
+ MultiAnimation animation(parts, MultiAnimation::GetDefaultTimerInterval());
AnimationContainerElement* as_element =
static_cast<AnimationContainerElement*>(&animation);
as_element->SetStartTime(base::TimeTicks());