1// Copyright 2013 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 "ash/shelf/app_list_shelf_item_delegate.h" 6 7#include "ash/shelf/shelf_model.h" 8#include "ash/shell.h" 9#include "ash/shell_delegate.h" 10#include "grit/ash_strings.h" 11#include "ui/base/l10n/l10n_util.h" 12 13namespace ash { 14 15AppListShelfItemDelegate::AppListShelfItemDelegate() { 16 ShelfItem app_list; 17 app_list.type = TYPE_APP_LIST; 18 Shell::GetInstance()->shelf_model()->Add(app_list); 19} 20 21AppListShelfItemDelegate::~AppListShelfItemDelegate() { 22 // ShelfItemDelegateManager owns and destroys this class. 23} 24 25bool AppListShelfItemDelegate::ItemSelected(const ui::Event& event) { 26 // Pass NULL here to show the app list in the currently active RootWindow. 27 Shell::GetInstance()->ToggleAppList(NULL); 28 return false; 29} 30 31base::string16 AppListShelfItemDelegate::GetTitle() { 32 ShelfModel* model = Shell::GetInstance()->shelf_model(); 33 DCHECK(model); 34 return model->status() == ShelfModel::STATUS_LOADING ? 35 l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_SYNCING_TITLE) : 36 l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_TITLE); 37} 38 39ui::MenuModel* AppListShelfItemDelegate::CreateContextMenu( 40 aura::Window* root_window) { 41 return Shell::GetInstance()->delegate()->CreateContextMenu(root_window, 42 NULL, 43 NULL); 44} 45 46ShelfMenuModel* AppListShelfItemDelegate::CreateApplicationMenu( 47 int event_flags) { 48 // AppList does not show an application menu. 49 return NULL; 50} 51 52bool AppListShelfItemDelegate::IsDraggable() { 53 return false; 54} 55 56bool AppListShelfItemDelegate::ShouldShowTooltip() { 57 return true; 58} 59 60void AppListShelfItemDelegate::Close() { 61} 62 63} // namespace ash 64