| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/sysui/sysui_application.h" | 5 #include "ash/sysui/sysui_application.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 namespace ash { | 57 namespace ash { |
| 58 namespace sysui { | 58 namespace sysui { |
| 59 | 59 |
| 60 namespace { | 60 namespace { |
| 61 | 61 |
| 62 const char kResourceFileStrings[] = "ash_resources_strings.pak"; | 62 const char kResourceFileStrings[] = "ash_resources_strings.pak"; |
| 63 const char kResourceFile100[] = "ash_resources_100_percent.pak"; | 63 const char kResourceFile100[] = "ash_resources_100_percent.pak"; |
| 64 const char kResourceFile200[] = "ash_resources_200_percent.pak"; | 64 const char kResourceFile200[] = "ash_resources_200_percent.pak"; |
| 65 | 65 |
| 66 // Tries to determine the corresponding mash container from widget init params. | 66 // Tries to determine the corresponding mash container from widget init params. |
| 67 ash::mojom::Container GetContainerId(const views::Widget::InitParams& params) { | 67 bool GetContainerForWidget(const views::Widget::InitParams& params, |
| 68 const int id = params.parent->id(); | 68 ash::mojom::Container* container) { |
| 69 if (id == kShellWindowId_DesktopBackgroundContainer) | 69 switch (params.parent->id()) { |
| 70 return ash::mojom::Container::USER_BACKGROUND; | 70 case kShellWindowId_DesktopBackgroundContainer: |
| 71 if (id == kShellWindowId_ShelfContainer) | 71 *container = ash::mojom::Container::USER_BACKGROUND; |
| 72 return ash::mojom::Container::USER_PRIVATE_SHELF; | 72 return true; |
| 73 if (id == kShellWindowId_StatusContainer) | 73 |
| 74 return ash::mojom::Container::STATUS; | 74 case kShellWindowId_ShelfContainer: |
| 75 *container = ash::mojom::Container::USER_PRIVATE_SHELF; |
| 76 return true; |
| 77 |
| 78 case kShellWindowId_StatusContainer: |
| 79 *container = ash::mojom::Container::STATUS; |
| 80 return true; |
| 81 } |
| 75 | 82 |
| 76 // Determine the container based on Widget type. | 83 // Determine the container based on Widget type. |
| 77 switch (params.type) { | 84 switch (params.type) { |
| 78 case views::Widget::InitParams::Type::TYPE_BUBBLE: | 85 case views::Widget::InitParams::Type::TYPE_BUBBLE: |
| 79 return ash::mojom::Container::BUBBLES; | 86 *container = ash::mojom::Container::BUBBLES; |
| 87 return true; |
| 88 |
| 80 case views::Widget::InitParams::Type::TYPE_MENU: | 89 case views::Widget::InitParams::Type::TYPE_MENU: |
| 81 return ash::mojom::Container::MENUS; | 90 *container = ash::mojom::Container::MENUS; |
| 91 return true; |
| 92 |
| 82 case views::Widget::InitParams::Type::TYPE_TOOLTIP: | 93 case views::Widget::InitParams::Type::TYPE_TOOLTIP: |
| 83 return ash::mojom::Container::DRAG_AND_TOOLTIPS; | 94 *container = ash::mojom::Container::DRAG_AND_TOOLTIPS; |
| 95 return true; |
| 96 |
| 84 default: | 97 default: |
| 85 return ash::mojom::Container::COUNT; | 98 break; |
| 86 } | 99 } |
| 100 return false; |
| 87 } | 101 } |
| 88 | 102 |
| 89 // Tries to determine the corresponding ash window type from the ash container | 103 // Tries to determine the corresponding ash window type from the ash container |
| 90 // for the widget. | 104 // for the widget. |
| 91 ash::mojom::AshWindowType GetAshWindowType(aura::Window* container) { | 105 ash::mojom::AshWindowType GetAshWindowType(aura::Window* container) { |
| 92 DCHECK(container); | 106 DCHECK(container); |
| 93 int id = container->id(); | 107 int id = container->id(); |
| 94 if (id == kShellWindowId_ShelfContainer) | 108 if (id == kShellWindowId_ShelfContainer) |
| 95 return ash::mojom::AshWindowType::SHELF; | 109 return ash::mojom::AshWindowType::SHELF; |
| 96 if (id == kShellWindowId_StatusContainer) | 110 if (id == kShellWindowId_StatusContainer) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 ViewsDelegate::GetInstance()->set_native_widget_factory( | 151 ViewsDelegate::GetInstance()->set_native_widget_factory( |
| 138 ViewsDelegate::NativeWidgetFactory()); | 152 ViewsDelegate::NativeWidgetFactory()); |
| 139 } | 153 } |
| 140 | 154 |
| 141 private: | 155 private: |
| 142 views::NativeWidget* InitNativeWidget( | 156 views::NativeWidget* InitNativeWidget( |
| 143 const views::Widget::InitParams& params, | 157 const views::Widget::InitParams& params, |
| 144 views::internal::NativeWidgetDelegate* delegate) { | 158 views::internal::NativeWidgetDelegate* delegate) { |
| 145 std::map<std::string, std::vector<uint8_t>> properties; | 159 std::map<std::string, std::vector<uint8_t>> properties; |
| 146 if (params.parent) { | 160 if (params.parent) { |
| 147 ash::mojom::Container container = GetContainerId(params); | 161 ash::mojom::Container container; |
| 148 if (container != ash::mojom::Container::COUNT) { | 162 if (GetContainerForWidget(params, &container)) { |
| 149 properties[ash::mojom::kWindowContainer_Property] = | 163 properties[ash::mojom::kWindowContainer_Property] = |
| 150 mojo::ConvertTo<std::vector<uint8_t>>( | 164 mojo::ConvertTo<std::vector<uint8_t>>( |
| 151 static_cast<int32_t>(container)); | 165 static_cast<int32_t>(container)); |
| 152 } | 166 } |
| 153 ash::mojom::AshWindowType type = GetAshWindowType(params.parent); | 167 ash::mojom::AshWindowType type = GetAshWindowType(params.parent); |
| 154 if (type != ash::mojom::AshWindowType::COUNT) { | 168 if (type != ash::mojom::AshWindowType::COUNT) { |
| 155 properties[ash::mojom::kAshWindowType_Property] = | 169 properties[ash::mojom::kAshWindowType_Property] = |
| 156 mojo::ConvertTo<std::vector<uint8_t>>(static_cast<int32_t>(type)); | 170 mojo::ConvertTo<std::vector<uint8_t>>(static_cast<int32_t>(type)); |
| 157 } | 171 } |
| 158 } | 172 } |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 mojom::WallpaperControllerRequest request) { | 333 mojom::WallpaperControllerRequest request) { |
| 320 mojom::WallpaperController* wallpaper_controller = | 334 mojom::WallpaperController* wallpaper_controller = |
| 321 static_cast<UserWallpaperDelegateMus*>( | 335 static_cast<UserWallpaperDelegateMus*>( |
| 322 Shell::GetInstance()->user_wallpaper_delegate()); | 336 Shell::GetInstance()->user_wallpaper_delegate()); |
| 323 wallpaper_controller_bindings_.AddBinding(wallpaper_controller, | 337 wallpaper_controller_bindings_.AddBinding(wallpaper_controller, |
| 324 std::move(request)); | 338 std::move(request)); |
| 325 } | 339 } |
| 326 | 340 |
| 327 } // namespace sysui | 341 } // namespace sysui |
| 328 } // namespace ash | 342 } // namespace ash |
| OLD | NEW |