18ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org// Copyright (c) 2012 The Chromium Authors. All rights reserved. 28ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org// Use of this source code is governed by a BSD-style license that can be 38ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org// found in the LICENSE file. 48ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 58ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "chrome/browser/ui/ash/launcher/launcher_item_controller.h" 68ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 78ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "base/basictypes.h" 88ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "base/strings/utf_string_conversions.h" 98ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "chrome/browser/profiles/profile.h" 108ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" 118ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "extensions/browser/extension_registry.h" 128ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org#include "extensions/common/extension.h" 138ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 148ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.orgLauncherItemController::LauncherItemController( 158ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org Type type, 168ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org const std::string& app_id, 178ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org ChromeLauncherController* launcher_controller) 188ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org : type_(type), 198ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org app_id_(app_id), 208ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org shelf_id_(0), 218ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org launcher_controller_(launcher_controller), 228ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org locked_(0), 238ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org image_set_by_controller_(false) { 248ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org} 258ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 268ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.orgLauncherItemController::~LauncherItemController() { 278ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org} 288ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 298ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.orgconst std::string& LauncherItemController::app_id() const { 308ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return app_id_; 318ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org} 328ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 338ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.orgbase::string16 LauncherItemController::GetAppTitle() const { 348ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org base::string16 title; 358ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org if (app_id_.empty()) 368ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return title; 378ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 388ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org const extensions::Extension* extension = 398ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org extensions::ExtensionRegistry::Get( 408ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org launcher_controller_->profile())->GetExtensionById( 418ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org app_id_, extensions::ExtensionRegistry::EVERYTHING); 428ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org if (extension) 438ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org title = base::UTF8ToUTF16(extension->name()); 448ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return title; 458ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org} 468ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org 478ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.orgash::ShelfItemType LauncherItemController::GetShelfItemType() const { 488ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org switch (type_) { 498ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org case LauncherItemController::TYPE_SHORTCUT: 508ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org case LauncherItemController::TYPE_WINDOWED_APP: 518ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return ash::TYPE_APP_SHORTCUT; 528ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org case LauncherItemController::TYPE_APP: 538ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return ash::TYPE_PLATFORM_APP; 548ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org case LauncherItemController::TYPE_APP_PANEL: 558ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return ash::TYPE_APP_PANEL; 568ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org } 578ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org NOTREACHED(); 588ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org return ash::TYPE_APP_SHORTCUT; 598ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org} 608ccb0be15fd0cd7e7804e90fa1ebf302cb7fa44bkasperl@chromium.org