| 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 "extensions/shell/browser/shell_desktop_controller.h" | 5 #include "extensions/shell/browser/shell_desktop_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "ui/display/types/display_snapshot.h" | 42 #include "ui/display/types/display_snapshot.h" |
| 43 #endif | 43 #endif |
| 44 | 44 |
| 45 namespace extensions { | 45 namespace extensions { |
| 46 namespace { | 46 namespace { |
| 47 | 47 |
| 48 // A simple layout manager that makes each new window fill its parent. | 48 // A simple layout manager that makes each new window fill its parent. |
| 49 class FillLayout : public aura::LayoutManager { | 49 class FillLayout : public aura::LayoutManager { |
| 50 public: | 50 public: |
| 51 FillLayout() {} | 51 FillLayout() {} |
| 52 virtual ~FillLayout() {} | 52 ~FillLayout() override {} |
| 53 | 53 |
| 54 private: | 54 private: |
| 55 // aura::LayoutManager: | 55 // aura::LayoutManager: |
| 56 virtual void OnWindowResized() override {} | 56 void OnWindowResized() override {} |
| 57 | 57 |
| 58 virtual void OnWindowAddedToLayout(aura::Window* child) override { | 58 void OnWindowAddedToLayout(aura::Window* child) override { |
| 59 if (!child->parent()) | 59 if (!child->parent()) |
| 60 return; | 60 return; |
| 61 | 61 |
| 62 // Create a rect at 0,0 with the size of the parent. | 62 // Create a rect at 0,0 with the size of the parent. |
| 63 gfx::Size parent_size = child->parent()->bounds().size(); | 63 gfx::Size parent_size = child->parent()->bounds().size(); |
| 64 child->SetBounds(gfx::Rect(parent_size)); | 64 child->SetBounds(gfx::Rect(parent_size)); |
| 65 } | 65 } |
| 66 | 66 |
| 67 virtual void OnWillRemoveWindowFromLayout(aura::Window* child) override {} | 67 void OnWillRemoveWindowFromLayout(aura::Window* child) override {} |
| 68 | 68 |
| 69 virtual void OnWindowRemovedFromLayout(aura::Window* child) override {} | 69 void OnWindowRemovedFromLayout(aura::Window* child) override {} |
| 70 | 70 |
| 71 virtual void OnChildWindowVisibilityChanged(aura::Window* child, | 71 void OnChildWindowVisibilityChanged(aura::Window* child, |
| 72 bool visible) override {} | 72 bool visible) override {} |
| 73 | 73 |
| 74 virtual void SetChildBounds(aura::Window* child, | 74 void SetChildBounds(aura::Window* child, |
| 75 const gfx::Rect& requested_bounds) override { | 75 const gfx::Rect& requested_bounds) override { |
| 76 SetChildBoundsDirect(child, requested_bounds); | 76 SetChildBoundsDirect(child, requested_bounds); |
| 77 } | 77 } |
| 78 | 78 |
| 79 DISALLOW_COPY_AND_ASSIGN(FillLayout); | 79 DISALLOW_COPY_AND_ASSIGN(FillLayout); |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 // A class that bridges the gap between CursorManager and Aura. It borrows | 82 // A class that bridges the gap between CursorManager and Aura. It borrows |
| 83 // heavily from AshNativeCursorManager. | 83 // heavily from AshNativeCursorManager. |
| 84 class ShellNativeCursorManager : public wm::NativeCursorManager { | 84 class ShellNativeCursorManager : public wm::NativeCursorManager { |
| 85 public: | 85 public: |
| 86 explicit ShellNativeCursorManager(aura::WindowTreeHost* host) | 86 explicit ShellNativeCursorManager(aura::WindowTreeHost* host) |
| 87 : host_(host), image_cursors_(new ui::ImageCursors) {} | 87 : host_(host), image_cursors_(new ui::ImageCursors) {} |
| 88 virtual ~ShellNativeCursorManager() {} | 88 ~ShellNativeCursorManager() override {} |
| 89 | 89 |
| 90 // wm::NativeCursorManager overrides. | 90 // wm::NativeCursorManager overrides. |
| 91 virtual void SetDisplay(const gfx::Display& display, | 91 void SetDisplay(const gfx::Display& display, |
| 92 wm::NativeCursorManagerDelegate* delegate) override { | 92 wm::NativeCursorManagerDelegate* delegate) override { |
| 93 if (image_cursors_->SetDisplay(display, display.device_scale_factor())) | 93 if (image_cursors_->SetDisplay(display, display.device_scale_factor())) |
| 94 SetCursor(delegate->GetCursor(), delegate); | 94 SetCursor(delegate->GetCursor(), delegate); |
| 95 } | 95 } |
| 96 | 96 |
| 97 virtual void SetCursor(gfx::NativeCursor cursor, | 97 void SetCursor(gfx::NativeCursor cursor, |
| 98 wm::NativeCursorManagerDelegate* delegate) override { | 98 wm::NativeCursorManagerDelegate* delegate) override { |
| 99 image_cursors_->SetPlatformCursor(&cursor); | 99 image_cursors_->SetPlatformCursor(&cursor); |
| 100 cursor.set_device_scale_factor(image_cursors_->GetScale()); | 100 cursor.set_device_scale_factor(image_cursors_->GetScale()); |
| 101 delegate->CommitCursor(cursor); | 101 delegate->CommitCursor(cursor); |
| 102 | 102 |
| 103 if (delegate->IsCursorVisible()) | 103 if (delegate->IsCursorVisible()) |
| 104 ApplyCursor(cursor); | 104 ApplyCursor(cursor); |
| 105 } | 105 } |
| 106 | 106 |
| 107 virtual void SetVisibility( | 107 void SetVisibility(bool visible, |
| 108 bool visible, | 108 wm::NativeCursorManagerDelegate* delegate) override { |
| 109 wm::NativeCursorManagerDelegate* delegate) override { | |
| 110 delegate->CommitVisibility(visible); | 109 delegate->CommitVisibility(visible); |
| 111 | 110 |
| 112 if (visible) { | 111 if (visible) { |
| 113 SetCursor(delegate->GetCursor(), delegate); | 112 SetCursor(delegate->GetCursor(), delegate); |
| 114 } else { | 113 } else { |
| 115 gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 114 gfx::NativeCursor invisible_cursor(ui::kCursorNone); |
| 116 image_cursors_->SetPlatformCursor(&invisible_cursor); | 115 image_cursors_->SetPlatformCursor(&invisible_cursor); |
| 117 ApplyCursor(invisible_cursor); | 116 ApplyCursor(invisible_cursor); |
| 118 } | 117 } |
| 119 } | 118 } |
| 120 | 119 |
| 121 virtual void SetCursorSet( | 120 void SetCursorSet(ui::CursorSetType cursor_set, |
| 122 ui::CursorSetType cursor_set, | 121 wm::NativeCursorManagerDelegate* delegate) override { |
| 123 wm::NativeCursorManagerDelegate* delegate) override { | |
| 124 image_cursors_->SetCursorSet(cursor_set); | 122 image_cursors_->SetCursorSet(cursor_set); |
| 125 delegate->CommitCursorSet(cursor_set); | 123 delegate->CommitCursorSet(cursor_set); |
| 126 if (delegate->IsCursorVisible()) | 124 if (delegate->IsCursorVisible()) |
| 127 SetCursor(delegate->GetCursor(), delegate); | 125 SetCursor(delegate->GetCursor(), delegate); |
| 128 } | 126 } |
| 129 | 127 |
| 130 virtual void SetMouseEventsEnabled( | 128 void SetMouseEventsEnabled( |
| 131 bool enabled, | 129 bool enabled, |
| 132 wm::NativeCursorManagerDelegate* delegate) override { | 130 wm::NativeCursorManagerDelegate* delegate) override { |
| 133 delegate->CommitMouseEventsEnabled(enabled); | 131 delegate->CommitMouseEventsEnabled(enabled); |
| 134 SetVisibility(delegate->IsCursorVisible(), delegate); | 132 SetVisibility(delegate->IsCursorVisible(), delegate); |
| 135 } | 133 } |
| 136 | 134 |
| 137 private: | 135 private: |
| 138 // Sets |cursor| as the active cursor within Aura. | 136 // Sets |cursor| as the active cursor within Aura. |
| 139 void ApplyCursor(gfx::NativeCursor cursor) { host_->SetCursor(cursor); } | 137 void ApplyCursor(gfx::NativeCursor cursor) { host_->SetCursor(cursor); } |
| 140 | 138 |
| 141 aura::WindowTreeHost* host_; // Not owned. | 139 aura::WindowTreeHost* host_; // Not owned. |
| 142 | 140 |
| 143 scoped_ptr<ui::ImageCursors> image_cursors_; | 141 scoped_ptr<ui::ImageCursors> image_cursors_; |
| 144 | 142 |
| 145 DISALLOW_COPY_AND_ASSIGN(ShellNativeCursorManager); | 143 DISALLOW_COPY_AND_ASSIGN(ShellNativeCursorManager); |
| 146 }; | 144 }; |
| 147 | 145 |
| 148 class AppsFocusRules : public wm::BaseFocusRules { | 146 class AppsFocusRules : public wm::BaseFocusRules { |
| 149 public: | 147 public: |
| 150 AppsFocusRules() {} | 148 AppsFocusRules() {} |
| 151 virtual ~AppsFocusRules() {} | 149 ~AppsFocusRules() override {} |
| 152 | 150 |
| 153 virtual bool SupportsChildActivation(aura::Window* window) const override { | 151 bool SupportsChildActivation(aura::Window* window) const override { |
| 154 return true; | 152 return true; |
| 155 } | 153 } |
| 156 | 154 |
| 157 private: | 155 private: |
| 158 DISALLOW_COPY_AND_ASSIGN(AppsFocusRules); | 156 DISALLOW_COPY_AND_ASSIGN(AppsFocusRules); |
| 159 }; | 157 }; |
| 160 | 158 |
| 161 } // namespace | 159 } // namespace |
| 162 | 160 |
| 163 ShellDesktopController::ShellDesktopController() | 161 ShellDesktopController::ShellDesktopController() |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 if (displays.empty()) | 352 if (displays.empty()) |
| 355 return gfx::Size(); | 353 return gfx::Size(); |
| 356 const ui::DisplayMode* mode = displays[0].display->current_mode(); | 354 const ui::DisplayMode* mode = displays[0].display->current_mode(); |
| 357 return mode ? mode->size() : gfx::Size(); | 355 return mode ? mode->size() : gfx::Size(); |
| 358 #else | 356 #else |
| 359 return gfx::Size(); | 357 return gfx::Size(); |
| 360 #endif | 358 #endif |
| 361 } | 359 } |
| 362 | 360 |
| 363 } // namespace extensions | 361 } // namespace extensions |
| OLD | NEW |