Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Unified Diff: ui/app_list/views/contents_animator.cc

Issue 889593003: Animate the app list search box shadow. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_animations
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/app_list/views/contents_animator.cc
diff --git a/ui/app_list/views/contents_animator.cc b/ui/app_list/views/contents_animator.cc
index bdffe9c48131ec4925775b9093b3ae8cda79f232..fce73da624c47a92951a0d5d1e37c68726b89f30 100644
--- a/ui/app_list/views/contents_animator.cc
+++ b/ui/app_list/views/contents_animator.cc
@@ -12,11 +12,23 @@
#include "ui/app_list/views/start_page_view.h"
#include "ui/gfx/animation/tween.h"
#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/shadow_value.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
namespace app_list {
+namespace {
+
+gfx::ShadowValue GetSearchBoxShadowForState(AppListModel::State state) {
+ if (state == AppListModel::STATE_SEARCH_RESULTS)
+ return SearchBoxView::GetShadowForZHeight(1);
Matt Giuca 2015/02/06 04:32:27 state == SSR ? 1 : 2
calamity 2015/02/06 05:17:51 Done.
+
+ return SearchBoxView::GetShadowForZHeight(2);
+}
+
+} // namespace
+
// ContentsAnimator
ContentsAnimator::ContentsAnimator(ContentsView* contents_view)
@@ -96,9 +108,27 @@ void ContentsAnimator::UpdateSearchBoxForDefaultAnimation(double progress,
gfx::Rect search_box_rect =
gfx::Tween::RectValueBetween(progress, search_box_from, search_box_to);
+ AppListModel::State from_state =
+ contents_view()->GetStateForPageIndex(from_page);
+ AppListModel::State to_state = contents_view()->GetStateForPageIndex(to_page);
+
+ gfx::ShadowValue original_shadow = GetSearchBoxShadowForState(from_state);
+ gfx::ShadowValue target_shadow = GetSearchBoxShadowForState(to_state);
+
SearchBoxView* search_box = contents_view()->GetSearchBoxView();
- search_box->GetWidget()->SetBounds(contents_view()->ConvertRectToWidget(
- search_box->GetViewBoundsForSearchBoxContentsBounds(search_box_rect)));
+ gfx::Point offset(gfx::Tween::LinearIntValueBetween(
+ progress, original_shadow.x(), target_shadow.x()),
+ gfx::Tween::LinearIntValueBetween(
+ progress, original_shadow.y(), target_shadow.y()));
+ search_box->SetShadow(gfx::ShadowValue(
+ offset, gfx::Tween::LinearIntValueBetween(
+ progress, original_shadow.blur(), target_shadow.blur()),
+ gfx::Tween::ColorValueBetween(progress, original_shadow.color(),
+ target_shadow.color())));
+
+ search_box->GetWidget()->SetBounds(
+ search_box->GetViewBoundsForSearchBoxContentsBounds(
+ contents_view()->ConvertRectToWidget(search_box_rect)));
}
void ContentsAnimator::ClipSearchResultsPageToOnscreenBounds(

Powered by Google App Engine
This is Rietveld 408576698