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
3 // found in the LICENSE file.
5 #ifndef ASH_SHELF_SHELF_ITEM_TYPES_H_
6 #define ASH_SHELF_SHELF_ITEM_TYPES_H_
10 #include "ash/ash_export.h"
11 #include "base/strings/string16.h"
12 #include "ui/gfx/image/image_skia.h"
18 // The type of a shelf item.
20 // Represents a running app panel.
23 // Represents a pinned shortcut to an app.
26 // Toggles visiblity of the app list.
29 // The browser shortcut button.
30 TYPE_BROWSER_SHORTCUT
,
32 // Represents a platform app.
35 // Represents a windowed V1 browser app.
38 // Represents a dialog.
45 // Represents the status of applications in the shelf.
46 enum ShelfItemStatus
{
47 // A closed shelf item, i.e. has no live instance.
49 // A shelf item that has live instance.
51 // An active shelf item that has focus.
53 // A shelf item that needs user's attention.
57 struct ASH_EXPORT ShelfItem
{
63 // Image to display in the shelf.
66 // Assigned by the model when the item is added.
70 ShelfItemStatus status
;
73 typedef std::vector
<ShelfItem
> ShelfItems
;
75 // ShelfItemDetails may be set on Window (by way of
76 // SetShelfItemDetailsForWindow) to make the window appear in the shelf. See
77 // ShelfWindowWatcher for details.
78 struct ASH_EXPORT ShelfItemDetails
{
84 // Resource id of the image to display on the shelf.
85 int image_resource_id
;
93 #endif // ASH_SHELF_SHELF_ITEM_TYPES_H_