1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Copyright 2014 The Chromium Authors. All rights reserved.
22a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org// Use of this source code is governed by a BSD-style license that can be
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// found in the LICENSE file.
42a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include "base/macros.h"
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include "ui/events/platform/platform_event_dispatcher.h"
72a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
82a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.orgnamespace views {
9ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
10c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.orgclass MenuController;
11c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org
122a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.orgnamespace internal {
132a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
142a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org// A message-pump dispatcher object used to dispatch events from the nested
152a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org// message-loop initiated by the MenuController.
162a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.orgclass MenuEventDispatcher : public ui::PlatformEventDispatcher {
172a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org public:
182a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org  explicit MenuEventDispatcher(MenuController* menu_controller);
19c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org  virtual ~MenuEventDispatcher();
202a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
21c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org private:
22c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org  // ui::PlatformEventDispatcher:
23c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org  virtual bool CanDispatchEvent(const ui::PlatformEvent& event) OVERRIDE;
242a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org  virtual uint32_t DispatchEvent(const ui::PlatformEvent& event) OVERRIDE;
252a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
26c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org  MenuController* menu_controller_;
272a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org
2815e9d3e66e161ce23df30bc13f8a0c87d196b463robertphillips@google.com  DISALLOW_COPY_AND_ASSIGN(MenuEventDispatcher);
2915e9d3e66e161ce23df30bc13f8a0c87d196b463robertphillips@google.com};
30c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org
31c48b2b330f8bf0e01381e27ca36f48ef5c7d8d5fvandebo@chromium.org}  // namespace internal
322a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org}  // namespace views
332a22e10ab2946c5590cd2a258427ce3ccfca9bfavandebo@chromium.org