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