Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ash / shelf / shelf_delegate.h
blob4900bd066a488dbd0284b4952668c4263f93fbb5
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.
5 #ifndef ASH_SHELF_SHELF_DELEGATE_H_
6 #define ASH_SHELF_SHELF_DELEGATE_H_
8 #include "ash/ash_export.h"
9 #include "ash/shelf/shelf_item_types.h"
11 namespace ash {
12 class Shelf;
14 // Delegate for the Shelf.
15 class ASH_EXPORT ShelfDelegate {
16 public:
17 // Shelf owns the delegate.
18 virtual ~ShelfDelegate() {}
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;
24 // Callback used to inform the delegate that a specific shelf no longer
25 // exists.
26 virtual void OnShelfDestroyed(Shelf* shelf) = 0;
28 // Get the shelf ID from an application ID.
29 virtual ShelfID GetShelfIDForAppID(const std::string& app_id) = 0;
31 // Get the application ID for a given shelf ID.
32 virtual const std::string& GetAppIDForShelfID(ShelfID id) = 0;
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;
39 // Check if the app with |app_id_| is pinned to the shelf.
40 virtual bool IsAppPinned(const std::string& app_id) = 0;
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;
46 // Unpins app item with |app_id|.
47 virtual void UnpinAppWithID(const std::string& app_id) = 0;
50 } // namespace ash
52 #endif // ASH_SHELF_SHELF_DELEGATE_H_