[go: nahoru, domu]

blob: 7f82effd80f878734b6c193c870ac0b30fdfa2fd [file] [log] [blame]
James Cookb0bf8e82017-04-09 17:01:441// 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/public/cpp/shelf_item_delegate.h"
9#include "base/macros.h"
10
11namespace ash {
12
13class WmWindow;
14
15// ShelfItemDelegate for the items created by ShelfWindowWatcher, for example:
16// The Chrome OS settings window, task manager window, and panel windows.
17class ShelfWindowWatcherItemDelegate : public ShelfItemDelegate {
18 public:
19 ShelfWindowWatcherItemDelegate(ShelfID id, WmWindow* window);
20 ~ShelfWindowWatcherItemDelegate() override;
21
22 private:
23 // ShelfItemDelegate overrides:
24 void ItemSelected(std::unique_ptr<ui::Event> event,
25 int64_t display_id,
26 ShelfLaunchSource source,
27 const ItemSelectedCallback& callback) override;
28 void ExecuteCommand(uint32_t command_id, int32_t event_flags) override;
29 void Close() override;
30
31 ShelfID id_;
32 // The window associated with this item. Not owned.
33 WmWindow* window_;
34
35 DISALLOW_COPY_AND_ASSIGN(ShelfWindowWatcherItemDelegate);
36};
37
38} // namespace ash
39
40#endif // ASH_SHELF_SHELF_WINDOW_WATCHER_ITEM_DELEGATE_H_