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 14 LauncherItemController::LauncherItemController( 15 Type type, 16 const std::string& app_id, 17 ChromeLauncherController* launcher_controller) 18 : type_(type), 19 app_id_(app_id), 20 launcher_id_(0), 21 launcher_controller_(launcher_controller), 22 locked_(0), 23 image_set_by_controller_(false) { 24 } 25 26 LauncherItemController::~LauncherItemController() { 27 } 28 29 const std::string& LauncherItemController::app_id() const { 30 return app_id_; 31 } 32 33 base::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 ? UTF8ToUTF16(extension->name()) : base::string16(); 40 } 41 42 ash::LauncherItemType LauncherItemController::GetLauncherItemType() 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