Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1067)

Side by Side Diff: ui/aura_shell/launcher/launcher_model.cc

Issue 8247012: Positions the launcher in the bottom left corner. Adds ShellDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix TestDesktopDelegate Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // static
12 LauncherModel* LauncherModel::instance_ = NULL;
13
14 LauncherModel::LauncherModel() {
15 instance_ = this;
13 } 16 }
14 17
15 LauncherModel::~LauncherModel() { 18 LauncherModel::~LauncherModel() {
16 for (Items::iterator i = items_.begin(); i != items_.end(); ++i) { 19 if (instance_ == this)
17 delete i->view; 20 instance_ = NULL;
18 i->view = NULL;
19 }
20 } 21 }
21 22
22 void LauncherModel::AddItem(views::View* view, int index, bool draggable) { 23 void LauncherModel::Add(int index, const LauncherItem& item) {
23 DCHECK(index >= 0 && index <= item_count()); 24 DCHECK(index >= 0 && index <= item_count());
24 Item item;
25 item.view = view;
26 item.draggable = draggable;
27 items_.insert(items_.begin() + index, item); 25 items_.insert(items_.begin() + index, item);
28 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, 26 FOR_EACH_OBSERVER(LauncherModelObserver, observers_,
29 LauncherItemAdded(index)); 27 LauncherItemAdded(index));
30 } 28 }
31 29
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) { 30 void LauncherModel::RemoveItemAt(int index) {
39 DCHECK(index >= 0 && index < item_count()); 31 DCHECK(index >= 0 && index < item_count());
40 items_.erase(items_.begin() + index); 32 items_.erase(items_.begin() + index);
41 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, 33 FOR_EACH_OBSERVER(LauncherModelObserver, observers_,
42 LauncherItemRemoved(index)); 34 LauncherItemRemoved(index));
43 } 35 }
44 36
45 void LauncherModel::SetSelectedIndex(int index) { 37 void LauncherModel::SetTabbedImages(int index,
46 if (index == selected_index_) 38 const LauncherTabbedImages& images) {
47 return; 39 DCHECK(index >= 0 && index < item_count());
48 DCHECK(selected_index_ == -1 || 40 DCHECK_EQ(TYPE_TABBED, items_[index].type);
49 (selected_index_ >= 0 && selected_index_ < item_count())); 41 items_[index].tab_images = images;
50 selected_index_ = index;
51 FOR_EACH_OBSERVER(LauncherModelObserver, observers_, 42 FOR_EACH_OBSERVER(LauncherModelObserver, observers_,
52 LauncherSelectionChanged()); 43 LauncherItemImagesChanged(index));
53 } 44 }
54 45
55 int LauncherModel::IndexOfItemByView(views::View* view) { 46 void LauncherModel::SetAppImage(int index, const SkBitmap& image) {
56 for (Items::const_iterator i = items_.begin(); i != items_.end(); ++i) { 47 DCHECK(index >= 0 && index < item_count());
57 if (i->view == view) 48 DCHECK_EQ(TYPE_APP, items_[index].type);
58 return i - items_.begin(); 49 items_[index].app_image = image;
59 } 50 FOR_EACH_OBSERVER(LauncherModelObserver, observers_,
60 return -1; 51 LauncherItemImagesChanged(index));
61 } 52 }
62 53
63 void LauncherModel::AddObserver(LauncherModelObserver* observer) { 54 void LauncherModel::AddObserver(LauncherModelObserver* observer) {
64 observers_.AddObserver(observer); 55 observers_.AddObserver(observer);
65 } 56 }
66 57
67 void LauncherModel::RemoveObserver(LauncherModelObserver* observer) { 58 void LauncherModel::RemoveObserver(LauncherModelObserver* observer) {
68 observers_.RemoveObserver(observer); 59 observers_.RemoveObserver(observer);
69 } 60 }
70 61
71 } // namespace aura_shell 62 } // namespace aura_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698