| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/touch/touch_observer_hud.h" | 5 #include "ash/touch/touch_observer_hud.h" |
| 6 | 6 |
| 7 #include "ash/root_window_controller.h" | 7 #include "ash/root_window_controller.h" |
| 8 #include "ash/root_window_settings.h" | 8 #include "ash/root_window_settings.h" |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/shell_window_ids.h" | 10 #include "ash/shell_window_ids.h" |
| 11 #include "ui/aura/window_event_dispatcher.h" | 11 #include "ui/aura/window_event_dispatcher.h" |
| 12 #include "ui/gfx/display.h" | 12 #include "ui/display/display.h" |
| 13 #include "ui/display/screen.h" |
| 13 #include "ui/gfx/geometry/rect.h" | 14 #include "ui/gfx/geometry/rect.h" |
| 14 #include "ui/gfx/geometry/size.h" | 15 #include "ui/gfx/geometry/size.h" |
| 15 #include "ui/gfx/screen.h" | |
| 16 #include "ui/views/widget/widget.h" | 16 #include "ui/views/widget/widget.h" |
| 17 | 17 |
| 18 namespace ash { | 18 namespace ash { |
| 19 | 19 |
| 20 TouchObserverHUD::TouchObserverHUD(aura::Window* initial_root) | 20 TouchObserverHUD::TouchObserverHUD(aura::Window* initial_root) |
| 21 : display_id_(GetRootWindowSettings(initial_root)->display_id), | 21 : display_id_(GetRootWindowSettings(initial_root)->display_id), |
| 22 root_window_(initial_root), | 22 root_window_(initial_root), |
| 23 widget_(NULL) { | 23 widget_(NULL) { |
| 24 const gfx::Display& display = | 24 const display::Display& display = |
| 25 Shell::GetInstance()->display_manager()->GetDisplayForId(display_id_); | 25 Shell::GetInstance()->display_manager()->GetDisplayForId(display_id_); |
| 26 | 26 |
| 27 views::View* content = new views::View; | 27 views::View* content = new views::View; |
| 28 | 28 |
| 29 const gfx::Size& display_size = display.size(); | 29 const gfx::Size& display_size = display.size(); |
| 30 content->SetSize(display_size); | 30 content->SetSize(display_size); |
| 31 | 31 |
| 32 widget_ = new views::Widget(); | 32 widget_ = new views::Widget(); |
| 33 views::Widget::InitParams | 33 views::Widget::InitParams |
| 34 params(views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 34 params(views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| 35 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; | 35 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| 36 params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; | 36 params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; |
| 37 params.accept_events = false; | 37 params.accept_events = false; |
| 38 params.bounds = display.bounds(); | 38 params.bounds = display.bounds(); |
| 39 params.parent = | 39 params.parent = |
| 40 Shell::GetContainer(root_window_, kShellWindowId_OverlayContainer); | 40 Shell::GetContainer(root_window_, kShellWindowId_OverlayContainer); |
| 41 widget_->Init(params); | 41 widget_->Init(params); |
| 42 widget_->SetContentsView(content); | 42 widget_->SetContentsView(content); |
| 43 widget_->StackAtTop(); | 43 widget_->StackAtTop(); |
| 44 widget_->Show(); | 44 widget_->Show(); |
| 45 | 45 |
| 46 widget_->AddObserver(this); | 46 widget_->AddObserver(this); |
| 47 | 47 |
| 48 // Observe changes in display size and mode to update touch HUD. | 48 // Observe changes in display size and mode to update touch HUD. |
| 49 gfx::Screen::GetScreen()->AddObserver(this); | 49 display::Screen::GetScreen()->AddObserver(this); |
| 50 #if defined(OS_CHROMEOS) | 50 #if defined(OS_CHROMEOS) |
| 51 Shell::GetInstance()->display_configurator()->AddObserver(this); | 51 Shell::GetInstance()->display_configurator()->AddObserver(this); |
| 52 #endif // defined(OS_CHROMEOS) | 52 #endif // defined(OS_CHROMEOS) |
| 53 | 53 |
| 54 Shell::GetInstance()->window_tree_host_manager()->AddObserver(this); | 54 Shell::GetInstance()->window_tree_host_manager()->AddObserver(this); |
| 55 root_window_->AddPreTargetHandler(this); | 55 root_window_->AddPreTargetHandler(this); |
| 56 } | 56 } |
| 57 | 57 |
| 58 TouchObserverHUD::~TouchObserverHUD() { | 58 TouchObserverHUD::~TouchObserverHUD() { |
| 59 Shell::GetInstance()->window_tree_host_manager()->RemoveObserver(this); | 59 Shell::GetInstance()->window_tree_host_manager()->RemoveObserver(this); |
| 60 | 60 |
| 61 #if defined(OS_CHROMEOS) | 61 #if defined(OS_CHROMEOS) |
| 62 Shell::GetInstance()->display_configurator()->RemoveObserver(this); | 62 Shell::GetInstance()->display_configurator()->RemoveObserver(this); |
| 63 #endif // defined(OS_CHROMEOS) | 63 #endif // defined(OS_CHROMEOS) |
| 64 gfx::Screen::GetScreen()->RemoveObserver(this); | 64 display::Screen::GetScreen()->RemoveObserver(this); |
| 65 | 65 |
| 66 widget_->RemoveObserver(this); | 66 widget_->RemoveObserver(this); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void TouchObserverHUD::Clear() { | 69 void TouchObserverHUD::Clear() { |
| 70 } | 70 } |
| 71 | 71 |
| 72 void TouchObserverHUD::Remove() { | 72 void TouchObserverHUD::Remove() { |
| 73 root_window_->RemovePreTargetHandler(this); | 73 root_window_->RemovePreTargetHandler(this); |
| 74 | 74 |
| 75 RootWindowController* controller = GetRootWindowController(root_window_); | 75 RootWindowController* controller = GetRootWindowController(root_window_); |
| 76 UnsetHudForRootWindowController(controller); | 76 UnsetHudForRootWindowController(controller); |
| 77 | 77 |
| 78 widget_->CloseNow(); | 78 widget_->CloseNow(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 void TouchObserverHUD::OnTouchEvent(ui::TouchEvent* /*event*/) { | 81 void TouchObserverHUD::OnTouchEvent(ui::TouchEvent* /*event*/) { |
| 82 } | 82 } |
| 83 | 83 |
| 84 void TouchObserverHUD::OnWidgetDestroying(views::Widget* widget) { | 84 void TouchObserverHUD::OnWidgetDestroying(views::Widget* widget) { |
| 85 DCHECK_EQ(widget, widget_); | 85 DCHECK_EQ(widget, widget_); |
| 86 delete this; | 86 delete this; |
| 87 } | 87 } |
| 88 | 88 |
| 89 void TouchObserverHUD::OnDisplayAdded(const gfx::Display& new_display) {} | 89 void TouchObserverHUD::OnDisplayAdded(const display::Display& new_display) {} |
| 90 | 90 |
| 91 void TouchObserverHUD::OnDisplayRemoved(const gfx::Display& old_display) { | 91 void TouchObserverHUD::OnDisplayRemoved(const display::Display& old_display) { |
| 92 if (old_display.id() != display_id_) | 92 if (old_display.id() != display_id_) |
| 93 return; | 93 return; |
| 94 widget_->CloseNow(); | 94 widget_->CloseNow(); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void TouchObserverHUD::OnDisplayMetricsChanged(const gfx::Display& display, | 97 void TouchObserverHUD::OnDisplayMetricsChanged(const display::Display& display, |
| 98 uint32_t metrics) { | 98 uint32_t metrics) { |
| 99 if (display.id() != display_id_ || !(metrics & DISPLAY_METRIC_BOUNDS)) | 99 if (display.id() != display_id_ || !(metrics & DISPLAY_METRIC_BOUNDS)) |
| 100 return; | 100 return; |
| 101 | 101 |
| 102 widget_->SetSize(display.size()); | 102 widget_->SetSize(display.size()); |
| 103 } | 103 } |
| 104 | 104 |
| 105 #if defined(OS_CHROMEOS) | 105 #if defined(OS_CHROMEOS) |
| 106 void TouchObserverHUD::OnDisplayModeChanged( | 106 void TouchObserverHUD::OnDisplayModeChanged( |
| 107 const ui::DisplayConfigurator::DisplayStateList& outputs) { | 107 const ui::DisplayConfigurator::DisplayStateList& outputs) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 widget_->GetNativeView(), | 144 widget_->GetNativeView(), |
| 145 Shell::GetContainer(root_window_, kShellWindowId_OverlayContainer)); | 145 Shell::GetContainer(root_window_, kShellWindowId_OverlayContainer)); |
| 146 | 146 |
| 147 RootWindowController* controller = GetRootWindowController(root_window_); | 147 RootWindowController* controller = GetRootWindowController(root_window_); |
| 148 SetHudForRootWindowController(controller); | 148 SetHudForRootWindowController(controller); |
| 149 | 149 |
| 150 root_window_->AddPreTargetHandler(this); | 150 root_window_->AddPreTargetHandler(this); |
| 151 } | 151 } |
| 152 | 152 |
| 153 } // namespace ash | 153 } // namespace ash |
| OLD | NEW |