blob: 424df0d54a1fbb98c80cc5d2a815b6cdad47ea98 [file] [log] [blame]
// Copyright 2018 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_AURA_WINDOW_EVENT_DISPATCHER_OBSERVER_H_
#define UI_AURA_WINDOW_EVENT_DISPATCHER_OBSERVER_H_
#include "ui/aura/aura_export.h"
namespace ui {
class Event;
}
namespace aura {
class WindowEventDispatcher;
// WindowEventDispatcherObservers are added to Env and observe *all*
// WindowEventDispatchers.
class AURA_EXPORT WindowEventDispatcherObserver {
public:
// Called when WindowEventDispatcher starts processing an event.
//
// NOTE: this function is called *after* the location has been transformed
// (assuming the event is a located event). In other words, the coordinates
// are DIPs when this is called.
virtual void OnWindowEventDispatcherStartedProcessing(
WindowEventDispatcher* dispatcher,
const ui::Event& event) {}
// Called when WindowEventDispatcher finishes processing an event.
virtual void OnWindowEventDispatcherFinishedProcessingEvent(
WindowEventDispatcher* dispatcher) {}
// Called when the WindowEventDispatcher dispatches held events. See
// WindowEventDispatcher::HoldMouseMoves() for more details.
virtual void OnWindowEventDispatcherDispatchedHeldEvents(
WindowEventDispatcher* dispatcher) {}
// Called when the WindowEventDispatcher doesn't dispatch the event because
// it's not appropriate at this time. For example a TouchEvent may be ignored
// at certain points in a gesture.
virtual void OnWindowEventDispatcherIgnoredEvent(
WindowEventDispatcher* dispatcher) {}
protected:
virtual ~WindowEventDispatcherObserver() {}
};
} // namespace aura
#endif // UI_AURA_WINDOW_EVENT_DISPATCHER_OBSERVER_H_