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 |