blob: 8f1fa6dad806c87228d11f6f6576e03faa6e4ee9 [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;
// 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_