• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "ui/app_list/app_list_item.h"
6 
7 #include "base/logging.h"
8 #include "ui/app_list/app_list_item_observer.h"
9 
10 namespace app_list {
11 
AppListItem(const std::string & id)12 AppListItem::AppListItem(const std::string& id)
13     : id_(id),
14       has_shadow_(false),
15       highlighted_(false),
16       is_installing_(false),
17       percent_downloaded_(-1) {
18 }
19 
~AppListItem()20 AppListItem::~AppListItem() {
21   FOR_EACH_OBSERVER(AppListItemObserver, observers_, ItemBeingDestroyed());
22 }
23 
SetIcon(const gfx::ImageSkia & icon,bool has_shadow)24 void AppListItem::SetIcon(const gfx::ImageSkia& icon, bool has_shadow) {
25   icon_ = icon;
26   has_shadow_ = has_shadow;
27   FOR_EACH_OBSERVER(AppListItemObserver, observers_, ItemIconChanged());
28 }
29 
SetHighlighted(bool highlighted)30 void AppListItem::SetHighlighted(bool highlighted) {
31   if (highlighted_ == highlighted)
32     return;
33 
34   highlighted_ = highlighted;
35   FOR_EACH_OBSERVER(AppListItemObserver,
36                     observers_,
37                     ItemHighlightedChanged());
38 }
39 
SetIsInstalling(bool is_installing)40 void AppListItem::SetIsInstalling(bool is_installing) {
41   if (is_installing_ == is_installing)
42     return;
43 
44   is_installing_ = is_installing;
45   FOR_EACH_OBSERVER(AppListItemObserver,
46                     observers_,
47                     ItemIsInstallingChanged());
48 }
49 
SetPercentDownloaded(int percent_downloaded)50 void AppListItem::SetPercentDownloaded(int percent_downloaded) {
51   if (percent_downloaded_ == percent_downloaded)
52     return;
53 
54   percent_downloaded_ = percent_downloaded;
55   FOR_EACH_OBSERVER(AppListItemObserver,
56                     observers_,
57                     ItemPercentDownloadedChanged());
58 }
59 
AddObserver(AppListItemObserver * observer)60 void AppListItem::AddObserver(AppListItemObserver* observer) {
61   observers_.AddObserver(observer);
62 }
63 
RemoveObserver(AppListItemObserver * observer)64 void AppListItem::RemoveObserver(AppListItemObserver* observer) {
65   observers_.RemoveObserver(observer);
66 }
67 
Activate(int event_flags)68 void AppListItem::Activate(int event_flags) {
69 }
70 
GetItemType() const71 const char* AppListItem::GetItemType() const {
72   static const char* app_type = "";
73   return app_type;
74 }
75 
GetContextMenuModel()76 ui::MenuModel* AppListItem::GetContextMenuModel() {
77   return NULL;
78 }
79 
FindChildItem(const std::string & id)80 AppListItem* AppListItem::FindChildItem(const std::string& id) {
81   return NULL;
82 }
83 
ChildItemCount() const84 size_t AppListItem::ChildItemCount() const {
85   return 0;
86 }
87 
OnExtensionPreferenceChanged()88 void AppListItem::OnExtensionPreferenceChanged() {}
89 
CompareForTest(const AppListItem * other) const90 bool AppListItem::CompareForTest(const AppListItem* other) const {
91   return id_ == other->id_ &&
92       folder_id_ == other->folder_id_ &&
93       name_ == other->name_ &&
94       short_name_ == other->short_name_ &&
95       GetItemType() == other->GetItemType() &&
96       position_.Equals(other->position_);
97 }
98 
ToDebugString() const99 std::string AppListItem::ToDebugString() const {
100   return id_.substr(0, 8) + " '" + name_ + "'"
101       + " [" + position_.ToDebugString() + "]";
102 }
103 
104 // Protected methods
105 
SetName(const std::string & name)106 void AppListItem::SetName(const std::string& name) {
107   if (name_ == name && (short_name_.empty() || short_name_ == name))
108     return;
109   name_ = name;
110   short_name_.clear();
111   FOR_EACH_OBSERVER(AppListItemObserver, observers_, ItemNameChanged());
112 }
113 
SetNameAndShortName(const std::string & name,const std::string & short_name)114 void AppListItem::SetNameAndShortName(const std::string& name,
115                                       const std::string& short_name) {
116   if (name_ == name && short_name_ == short_name)
117     return;
118   name_ = name;
119   short_name_ = short_name;
120   FOR_EACH_OBSERVER(AppListItemObserver, observers_, ItemNameChanged());
121 }
122 
123 }  // namespace app_list
124