Home | History | Annotate | Download | only in shell
      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/shell/window_watcher_shelf_item_delegate.h"
      6 
      7 #include "ash/shell/window_watcher.h"
      8 #include "ash/wm/window_util.h"
      9 #include "ui/aura/window.h"
     10 
     11 namespace ash {
     12 namespace shell {
     13 
     14 WindowWatcherShelfItemDelegate::WindowWatcherShelfItemDelegate(
     15     ShelfID id,
     16     WindowWatcher* watcher)
     17     : id_(id), watcher_(watcher) {
     18   DCHECK_GT(id_, 0);
     19   DCHECK(watcher_);
     20 }
     21 
     22 WindowWatcherShelfItemDelegate::~WindowWatcherShelfItemDelegate() {
     23 }
     24 
     25 bool WindowWatcherShelfItemDelegate::ItemSelected(const ui::Event& event) {
     26   aura::Window* window = watcher_->GetWindowByID(id_);
     27   if (window->type() == ui::wm::WINDOW_TYPE_PANEL)
     28     wm::MoveWindowToEventRoot(window, event);
     29   window->Show();
     30   wm::ActivateWindow(window);
     31   return false;
     32 }
     33 
     34 base::string16 WindowWatcherShelfItemDelegate::GetTitle() {
     35   return watcher_->GetWindowByID(id_)->title();
     36 }
     37 
     38 ui::MenuModel* WindowWatcherShelfItemDelegate::CreateContextMenu(
     39     aura::Window* root_window) {
     40   return NULL;
     41 }
     42 
     43 ShelfMenuModel* WindowWatcherShelfItemDelegate::CreateApplicationMenu(
     44     int event_flags) {
     45   return NULL;
     46 }
     47 
     48 bool WindowWatcherShelfItemDelegate::IsDraggable() {
     49   return true;
     50 }
     51 
     52 bool WindowWatcherShelfItemDelegate::ShouldShowTooltip() {
     53   return true;
     54 }
     55 
     56 void WindowWatcherShelfItemDelegate::Close() {
     57 }
     58 
     59 }  // namespace shell
     60 }  // namespace ash
     61