15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/app_list/search_result.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/app_list/search_result_observer.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace app_list {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::Action(const gfx::ImageSkia& base_image,
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                             const gfx::ImageSkia& hover_image,
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                             const gfx::ImageSkia& pressed_image,
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                             const base::string16& tooltip_text)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : base_image(base_image),
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      hover_image(hover_image),
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pressed_image(pressed_image),
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      tooltip_text(tooltip_text) {}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::Action(const base::string16& label_text,
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                             const base::string16& tooltip_text)
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    : tooltip_text(tooltip_text),
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      label_text(label_text) {}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::~Action() {}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::SearchResult() : is_installing_(false), percent_downloaded_(0) {}
28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::~SearchResult() {}
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::SetIcon(const gfx::ImageSkia& icon) {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  icon_ = icon;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FOR_EACH_OBSERVER(SearchResultObserver,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    observers_,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    OnIconChanged());
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetActions(const Actions& sets) {
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  actions_ = sets;
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  FOR_EACH_OBSERVER(SearchResultObserver,
41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                    observers_,
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                    OnActionsChanged());
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetIsInstalling(bool is_installing) {
46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (is_installing_ == is_installing)
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return;
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  is_installing_ = is_installing;
50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  FOR_EACH_OBSERVER(SearchResultObserver,
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                    observers_,
52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                    OnIsInstallingChanged());
53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetPercentDownloaded(int percent_downloaded) {
56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (percent_downloaded_ == percent_downloaded)
57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return;
58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  percent_downloaded_ = percent_downloaded;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FOR_EACH_OBSERVER(SearchResultObserver,
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    observers_,
62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                    OnPercentDownloadedChanged());
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void SearchResult::NotifyItemInstalled() {
66ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  FOR_EACH_OBSERVER(SearchResultObserver, observers_, OnItemInstalled());
67ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
68ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
69ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid SearchResult::NotifyItemUninstalled() {
70ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  FOR_EACH_OBSERVER(SearchResultObserver, observers_, OnItemUninstalled());
71a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
72a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::AddObserver(SearchResultObserver* observer) {
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  observers_.AddObserver(observer);
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::RemoveObserver(SearchResultObserver* observer) {
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  observers_.RemoveObserver(observer);
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
81a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)ui::MenuModel* SearchResult::GetContextMenuModel() {
82a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  return NULL;
83a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}
84a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace app_list
86