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

Side by Side Diff: athena/home/home_card_impl.cc

Issue 601333002: ESC accelerator and consistent overview mode for Athena homecard (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 scoped_ptr<HomeCardGestureManager> gesture_manager_; 219 scoped_ptr<HomeCardGestureManager> gesture_manager_;
220 HomeCardGestureManager::Delegate* gesture_delegate_; 220 HomeCardGestureManager::Delegate* gesture_delegate_;
221 221
222 DISALLOW_COPY_AND_ASSIGN(HomeCardView); 222 DISALLOW_COPY_AND_ASSIGN(HomeCardView);
223 }; 223 };
224 224
225 HomeCardImpl::HomeCardImpl(AppModelBuilder* model_builder) 225 HomeCardImpl::HomeCardImpl(AppModelBuilder* model_builder)
226 : model_builder_(model_builder), 226 : model_builder_(model_builder),
227 state_(HIDDEN), 227 state_(HIDDEN),
228 original_state_(VISIBLE_MINIMIZED), 228 original_state_(VISIBLE_MINIMIZED),
229 overview_state_(VISIBLE_BOTTOM),
229 home_card_widget_(NULL), 230 home_card_widget_(NULL),
230 home_card_view_(NULL), 231 home_card_view_(NULL),
231 layout_manager_(NULL), 232 layout_manager_(NULL),
232 activation_client_(NULL) { 233 activation_client_(NULL) {
233 DCHECK(!instance); 234 DCHECK(!instance);
234 instance = this; 235 instance = this;
235 WindowManager::GetInstance()->AddObserver(this); 236 WindowManager::GetInstance()->AddObserver(this);
236 } 237 }
237 238
238 HomeCardImpl::~HomeCardImpl() { 239 HomeCardImpl::~HomeCardImpl() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 296
296 void HomeCardImpl::InstallAccelerators() { 297 void HomeCardImpl::InstallAccelerators() {
297 const AcceleratorData accelerator_data[] = { 298 const AcceleratorData accelerator_data[] = {
298 {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN, 299 {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN,
299 COMMAND_SHOW_HOME_CARD, AF_NONE}, 300 COMMAND_SHOW_HOME_CARD, AF_NONE},
300 }; 301 };
301 AcceleratorManager::Get()->RegisterAccelerators( 302 AcceleratorManager::Get()->RegisterAccelerators(
302 accelerator_data, arraysize(accelerator_data), this); 303 accelerator_data, arraysize(accelerator_data), this);
303 } 304 }
304 305
306 // Use when switching internally between "shown" and "not shown" so that
307 // we enter and exit overview mode appropriately
308 void HomeCardImpl::SetStateAndOverview(HomeCard::State state) {
Jun Mukai 2014/09/25 21:53:41 This method name is unclear. SetStateAndToggleOve
Greg Levin 2014/10/02 21:56:09 Done (mostly... see below)
309 if (state_ == state)
310 return;
311
312 bool show = (state == VISIBLE_BOTTOM || state == VISIBLE_CENTERED);
313 if (show == WindowManager::GetInstance()->IsOverviewModeActive()) {
314 SetState(state); // overview mode already matches state
315 } else {
316 overview_state_ = state;
317 WindowManager::GetInstance()->ToggleOverview();
318 }
319 }
320
305 void HomeCardImpl::SetState(HomeCard::State state) { 321 void HomeCardImpl::SetState(HomeCard::State state) {
306 if (state_ == state) 322 if (state_ == state)
307 return; 323 return;
308 324
309 // Update |state_| before changing the visibility of the widgets, so that 325 // Update |state_| before changing the visibility of the widgets, so that
310 // LayoutManager callbacks get the correct state. 326 // LayoutManager callbacks get the correct state.
311 HomeCard::State old_state = state_; 327 HomeCard::State old_state = state_;
312 state_ = state; 328 state_ = state;
313 original_state_ = state; 329 original_state_ = state;
314 330
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 377
362 bool HomeCardImpl::IsCommandEnabled(int command_id) const { 378 bool HomeCardImpl::IsCommandEnabled(int command_id) const {
363 return true; 379 return true;
364 } 380 }
365 381
366 bool HomeCardImpl::OnAcceleratorFired(int command_id, 382 bool HomeCardImpl::OnAcceleratorFired(int command_id,
367 const ui::Accelerator& accelerator) { 383 const ui::Accelerator& accelerator) {
368 DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id); 384 DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id);
369 385
370 if (state_ == VISIBLE_CENTERED && original_state_ != VISIBLE_BOTTOM) 386 if (state_ == VISIBLE_CENTERED && original_state_ != VISIBLE_BOTTOM)
371 SetState(VISIBLE_MINIMIZED); 387 SetStateAndOverview(VISIBLE_MINIMIZED);
372 else if (state_ == VISIBLE_MINIMIZED) 388 else if (state_ == VISIBLE_MINIMIZED)
373 SetState(VISIBLE_CENTERED); 389 SetStateAndOverview(VISIBLE_CENTERED);
374 return true; 390 return true;
375 } 391 }
376 392
377 void HomeCardImpl::OnGestureEnded(State final_state, bool is_fling) { 393 void HomeCardImpl::OnGestureEnded(State final_state, bool is_fling) {
378 home_card_view_->ClearGesture(); 394 home_card_view_->ClearGesture();
379 if (state_ != final_state && 395 if (state_ != final_state &&
380 (state_ == VISIBLE_MINIMIZED || final_state == VISIBLE_MINIMIZED)) { 396 (state_ == VISIBLE_MINIMIZED || final_state == VISIBLE_MINIMIZED)) {
381 SetState(final_state); 397 SetState(final_state);
382 WindowManager::GetInstance()->ToggleOverview(); 398 WindowManager::GetInstance()->ToggleOverview();
383 } else { 399 } else {
(...skipping 24 matching lines...) Expand all
408 GetBoundsForState(screen_bounds, to_state))); 424 GetBoundsForState(screen_bounds, to_state)));
409 425
410 home_card_view_->SetStateProgress(from_state, to_state, progress); 426 home_card_view_->SetStateProgress(from_state, to_state, progress);
411 427
412 // TODO(mukai): signals the update to the window manager so that it shows the 428 // TODO(mukai): signals the update to the window manager so that it shows the
413 // intermediate visual state of overview mode. 429 // intermediate visual state of overview mode.
414 } 430 }
415 431
416 void HomeCardImpl::OnOverviewModeEnter() { 432 void HomeCardImpl::OnOverviewModeEnter() {
417 if (state_ == HIDDEN || state_ == VISIBLE_MINIMIZED) 433 if (state_ == HIDDEN || state_ == VISIBLE_MINIMIZED)
418 SetState(VISIBLE_BOTTOM); 434 SetState(overview_state_);
Jun Mukai 2014/09/25 21:53:41 I am not sure why overview_state_ is necessary. I
Greg Levin 2014/10/02 21:56:09 ToggleOverview() was a little imprecise for use he
419 } 435 }
420 436
421 void HomeCardImpl::OnOverviewModeExit() { 437 void HomeCardImpl::OnOverviewModeExit() {
422 SetState(VISIBLE_MINIMIZED); 438 SetState(VISIBLE_MINIMIZED);
439 overview_state_ = VISIBLE_BOTTOM;
423 } 440 }
424 441
425 void HomeCardImpl::OnSplitViewModeEnter() { 442 void HomeCardImpl::OnSplitViewModeEnter() {
426 } 443 }
427 444
428 void HomeCardImpl::OnSplitViewModeExit() { 445 void HomeCardImpl::OnSplitViewModeExit() {
429 } 446 }
430 447
431 void HomeCardImpl::OnWindowActivated(aura::Window* gained_active, 448 void HomeCardImpl::OnWindowActivated(aura::Window* gained_active,
432 aura::Window* lost_active) { 449 aura::Window* lost_active) {
(...skipping 17 matching lines...) Expand all
450 instance = NULL; 467 instance = NULL;
451 } 468 }
452 469
453 // static 470 // static
454 HomeCard* HomeCard::Get() { 471 HomeCard* HomeCard::Get() {
455 DCHECK(instance); 472 DCHECK(instance);
456 return instance; 473 return instance;
457 } 474 }
458 475
459 } // namespace athena 476 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698