Chromium Code Reviews| Index: athena/home/home_card_impl.cc |
| diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc |
| index 6fb544f1cf04e462030ca3ec2b1d954ab24f770d..f72187332057131ae39f7751fe5c6849809e40aa 100644 |
| --- a/athena/home/home_card_impl.cc |
| +++ b/athena/home/home_card_impl.cc |
| @@ -9,7 +9,7 @@ |
| #include "athena/common/container_priorities.h" |
| #include "athena/home/app_list_view_delegate.h" |
| -#include "athena/home/bottom_home_view.h" |
| +#include "athena/home/athena_start_page_view.h" |
| #include "athena/home/minimized_home.h" |
| #include "athena/home/public/app_model_builder.h" |
| #include "athena/input/public/accelerator_manager.h" |
| @@ -36,10 +36,11 @@ namespace athena { |
| namespace { |
| HomeCard* instance = NULL; |
| +const int kHomeCardMinimizedHeight = 8; |
| gfx::Rect GetBoundsForState(const gfx::Rect& screen_bounds, |
| HomeCard::State state) { |
| - const int kHomeCardHeight = 150; |
| + const int kHomeCardHeight = 100; |
| const int kHomeCardMinimizedHeight = 8; |
|
sadrul
2014/08/13 22:01:13
Did you mean to remove this?
The small text in th
Jun Mukai
2014/08/13 23:18:23
thanks, removed. Also changed the height to 6px. L
|
| switch (state) { |
| @@ -269,23 +270,49 @@ class HomeCardView : public views::WidgetDelegateView { |
| aura::Window* container, |
| HomeCardGestureManager::Delegate* gesture_delegate) |
| : gesture_delegate_(gesture_delegate) { |
| - bottom_view_ = new BottomHomeView(view_delegate); |
| + bottom_view_ = new AthenaStartPageView(view_delegate); |
| AddChildView(bottom_view_); |
| + bottom_view_->SetPaintToLayer(true); |
| main_view_ = new app_list::AppListMainView( |
| view_delegate, 0 /* initial_apps_page */, container); |
| AddChildView(main_view_); |
| main_view_->set_background( |
| views::Background::CreateSolidBackground(SK_ColorWHITE)); |
| + main_view_->SetPaintToLayer(true); |
| minimized_view_ = CreateMinimizedHome(); |
| + minimized_view_->SetPaintToLayer(true); |
|
sadrul
2014/08/13 22:01:13
I agree with the comment in the CL description: th
Jun Mukai
2014/08/13 23:18:23
Thanks. I think we should keep minimized_view_ as
|
| AddChildView(minimized_view_); |
| } |
| + void SetStateProgress(HomeCard::State from_state, |
| + HomeCard::State to_state, |
| + float progress) { |
| + if (from_state == HomeCard::VISIBLE_BOTTOM && |
| + to_state == HomeCard::VISIBLE_MINIMIZED) { |
| + SetStateProgress(to_state, from_state, 1.0 - progress); |
| + return; |
| + } |
| + |
| + // View from minimized to bottom. |
| + if (from_state == HomeCard::VISIBLE_MINIMIZED && |
| + to_state == HomeCard::VISIBLE_BOTTOM) { |
| + bottom_view_->SetVisible(true); |
| + minimized_view_->SetVisible(true); |
| + minimized_view_->layer()->SetOpacity(1.0f - progress); |
|
sadrul
2014/08/13 22:01:13
When transitioning MINIMIZED ==> BOTTOM, with prog
Jun Mukai
2014/08/13 23:18:23
The progress means how far from |from_state_|, so
|
| + return; |
| + } |
| + |
| + SetState(to_state); |
| + } |
| + |
| void SetState(HomeCard::State state) { |
| bottom_view_->SetVisible(state == HomeCard::VISIBLE_BOTTOM); |
| main_view_->SetVisible(state == HomeCard::VISIBLE_CENTERED); |
| minimized_view_->SetVisible(state == HomeCard::VISIBLE_MINIMIZED); |
| + if (minimized_view_->visible()) |
| + minimized_view_->layer()->SetOpacity(1.0f); |
| if (state == HomeCard::VISIBLE_CENTERED) { |
| app_list::ContentsView* contents_view = main_view_->contents_view(); |
| contents_view->SetActivePage(contents_view->GetPageIndexForNamedPage( |
| @@ -306,13 +333,16 @@ class HomeCardView : public views::WidgetDelegateView { |
| for (int i = 0; i < child_count(); ++i) { |
| views::View* child = child_at(i); |
| if (child->visible()) { |
| - child->SetBoundsRect(bounds()); |
| - return; |
| + if (child == minimized_view_) { |
| + gfx::Rect minimized_bounds = bounds(); |
| + minimized_bounds.set_y( |
| + minimized_bounds.bottom() - kHomeCardMinimizedHeight); |
| + child->SetBoundsRect(minimized_bounds); |
| + } else { |
| + child->SetBoundsRect(bounds()); |
| + } |
| } |
| } |
| - |
| - // One of the child views has to be visible. |
| - NOTREACHED(); |
| } |
| virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE { |
| if (!gesture_manager_ && |
| @@ -332,7 +362,7 @@ class HomeCardView : public views::WidgetDelegateView { |
| } |
| app_list::AppListMainView* main_view_; |
| - BottomHomeView* bottom_view_; |
| + views::View* bottom_view_; |
| views::View* minimized_view_; |
| scoped_ptr<HomeCardGestureManager> gesture_manager_; |
| HomeCardGestureManager::Delegate* gesture_delegate_; |
| @@ -547,9 +577,7 @@ void HomeCardImpl::OnGestureEnded(State final_state) { |
| void HomeCardImpl::OnGestureProgressed( |
| State from_state, State to_state, float progress) { |
| - // Do not update |state_| but update the look of home_card_view. |
| - // TODO(mukai): allow mixed visual of |from_state| and |to_state|. |
| - home_card_view_->SetState(to_state); |
| + home_card_view_->SetStateProgress(from_state, to_state, progress); |
| gfx::Rect screen_bounds = |
| home_card_widget_->GetNativeWindow()->GetRootWindow()->bounds(); |