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