blob: fdebae7b9f6579126c0fa0bb41de61809f6dd4cc [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 SRC_UI_A11Y_LIB_ANNOTATION_FOCUS_HIGHLIGHT_MANAGER_H_
#define SRC_UI_A11Y_LIB_ANNOTATION_FOCUS_HIGHLIGHT_MANAGER_H_
#include <zircon/types.h>
namespace a11y {
// An interface for manipulating a11y focus highlights.
class FocusHighlightManager {
public:
struct SemanticNodeIdentifier {
zx_koid_t koid;
uint32_t node_id;
};
FocusHighlightManager() = default;
virtual ~FocusHighlightManager() = default;
// Enables/disables annotations.
virtual void SetAnnotationsEnabled(bool annotations_enabled) = 0;
// Clears existing highlight.
virtual void ClearHighlight() = 0;
// Clears existing highlight (if any) and draws a highlight around |newly_highlighted_node.|
virtual void UpdateHighlight(SemanticNodeIdentifier newly_highlighted_node) = 0;
};
} // namespace a11y
#endif // SRC_UI_A11Y_LIB_ANNOTATION_FOCUS_HIGHLIGHT_MANAGER_H_