14ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
24ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
34ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// found in the LICENSE file.
44ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifndef UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
74ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
84ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#include "base/macros.h"
94ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#include "base/message_loop/message_pump_dispatcher.h"
104ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
114ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochnamespace views {
124ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
134ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochclass MenuController;
144ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
154ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochnamespace internal {
164ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
174ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// A message-pump dispatcher object used to dispatch events from the nested
184ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// message-loop initiated by the MenuController.
194ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochclass MenuMessagePumpDispatcher : public base::MessagePumpDispatcher {
204ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch public:
214ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  explicit MenuMessagePumpDispatcher(MenuController* menu_controller);
224ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  virtual ~MenuMessagePumpDispatcher();
234ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
244ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch private:
254ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  // base::MessagePumpDispatcher:
264ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  virtual uint32_t Dispatch(const base::NativeEvent& event) OVERRIDE;
274ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
284ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  MenuController* menu_controller_;
294ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
304ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(MenuMessagePumpDispatcher);
314ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch};
324ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
334ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch}  // namespace internal
344ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch}  // namespace views
354ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif  // UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_PUMP_DISPATCHER_WIN_H_
37