| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 #include "ash/common/shelf/shelf_model.h" | 5 #include "ash/common/shelf/shelf_model.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/common/shelf/shelf_model_observer.h" | 9 #include "ash/common/shelf/shelf_model_observer.h" |
| 10 | 10 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 int ShelfModel::FirstPanelIndex() const { | 151 int ShelfModel::FirstPanelIndex() const { |
| 152 ShelfItem weight_dummy; | 152 ShelfItem weight_dummy; |
| 153 weight_dummy.type = TYPE_APP_PANEL; | 153 weight_dummy.type = TYPE_APP_PANEL; |
| 154 return std::lower_bound(items_.begin(), items_.end(), weight_dummy, | 154 return std::lower_bound(items_.begin(), items_.end(), weight_dummy, |
| 155 CompareByWeight) - | 155 CompareByWeight) - |
| 156 items_.begin(); | 156 items_.begin(); |
| 157 } | 157 } |
| 158 | 158 |
| 159 void ShelfModel::SetShelfItemDelegate( | 159 void ShelfModel::SetShelfItemDelegate( |
| 160 ShelfID id, | 160 ShelfID id, |
| 161 std::unique_ptr<mojom::ShelfItemDelegate> item_delegate) { | 161 std::unique_ptr<ShelfItemDelegate> item_delegate) { |
| 162 // If another ShelfItemDelegate is already registered for |id|, we assume | 162 // If another ShelfItemDelegate is already registered for |id|, we assume |
| 163 // that this request is replacing ShelfItemDelegate for |id| with | 163 // that this request is replacing ShelfItemDelegate for |id| with |
| 164 // |item_delegate|. | 164 // |item_delegate|. |
| 165 RemoveShelfItemDelegate(id); | 165 RemoveShelfItemDelegate(id); |
| 166 | 166 |
| 167 for (auto& observer : observers_) | 167 for (auto& observer : observers_) |
| 168 observer.OnSetShelfItemDelegate(id, item_delegate.get()); | 168 observer.OnSetShelfItemDelegate(id, item_delegate.get()); |
| 169 | 169 |
| 170 id_to_item_delegate_map_[id] = std::move(item_delegate); | 170 id_to_item_delegate_map_[id] = std::move(item_delegate); |
| 171 } | 171 } |
| 172 | 172 |
| 173 mojom::ShelfItemDelegate* ShelfModel::GetShelfItemDelegate(ShelfID id) { | 173 ShelfItemDelegate* ShelfModel::GetShelfItemDelegate(ShelfID id) { |
| 174 if (id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end()) | 174 if (id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end()) |
| 175 return id_to_item_delegate_map_[id].get(); | 175 return id_to_item_delegate_map_[id].get(); |
| 176 return nullptr; | 176 return nullptr; |
| 177 } | 177 } |
| 178 | 178 |
| 179 void ShelfModel::AddObserver(ShelfModelObserver* observer) { | 179 void ShelfModel::AddObserver(ShelfModelObserver* observer) { |
| 180 observers_.AddObserver(observer); | 180 observers_.AddObserver(observer); |
| 181 } | 181 } |
| 182 | 182 |
| 183 void ShelfModel::RemoveObserver(ShelfModelObserver* observer) { | 183 void ShelfModel::RemoveObserver(ShelfModelObserver* observer) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 201 | 201 |
| 202 return index; | 202 return index; |
| 203 } | 203 } |
| 204 | 204 |
| 205 void ShelfModel::RemoveShelfItemDelegate(ShelfID id) { | 205 void ShelfModel::RemoveShelfItemDelegate(ShelfID id) { |
| 206 if (id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end()) | 206 if (id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end()) |
| 207 id_to_item_delegate_map_.erase(id); | 207 id_to_item_delegate_map_.erase(id); |
| 208 } | 208 } |
| 209 | 209 |
| 210 } // namespace ash | 210 } // namespace ash |
| OLD | NEW |