blob: 63cd2580120153290b1a3922c7c4f390491744f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_ACCESSIBILITY_AX_SELECTION_H_
#define UI_ACCESSIBILITY_AX_SELECTION_H_
// #include "ui/accessibility/ax_enums.mojom-forward.h"
#include "ui/accessibility/ax_export.h"
#include "ui/accessibility/ax_node_id_forward.h"
#include "ui/accessibility/ax_tree_id.h"
namespace ui {
class AXTree;
// A data structure that can store either the selected range of nodes in the
// accessibility tree, or the location of the caret in the case of a
// "collapsed" selection.
class AX_EXPORT AXSelection final {
public:
AXSelection();
explicit AXSelection(const AXTree&);
AXSelection(const AXSelection&);
~AXSelection();
// Returns true if this instance represents the position of the caret.
constexpr bool IsCollapsed() const {
return focus_object_id != kInvalidAXNodeID &&
anchor_object_id == focus_object_id && anchor_offset == focus_offset;
}
bool is_backward = false;
AXNodeID anchor_object_id = kInvalidAXNodeID;
int anchor_offset = -1;
ax::mojom::TextAffinity anchor_affinity;
AXNodeID focus_object_id = kInvalidAXNodeID;
int focus_offset = -1;
ax::mojom::TextAffinity focus_affinity;
AXSelection& ToUnignoredSelection();
private:
AXTreeID tree_id_;
};
} // namespace ui
#endif // UI_ACCESSIBILITY_AX_SELECTION_H_
|