| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ui/aura_shell/launcher/launcher_model.h" | 5 #include "ui/aura_shell/launcher/launcher_model.h" |
| 6 | 6 |
| 7 #include "ui/aura_shell/launcher/launcher_model_observer.h" | 7 #include "ui/aura_shell/launcher/launcher_model_observer.h" |
| 8 #include "views/view.h" | |
| 9 | 8 |
| 10 namespace aura_shell { | 9 namespace aura_shell { |
| 11 | 10 |
| 12 LauncherModel::LauncherModel() : selected_index_(-1) { | 11 LauncherModel::LauncherModel() { |
| 13 } | 12 } |
| 14 | 13 |
| 15 LauncherModel::~LauncherModel() { | 14 LauncherModel::~LauncherModel() { |
| 16 for (Items::iterator i = items_.begin(); i != items_.end(); ++i) { | |
| 17 delete i->view; | |
| 18 i->view = NULL; | |
| 19 } | |
| 20 } | 15 } |
| 21 | 16 |
| 22 void LauncherModel::AddItem(views::View* view, int index, bool draggable) { | 17 void LauncherModel::Add(int index, const LauncherItem& item) { |
| 23 DCHECK(index >= 0 && index <= item_count()); | 18 DCHECK(index >= 0 && index <= item_count()); |
| 24 Item item; | |
| 25 item.view = view; | |
| 26 item.draggable = draggable; | |
| 27 items_.insert(items_.begin() + index, item); | 19 items_.insert(items_.begin() + index, item); |
| 28 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, | 20 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, |
| 29 LauncherItemAdded(index)); | 21 LauncherItemAdded(index)); |
| 30 } | 22 } |
| 31 | 23 |
| 32 void LauncherModel::RemoveItem(views::View* view) { | |
| 33 int index = IndexOfItemByView(view); | |
| 34 if (index != -1) | |
| 35 RemoveItemAt(index); | |
| 36 } | |
| 37 | |
| 38 void LauncherModel::RemoveItemAt(int index) { | 24 void LauncherModel::RemoveItemAt(int index) { |
| 39 DCHECK(index >= 0 && index < item_count()); | 25 DCHECK(index >= 0 && index < item_count()); |
| 40 items_.erase(items_.begin() + index); | 26 items_.erase(items_.begin() + index); |
| 41 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, | 27 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, |
| 42 LauncherItemRemoved(index)); | 28 LauncherItemRemoved(index)); |
| 43 } | 29 } |
| 44 | 30 |
| 45 void LauncherModel::SetSelectedIndex(int index) { | 31 void LauncherModel::SetTabbedImages(int index, |
| 46 if (index == selected_index_) | 32 const LauncherTabbedImages& images) { |
| 47 return; | 33 DCHECK(index >= 0 && index < item_count()); |
| 48 DCHECK(selected_index_ == -1 || | 34 DCHECK_EQ(TYPE_TABBED, items_[index].type); |
| 49 (selected_index_ >= 0 && selected_index_ < item_count())); | 35 items_[index].tab_images = images; |
| 50 selected_index_ = index; | |
| 51 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, | 36 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, |
| 52 LauncherSelectionChanged()); | 37 LauncherItemImagesChanged(index)); |
| 53 } | 38 } |
| 54 | 39 |
| 55 int LauncherModel::IndexOfItemByView(views::View* view) { | 40 void LauncherModel::SetAppImage(int index, const SkBitmap& image) { |
| 56 for (Items::const_iterator i = items_.begin(); i != items_.end(); ++i) { | 41 DCHECK(index >= 0 && index < item_count()); |
| 57 if (i->view == view) | 42 DCHECK_EQ(TYPE_APP, items_[index].type); |
| 58 return i - items_.begin(); | 43 items_[index].app_image = image; |
| 59 } | 44 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, |
| 60 return -1; | 45 LauncherItemImagesChanged(index)); |
| 61 } | 46 } |
| 62 | 47 |
| 63 void LauncherModel::AddObserver(LauncherModelObserver* observer) { | 48 void LauncherModel::AddObserver(LauncherModelObserver* observer) { |
| 64 observers_.AddObserver(observer); | 49 observers_.AddObserver(observer); |
| 65 } | 50 } |
| 66 | 51 |
| 67 void LauncherModel::RemoveObserver(LauncherModelObserver* observer) { | 52 void LauncherModel::RemoveObserver(LauncherModelObserver* observer) { |
| 68 observers_.RemoveObserver(observer); | 53 observers_.RemoveObserver(observer); |
| 69 } | 54 } |
| 70 | 55 |
| 71 } // namespace aura_shell | 56 } // namespace aura_shell |
| OLD | NEW |