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 #ifndef ASH_SHELF_SHELF_WINDOW_WATCHER_ITEM_DELEGATE_H_ 6 #define ASH_SHELF_SHELF_WINDOW_WATCHER_ITEM_DELEGATE_H_ 7 8 #include "ash/shelf/shelf_item_delegate.h" 9 #include "base/basictypes.h" 10 #include "base/compiler_specific.h" 11 12 namespace aura { 13 class Window; 14 } 15 16 namespace ash { 17 namespace internal { 18 19 // ShelfItemDelegate for the items created by ShelfWindowWatcher. 20 class ShelfWindowWatcherItemDelegate : public ShelfItemDelegate { 21 public: 22 explicit ShelfWindowWatcherItemDelegate(aura::Window* window); 23 24 virtual ~ShelfWindowWatcherItemDelegate(); 25 26 // Closes the window associated with this item. 27 void Close(); 28 29 private: 30 // ShelfItemDelegate overrides: 31 virtual bool ItemSelected(const ui::Event& event) OVERRIDE; 32 virtual base::string16 GetTitle() OVERRIDE; 33 virtual ui::MenuModel* CreateContextMenu(aura::Window* root_window) OVERRIDE; 34 virtual ShelfMenuModel* CreateApplicationMenu(int event_flags) OVERRIDE; 35 virtual bool IsDraggable() OVERRIDE; 36 virtual bool ShouldShowTooltip() OVERRIDE; 37 38 // Stores a Window associated with this item. Not owned. 39 aura::Window* window_; 40 41 DISALLOW_COPY_AND_ASSIGN(ShelfWindowWatcherItemDelegate); 42 }; 43 44 } // namespace internal 45 } // namespace ash 46 47 #endif // ASH_SHELF_SHELF_WINDOW_WATCHER_ITEM_DELEGATE_H_ 48