| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "athena/home/home_card_impl.h" | 5 #include "athena/home/home_card_impl.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "athena/env/public/athena_env.h" | 10 #include "athena/env/public/athena_env.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 SetChildBoundsDirect(child, requested_bounds); | 130 SetChildBoundsDirect(child, requested_bounds); |
| 131 } | 131 } |
| 132 | 132 |
| 133 aura::Window* home_card_; | 133 aura::Window* home_card_; |
| 134 ui::Layer* minimized_layer_; | 134 ui::Layer* minimized_layer_; |
| 135 | 135 |
| 136 DISALLOW_COPY_AND_ASSIGN(HomeCardLayoutManager); | 136 DISALLOW_COPY_AND_ASSIGN(HomeCardLayoutManager); |
| 137 }; | 137 }; |
| 138 | 138 |
| 139 // The container view of home card contents of each state. | 139 // The container view of home card contents of each state. |
| 140 class HomeCardView : public views::WidgetDelegateView { | 140 class HomeCardView : public views::WidgetDelegateView, |
| 141 public AthenaStartPageView::Observer { |
| 141 public: | 142 public: |
| 142 HomeCardView(app_list::AppListViewDelegate* view_delegate, | 143 HomeCardView(app_list::AppListViewDelegate* view_delegate, |
| 143 aura::Window* container, | 144 aura::Window* container, |
| 144 HomeCardGestureManager::Delegate* gesture_delegate) | 145 HomeCardGestureManager::Delegate* gesture_delegate) |
| 145 : gesture_delegate_(gesture_delegate) { | 146 : gesture_delegate_(gesture_delegate) { |
| 146 SetLayoutManager(new views::FillLayout()); | 147 SetLayoutManager(new views::FillLayout()); |
| 147 // Ideally AppListMainView should be used here and have AthenaStartPageView | 148 // Ideally AppListMainView should be used here and have AthenaStartPageView |
| 148 // as its child view, so that custom pages and apps grid are available in | 149 // as its child view, so that custom pages and apps grid are available in |
| 149 // the home card. | 150 // the home card. |
| 150 // TODO(mukai): make it so after the detailed UI has been fixed. | 151 // TODO(mukai): make it so after the detailed UI has been fixed. |
| 151 main_view_ = new AthenaStartPageView(view_delegate); | 152 main_view_ = new AthenaStartPageView(view_delegate); |
| 153 main_view_->AddObserver(this); |
| 152 AddChildView(main_view_); | 154 AddChildView(main_view_); |
| 153 } | 155 } |
| 154 | 156 |
| 157 virtual ~HomeCardView() { main_view_->RemoveObserver(this); } |
| 158 |
| 155 void SetStateProgress(HomeCard::State from_state, | 159 void SetStateProgress(HomeCard::State from_state, |
| 156 HomeCard::State to_state, | 160 HomeCard::State to_state, |
| 157 float progress) { | 161 float progress) { |
| 158 // TODO(mukai): not clear the focus, but simply close the virtual keyboard. | 162 // TODO(mukai): not clear the focus, but simply close the virtual keyboard. |
| 159 GetFocusManager()->ClearFocus(); | 163 GetFocusManager()->ClearFocus(); |
| 160 if (from_state == HomeCard::VISIBLE_CENTERED) | 164 if (from_state == HomeCard::VISIBLE_CENTERED) |
| 161 main_view_->SetLayoutState(1.0f - progress); | 165 main_view_->SetLayoutState(1.0f - progress); |
| 162 else if (to_state == HomeCard::VISIBLE_CENTERED) | 166 else if (to_state == HomeCard::VISIBLE_CENTERED) |
| 163 main_view_->SetLayoutState(progress); | 167 main_view_->SetLayoutState(progress); |
| 164 UpdateShadow(true); | 168 UpdateShadow(true); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 wm::SetShadowType( | 210 wm::SetShadowType( |
| 207 GetWidget()->GetNativeWindow(), | 211 GetWidget()->GetNativeWindow(), |
| 208 should_show ? wm::SHADOW_TYPE_RECTANGULAR : wm::SHADOW_TYPE_NONE); | 212 should_show ? wm::SHADOW_TYPE_RECTANGULAR : wm::SHADOW_TYPE_NONE); |
| 209 } | 213 } |
| 210 | 214 |
| 211 // views::WidgetDelegate: | 215 // views::WidgetDelegate: |
| 212 virtual views::View* GetContentsView() override { | 216 virtual views::View* GetContentsView() override { |
| 213 return this; | 217 return this; |
| 214 } | 218 } |
| 215 | 219 |
| 220 // AthenaStartPageView::Observer: |
| 221 virtual void OnLayoutStateChanged(float new_state) override { |
| 222 if (new_state == 1.0f) |
| 223 HomeCard::Get()->SetState(HomeCard::VISIBLE_CENTERED); |
| 224 } |
| 225 |
| 216 AthenaStartPageView* main_view_; | 226 AthenaStartPageView* main_view_; |
| 217 scoped_ptr<HomeCardGestureManager> gesture_manager_; | 227 scoped_ptr<HomeCardGestureManager> gesture_manager_; |
| 218 HomeCardGestureManager::Delegate* gesture_delegate_; | 228 HomeCardGestureManager::Delegate* gesture_delegate_; |
| 219 | 229 |
| 220 DISALLOW_COPY_AND_ASSIGN(HomeCardView); | 230 DISALLOW_COPY_AND_ASSIGN(HomeCardView); |
| 221 }; | 231 }; |
| 222 | 232 |
| 223 HomeCardImpl::HomeCardImpl(scoped_ptr<AppModelBuilder> model_builder, | 233 HomeCardImpl::HomeCardImpl(scoped_ptr<AppModelBuilder> model_builder, |
| 224 scoped_ptr<SearchControllerFactory> search_factory) | 234 scoped_ptr<SearchControllerFactory> search_factory) |
| 225 : model_builder_(model_builder.Pass()), | 235 : model_builder_(model_builder.Pass()), |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 instance = NULL; | 442 instance = NULL; |
| 433 } | 443 } |
| 434 | 444 |
| 435 // static | 445 // static |
| 436 HomeCard* HomeCard::Get() { | 446 HomeCard* HomeCard::Get() { |
| 437 DCHECK(instance); | 447 DCHECK(instance); |
| 438 return instance; | 448 return instance; |
| 439 } | 449 } |
| 440 | 450 |
| 441 } // namespace athena | 451 } // namespace athena |
| OLD | NEW |