1// Copyright 2014 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 UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
6#define UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
7
8#include "base/macros.h"
9#include "base/message_loop/message_pump_dispatcher.h"
10
11namespace views {
12
13class MenuController;
14
15namespace internal {
16
17// A message-pump dispatcher object used to dispatch events from the nested
18// message-loop initiated by the MenuController.
19class MenuMessagePumpDispatcher : public base::MessagePumpDispatcher {
20 public:
21  explicit MenuMessagePumpDispatcher(MenuController* menu_controller);
22  virtual ~MenuMessagePumpDispatcher();
23
24 private:
25  // base::MessagePumpDispatcher:
26  virtual uint32_t Dispatch(const base::NativeEvent& event) OVERRIDE;
27
28  MenuController* menu_controller_;
29
30  DISALLOW_COPY_AND_ASSIGN(MenuMessagePumpDispatcher);
31};
32
33}  // namespace internal
34}  // namespace views
35
36#endif  // UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
37