OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #ifndef UI_APP_LIST_APP_LIST_ITEM_LIST_H_ | 5 #ifndef UI_APP_LIST_APP_LIST_ITEM_LIST_H_ |
6 #define UI_APP_LIST_APP_LIST_ITEM_LIST_H_ | 6 #define UI_APP_LIST_APP_LIST_ITEM_LIST_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
| 10 #include <memory> |
10 #include <string> | 11 #include <string> |
11 | 12 |
12 #include "base/macros.h" | 13 #include "base/macros.h" |
13 #include "base/memory/scoped_ptr.h" | |
14 #include "base/memory/scoped_vector.h" | 14 #include "base/memory/scoped_vector.h" |
15 #include "base/observer_list.h" | 15 #include "base/observer_list.h" |
16 #include "sync/api/string_ordinal.h" | 16 #include "sync/api/string_ordinal.h" |
17 #include "ui/app_list/app_list_export.h" | 17 #include "ui/app_list/app_list_export.h" |
18 #include "ui/app_list/app_list_item_list_observer.h" | 18 #include "ui/app_list/app_list_item_list_observer.h" |
19 | 19 |
20 namespace app_list { | 20 namespace app_list { |
21 | 21 |
22 class AppListItem; | 22 class AppListItem; |
23 | 23 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 friend class AppListModel; | 70 friend class AppListModel; |
71 | 71 |
72 // Returns a unique, valid StringOrdinal immediately before |position| or at | 72 // Returns a unique, valid StringOrdinal immediately before |position| or at |
73 // the end of the list if |position| is invalid. | 73 // the end of the list if |position| is invalid. |
74 syncer::StringOrdinal CreatePositionBefore( | 74 syncer::StringOrdinal CreatePositionBefore( |
75 const syncer::StringOrdinal& position); | 75 const syncer::StringOrdinal& position); |
76 | 76 |
77 // Adds |item| to the end of |app_list_items_|. Takes ownership of |item|. | 77 // Adds |item| to the end of |app_list_items_|. Takes ownership of |item|. |
78 // Triggers observers_.OnListItemAdded(). Returns a pointer to the added item | 78 // Triggers observers_.OnListItemAdded(). Returns a pointer to the added item |
79 // that is safe to use (e.g. after releasing a scoped ptr). | 79 // that is safe to use (e.g. after releasing a scoped ptr). |
80 AppListItem* AddItem(scoped_ptr<AppListItem> item_ptr); | 80 AppListItem* AddItem(std::unique_ptr<AppListItem> item_ptr); |
81 | 81 |
82 // Finds item matching |id| in |app_list_items_| (linear search) and deletes | 82 // Finds item matching |id| in |app_list_items_| (linear search) and deletes |
83 // it. Triggers observers_.OnListItemRemoved() after removing the item from | 83 // it. Triggers observers_.OnListItemRemoved() after removing the item from |
84 // the list and before deleting it. | 84 // the list and before deleting it. |
85 void DeleteItem(const std::string& id); | 85 void DeleteItem(const std::string& id); |
86 | 86 |
87 // Removes the item with matching |id| in |app_list_items_| without deleting | 87 // Removes the item with matching |id| in |app_list_items_| without deleting |
88 // it. Returns a scoped pointer containing the removed item. | 88 // it. Returns a scoped pointer containing the removed item. |
89 scoped_ptr<AppListItem> RemoveItem(const std::string& id); | 89 std::unique_ptr<AppListItem> RemoveItem(const std::string& id); |
90 | 90 |
91 // Removes the item at |index| from |app_list_items_| without deleting it. | 91 // Removes the item at |index| from |app_list_items_| without deleting it. |
92 // Returns a scoped pointer containing the removed item. | 92 // Returns a scoped pointer containing the removed item. |
93 scoped_ptr<AppListItem> RemoveItemAt(size_t index); | 93 std::unique_ptr<AppListItem> RemoveItemAt(size_t index); |
94 | 94 |
95 // Deletes item at |index| and signals observers. | 95 // Deletes item at |index| and signals observers. |
96 void DeleteItemAt(size_t index); | 96 void DeleteItemAt(size_t index); |
97 | 97 |
98 // If |item|->position() is not a valid ordinal, sets |item|->position() | 98 // If |item|->position() is not a valid ordinal, sets |item|->position() |
99 // to a valid ordinal after the last item in the list. | 99 // to a valid ordinal after the last item in the list. |
100 void EnsureValidItemPosition(AppListItem* item); | 100 void EnsureValidItemPosition(AppListItem* item); |
101 | 101 |
102 // Returns the index at which to insert an item in |app_list_items_| based on | 102 // Returns the index at which to insert an item in |app_list_items_| based on |
103 // |position| (which must be valid) and |id| (if the positions are equal). | 103 // |position| (which must be valid) and |id| (if the positions are equal). |
104 size_t GetItemSortOrderIndex(const syncer::StringOrdinal& position, | 104 size_t GetItemSortOrderIndex(const syncer::StringOrdinal& position, |
105 const std::string& id); | 105 const std::string& id); |
106 | 106 |
107 // Fixes the position of the item at |index| when the position matches the | 107 // Fixes the position of the item at |index| when the position matches the |
108 // previous item's position. |index| must be > 0. | 108 // previous item's position. |index| must be > 0. |
109 void FixItemPosition(size_t index); | 109 void FixItemPosition(size_t index); |
110 | 110 |
111 ScopedVector<AppListItem> app_list_items_; | 111 ScopedVector<AppListItem> app_list_items_; |
112 base::ObserverList<AppListItemListObserver, true> observers_; | 112 base::ObserverList<AppListItemListObserver, true> observers_; |
113 std::string highlighted_id_; | 113 std::string highlighted_id_; |
114 | 114 |
115 DISALLOW_COPY_AND_ASSIGN(AppListItemList); | 115 DISALLOW_COPY_AND_ASSIGN(AppListItemList); |
116 }; | 116 }; |
117 | 117 |
118 } // namespace app_list | 118 } // namespace app_list |
119 | 119 |
120 #endif // UI_APP_LIST_APP_LIST_ITEM_LIST_H_ | 120 #endif // UI_APP_LIST_APP_LIST_ITEM_LIST_H_ |
OLD | NEW |