blob: 897a4a94b4ac542506acaade23a0ffb939af7db9 [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_ACCESSIBILITY_AX_EVENT_BUNDLE_SINK_H_
#define UI_ACCESSIBILITY_AX_EVENT_BUNDLE_SINK_H_
#include <vector>
#include "ui/accessibility/ax_export.h"
#include "ui/accessibility/ax_tree_update.h"
namespace gfx {
class Point;
}
namespace ui {
struct AXEvent;
class AXTreeID;
// Interface for a consumer of groups of AXEvents.
class AX_EXPORT AXEventBundleSink {
public:
// |tree_id|: ID of the accessibility tree that the events apply to.
// |updates|: Zero or more updates to the accessibility tree to apply first.
// |mouse location|: Current mouse location in screen coordinates.
// |events|: Zero or more events to fire after the updates have been applied.
// Callers may wish to std::move() into the vector params to avoid copies.
virtual void DispatchAccessibilityEvents(const AXTreeID& tree_id,
std::vector<AXTreeUpdate> updates,
const gfx::Point& mouse_location,
std::vector<AXEvent> events) = 0;
protected:
virtual ~AXEventBundleSink() {}
};
} // namespace ui
#endif // UI_ACCESSIBILITY_AX_EVENT_BUNDLE_SINK_H_