[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 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_MODEL_OBSERVER_H_ | ||||
6 | #define ASH_SHELF_SHELF_MODEL_OBSERVER_H_ | ||||
7 | |||||
8 | #include "ash/ash_export.h" | ||||
[email protected] | eec097142 | 2014-02-03 23:51:27 | [diff] [blame] | 9 | #include "ash/shelf/shelf_item_types.h" |
[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 10 | |
11 | namespace ash { | ||||
12 | |||||
[email protected] | eec097142 | 2014-02-03 23:51:27 | [diff] [blame] | 13 | struct ShelfItem; |
[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 14 | |
15 | class ASH_EXPORT ShelfModelObserver { | ||||
16 | public: | ||||
17 | // Invoked after an item has been added to the model. | ||||
18 | virtual void ShelfItemAdded(int index) = 0; | ||||
19 | |||||
20 | // Invoked after an item has been removed. |index| is the index the item was | ||||
21 | // at. | ||||
[email protected] | eec097142 | 2014-02-03 23:51:27 | [diff] [blame] | 22 | virtual void ShelfItemRemoved(int index, ShelfID id) = 0; |
[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 23 | |
[email protected] | 64936bf | 2013-11-14 19:48:36 | [diff] [blame] | 24 | // Invoked after an item has been moved. See ShelfModel::Move() for details |
[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 25 | // of the arguments. |
26 | virtual void ShelfItemMoved(int start_index, int target_index) = 0; | ||||
27 | |||||
28 | // Invoked when the state of an item changes. |old_item| is the item | ||||
29 | // before the change. | ||||
[email protected] | eec097142 | 2014-02-03 23:51:27 | [diff] [blame] | 30 | virtual void ShelfItemChanged(int index, const ShelfItem& old_item) = 0; |
[email protected] | a038ebcc | 2013-11-13 00:59:19 | [diff] [blame] | 31 | |
32 | // Invoked when shelf status is changed. | ||||
33 | virtual void ShelfStatusChanged() = 0; | ||||
34 | |||||
35 | protected: | ||||
36 | virtual ~ShelfModelObserver() {} | ||||
37 | }; | ||||
38 | |||||
39 | } // namespace ash | ||||
40 | |||||
41 | #endif // ASH_SHELF_SHELF_MODEL_OBSERVER_H_ |