• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_SHELL_WINDOW_WATCHER_SHELF_ITEM_DELEGATE_H_
6 #define ASH_SHELL_WINDOW_WATCHER_SHELF_ITEM_DELEGATE_H_
7 
8 #include "ash/launcher/launcher_types.h"
9 #include "ash/shelf/shelf_item_delegate.h"
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
12 
13 namespace ash {
14 namespace shell {
15 
16 class WindowWatcher;
17 
18 // ShelfItemDelegate implementation used by WindowWatcher.
19 class WindowWatcherShelfItemDelegate : public ShelfItemDelegate {
20  public:
21   WindowWatcherShelfItemDelegate(LauncherID id, WindowWatcher* watcher);
22   virtual ~WindowWatcherShelfItemDelegate();
23 
24   // ShelfItemDelegate:
25   virtual bool ItemSelected(const ui::Event& event) OVERRIDE;
26   virtual base::string16 GetTitle() OVERRIDE;
27   virtual ui::MenuModel* CreateContextMenu(aura::Window* root_window) OVERRIDE;
28   virtual ShelfMenuModel* CreateApplicationMenu(int event_flags) OVERRIDE;
29   virtual bool IsDraggable() OVERRIDE;
30   virtual bool ShouldShowTooltip() OVERRIDE;
31 
32  private:
33   LauncherID id_;
34   WindowWatcher* watcher_;
35 
36   DISALLOW_COPY_AND_ASSIGN(WindowWatcherShelfItemDelegate);
37 };
38 
39 }  // namespace shell
40 }  // namespace ash
41 
42 #endif  // ASH_SHELL_WINDOW_WATCHER_SHELF_ITEM_DELEGATE_H_
43