Chromium Code Reviews| 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 #ifndef ASH_PUBLIC_INTERFACES_SHELF_STRUCT_TRAITS_H_ | 5 #ifndef ASH_PUBLIC_CPP_SHELF_STRUCT_TRAITS_H_ |
| 6 #define ASH_PUBLIC_INTERFACES_SHELF_STRUCT_TRAITS_H_ | 6 #define ASH_PUBLIC_CPP_SHELF_STRUCT_TRAITS_H_ |
| 7 | 7 |
| 8 #include "ash/public/cpp/ash_public_export.h" | |
| 9 #include "ash/public/cpp/shelf_item.h" | |
| 8 #include "ash/public/cpp/shelf_types.h" | 10 #include "ash/public/cpp/shelf_types.h" |
| 9 #include "ash/public/interfaces/shelf.mojom.h" | 11 #include "ash/public/interfaces/shelf.mojom-shared.h" |
| 10 | 12 |
| 11 namespace mojo { | 13 namespace mojo { |
| 12 | 14 |
| 13 template <> | 15 template <> |
| 14 struct EnumTraits<ash::mojom::ShelfAction, ash::ShelfAction> { | 16 struct EnumTraits<ash::mojom::ShelfAction, ash::ShelfAction> { |
| 15 static ash::mojom::ShelfAction ToMojom(ash::ShelfAction input) { | 17 static ash::mojom::ShelfAction ToMojom(ash::ShelfAction input) { |
| 16 switch (input) { | 18 switch (input) { |
| 17 case ash::SHELF_ACTION_NONE: | 19 case ash::SHELF_ACTION_NONE: |
| 18 return ash::mojom::ShelfAction::NONE; | 20 return ash::mojom::ShelfAction::NONE; |
| 19 case ash::SHELF_ACTION_NEW_WINDOW_CREATED: | 21 case ash::SHELF_ACTION_NEW_WINDOW_CREATED: |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 119 case ash::mojom::ShelfAutoHideBehavior::HIDDEN: | 121 case ash::mojom::ShelfAutoHideBehavior::HIDDEN: |
| 120 *out = ash::SHELF_AUTO_HIDE_ALWAYS_HIDDEN; | 122 *out = ash::SHELF_AUTO_HIDE_ALWAYS_HIDDEN; |
| 121 return true; | 123 return true; |
| 122 } | 124 } |
| 123 NOTREACHED(); | 125 NOTREACHED(); |
| 124 return false; | 126 return false; |
| 125 } | 127 } |
| 126 }; | 128 }; |
| 127 | 129 |
| 128 template <> | 130 template <> |
| 131 struct EnumTraits<ash::mojom::ShelfItemStatus, ash::ShelfItemStatus> { | |
| 132 static ash::mojom::ShelfItemStatus ToMojom(ash::ShelfItemStatus input) { | |
| 133 switch (input) { | |
| 134 case ash::STATUS_CLOSED: | |
| 135 return ash::mojom::ShelfItemStatus::CLOSED; | |
| 136 case ash::STATUS_RUNNING: | |
| 137 return ash::mojom::ShelfItemStatus::RUNNING; | |
| 138 case ash::STATUS_ACTIVE: | |
| 139 return ash::mojom::ShelfItemStatus::ACTIVE; | |
| 140 case ash::STATUS_ATTENTION: | |
| 141 return ash::mojom::ShelfItemStatus::ATTENTION; | |
| 142 } | |
| 143 NOTREACHED(); | |
| 144 return ash::mojom::ShelfItemStatus::CLOSED; | |
| 145 } | |
| 146 | |
| 147 static bool FromMojom(ash::mojom::ShelfItemStatus input, | |
| 148 ash::ShelfItemStatus* out) { | |
| 149 switch (input) { | |
| 150 case ash::mojom::ShelfItemStatus::CLOSED: | |
| 151 *out = ash::STATUS_CLOSED; | |
| 152 return true; | |
| 153 case ash::mojom::ShelfItemStatus::RUNNING: | |
| 154 *out = ash::STATUS_RUNNING; | |
| 155 return true; | |
| 156 case ash::mojom::ShelfItemStatus::ACTIVE: | |
| 157 *out = ash::STATUS_ACTIVE; | |
| 158 return true; | |
| 159 case ash::mojom::ShelfItemStatus::ATTENTION: | |
| 160 *out = ash::STATUS_ATTENTION; | |
| 161 return true; | |
| 162 } | |
| 163 NOTREACHED(); | |
| 164 return false; | |
| 165 } | |
| 166 }; | |
| 167 | |
| 168 template <> | |
| 169 struct EnumTraits<ash::mojom::ShelfItemType, ash::ShelfItemType> { | |
| 170 static ash::mojom::ShelfItemType ToMojom(ash::ShelfItemType input) { | |
| 171 switch (input) { | |
| 172 case ash::TYPE_APP_PANEL: | |
| 173 return ash::mojom::ShelfItemType::PANEL; | |
| 174 case ash::TYPE_PINNED_APP: | |
| 175 return ash::mojom::ShelfItemType::PINNED_APP; | |
| 176 case ash::TYPE_APP_LIST: | |
| 177 return ash::mojom::ShelfItemType::APP_LIST; | |
| 178 case ash::TYPE_BROWSER_SHORTCUT: | |
| 179 return ash::mojom::ShelfItemType::BROWSER; | |
| 180 case ash::TYPE_APP: | |
| 181 return ash::mojom::ShelfItemType::APP; | |
| 182 case ash::TYPE_DIALOG: | |
| 183 return ash::mojom::ShelfItemType::DIALOG; | |
| 184 case ash::TYPE_UNDEFINED: | |
| 185 return ash::mojom::ShelfItemType::UNDEFINED; | |
| 186 } | |
| 187 NOTREACHED(); | |
| 188 return ash::mojom::ShelfItemType::UNDEFINED; | |
| 189 } | |
| 190 | |
| 191 static bool FromMojom(ash::mojom::ShelfItemType input, | |
| 192 ash::ShelfItemType* out) { | |
| 193 switch (input) { | |
| 194 case ash::mojom::ShelfItemType::PANEL: | |
| 195 *out = ash::TYPE_APP_PANEL; | |
| 196 return true; | |
| 197 case ash::mojom::ShelfItemType::PINNED_APP: | |
| 198 *out = ash::TYPE_PINNED_APP; | |
| 199 return true; | |
| 200 case ash::mojom::ShelfItemType::APP_LIST: | |
| 201 *out = ash::TYPE_APP_LIST; | |
| 202 return true; | |
| 203 case ash::mojom::ShelfItemType::BROWSER: | |
| 204 *out = ash::TYPE_BROWSER_SHORTCUT; | |
| 205 return true; | |
| 206 case ash::mojom::ShelfItemType::APP: | |
| 207 *out = ash::TYPE_APP; | |
| 208 return true; | |
| 209 case ash::mojom::ShelfItemType::DIALOG: | |
| 210 *out = ash::TYPE_DIALOG; | |
| 211 return true; | |
| 212 case ash::mojom::ShelfItemType::UNDEFINED: | |
| 213 *out = ash::TYPE_UNDEFINED; | |
| 214 return true; | |
| 215 } | |
| 216 NOTREACHED(); | |
| 217 return false; | |
| 218 } | |
| 219 }; | |
| 220 | |
| 221 template <> | |
| 129 struct EnumTraits<ash::mojom::ShelfLaunchSource, ash::ShelfLaunchSource> { | 222 struct EnumTraits<ash::mojom::ShelfLaunchSource, ash::ShelfLaunchSource> { |
| 130 static ash::mojom::ShelfLaunchSource ToMojom(ash::ShelfLaunchSource input) { | 223 static ash::mojom::ShelfLaunchSource ToMojom(ash::ShelfLaunchSource input) { |
| 131 switch (input) { | 224 switch (input) { |
| 132 case ash::LAUNCH_FROM_UNKNOWN: | 225 case ash::LAUNCH_FROM_UNKNOWN: |
| 133 return ash::mojom::ShelfLaunchSource::UNKNOWN; | 226 return ash::mojom::ShelfLaunchSource::UNKNOWN; |
| 134 case ash::LAUNCH_FROM_APP_LIST: | 227 case ash::LAUNCH_FROM_APP_LIST: |
| 135 return ash::mojom::ShelfLaunchSource::APP_LIST; | 228 return ash::mojom::ShelfLaunchSource::APP_LIST; |
| 136 case ash::LAUNCH_FROM_APP_LIST_SEARCH: | 229 case ash::LAUNCH_FROM_APP_LIST_SEARCH: |
| 137 return ash::mojom::ShelfLaunchSource::APP_LIST_SEARCH; | 230 return ash::mojom::ShelfLaunchSource::APP_LIST_SEARCH; |
| 138 } | 231 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 151 return true; | 244 return true; |
| 152 case ash::mojom::ShelfLaunchSource::APP_LIST_SEARCH: | 245 case ash::mojom::ShelfLaunchSource::APP_LIST_SEARCH: |
| 153 *out = ash::LAUNCH_FROM_APP_LIST_SEARCH; | 246 *out = ash::LAUNCH_FROM_APP_LIST_SEARCH; |
| 154 return true; | 247 return true; |
| 155 } | 248 } |
| 156 NOTREACHED(); | 249 NOTREACHED(); |
| 157 return false; | 250 return false; |
| 158 } | 251 } |
| 159 }; | 252 }; |
| 160 | 253 |
| 254 template <> | |
| 255 struct ASH_PUBLIC_EXPORT | |
| 256 StructTraits<ash::mojom::ShelfItemDataView, ash::ShelfItem> { | |
| 257 static ash::ShelfItemType type(const ash::ShelfItem& i) { return i.type; } | |
| 258 static const SkBitmap& image(const ash::ShelfItem& i); | |
| 259 static int64_t shelf_id(const ash::ShelfItem& i) { return i.id; } | |
|
James Cook
2017/03/17 02:32:29
Wait, should this be uint32_t ? Or ShelfID?
msw
2017/03/17 05:35:19
Good catch! Changed to ShelfID.
| |
| 260 static ash::ShelfItemStatus status(const ash::ShelfItem& i) { | |
| 261 return i.status; | |
| 262 } | |
| 263 static const std::string& app_id(const ash::ShelfItem& i) { return i.app_id; } | |
| 264 static const base::string16& title(const ash::ShelfItem& i) { | |
| 265 return i.title; | |
| 266 } | |
| 267 static bool shows_tooltip(const ash::ShelfItem& i) { return i.shows_tooltip; } | |
| 268 static bool pinned_by_policy(const ash::ShelfItem& i) { | |
| 269 return i.pinned_by_policy; | |
| 270 } | |
| 271 | |
| 272 static bool Read(ash::mojom::ShelfItemDataView data, ash::ShelfItem* out); | |
| 273 }; | |
| 274 | |
| 161 } // namespace mojo | 275 } // namespace mojo |
| 162 | 276 |
| 163 #endif // ASH_PUBLIC_INTERFACES_SHELF_STRUCT_TRAITS_H_ | 277 #endif // ASH_PUBLIC_CPP_SHELF_STRUCT_TRAITS_H_ |
| OLD | NEW |