| 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/env/public/athena_env.h" | 5 #include "athena/env/public/athena_env.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "athena/util/fill_layout_manager.h" | 9 #include "athena/util/fill_layout_manager.h" |
| 10 #include "base/sys_info.h" | 10 #include "base/sys_info.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 screen_for_shutdown = new ScreenForShutdown(screen->GetPrimaryDisplay()); | 49 screen_for_shutdown = new ScreenForShutdown(screen->GetPrimaryDisplay()); |
| 50 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, | 50 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, |
| 51 screen_for_shutdown); | 51 screen_for_shutdown); |
| 52 } | 52 } |
| 53 | 53 |
| 54 private: | 54 private: |
| 55 explicit ScreenForShutdown(const gfx::Display& primary_display) | 55 explicit ScreenForShutdown(const gfx::Display& primary_display) |
| 56 : primary_display_(primary_display) {} | 56 : primary_display_(primary_display) {} |
| 57 | 57 |
| 58 // gfx::Screen overrides: | 58 // gfx::Screen overrides: |
| 59 virtual bool IsDIPEnabled() OVERRIDE { return true; } | 59 virtual bool IsDIPEnabled() override { return true; } |
| 60 virtual gfx::Point GetCursorScreenPoint() OVERRIDE { return gfx::Point(); } | 60 virtual gfx::Point GetCursorScreenPoint() override { return gfx::Point(); } |
| 61 virtual gfx::NativeWindow GetWindowUnderCursor() OVERRIDE { return NULL; } | 61 virtual gfx::NativeWindow GetWindowUnderCursor() override { return NULL; } |
| 62 virtual gfx::NativeWindow GetWindowAtScreenPoint( | 62 virtual gfx::NativeWindow GetWindowAtScreenPoint( |
| 63 const gfx::Point& point) OVERRIDE { | 63 const gfx::Point& point) override { |
| 64 return NULL; | 64 return NULL; |
| 65 } | 65 } |
| 66 virtual int GetNumDisplays() const OVERRIDE { return 1; } | 66 virtual int GetNumDisplays() const override { return 1; } |
| 67 virtual std::vector<gfx::Display> GetAllDisplays() const OVERRIDE { | 67 virtual std::vector<gfx::Display> GetAllDisplays() const override { |
| 68 std::vector<gfx::Display> displays(1, primary_display_); | 68 std::vector<gfx::Display> displays(1, primary_display_); |
| 69 return displays; | 69 return displays; |
| 70 } | 70 } |
| 71 virtual gfx::Display GetDisplayNearestWindow( | 71 virtual gfx::Display GetDisplayNearestWindow( |
| 72 gfx::NativeView view) const OVERRIDE { | 72 gfx::NativeView view) const override { |
| 73 return primary_display_; | 73 return primary_display_; |
| 74 } | 74 } |
| 75 virtual gfx::Display GetDisplayNearestPoint( | 75 virtual gfx::Display GetDisplayNearestPoint( |
| 76 const gfx::Point& point) const OVERRIDE { | 76 const gfx::Point& point) const override { |
| 77 return primary_display_; | 77 return primary_display_; |
| 78 } | 78 } |
| 79 virtual gfx::Display GetDisplayMatching( | 79 virtual gfx::Display GetDisplayMatching( |
| 80 const gfx::Rect& match_rect) const OVERRIDE { | 80 const gfx::Rect& match_rect) const override { |
| 81 return primary_display_; | 81 return primary_display_; |
| 82 } | 82 } |
| 83 virtual gfx::Display GetPrimaryDisplay() const OVERRIDE { | 83 virtual gfx::Display GetPrimaryDisplay() const override { |
| 84 return primary_display_; | 84 return primary_display_; |
| 85 } | 85 } |
| 86 virtual void AddObserver(gfx::DisplayObserver* observer) OVERRIDE { | 86 virtual void AddObserver(gfx::DisplayObserver* observer) override { |
| 87 NOTREACHED() << "Observer should not be added during shutdown"; | 87 NOTREACHED() << "Observer should not be added during shutdown"; |
| 88 } | 88 } |
| 89 virtual void RemoveObserver(gfx::DisplayObserver* observer) OVERRIDE {} | 89 virtual void RemoveObserver(gfx::DisplayObserver* observer) override {} |
| 90 | 90 |
| 91 const gfx::Display primary_display_; | 91 const gfx::Display primary_display_; |
| 92 | 92 |
| 93 DISALLOW_COPY_AND_ASSIGN(ScreenForShutdown); | 93 DISALLOW_COPY_AND_ASSIGN(ScreenForShutdown); |
| 94 }; | 94 }; |
| 95 | 95 |
| 96 // A class that bridges the gap between CursorManager and Aura. It borrows | 96 // A class that bridges the gap between CursorManager and Aura. It borrows |
| 97 // heavily from AshNativeCursorManager. | 97 // heavily from AshNativeCursorManager. |
| 98 class AthenaNativeCursorManager : public wm::NativeCursorManager { | 98 class AthenaNativeCursorManager : public wm::NativeCursorManager { |
| 99 public: | 99 public: |
| 100 explicit AthenaNativeCursorManager(aura::WindowTreeHost* host) | 100 explicit AthenaNativeCursorManager(aura::WindowTreeHost* host) |
| 101 : host_(host), image_cursors_(new ui::ImageCursors) {} | 101 : host_(host), image_cursors_(new ui::ImageCursors) {} |
| 102 virtual ~AthenaNativeCursorManager() {} | 102 virtual ~AthenaNativeCursorManager() {} |
| 103 | 103 |
| 104 // wm::NativeCursorManager overrides. | 104 // wm::NativeCursorManager overrides. |
| 105 virtual void SetDisplay(const gfx::Display& display, | 105 virtual void SetDisplay(const gfx::Display& display, |
| 106 wm::NativeCursorManagerDelegate* delegate) OVERRIDE { | 106 wm::NativeCursorManagerDelegate* delegate) override { |
| 107 if (image_cursors_->SetDisplay(display, display.device_scale_factor())) | 107 if (image_cursors_->SetDisplay(display, display.device_scale_factor())) |
| 108 SetCursor(delegate->GetCursor(), delegate); | 108 SetCursor(delegate->GetCursor(), delegate); |
| 109 } | 109 } |
| 110 | 110 |
| 111 virtual void SetCursor(gfx::NativeCursor cursor, | 111 virtual void SetCursor(gfx::NativeCursor cursor, |
| 112 wm::NativeCursorManagerDelegate* delegate) OVERRIDE { | 112 wm::NativeCursorManagerDelegate* delegate) override { |
| 113 image_cursors_->SetPlatformCursor(&cursor); | 113 image_cursors_->SetPlatformCursor(&cursor); |
| 114 cursor.set_device_scale_factor(image_cursors_->GetScale()); | 114 cursor.set_device_scale_factor(image_cursors_->GetScale()); |
| 115 delegate->CommitCursor(cursor); | 115 delegate->CommitCursor(cursor); |
| 116 | 116 |
| 117 if (delegate->IsCursorVisible()) | 117 if (delegate->IsCursorVisible()) |
| 118 ApplyCursor(cursor); | 118 ApplyCursor(cursor); |
| 119 } | 119 } |
| 120 | 120 |
| 121 virtual void SetVisibility( | 121 virtual void SetVisibility( |
| 122 bool visible, | 122 bool visible, |
| 123 wm::NativeCursorManagerDelegate* delegate) OVERRIDE { | 123 wm::NativeCursorManagerDelegate* delegate) override { |
| 124 delegate->CommitVisibility(visible); | 124 delegate->CommitVisibility(visible); |
| 125 | 125 |
| 126 if (visible) { | 126 if (visible) { |
| 127 SetCursor(delegate->GetCursor(), delegate); | 127 SetCursor(delegate->GetCursor(), delegate); |
| 128 } else { | 128 } else { |
| 129 gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 129 gfx::NativeCursor invisible_cursor(ui::kCursorNone); |
| 130 image_cursors_->SetPlatformCursor(&invisible_cursor); | 130 image_cursors_->SetPlatformCursor(&invisible_cursor); |
| 131 ApplyCursor(invisible_cursor); | 131 ApplyCursor(invisible_cursor); |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 virtual void SetCursorSet( | 135 virtual void SetCursorSet( |
| 136 ui::CursorSetType cursor_set, | 136 ui::CursorSetType cursor_set, |
| 137 wm::NativeCursorManagerDelegate* delegate) OVERRIDE { | 137 wm::NativeCursorManagerDelegate* delegate) override { |
| 138 image_cursors_->SetCursorSet(cursor_set); | 138 image_cursors_->SetCursorSet(cursor_set); |
| 139 delegate->CommitCursorSet(cursor_set); | 139 delegate->CommitCursorSet(cursor_set); |
| 140 if (delegate->IsCursorVisible()) | 140 if (delegate->IsCursorVisible()) |
| 141 SetCursor(delegate->GetCursor(), delegate); | 141 SetCursor(delegate->GetCursor(), delegate); |
| 142 } | 142 } |
| 143 | 143 |
| 144 virtual void SetMouseEventsEnabled( | 144 virtual void SetMouseEventsEnabled( |
| 145 bool enabled, | 145 bool enabled, |
| 146 wm::NativeCursorManagerDelegate* delegate) OVERRIDE { | 146 wm::NativeCursorManagerDelegate* delegate) override { |
| 147 delegate->CommitMouseEventsEnabled(enabled); | 147 delegate->CommitMouseEventsEnabled(enabled); |
| 148 SetVisibility(delegate->IsCursorVisible(), delegate); | 148 SetVisibility(delegate->IsCursorVisible(), delegate); |
| 149 } | 149 } |
| 150 | 150 |
| 151 private: | 151 private: |
| 152 // Sets |cursor| as the active cursor within Aura. | 152 // Sets |cursor| as the active cursor within Aura. |
| 153 void ApplyCursor(gfx::NativeCursor cursor) { host_->SetCursor(cursor); } | 153 void ApplyCursor(gfx::NativeCursor cursor) { host_->SetCursor(cursor); } |
| 154 | 154 |
| 155 aura::WindowTreeHost* host_; // Not owned. | 155 aura::WindowTreeHost* host_; // Not owned. |
| 156 | 156 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 private: | 253 private: |
| 254 struct Finder { | 254 struct Finder { |
| 255 explicit Finder(const base::Closure& c) : closure(c) {} | 255 explicit Finder(const base::Closure& c) : closure(c) {} |
| 256 bool operator()(const base::Closure& other) { | 256 bool operator()(const base::Closure& other) { |
| 257 return closure.Equals(other); | 257 return closure.Equals(other); |
| 258 } | 258 } |
| 259 base::Closure closure; | 259 base::Closure closure; |
| 260 }; | 260 }; |
| 261 | 261 |
| 262 // AthenaEnv: | 262 // AthenaEnv: |
| 263 virtual aura::WindowTreeHost* GetHost() OVERRIDE { return host_.get(); } | 263 virtual aura::WindowTreeHost* GetHost() override { return host_.get(); } |
| 264 | 264 |
| 265 virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) OVERRIDE { | 265 virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) override { |
| 266 screen_->SetWorkAreaInsets(insets); | 266 screen_->SetWorkAreaInsets(insets); |
| 267 } | 267 } |
| 268 | 268 |
| 269 virtual void AddTerminatingCallback(const base::Closure& closure) OVERRIDE { | 269 virtual void AddTerminatingCallback(const base::Closure& closure) override { |
| 270 if (closure.is_null()) | 270 if (closure.is_null()) |
| 271 return; | 271 return; |
| 272 DCHECK(terminating_callbacks_.end() == | 272 DCHECK(terminating_callbacks_.end() == |
| 273 std::find_if(terminating_callbacks_.begin(), | 273 std::find_if(terminating_callbacks_.begin(), |
| 274 terminating_callbacks_.end(), | 274 terminating_callbacks_.end(), |
| 275 Finder(closure))); | 275 Finder(closure))); |
| 276 terminating_callbacks_.push_back(closure); | 276 terminating_callbacks_.push_back(closure); |
| 277 } | 277 } |
| 278 | 278 |
| 279 virtual void RemoveTerminatingCallback( | 279 virtual void RemoveTerminatingCallback( |
| 280 const base::Closure& closure) OVERRIDE { | 280 const base::Closure& closure) override { |
| 281 std::vector<base::Closure>::iterator iter = | 281 std::vector<base::Closure>::iterator iter = |
| 282 std::find_if(terminating_callbacks_.begin(), | 282 std::find_if(terminating_callbacks_.begin(), |
| 283 terminating_callbacks_.end(), | 283 terminating_callbacks_.end(), |
| 284 Finder(closure)); | 284 Finder(closure)); |
| 285 if (iter != terminating_callbacks_.end()) | 285 if (iter != terminating_callbacks_.end()) |
| 286 terminating_callbacks_.erase(iter); | 286 terminating_callbacks_.erase(iter); |
| 287 } | 287 } |
| 288 | 288 |
| 289 virtual void OnTerminating() OVERRIDE { | 289 virtual void OnTerminating() override { |
| 290 for (std::vector<base::Closure>::iterator iter = | 290 for (std::vector<base::Closure>::iterator iter = |
| 291 terminating_callbacks_.begin(); | 291 terminating_callbacks_.begin(); |
| 292 iter != terminating_callbacks_.end(); | 292 iter != terminating_callbacks_.end(); |
| 293 ++iter) { | 293 ++iter) { |
| 294 iter->Run(); | 294 iter->Run(); |
| 295 } | 295 } |
| 296 } | 296 } |
| 297 | 297 |
| 298 // ui::DisplayConfigurator::Observer: | 298 // ui::DisplayConfigurator::Observer: |
| 299 virtual void OnDisplayModeChanged(const std::vector< | 299 virtual void OnDisplayModeChanged(const std::vector< |
| 300 ui::DisplayConfigurator::DisplayState>& displays) OVERRIDE { | 300 ui::DisplayConfigurator::DisplayState>& displays) override { |
| 301 gfx::Size size = GetPrimaryDisplaySize(); | 301 gfx::Size size = GetPrimaryDisplaySize(); |
| 302 if (!size.IsEmpty()) | 302 if (!size.IsEmpty()) |
| 303 host_->UpdateRootWindowSize(size); | 303 host_->UpdateRootWindowSize(size); |
| 304 } | 304 } |
| 305 | 305 |
| 306 // aura::WindowTreeHostObserver: | 306 // aura::WindowTreeHostObserver: |
| 307 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE { | 307 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) override { |
| 308 base::MessageLoopForUI::current()->PostTask( | 308 base::MessageLoopForUI::current()->PostTask( |
| 309 FROM_HERE, base::MessageLoop::QuitClosure()); | 309 FROM_HERE, base::MessageLoop::QuitClosure()); |
| 310 } | 310 } |
| 311 | 311 |
| 312 gfx::Size GetPrimaryDisplaySize() const { | 312 gfx::Size GetPrimaryDisplaySize() const { |
| 313 const std::vector<ui::DisplayConfigurator::DisplayState>& displays = | 313 const std::vector<ui::DisplayConfigurator::DisplayState>& displays = |
| 314 display_configurator_->cached_displays(); | 314 display_configurator_->cached_displays(); |
| 315 if (displays.empty()) | 315 if (displays.empty()) |
| 316 return gfx::Size(); | 316 return gfx::Size(); |
| 317 const ui::DisplayMode* mode = displays[0].display->current_mode(); | 317 const ui::DisplayMode* mode = displays[0].display->current_mode(); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 | 349 |
| 350 // static | 350 // static |
| 351 | 351 |
| 352 // static | 352 // static |
| 353 void AthenaEnv::Shutdown() { | 353 void AthenaEnv::Shutdown() { |
| 354 DCHECK(instance); | 354 DCHECK(instance); |
| 355 delete instance; | 355 delete instance; |
| 356 } | 356 } |
| 357 | 357 |
| 358 } // namespace athena | 358 } // namespace athena |
| OLD | NEW |