1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright 2014 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef UI_EVENTS_PLATFORM_PLATFORM_EVENT_DISPATCHER_H_
- #define UI_EVENTS_PLATFORM_PLATFORM_EVENT_DISPATCHER_H_
- #include <stdint.h>
- #include "ui/events/events_export.h"
- #include "ui/events/platform_event.h"
- namespace ui {
- // See documentation for |PlatformEventDispatcher::DispatchEvent()| for
- // explanation of the meaning of the flags.
- enum PostDispatchAction {
- POST_DISPATCH_NONE = 0x0,
- POST_DISPATCH_PERFORM_DEFAULT = 0x1,
- POST_DISPATCH_STOP_PROPAGATION = 0x2,
- };
- // PlatformEventDispatcher receives events from a PlatformEventSource and
- // dispatches them.
- class EVENTS_EXPORT PlatformEventDispatcher {
- public:
- // Returns whether this dispatcher wants to dispatch |event|.
- virtual bool CanDispatchEvent(const PlatformEvent& event) = 0;
- // Dispatches |event|. If this is not the default dispatcher, then the
- // dispatcher can request that the default dispatcher gets a chance to
- // dispatch the event by setting POST_DISPATCH_PERFORM_DEFAULT to the return
- // value. If the dispatcher has processed the event, and no other dispatcher
- // should be allowed to dispatch the event, then the dispatcher should set
- // POST_DISPATCH_STOP_PROPAGATION flag on the return value.
- virtual uint32_t DispatchEvent(const PlatformEvent& event) = 0;
- protected:
- virtual ~PlatformEventDispatcher() {}
- };
- } // namespace ui
- #endif // UI_EVENTS_PLATFORM_PLATFORM_EVENT_DISPATCHER_H_
|