1// Copyright (c) 2012 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_model.h"
6
7#include "base/logging.h"
8#include "ui/app_list/app_list_item_model_observer.h"
9
10namespace app_list {
11
12AppListItemModel::AppListItemModel()
13    : highlighted_(false),
14      is_installing_(false),
15      percent_downloaded_(-1) {
16}
17
18AppListItemModel::~AppListItemModel() {
19}
20
21void AppListItemModel::SetIcon(const gfx::ImageSkia& icon, bool has_shadow) {
22  icon_ = icon;
23  has_shadow_ = has_shadow;
24  FOR_EACH_OBSERVER(AppListItemModelObserver, observers_, ItemIconChanged());
25}
26
27void AppListItemModel::SetTitle(const std::string& title) {
28  if (title_ == title)
29    return;
30
31  title_ = title;
32  FOR_EACH_OBSERVER(AppListItemModelObserver, observers_, ItemTitleChanged());
33}
34
35void AppListItemModel::SetHighlighted(bool highlighted) {
36  if (highlighted_ == highlighted)
37    return;
38
39  highlighted_ = highlighted;
40  FOR_EACH_OBSERVER(AppListItemModelObserver,
41                    observers_,
42                    ItemHighlightedChanged());
43}
44
45void AppListItemModel::SetIsInstalling(bool is_installing) {
46  if (is_installing_ == is_installing)
47    return;
48
49  is_installing_ = is_installing;
50  FOR_EACH_OBSERVER(AppListItemModelObserver,
51                    observers_,
52                    ItemIsInstallingChanged());
53}
54
55void AppListItemModel::SetPercentDownloaded(int percent_downloaded) {
56  if (percent_downloaded_ == percent_downloaded)
57    return;
58
59  percent_downloaded_ = percent_downloaded;
60  FOR_EACH_OBSERVER(AppListItemModelObserver,
61                    observers_,
62                    ItemPercentDownloadedChanged());
63}
64
65void AppListItemModel::AddObserver(AppListItemModelObserver* observer) {
66  observers_.AddObserver(observer);
67}
68
69void AppListItemModel::RemoveObserver(AppListItemModelObserver* observer) {
70  observers_.RemoveObserver(observer);
71}
72
73ui::MenuModel* AppListItemModel::GetContextMenuModel() {
74  return NULL;
75}
76
77}  // namespace app_list
78