RenderText: handle center-aligned text in UpdateCachedBoundsAndOffset()
[chromium-blink-merge.git] / content / common / accessibility_messages.h
blobadb528426895405ec0945f8da1c2753a6f58a550
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // IPC messages for accessibility.
6 // Multiply-included message file, hence no include guard.
8 #include "base/basictypes.h"
9 #include "content/common/content_export.h"
10 #include "content/common/view_message_enums.h"
11 #include "content/public/common/common_param_traits.h"
12 #include "ipc/ipc_message_macros.h"
13 #include "ipc/ipc_message_utils.h"
14 #include "ipc/ipc_param_traits.h"
15 #include "ipc/param_traits_macros.h"
16 #include "third_party/WebKit/public/web/WebAXEnums.h"
17 #include "ui/accessibility/ax_node_data.h"
18 #include "ui/accessibility/ax_tree_update.h"
20 #undef IPC_MESSAGE_EXPORT
21 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
23 #define IPC_MESSAGE_START AccessibilityMsgStart
25 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXEvent, ui::AX_EVENT_LAST)
26 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXRole, ui::AX_ROLE_LAST)
28 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXBoolAttribute, ui::AX_BOOL_ATTRIBUTE_LAST)
29 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXFloatAttribute, ui::AX_FLOAT_ATTRIBUTE_LAST)
30 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXIntAttribute, ui::AX_INT_ATTRIBUTE_LAST)
31 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXIntListAttribute,
32 ui::AX_INT_LIST_ATTRIBUTE_LAST)
33 IPC_ENUM_TRAITS_MAX_VALUE(ui::AXStringAttribute, ui::AX_STRING_ATTRIBUTE_LAST)
35 IPC_STRUCT_TRAITS_BEGIN(ui::AXNodeData)
36 IPC_STRUCT_TRAITS_MEMBER(id)
37 IPC_STRUCT_TRAITS_MEMBER(role)
38 IPC_STRUCT_TRAITS_MEMBER(state)
39 IPC_STRUCT_TRAITS_MEMBER(location)
40 IPC_STRUCT_TRAITS_MEMBER(string_attributes)
41 IPC_STRUCT_TRAITS_MEMBER(int_attributes)
42 IPC_STRUCT_TRAITS_MEMBER(float_attributes)
43 IPC_STRUCT_TRAITS_MEMBER(bool_attributes)
44 IPC_STRUCT_TRAITS_MEMBER(intlist_attributes)
45 IPC_STRUCT_TRAITS_MEMBER(html_attributes)
46 IPC_STRUCT_TRAITS_MEMBER(child_ids)
47 IPC_STRUCT_TRAITS_END()
49 IPC_STRUCT_TRAITS_BEGIN(ui::AXTreeUpdate)
50 IPC_STRUCT_TRAITS_MEMBER(node_id_to_clear)
51 IPC_STRUCT_TRAITS_MEMBER(nodes)
52 IPC_STRUCT_TRAITS_END()
54 IPC_STRUCT_BEGIN(AccessibilityHostMsg_EventParams)
55 // The tree update.
56 IPC_STRUCT_MEMBER(ui::AXTreeUpdate, update)
58 // Type of event.
59 IPC_STRUCT_MEMBER(ui::AXEvent, event_type)
61 // ID of the node that the event applies to.
62 IPC_STRUCT_MEMBER(int, id)
63 IPC_STRUCT_END()
65 IPC_STRUCT_BEGIN(AccessibilityHostMsg_LocationChangeParams)
66 // ID of the object whose location is changing.
67 IPC_STRUCT_MEMBER(int, id)
69 // The object's new location, in frame-relative coordinates (same
70 // as the coordinates in AccessibilityNodeData).
71 IPC_STRUCT_MEMBER(gfx::Rect, new_location)
72 IPC_STRUCT_END()
74 // Messages sent from the browser to the renderer.
76 // Relay a request from assistive technology to set focus to a given node.
77 IPC_MESSAGE_ROUTED1(AccessibilityMsg_SetFocus,
78 int /* object id */)
80 // Relay a request from assistive technology to perform the default action
81 // on a given node.
82 IPC_MESSAGE_ROUTED1(AccessibilityMsg_DoDefaultAction,
83 int /* object id */)
85 // Relay a request from assistive technology to make a given object
86 // visible by scrolling as many scrollable containers as possible.
87 // In addition, if it's not possible to make the entire object visible,
88 // scroll so that the |subfocus| rect is visible at least. The subfocus
89 // rect is in local coordinates of the object itself.
90 IPC_MESSAGE_ROUTED2(AccessibilityMsg_ScrollToMakeVisible,
91 int /* object id */,
92 gfx::Rect /* subfocus */)
94 // Relay a request from assistive technology to move a given object
95 // to a specific location, in the WebContents area coordinate space, i.e.
96 // (0, 0) is the top-left corner of the WebContents.
97 IPC_MESSAGE_ROUTED2(AccessibilityMsg_ScrollToPoint,
98 int /* object id */,
99 gfx::Point /* new location */)
101 // Relay a request from assistive technology to set the cursor or
102 // selection within an editable text element.
103 IPC_MESSAGE_ROUTED3(AccessibilityMsg_SetTextSelection,
104 int /* object id */,
105 int /* New start offset */,
106 int /* New end offset */)
108 // Determine the accessibility object under a given point and reply with
109 // a AccessibilityHostMsg_HitTestResult with the same id.
110 IPC_MESSAGE_ROUTED1(AccessibilityMsg_HitTest,
111 gfx::Point /* location to test */)
113 // Tells the render view that a AccessibilityHostMsg_Events
114 // message was processed and it can send addition events.
115 IPC_MESSAGE_ROUTED0(AccessibilityMsg_Events_ACK)
117 // Kill the renderer because we got a fatal error in the accessibility tree.
118 IPC_MESSAGE_ROUTED0(AccessibilityMsg_FatalError)
120 // Messages sent from the renderer to the browser.
122 // Sent to notify the browser about renderer accessibility events.
123 // The browser responds with a AccessibilityMsg_Events_ACK.
124 IPC_MESSAGE_ROUTED1(
125 AccessibilityHostMsg_Events,
126 std::vector<AccessibilityHostMsg_EventParams>)
128 // Sent to update the browser of the location of accessibility objects.
129 IPC_MESSAGE_ROUTED1(
130 AccessibilityHostMsg_LocationChanges,
131 std::vector<AccessibilityHostMsg_LocationChangeParams>)