1// Copyright (c) 2012 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 "chrome/browser/ui/ash/launcher/launcher_item_controller.h" 6 7#include "base/basictypes.h" 8#include "base/strings/utf_string_conversions.h" 9#include "chrome/browser/extensions/extension_service.h" 10#include "chrome/browser/profiles/profile.h" 11#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" 12#include "extensions/common/extension.h" 13 14LauncherItemController::LauncherItemController( 15 Type type, 16 const std::string& app_id, 17 ChromeLauncherController* launcher_controller) 18 : type_(type), 19 app_id_(app_id), 20 shelf_id_(0), 21 launcher_controller_(launcher_controller), 22 locked_(0), 23 image_set_by_controller_(false) { 24} 25 26LauncherItemController::~LauncherItemController() { 27} 28 29const std::string& LauncherItemController::app_id() const { 30 return app_id_; 31} 32 33base::string16 LauncherItemController::GetAppTitle() const { 34 if (app_id_.empty()) 35 return base::string16(); 36 const extensions::Extension* extension = 37 launcher_controller_->profile()->GetExtensionService()-> 38 GetInstalledExtension(app_id_); 39 return extension ? base::UTF8ToUTF16(extension->name()) : base::string16(); 40} 41 42ash::ShelfItemType LauncherItemController::GetShelfItemType() const { 43 switch (type_) { 44 case LauncherItemController::TYPE_SHORTCUT: 45 case LauncherItemController::TYPE_WINDOWED_APP: 46 return ash::TYPE_APP_SHORTCUT; 47 case LauncherItemController::TYPE_APP: 48 return ash::TYPE_PLATFORM_APP; 49 case LauncherItemController::TYPE_APP_PANEL: 50 return ash::TYPE_APP_PANEL; 51 } 52 NOTREACHED(); 53 return ash::TYPE_APP_SHORTCUT; 54} 55