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 module mash.shelf.mojom; | 5 module mash.shelf.mojom; |
6 | 6 |
7 import "mash/shelf/public/interfaces/shelf_constants.mojom"; | 7 import "mash/shelf/public/interfaces/shelf_constants.mojom"; |
8 import "skia/public/interfaces/bitmap.mojom"; | 8 import "skia/public/interfaces/bitmap.mojom"; |
9 | 9 |
10 // TODO(msw): Add support for multiple displays (with unified and multi-shelf). | 10 // TODO(msw): Add support for multiple displays (with unified and multi-shelf). |
11 | 11 |
12 // The Shelf controller allows clients (eg. Chrome) to control the mash shelf. | 12 // The Shelf controller allows clients (eg. Chrome) to control the mash shelf. |
13 interface ShelfController { | 13 interface ShelfController { |
14 AddObserver(associated ShelfObserver observer); | 14 AddObserver(associated ShelfObserver observer); |
15 | 15 |
16 SetAlignment(Alignment alignment); | 16 SetAlignment(Alignment alignment); |
17 SetAutoHideBehavior(AutoHideBehavior auto_hide); | 17 SetAutoHideBehavior(AutoHideBehavior auto_hide); |
18 | 18 |
19 AddItem(ShelfItem item, associated ShelfItemDelegate delegate); | 19 PinItem(ShelfItem item, associated ShelfItemDelegate delegate); |
20 RemoveItem(string id); | 20 UnpinItem(string app_id); |
21 }; | 21 }; |
22 | 22 |
23 // ShelfObserver is notified on shelf changes; used to persist profile settings. | 23 // ShelfObserver is notified on shelf changes; used to persist profile settings. |
24 interface ShelfObserver { | 24 interface ShelfObserver { |
25 OnAlignmentChanged(Alignment alignment); | 25 OnAlignmentChanged(Alignment alignment); |
26 OnAutoHideBehaviorChanged(AutoHideBehavior auto_hide); | 26 OnAutoHideBehaviorChanged(AutoHideBehavior auto_hide); |
27 }; | 27 }; |
28 | 28 |
29 // ShelfItemDelegate handles command execution and observes shelf item changes. | 29 // ShelfItemDelegate handles command execution and observes shelf item changes. |
30 interface ShelfItemDelegate { | 30 interface ShelfItemDelegate { |
(...skipping 17 matching lines...) Expand all Loading... |
48 uint32 command_id; | 48 uint32 command_id; |
49 string? label; | 49 string? label; |
50 array<ContextMenuItem>? submenu; | 50 array<ContextMenuItem>? submenu; |
51 bool enabled; | 51 bool enabled; |
52 bool checked; | 52 bool checked; |
53 uint32 radio_group_id; | 53 uint32 radio_group_id; |
54 }; | 54 }; |
55 | 55 |
56 // ShelfItem contains the basic fields needed to pin shortcut items. | 56 // ShelfItem contains the basic fields needed to pin shortcut items. |
57 struct ShelfItem { | 57 struct ShelfItem { |
58 // An id, used to correlate windows and shortcuts (eg. 'exe:chrome'). | 58 // An app id, used to correlate windows and shortcuts (eg. 'mojo:foo'). |
59 string id; | 59 string app_id; |
60 | 60 |
61 // A title, used for tooltips, etc. (eg. 'Chrome'). | 61 // A app title, used for tooltips, etc. (eg. 'Foo Application'). |
62 string title; | 62 string app_title; |
63 | 63 |
64 // An icon image Bitmap, shown on the shelf. | 64 // An icon image Bitmap, shown on the shelf. |
65 skia.mojom.Bitmap image; | 65 skia.mojom.Bitmap image; |
66 | 66 |
67 // Additional context menu items (eg. 'New Incognito Window'). | 67 // Additional context menu items (eg. 'New Incognito Window'). |
68 array<ContextMenuItem>? context_menu_items; | 68 array<ContextMenuItem>? context_menu_items; |
69 }; | 69 }; |
OLD | NEW |