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) 76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "ui/app_list/app_list_constants.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/app_list/search_result_observer.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace app_list { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::Action(const gfx::ImageSkia& base_image, 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::ImageSkia& hover_image, 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::ImageSkia& pressed_image, 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const base::string16& tooltip_text) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : base_image(base_image), 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hover_image(hover_image), 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pressed_image(pressed_image), 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch tooltip_text(tooltip_text) {} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::Action(const base::string16& label_text, 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const base::string16& tooltip_text) 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch : tooltip_text(tooltip_text), 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch label_text(label_text) {} 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSearchResult::Action::~Action() {} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)SearchResult::SearchResult() 296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) : relevance_(0), 306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) display_type_(DISPLAY_LIST), 316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) is_installing_(false), 326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) percent_downloaded_(0) { 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)SearchResult::~SearchResult() { 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) FOR_EACH_OBSERVER(SearchResultObserver, observers_, OnResultDestroying()); 376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::SetIcon(const gfx::ImageSkia& icon) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) icon_ = icon; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOR_EACH_OBSERVER(SearchResultObserver, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) observers_, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OnIconChanged()); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetActions(const Actions& sets) { 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch actions_ = sets; 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FOR_EACH_OBSERVER(SearchResultObserver, 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch observers_, 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch OnActionsChanged()); 51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetIsInstalling(bool is_installing) { 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (is_installing_ == is_installing) 55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return; 56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch is_installing_ = is_installing; 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FOR_EACH_OBSERVER(SearchResultObserver, 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch observers_, 60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch OnIsInstallingChanged()); 61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid SearchResult::SetPercentDownloaded(int percent_downloaded) { 64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (percent_downloaded_ == percent_downloaded) 65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return; 66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch percent_downloaded_ = percent_downloaded; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOR_EACH_OBSERVER(SearchResultObserver, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) observers_, 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch OnPercentDownloadedChanged()); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 736e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)int SearchResult::GetPreferredIconDimension() const { 746e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) switch (display_type_) { 756e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) case DISPLAY_TILE: 766e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return kTileIconSize; 776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) case DISPLAY_LIST: 786e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return kListIconSize; 796e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 806e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) NOTREACHED(); 816e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return 0; 826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 836e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 84a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void SearchResult::NotifyItemInstalled() { 85ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch FOR_EACH_OBSERVER(SearchResultObserver, observers_, OnItemInstalled()); 86ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 87ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 88ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid SearchResult::NotifyItemUninstalled() { 89ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch FOR_EACH_OBSERVER(SearchResultObserver, observers_, OnItemUninstalled()); 90a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 91a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::AddObserver(SearchResultObserver* observer) { 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) observers_.AddObserver(observer); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SearchResult::RemoveObserver(SearchResultObserver* observer) { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) observers_.RemoveObserver(observer); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 100f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SearchResult::Open(int event_flags) { 101f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 102f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 103f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SearchResult::InvokeAction(int action_index, int event_flags) { 104f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 105f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 106a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)ui::MenuModel* SearchResult::GetContextMenuModel() { 107a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return NULL; 108a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 109a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace app_list 111