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.
5 #include "ui/app_list/app_list_item.h"
7 #include "base/logging.h"
8 #include "ui/app_list/app_list_item_observer.h"
12 AppListItem::AppListItem(const std::string
& id
)
16 is_installing_(false),
17 percent_downloaded_(-1) {
20 AppListItem::~AppListItem() {
21 FOR_EACH_OBSERVER(AppListItemObserver
, observers_
, ItemBeingDestroyed());
24 void AppListItem::SetIcon(const gfx::ImageSkia
& icon
, bool has_shadow
) {
26 has_shadow_
= has_shadow
;
27 FOR_EACH_OBSERVER(AppListItemObserver
, observers_
, ItemIconChanged());
30 void AppListItem::SetIsInstalling(bool is_installing
) {
31 if (is_installing_
== is_installing
)
34 is_installing_
= is_installing
;
35 FOR_EACH_OBSERVER(AppListItemObserver
,
37 ItemIsInstallingChanged());
40 void AppListItem::SetPercentDownloaded(int percent_downloaded
) {
41 if (percent_downloaded_
== percent_downloaded
)
44 percent_downloaded_
= percent_downloaded
;
45 FOR_EACH_OBSERVER(AppListItemObserver
,
47 ItemPercentDownloadedChanged());
50 void AppListItem::AddObserver(AppListItemObserver
* observer
) {
51 observers_
.AddObserver(observer
);
54 void AppListItem::RemoveObserver(AppListItemObserver
* observer
) {
55 observers_
.RemoveObserver(observer
);
58 void AppListItem::Activate(int event_flags
) {
61 const char* AppListItem::GetItemType() const {
62 static const char* app_type
= "";
66 ui::MenuModel
* AppListItem::GetContextMenuModel() {
70 AppListItem
* AppListItem::FindChildItem(const std::string
& id
) {
74 size_t AppListItem::ChildItemCount() const {
78 void AppListItem::OnExtensionPreferenceChanged() {}
80 bool AppListItem::CompareForTest(const AppListItem
* other
) const {
81 return id_
== other
->id_
&&
82 folder_id_
== other
->folder_id_
&&
83 name_
== other
->name_
&&
84 short_name_
== other
->short_name_
&&
85 GetItemType() == other
->GetItemType() &&
86 position_
.Equals(other
->position_
);
89 std::string
AppListItem::ToDebugString() const {
90 return id_
.substr(0, 8) + " '" + name_
+ "'"
91 + " [" + position_
.ToDebugString() + "]";
96 void AppListItem::SetName(const std::string
& name
) {
97 if (name_
== name
&& (short_name_
.empty() || short_name_
== name
))
101 FOR_EACH_OBSERVER(AppListItemObserver
, observers_
, ItemNameChanged());
104 void AppListItem::SetNameAndShortName(const std::string
& name
,
105 const std::string
& short_name
) {
106 if (name_
== name
&& short_name_
== short_name
)
109 short_name_
= short_name
;
110 FOR_EACH_OBSERVER(AppListItemObserver
, observers_
, ItemNameChanged());
113 } // namespace app_list