• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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.
4 
5 #ifndef ASH_SHELF_SHELF_DELEGATE_H_
6 #define ASH_SHELF_SHELF_DELEGATE_H_
7 
8 #include "ash/ash_export.h"
9 #include "ash/shelf/shelf_item_types.h"
10 
11 namespace ash {
12 class Shelf;
13 
14 // Delegate for the Shelf.
15 class ASH_EXPORT ShelfDelegate {
16  public:
17   // Shelf owns the delegate.
~ShelfDelegate()18   virtual ~ShelfDelegate() {}
19 
20   // Callback used to allow delegate to perform initialization actions that
21   // depend on the Shelf being in a known state.
22   virtual void OnShelfCreated(Shelf* shelf) = 0;
23 
24   // Callback used to inform the delegate that a specific shelf no longer
25   // exists.
26   virtual void OnShelfDestroyed(Shelf* shelf) = 0;
27 
28   // Get the shelf ID from an application ID.
29   virtual ShelfID GetShelfIDForAppID(const std::string& app_id) = 0;
30 
31   // Get the application ID for a given shelf ID.
32   virtual const std::string& GetAppIDForShelfID(ShelfID id) = 0;
33 
34   // Pins an app with |app_id| to shelf. A running instance will get pinned.
35   // In case there is no running instance a new shelf item is created and
36   // pinned.
37   virtual void PinAppWithID(const std::string& app_id) = 0;
38 
39   // Check if the app with |app_id_| is pinned to the shelf.
40   virtual bool IsAppPinned(const std::string& app_id) = 0;
41 
42   // Checks whether the user is allowed to pin/unpin apps. Pinning may be
43   // disallowed by policy in case there is a pre-defined set of pinned apps.
44   virtual bool CanPin() const = 0;
45 
46   // Unpins app item with |app_id|.
47   virtual void UnpinAppWithID(const std::string& app_id) = 0;
48 };
49 
50 }  // namespace ash
51 
52 #endif  // ASH_SHELF_SHELF_DELEGATE_H_
53