Home | History | Annotate | Download | only in launcher
      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/profiles/profile.h"
     10 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
     11 #include "extensions/browser/extension_registry.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       shelf_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   base::string16 title;
     35   if (app_id_.empty())
     36     return title;
     37 
     38   const extensions::Extension* extension =
     39       extensions::ExtensionRegistry::Get(
     40           launcher_controller_->profile())->GetExtensionById(
     41               app_id_, extensions::ExtensionRegistry::EVERYTHING);
     42   if (extension)
     43     title = base::UTF8ToUTF16(extension->name());
     44   return title;
     45 }
     46 
     47 ash::ShelfItemType LauncherItemController::GetShelfItemType() const {
     48   switch (type_) {
     49     case LauncherItemController::TYPE_SHORTCUT:
     50     case LauncherItemController::TYPE_WINDOWED_APP:
     51       return ash::TYPE_APP_SHORTCUT;
     52     case LauncherItemController::TYPE_APP:
     53       return ash::TYPE_PLATFORM_APP;
     54     case LauncherItemController::TYPE_APP_PANEL:
     55       return ash::TYPE_APP_PANEL;
     56   }
     57   NOTREACHED();
     58   return ash::TYPE_APP_SHORTCUT;
     59 }
     60