12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright (c) 2012 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_EVENT_HANDLER_H_
- #define UI_EVENTS_EVENT_HANDLER_H_
- #include <vector>
- #include "base/containers/stack.h"
- #include "base/strings/string_piece.h"
- #include "ui/events/events_export.h"
- namespace ui {
- class CancelModeEvent;
- class Event;
- class EventDispatcher;
- class EventTarget;
- class GestureEvent;
- class KeyEvent;
- class MouseEvent;
- class ScrollEvent;
- class TouchEvent;
- // Dispatches events to appropriate targets. The default implementations of
- // all of the specific handlers (e.g. OnKeyEvent, OnMouseEvent) do nothing.
- class EVENTS_EXPORT EventHandler {
- public:
- EventHandler();
- EventHandler(const EventHandler&) = delete;
- EventHandler& operator=(const EventHandler&) = delete;
- virtual ~EventHandler();
- // This is called for all events. The default implementation routes the event
- // to one of the event-specific callbacks (OnKeyEvent, OnMouseEvent etc.). If
- // this is overridden, then normally, the override should chain into the
- // default implementation for un-handled events.
- virtual void OnEvent(Event* event);
- virtual void OnKeyEvent(KeyEvent* event);
- virtual void OnMouseEvent(MouseEvent* event);
- virtual void OnScrollEvent(ScrollEvent* event);
- virtual void OnTouchEvent(TouchEvent* event);
- virtual void OnGestureEvent(GestureEvent* event);
- virtual void OnCancelMode(CancelModeEvent* event);
- // Returns information about the implementing class or scope for diagnostic
- // logging purposes.
- virtual base::StringPiece GetLogContext() const;
- private:
- friend class EventDispatcher;
- friend class EventTarget;
- // EventDispatcher pushes itself on the top of this stack while dispatching
- // events to this then pops itself off when done.
- base::stack<EventDispatcher*> dispatchers_;
- };
- using EventHandlerList = std::vector<EventHandler*>;
- } // namespace ui
- #endif // UI_EVENTS_EVENT_HANDLER_H_
|