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