1// Copyright 2014 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#ifndef UI_APP_LIST_VIEWS_TILE_ITEM_VIEW_H_ 6#define UI_APP_LIST_VIEWS_TILE_ITEM_VIEW_H_ 7 8#include "ui/app_list/app_list_export.h" 9#include "ui/app_list/search_result_observer.h" 10#include "ui/views/controls/button/button.h" 11#include "ui/views/controls/button/custom_button.h" 12 13namespace views { 14class ImageView; 15class Label; 16} 17 18namespace app_list { 19 20class SearchResult; 21 22// The view for a tile in the app list on the start/search page. 23class APP_LIST_EXPORT TileItemView : public views::CustomButton, 24 public views::ButtonListener, 25 public SearchResultObserver { 26 public: 27 TileItemView(); 28 virtual ~TileItemView(); 29 30 void SetSearchResult(SearchResult* item); 31 32 private: 33 // Overridden from views::View: 34 virtual gfx::Size GetPreferredSize() const OVERRIDE; 35 36 // Overridden from views::ButtonListener: 37 virtual void ButtonPressed(views::Button* sender, 38 const ui::Event& event) OVERRIDE; 39 40 // Overridden from SearchResultObserver: 41 virtual void OnIconChanged() OVERRIDE; 42 virtual void OnResultDestroying() OVERRIDE; 43 44 // Owned by the model provided by the AppListViewDelegate. 45 SearchResult* item_; 46 47 views::ImageView* icon_; // Owned by views hierarchy. 48 views::Label* title_; // Owned by views hierarchy. 49 50 DISALLOW_COPY_AND_ASSIGN(TileItemView); 51}; 52 53} // namespace app_list 54 55#endif // UI_APP_LIST_VIEWS_TILE_ITEM_VIEW_H_ 56