Move accessibility methods/enums from DisplayServer to the AccessibilityServer dedicated singleton.
This commit is contained in:
parent
4683f3806f
commit
1306221592
88 changed files with 3156 additions and 1551 deletions
|
|
@ -1705,6 +1705,7 @@ ProjectSettings::ProjectSettings() {
|
|||
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "accessibility/general/accessibility_support", PROPERTY_HINT_ENUM, "Auto (When Screen Reader is Running),Always Active,Disabled"), 0);
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "accessibility/general/updates_per_second", PROPERTY_HINT_RANGE, "1,100,1"), 60);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::STRING, "accessibility/general/accessibility_driver", PROPERTY_HINT_ENUM, "accesskit,dummy"), "accesskit");
|
||||
|
||||
// The default window size is tuned to:
|
||||
// - Have a 16:9 aspect ratio,
|
||||
|
|
|
|||
|
|
@ -1547,6 +1547,9 @@
|
|||
</method>
|
||||
</methods>
|
||||
<members>
|
||||
<member name="AccessibilityServer" type="AccessibilityServer" setter="" getter="">
|
||||
The [AccessibilityServer] singleton.
|
||||
</member>
|
||||
<member name="AudioServer" type="AudioServer" setter="" getter="">
|
||||
The [AudioServer] singleton.
|
||||
</member>
|
||||
|
|
|
|||
927
doc/classes/AccessibilityServer.xml
Normal file
927
doc/classes/AccessibilityServer.xml
Normal file
|
|
@ -0,0 +1,927 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AccessibilityServer" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A server interface for screen reader support.
|
||||
</brief_description>
|
||||
<description>
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="create_element">
|
||||
<return type="RID" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="role" type="int" enum="AccessibilityServer.AccessibilityRole" />
|
||||
<description>
|
||||
Creates a new, empty accessibility element resource.
|
||||
[b]Note:[/b] An accessibility element is created and freed automatically for each [Node]. In general, this function should not be called manually.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_sub_element">
|
||||
<return type="RID" />
|
||||
<param index="0" name="parent_rid" type="RID" />
|
||||
<param index="1" name="role" type="int" enum="AccessibilityServer.AccessibilityRole" />
|
||||
<param index="2" name="insert_pos" type="int" default="-1" />
|
||||
<description>
|
||||
Creates a new, empty accessibility sub-element resource. Sub-elements can be used to provide accessibility information for objects which are not [Node]s, such as list items, table cells, or menu items. Sub-elements are freed automatically when the parent element is freed, or can be freed early using the [method free_element] method.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_sub_text_edit_elements">
|
||||
<return type="RID" />
|
||||
<param index="0" name="parent_rid" type="RID" />
|
||||
<param index="1" name="shaped_text" type="RID" />
|
||||
<param index="2" name="min_height" type="float" />
|
||||
<param index="3" name="insert_pos" type="int" default="-1" />
|
||||
<param index="4" name="is_last_line" type="bool" default="false" />
|
||||
<description>
|
||||
Creates a new, empty accessibility sub-element from the shaped text buffer. Sub-elements are freed automatically when the parent element is freed, or can be freed early using the [method free_element] method.
|
||||
If [param is_last_line] is [code]true[/code], no trailing newline is appended to the text content. Set to [code]true[/code] for the last line in multi-line text fields and for single-line text fields.
|
||||
</description>
|
||||
</method>
|
||||
<method name="element_get_meta" qualifiers="const">
|
||||
<return type="Variant" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Returns the metadata of the accessibility element [param id].
|
||||
</description>
|
||||
</method>
|
||||
<method name="element_set_meta">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="meta" type="Variant" />
|
||||
<description>
|
||||
Sets the metadata of the accessibility element [param id] to [param meta].
|
||||
</description>
|
||||
</method>
|
||||
<method name="free_element">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Frees the accessibility element [param id] created by [method create_element], [method create_sub_element], or [method create_sub_text_edit_elements].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_window_root" qualifiers="const">
|
||||
<return type="RID" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<description>
|
||||
Returns the main accessibility element of the OS native window.
|
||||
</description>
|
||||
</method>
|
||||
<method name="has_element" qualifiers="const">
|
||||
<return type="bool" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Returns [code]true[/code] if [param id] is a valid accessibility element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_supported" qualifiers="const">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns [code]true[/code] if screen reader is support by this implementation.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_window_focused">
|
||||
<return type="void" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="focused" type="bool" />
|
||||
<description>
|
||||
Sets the window focused state for assistive apps.
|
||||
[b]Note:[/b] This method is implemented on Linux, macOS, and Windows.
|
||||
[b]Note:[/b] Advanced users only! [Window] objects call this method automatically.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_window_rect">
|
||||
<return type="void" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="rect_out" type="Rect2" />
|
||||
<param index="2" name="rect_in" type="Rect2" />
|
||||
<description>
|
||||
Sets window outer (with decorations) and inner (without decorations) bounds for assistive apps.
|
||||
[b]Note:[/b] This method is implemented on Linux, macOS, and Windows.
|
||||
[b]Note:[/b] Advanced users only! [Window] objects call this method automatically.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_action">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="action" type="int" enum="AccessibilityServer.AccessibilityAction" />
|
||||
<param index="2" name="callable" type="Callable" />
|
||||
<description>
|
||||
Adds a callback for the accessibility action (action which can be performed by using a special screen reader command or buttons on the Braille display), and marks this action as supported. The action callback receives one [Variant] argument, which value depends on action type.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_child">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="child_id" type="RID" />
|
||||
<description>
|
||||
Adds a child accessibility element.
|
||||
[b]Note:[/b] [Node] children and sub-elements are added to the child list automatically.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_custom_action">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="action_id" type="int" />
|
||||
<param index="2" name="action_description" type="String" />
|
||||
<description>
|
||||
Adds support for a custom accessibility action. [param action_id] is passed as an argument to the callback of [constant ACTION_CUSTOM] action.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_controls">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that is controlled by this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_described_by">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that describes this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_details">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that details this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_flow_to">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that this element flow into.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_labeled_by">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that labels this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_add_related_radio_group">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that is part of the same radio group.
|
||||
[b]Note:[/b] This method should be called on each element of the group, using all other elements as [param related_id].
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_active_descendant">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
<description>
|
||||
Adds an element that is an active descendant of this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_background_color">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
<description>
|
||||
Sets element background color.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_bounds">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="p_rect" type="Rect2" />
|
||||
<description>
|
||||
Sets element bounding box, relative to the node position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_braille_label">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="name" type="String" />
|
||||
<description>
|
||||
Sets element accessibility label for Braille display.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_braille_role_description">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
<description>
|
||||
Sets element accessibility role description for Braille display.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_checked">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="checekd" type="bool" />
|
||||
<description>
|
||||
Sets element checked state.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_classname">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="classname" type="String" />
|
||||
<description>
|
||||
Sets element class name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_color_value">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
<description>
|
||||
Sets element color value.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_description">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
<description>
|
||||
Sets element accessibility description.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_error_message">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
<description>
|
||||
Sets an element which contains an error message for this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_extra_info">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="name" type="String" />
|
||||
<description>
|
||||
Sets element accessibility extra information added to the element name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_flag">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="flag" type="int" enum="AccessibilityServer.AccessibilityFlags" />
|
||||
<param index="2" name="value" type="bool" />
|
||||
<description>
|
||||
Sets element flag.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_focus">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Sets currently focused element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_foreground_color">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
<description>
|
||||
Sets element foreground color.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_in_page_link_target">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
<description>
|
||||
Sets target element for the link.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_language">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="language" type="String" />
|
||||
<description>
|
||||
Sets element text language.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_item_count">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="size" type="int" />
|
||||
<description>
|
||||
Sets number of items in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_item_expanded">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="expanded" type="bool" />
|
||||
<description>
|
||||
Sets list/tree item expanded status.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_item_index">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
<description>
|
||||
Sets the position of the element in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_item_level">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="level" type="int" />
|
||||
<description>
|
||||
Sets the hierarchical level of the element in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_item_selected">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="selected" type="bool" />
|
||||
<description>
|
||||
Sets list/tree item selected status.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_list_orientation">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="vertical" type="bool" />
|
||||
<description>
|
||||
Sets the orientation of the list elements.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_live">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="live" type="int" enum="AccessibilityServer.AccessibilityLiveMode" />
|
||||
<description>
|
||||
Sets the priority of the live region updates.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_member_of">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="group_id" type="RID" />
|
||||
<description>
|
||||
Sets the element to be a member of the group.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_name">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="name" type="String" />
|
||||
<description>
|
||||
Sets element accessibility name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_next_on_line">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
<description>
|
||||
Sets next element on the line.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_num_jump">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="jump" type="float" />
|
||||
<description>
|
||||
Sets numeric value jump.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_num_range">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
<param index="2" name="max" type="float" />
|
||||
<description>
|
||||
Sets numeric value range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_num_step">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="step" type="float" />
|
||||
<description>
|
||||
Sets numeric value step.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_num_value">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
<description>
|
||||
Sets numeric value.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_placeholder">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="placeholder" type="String" />
|
||||
<description>
|
||||
Sets placeholder text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_popup_type">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="popup" type="int" enum="AccessibilityServer.AccessibilityPopupType" />
|
||||
<description>
|
||||
Sets popup type for popup buttons.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_previous_on_line">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
<description>
|
||||
Sets previous element on the line.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_role">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="role" type="int" enum="AccessibilityServer.AccessibilityRole" />
|
||||
<description>
|
||||
Sets element accessibility role.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_role_description">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
<description>
|
||||
Sets element accessibility role description text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_scroll_x">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
<description>
|
||||
Sets scroll bar x position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_scroll_x_range">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
<param index="2" name="max" type="float" />
|
||||
<description>
|
||||
Sets scroll bar x range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_scroll_y">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
<description>
|
||||
Sets scroll bar y position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_scroll_y_range">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
<param index="2" name="max" type="float" />
|
||||
<description>
|
||||
Sets scroll bar y range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_shortcut">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="shortcut" type="String" />
|
||||
<description>
|
||||
Sets the list of keyboard shortcuts used by element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_state_description">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
<description>
|
||||
Sets human-readable description of the current checked state.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_cell_position">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="row_index" type="int" />
|
||||
<param index="2" name="column_index" type="int" />
|
||||
<description>
|
||||
Sets cell position in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_cell_span">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="row_span" type="int" />
|
||||
<param index="2" name="column_span" type="int" />
|
||||
<description>
|
||||
Sets cell row/column span.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_column_count">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="count" type="int" />
|
||||
<description>
|
||||
Sets number of columns in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_column_index">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
<description>
|
||||
Sets position of the column.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_row_count">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="count" type="int" />
|
||||
<description>
|
||||
Sets number of rows in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_table_row_index">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
<description>
|
||||
Sets position of the row in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_text_align">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="align" type="int" enum="HorizontalAlignment" />
|
||||
<description>
|
||||
Sets element text alignment.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_text_decorations">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="underline" type="bool" />
|
||||
<param index="2" name="strikethrough" type="bool" />
|
||||
<param index="3" name="overline" type="bool" />
|
||||
<param index="4" name="color" type="Color" default="Color(0, 0, 0, 1)" />
|
||||
<description>
|
||||
Sets text underline/overline/strikethrough.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_text_orientation">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="vertical" type="bool" />
|
||||
<description>
|
||||
Sets text orientation.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_text_selection">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="text_start_id" type="RID" />
|
||||
<param index="2" name="start_char" type="int" />
|
||||
<param index="3" name="text_end_id" type="RID" />
|
||||
<param index="4" name="end_char" type="int" />
|
||||
<description>
|
||||
Sets text selection to the text field. [param text_start_id] and [param text_end_id] should be elements created by [method create_sub_text_edit_elements]. Character offsets are relative to the corresponding element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_tooltip">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="tooltip" type="String" />
|
||||
<description>
|
||||
Sets tooltip text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_transform">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="transform" type="Transform2D" />
|
||||
<description>
|
||||
Sets element 2D transform.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_url">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="url" type="String" />
|
||||
<description>
|
||||
Sets link URL.
|
||||
</description>
|
||||
</method>
|
||||
<method name="update_set_value">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="value" type="String" />
|
||||
<description>
|
||||
Sets element text value.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
<constants>
|
||||
<constant name="ROLE_UNKNOWN" value="0" enum="AccessibilityRole">
|
||||
Unknown or custom role.
|
||||
</constant>
|
||||
<constant name="ROLE_DEFAULT_BUTTON" value="1" enum="AccessibilityRole">
|
||||
Default dialog button element.
|
||||
</constant>
|
||||
<constant name="ROLE_AUDIO" value="2" enum="AccessibilityRole">
|
||||
Audio player element.
|
||||
</constant>
|
||||
<constant name="ROLE_VIDEO" value="3" enum="AccessibilityRole">
|
||||
Video player element.
|
||||
</constant>
|
||||
<constant name="ROLE_STATIC_TEXT" value="4" enum="AccessibilityRole">
|
||||
Non-editable text label.
|
||||
</constant>
|
||||
<constant name="ROLE_CONTAINER" value="5" enum="AccessibilityRole">
|
||||
Container element. Elements with this role are used for internal structure and ignored by screen readers.
|
||||
</constant>
|
||||
<constant name="ROLE_PANEL" value="6" enum="AccessibilityRole">
|
||||
Panel container element.
|
||||
</constant>
|
||||
<constant name="ROLE_BUTTON" value="7" enum="AccessibilityRole">
|
||||
Button element.
|
||||
</constant>
|
||||
<constant name="ROLE_LINK" value="8" enum="AccessibilityRole">
|
||||
Link element.
|
||||
</constant>
|
||||
<constant name="ROLE_CHECK_BOX" value="9" enum="AccessibilityRole">
|
||||
Check box element.
|
||||
</constant>
|
||||
<constant name="ROLE_RADIO_BUTTON" value="10" enum="AccessibilityRole">
|
||||
Radio button element.
|
||||
</constant>
|
||||
<constant name="ROLE_CHECK_BUTTON" value="11" enum="AccessibilityRole">
|
||||
Check button element.
|
||||
</constant>
|
||||
<constant name="ROLE_SCROLL_BAR" value="12" enum="AccessibilityRole">
|
||||
Scroll bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_SCROLL_VIEW" value="13" enum="AccessibilityRole">
|
||||
Scroll container element.
|
||||
</constant>
|
||||
<constant name="ROLE_SPLITTER" value="14" enum="AccessibilityRole">
|
||||
Container splitter handle element.
|
||||
</constant>
|
||||
<constant name="ROLE_SLIDER" value="15" enum="AccessibilityRole">
|
||||
Slider element.
|
||||
</constant>
|
||||
<constant name="ROLE_SPIN_BUTTON" value="16" enum="AccessibilityRole">
|
||||
Spin box element.
|
||||
</constant>
|
||||
<constant name="ROLE_PROGRESS_INDICATOR" value="17" enum="AccessibilityRole">
|
||||
Progress indicator element.
|
||||
</constant>
|
||||
<constant name="ROLE_TEXT_FIELD" value="18" enum="AccessibilityRole">
|
||||
Editable text field element.
|
||||
</constant>
|
||||
<constant name="ROLE_MULTILINE_TEXT_FIELD" value="19" enum="AccessibilityRole">
|
||||
Multiline editable text field element.
|
||||
</constant>
|
||||
<constant name="ROLE_COLOR_PICKER" value="20" enum="AccessibilityRole">
|
||||
Color picker element.
|
||||
</constant>
|
||||
<constant name="ROLE_TABLE" value="21" enum="AccessibilityRole">
|
||||
Table element.
|
||||
</constant>
|
||||
<constant name="ROLE_CELL" value="22" enum="AccessibilityRole">
|
||||
Table/tree cell element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW" value="23" enum="AccessibilityRole">
|
||||
Table/tree row element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW_GROUP" value="24" enum="AccessibilityRole">
|
||||
Table/tree row group element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW_HEADER" value="25" enum="AccessibilityRole">
|
||||
Table/tree row header element.
|
||||
</constant>
|
||||
<constant name="ROLE_COLUMN_HEADER" value="26" enum="AccessibilityRole">
|
||||
Table/tree column header element.
|
||||
</constant>
|
||||
<constant name="ROLE_TREE" value="27" enum="AccessibilityRole">
|
||||
Tree view element.
|
||||
</constant>
|
||||
<constant name="ROLE_TREE_ITEM" value="28" enum="AccessibilityRole">
|
||||
Tree view item element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST" value="29" enum="AccessibilityRole">
|
||||
List element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_ITEM" value="30" enum="AccessibilityRole">
|
||||
List item element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_BOX" value="31" enum="AccessibilityRole">
|
||||
List view element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_BOX_OPTION" value="32" enum="AccessibilityRole">
|
||||
List view item element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB_BAR" value="33" enum="AccessibilityRole">
|
||||
Tab bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB" value="34" enum="AccessibilityRole">
|
||||
Tab bar item element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB_PANEL" value="35" enum="AccessibilityRole">
|
||||
Tab panel element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_BAR" value="36" enum="AccessibilityRole">
|
||||
Menu bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU" value="37" enum="AccessibilityRole">
|
||||
Popup menu element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM" value="38" enum="AccessibilityRole">
|
||||
Popup menu item element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM_CHECK_BOX" value="39" enum="AccessibilityRole">
|
||||
Popup menu check button item element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM_RADIO" value="40" enum="AccessibilityRole">
|
||||
Popup menu radio button item element.
|
||||
</constant>
|
||||
<constant name="ROLE_IMAGE" value="41" enum="AccessibilityRole">
|
||||
Image element.
|
||||
</constant>
|
||||
<constant name="ROLE_WINDOW" value="42" enum="AccessibilityRole">
|
||||
Window element.
|
||||
</constant>
|
||||
<constant name="ROLE_TITLE_BAR" value="43" enum="AccessibilityRole">
|
||||
Embedded window title bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_DIALOG" value="44" enum="AccessibilityRole">
|
||||
Dialog window element.
|
||||
</constant>
|
||||
<constant name="ROLE_TOOLTIP" value="45" enum="AccessibilityRole">
|
||||
Tooltip element.
|
||||
</constant>
|
||||
<constant name="ROLE_REGION" value="46" enum="AccessibilityRole">
|
||||
Region/landmark element. Screen readers can navigate between regions using landmark navigation.
|
||||
</constant>
|
||||
<constant name="ROLE_TEXT_RUN" value="47" enum="AccessibilityRole">
|
||||
Unifor text run.
|
||||
Note: This role is used for internal text elements, and should not be assigned to nodes.
|
||||
</constant>
|
||||
<constant name="POPUP_MENU" value="0" enum="AccessibilityPopupType">
|
||||
Popup menu.
|
||||
</constant>
|
||||
<constant name="POPUP_LIST" value="1" enum="AccessibilityPopupType">
|
||||
Popup list.
|
||||
</constant>
|
||||
<constant name="POPUP_TREE" value="2" enum="AccessibilityPopupType">
|
||||
Popup tree view.
|
||||
</constant>
|
||||
<constant name="POPUP_DIALOG" value="3" enum="AccessibilityPopupType">
|
||||
Popup dialog.
|
||||
</constant>
|
||||
<constant name="FLAG_HIDDEN" value="0" enum="AccessibilityFlags">
|
||||
Element is hidden for accessibility tools.
|
||||
</constant>
|
||||
<constant name="FLAG_MULTISELECTABLE" value="1" enum="AccessibilityFlags">
|
||||
Element supports multiple item selection.
|
||||
</constant>
|
||||
<constant name="FLAG_REQUIRED" value="2" enum="AccessibilityFlags">
|
||||
Element require user input.
|
||||
</constant>
|
||||
<constant name="FLAG_VISITED" value="3" enum="AccessibilityFlags">
|
||||
Element is a visited link.
|
||||
</constant>
|
||||
<constant name="FLAG_BUSY" value="4" enum="AccessibilityFlags">
|
||||
Element content is not ready (e.g. loading).
|
||||
</constant>
|
||||
<constant name="FLAG_MODAL" value="5" enum="AccessibilityFlags">
|
||||
Element is modal window.
|
||||
</constant>
|
||||
<constant name="FLAG_TOUCH_PASSTHROUGH" value="6" enum="AccessibilityFlags">
|
||||
Element allows touches to be passed through when a screen reader is in touch exploration mode.
|
||||
</constant>
|
||||
<constant name="FLAG_READONLY" value="7" enum="AccessibilityFlags">
|
||||
Element is text field with selectable but read-only text.
|
||||
</constant>
|
||||
<constant name="FLAG_DISABLED" value="8" enum="AccessibilityFlags">
|
||||
Element is disabled.
|
||||
</constant>
|
||||
<constant name="FLAG_CLIPS_CHILDREN" value="9" enum="AccessibilityFlags">
|
||||
Element clips children.
|
||||
</constant>
|
||||
<constant name="ACTION_CLICK" value="0" enum="AccessibilityAction">
|
||||
Single click action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_FOCUS" value="1" enum="AccessibilityAction">
|
||||
Focus action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_BLUR" value="2" enum="AccessibilityAction">
|
||||
Blur action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_COLLAPSE" value="3" enum="AccessibilityAction">
|
||||
Collapse action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_EXPAND" value="4" enum="AccessibilityAction">
|
||||
Expand action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_DECREMENT" value="5" enum="AccessibilityAction">
|
||||
Decrement action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_INCREMENT" value="6" enum="AccessibilityAction">
|
||||
Increment action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_HIDE_TOOLTIP" value="7" enum="AccessibilityAction">
|
||||
Hide tooltip action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SHOW_TOOLTIP" value="8" enum="AccessibilityAction">
|
||||
Show tooltip action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_TEXT_SELECTION" value="9" enum="AccessibilityAction">
|
||||
Set text selection action, callback argument is set to [Dictionary] with the following keys:
|
||||
- [code]"start_element"[/code] accessibility element of the selection start.
|
||||
- [code]"start_char"[/code] character offset relative to the accessibility element of the selection start.
|
||||
- [code]"end_element"[/code] accessibility element of the selection end.
|
||||
- [code]"end_char"[/code] character offset relative to the accessibility element of the selection end.
|
||||
</constant>
|
||||
<constant name="ACTION_REPLACE_SELECTED_TEXT" value="10" enum="AccessibilityAction">
|
||||
Replace text action, callback argument is set to [String] with the replacement text.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_BACKWARD" value="11" enum="AccessibilityAction">
|
||||
Scroll backward action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_DOWN" value="12" enum="AccessibilityAction">
|
||||
Scroll down action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_FORWARD" value="13" enum="AccessibilityAction">
|
||||
Scroll forward action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_LEFT" value="14" enum="AccessibilityAction">
|
||||
Scroll left action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_RIGHT" value="15" enum="AccessibilityAction">
|
||||
Scroll right action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_UP" value="16" enum="AccessibilityAction">
|
||||
Scroll up action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_INTO_VIEW" value="17" enum="AccessibilityAction">
|
||||
Scroll into view action, callback argument is set to [enum AccessibilityScrollHint].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_TO_POINT" value="18" enum="AccessibilityAction">
|
||||
Scroll to point action, callback argument is set to [Vector2] with the relative point coordinates.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_SCROLL_OFFSET" value="19" enum="AccessibilityAction">
|
||||
Set scroll offset action, callback argument is set to [Vector2] with the scroll offset.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_VALUE" value="20" enum="AccessibilityAction">
|
||||
Set value action, callback argument is set to [String] or number with the new value.
|
||||
</constant>
|
||||
<constant name="ACTION_SHOW_CONTEXT_MENU" value="21" enum="AccessibilityAction">
|
||||
Show context menu action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_CUSTOM" value="22" enum="AccessibilityAction">
|
||||
Custom action, callback argument is set to the integer action ID.
|
||||
</constant>
|
||||
<constant name="LIVE_OFF" value="0" enum="AccessibilityLiveMode">
|
||||
Indicates that updates to the live region should not be presented.
|
||||
</constant>
|
||||
<constant name="LIVE_POLITE" value="1" enum="AccessibilityLiveMode">
|
||||
Indicates that updates to the live region should be presented at the next opportunity (for example at the end of speaking the current sentence).
|
||||
</constant>
|
||||
<constant name="LIVE_ASSERTIVE" value="2" enum="AccessibilityLiveMode">
|
||||
Indicates that updates to the live region have the highest priority and should be presented immediately.
|
||||
</constant>
|
||||
<constant name="SCROLL_UNIT_ITEM" value="0" enum="AccessibilityScrollUnit">
|
||||
The amount by which to scroll. A single item of a list, line of text.
|
||||
</constant>
|
||||
<constant name="SCROLL_UNIT_PAGE" value="1" enum="AccessibilityScrollUnit">
|
||||
The amount by which to scroll. A single page.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_TOP_LEFT" value="0" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Top-left edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_BOTTOM_RIGHT" value="1" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Bottom-right edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_TOP_EDGE" value="2" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Top edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_BOTTOM_EDGE" value="3" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Bottom edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_LEFT_EDGE" value="4" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Left edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_RIGHT_EDGE" value="5" enum="AccessibilityScrollHint">
|
||||
A preferred position for the node scrolled into view. Right edge of the scroll container.
|
||||
</constant>
|
||||
</constants>
|
||||
</class>
|
||||
|
|
@ -998,7 +998,7 @@
|
|||
<member name="accessibility_labeled_by_nodes" type="NodePath[]" setter="set_accessibility_labeled_by_nodes" getter="get_accessibility_labeled_by_nodes" default="[]">
|
||||
The paths to the nodes which label this node.
|
||||
</member>
|
||||
<member name="accessibility_live" type="int" setter="set_accessibility_live" getter="get_accessibility_live" enum="DisplayServer.AccessibilityLiveMode" default="0">
|
||||
<member name="accessibility_live" type="int" setter="set_accessibility_live" getter="get_accessibility_live" enum="AccessibilityServer.AccessibilityLiveMode" default="0">
|
||||
The mode with which a live region updates. A live region is a [Node] that is updated as a result of an external event when the user's focus may be elsewhere.
|
||||
</member>
|
||||
<member name="accessibility_name" type="String" setter="set_accessibility_name" getter="get_accessibility_name" default="""">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<tutorials>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="accessibility_create_element">
|
||||
<method name="accessibility_create_element" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="RID" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="role" type="int" enum="DisplayServer.AccessibilityRole" />
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
[b]Note:[/b] An accessibility element is created and freed automatically for each [Node]. In general, this function should not be called manually.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_create_sub_element">
|
||||
<method name="accessibility_create_sub_element" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="RID" />
|
||||
<param index="0" name="parent_rid" type="RID" />
|
||||
<param index="1" name="role" type="int" enum="DisplayServer.AccessibilityRole" />
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
Creates a new, empty accessibility sub-element resource. Sub-elements can be used to provide accessibility information for objects which are not [Node]s, such as list items, table cells, or menu items. Sub-elements are freed automatically when the parent element is freed, or can be freed early using the [method accessibility_free_element] method.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_create_sub_text_edit_elements">
|
||||
<method name="accessibility_create_sub_text_edit_elements" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="RID" />
|
||||
<param index="0" name="parent_rid" type="RID" />
|
||||
<param index="1" name="shaped_text" type="RID" />
|
||||
|
|
@ -40,14 +40,14 @@
|
|||
If [param is_last_line] is [code]true[/code], no trailing newline is appended to the text content. Set to [code]true[/code] for the last line in multi-line text fields and for single-line text fields.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_element_get_meta" qualifiers="const">
|
||||
<method name="accessibility_element_get_meta" qualifiers="const" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="Variant" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Returns the metadata of the accessibility element [param id].
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_element_set_meta">
|
||||
<method name="accessibility_element_set_meta" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="meta" type="Variant" />
|
||||
|
|
@ -55,21 +55,21 @@
|
|||
Sets the metadata of the accessibility element [param id] to [param meta].
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_free_element">
|
||||
<method name="accessibility_free_element" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Frees the accessibility element [param id] created by [method accessibility_create_element], [method accessibility_create_sub_element], or [method accessibility_create_sub_text_edit_elements].
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_get_window_root" qualifiers="const">
|
||||
<method name="accessibility_get_window_root" qualifiers="const" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="RID" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<description>
|
||||
Returns the main accessibility element of the OS native window.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_has_element" qualifiers="const">
|
||||
<method name="accessibility_has_element" qualifiers="const" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="bool" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
[b]Note:[/b] Accessibility debugging tools, such as Accessibility Insights for Windows, Accessibility Inspector (macOS), or AT-SPI Browser (Linux/BSD), do not count as assistive apps and will not affect this value. To test your project with these tools, set [member ProjectSettings.accessibility/general/accessibility_support] to [code]1[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_set_window_focused">
|
||||
<method name="accessibility_set_window_focused" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="focused" type="bool" />
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
[b]Note:[/b] Advanced users only! [Window] objects call this method automatically.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_set_window_rect">
|
||||
<method name="accessibility_set_window_rect" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="window_id" type="int" />
|
||||
<param index="1" name="rect_out" type="Rect2" />
|
||||
|
|
@ -126,7 +126,7 @@
|
|||
[b]Note:[/b] This method is implemented on macOS and Windows.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_action">
|
||||
<method name="accessibility_update_add_action" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="action" type="int" enum="DisplayServer.AccessibilityAction" />
|
||||
|
|
@ -135,7 +135,7 @@
|
|||
Adds a callback for the accessibility action (action which can be performed by using a special screen reader command or buttons on the Braille display), and marks this action as supported. The action callback receives one [Variant] argument, which value depends on action type.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_child">
|
||||
<method name="accessibility_update_add_child" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="child_id" type="RID" />
|
||||
|
|
@ -144,7 +144,7 @@
|
|||
[b]Note:[/b] [Node] children and sub-elements are added to the child list automatically.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_custom_action">
|
||||
<method name="accessibility_update_add_custom_action" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="action_id" type="int" />
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
Adds support for a custom accessibility action. [param action_id] is passed as an argument to the callback of [constant ACTION_CUSTOM] action.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_controls">
|
||||
<method name="accessibility_update_add_related_controls" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -161,7 +161,7 @@
|
|||
Adds an element that is controlled by this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_described_by">
|
||||
<method name="accessibility_update_add_related_described_by" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -169,7 +169,7 @@
|
|||
Adds an element that describes this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_details">
|
||||
<method name="accessibility_update_add_related_details" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -177,7 +177,7 @@
|
|||
Adds an element that details this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_flow_to">
|
||||
<method name="accessibility_update_add_related_flow_to" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -185,7 +185,7 @@
|
|||
Adds an element that this element flow into.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_labeled_by">
|
||||
<method name="accessibility_update_add_related_labeled_by" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -193,7 +193,7 @@
|
|||
Adds an element that labels this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_add_related_radio_group">
|
||||
<method name="accessibility_update_add_related_radio_group" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="related_id" type="RID" />
|
||||
|
|
@ -202,7 +202,7 @@
|
|||
[b]Note:[/b] This method should be called on each element of the group, using all other elements as [param related_id].
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_active_descendant">
|
||||
<method name="accessibility_update_set_active_descendant" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
|
|
@ -210,7 +210,7 @@
|
|||
Adds an element that is an active descendant of this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_background_color">
|
||||
<method name="accessibility_update_set_background_color" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
|
|
@ -218,7 +218,7 @@
|
|||
Sets element background color.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_bounds">
|
||||
<method name="accessibility_update_set_bounds" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="p_rect" type="Rect2" />
|
||||
|
|
@ -226,7 +226,7 @@
|
|||
Sets element bounding box, relative to the node position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_checked">
|
||||
<method name="accessibility_update_set_checked" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="checekd" type="bool" />
|
||||
|
|
@ -234,7 +234,7 @@
|
|||
Sets element checked state.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_classname">
|
||||
<method name="accessibility_update_set_classname" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="classname" type="String" />
|
||||
|
|
@ -242,7 +242,7 @@
|
|||
Sets element class name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_color_value">
|
||||
<method name="accessibility_update_set_color_value" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
|
|
@ -250,7 +250,7 @@
|
|||
Sets element color value.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_description">
|
||||
<method name="accessibility_update_set_description" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
|
|
@ -258,7 +258,7 @@
|
|||
Sets element accessibility description.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_error_message">
|
||||
<method name="accessibility_update_set_error_message" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
|
|
@ -266,7 +266,7 @@
|
|||
Sets an element which contains an error message for this element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_extra_info">
|
||||
<method name="accessibility_update_set_extra_info" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="name" type="String" />
|
||||
|
|
@ -274,7 +274,7 @@
|
|||
Sets element accessibility extra information added to the element name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_flag">
|
||||
<method name="accessibility_update_set_flag" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="flag" type="int" enum="DisplayServer.AccessibilityFlags" />
|
||||
|
|
@ -283,14 +283,14 @@
|
|||
Sets element flag.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_focus">
|
||||
<method name="accessibility_update_set_focus" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<description>
|
||||
Sets currently focused element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_foreground_color">
|
||||
<method name="accessibility_update_set_foreground_color" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="color" type="Color" />
|
||||
|
|
@ -298,7 +298,7 @@
|
|||
Sets element foreground color.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_in_page_link_target">
|
||||
<method name="accessibility_update_set_in_page_link_target" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
|
|
@ -306,7 +306,7 @@
|
|||
Sets target element for the link.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_language">
|
||||
<method name="accessibility_update_set_language" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="language" type="String" />
|
||||
|
|
@ -314,7 +314,7 @@
|
|||
Sets element text language.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_item_count">
|
||||
<method name="accessibility_update_set_list_item_count" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="size" type="int" />
|
||||
|
|
@ -322,7 +322,7 @@
|
|||
Sets number of items in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_item_expanded">
|
||||
<method name="accessibility_update_set_list_item_expanded" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="expanded" type="bool" />
|
||||
|
|
@ -330,7 +330,7 @@
|
|||
Sets list/tree item expanded status.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_item_index">
|
||||
<method name="accessibility_update_set_list_item_index" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
|
|
@ -338,7 +338,7 @@
|
|||
Sets the position of the element in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_item_level">
|
||||
<method name="accessibility_update_set_list_item_level" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="level" type="int" />
|
||||
|
|
@ -346,7 +346,7 @@
|
|||
Sets the hierarchical level of the element in the list.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_item_selected">
|
||||
<method name="accessibility_update_set_list_item_selected" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="selected" type="bool" />
|
||||
|
|
@ -354,7 +354,7 @@
|
|||
Sets list/tree item selected status.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_list_orientation">
|
||||
<method name="accessibility_update_set_list_orientation" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="vertical" type="bool" />
|
||||
|
|
@ -362,7 +362,7 @@
|
|||
Sets the orientation of the list elements.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_live">
|
||||
<method name="accessibility_update_set_live" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="live" type="int" enum="DisplayServer.AccessibilityLiveMode" />
|
||||
|
|
@ -370,7 +370,7 @@
|
|||
Sets the priority of the live region updates.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_member_of">
|
||||
<method name="accessibility_update_set_member_of" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="group_id" type="RID" />
|
||||
|
|
@ -378,7 +378,7 @@
|
|||
Sets the element to be a member of the group.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_name">
|
||||
<method name="accessibility_update_set_name" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="name" type="String" />
|
||||
|
|
@ -386,7 +386,7 @@
|
|||
Sets element accessibility name.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_next_on_line">
|
||||
<method name="accessibility_update_set_next_on_line" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
|
|
@ -394,7 +394,7 @@
|
|||
Sets next element on the line.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_num_jump">
|
||||
<method name="accessibility_update_set_num_jump" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="jump" type="float" />
|
||||
|
|
@ -402,7 +402,7 @@
|
|||
Sets numeric value jump.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_num_range">
|
||||
<method name="accessibility_update_set_num_range" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
|
|
@ -411,7 +411,7 @@
|
|||
Sets numeric value range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_num_step">
|
||||
<method name="accessibility_update_set_num_step" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="step" type="float" />
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
Sets numeric value step.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_num_value">
|
||||
<method name="accessibility_update_set_num_value" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
|
|
@ -427,7 +427,7 @@
|
|||
Sets numeric value.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_placeholder">
|
||||
<method name="accessibility_update_set_placeholder" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="placeholder" type="String" />
|
||||
|
|
@ -435,7 +435,7 @@
|
|||
Sets placeholder text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_popup_type">
|
||||
<method name="accessibility_update_set_popup_type" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="popup" type="int" enum="DisplayServer.AccessibilityPopupType" />
|
||||
|
|
@ -443,7 +443,7 @@
|
|||
Sets popup type for popup buttons.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_previous_on_line">
|
||||
<method name="accessibility_update_set_previous_on_line" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="other_id" type="RID" />
|
||||
|
|
@ -451,7 +451,7 @@
|
|||
Sets previous element on the line.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_role">
|
||||
<method name="accessibility_update_set_role" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="role" type="int" enum="DisplayServer.AccessibilityRole" />
|
||||
|
|
@ -459,7 +459,7 @@
|
|||
Sets element accessibility role.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_role_description">
|
||||
<method name="accessibility_update_set_role_description" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
|
|
@ -467,7 +467,7 @@
|
|||
Sets element accessibility role description text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_scroll_x">
|
||||
<method name="accessibility_update_set_scroll_x" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
|
|
@ -475,7 +475,7 @@
|
|||
Sets scroll bar x position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_scroll_x_range">
|
||||
<method name="accessibility_update_set_scroll_x_range" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
|
|
@ -484,7 +484,7 @@
|
|||
Sets scroll bar x range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_scroll_y">
|
||||
<method name="accessibility_update_set_scroll_y" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="position" type="float" />
|
||||
|
|
@ -492,7 +492,7 @@
|
|||
Sets scroll bar y position.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_scroll_y_range">
|
||||
<method name="accessibility_update_set_scroll_y_range" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="min" type="float" />
|
||||
|
|
@ -501,7 +501,7 @@
|
|||
Sets scroll bar y range.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_shortcut">
|
||||
<method name="accessibility_update_set_shortcut" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="shortcut" type="String" />
|
||||
|
|
@ -509,7 +509,7 @@
|
|||
Sets the list of keyboard shortcuts used by element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_state_description">
|
||||
<method name="accessibility_update_set_state_description" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="description" type="String" />
|
||||
|
|
@ -517,7 +517,7 @@
|
|||
Sets human-readable description of the current checked state.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_cell_position">
|
||||
<method name="accessibility_update_set_table_cell_position" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="row_index" type="int" />
|
||||
|
|
@ -526,7 +526,7 @@
|
|||
Sets cell position in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_cell_span">
|
||||
<method name="accessibility_update_set_table_cell_span" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="row_span" type="int" />
|
||||
|
|
@ -535,7 +535,7 @@
|
|||
Sets cell row/column span.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_column_count">
|
||||
<method name="accessibility_update_set_table_column_count" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="count" type="int" />
|
||||
|
|
@ -543,7 +543,7 @@
|
|||
Sets number of columns in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_column_index">
|
||||
<method name="accessibility_update_set_table_column_index" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
|
|
@ -551,7 +551,7 @@
|
|||
Sets position of the column.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_row_count">
|
||||
<method name="accessibility_update_set_table_row_count" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="count" type="int" />
|
||||
|
|
@ -559,7 +559,7 @@
|
|||
Sets number of rows in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_table_row_index">
|
||||
<method name="accessibility_update_set_table_row_index" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="index" type="int" />
|
||||
|
|
@ -567,7 +567,7 @@
|
|||
Sets position of the row in the table.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_text_align">
|
||||
<method name="accessibility_update_set_text_align" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="align" type="int" enum="HorizontalAlignment" />
|
||||
|
|
@ -575,7 +575,7 @@
|
|||
Sets element text alignment.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_text_decorations">
|
||||
<method name="accessibility_update_set_text_decorations" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="underline" type="bool" />
|
||||
|
|
@ -585,7 +585,7 @@
|
|||
Sets text underline/overline/strikethrough.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_text_orientation">
|
||||
<method name="accessibility_update_set_text_orientation" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="vertical" type="bool" />
|
||||
|
|
@ -593,7 +593,7 @@
|
|||
Sets text orientation.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_text_selection">
|
||||
<method name="accessibility_update_set_text_selection" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="text_start_id" type="RID" />
|
||||
|
|
@ -604,7 +604,7 @@
|
|||
Sets text selection to the text field. [param text_start_id] and [param text_end_id] should be elements created by [method accessibility_create_sub_text_edit_elements]. Character offsets are relative to the corresponding element.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_tooltip">
|
||||
<method name="accessibility_update_set_tooltip" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="tooltip" type="String" />
|
||||
|
|
@ -612,7 +612,7 @@
|
|||
Sets tooltip text.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_transform">
|
||||
<method name="accessibility_update_set_transform" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="transform" type="Transform2D" />
|
||||
|
|
@ -620,7 +620,7 @@
|
|||
Sets element 2D transform.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_url">
|
||||
<method name="accessibility_update_set_url" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="url" type="String" />
|
||||
|
|
@ -628,7 +628,7 @@
|
|||
Sets link URL.
|
||||
</description>
|
||||
</method>
|
||||
<method name="accessibility_update_set_value">
|
||||
<method name="accessibility_update_set_value" deprecated="Use [AccessibilityServer] instead.">
|
||||
<return type="void" />
|
||||
<param index="0" name="id" type="RID" />
|
||||
<param index="1" name="value" type="String" />
|
||||
|
|
@ -2753,293 +2753,297 @@
|
|||
<constant name="FEATURE_HDR_OUTPUT" value="35" enum="Feature">
|
||||
Display server supports HDR output. [b]macOS, iOS, visionOS, Windows[/b]
|
||||
</constant>
|
||||
<constant name="ROLE_UNKNOWN" value="0" enum="AccessibilityRole">
|
||||
<constant name="ROLE_UNKNOWN" value="0" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Unknown or custom role.
|
||||
</constant>
|
||||
<constant name="ROLE_DEFAULT_BUTTON" value="1" enum="AccessibilityRole">
|
||||
<constant name="ROLE_DEFAULT_BUTTON" value="1" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Default dialog button element.
|
||||
</constant>
|
||||
<constant name="ROLE_AUDIO" value="2" enum="AccessibilityRole">
|
||||
<constant name="ROLE_AUDIO" value="2" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Audio player element.
|
||||
</constant>
|
||||
<constant name="ROLE_VIDEO" value="3" enum="AccessibilityRole">
|
||||
<constant name="ROLE_VIDEO" value="3" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Video player element.
|
||||
</constant>
|
||||
<constant name="ROLE_STATIC_TEXT" value="4" enum="AccessibilityRole">
|
||||
<constant name="ROLE_STATIC_TEXT" value="4" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Non-editable text label.
|
||||
</constant>
|
||||
<constant name="ROLE_CONTAINER" value="5" enum="AccessibilityRole">
|
||||
<constant name="ROLE_CONTAINER" value="5" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Container element. Elements with this role are used for internal structure and ignored by screen readers.
|
||||
</constant>
|
||||
<constant name="ROLE_PANEL" value="6" enum="AccessibilityRole">
|
||||
<constant name="ROLE_PANEL" value="6" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Panel container element.
|
||||
</constant>
|
||||
<constant name="ROLE_BUTTON" value="7" enum="AccessibilityRole">
|
||||
<constant name="ROLE_BUTTON" value="7" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Button element.
|
||||
</constant>
|
||||
<constant name="ROLE_LINK" value="8" enum="AccessibilityRole">
|
||||
<constant name="ROLE_LINK" value="8" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Link element.
|
||||
</constant>
|
||||
<constant name="ROLE_CHECK_BOX" value="9" enum="AccessibilityRole">
|
||||
<constant name="ROLE_CHECK_BOX" value="9" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Check box element.
|
||||
</constant>
|
||||
<constant name="ROLE_RADIO_BUTTON" value="10" enum="AccessibilityRole">
|
||||
<constant name="ROLE_RADIO_BUTTON" value="10" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Radio button element.
|
||||
</constant>
|
||||
<constant name="ROLE_CHECK_BUTTON" value="11" enum="AccessibilityRole">
|
||||
<constant name="ROLE_CHECK_BUTTON" value="11" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Check button element.
|
||||
</constant>
|
||||
<constant name="ROLE_SCROLL_BAR" value="12" enum="AccessibilityRole">
|
||||
<constant name="ROLE_SCROLL_BAR" value="12" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_SCROLL_VIEW" value="13" enum="AccessibilityRole">
|
||||
<constant name="ROLE_SCROLL_VIEW" value="13" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll container element.
|
||||
</constant>
|
||||
<constant name="ROLE_SPLITTER" value="14" enum="AccessibilityRole">
|
||||
<constant name="ROLE_SPLITTER" value="14" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Container splitter handle element.
|
||||
</constant>
|
||||
<constant name="ROLE_SLIDER" value="15" enum="AccessibilityRole">
|
||||
<constant name="ROLE_SLIDER" value="15" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Slider element.
|
||||
</constant>
|
||||
<constant name="ROLE_SPIN_BUTTON" value="16" enum="AccessibilityRole">
|
||||
<constant name="ROLE_SPIN_BUTTON" value="16" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Spin box element.
|
||||
</constant>
|
||||
<constant name="ROLE_PROGRESS_INDICATOR" value="17" enum="AccessibilityRole">
|
||||
<constant name="ROLE_PROGRESS_INDICATOR" value="17" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Progress indicator element.
|
||||
</constant>
|
||||
<constant name="ROLE_TEXT_FIELD" value="18" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TEXT_FIELD" value="18" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Editable text field element.
|
||||
</constant>
|
||||
<constant name="ROLE_MULTILINE_TEXT_FIELD" value="19" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MULTILINE_TEXT_FIELD" value="19" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Multiline editable text field element.
|
||||
</constant>
|
||||
<constant name="ROLE_COLOR_PICKER" value="20" enum="AccessibilityRole">
|
||||
<constant name="ROLE_COLOR_PICKER" value="20" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Color picker element.
|
||||
</constant>
|
||||
<constant name="ROLE_TABLE" value="21" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TABLE" value="21" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table element.
|
||||
</constant>
|
||||
<constant name="ROLE_CELL" value="22" enum="AccessibilityRole">
|
||||
<constant name="ROLE_CELL" value="22" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table/tree cell element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW" value="23" enum="AccessibilityRole">
|
||||
<constant name="ROLE_ROW" value="23" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table/tree row element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW_GROUP" value="24" enum="AccessibilityRole">
|
||||
<constant name="ROLE_ROW_GROUP" value="24" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table/tree row group element.
|
||||
</constant>
|
||||
<constant name="ROLE_ROW_HEADER" value="25" enum="AccessibilityRole">
|
||||
<constant name="ROLE_ROW_HEADER" value="25" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table/tree row header element.
|
||||
</constant>
|
||||
<constant name="ROLE_COLUMN_HEADER" value="26" enum="AccessibilityRole">
|
||||
<constant name="ROLE_COLUMN_HEADER" value="26" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Table/tree column header element.
|
||||
</constant>
|
||||
<constant name="ROLE_TREE" value="27" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TREE" value="27" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tree view element.
|
||||
</constant>
|
||||
<constant name="ROLE_TREE_ITEM" value="28" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TREE_ITEM" value="28" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tree view item element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST" value="29" enum="AccessibilityRole">
|
||||
<constant name="ROLE_LIST" value="29" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
List element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_ITEM" value="30" enum="AccessibilityRole">
|
||||
<constant name="ROLE_LIST_ITEM" value="30" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
List item element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_BOX" value="31" enum="AccessibilityRole">
|
||||
<constant name="ROLE_LIST_BOX" value="31" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
List view element.
|
||||
</constant>
|
||||
<constant name="ROLE_LIST_BOX_OPTION" value="32" enum="AccessibilityRole">
|
||||
<constant name="ROLE_LIST_BOX_OPTION" value="32" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
List view item element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB_BAR" value="33" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TAB_BAR" value="33" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tab bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB" value="34" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TAB" value="34" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tab bar item element.
|
||||
</constant>
|
||||
<constant name="ROLE_TAB_PANEL" value="35" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TAB_PANEL" value="35" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tab panel element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_BAR" value="36" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MENU_BAR" value="36" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Menu bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU" value="37" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MENU" value="37" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup menu element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM" value="38" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MENU_ITEM" value="38" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup menu item element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM_CHECK_BOX" value="39" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MENU_ITEM_CHECK_BOX" value="39" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup menu check button item element.
|
||||
</constant>
|
||||
<constant name="ROLE_MENU_ITEM_RADIO" value="40" enum="AccessibilityRole">
|
||||
<constant name="ROLE_MENU_ITEM_RADIO" value="40" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup menu radio button item element.
|
||||
</constant>
|
||||
<constant name="ROLE_IMAGE" value="41" enum="AccessibilityRole">
|
||||
<constant name="ROLE_IMAGE" value="41" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Image element.
|
||||
</constant>
|
||||
<constant name="ROLE_WINDOW" value="42" enum="AccessibilityRole">
|
||||
<constant name="ROLE_WINDOW" value="42" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Window element.
|
||||
</constant>
|
||||
<constant name="ROLE_TITLE_BAR" value="43" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TITLE_BAR" value="43" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Embedded window title bar element.
|
||||
</constant>
|
||||
<constant name="ROLE_DIALOG" value="44" enum="AccessibilityRole">
|
||||
<constant name="ROLE_DIALOG" value="44" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Dialog window element.
|
||||
</constant>
|
||||
<constant name="ROLE_TOOLTIP" value="45" enum="AccessibilityRole">
|
||||
<constant name="ROLE_TOOLTIP" value="45" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Tooltip element.
|
||||
</constant>
|
||||
<constant name="ROLE_REGION" value="46" enum="AccessibilityRole">
|
||||
<constant name="ROLE_REGION" value="46" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Region/landmark element. Screen readers can navigate between regions using landmark navigation.
|
||||
</constant>
|
||||
<constant name="POPUP_MENU" value="0" enum="AccessibilityPopupType">
|
||||
<constant name="ROLE_TEXT_RUN" value="47" enum="AccessibilityRole" deprecated="Use [AccessibilityServer] instead.">
|
||||
Unifor text run.
|
||||
Note: This role is used for internal text elements, and should not be assigned to nodes.
|
||||
</constant>
|
||||
<constant name="POPUP_MENU" value="0" enum="AccessibilityPopupType" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup menu.
|
||||
</constant>
|
||||
<constant name="POPUP_LIST" value="1" enum="AccessibilityPopupType">
|
||||
<constant name="POPUP_LIST" value="1" enum="AccessibilityPopupType" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup list.
|
||||
</constant>
|
||||
<constant name="POPUP_TREE" value="2" enum="AccessibilityPopupType">
|
||||
<constant name="POPUP_TREE" value="2" enum="AccessibilityPopupType" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup tree view.
|
||||
</constant>
|
||||
<constant name="POPUP_DIALOG" value="3" enum="AccessibilityPopupType">
|
||||
<constant name="POPUP_DIALOG" value="3" enum="AccessibilityPopupType" deprecated="Use [AccessibilityServer] instead.">
|
||||
Popup dialog.
|
||||
</constant>
|
||||
<constant name="FLAG_HIDDEN" value="0" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_HIDDEN" value="0" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element is hidden for accessibility tools.
|
||||
</constant>
|
||||
<constant name="FLAG_MULTISELECTABLE" value="1" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_MULTISELECTABLE" value="1" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element supports multiple item selection.
|
||||
</constant>
|
||||
<constant name="FLAG_REQUIRED" value="2" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_REQUIRED" value="2" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element require user input.
|
||||
</constant>
|
||||
<constant name="FLAG_VISITED" value="3" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_VISITED" value="3" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element is a visited link.
|
||||
</constant>
|
||||
<constant name="FLAG_BUSY" value="4" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_BUSY" value="4" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element content is not ready (e.g. loading).
|
||||
</constant>
|
||||
<constant name="FLAG_MODAL" value="5" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_MODAL" value="5" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element is modal window.
|
||||
</constant>
|
||||
<constant name="FLAG_TOUCH_PASSTHROUGH" value="6" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_TOUCH_PASSTHROUGH" value="6" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element allows touches to be passed through when a screen reader is in touch exploration mode.
|
||||
</constant>
|
||||
<constant name="FLAG_READONLY" value="7" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_READONLY" value="7" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element is text field with selectable but read-only text.
|
||||
</constant>
|
||||
<constant name="FLAG_DISABLED" value="8" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_DISABLED" value="8" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element is disabled.
|
||||
</constant>
|
||||
<constant name="FLAG_CLIPS_CHILDREN" value="9" enum="AccessibilityFlags">
|
||||
<constant name="FLAG_CLIPS_CHILDREN" value="9" enum="AccessibilityFlags" deprecated="Use [AccessibilityServer] instead.">
|
||||
Element clips children.
|
||||
</constant>
|
||||
<constant name="ACTION_CLICK" value="0" enum="AccessibilityAction">
|
||||
<constant name="ACTION_CLICK" value="0" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Single click action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_FOCUS" value="1" enum="AccessibilityAction">
|
||||
<constant name="ACTION_FOCUS" value="1" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Focus action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_BLUR" value="2" enum="AccessibilityAction">
|
||||
<constant name="ACTION_BLUR" value="2" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Blur action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_COLLAPSE" value="3" enum="AccessibilityAction">
|
||||
<constant name="ACTION_COLLAPSE" value="3" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Collapse action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_EXPAND" value="4" enum="AccessibilityAction">
|
||||
<constant name="ACTION_EXPAND" value="4" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Expand action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_DECREMENT" value="5" enum="AccessibilityAction">
|
||||
<constant name="ACTION_DECREMENT" value="5" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Decrement action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_INCREMENT" value="6" enum="AccessibilityAction">
|
||||
<constant name="ACTION_INCREMENT" value="6" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Increment action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_HIDE_TOOLTIP" value="7" enum="AccessibilityAction">
|
||||
<constant name="ACTION_HIDE_TOOLTIP" value="7" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Hide tooltip action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SHOW_TOOLTIP" value="8" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SHOW_TOOLTIP" value="8" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Show tooltip action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_TEXT_SELECTION" value="9" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SET_TEXT_SELECTION" value="9" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Set text selection action, callback argument is set to [Dictionary] with the following keys:
|
||||
- [code]"start_element"[/code] accessibility element of the selection start.
|
||||
- [code]"start_char"[/code] character offset relative to the accessibility element of the selection start.
|
||||
- [code]"end_element"[/code] accessibility element of the selection end.
|
||||
- [code]"end_char"[/code] character offset relative to the accessibility element of the selection end.
|
||||
</constant>
|
||||
<constant name="ACTION_REPLACE_SELECTED_TEXT" value="10" enum="AccessibilityAction">
|
||||
<constant name="ACTION_REPLACE_SELECTED_TEXT" value="10" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Replace text action, callback argument is set to [String] with the replacement text.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_BACKWARD" value="11" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_BACKWARD" value="11" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll backward action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_DOWN" value="12" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_DOWN" value="12" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll down action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_FORWARD" value="13" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_FORWARD" value="13" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll forward action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_LEFT" value="14" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_LEFT" value="14" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll left action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_RIGHT" value="15" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_RIGHT" value="15" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll right action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_UP" value="16" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_UP" value="16" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll up action, callback argument is set to [enum AccessibilityScrollUnit].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_INTO_VIEW" value="17" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_INTO_VIEW" value="17" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll into view action, callback argument is set to [enum AccessibilityScrollHint].
|
||||
</constant>
|
||||
<constant name="ACTION_SCROLL_TO_POINT" value="18" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SCROLL_TO_POINT" value="18" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Scroll to point action, callback argument is set to [Vector2] with the relative point coordinates.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_SCROLL_OFFSET" value="19" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SET_SCROLL_OFFSET" value="19" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Set scroll offset action, callback argument is set to [Vector2] with the scroll offset.
|
||||
</constant>
|
||||
<constant name="ACTION_SET_VALUE" value="20" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SET_VALUE" value="20" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Set value action, callback argument is set to [String] or number with the new value.
|
||||
</constant>
|
||||
<constant name="ACTION_SHOW_CONTEXT_MENU" value="21" enum="AccessibilityAction">
|
||||
<constant name="ACTION_SHOW_CONTEXT_MENU" value="21" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Show context menu action, callback argument is not set.
|
||||
</constant>
|
||||
<constant name="ACTION_CUSTOM" value="22" enum="AccessibilityAction">
|
||||
<constant name="ACTION_CUSTOM" value="22" enum="AccessibilityAction" deprecated="Use [AccessibilityServer] instead.">
|
||||
Custom action, callback argument is set to the integer action ID.
|
||||
</constant>
|
||||
<constant name="LIVE_OFF" value="0" enum="AccessibilityLiveMode">
|
||||
<constant name="LIVE_OFF" value="0" enum="AccessibilityLiveMode" deprecated="Use [AccessibilityServer] instead.">
|
||||
Indicates that updates to the live region should not be presented.
|
||||
</constant>
|
||||
<constant name="LIVE_POLITE" value="1" enum="AccessibilityLiveMode">
|
||||
<constant name="LIVE_POLITE" value="1" enum="AccessibilityLiveMode" deprecated="Use [AccessibilityServer] instead.">
|
||||
Indicates that updates to the live region should be presented at the next opportunity (for example at the end of speaking the current sentence).
|
||||
</constant>
|
||||
<constant name="LIVE_ASSERTIVE" value="2" enum="AccessibilityLiveMode">
|
||||
<constant name="LIVE_ASSERTIVE" value="2" enum="AccessibilityLiveMode" deprecated="Use [AccessibilityServer] instead.">
|
||||
Indicates that updates to the live region have the highest priority and should be presented immediately.
|
||||
</constant>
|
||||
<constant name="SCROLL_UNIT_ITEM" value="0" enum="AccessibilityScrollUnit">
|
||||
<constant name="SCROLL_UNIT_ITEM" value="0" enum="AccessibilityScrollUnit" deprecated="Use [AccessibilityServer] instead.">
|
||||
The amount by which to scroll. A single item of a list, line of text.
|
||||
</constant>
|
||||
<constant name="SCROLL_UNIT_PAGE" value="1" enum="AccessibilityScrollUnit">
|
||||
<constant name="SCROLL_UNIT_PAGE" value="1" enum="AccessibilityScrollUnit" deprecated="Use [AccessibilityServer] instead.">
|
||||
The amount by which to scroll. A single page.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_TOP_LEFT" value="0" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_TOP_LEFT" value="0" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Top-left edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_BOTTOM_RIGHT" value="1" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_BOTTOM_RIGHT" value="1" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Bottom-right edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_TOP_EDGE" value="2" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_TOP_EDGE" value="2" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Top edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_BOTTOM_EDGE" value="3" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_BOTTOM_EDGE" value="3" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Bottom edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_LEFT_EDGE" value="4" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_LEFT_EDGE" value="4" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Left edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="SCROLL_HINT_RIGHT_EDGE" value="5" enum="AccessibilityScrollHint">
|
||||
<constant name="SCROLL_HINT_RIGHT_EDGE" value="5" enum="AccessibilityScrollHint" deprecated="Use [AccessibilityServer] instead.">
|
||||
A preferred position for the node scrolled into view. Right edge of the scroll container.
|
||||
</constant>
|
||||
<constant name="MOUSE_MODE_VISIBLE" value="0" enum="MouseMode">
|
||||
|
|
|
|||
|
|
@ -272,6 +272,11 @@
|
|||
</method>
|
||||
</methods>
|
||||
<members>
|
||||
<member name="accessibility/general/accessibility_driver" type="String" setter="" getter="" default=""accesskit"">
|
||||
Accessibility driver:
|
||||
-[b]accesskit[/b] (default): AccessKit driver.
|
||||
-[b]dummy[/b]: Dummy driver, screen reader support is disabled.
|
||||
</member>
|
||||
<member name="accessibility/general/accessibility_support" type="int" setter="" getter="" default="0" keywords="screen reader">
|
||||
Accessibility support mode:
|
||||
- [b]Auto[/b] ([code]0[/code]): Accessibility support is enabled, but updates to the accessibility information are processed only if an assistive app (such as a screen reader or a Braille display) is active (default).
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from misc.utility.scons_hints import *
|
|||
Import("env")
|
||||
|
||||
# Driver source files
|
||||
env.add_source_files(env.drivers_sources, "accessibility_driver_accesskit.cpp")
|
||||
env.add_source_files(env.drivers_sources, "accessibility_server_accesskit.cpp")
|
||||
|
||||
if env["accesskit_sdk_path"] == "":
|
||||
if env["platform"] == "windows":
|
||||
|
|
|
|||
|
|
@ -1,203 +0,0 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_driver_accesskit.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
|
||||
#include "core/templates/rid_owner.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
#ifdef ACCESSKIT_DYNAMIC
|
||||
#ifdef LINUXBSD_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-so_wrap.h"
|
||||
#endif
|
||||
#ifdef MACOS_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-dylib_wrap.h"
|
||||
#endif
|
||||
#ifdef WINDOWS_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-dll_wrap.h"
|
||||
#endif
|
||||
#else
|
||||
#include <accesskit.h>
|
||||
#endif
|
||||
|
||||
class AccessibilityDriverAccessKit : public AccessibilityDriver {
|
||||
static AccessibilityDriverAccessKit *singleton;
|
||||
|
||||
struct AccessibilityElement {
|
||||
HashMap<accesskit_action, Callable> actions;
|
||||
|
||||
DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID;
|
||||
RID parent;
|
||||
LocalVector<RID> children;
|
||||
Vector3i run;
|
||||
Variant meta;
|
||||
String name;
|
||||
String name_extra_info;
|
||||
|
||||
accesskit_role role = ACCESSKIT_ROLE_UNKNOWN;
|
||||
accesskit_node *node = nullptr;
|
||||
};
|
||||
mutable RID_PtrOwner<AccessibilityElement> rid_owner;
|
||||
|
||||
struct WindowData {
|
||||
// Adapter.
|
||||
#ifdef WINDOWS_ENABLED
|
||||
accesskit_windows_subclassing_adapter *adapter = nullptr;
|
||||
#endif
|
||||
#ifdef MACOS_ENABLED
|
||||
accesskit_macos_subclassing_adapter *adapter = nullptr;
|
||||
#endif
|
||||
#ifdef LINUXBSD_ENABLED
|
||||
accesskit_unix_adapter *adapter = nullptr;
|
||||
#endif
|
||||
|
||||
RID root_id;
|
||||
bool initial_update_completed = false;
|
||||
HashSet<RID> update;
|
||||
Callable activate;
|
||||
Callable deactivate;
|
||||
};
|
||||
|
||||
RID focus;
|
||||
|
||||
HashMap<DisplayServer::WindowID, WindowData> windows;
|
||||
|
||||
HashMap<DisplayServer::AccessibilityRole, accesskit_role> role_map;
|
||||
HashMap<DisplayServer::AccessibilityAction, accesskit_action> action_map;
|
||||
|
||||
_FORCE_INLINE_ accesskit_role _accessibility_role(DisplayServer::AccessibilityRole p_role) const;
|
||||
_FORCE_INLINE_ accesskit_action _accessibility_action(DisplayServer::AccessibilityAction p_action) const;
|
||||
|
||||
void _free_recursive(WindowData *p_wd, const RID &p_id);
|
||||
_FORCE_INLINE_ void _ensure_node(const RID &p_id, AccessibilityElement *p_ae);
|
||||
|
||||
static void _accessibility_action_callback(struct accesskit_action_request *p_request, void *p_user_data);
|
||||
static accesskit_tree_update *_accessibility_initial_tree_update_callback(void *p_user_data);
|
||||
static void _accessibility_deactivation_callback(void *p_user_data);
|
||||
static accesskit_tree_update *_accessibility_build_tree_update(void *p_user_data);
|
||||
|
||||
bool in_accessibility_update = false;
|
||||
Callable update_cb;
|
||||
|
||||
public:
|
||||
Error init() override;
|
||||
|
||||
bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) override;
|
||||
void window_destroy(DisplayServer::WindowID p_window_id) override;
|
||||
|
||||
RID accessibility_create_element(DisplayServer::WindowID p_window_id, DisplayServer::AccessibilityRole p_role) override;
|
||||
RID accessibility_create_sub_element(const RID &p_parent_rid, DisplayServer::AccessibilityRole p_role, int p_insert_pos = -1) override;
|
||||
virtual RID accessibility_create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) override;
|
||||
bool accessibility_has_element(const RID &p_id) const override;
|
||||
void accessibility_free_element(const RID &p_id) override;
|
||||
|
||||
void accessibility_element_set_meta(const RID &p_id, const Variant &p_meta) override;
|
||||
Variant accessibility_element_get_meta(const RID &p_id) const override;
|
||||
|
||||
void accessibility_update_if_active(const Callable &p_callable) override;
|
||||
|
||||
void accessibility_update_set_focus(const RID &p_id) override;
|
||||
RID accessibility_get_window_root(DisplayServer::WindowID p_window_id) const override;
|
||||
|
||||
void accessibility_set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override;
|
||||
void accessibility_set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) override;
|
||||
void accessibility_set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override;
|
||||
void accessibility_window_activation_completed(DisplayServer::WindowID p_window_id) override;
|
||||
void accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id) override;
|
||||
|
||||
void accessibility_update_set_role(const RID &p_id, DisplayServer::AccessibilityRole p_role) override;
|
||||
void accessibility_update_set_name(const RID &p_id, const String &p_name) override;
|
||||
void accessibility_update_set_extra_info(const RID &p_id, const String &p_name_extra_info) override;
|
||||
void accessibility_update_set_description(const RID &p_id, const String &p_description) override;
|
||||
void accessibility_update_set_value(const RID &p_id, const String &p_value) override;
|
||||
void accessibility_update_set_tooltip(const RID &p_id, const String &p_tooltip) override;
|
||||
void accessibility_update_set_bounds(const RID &p_id, const Rect2 &p_rect) override;
|
||||
void accessibility_update_set_transform(const RID &p_id, const Transform2D &p_transform) override;
|
||||
void accessibility_update_add_child(const RID &p_id, const RID &p_child_id) override;
|
||||
void accessibility_update_add_related_controls(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_add_related_details(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_add_related_described_by(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_add_related_flow_to(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_add_related_radio_group(const RID &p_id, const RID &p_related_id) override;
|
||||
void accessibility_update_set_active_descendant(const RID &p_id, const RID &p_other_id) override;
|
||||
void accessibility_update_set_next_on_line(const RID &p_id, const RID &p_other_id) override;
|
||||
void accessibility_update_set_previous_on_line(const RID &p_id, const RID &p_other_id) override;
|
||||
void accessibility_update_set_member_of(const RID &p_id, const RID &p_group_id) override;
|
||||
void accessibility_update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) override;
|
||||
void accessibility_update_set_error_message(const RID &p_id, const RID &p_other_id) override;
|
||||
void accessibility_update_set_live(const RID &p_id, DisplayServer::AccessibilityLiveMode p_live) override;
|
||||
void accessibility_update_add_action(const RID &p_id, DisplayServer::AccessibilityAction p_action, const Callable &p_callable) override;
|
||||
void accessibility_update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) override;
|
||||
void accessibility_update_set_table_row_count(const RID &p_id, int p_count) override;
|
||||
void accessibility_update_set_table_column_count(const RID &p_id, int p_count) override;
|
||||
void accessibility_update_set_table_row_index(const RID &p_id, int p_index) override;
|
||||
void accessibility_update_set_table_column_index(const RID &p_id, int p_index) override;
|
||||
void accessibility_update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) override;
|
||||
void accessibility_update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) override;
|
||||
void accessibility_update_set_list_item_count(const RID &p_id, int p_size) override;
|
||||
void accessibility_update_set_list_item_index(const RID &p_id, int p_index) override;
|
||||
void accessibility_update_set_list_item_level(const RID &p_id, int p_level) override;
|
||||
void accessibility_update_set_list_item_selected(const RID &p_id, bool p_selected) override;
|
||||
void accessibility_update_set_list_item_expanded(const RID &p_id, bool p_expanded) override;
|
||||
void accessibility_update_set_popup_type(const RID &p_id, DisplayServer::AccessibilityPopupType p_popup) override;
|
||||
void accessibility_update_set_checked(const RID &p_id, bool p_checekd) override;
|
||||
void accessibility_update_set_num_value(const RID &p_id, double p_position) override;
|
||||
void accessibility_update_set_num_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void accessibility_update_set_num_step(const RID &p_id, double p_step) override;
|
||||
void accessibility_update_set_num_jump(const RID &p_id, double p_jump) override;
|
||||
void accessibility_update_set_scroll_x(const RID &p_id, double p_position) override;
|
||||
void accessibility_update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void accessibility_update_set_scroll_y(const RID &p_id, double p_position) override;
|
||||
void accessibility_update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void accessibility_update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline) override;
|
||||
void accessibility_update_set_text_align(const RID &p_id, HorizontalAlignment p_align) override;
|
||||
void accessibility_update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) override;
|
||||
void accessibility_update_set_flag(const RID &p_id, DisplayServer::AccessibilityFlags p_flag, bool p_value) override;
|
||||
void accessibility_update_set_classname(const RID &p_id, const String &p_classname) override;
|
||||
void accessibility_update_set_placeholder(const RID &p_id, const String &p_placeholder) override;
|
||||
void accessibility_update_set_language(const RID &p_id, const String &p_language) override;
|
||||
void accessibility_update_set_text_orientation(const RID &p_id, bool p_vertical) override;
|
||||
void accessibility_update_set_list_orientation(const RID &p_id, bool p_vertical) override;
|
||||
void accessibility_update_set_shortcut(const RID &p_id, const String &p_shortcut) override;
|
||||
void accessibility_update_set_url(const RID &p_id, const String &p_url) override;
|
||||
void accessibility_update_set_role_description(const RID &p_id, const String &p_description) override;
|
||||
void accessibility_update_set_state_description(const RID &p_id, const String &p_description) override;
|
||||
void accessibility_update_set_color_value(const RID &p_id, const Color &p_color) override;
|
||||
void accessibility_update_set_background_color(const RID &p_id, const Color &p_color) override;
|
||||
void accessibility_update_set_foreground_color(const RID &p_id, const Color &p_color) override;
|
||||
|
||||
AccessibilityDriverAccessKit();
|
||||
~AccessibilityDriverAccessKit();
|
||||
};
|
||||
|
||||
#endif // ACCESSKIT_ENABLED
|
||||
File diff suppressed because it is too large
Load diff
212
drivers/accesskit/accessibility_server_accesskit.h
Normal file
212
drivers/accesskit/accessibility_server_accesskit.h
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_server_accesskit.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
|
||||
#include "core/templates/rid_owner.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
#ifdef ACCESSKIT_DYNAMIC
|
||||
#ifdef LINUXBSD_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-so_wrap.h"
|
||||
#endif
|
||||
#ifdef MACOS_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-dylib_wrap.h"
|
||||
#endif
|
||||
#ifdef WINDOWS_ENABLED
|
||||
#include "drivers/accesskit/dynwrappers/accesskit-dll_wrap.h"
|
||||
#endif
|
||||
#else
|
||||
#include <accesskit.h>
|
||||
#endif
|
||||
|
||||
class AccessibilityServerAccessKit : public AccessibilityServer {
|
||||
GDSOFTCLASS(AccessibilityServerAccessKit, AccessibilityServer);
|
||||
|
||||
static AccessibilityServer *create_func(Error &r_error);
|
||||
|
||||
struct AccessibilityElement {
|
||||
HashMap<accesskit_action, Callable> actions;
|
||||
|
||||
DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID;
|
||||
RID parent;
|
||||
LocalVector<RID> children;
|
||||
Vector3i run;
|
||||
Variant meta;
|
||||
String name;
|
||||
String name_extra_info;
|
||||
Variant value;
|
||||
int64_t flags = 0;
|
||||
|
||||
accesskit_role role = ACCESSKIT_ROLE_UNKNOWN;
|
||||
accesskit_node *node = nullptr;
|
||||
};
|
||||
mutable RID_PtrOwner<AccessibilityElement> rid_owner;
|
||||
|
||||
struct WindowData {
|
||||
// Adapter.
|
||||
#ifdef WINDOWS_ENABLED
|
||||
accesskit_windows_subclassing_adapter *adapter = nullptr;
|
||||
#endif
|
||||
#ifdef MACOS_ENABLED
|
||||
accesskit_macos_subclassing_adapter *adapter = nullptr;
|
||||
#endif
|
||||
#ifdef LINUXBSD_ENABLED
|
||||
accesskit_unix_adapter *adapter = nullptr;
|
||||
#endif
|
||||
|
||||
RID root_id;
|
||||
bool initial_update_completed = false;
|
||||
HashSet<RID> update;
|
||||
Callable activate;
|
||||
Callable deactivate;
|
||||
bool activated = false;
|
||||
};
|
||||
|
||||
RID focus;
|
||||
|
||||
HashMap<DisplayServer::WindowID, WindowData> windows;
|
||||
|
||||
HashMap<AccessibilityServerEnums::AccessibilityRole, accesskit_role> role_map;
|
||||
HashMap<AccessibilityServerEnums::AccessibilityAction, accesskit_action> action_map;
|
||||
|
||||
_FORCE_INLINE_ accesskit_role _accessibility_role(AccessibilityServerEnums::AccessibilityRole p_role) const;
|
||||
_FORCE_INLINE_ accesskit_action _accessibility_action(AccessibilityServerEnums::AccessibilityAction p_action) const;
|
||||
|
||||
void _free_recursive(WindowData *p_wd, const RID &p_id);
|
||||
_FORCE_INLINE_ void _ensure_node(const RID &p_id, AccessibilityElement *p_ae);
|
||||
|
||||
static void _accessibility_action_callback(struct accesskit_action_request *p_request, void *p_user_data);
|
||||
static accesskit_tree_update *_accessibility_initial_tree_update_callback(void *p_user_data);
|
||||
static void _accessibility_deactivation_callback(void *p_user_data);
|
||||
static accesskit_tree_update *_accessibility_build_tree_update(void *p_user_data);
|
||||
|
||||
bool in_accessibility_update = false;
|
||||
Callable update_cb;
|
||||
|
||||
public:
|
||||
bool is_supported() const override { return true; }
|
||||
|
||||
bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) override;
|
||||
void window_destroy(DisplayServer::WindowID p_window_id) override;
|
||||
|
||||
RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override;
|
||||
RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) override;
|
||||
virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) override;
|
||||
bool has_element(const RID &p_id) const override;
|
||||
void free_element(const RID &p_id) override;
|
||||
|
||||
void element_set_meta(const RID &p_id, const Variant &p_meta) override;
|
||||
Variant element_get_meta(const RID &p_id) const override;
|
||||
|
||||
void update_if_active(const Callable &p_callable) override;
|
||||
|
||||
void update_set_focus(const RID &p_id) override;
|
||||
RID get_window_root(DisplayServer::WindowID p_window_id) const override;
|
||||
|
||||
void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override;
|
||||
void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) override;
|
||||
void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override;
|
||||
void window_activation_completed(DisplayServer::WindowID p_window_id) override;
|
||||
void window_deactivation_completed(DisplayServer::WindowID p_window_id) override;
|
||||
|
||||
void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) override;
|
||||
void update_set_name(const RID &p_id, const String &p_name) override;
|
||||
void update_set_braille_label(const RID &p_id, const String &p_name) override;
|
||||
void update_set_braille_role_description(const RID &p_id, const String &p_description) override;
|
||||
void update_set_extra_info(const RID &p_id, const String &p_name_extra_info) override;
|
||||
void update_set_description(const RID &p_id, const String &p_description) override;
|
||||
void update_set_value(const RID &p_id, const String &p_value) override;
|
||||
void update_set_tooltip(const RID &p_id, const String &p_tooltip) override;
|
||||
void update_set_bounds(const RID &p_id, const Rect2 &p_rect) override;
|
||||
void update_set_transform(const RID &p_id, const Transform2D &p_transform) override;
|
||||
void update_add_child(const RID &p_id, const RID &p_child_id) override;
|
||||
void update_add_related_controls(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_add_related_details(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_add_related_described_by(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_add_related_flow_to(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_add_related_radio_group(const RID &p_id, const RID &p_related_id) override;
|
||||
void update_set_active_descendant(const RID &p_id, const RID &p_other_id) override;
|
||||
void update_set_next_on_line(const RID &p_id, const RID &p_other_id) override;
|
||||
void update_set_previous_on_line(const RID &p_id, const RID &p_other_id) override;
|
||||
void update_set_member_of(const RID &p_id, const RID &p_group_id) override;
|
||||
void update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) override;
|
||||
void update_set_error_message(const RID &p_id, const RID &p_other_id) override;
|
||||
void update_set_live(const RID &p_id, AccessibilityServerEnums::AccessibilityLiveMode p_live) override;
|
||||
void update_add_action(const RID &p_id, AccessibilityServerEnums::AccessibilityAction p_action, const Callable &p_callable) override;
|
||||
void update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) override;
|
||||
void update_set_table_row_count(const RID &p_id, int p_count) override;
|
||||
void update_set_table_column_count(const RID &p_id, int p_count) override;
|
||||
void update_set_table_row_index(const RID &p_id, int p_index) override;
|
||||
void update_set_table_column_index(const RID &p_id, int p_index) override;
|
||||
void update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) override;
|
||||
void update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) override;
|
||||
void update_set_list_item_count(const RID &p_id, int p_size) override;
|
||||
void update_set_list_item_index(const RID &p_id, int p_index) override;
|
||||
void update_set_list_item_level(const RID &p_id, int p_level) override;
|
||||
void update_set_list_item_selected(const RID &p_id, bool p_selected) override;
|
||||
void update_set_list_item_expanded(const RID &p_id, bool p_expanded) override;
|
||||
void update_set_popup_type(const RID &p_id, AccessibilityServerEnums::AccessibilityPopupType p_popup) override;
|
||||
void update_set_checked(const RID &p_id, bool p_checekd) override;
|
||||
void update_set_num_value(const RID &p_id, double p_position) override;
|
||||
void update_set_num_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void update_set_num_step(const RID &p_id, double p_step) override;
|
||||
void update_set_num_jump(const RID &p_id, double p_jump) override;
|
||||
void update_set_scroll_x(const RID &p_id, double p_position) override;
|
||||
void update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void update_set_scroll_y(const RID &p_id, double p_position) override;
|
||||
void update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) override;
|
||||
void update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline, const Color &p_color) override;
|
||||
void update_set_text_align(const RID &p_id, HorizontalAlignment p_align) override;
|
||||
void update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) override;
|
||||
void update_set_flag(const RID &p_id, AccessibilityServerEnums::AccessibilityFlags p_flag, bool p_value) override;
|
||||
void update_set_classname(const RID &p_id, const String &p_classname) override;
|
||||
void update_set_placeholder(const RID &p_id, const String &p_placeholder) override;
|
||||
void update_set_language(const RID &p_id, const String &p_language) override;
|
||||
void update_set_text_orientation(const RID &p_id, bool p_vertical) override;
|
||||
void update_set_list_orientation(const RID &p_id, bool p_vertical) override;
|
||||
void update_set_shortcut(const RID &p_id, const String &p_shortcut) override;
|
||||
void update_set_url(const RID &p_id, const String &p_url) override;
|
||||
void update_set_role_description(const RID &p_id, const String &p_description) override;
|
||||
void update_set_state_description(const RID &p_id, const String &p_description) override;
|
||||
void update_set_color_value(const RID &p_id, const Color &p_color) override;
|
||||
void update_set_background_color(const RID &p_id, const Color &p_color) override;
|
||||
void update_set_foreground_color(const RID &p_id, const Color &p_color) override;
|
||||
|
||||
static void register_create_func();
|
||||
|
||||
AccessibilityServerAccessKit();
|
||||
~AccessibilityServerAccessKit();
|
||||
};
|
||||
|
||||
#endif // ACCESSKIT_ENABLED
|
||||
|
|
@ -33,10 +33,18 @@
|
|||
#include "drivers/png/image_loader_png.h"
|
||||
#include "drivers/png/resource_saver_png.h"
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
#include "drivers/accesskit/accessibility_server_accesskit.h"
|
||||
#endif
|
||||
|
||||
static Ref<ImageLoaderPNG> image_loader_png;
|
||||
static Ref<ResourceSaverPNG> resource_saver_png;
|
||||
|
||||
void register_core_driver_types() {
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
AccessibilityServerAccessKit::register_create_func();
|
||||
#endif
|
||||
|
||||
image_loader_png.instantiate();
|
||||
ImageLoader::add_image_format_loader(image_loader_png);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "editor/editor_data.h"
|
||||
#include "editor/plugins/editor_plugin.h"
|
||||
#include "editor/settings/editor_folding.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
typedef void (*EditorNodeInitCallback)();
|
||||
typedef void (*EditorPluginInitializeCallback)();
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "scene/gui/label.h"
|
||||
#include "scene/gui/panel_container.h"
|
||||
#include "scene/resources/style_box_flat.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
EditorToaster *EditorToaster::singleton = nullptr;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/os/time.h"
|
||||
#include "core/version.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
String _get_version_string(EditorVersionButton::VersionFormat p_format) {
|
||||
String main;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "scene/gui/color_rect.h"
|
||||
#include "scene/gui/texture_rect.h"
|
||||
#include "scene/resources/style_box_flat.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
void TouchActionsPanel::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
#include "scene/resources/packed_scene.h"
|
||||
#include "scene/resources/style_box_flat.h"
|
||||
#include "scene/scene_string_names.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
void EditorInspectorActionButton::_notification(int p_what) {
|
||||
|
|
@ -294,18 +295,18 @@ void EditorProperty::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, vformat(TTR("Property: %s"), label));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, vformat(TTR("Property: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, vformat(TTR("Property: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, vformat(TTR("Property: %s"), label));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_MENU);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &EditorProperty::_accessibility_action_menu));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &EditorProperty::_accessibility_action_click));
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_MENU);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &EditorProperty::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &EditorProperty::_accessibility_action_click));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_READONLY, read_only);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_READONLY, read_only);
|
||||
if (checkable) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_checked(ae, checked);
|
||||
AccessibilityServer::get_singleton()->update_set_checked(ae, checked);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
@ -1740,13 +1741,13 @@ void EditorInspectorCategory::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, vformat(TTR("Category: %s"), label));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, vformat(TTR("Category: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, vformat(TTR("Category: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, vformat(TTR("Category: %s"), label));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_MENU);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &EditorInspectorCategory::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_MENU);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &EditorInspectorCategory::_accessibility_action_menu));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_TRANSLATION_CHANGED: {
|
||||
|
|
@ -2135,12 +2136,12 @@ void EditorInspectorSection::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, vformat(TTR("Section: %s"), label));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, vformat(TTR("Section: %s"), label));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &EditorInspectorSection::_accessibility_action_collapse));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &EditorInspectorSection::_accessibility_action_expand));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, vformat(TTR("Section: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, vformat(TTR("Section: %s"), label));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &EditorInspectorSection::_accessibility_action_collapse));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &EditorInspectorSection::_accessibility_action_expand));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
@ -3536,13 +3537,13 @@ void ArrayPanelContainer::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_meta("text"));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, get_meta("text"));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_meta("text"));
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, get_meta("text"));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_MENU);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &ArrayPanelContainer::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_MENU);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &ArrayPanelContainer::_accessibility_action_menu));
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
|
@ -3557,8 +3558,8 @@ void EditorInspectorArray::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, vformat(TTR("Array: %s"), get_label()));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, vformat(TTR("Array: %s"), get_label()));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, vformat(TTR("Array: %s"), get_label()));
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, vformat(TTR("Array: %s"), get_label()));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -189,20 +189,20 @@ void EngineUpdateLabel::_set_status(UpdateStatus p_status) {
|
|||
} else {
|
||||
_set_message(TTR("Update checks disabled."), theme_cache.disabled_color);
|
||||
}
|
||||
set_accessibility_live(DisplayServer::AccessibilityLiveMode::LIVE_OFF);
|
||||
set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode::LIVE_OFF);
|
||||
set_tooltip_text("");
|
||||
break;
|
||||
}
|
||||
|
||||
case UpdateStatus::ERROR: {
|
||||
set_disabled(false);
|
||||
set_accessibility_live(DisplayServer::AccessibilityLiveMode::LIVE_POLITE);
|
||||
set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode::LIVE_POLITE);
|
||||
set_tooltip_text(TTR("An error has occurred. Click to try again."));
|
||||
} break;
|
||||
|
||||
case UpdateStatus::UPDATE_AVAILABLE: {
|
||||
set_disabled(false);
|
||||
set_accessibility_live(DisplayServer::AccessibilityLiveMode::LIVE_POLITE);
|
||||
set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode::LIVE_POLITE);
|
||||
set_tooltip_text(TTR("Click to open download page."));
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -1095,7 +1095,7 @@ ProjectDialog::ProjectDialog() {
|
|||
|
||||
msg = memnew(Label);
|
||||
msg->set_focus_mode(Control::FOCUS_ACCESSIBILITY);
|
||||
msg->set_accessibility_live(DisplayServer::LIVE_POLITE);
|
||||
msg->set_accessibility_live(AccessibilityServerEnums::LIVE_POLITE);
|
||||
msg->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
|
||||
msg->set_custom_minimum_size(Size2(200, 0) * EDSCALE);
|
||||
msg->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "scene/gui/texture_button.h"
|
||||
#include "scene/gui/texture_rect.h"
|
||||
#include "scene/resources/image_texture.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void ProjectListItemControl::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
|
|
@ -107,21 +108,21 @@ void ProjectListItemControl::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_LIST_BOX_OPTION);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, TTR("Project") + " " + project_title->get_text());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, project_title->get_text());
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_LIST_BOX_OPTION);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, TTR("Project") + " " + project_title->get_text());
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, project_title->get_text());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &ProjectListItemControl::_accessibility_action_open));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &ProjectListItemControl::_accessibility_action_scroll_into_view));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &ProjectListItemControl::_accessibility_action_focus));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &ProjectListItemControl::_accessibility_action_blur));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &ProjectListItemControl::_accessibility_action_open));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &ProjectListItemControl::_accessibility_action_scroll_into_view));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &ProjectListItemControl::_accessibility_action_focus));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &ProjectListItemControl::_accessibility_action_blur));
|
||||
|
||||
ProjectList *pl = get_list();
|
||||
if (pl) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_index(ae, pl->get_index(this));
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_index(ae, pl->get_index(this));
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_level(ae, 0);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(ae, is_selected);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_level(ae, 0);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(ae, is_selected);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_FOCUS_ENTER: {
|
||||
|
|
@ -536,9 +537,9 @@ void ProjectList::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_LIST_BOX);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_count(ae, _projects.size());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_MULTISELECTABLE, false);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_LIST_BOX);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_count(ae, _projects.size());
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_MULTISELECTABLE, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "core/io/config_file.h"
|
||||
#include "core/os/os.h"
|
||||
#include "core/os/time.h"
|
||||
#include "scene/gui/box_container.h"
|
||||
#include "scene/gui/scroll_container.h"
|
||||
|
|
|
|||
|
|
@ -1545,7 +1545,7 @@ ProjectManager::ProjectManager() {
|
|||
hb->add_child(scan_btn);
|
||||
|
||||
loading_label = memnew(Label(TTRC("Loading, please wait...")));
|
||||
loading_label->set_accessibility_live(DisplayServer::AccessibilityLiveMode::LIVE_ASSERTIVE);
|
||||
loading_label->set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode::LIVE_ASSERTIVE);
|
||||
loading_label->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
loading_label->hide();
|
||||
hb->add_child(loading_label);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "core/os/os.h"
|
||||
#include "scene/gui/control.h"
|
||||
|
||||
class ScriptEditorDebugger;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/input/input_map.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/dialogs.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
// Maps to 2*axis if value is neg, or 2*axis+1 if value is pos.
|
||||
static const char *_joy_axis_descriptions[(size_t)JoyAxis::MAX * 2] = {
|
||||
|
|
@ -234,7 +235,7 @@ void EventListenerLineEdit::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_extra_info(ae, vformat(TTR("Listening for Input. Hold %s to release focus."), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
AccessibilityServer::get_singleton()->update_set_extra_info(ae, vformat(TTR("Listening for Input. Hold %s to release focus."), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@
|
|||
#include "servers/audio/audio_driver_dummy.h"
|
||||
#include "servers/audio/audio_server.h"
|
||||
#include "servers/camera/camera_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/display/display_server.h"
|
||||
#include "servers/movie_writer/movie_writer.h"
|
||||
#include "servers/register_server_types.h"
|
||||
|
|
@ -175,6 +176,7 @@ static SteamTracker *steam_tracker = nullptr;
|
|||
// Initialized in setup2()
|
||||
static AudioServer *audio_server = nullptr;
|
||||
static CameraServer *camera_server = nullptr;
|
||||
static AccessibilityServer *accessibility_server = nullptr;
|
||||
static DisplayServer *display_server = nullptr;
|
||||
static RenderingServer *rendering_server = nullptr;
|
||||
static TextServerManager *tsman = nullptr;
|
||||
|
|
@ -203,7 +205,8 @@ static int audio_driver_idx = -1;
|
|||
|
||||
// Engine config/tools
|
||||
|
||||
static DisplayServer::AccessibilityMode accessibility_mode = DisplayServer::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
static AccessibilityServerEnums::AccessibilityMode accessibility_mode = AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
static String accessibility_driver_name;
|
||||
static bool accessibility_mode_set = false;
|
||||
static bool single_window = false;
|
||||
static bool editor = false;
|
||||
|
|
@ -408,6 +411,7 @@ void finalize_display() {
|
|||
memdelete(rendering_server);
|
||||
|
||||
memdelete(display_server);
|
||||
memdelete(accessibility_server);
|
||||
}
|
||||
|
||||
void initialize_theme_db() {
|
||||
|
|
@ -634,6 +638,7 @@ void Main::print_help(const char *p_binary) {
|
|||
#endif
|
||||
print_help_option("--wid <window_id>", "Request parented to window.\n");
|
||||
print_help_option("--accessibility <mode>", "Select accessibility mode ['auto' (when screen reader is running, default), 'always', 'disabled'].\n");
|
||||
print_help_option("--accessibility-driver <driver>", "Select accessibility driver ['accesskit', 'dummy'].\n");
|
||||
|
||||
print_help_title("Debug options");
|
||||
print_help_option("-d, --debug", "Debug (local stdout debugger).\n");
|
||||
|
|
@ -1364,13 +1369,13 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
|||
if (N) {
|
||||
String string = N->get();
|
||||
if (string == "auto") {
|
||||
accessibility_mode = DisplayServer::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
accessibility_mode = AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
accessibility_mode_set = true;
|
||||
} else if (string == "always") {
|
||||
accessibility_mode = DisplayServer::AccessibilityMode::ACCESSIBILITY_ALWAYS;
|
||||
accessibility_mode = AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_ALWAYS;
|
||||
accessibility_mode_set = true;
|
||||
} else if (string == "disabled") {
|
||||
accessibility_mode = DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED;
|
||||
accessibility_mode = AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_DISABLED;
|
||||
accessibility_mode_set = true;
|
||||
} else {
|
||||
OS::get_singleton()->print("Accessibility mode argument not recognized, aborting.\n");
|
||||
|
|
@ -1381,6 +1386,15 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
|||
OS::get_singleton()->print("Missing accessibility mode argument, aborting.\n");
|
||||
goto error;
|
||||
}
|
||||
} else if (arg == "--accessibility-driver") {
|
||||
if (N) {
|
||||
String string = N->get();
|
||||
accessibility_driver_name = string;
|
||||
N = N->next();
|
||||
} else {
|
||||
OS::get_singleton()->print("Missing accessibility driver argument, aborting.\n");
|
||||
goto error;
|
||||
}
|
||||
} else if (arg == "-t" || arg == "--always-on-top") { // force always-on-top window
|
||||
|
||||
init_always_on_top = true;
|
||||
|
|
@ -3236,18 +3250,67 @@ Error Main::setup2(bool p_show_boot_logo) {
|
|||
if (!accessibility_mode_set) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (editor || project_manager || cmdline_tool) {
|
||||
accessibility_mode = (DisplayServer::AccessibilityMode)accessibility_mode_editor;
|
||||
accessibility_mode = (AccessibilityServerEnums::AccessibilityMode)accessibility_mode_editor;
|
||||
} else {
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
accessibility_mode = (DisplayServer::AccessibilityMode)GLOBAL_GET("accessibility/general/accessibility_support").operator int64_t();
|
||||
accessibility_mode = (AccessibilityServerEnums::AccessibilityMode)GLOBAL_GET("accessibility/general/accessibility_support").operator int64_t();
|
||||
}
|
||||
}
|
||||
DisplayServer::accessibility_set_mode(accessibility_mode);
|
||||
if (accessibility_driver_name.is_empty()) {
|
||||
if (!editor && !project_manager) {
|
||||
accessibility_driver_name = GLOBAL_GET("accessibility/general/accessibility_driver");
|
||||
} else {
|
||||
accessibility_driver_name = "accesskit";
|
||||
}
|
||||
}
|
||||
if (display_driver == NULL_DISPLAY_DRIVER || display_driver == EMBEDDED_DISPLAY_DRIVER || accessibility_mode == AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
accessibility_driver_name = "dummy";
|
||||
}
|
||||
int accessibility_driver_idx = -1;
|
||||
|
||||
if (accessibility_driver_name.is_empty() || accessibility_driver_name == "default") {
|
||||
accessibility_driver_idx = 0;
|
||||
} else {
|
||||
for (int i = 0; i < AccessibilityServer::get_create_function_count(); i++) {
|
||||
String name = AccessibilityServer::get_create_function_name(i);
|
||||
if (accessibility_driver_name == name) {
|
||||
accessibility_driver_idx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (accessibility_driver_idx < 0) {
|
||||
// If the requested driver wasn't found, pick the first entry.
|
||||
// If all else failed it would be the headless server.
|
||||
accessibility_driver_idx = 0;
|
||||
}
|
||||
}
|
||||
|
||||
Error err;
|
||||
accessibility_server = AccessibilityServer::create(accessibility_driver_idx, err);
|
||||
if (err != OK || accessibility_server == nullptr) {
|
||||
String last_name = AccessibilityServer::get_create_function_name(accessibility_driver_idx);
|
||||
|
||||
for (int i = 0; i < AccessibilityServer::get_create_function_count() - 1; i++) {
|
||||
if (i == accessibility_driver_idx) {
|
||||
continue; // Don't try the same twice.
|
||||
}
|
||||
String name = AccessibilityServer::get_create_function_name(i);
|
||||
WARN_PRINT(vformat("Accessibility driver %s failed, falling back to %s.", last_name, name));
|
||||
|
||||
accessibility_server = AccessibilityServer::create(i, err);
|
||||
if (err == OK && accessibility_server != nullptr) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (accessibility_server) {
|
||||
accessibility_server->set_mode(accessibility_mode);
|
||||
}
|
||||
|
||||
String rendering_driver = OS::get_singleton()->get_current_rendering_driver_name();
|
||||
Error err;
|
||||
display_server = DisplayServer::create(display_driver_idx, rendering_driver, window_mode, window_vsync_mode, window_flags, window_position, window_size, init_screen, context, init_embed_parent_window_id, err);
|
||||
if (err != OK || display_server == nullptr) {
|
||||
String last_name = DisplayServer::get_create_function_name(display_driver_idx);
|
||||
|
|
|
|||
6
misc/extension_api_validation/4.6-stable/GH-116839.txt
Normal file
6
misc/extension_api_validation/4.6-stable/GH-116839.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
GH-116839
|
||||
---------
|
||||
Validate extension JSON: Error: Field 'classes/Control/methods/get_accessibility_live/return_value': type changed value in new API, from "enum::DisplayServer.AccessibilityLiveMode" to "enum::AccessibilityServer.AccessibilityLiveMode".
|
||||
Validate extension JSON: Error: Field 'classes/Control/methods/set_accessibility_live/arguments/0': type changed value in new API, from "enum::DisplayServer.AccessibilityLiveMode" to "enum::AccessibilityServer.AccessibilityLiveMode".
|
||||
|
||||
Enum moved to AccessibilityServer. Compatibility methods registered.
|
||||
|
|
@ -43,6 +43,7 @@
|
|||
#include "core/input/input.h"
|
||||
#include "core/input/input_event.h"
|
||||
#include "core/os/main_loop.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/display/native_menu.h"
|
||||
#include "servers/rendering/dummy/rasterizer_dummy.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
|
@ -65,10 +66,6 @@
|
|||
#include "wayland/egl_manager_wayland_gles.h"
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
#include "drivers/accesskit/accessibility_driver_accesskit.h"
|
||||
#endif
|
||||
|
||||
#ifdef DBUS_ENABLED
|
||||
#include "freedesktop_at_spi_monitor.h"
|
||||
#include "freedesktop_portal_desktop.h"
|
||||
|
|
@ -238,11 +235,9 @@ bool DisplayServerWayland::has_feature(Feature p_feature) const {
|
|||
} break;
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
case FEATURE_ACCESSIBILITY_SCREEN_READER: {
|
||||
return (accessibility_driver != nullptr);
|
||||
return AccessibilityServer::get_singleton()->is_supported();
|
||||
} break;
|
||||
#endif
|
||||
|
||||
default: {
|
||||
return false;
|
||||
|
|
@ -747,15 +742,11 @@ DisplayServer::WindowID DisplayServerWayland::create_sub_window(WindowMode p_mod
|
|||
wd.flags = p_flags;
|
||||
wd.vsync_mode = p_vsync_mode;
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver && !accessibility_driver->window_create(wd.id, nullptr)) {
|
||||
if (!AccessibilityServer::get_singleton()->window_create(wd.id, nullptr)) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
// NOTE: Remember to clear its position if this window will be a toplevel. We
|
||||
// can only know once we show it.
|
||||
|
|
@ -907,11 +898,7 @@ void DisplayServerWayland::delete_sub_window(WindowID p_window_id) {
|
|||
popup_menu_list.pop_back();
|
||||
}
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(p_window_id);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(p_window_id);
|
||||
|
||||
if (wd.visible) {
|
||||
#ifdef VULKAN_ENABLED
|
||||
|
|
@ -1752,20 +1739,12 @@ void DisplayServerWayland::process_events() {
|
|||
_send_window_event(winev_msg->event, winev_msg->id);
|
||||
|
||||
if (winev_msg->event == WINDOW_EVENT_FOCUS_IN) {
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(winev_msg->id, true);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(winev_msg->id, true);
|
||||
if (OS::get_singleton()->get_main_loop()) {
|
||||
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_IN);
|
||||
}
|
||||
} else if (winev_msg->event == WINDOW_EVENT_FOCUS_OUT) {
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(winev_msg->id, false);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(winev_msg->id, false);
|
||||
if (OS::get_singleton()->get_main_loop()) {
|
||||
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_OUT);
|
||||
}
|
||||
|
|
@ -2056,16 +2035,6 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_get_mode() != DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
accessibility_driver = memnew(AccessibilityDriverAccessKit);
|
||||
if (accessibility_driver->init() != OK) {
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
rendering_driver = p_rendering_driver;
|
||||
|
||||
bool driver_found = false;
|
||||
|
|
@ -2243,15 +2212,11 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win
|
|||
wd.rect.size = p_resolution;
|
||||
wd.title = "Godot";
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver && !accessibility_driver->window_create(wd.id, nullptr)) {
|
||||
if (!AccessibilityServer::get_singleton()->window_create(wd.id, nullptr)) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
show_window(MAIN_WINDOW_ID);
|
||||
|
||||
|
|
@ -2321,10 +2286,8 @@ DisplayServerWayland::~DisplayServerWayland() {
|
|||
|
||||
if (!window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, id)) {
|
||||
toplevels.push_back(id);
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
} else if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(id);
|
||||
#endif
|
||||
} else {
|
||||
AccessibilityServer::get_singleton()->window_destroy(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2352,12 +2315,6 @@ DisplayServerWayland::~DisplayServerWayland() {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
memdelete(accessibility_driver);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef DBUS_ENABLED
|
||||
if (portal_desktop) {
|
||||
memdelete(portal_desktop);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include "drivers/png/png_driver_common.h"
|
||||
#include "drivers/unix/os_unix.h"
|
||||
#include "main/main.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/display/native_menu.h"
|
||||
#include "servers/rendering/dummy/rasterizer_dummy.h"
|
||||
|
||||
|
|
@ -81,10 +82,6 @@
|
|||
#include "drivers/gles3/rasterizer_gles3.h"
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
#include "drivers/accesskit/accessibility_driver_accesskit.h"
|
||||
#endif
|
||||
|
||||
#ifdef DBUS_ENABLED
|
||||
#include "freedesktop_at_spi_monitor.h"
|
||||
#include "freedesktop_portal_desktop.h"
|
||||
|
|
@ -235,11 +232,9 @@ bool DisplayServerX11::has_feature(Feature p_feature) const {
|
|||
} break;
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
case FEATURE_ACCESSIBILITY_SCREEN_READER: {
|
||||
return (accessibility_driver != nullptr);
|
||||
return AccessibilityServer::get_singleton()->is_supported();
|
||||
} break;
|
||||
#endif
|
||||
|
||||
default: {
|
||||
return false;
|
||||
|
|
@ -2109,11 +2104,7 @@ void DisplayServerX11::delete_sub_window(WindowID p_id) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(p_id);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(p_id);
|
||||
|
||||
if (wd.xic) {
|
||||
XDestroyIC(wd.xic);
|
||||
|
|
@ -5127,11 +5118,7 @@ void DisplayServerX11::process_events() {
|
|||
static unsigned int focus_order = 0;
|
||||
wd.focus_order = ++focus_order;
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(window_id, true);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, true);
|
||||
_send_window_event(wd, WINDOW_EVENT_FOCUS_IN);
|
||||
|
||||
if (mouse_mode_grab) {
|
||||
|
|
@ -5183,11 +5170,8 @@ void DisplayServerX11::process_events() {
|
|||
wd.focused = false;
|
||||
|
||||
Input::get_singleton()->release_pressed_events();
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(window_id, false);
|
||||
}
|
||||
#endif
|
||||
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, false);
|
||||
_send_window_event(wd, WINDOW_EVENT_FOCUS_OUT);
|
||||
|
||||
if (mouse_mode_grab) {
|
||||
|
|
@ -6512,15 +6496,11 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V
|
|||
wd.xkb_state = xkb_compose_state_new(dead_tbl, XKB_COMPOSE_STATE_NO_FLAGS);
|
||||
}
|
||||
#endif
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver && !accessibility_driver->window_create(id, nullptr)) {
|
||||
if (!AccessibilityServer::get_singleton()->window_create(id, nullptr)) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
#endif
|
||||
// Enable receiving notification when the window is initialized (MapNotify)
|
||||
// so the focus can be set at the right time.
|
||||
if (!wd.no_focus && !wd.is_popup) {
|
||||
|
|
@ -7048,16 +7028,6 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_get_mode() != DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
accessibility_driver = memnew(AccessibilityDriverAccessKit);
|
||||
if (accessibility_driver->init() != OK) {
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
//TODO - do Vulkan and OpenGL support checks, driver selection and fallback
|
||||
rendering_driver = p_rendering_driver;
|
||||
|
|
@ -7466,11 +7436,7 @@ DisplayServerX11::~DisplayServerX11() {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(E.key);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(E.key);
|
||||
|
||||
WindowData &wd = E.value;
|
||||
if (wd.xic) {
|
||||
|
|
@ -7546,11 +7512,7 @@ DisplayServerX11::~DisplayServerX11() {
|
|||
if (xmbstring) {
|
||||
memfree(xmbstring);
|
||||
}
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
memdelete(accessibility_driver);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef SPEECHD_ENABLED
|
||||
if (tts) {
|
||||
memdelete(tts);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
#include "drivers/png/png_driver_common.h"
|
||||
#include "main/main.h"
|
||||
#include "scene/resources/image_texture.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/dummy/rasterizer_dummy.h"
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
|
|
@ -77,10 +78,6 @@
|
|||
#include "servers/rendering/rendering_device.h"
|
||||
#endif
|
||||
|
||||
#if defined(ACCESSKIT_ENABLED)
|
||||
#include "drivers/accesskit/accessibility_driver_accesskit.h"
|
||||
#endif
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
#import <Carbon/Carbon.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
|
@ -141,15 +138,11 @@ DisplayServerMacOS::WindowID DisplayServerMacOS::_create_window(WindowMode p_mod
|
|||
[wd.window_object setRestorable:NO];
|
||||
[wd.window_object setColorSpace:[NSColorSpace sRGBColorSpace]];
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver && !accessibility_driver->window_create(id, (__bridge void *)wd.window_object)) {
|
||||
if (!AccessibilityServer::get_singleton()->window_create(id, (__bridge void *)wd.window_object)) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ([wd.window_object respondsToSelector:@selector(setTabbingMode:)]) {
|
||||
[wd.window_object setTabbingMode:NSWindowTabbingModeDisallowed];
|
||||
|
|
@ -192,11 +185,11 @@ DisplayServerMacOS::WindowID DisplayServerMacOS::_create_window(WindowMode p_mod
|
|||
}
|
||||
#endif
|
||||
Error err = rendering_context->window_create(window_id_counter, &wpd);
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (err != OK && accessibility_driver) {
|
||||
accessibility_driver->window_destroy(id);
|
||||
|
||||
if (err != OK) {
|
||||
AccessibilityServer::get_singleton()->window_destroy(id);
|
||||
}
|
||||
#endif
|
||||
|
||||
ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, vformat("Can't create a %s context", rendering_driver));
|
||||
|
||||
rendering_context->window_set_size(window_id_counter, p_rect.size.width, p_rect.size.height);
|
||||
|
|
@ -219,11 +212,8 @@ DisplayServerMacOS::WindowID DisplayServerMacOS::_create_window(WindowMode p_mod
|
|||
}
|
||||
}
|
||||
if (gl_failed) {
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(id);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(id);
|
||||
|
||||
windows.erase(id);
|
||||
ERR_FAIL_V_MSG(INVALID_WINDOW_ID, "Can't create an OpenGL context.");
|
||||
}
|
||||
|
|
@ -772,11 +762,8 @@ void DisplayServerMacOS::window_destroy(WindowID p_window) {
|
|||
rendering_context->window_destroy(p_window);
|
||||
}
|
||||
#endif
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(p_window);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(p_window);
|
||||
|
||||
windows.erase(p_window);
|
||||
|
||||
if (last_focused_window == p_window) {
|
||||
|
|
@ -838,11 +825,9 @@ bool DisplayServerMacOS::has_feature(Feature p_feature) const {
|
|||
case FEATURE_WINDOW_EMBEDDING:
|
||||
case FEATURE_HDR_OUTPUT:
|
||||
return true;
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
case FEATURE_ACCESSIBILITY_SCREEN_READER: {
|
||||
return (accessibility_driver != nullptr);
|
||||
return AccessibilityServer::get_singleton()->is_supported();
|
||||
} break;
|
||||
#endif
|
||||
default: {
|
||||
}
|
||||
}
|
||||
|
|
@ -3660,16 +3645,6 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM
|
|||
|
||||
native_menu = memnew(NativeMenuMacOS);
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_get_mode() != DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
accessibility_driver = memnew(AccessibilityDriverAccessKit);
|
||||
if (accessibility_driver->init() != OK) {
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
NSMenuItem *menu_item;
|
||||
NSString *title;
|
||||
|
||||
|
|
@ -3935,11 +3910,7 @@ DisplayServerMacOS::~DisplayServerMacOS() {
|
|||
rendering_context = nullptr;
|
||||
}
|
||||
#endif
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
memdelete(accessibility_driver);
|
||||
}
|
||||
#endif
|
||||
|
||||
[NSNotificationCenter.defaultCenter removeObserver:screen_observer];
|
||||
|
||||
CGDisplayRemoveReconfigurationCallback(_displays_arrangement_changed, nullptr);
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "editor/run/embedded_process.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
class DisplayServerMacOS;
|
||||
class EmbeddedProcessMacOS;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
#import "godot_content_view.h"
|
||||
#import "godot_window.h"
|
||||
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
@implementation GodotWindowDelegate {
|
||||
DisplayServer::WindowID window_id;
|
||||
DisplayServerMacOS *ds;
|
||||
|
|
@ -329,9 +331,8 @@
|
|||
|
||||
wd.focused = true;
|
||||
ds->set_last_focused_window(window_id);
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
ds->accessibility_set_window_focused(window_id, true);
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, true);
|
||||
|
||||
ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_IN);
|
||||
}
|
||||
|
||||
|
|
@ -348,9 +349,8 @@
|
|||
|
||||
wd.focused = false;
|
||||
ds->release_pressed_events();
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
ds->accessibility_set_window_focused(window_id, false);
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, false);
|
||||
|
||||
ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_OUT);
|
||||
}
|
||||
|
||||
|
|
@ -363,9 +363,8 @@
|
|||
|
||||
wd.focused = false;
|
||||
ds->release_pressed_events();
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
ds->accessibility_set_window_focused(window_id, false);
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, false);
|
||||
|
||||
ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_OUT);
|
||||
}
|
||||
|
||||
|
|
@ -379,9 +378,8 @@
|
|||
if ([wd.window_object isKeyWindow]) {
|
||||
wd.focused = true;
|
||||
ds->set_last_focused_window(window_id);
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
ds->accessibility_set_window_focused(window_id, true);
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(window_id, true);
|
||||
|
||||
ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_IN);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
#include "main/main.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/resources/texture.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/dummy/rasterizer_dummy.h"
|
||||
|
||||
#ifdef SDL_ENABLED
|
||||
|
|
@ -64,10 +65,6 @@
|
|||
#include "drivers/gles3/rasterizer_gles3.h"
|
||||
#endif
|
||||
|
||||
#if defined(ACCESSKIT_ENABLED)
|
||||
#include "drivers/accesskit/accessibility_driver_accesskit.h"
|
||||
#endif
|
||||
|
||||
#include <avrt.h>
|
||||
#include <dwmapi.h>
|
||||
#include <propkey.h>
|
||||
|
|
@ -158,11 +155,9 @@ bool DisplayServerWindows::has_feature(Feature p_feature) const {
|
|||
return (os_ver.dwBuildNumber >= 19041); // Fully supported on Windows 10 Vibranium R1 (2004)+ only, captured as black rect on older versions.
|
||||
case FEATURE_EMOJI_AND_SYMBOL_PICKER:
|
||||
return (os_ver.dwBuildNumber >= 17134); // Windows 10 Redstone 4 (1803)+ only.
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
case FEATURE_ACCESSIBILITY_SCREEN_READER: {
|
||||
return (accessibility_driver != nullptr);
|
||||
return AccessibilityServer::get_singleton()->is_supported();
|
||||
} break;
|
||||
#endif
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
@ -5158,15 +5153,11 @@ LRESULT DisplayServerWindows::_handle_early_window_message(HWND hWnd, UINT uMsg,
|
|||
// Fix this up so we can recognize the remaining messages.
|
||||
pWindowData->hWnd = hWnd;
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver && !accessibility_driver->window_create(pWindowData->id, (void *)hWnd)) {
|
||||
if (!AccessibilityServer::get_singleton()->window_create(pWindowData->id, (void *)hWnd)) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
#endif
|
||||
} break;
|
||||
default: {
|
||||
// Additional messages during window creation should happen after we fixed
|
||||
|
|
@ -6537,11 +6528,8 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
|
|||
|
||||
} break;
|
||||
case WM_DESTROY: {
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->window_destroy(window_id);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->window_destroy(window_id);
|
||||
|
||||
Input::get_singleton()->flush_buffered_events();
|
||||
if (window_mouseover_id == window_id) {
|
||||
window_mouseover_id = INVALID_WINDOW_ID;
|
||||
|
|
@ -6595,11 +6583,8 @@ void DisplayServerWindows::_process_activate_event(WindowID p_window_id) {
|
|||
SetFocus(wd.hWnd);
|
||||
}
|
||||
wd.window_focused = true;
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(p_window_id, true);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(p_window_id, true);
|
||||
|
||||
_send_window_event(wd, WINDOW_EVENT_FOCUS_IN);
|
||||
} else { // WM_INACTIVE.
|
||||
Input::get_singleton()->release_pressed_events();
|
||||
|
|
@ -6613,11 +6598,8 @@ void DisplayServerWindows::_process_activate_event(WindowID p_window_id) {
|
|||
ReleaseCapture();
|
||||
}
|
||||
wd.window_focused = false;
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(p_window_id, false);
|
||||
}
|
||||
#endif
|
||||
AccessibilityServer::get_singleton()->set_window_focused(p_window_id, false);
|
||||
|
||||
_send_window_event(wd, WINDOW_EVENT_FOCUS_OUT);
|
||||
}
|
||||
|
||||
|
|
@ -7441,19 +7423,6 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win
|
|||
}
|
||||
native_menu = memnew(NativeMenuWindows);
|
||||
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_get_mode() != DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
accessibility_driver = memnew(AccessibilityDriverAccessKit);
|
||||
if (accessibility_driver->init() != OK) {
|
||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||
ERR_PRINT("Can't create an accessibility driver, accessibility support disabled!");
|
||||
}
|
||||
memdelete(accessibility_driver);
|
||||
accessibility_driver = nullptr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Enforce default keep screen on value.
|
||||
screen_set_keep_on(GLOBAL_GET("display/window/energy_saving/keep_screen_on"));
|
||||
|
||||
|
|
@ -8197,11 +8166,6 @@ DisplayServerWindows::~DisplayServerWindows() {
|
|||
memdelete(gl_manager_native);
|
||||
gl_manager_native = nullptr;
|
||||
}
|
||||
#endif
|
||||
#ifdef ACCESSKIT_ENABLED
|
||||
if (accessibility_driver) {
|
||||
memdelete(accessibility_driver);
|
||||
}
|
||||
#endif
|
||||
if (tts) {
|
||||
memdelete(tts);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
Dictionary AnimatedSprite2D::_edit_get_state() const {
|
||||
|
|
@ -181,9 +182,9 @@ void AnimatedSprite2D::_notification(int p_what) {
|
|||
|
||||
Rect2 dst_rect = _get_rect();
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_IMAGE);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_transform());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, dst_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_IMAGE);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, get_transform());
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, dst_rect);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_READY: {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
|
|
@ -435,7 +436,7 @@ void Node2D::_notification(int p_notification) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/input/input.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void TouchScreenButton::set_texture_normal(const Ref<Texture2D> &p_texture) {
|
||||
if (texture_normal == p_texture) {
|
||||
|
|
@ -127,12 +128,12 @@ void TouchScreenButton::_notification(int p_what) {
|
|||
|
||||
Rect2 dst_rect(Point2(), texture_normal.is_valid() ? texture_normal->get_size() : Size2());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &TouchScreenButton::_accessibility_action_click));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &TouchScreenButton::_accessibility_action_click));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_transform());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, dst_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, get_transform());
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, dst_rect);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/input/input.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
Dictionary Sprite2D::_edit_get_state() const {
|
||||
|
|
@ -151,9 +152,9 @@ void Sprite2D::_notification(int p_what) {
|
|||
|
||||
Rect2 dst_rect = get_rect();
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_IMAGE);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_transform());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, dst_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_IMAGE);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, get_transform());
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, dst_rect);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "scene/3d/visual_instance_3d.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "scene/property_utils.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
/*
|
||||
|
|
@ -141,7 +142,7 @@ void Node3D::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
|
|
|||
|
|
@ -34,14 +34,14 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/audio/audio_stream_player_internal.h"
|
||||
#include "servers/audio/audio_stream.h"
|
||||
#include "servers/display/display_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void AudioStreamPlayer::_notification(int p_what) {
|
||||
if (p_what == NOTIFICATION_ACCESSIBILITY_UPDATE) {
|
||||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_AUDIO);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_AUDIO);
|
||||
} else {
|
||||
internal->notification(p_what);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/label.h"
|
||||
#include "scene/main/timer.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void BaseButton::_unpress_group() {
|
||||
if (button_group.is_null()) {
|
||||
|
|
@ -112,19 +112,19 @@ void BaseButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &BaseButton::_accessibility_action_click));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_DISABLED, status.disabled);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &BaseButton::_accessibility_action_click));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_DISABLED, status.disabled);
|
||||
if (toggle_mode) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_checked(ae, status.pressed);
|
||||
AccessibilityServer::get_singleton()->update_set_checked(ae, status.pressed);
|
||||
}
|
||||
if (button_group.is_valid()) {
|
||||
for (const BaseButton *btn : button_group->buttons) {
|
||||
if (btn->is_part_of_edited_scene()) {
|
||||
continue;
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_radio_group(ae, btn->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_radio_group(ae, btn->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
if (shortcut_in_tooltip && shortcut.is_valid() && shortcut->has_valid_event()) {
|
||||
|
|
@ -133,7 +133,7 @@ void BaseButton::_notification(int p_what) {
|
|||
if (!tooltip.is_empty() && shortcut->get_name().nocasecmp_to(tooltip) != 0) {
|
||||
text += "\n" + atr(tooltip);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(ae, text);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(ae, text);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/dialogs.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 Button::get_minimum_size() const {
|
||||
Ref<Texture2D> _icon = icon;
|
||||
|
|
@ -159,15 +160,15 @@ void Button::_notification(int p_what) {
|
|||
|
||||
const String &ac_name = get_accessibility_name();
|
||||
if (!xl_text.is_empty() && ac_name.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, xl_text);
|
||||
} else if (!xl_text.is_empty() && !ac_name.is_empty() && ac_name != xl_text) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, ac_name + ": " + xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, ac_name + ": " + xl_text);
|
||||
} else if (xl_text.is_empty() && ac_name.is_empty() && !get_tooltip_text().is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_tooltip_text()); // Fall back to tooltip.
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_tooltip_text()); // Fall back to tooltip.
|
||||
}
|
||||
AcceptDialog *dlg = Object::cast_to<AcceptDialog>(get_parent());
|
||||
if (dlg && dlg->get_ok_button() == this) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_DEFAULT_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_DEFAULT_BUTTON);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 CheckBox::get_icon_size() const {
|
||||
Size2 tex_size = Size2(0, 0);
|
||||
|
|
@ -87,9 +88,9 @@ void CheckBox::_notification(int p_what) {
|
|||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
if (is_radio()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_RADIO_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_RADIO_BUTTON);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CHECK_BOX);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CHECK_BOX);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 CheckButton::get_icon_size() const {
|
||||
Ref<Texture2D> on_tex;
|
||||
|
|
@ -90,7 +91,7 @@ void CheckButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CHECK_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CHECK_BUTTON);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED:
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
#include "scene/resources/style_box_flat.h"
|
||||
#include "scene/resources/style_box_texture.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
static inline bool is_color_overbright(const Color &color) {
|
||||
return (color.r > 1.0) || (color.g > 1.0) || (color.b > 1.0);
|
||||
|
|
@ -82,8 +83,8 @@ void ColorPicker::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_COLOR_PICKER);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_color_value(ae, color);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_COLOR_PICKER);
|
||||
AccessibilityServer::get_singleton()->update_set_color_value(ae, color);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
|
@ -2434,9 +2435,9 @@ void ColorPickerButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_DIALOG);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_color_value(ae, color);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_DIALOG);
|
||||
AccessibilityServer::get_singleton()->update_set_color_value(ae, color);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
@ -2575,8 +2576,8 @@ void ColorPresetButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_color_value(ae, preset_color);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_color_value(ae, preset_color);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "color_rect.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void ColorRect::set_color(const Color &p_color) {
|
||||
if (color == p_color) {
|
||||
|
|
@ -51,7 +52,7 @@ void ColorRect::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_color_value(ae, color);
|
||||
AccessibilityServer::get_singleton()->update_set_color_value(ae, color);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "container.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void Container::_child_minsize_changed() {
|
||||
update_minimum_size();
|
||||
|
|
@ -191,9 +192,9 @@ void Container::_notification(int p_what) {
|
|||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
if (accessibility_region) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_REGION);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_REGION);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "control.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
bool Control::_has_focus_bind_compat_110250() const {
|
||||
return has_focus(false);
|
||||
|
|
@ -45,6 +46,9 @@ void Control::_grab_focus_bind_compat_110250() {
|
|||
void Control::_bind_compatibility_methods() {
|
||||
ClassDB::bind_compatibility_method(D_METHOD("has_focus"), &Control::_has_focus_bind_compat_110250);
|
||||
ClassDB::bind_compatibility_method(D_METHOD("grab_focus"), &Control::_grab_focus_bind_compat_110250);
|
||||
|
||||
ClassDB::bind_compatibility_method(D_METHOD("set_accessibility_live", "mode"), (void (Control::*)(DisplayServer::AccessibilityLiveMode))&Control::set_accessibility_live);
|
||||
ClassDB::bind_compatibility_method(D_METHOD("get_accessibility_live"), (DisplayServer::AccessibilityLiveMode (Control::*)() const) & Control::get_accessibility_live);
|
||||
}
|
||||
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "scene/theme/theme_owner.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/text/text_server.h"
|
||||
|
||||
|
|
@ -2195,7 +2196,7 @@ String Control::get_accessibility_description() const {
|
|||
return tr(data.accessibility_description);
|
||||
}
|
||||
|
||||
void Control::set_accessibility_live(DisplayServer::AccessibilityLiveMode p_mode) {
|
||||
void Control::set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode p_mode) {
|
||||
ERR_THREAD_GUARD
|
||||
if (data.accessibility_live != p_mode) {
|
||||
data.accessibility_live = p_mode;
|
||||
|
|
@ -2203,7 +2204,7 @@ void Control::set_accessibility_live(DisplayServer::AccessibilityLiveMode p_mode
|
|||
}
|
||||
}
|
||||
|
||||
DisplayServer::AccessibilityLiveMode Control::get_accessibility_live() const {
|
||||
AccessibilityServerEnums::AccessibilityLiveMode Control::get_accessibility_live() const {
|
||||
return data.accessibility_live;
|
||||
}
|
||||
|
||||
|
|
@ -3757,31 +3758,31 @@ void Control::_notification(int p_notification) {
|
|||
// Base info.
|
||||
if (get_parent_control()) {
|
||||
String container_info = get_parent_control()->get_accessibility_container_name(this);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, container_info.is_empty() ? get_accessibility_name() : get_accessibility_name() + " " + container_info);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, container_info.is_empty() ? get_accessibility_name() : get_accessibility_name() + " " + container_info);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_accessibility_name());
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_accessibility_name());
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_description(ae, get_accessibility_description());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_live(ae, get_accessibility_live());
|
||||
AccessibilityServer::get_singleton()->update_set_description(ae, get_accessibility_description());
|
||||
AccessibilityServer::get_singleton()->update_set_live(ae, get_accessibility_live());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_transform());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Vector2(), data.size_cache));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(ae, data.tooltip);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_CLIPS_CHILDREN, data.clip_contents);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_TOUCH_PASSTHROUGH, data.mouse_filter == MOUSE_FILTER_PASS);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, get_transform());
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, Rect2(Vector2(), data.size_cache));
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(ae, data.tooltip);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_CLIPS_CHILDREN, data.clip_contents);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_TOUCH_PASSTHROUGH, data.mouse_filter == MOUSE_FILTER_PASS);
|
||||
|
||||
if (_is_focusable()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Control::_accessibility_action_foucs));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &Control::_accessibility_action_blur));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Control::_accessibility_action_foucs));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &Control::_accessibility_action_blur));
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_TOOLTIP, callable_mp(this, &Control::_accessibility_action_show_tooltip));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_HIDE_TOOLTIP, callable_mp(this, &Control::_accessibility_action_hide_tooltip));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &Control::_accessibility_action_scroll_into_view));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_TOOLTIP, callable_mp(this, &Control::_accessibility_action_show_tooltip));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_HIDE_TOOLTIP, callable_mp(this, &Control::_accessibility_action_hide_tooltip));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &Control::_accessibility_action_scroll_into_view));
|
||||
if (is_inside_tree() && get_viewport()->gui_is_dragging()) {
|
||||
if (can_drop_data(Vector2(Math::INF, Math::INF), get_viewport()->gui_get_drag_data())) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_extra_info(ae, vformat(RTR("%s can be dropped here. Use %s to drop, use %s to cancel."), get_viewport()->gui_get_drag_description(), InputMap::get_singleton()->get_action_description("ui_accessibility_drag_and_drop"), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
AccessibilityServer::get_singleton()->update_set_extra_info(ae, vformat(RTR("%s can be dropped here. Use %s to drop, use %s to cancel."), get_viewport()->gui_get_drag_description(), InputMap::get_singleton()->get_action_description("ui_accessibility_drag_and_drop"), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_extra_info(ae, vformat(RTR("%s can not be dropped here. Use %s to cancel."), get_viewport()->gui_get_drag_description(), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
AccessibilityServer::get_singleton()->update_set_extra_info(ae, vformat(RTR("%s can not be dropped here. Use %s to cancel."), get_viewport()->gui_get_drag_description(), InputMap::get_singleton()->get_action_description("ui_cancel")));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3791,7 +3792,7 @@ void Control::_notification(int p_notification) {
|
|||
if (!np.is_empty()) {
|
||||
Node *n = get_node(np);
|
||||
if (n && !n->is_part_of_edited_scene()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_controls(ae, n->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_controls(ae, n->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3800,7 +3801,7 @@ void Control::_notification(int p_notification) {
|
|||
if (!np.is_empty()) {
|
||||
Node *n = get_node(np);
|
||||
if (n && !n->is_part_of_edited_scene()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_described_by(ae, n->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_described_by(ae, n->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3809,7 +3810,7 @@ void Control::_notification(int p_notification) {
|
|||
if (!np.is_empty()) {
|
||||
Node *n = get_node(np);
|
||||
if (n && !n->is_part_of_edited_scene()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_labeled_by(ae, n->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_labeled_by(ae, n->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3818,7 +3819,7 @@ void Control::_notification(int p_notification) {
|
|||
if (!np.is_empty()) {
|
||||
Node *n = get_node(np);
|
||||
if (n && !n->is_part_of_edited_scene()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_flow_to(ae, n->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_flow_to(ae, n->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "core/object/gdvirtual.gen.h"
|
||||
#include "scene/main/canvas_item.h"
|
||||
#include "scene/resources/theme.h"
|
||||
#include "servers/display/display_server.h"
|
||||
#include "servers/display/accessibility_server_enums.h"
|
||||
|
||||
class Viewport;
|
||||
class Label;
|
||||
|
|
@ -257,7 +257,7 @@ private:
|
|||
|
||||
String accessibility_name;
|
||||
String accessibility_description;
|
||||
DisplayServer::AccessibilityLiveMode accessibility_live = DisplayServer::AccessibilityLiveMode::LIVE_OFF;
|
||||
AccessibilityServerEnums::AccessibilityLiveMode accessibility_live = AccessibilityServerEnums::AccessibilityLiveMode::LIVE_OFF;
|
||||
|
||||
TypedArray<NodePath> accessibility_controls_nodes;
|
||||
TypedArray<NodePath> accessibility_described_by_nodes;
|
||||
|
|
@ -631,8 +631,8 @@ public:
|
|||
void set_accessibility_description(const String &p_description);
|
||||
String get_accessibility_description() const;
|
||||
|
||||
void set_accessibility_live(DisplayServer::AccessibilityLiveMode p_mode);
|
||||
DisplayServer::AccessibilityLiveMode get_accessibility_live() const;
|
||||
void set_accessibility_live(AccessibilityServerEnums::AccessibilityLiveMode p_mode);
|
||||
AccessibilityServerEnums::AccessibilityLiveMode get_accessibility_live() const;
|
||||
|
||||
void set_accessibility_controls_nodes(const TypedArray<NodePath> &p_node_path);
|
||||
TypedArray<NodePath> get_accessibility_controls_nodes() const;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/line_edit.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
// AcceptDialog
|
||||
|
||||
|
|
@ -56,7 +57,7 @@ void AcceptDialog::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_DIALOG);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_DIALOG);
|
||||
} break;
|
||||
case NOTIFICATION_POST_ENTER_TREE: {
|
||||
if (is_visible()) {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "graph_frame.h"
|
||||
|
||||
#include "core/config/engine.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/box_container.h"
|
||||
#include "scene/gui/label.h"
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "scene/gui/graph_edit.h"
|
||||
#include "scene/gui/label.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
bool GraphNode::_set(const StringName &p_name, const Variant &p_value) {
|
||||
String str = p_name;
|
||||
|
|
@ -607,13 +608,13 @@ void GraphNode::_notification(int p_what) {
|
|||
} else {
|
||||
name += ", " + vformat(ETR("has %d slots"), slot_count);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_LIST);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, name);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_custom_action(ae, CustomAccessibilityAction::ACTION_CONNECT_INPUT, ETR("Edit Input Port Connection"));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_custom_action(ae, CustomAccessibilityAction::ACTION_CONNECT_OUTPUT, ETR("Edit Output Port Connection"));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_custom_action(ae, CustomAccessibilityAction::ACTION_FOLLOW_INPUT, ETR("Follow Input Port Connection"));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_custom_action(ae, CustomAccessibilityAction::ACTION_FOLLOW_OUTPUT, ETR("Follow Output Port Connection"));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_CUSTOM, callable_mp(this, &GraphNode::_accessibility_action_slot));
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_LIST);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, name);
|
||||
AccessibilityServer::get_singleton()->update_add_custom_action(ae, CustomAccessibilityAction::ACTION_CONNECT_INPUT, ETR("Edit Input Port Connection"));
|
||||
AccessibilityServer::get_singleton()->update_add_custom_action(ae, CustomAccessibilityAction::ACTION_CONNECT_OUTPUT, ETR("Edit Output Port Connection"));
|
||||
AccessibilityServer::get_singleton()->update_add_custom_action(ae, CustomAccessibilityAction::ACTION_FOLLOW_INPUT, ETR("Follow Input Port Connection"));
|
||||
AccessibilityServer::get_singleton()->update_add_custom_action(ae, CustomAccessibilityAction::ACTION_FOLLOW_OUTPUT, ETR("Follow Output Port Connection"));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_CUSTOM, callable_mp(this, &GraphNode::_accessibility_action_slot));
|
||||
} break;
|
||||
case NOTIFICATION_FOCUS_EXIT: {
|
||||
selected_slot = -1;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "core/os/os.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
void ItemList::_shape_text(int p_idx) {
|
||||
|
|
@ -535,7 +536,7 @@ void ItemList::set_item_count(int p_count) {
|
|||
if (items.size() > p_count) {
|
||||
for (int i = p_count; i < items.size(); i++) {
|
||||
if (items[i].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(items.write[i].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(items.write[i].accessibility_item_element);
|
||||
items.write[i].accessibility_item_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -556,7 +557,7 @@ void ItemList::remove_item(int p_idx) {
|
|||
ERR_FAIL_INDEX(p_idx, items.size());
|
||||
|
||||
if (items[p_idx].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(items.write[p_idx].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(items.write[p_idx].accessibility_item_element);
|
||||
items.write[p_idx].accessibility_item_element = RID();
|
||||
}
|
||||
items.remove_at(p_idx);
|
||||
|
|
@ -573,7 +574,7 @@ void ItemList::remove_item(int p_idx) {
|
|||
void ItemList::clear() {
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
if (items[i].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(items.write[i].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(items.write[i].accessibility_item_element);
|
||||
items.write[i].accessibility_item_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -1246,7 +1247,7 @@ void ItemList::_accessibility_action_scroll_set(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ItemList::_accessibility_action_scroll_up(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
scroll_bar_v->set_value(scroll_bar_v->get_value() - scroll_bar_v->get_page() / 4);
|
||||
} else {
|
||||
scroll_bar_v->set_value(scroll_bar_v->get_value() - scroll_bar_v->get_page());
|
||||
|
|
@ -1254,7 +1255,7 @@ void ItemList::_accessibility_action_scroll_up(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ItemList::_accessibility_action_scroll_down(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
scroll_bar_v->set_value(scroll_bar_v->get_value() + scroll_bar_v->get_page() / 4);
|
||||
} else {
|
||||
scroll_bar_v->set_value(scroll_bar_v->get_value() + scroll_bar_v->get_page());
|
||||
|
|
@ -1262,7 +1263,7 @@ void ItemList::_accessibility_action_scroll_down(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ItemList::_accessibility_action_scroll_left(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
scroll_bar_h->set_value(scroll_bar_h->get_value() - scroll_bar_h->get_page() / 4);
|
||||
} else {
|
||||
scroll_bar_h->set_value(scroll_bar_h->get_value() - scroll_bar_h->get_page());
|
||||
|
|
@ -1270,7 +1271,7 @@ void ItemList::_accessibility_action_scroll_left(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ItemList::_accessibility_action_scroll_right(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
scroll_bar_h->set_value(scroll_bar_h->get_value() + scroll_bar_h->get_page() / 4);
|
||||
} else {
|
||||
scroll_bar_h->set_value(scroll_bar_h->get_value() + scroll_bar_h->get_page());
|
||||
|
|
@ -1322,47 +1323,47 @@ void ItemList::_notification(int p_what) {
|
|||
|
||||
force_update_list_size();
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_LIST_BOX);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_count(ae, items.size());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_MULTISELECTABLE, select_mode == SELECT_MULTI);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &ItemList::_accessibility_action_scroll_down));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &ItemList::_accessibility_action_scroll_up));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &ItemList::_accessibility_action_scroll_left));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &ItemList::_accessibility_action_scroll_right));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &ItemList::_accessibility_action_scroll_set));
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_LIST_BOX);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_count(ae, items.size());
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_MULTISELECTABLE, select_mode == SELECT_MULTI);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &ItemList::_accessibility_action_scroll_down));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &ItemList::_accessibility_action_scroll_up));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &ItemList::_accessibility_action_scroll_left));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &ItemList::_accessibility_action_scroll_right));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &ItemList::_accessibility_action_scroll_set));
|
||||
|
||||
if (accessibility_scroll_element.is_null()) {
|
||||
accessibility_scroll_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
accessibility_scroll_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
}
|
||||
|
||||
Transform2D scroll_xform;
|
||||
scroll_xform.set_origin(Vector2i(-scroll_bar_h->get_value(), -scroll_bar_v->get_value()));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_scroll_element, Rect2(0, 0, scroll_bar_h->get_max(), scroll_bar_v->get_max()));
|
||||
AccessibilityServer::get_singleton()->update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(accessibility_scroll_element, Rect2(0, 0, scroll_bar_h->get_max(), scroll_bar_v->get_max()));
|
||||
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
const Item &item = items.write[i];
|
||||
|
||||
if (item.accessibility_item_element.is_null()) {
|
||||
item.accessibility_item_element = DisplayServer::get_singleton()->accessibility_create_sub_element(accessibility_scroll_element, DisplayServer::AccessibilityRole::ROLE_LIST_BOX_OPTION);
|
||||
item.accessibility_item_element = AccessibilityServer::get_singleton()->create_sub_element(accessibility_scroll_element, AccessibilityServerEnums::AccessibilityRole::ROLE_LIST_BOX_OPTION);
|
||||
item.accessibility_item_dirty = true;
|
||||
}
|
||||
if (item.accessibility_item_dirty || i == hovered || i == prev_hovered) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &ItemList::_accessibility_action_scroll_into_view).bind(i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &ItemList::_accessibility_action_focus).bind(i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &ItemList::_accessibility_action_blur).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &ItemList::_accessibility_action_scroll_into_view).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &ItemList::_accessibility_action_focus).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &ItemList::_accessibility_action_blur).bind(i));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_index(item.accessibility_item_element, i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_level(item.accessibility_item_element, 0);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(item.accessibility_item_element, item.selected);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(item.accessibility_item_element, item.xl_text);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(item.accessibility_item_element, DisplayServer::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_index(item.accessibility_item_element, i);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_level(item.accessibility_item_element, 0);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(item.accessibility_item_element, item.selected);
|
||||
AccessibilityServer::get_singleton()->update_set_name(item.accessibility_item_element, item.xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
if (item.tooltip_enabled) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
}
|
||||
|
||||
Rect2 r = get_item_rect(i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(item.accessibility_item_element, Rect2(r.position, r.size));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(item.accessibility_item_element, Rect2(r.position, r.size));
|
||||
|
||||
item.accessibility_item_dirty = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/gui/container.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/text/text_server.h"
|
||||
|
||||
|
|
@ -707,9 +708,9 @@ void Label::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(ae, xl_text);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_align(ae, horizontal_alignment);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
AccessibilityServer::get_singleton()->update_set_value(ae, xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_text_align(ae, horizontal_alignment);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_TRANSLATION_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
#include "scene/gui/label.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/display_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/text/text_server.h"
|
||||
|
||||
|
|
@ -1234,22 +1234,22 @@ void LineEdit::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_TEXT_FIELD);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TEXT_FIELD);
|
||||
bool using_placeholder = text.is_empty() && ime_text.is_empty();
|
||||
if (using_placeholder && !placeholder.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_placeholder(ae, atr(placeholder));
|
||||
AccessibilityServer::get_singleton()->update_set_placeholder(ae, atr(placeholder));
|
||||
}
|
||||
if (!placeholder.is_empty() && get_accessibility_name().is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, atr(placeholder));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, atr(placeholder));
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_READONLY, !editable);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_READONLY, !editable);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_TEXT_SELECTION, callable_mp(this, &LineEdit::_accessibility_action_set_selection));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_REPLACE_SELECTED_TEXT, callable_mp(this, &LineEdit::_accessibility_action_replace_selected));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &LineEdit::_accessibility_action_set_value));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &LineEdit::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_TEXT_SELECTION, callable_mp(this, &LineEdit::_accessibility_action_set_selection));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_REPLACE_SELECTED_TEXT, callable_mp(this, &LineEdit::_accessibility_action_replace_selected));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &LineEdit::_accessibility_action_set_value));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &LineEdit::_accessibility_action_menu));
|
||||
const String &lang = language.is_empty() ? _get_locale() : language;
|
||||
DisplayServer::get_singleton()->accessibility_update_set_language(ae, lang);
|
||||
AccessibilityServer::get_singleton()->update_set_language(ae, lang);
|
||||
|
||||
bool rtl = is_layout_rtl();
|
||||
Ref<StyleBox> style = theme_cache.normal;
|
||||
|
|
@ -1314,16 +1314,16 @@ void LineEdit::_notification(int p_what) {
|
|||
float text_off_x = x_ofs + scroll_offset;
|
||||
|
||||
if (accessibility_text_root_element.is_null()) {
|
||||
accessibility_text_root_element = DisplayServer::get_singleton()->accessibility_create_sub_text_edit_elements(ae, using_placeholder ? RID() : text_rid, text_height, -1, true);
|
||||
accessibility_text_root_element = AccessibilityServer::get_singleton()->create_sub_text_edit_elements(ae, using_placeholder ? RID() : text_rid, text_height, -1, true);
|
||||
}
|
||||
|
||||
Transform2D text_xform;
|
||||
text_xform.set_origin(Vector2i(text_off_x, y_ofs));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(accessibility_text_root_element, text_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(accessibility_text_root_element, text_xform);
|
||||
if (selection.enabled) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_selection(ae, accessibility_text_root_element, selection.begin, accessibility_text_root_element, selection.end);
|
||||
AccessibilityServer::get_singleton()->update_set_text_selection(ae, accessibility_text_root_element, selection.begin, accessibility_text_root_element, selection.end);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_selection(ae, accessibility_text_root_element, caret_column, accessibility_text_root_element, caret_column);
|
||||
AccessibilityServer::get_singleton()->update_set_text_selection(ae, accessibility_text_root_element, caret_column, accessibility_text_root_element, caret_column);
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
@ -3124,7 +3124,7 @@ void LineEdit::_shape() {
|
|||
}
|
||||
|
||||
if (accessibility_text_root_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_text_root_element);
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_text_root_element);
|
||||
accessibility_text_root_element = RID();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void LinkButton::_shape() {
|
||||
Ref<Font> font = theme_cache.font;
|
||||
|
|
@ -210,16 +211,16 @@ void LinkButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_LINK);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_LINK);
|
||||
const String &ac_name = get_accessibility_name();
|
||||
if (!xl_text.is_empty() && ac_name.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, xl_text);
|
||||
} else if (!xl_text.is_empty() && !ac_name.is_empty() && ac_name != xl_text) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, ac_name + ": " + xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, ac_name + ": " + xl_text);
|
||||
} else if (xl_text.is_empty() && ac_name.is_empty() && !get_tooltip_text().is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_tooltip_text()); // Fall back to tooltip.
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_tooltip_text()); // Fall back to tooltip.
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_url(ae, uri);
|
||||
AccessibilityServer::get_singleton()->update_set_url(ae, uri);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_TRANSLATION_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void MenuBar::gui_input(const Ref<InputEvent> &p_event) {
|
||||
ERR_FAIL_COND(p_event.is_null());
|
||||
|
|
@ -293,7 +294,7 @@ void MenuBar::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_MENU_BAR);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU_BAR);
|
||||
} break;
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
if (get_menu_count() > 0) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
void MenuButton::shortcut_input(const Ref<InputEvent> &p_event) {
|
||||
|
|
@ -143,8 +144,8 @@ void MenuButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_MENU);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_MENU);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_TRANSLATION_CHANGED:
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
static const int NONE_SELECTED = -1;
|
||||
|
||||
|
|
@ -78,8 +79,8 @@ void OptionButton::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_popup_type(ae, DisplayServer::AccessibilityPopupType::POPUP_LIST);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(ae, AccessibilityServerEnums::AccessibilityPopupType::POPUP_LIST);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_POSTINITIALIZE: {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void Panel::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
|
|
@ -39,7 +40,7 @@ void Panel::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_PANEL);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_PANEL);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
#include "scene/main/timer.h"
|
||||
#include "scene/resources/style_box_flat.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
HashMap<NativeMenu::SystemMenus, PopupMenu *> PopupMenu::system_menus;
|
||||
|
||||
|
|
@ -1245,19 +1246,19 @@ void PopupMenu::_notification(int p_what) {
|
|||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
if (has_meta("_menu_name")) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_meta("_menu_name", get_name()));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_meta("_menu_name", get_name()));
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_MENU);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_count(ae, items.size());
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_count(ae, items.size());
|
||||
|
||||
if (accessibility_scroll_element.is_null()) {
|
||||
accessibility_scroll_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
accessibility_scroll_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
}
|
||||
|
||||
Transform2D scroll_xform;
|
||||
scroll_xform.set_origin(Vector2i(0, -scroll_container->get_v_scroll_bar()->get_value()));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_scroll_element, Rect2(0, 0, get_size().x, scroll_container->get_v_scroll_bar()->get_max()));
|
||||
AccessibilityServer::get_singleton()->update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(accessibility_scroll_element, Rect2(0, 0, get_size().x, scroll_container->get_v_scroll_bar()->get_max()));
|
||||
|
||||
float scroll_width = scroll_container->get_v_scroll_bar()->is_visible_in_tree() ? scroll_container->get_v_scroll_bar()->get_size().width : 0;
|
||||
float display_width = control->get_size().width - scroll_width;
|
||||
|
|
@ -1271,7 +1272,7 @@ void PopupMenu::_notification(int p_what) {
|
|||
|
||||
Point2 item_ofs = ofs;
|
||||
if (item.accessibility_item_element.is_null()) {
|
||||
item.accessibility_item_element = DisplayServer::get_singleton()->accessibility_create_sub_element(accessibility_scroll_element, DisplayServer::AccessibilityRole::ROLE_MENU_ITEM);
|
||||
item.accessibility_item_element = AccessibilityServer::get_singleton()->create_sub_element(accessibility_scroll_element, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU_ITEM);
|
||||
item.accessibility_item_dirty = true;
|
||||
}
|
||||
|
||||
|
|
@ -1281,27 +1282,27 @@ void PopupMenu::_notification(int p_what) {
|
|||
if (item.accessibility_item_dirty || i == prev_mouse_over || i == mouse_over) {
|
||||
switch (item.checkable_type) {
|
||||
case Item::CHECKABLE_TYPE_NONE: {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(item.accessibility_item_element, DisplayServer::AccessibilityRole::ROLE_MENU_ITEM);
|
||||
AccessibilityServer::get_singleton()->update_set_role(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU_ITEM);
|
||||
} break;
|
||||
case Item::CHECKABLE_TYPE_CHECK_BOX: {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(item.accessibility_item_element, DisplayServer::AccessibilityRole::ROLE_MENU_ITEM_CHECK_BOX);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_checked(item.accessibility_item_element, item.checked);
|
||||
AccessibilityServer::get_singleton()->update_set_role(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU_ITEM_CHECK_BOX);
|
||||
AccessibilityServer::get_singleton()->update_set_checked(item.accessibility_item_element, item.checked);
|
||||
} break;
|
||||
case Item::CHECKABLE_TYPE_RADIO_BUTTON: {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(item.accessibility_item_element, DisplayServer::AccessibilityRole::ROLE_MENU_ITEM_RADIO);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_checked(item.accessibility_item_element, item.checked);
|
||||
AccessibilityServer::get_singleton()->update_set_role(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityRole::ROLE_MENU_ITEM_RADIO);
|
||||
AccessibilityServer::get_singleton()->update_set_checked(item.accessibility_item_element, item.checked);
|
||||
} break;
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &PopupMenu::_accessibility_action_click).bind(i));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_index(item.accessibility_item_element, i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_level(item.accessibility_item_element, 0);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(item.accessibility_item_element, i == mouse_over);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(item.accessibility_item_element, item.xl_text);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(item.accessibility_item_element, DisplayServer::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &PopupMenu::_accessibility_action_click).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_index(item.accessibility_item_element, i);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_level(item.accessibility_item_element, 0);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(item.accessibility_item_element, i == mouse_over);
|
||||
AccessibilityServer::get_singleton()->update_set_name(item.accessibility_item_element, item.xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(item.accessibility_item_element, Rect2(item_ofs, Size2(display_width, h + theme_cache.v_separation)));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(item.accessibility_item_element, Rect2(item_ofs, Size2(display_width, h + theme_cache.v_separation)));
|
||||
|
||||
item.accessibility_item_dirty = false;
|
||||
}
|
||||
|
|
@ -2743,7 +2744,7 @@ void PopupMenu::set_item_count(int p_count) {
|
|||
for (int i = prev_size - 1; i >= p_count; i--) {
|
||||
nmenu->remove_item(global_menu, i);
|
||||
if (items[i].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(items.write[i].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(items.write[i].accessibility_item_element);
|
||||
items.write[i].accessibility_item_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -2927,7 +2928,7 @@ void PopupMenu::remove_item(int p_idx) {
|
|||
ERR_FAIL_INDEX(p_idx, items.size());
|
||||
|
||||
if (items[p_idx].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(items.write[p_idx].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(items.write[p_idx].accessibility_item_element);
|
||||
items.write[p_idx].accessibility_item_element = RID();
|
||||
}
|
||||
if (items[p_idx].shortcut.is_valid()) {
|
||||
|
|
@ -2967,7 +2968,7 @@ void PopupMenu::add_separator(const String &p_text, int p_id) {
|
|||
void PopupMenu::clear(bool p_free_submenus) {
|
||||
for (Item &I : items) {
|
||||
if (I.accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(I.accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(I.accessibility_item_element);
|
||||
I.accessibility_item_element = RID();
|
||||
}
|
||||
if (I.shortcut.is_valid()) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "core/string/translation_server.h"
|
||||
#include "scene/resources/text_line.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 ProgressBar::get_minimum_size() const {
|
||||
Size2 minimum_size = theme_cache.background_style->get_minimum_size();
|
||||
|
|
@ -61,7 +62,7 @@ void ProgressBar::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_PROGRESS_INDICATOR);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_PROGRESS_INDICATOR);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "range.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "thirdparty/misc/r128.h"
|
||||
|
||||
double Range::_snapped_r128(double p_value, double p_step) {
|
||||
|
|
@ -113,17 +114,17 @@ void Range::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SPIN_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_value(ae, shared->val);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_range(ae, shared->min, shared->max);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SPIN_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_num_value(ae, shared->val);
|
||||
AccessibilityServer::get_singleton()->update_set_num_range(ae, shared->min, shared->max);
|
||||
if (shared->step > 0) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(ae, shared->step);
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(ae, shared->step);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(ae, 1);
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(ae, 1);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &Range::_accessibility_action_dec));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &Range::_accessibility_action_inc));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Range::_accessibility_action_set_value));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &Range::_accessibility_action_dec));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &Range::_accessibility_action_inc));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Range::_accessibility_action_set_value));
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
#include "scene/main/timer.h"
|
||||
#include "scene/resources/atlas_texture.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/display_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
#include "modules/modules_enabled.gen.h" // For regex.
|
||||
|
|
@ -71,6 +71,14 @@ Rect2i _merge_or_copy_rect(const Rect2i &p_a, const Rect2i &p_b) {
|
|||
}
|
||||
}
|
||||
|
||||
RichTextLabel::Line::~Line() {
|
||||
if (accessibility_line_element.is_valid()) {
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_line_element);
|
||||
accessibility_line_element = RID();
|
||||
accessibility_text_element = RID();
|
||||
}
|
||||
}
|
||||
|
||||
RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) const {
|
||||
if (!p_item) {
|
||||
return nullptr;
|
||||
|
|
@ -2133,14 +2141,14 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
if (l.accessibility_line_element.is_valid()) {
|
||||
return;
|
||||
}
|
||||
l.accessibility_line_element = DisplayServer::get_singleton()->accessibility_create_sub_element(p_id, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
l.accessibility_line_element = AccessibilityServer::get_singleton()->create_sub_element(p_id, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
|
||||
MutexLock lock(l.text_buf->get_mutex());
|
||||
|
||||
const RID &line_ae = l.accessibility_line_element;
|
||||
|
||||
Rect2 ae_rect = Rect2(p_ofs, Size2(p_width, l.text_buf->get_size().y + l.text_buf->get_line_count() * theme_cache.line_separation));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(line_ae, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(line_ae, ae_rect);
|
||||
ac_element_bounds_cache[line_ae] = ae_rect;
|
||||
|
||||
Item *it_from = l.from;
|
||||
|
|
@ -2178,15 +2186,15 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
}
|
||||
}
|
||||
|
||||
l.accessibility_text_element = DisplayServer::get_singleton()->accessibility_create_sub_element(line_ae, DisplayServer::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(l.accessibility_text_element, l_text);
|
||||
l.accessibility_text_element = AccessibilityServer::get_singleton()->create_sub_element(line_ae, AccessibilityServerEnums::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
AccessibilityServer::get_singleton()->update_set_value(l.accessibility_text_element, l_text);
|
||||
ae_rect = Rect2(p_ofs + off, text_buf->get_size());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(l.accessibility_text_element, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(l.accessibility_text_element, ae_rect);
|
||||
ac_element_bounds_cache[l.accessibility_text_element] = ae_rect;
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(l.accessibility_text_element, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)l.from, true, true));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(l.accessibility_text_element, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)l.from, true, false));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(l.accessibility_text_element, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)l.from));
|
||||
AccessibilityServer::get_singleton()->update_add_action(l.accessibility_text_element, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)l.from, true, true));
|
||||
AccessibilityServer::get_singleton()->update_add_action(l.accessibility_text_element, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)l.from, true, false));
|
||||
AccessibilityServer::get_singleton()->update_add_action(l.accessibility_text_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)l.from));
|
||||
}
|
||||
|
||||
Vector2 off;
|
||||
|
|
@ -2250,9 +2258,9 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
switch (it->type) {
|
||||
case ITEM_IMAGE: {
|
||||
ItemImage *img = static_cast<ItemImage *>(it);
|
||||
RID img_ae = DisplayServer::get_singleton()->accessibility_create_sub_element(line_ae, DisplayServer::AccessibilityRole::ROLE_IMAGE);
|
||||
RID img_ae = AccessibilityServer::get_singleton()->create_sub_element(line_ae, AccessibilityServerEnums::AccessibilityRole::ROLE_IMAGE);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(img_ae, img->alt_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(img_ae, img->alt_text);
|
||||
if (img->pad) {
|
||||
Size2 pad_size = rect.size.min(img->image->get_size());
|
||||
Vector2 pad_off = (rect.size - pad_size) / 2;
|
||||
|
|
@ -2260,12 +2268,12 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
} else {
|
||||
ae_rect = Rect2(p_ofs + rect.position + off, rect.size);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(img_ae, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(img_ae, ae_rect);
|
||||
ac_element_bounds_cache[img_ae] = ae_rect;
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(img_ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, true));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(img_ae, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, false));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(img_ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)it));
|
||||
AccessibilityServer::get_singleton()->update_add_action(img_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, true));
|
||||
AccessibilityServer::get_singleton()->update_add_action(img_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, false));
|
||||
AccessibilityServer::get_singleton()->update_add_action(img_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)it));
|
||||
|
||||
it->accessibility_item_element = img_ae;
|
||||
} break;
|
||||
|
|
@ -2274,31 +2282,31 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
float h_separation = theme_cache.table_h_separation;
|
||||
float v_separation = theme_cache.table_v_separation;
|
||||
|
||||
RID table_ae = DisplayServer::get_singleton()->accessibility_create_sub_element(line_ae, DisplayServer::AccessibilityRole::ROLE_TABLE);
|
||||
RID table_ae = AccessibilityServer::get_singleton()->create_sub_element(line_ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TABLE);
|
||||
|
||||
int col_count = table->columns.size();
|
||||
int row_count = table->rows.size();
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(table_ae, table->name);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(table_ae, DisplayServer::AccessibilityRole::ROLE_TABLE);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_column_count(table_ae, col_count);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_row_count(table_ae, row_count);
|
||||
AccessibilityServer::get_singleton()->update_set_name(table_ae, table->name);
|
||||
AccessibilityServer::get_singleton()->update_set_role(table_ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TABLE);
|
||||
AccessibilityServer::get_singleton()->update_set_table_column_count(table_ae, col_count);
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_count(table_ae, row_count);
|
||||
ae_rect = Rect2(p_ofs + rect.position + off + Vector2(0, TS->shaped_text_get_ascent(rid)), rect.size);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(table_ae, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(table_ae, ae_rect);
|
||||
ac_element_bounds_cache[table_ae] = ae_rect;
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(table_ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, true));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(table_ae, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, false));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(table_ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)it));
|
||||
AccessibilityServer::get_singleton()->update_add_action(table_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, true));
|
||||
AccessibilityServer::get_singleton()->update_add_action(table_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &RichTextLabel::_accessibility_focus_item).bind((uint64_t)it, false, false));
|
||||
AccessibilityServer::get_singleton()->update_add_action(table_ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &RichTextLabel::_accessibility_scroll_to_item).bind((uint64_t)it));
|
||||
|
||||
Vector<RID> row_aes;
|
||||
Vector2 row_off = Vector2(0, TS->shaped_text_get_ascent(rid));
|
||||
for (int j = 0; j < row_count; j++) {
|
||||
RID row_ae = DisplayServer::get_singleton()->accessibility_create_sub_element(table_ae, DisplayServer::AccessibilityRole::ROLE_ROW);
|
||||
RID row_ae = AccessibilityServer::get_singleton()->create_sub_element(table_ae, AccessibilityServerEnums::AccessibilityRole::ROLE_ROW);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_row_index(row_ae, j);
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_index(row_ae, j);
|
||||
ae_rect = Rect2(p_ofs + rect.position + off + row_off, Size2(rect.size.x, table->rows[j]));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(row_ae, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(row_ae, ae_rect);
|
||||
ac_element_bounds_cache[row_ae] = ae_rect;
|
||||
row_off.y += table->rows[j];
|
||||
|
||||
|
|
@ -2313,7 +2321,7 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
int row = idx / col_count;
|
||||
|
||||
for (int j = 0; j < (int)frame->lines.size(); j++) {
|
||||
RID cell_ae = DisplayServer::get_singleton()->accessibility_create_sub_element(row_aes[row], DisplayServer::AccessibilityRole::ROLE_CELL);
|
||||
RID cell_ae = AccessibilityServer::get_singleton()->create_sub_element(row_aes[row], AccessibilityServerEnums::AccessibilityRole::ROLE_CELL);
|
||||
|
||||
if (frame->lines.size() != 0 && row < row_count) {
|
||||
Vector2 coff = frame->lines[0].offset;
|
||||
|
|
@ -2322,10 +2330,10 @@ void RichTextLabel::_accessibility_update_line(RID p_id, ItemFrame *p_frame, int
|
|||
coff.x = rect.size.width - table->columns[col].width - coff.x;
|
||||
}
|
||||
ae_rect = Rect2(p_ofs + rect.position + off + coff - frame->padding.position - Vector2(h_separation * 0.5, v_separation * 0.5).floor(), Size2(table->columns[col].width + h_separation + frame->padding.position.x + frame->padding.size.x, table->rows[row]));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(cell_ae, ae_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(cell_ae, ae_rect);
|
||||
ac_element_bounds_cache[cell_ae] = ae_rect;
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_cell_position(cell_ae, row, col);
|
||||
AccessibilityServer::get_singleton()->update_set_table_cell_position(cell_ae, row, col);
|
||||
|
||||
_accessibility_update_line(cell_ae, frame, j, p_ofs + rect.position + off + Vector2(0, frame->lines[j].offset.y), rect.size.x, p_vsep);
|
||||
}
|
||||
|
|
@ -2416,7 +2424,7 @@ void RichTextLabel::_invalidate_accessibility() {
|
|||
ItemFrame *fr = static_cast<ItemFrame *>(it);
|
||||
for (size_t i = 0; i < fr->lines.size(); i++) {
|
||||
if (fr->lines[i].accessibility_line_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(fr->lines[i].accessibility_line_element);
|
||||
AccessibilityServer::get_singleton()->free_element(fr->lines[i].accessibility_line_element);
|
||||
}
|
||||
fr->lines[i].accessibility_line_element = RID();
|
||||
fr->lines[i].accessibility_text_element = RID();
|
||||
|
|
@ -2471,29 +2479,29 @@ void RichTextLabel::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &RichTextLabel::_accessibility_action_menu));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &RichTextLabel::_accessibility_scroll_down));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &RichTextLabel::_accessibility_scroll_up));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &RichTextLabel::_accessibility_scroll_set));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &RichTextLabel::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &RichTextLabel::_accessibility_scroll_down));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &RichTextLabel::_accessibility_scroll_up));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &RichTextLabel::_accessibility_scroll_set));
|
||||
|
||||
if (_validate_line_caches()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_BUSY, false);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_BUSY, false);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_BUSY, true);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_BUSY, true);
|
||||
return; // Do not update internal elements if threaded procesisng is not done.
|
||||
}
|
||||
|
||||
if (accessibility_scroll_element.is_null()) {
|
||||
accessibility_scroll_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
accessibility_scroll_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
}
|
||||
Rect2 text_rect = _get_text_rect();
|
||||
|
||||
Transform2D scroll_xform;
|
||||
scroll_xform.set_origin(Vector2i(0, -vscroll->get_value()));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_scroll_element, text_rect);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(accessibility_scroll_element, text_rect);
|
||||
|
||||
MutexLock data_lock(data_mutex);
|
||||
|
||||
|
|
|
|||
|
|
@ -184,13 +184,7 @@ private:
|
|||
Line() {
|
||||
text_buf.instantiate();
|
||||
}
|
||||
~Line() {
|
||||
if (accessibility_line_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_line_element);
|
||||
accessibility_line_element = RID();
|
||||
accessibility_text_element = RID();
|
||||
}
|
||||
}
|
||||
~Line();
|
||||
|
||||
_FORCE_INLINE_ float get_height(float p_line_separation, float p_paragraph_separation) const {
|
||||
return offset.y + text_buf->get_size().y + text_buf->get_line_count() * p_line_separation + p_paragraph_separation;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
bool ScrollBar::focus_by_default = false;
|
||||
|
||||
|
|
@ -260,7 +261,7 @@ void ScrollBar::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SCROLL_BAR);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SCROLL_BAR);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include "scene/gui/texture_rect.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 ScrollContainer::get_minimum_size() const {
|
||||
// Calculated in this function, as it needs to traverse all child controls once to calculate;
|
||||
|
|
@ -398,7 +399,7 @@ void ScrollContainer::_accessibility_action_scroll_set(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ScrollContainer::_accessibility_action_scroll_up(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() / ScrollBar::PAGE_DIVISOR);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page());
|
||||
|
|
@ -406,7 +407,7 @@ void ScrollContainer::_accessibility_action_scroll_up(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ScrollContainer::_accessibility_action_scroll_down(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() / ScrollBar::PAGE_DIVISOR);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page());
|
||||
|
|
@ -414,7 +415,7 @@ void ScrollContainer::_accessibility_action_scroll_down(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ScrollContainer::_accessibility_action_scroll_left(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() / ScrollBar::PAGE_DIVISOR);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page());
|
||||
|
|
@ -422,7 +423,7 @@ void ScrollContainer::_accessibility_action_scroll_left(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void ScrollContainer::_accessibility_action_scroll_right(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() / ScrollBar::PAGE_DIVISOR);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page());
|
||||
|
|
@ -436,16 +437,16 @@ void ScrollContainer::_notification(int p_what) {
|
|||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
if (is_accessibility_region()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_REGION);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_REGION);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SCROLL_VIEW);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SCROLL_VIEW);
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_down));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_left));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_right));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_up));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_set));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_down));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_left));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_right));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_up));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &ScrollContainer::_accessibility_action_scroll_set));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/input/input.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
Size2 Slider::get_minimum_size() const {
|
||||
Size2i ss = theme_cache.slider_style->get_minimum_size();
|
||||
|
|
@ -245,7 +246,7 @@ void Slider::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SLIDER);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SLIDER);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "core/string/translation_server.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void SpinBoxLineEdit::_accessibility_action_inc(const Variant &p_data) {
|
||||
SpinBox *parent_sb = Object::cast_to<SpinBox>(get_parent());
|
||||
|
|
@ -61,20 +62,20 @@ void SpinBoxLineEdit::_notification(int p_what) {
|
|||
|
||||
SpinBox *parent_sb = Object::cast_to<SpinBox>(get_parent());
|
||||
if (parent_sb) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SPIN_BUTTON);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, parent_sb->get_accessibility_name());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_description(ae, parent_sb->get_accessibility_description());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_live(ae, parent_sb->get_accessibility_live());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_value(ae, parent_sb->get_value());
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_range(ae, parent_sb->get_min(), parent_sb->get_max());
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SPIN_BUTTON);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, parent_sb->get_accessibility_name());
|
||||
AccessibilityServer::get_singleton()->update_set_description(ae, parent_sb->get_accessibility_description());
|
||||
AccessibilityServer::get_singleton()->update_set_live(ae, parent_sb->get_accessibility_live());
|
||||
AccessibilityServer::get_singleton()->update_set_num_value(ae, parent_sb->get_value());
|
||||
AccessibilityServer::get_singleton()->update_set_num_range(ae, parent_sb->get_min(), parent_sb->get_max());
|
||||
if (parent_sb->get_step() > 0) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(ae, parent_sb->get_step());
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(ae, parent_sb->get_step());
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(ae, 1);
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(ae, 1);
|
||||
}
|
||||
//DisplayServer::get_singleton()->accessibility_update_set_num_jump(ae, ???);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &SpinBoxLineEdit::_accessibility_action_dec));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &SpinBoxLineEdit::_accessibility_action_inc));
|
||||
//AccessibilityServer::get_singleton()->update_set_num_jump(ae, ???);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &SpinBoxLineEdit::_accessibility_action_dec));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &SpinBoxLineEdit::_accessibility_action_inc));
|
||||
}
|
||||
} break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "scene/gui/texture_rect.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
void SplitContainerDragger::gui_input(const Ref<InputEvent> &p_event) {
|
||||
ERR_FAIL_COND(p_event.is_null());
|
||||
|
|
@ -206,19 +207,19 @@ void SplitContainerDragger::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_SPLITTER);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, RTR("Drag to resize"));
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_SPLITTER);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, RTR("Drag to resize"));
|
||||
|
||||
SplitContainer *sc = Object::cast_to<SplitContainer>(get_parent());
|
||||
if (sc->collapsed || sc->valid_children.size() < 2u || !sc->dragging_enabled) {
|
||||
return;
|
||||
}
|
||||
sc->clamp_split_offset(dragger_index);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_value(ae, sc->get_split_offset(dragger_index));
|
||||
AccessibilityServer::get_singleton()->update_set_num_value(ae, sc->get_split_offset(dragger_index));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &SplitContainerDragger::_accessibility_action_dec));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &SplitContainerDragger::_accessibility_action_inc));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &SplitContainerDragger::_accessibility_action_set_value));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &SplitContainerDragger::_accessibility_action_dec));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &SplitContainerDragger::_accessibility_action_inc));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &SplitContainerDragger::_accessibility_action_set_value));
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "scene/main/timer.h"
|
||||
#include "scene/main/viewport.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
static inline Color _select_color(const Color &p_override_color, const Color &p_default_color) {
|
||||
return p_override_color.a > 0 ? p_override_color : p_default_color;
|
||||
|
|
@ -373,7 +374,7 @@ RID TabBar::get_tab_accessibility_element(int p_tab) const {
|
|||
|
||||
const Tab &item = tabs[p_tab];
|
||||
if (item.accessibility_item_element.is_null()) {
|
||||
item.accessibility_item_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_TAB);
|
||||
item.accessibility_item_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TAB);
|
||||
item.accessibility_item_dirty = true;
|
||||
}
|
||||
return item.accessibility_item_element;
|
||||
|
|
@ -439,29 +440,29 @@ void TabBar::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_TAB_BAR);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_count(ae, tabs.size());
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TAB_BAR);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_count(ae, tabs.size());
|
||||
|
||||
for (int i = 0; i < tabs.size(); i++) {
|
||||
const Tab &item = tabs[i];
|
||||
|
||||
if (item.accessibility_item_element.is_null()) {
|
||||
item.accessibility_item_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_TAB);
|
||||
item.accessibility_item_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TAB);
|
||||
item.accessibility_item_dirty = true;
|
||||
}
|
||||
|
||||
if (item.accessibility_item_dirty) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &TabBar::_accessibility_action_scroll_into_view).bind(i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(item.accessibility_item_element, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &TabBar::_accessibility_action_focus).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &TabBar::_accessibility_action_scroll_into_view).bind(i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &TabBar::_accessibility_action_focus).bind(i));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_index(item.accessibility_item_element, i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(item.accessibility_item_element, atr(item.text));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(item.accessibility_item_element, i == current);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(item.accessibility_item_element, DisplayServer::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(item.accessibility_item_element, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, item.hidden);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_index(item.accessibility_item_element, i);
|
||||
AccessibilityServer::get_singleton()->update_set_name(item.accessibility_item_element, atr(item.text));
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(item.accessibility_item_element, i == current);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_DISABLED, item.disabled);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(item.accessibility_item_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, item.hidden);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(item.accessibility_item_element, item.tooltip);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(item.accessibility_item_element, Rect2(Point2(item.ofs_cache, 0), Size2(item.size_cache, get_size().height)));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(item.accessibility_item_element, Rect2(Point2(item.ofs_cache, 0), Size2(item.size_cache, get_size().height)));
|
||||
|
||||
item.accessibility_item_dirty = false;
|
||||
}
|
||||
|
|
@ -749,7 +750,7 @@ void TabBar::set_tab_count(int p_count) {
|
|||
if (tabs.size() > p_count) {
|
||||
for (int i = p_count; i < tabs.size(); i++) {
|
||||
if (tabs[i].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(tabs.write[i].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(tabs.write[i].accessibility_item_element);
|
||||
tabs.write[i].accessibility_item_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -1340,7 +1341,7 @@ void TabBar::clear_tabs() {
|
|||
|
||||
for (int i = 0; i < tabs.size(); i++) {
|
||||
if (tabs[i].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(tabs.write[i].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(tabs.write[i].accessibility_item_element);
|
||||
tabs.write[i].accessibility_item_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -1360,7 +1361,7 @@ void TabBar::remove_tab(int p_idx) {
|
|||
ERR_FAIL_INDEX(p_idx, tabs.size());
|
||||
|
||||
if (tabs[p_idx].accessibility_item_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(tabs.write[p_idx].accessibility_item_element);
|
||||
AccessibilityServer::get_singleton()->free_element(tabs.write[p_idx].accessibility_item_element);
|
||||
tabs.write[p_idx].accessibility_item_element = RID();
|
||||
}
|
||||
tabs.remove_at(p_idx);
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "scene/gui/button.h"
|
||||
#include "scene/gui/popup.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
TabContainer::CachedTab &TabContainer::get_pending_tab(int p_idx) const {
|
||||
if (p_idx >= pending_tabs.size()) {
|
||||
|
|
@ -115,18 +116,18 @@ void TabContainer::_notification(int p_what) {
|
|||
}
|
||||
Control *control = _as_tab_control(child_node);
|
||||
if (!control) {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_child(ae, child_node->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_child(ae, child_node->get_accessibility_element());
|
||||
} else {
|
||||
if (!tab_panels.has(child_node)) {
|
||||
tab_panels[child_node] = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_TAB_PANEL);
|
||||
tab_panels[child_node] = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TAB_PANEL);
|
||||
}
|
||||
RID panel = tab_panels[child_node];
|
||||
RID tab = tab_bar->get_tab_accessibility_element(tab_index);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_controls(tab, panel);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_related_labeled_by(panel, tab);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(panel, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, tab_index != tab_cur);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_child(panel, child_node->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_related_controls(tab, panel);
|
||||
AccessibilityServer::get_singleton()->update_add_related_labeled_by(panel, tab);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(panel, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, tab_index != tab_cur);
|
||||
AccessibilityServer::get_singleton()->update_add_child(panel, child_node->get_accessibility_element());
|
||||
|
||||
tab_index++;
|
||||
}
|
||||
|
|
@ -619,7 +620,7 @@ void TabContainer::remove_child_notify(Node *p_child) {
|
|||
Container::remove_child_notify(p_child);
|
||||
|
||||
if (tab_panels.has(p_child)) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(tab_panels[p_child]);
|
||||
AccessibilityServer::get_singleton()->free_element(tab_panels[p_child]);
|
||||
tab_panels.erase(p_child);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
#include "scene/gui/label.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/rendering/rendering_server_enums.h"
|
||||
|
||||
|
|
@ -247,7 +248,7 @@ void TextEdit::Text::update_accessibility(int p_line, RID p_root) {
|
|||
if (l.accessibility_text_root_element.is_empty()) {
|
||||
for (int i = 0; i < l.data_buf->get_line_count(); i++) {
|
||||
bool is_last_line = (p_line == text.size() - 1) && (i == l.data_buf->get_line_count() - 1);
|
||||
RID rid = DisplayServer::get_singleton()->accessibility_create_sub_text_edit_elements(p_root, l.data_buf->get_line_rid(i), max_line_height, p_line, is_last_line);
|
||||
RID rid = AccessibilityServer::get_singleton()->create_sub_text_edit_elements(p_root, l.data_buf->get_line_rid(i), max_line_height, p_line, is_last_line);
|
||||
l.accessibility_text_root_element.push_back(rid);
|
||||
}
|
||||
}
|
||||
|
|
@ -270,7 +271,7 @@ void TextEdit::Text::invalidate_cache(int p_line, bool p_text_changed) {
|
|||
Line &l = text.write[p_line];
|
||||
for (const RID rid : l.accessibility_text_root_element) {
|
||||
if (rid.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(rid);
|
||||
AccessibilityServer::get_singleton()->free_element(rid);
|
||||
}
|
||||
}
|
||||
l.accessibility_text_root_element.clear();
|
||||
|
|
@ -649,11 +650,11 @@ String TextEdit::Text::get_enabled_word_separators() const {
|
|||
void TextEdit::_accessibility_action_set_selection(const Variant &p_data) {
|
||||
Dictionary new_selection = p_data;
|
||||
RID sel_start = new_selection["start_element"];
|
||||
Vector2i sel_start_line = DisplayServer::get_singleton()->accessibility_element_get_meta(sel_start);
|
||||
Vector2i sel_start_line = AccessibilityServer::get_singleton()->element_get_meta(sel_start);
|
||||
int sel_start_pos = new_selection["start_char"];
|
||||
|
||||
RID sel_end = new_selection["end_element"];
|
||||
Vector2i sel_end_line = DisplayServer::get_singleton()->accessibility_element_get_meta(sel_end);
|
||||
Vector2i sel_end_line = AccessibilityServer::get_singleton()->element_get_meta(sel_end);
|
||||
int sel_end_pos = new_selection["end_char"];
|
||||
|
||||
remove_secondary_carets();
|
||||
|
|
@ -682,7 +683,7 @@ void TextEdit::_accessibility_action_menu(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void TextEdit::_accessibility_scroll_down(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() / 4);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page());
|
||||
|
|
@ -691,7 +692,7 @@ void TextEdit::_accessibility_scroll_down(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void TextEdit::_accessibility_scroll_left(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() / 4);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page());
|
||||
|
|
@ -700,7 +701,7 @@ void TextEdit::_accessibility_scroll_left(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void TextEdit::_accessibility_scroll_right(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() / 4);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page());
|
||||
|
|
@ -709,7 +710,7 @@ void TextEdit::_accessibility_scroll_right(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void TextEdit::_accessibility_scroll_up(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() / 4);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page());
|
||||
|
|
@ -748,24 +749,24 @@ void TextEdit::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_MULTILINE_TEXT_FIELD);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_MULTILINE_TEXT_FIELD);
|
||||
if (text.size() == 1 && text[0].is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_placeholder(ae, atr(placeholder_text));
|
||||
AccessibilityServer::get_singleton()->update_set_placeholder(ae, atr(placeholder_text));
|
||||
}
|
||||
if (!placeholder_text.is_empty() && get_accessibility_name().is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, atr(placeholder_text));
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, atr(placeholder_text));
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_READONLY, !editable);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_TEXT_SELECTION, callable_mp(this, &TextEdit::_accessibility_action_set_selection));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_REPLACE_SELECTED_TEXT, callable_mp(this, &TextEdit::_accessibility_action_replace_selected));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &TextEdit::_accessibility_action_set_value));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &TextEdit::_accessibility_action_menu));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_READONLY, !editable);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_TEXT_SELECTION, callable_mp(this, &TextEdit::_accessibility_action_set_selection));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_REPLACE_SELECTED_TEXT, callable_mp(this, &TextEdit::_accessibility_action_replace_selected));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &TextEdit::_accessibility_action_set_value));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SHOW_CONTEXT_MENU, callable_mp(this, &TextEdit::_accessibility_action_menu));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &TextEdit::_accessibility_scroll_down));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &TextEdit::_accessibility_scroll_left));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &TextEdit::_accessibility_scroll_right));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &TextEdit::_accessibility_scroll_up));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &TextEdit::_accessibility_scroll_set));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &TextEdit::_accessibility_scroll_down));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &TextEdit::_accessibility_scroll_left));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &TextEdit::_accessibility_scroll_right));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &TextEdit::_accessibility_scroll_up));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &TextEdit::_accessibility_scroll_set));
|
||||
|
||||
int first_vis_line = get_first_visible_line();
|
||||
int row_height = get_line_height();
|
||||
|
|
@ -800,13 +801,13 @@ void TextEdit::_notification(int p_what) {
|
|||
char_margin += wrap_indent;
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(text_aes[j], DisplayServer::AccessibilityFlags::FLAG_HIDDEN, _is_line_hidden(i));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(text_aes[j], AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, _is_line_hidden(i));
|
||||
Transform2D tr;
|
||||
tr.set_origin(Point2(char_margin, text_off_y));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(text_aes[j], tr);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(text_aes[j], vformat(RTR("Line %d"), i));
|
||||
DisplayServer::get_singleton()->accessibility_element_set_meta(text_aes[j], Vector2i(i, j));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(text_aes[j], DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &TextEdit::_accessibility_action_scroll_into_view).bind(i, j));
|
||||
AccessibilityServer::get_singleton()->update_set_transform(text_aes[j], tr);
|
||||
AccessibilityServer::get_singleton()->update_set_name(text_aes[j], vformat(RTR("Line %d"), i));
|
||||
AccessibilityServer::get_singleton()->element_set_meta(text_aes[j], Vector2i(i, j));
|
||||
AccessibilityServer::get_singleton()->update_add_action(text_aes[j], AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &TextEdit::_accessibility_action_scroll_into_view).bind(i, j));
|
||||
}
|
||||
lines_drawn += ac_buf->get_line_count();
|
||||
}
|
||||
|
|
@ -819,11 +820,11 @@ void TextEdit::_notification(int p_what) {
|
|||
|
||||
int end_wrap = get_line_wrap_index_at_column(carets[0].line, carets[0].column);
|
||||
RID end_rid = text.get_accessibility_elements(carets[0].line)[end_wrap];
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_selection(ae, start_rid, carets[0].selection.origin_column, end_rid, carets[0].column);
|
||||
AccessibilityServer::get_singleton()->update_set_text_selection(ae, start_rid, carets[0].selection.origin_column, end_rid, carets[0].column);
|
||||
} else {
|
||||
int caret_wrap = get_line_wrap_index_at_column(carets[0].line, carets[0].column);
|
||||
RID caret_rid = text.get_accessibility_elements(carets[0].line)[caret_wrap];
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_selection(ae, caret_rid, carets[0].column, caret_rid, carets[0].column);
|
||||
AccessibilityServer::get_singleton()->update_set_text_selection(ae, caret_rid, carets[0].column, caret_rid, carets[0].column);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "texture_progress_bar.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
void TextureProgressBar::set_under_texture(const Ref<Texture2D> &p_texture) {
|
||||
|
|
@ -436,7 +437,7 @@ void TextureProgressBar::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_PROGRESS_INDICATOR);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_PROGRESS_INDICATOR);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
|
|
@ -161,17 +161,17 @@ void TreeItem::_change_tree(Tree *p_tree) {
|
|||
tree = p_tree;
|
||||
|
||||
if (accessibility_row_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_row_element);
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_row_element);
|
||||
accessibility_row_element = RID();
|
||||
}
|
||||
for (Cell &cell : cells) {
|
||||
if (cell.accessibility_cell_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(cell.accessibility_cell_element);
|
||||
AccessibilityServer::get_singleton()->free_element(cell.accessibility_cell_element);
|
||||
cell.accessibility_cell_element = RID();
|
||||
}
|
||||
for (Cell::Button &btn : cell.buttons) {
|
||||
if (btn.accessibility_button_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(btn.accessibility_button_element);
|
||||
AccessibilityServer::get_singleton()->free_element(btn.accessibility_button_element);
|
||||
btn.accessibility_button_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -1367,7 +1367,7 @@ void TreeItem::clear_buttons() {
|
|||
if (!cell.buttons.is_empty()) {
|
||||
for (Cell::Button &btn : cell.buttons) {
|
||||
if (btn.accessibility_button_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(btn.accessibility_button_element);
|
||||
AccessibilityServer::get_singleton()->free_element(btn.accessibility_button_element);
|
||||
}
|
||||
}
|
||||
cell.buttons.clear();
|
||||
|
|
@ -1426,7 +1426,7 @@ void TreeItem::erase_button(int p_column, int p_index) {
|
|||
ERR_FAIL_INDEX(p_column, cells.size());
|
||||
ERR_FAIL_INDEX(p_index, cells[p_column].buttons.size());
|
||||
if (cells[p_column].buttons[p_index].accessibility_button_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(cells.write[p_column].buttons.write[p_index].accessibility_button_element);
|
||||
AccessibilityServer::get_singleton()->free_element(cells.write[p_column].buttons.write[p_index].accessibility_button_element);
|
||||
}
|
||||
cells.write[p_column].buttons.remove_at(p_index);
|
||||
_changed_notify(p_column);
|
||||
|
|
@ -4706,7 +4706,7 @@ PackedStringArray Tree::get_accessibility_configuration_warnings() const {
|
|||
}
|
||||
|
||||
void Tree::_accessibility_action_scroll_down(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() / 4);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page());
|
||||
|
|
@ -4714,7 +4714,7 @@ void Tree::_accessibility_action_scroll_down(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void Tree::_accessibility_action_scroll_left(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() / 4);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page());
|
||||
|
|
@ -4722,7 +4722,7 @@ void Tree::_accessibility_action_scroll_left(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void Tree::_accessibility_action_scroll_right(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() / 4);
|
||||
} else {
|
||||
h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page());
|
||||
|
|
@ -4730,7 +4730,7 @@ void Tree::_accessibility_action_scroll_right(const Variant &p_data) {
|
|||
}
|
||||
|
||||
void Tree::_accessibility_action_scroll_up(const Variant &p_data) {
|
||||
if ((DisplayServer::AccessibilityScrollUnit)p_data == DisplayServer::SCROLL_UNIT_ITEM) {
|
||||
if ((AccessibilityServerEnums::AccessibilityScrollUnit)p_data == AccessibilityServerEnums::SCROLL_UNIT_ITEM) {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() / 4);
|
||||
} else {
|
||||
v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page());
|
||||
|
|
@ -4841,27 +4841,27 @@ void Tree::_accessibility_update_item(Point2 &r_ofs, TreeItem *p_item, int &r_ro
|
|||
// Row.
|
||||
if ((p_item != root || !hide_root) && p_item->is_visible()) {
|
||||
if (p_item->accessibility_row_element.is_null()) {
|
||||
p_item->accessibility_row_element = DisplayServer::get_singleton()->accessibility_create_sub_element(accessibility_scroll_element, DisplayServer::AccessibilityRole::ROLE_TREE_ITEM);
|
||||
p_item->accessibility_row_element = AccessibilityServer::get_singleton()->create_sub_element(accessibility_scroll_element, AccessibilityServerEnums::AccessibilityRole::ROLE_TREE_ITEM);
|
||||
p_item->accessibility_row_dirty = true;
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_row_index(p_item->accessibility_row_element, r_row);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_level(p_item->accessibility_row_element, p_level);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_expanded(p_item->accessibility_row_element, !p_item->collapsed);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(p_item->accessibility_row_element, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, !(p_item->visible && !p_item->parent_visible_in_tree));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(p_item->accessibility_row_element, DisplayServer::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &Tree::_accessibility_action_collapse).bind(p_item));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(p_item->accessibility_row_element, DisplayServer::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &Tree::_accessibility_action_expand).bind(p_item));
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_index(p_item->accessibility_row_element, r_row);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_level(p_item->accessibility_row_element, p_level);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_expanded(p_item->accessibility_row_element, !p_item->collapsed);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(p_item->accessibility_row_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, !(p_item->visible && !p_item->parent_visible_in_tree));
|
||||
AccessibilityServer::get_singleton()->update_add_action(p_item->accessibility_row_element, AccessibilityServerEnums::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &Tree::_accessibility_action_collapse).bind(p_item));
|
||||
AccessibilityServer::get_singleton()->update_add_action(p_item->accessibility_row_element, AccessibilityServerEnums::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &Tree::_accessibility_action_expand).bind(p_item));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(p_item->accessibility_row_element, selected_item == p_item);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(p_item->accessibility_row_element, selected_item == p_item);
|
||||
if (p_item == root && is_root_hidden()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(p_item->accessibility_row_element, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, true);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(p_item->accessibility_row_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, true);
|
||||
}
|
||||
Transform2D row_xform;
|
||||
row_xform.set_origin(r_ofs);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(p_item->accessibility_row_element, row_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_transform(p_item->accessibility_row_element, row_xform);
|
||||
|
||||
Size2 item_size = Size2(get_size().width, compute_item_height(p_item));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(p_item->accessibility_row_element, Rect2(Vector2(), item_size));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(p_item->accessibility_row_element, Rect2(Vector2(), item_size));
|
||||
|
||||
if (p_item->accessibility_row_dirty) {
|
||||
// Cells.
|
||||
|
|
@ -4870,82 +4870,82 @@ void Tree::_accessibility_update_item(Point2 &r_ofs, TreeItem *p_item, int &r_ro
|
|||
TreeItem::Cell &cell = p_item->cells.write[i];
|
||||
|
||||
if (cell.accessibility_cell_element.is_null()) {
|
||||
cell.accessibility_cell_element = DisplayServer::get_singleton()->accessibility_create_sub_element(p_item->accessibility_row_element, DisplayServer::AccessibilityRole::ROLE_CELL);
|
||||
cell.accessibility_cell_element = AccessibilityServer::get_singleton()->create_sub_element(p_item->accessibility_row_element, AccessibilityServerEnums::AccessibilityRole::ROLE_CELL);
|
||||
}
|
||||
|
||||
float cw = get_column_width(i);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &Tree::_accessibility_action_scroll_into_view).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Tree::_accessibility_action_focus).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_BLUR, callable_mp(this, &Tree::_accessibility_action_blur).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &Tree::_accessibility_action_collapse).bind(p_item));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &Tree::_accessibility_action_expand).bind(p_item));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_INTO_VIEW, callable_mp(this, &Tree::_accessibility_action_scroll_into_view).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Tree::_accessibility_action_focus).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_BLUR, callable_mp(this, &Tree::_accessibility_action_blur).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_COLLAPSE, callable_mp(this, &Tree::_accessibility_action_collapse).bind(p_item));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_EXPAND, callable_mp(this, &Tree::_accessibility_action_expand).bind(p_item));
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_cell_position(cell.accessibility_cell_element, r_row, i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_list_item_selected(cell.accessibility_cell_element, cell.selected);
|
||||
AccessibilityServer::get_singleton()->update_set_table_cell_position(cell.accessibility_cell_element, r_row, i);
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(cell.accessibility_cell_element, cell.selected);
|
||||
if (cell.description.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(cell.accessibility_cell_element, cell.xl_text);
|
||||
AccessibilityServer::get_singleton()->update_set_name(cell.accessibility_cell_element, cell.xl_text);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(cell.accessibility_cell_element, cell.description);
|
||||
AccessibilityServer::get_singleton()->update_set_name(cell.accessibility_cell_element, cell.description);
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_align(cell.accessibility_cell_element, cell.text_alignment);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(cell.accessibility_cell_element, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, !(p_item->visible && !p_item->parent_visible_in_tree));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(cell.accessibility_cell_element, DisplayServer::AccessibilityFlags::FLAG_READONLY, !cell.editable);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(cell.accessibility_cell_element, cell.tooltip);
|
||||
AccessibilityServer::get_singleton()->update_set_text_align(cell.accessibility_cell_element, cell.text_alignment);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, !(p_item->visible && !p_item->parent_visible_in_tree));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_READONLY, !cell.editable);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(cell.accessibility_cell_element, cell.tooltip);
|
||||
switch (cell.mode) {
|
||||
case TreeItem::CELL_MODE_STRING: {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Tree::_accessibility_action_set_text_value).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_value(cell.accessibility_cell_element, cell.xl_text);
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Tree::_accessibility_action_set_text_value).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_set_value(cell.accessibility_cell_element, cell.xl_text);
|
||||
} break;
|
||||
case TreeItem::CELL_MODE_CHECK: {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_set_bool_value).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_checked(cell.accessibility_cell_element, cell.checked);
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_set_bool_value).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_set_checked(cell.accessibility_cell_element, cell.checked);
|
||||
} break;
|
||||
case TreeItem::CELL_MODE_RANGE: {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &Tree::_accessibility_action_set_dec).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &Tree::_accessibility_action_set_inc).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Tree::_accessibility_action_set_num_value).bind(p_item, i));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_value(cell.accessibility_cell_element, cell.val);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_range(cell.accessibility_cell_element, cell.min, cell.max);
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_DECREMENT, callable_mp(this, &Tree::_accessibility_action_set_dec).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_INCREMENT, callable_mp(this, &Tree::_accessibility_action_set_inc).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_VALUE, callable_mp(this, &Tree::_accessibility_action_set_num_value).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_set_num_value(cell.accessibility_cell_element, cell.val);
|
||||
AccessibilityServer::get_singleton()->update_set_num_range(cell.accessibility_cell_element, cell.min, cell.max);
|
||||
if (cell.step > 0) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(cell.accessibility_cell_element, cell.step);
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(cell.accessibility_cell_element, cell.step);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_num_step(cell.accessibility_cell_element, 1);
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(cell.accessibility_cell_element, 1);
|
||||
}
|
||||
} break;
|
||||
case TreeItem::CELL_MODE_ICON: {
|
||||
// NOP
|
||||
} break;
|
||||
case TreeItem::CELL_MODE_CUSTOM: {
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.accessibility_cell_element, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_edit_custom).bind(p_item, i));
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_edit_custom).bind(p_item, i));
|
||||
} break;
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_background_color(cell.accessibility_cell_element, cell.color);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_foreground_color(cell.accessibility_cell_element, cell.bg_color);
|
||||
AccessibilityServer::get_singleton()->update_set_background_color(cell.accessibility_cell_element, cell.color);
|
||||
AccessibilityServer::get_singleton()->update_set_foreground_color(cell.accessibility_cell_element, cell.bg_color);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(cell.accessibility_cell_element, Rect2(Point2(col_offset, 0), Size2(cw, item_size.y)));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(cell.accessibility_cell_element, Rect2(Point2(col_offset, 0), Size2(cw, item_size.y)));
|
||||
|
||||
Vector2 ofst = Vector2(col_offset + cw, 0);
|
||||
for (int j = cell.buttons.size() - 1; j >= 0; j--) {
|
||||
if (cell.buttons[j].accessibility_button_element.is_null()) {
|
||||
cell.buttons[j].accessibility_button_element = DisplayServer::get_singleton()->accessibility_create_sub_element(cell.accessibility_cell_element, DisplayServer::AccessibilityRole::ROLE_BUTTON);
|
||||
cell.buttons[j].accessibility_button_element = AccessibilityServer::get_singleton()->create_sub_element(cell.accessibility_cell_element, AccessibilityServerEnums::AccessibilityRole::ROLE_BUTTON);
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(cell.buttons[j].accessibility_button_element, DisplayServer::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_button_press).bind(p_item, i, j));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(cell.buttons[j].accessibility_button_element, DisplayServer::AccessibilityFlags::FLAG_DISABLED, cell.buttons[j].disabled);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_tooltip(cell.buttons[j].accessibility_button_element, cell.buttons[j].tooltip);
|
||||
AccessibilityServer::get_singleton()->update_add_action(cell.buttons[j].accessibility_button_element, AccessibilityServerEnums::AccessibilityAction::ACTION_CLICK, callable_mp(this, &Tree::_accessibility_action_button_press).bind(p_item, i, j));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(cell.buttons[j].accessibility_button_element, AccessibilityServerEnums::AccessibilityFlags::FLAG_DISABLED, cell.buttons[j].disabled);
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(cell.buttons[j].accessibility_button_element, cell.buttons[j].tooltip);
|
||||
if (cell.buttons[j].description.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(cell.buttons[j].accessibility_button_element, cell.buttons[j].tooltip);
|
||||
AccessibilityServer::get_singleton()->update_set_name(cell.buttons[j].accessibility_button_element, cell.buttons[j].tooltip);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(cell.buttons[j].accessibility_button_element, cell.buttons[j].description);
|
||||
AccessibilityServer::get_singleton()->update_set_name(cell.buttons[j].accessibility_button_element, cell.buttons[j].description);
|
||||
}
|
||||
|
||||
Ref<Texture2D> b = cell.buttons[j].texture;
|
||||
Size2 b_size = b->get_size() + theme_cache.button_pressed->get_minimum_size();
|
||||
ofst.x -= b_size.x;
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(cell.buttons[j].accessibility_button_element, Rect2(ofst, b_size));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(cell.buttons[j].accessibility_button_element, Rect2(ofst, b_size));
|
||||
}
|
||||
col_offset += cw;
|
||||
}
|
||||
|
|
@ -4985,13 +4985,13 @@ void Tree::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_TREE);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TREE);
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &Tree::_accessibility_action_scroll_down));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &Tree::_accessibility_action_scroll_left));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &Tree::_accessibility_action_scroll_right));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &Tree::_accessibility_action_scroll_up));
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &Tree::_accessibility_action_scroll_set));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_DOWN, callable_mp(this, &Tree::_accessibility_action_scroll_down));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_LEFT, callable_mp(this, &Tree::_accessibility_action_scroll_left));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_RIGHT, callable_mp(this, &Tree::_accessibility_action_scroll_right));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SCROLL_UP, callable_mp(this, &Tree::_accessibility_action_scroll_up));
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_SET_SCROLL_OFFSET, callable_mp(this, &Tree::_accessibility_action_scroll_set));
|
||||
|
||||
Ref<StyleBox> bg = theme_cache.panel_style;
|
||||
int tbh = _get_title_button_height();
|
||||
|
|
@ -5003,32 +5003,32 @@ void Tree::_notification(int p_what) {
|
|||
ColumnInfo &column = columns.write[i];
|
||||
|
||||
if (column.accessibility_col_element.is_null()) {
|
||||
column.accessibility_col_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_COLUMN_HEADER);
|
||||
column.accessibility_col_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_COLUMN_HEADER);
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_column_index(column.accessibility_col_element, i);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(column.accessibility_col_element, column.xl_title);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_text_align(column.accessibility_col_element, column.title_alignment);
|
||||
AccessibilityServer::get_singleton()->update_set_table_column_index(column.accessibility_col_element, i);
|
||||
AccessibilityServer::get_singleton()->update_set_name(column.accessibility_col_element, column.xl_title);
|
||||
AccessibilityServer::get_singleton()->update_set_text_align(column.accessibility_col_element, column.title_alignment);
|
||||
|
||||
Rect2 tbrect = Rect2(ofs - theme_cache.offset.x, bg->get_margin(SIDE_TOP), get_column_width(i), tbh);
|
||||
if (cache.rtl) {
|
||||
tbrect.position.x = get_size().width - tbrect.size.x - tbrect.position.x;
|
||||
}
|
||||
ofs += tbrect.size.width;
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(column.accessibility_col_element, Rect2(tbrect.position, tbrect.size));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(column.accessibility_col_element, Rect2(tbrect.position, tbrect.size));
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_column_count(ae, cs);
|
||||
AccessibilityServer::get_singleton()->update_set_table_column_count(ae, cs);
|
||||
|
||||
// Scroll container.
|
||||
if (accessibility_scroll_element.is_null()) {
|
||||
accessibility_scroll_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_CONTAINER);
|
||||
accessibility_scroll_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_CONTAINER);
|
||||
}
|
||||
|
||||
Transform2D scroll_xform;
|
||||
scroll_xform.set_origin(Vector2i(-h_scroll->get_value(), -v_scroll->get_value()));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_scroll_element, Rect2(0, 0, h_scroll->get_max(), v_scroll->get_max()));
|
||||
AccessibilityServer::get_singleton()->update_set_transform(accessibility_scroll_element, scroll_xform);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(accessibility_scroll_element, Rect2(0, 0, h_scroll->get_max(), v_scroll->get_max()));
|
||||
|
||||
// Rows (and cells).
|
||||
Point2 origin = Point2(theme_cache.panel_style->get_margin(SIDE_LEFT) - theme_cache.offset.x, bg->get_margin(SIDE_TOP) + tbh);
|
||||
|
|
@ -5036,7 +5036,7 @@ void Tree::_notification(int p_what) {
|
|||
if (root) {
|
||||
_accessibility_update_item(origin, root, rows, 0);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_table_row_count(ae, rows);
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_count(ae, rows);
|
||||
|
||||
} break;
|
||||
|
||||
|
|
@ -5746,12 +5746,12 @@ void Tree::propagate_set_columns(TreeItem *p_item) {
|
|||
p_item->accessibility_row_dirty = true;
|
||||
for (TreeItem::Cell &cell : p_item->cells) {
|
||||
if (cell.accessibility_cell_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(cell.accessibility_cell_element);
|
||||
AccessibilityServer::get_singleton()->free_element(cell.accessibility_cell_element);
|
||||
cell.accessibility_cell_element = RID();
|
||||
}
|
||||
for (TreeItem::Cell::Button &btn : cell.buttons) {
|
||||
if (btn.accessibility_button_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(btn.accessibility_button_element);
|
||||
AccessibilityServer::get_singleton()->free_element(btn.accessibility_button_element);
|
||||
btn.accessibility_button_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
@ -5771,7 +5771,7 @@ void Tree::set_columns(int p_columns) {
|
|||
if (columns.size() > p_columns) {
|
||||
for (int i = p_columns; i < columns.size(); i++) {
|
||||
if (columns[i].accessibility_col_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(columns[i].accessibility_col_element);
|
||||
AccessibilityServer::get_singleton()->free_element(columns[i].accessibility_col_element);
|
||||
columns.write[i].accessibility_col_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "scene/gui/control.h"
|
||||
#include "scene/resources/text_paragraph.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
class VBoxContainer;
|
||||
class HScrollBar;
|
||||
|
|
@ -181,17 +182,17 @@ private:
|
|||
|
||||
_FORCE_INLINE_ void _unlink_from_tree() {
|
||||
if (accessibility_row_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_row_element);
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_row_element);
|
||||
accessibility_row_element = RID();
|
||||
}
|
||||
for (Cell &cell : cells) {
|
||||
if (cell.accessibility_cell_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(cell.accessibility_cell_element);
|
||||
AccessibilityServer::get_singleton()->free_element(cell.accessibility_cell_element);
|
||||
cell.accessibility_cell_element = RID();
|
||||
}
|
||||
for (Cell::Button &btn : cell.buttons) {
|
||||
if (btn.accessibility_button_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(btn.accessibility_button_element);
|
||||
AccessibilityServer::get_singleton()->free_element(btn.accessibility_button_element);
|
||||
btn.accessibility_button_element = RID();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/object/class_db.h"
|
||||
#include "core/os/os.h"
|
||||
#include "servers/audio/audio_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
int VideoStreamPlayer::sp_get_channel_count() const {
|
||||
if (playback.is_null()) {
|
||||
|
|
@ -132,7 +133,7 @@ void VideoStreamPlayer::_notification(int p_notification) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_VIDEO);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_VIDEO);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "virtual_joystick.h"
|
||||
|
||||
#include "core/config/engine.h"
|
||||
#include "core/input/input.h"
|
||||
#include "core/input/input_map.h"
|
||||
#include "core/object/class_db.h"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
#include "scene/resources/multimesh.h"
|
||||
#include "scene/resources/style_box.h"
|
||||
#include "scene/resources/world_2d.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
#define ERR_DRAW_GUARD \
|
||||
|
|
@ -305,7 +306,7 @@ void CanvasItem::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, !visible);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, !visible);
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, Engine);
|
|||
#include "scene/main/viewport.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
#include "scene/debugger/scene_debugger.h"
|
||||
|
|
@ -67,7 +68,7 @@ void Node::_notification(int p_notification) {
|
|||
switch (p_notification) {
|
||||
case NOTIFICATION_ACCESSIBILITY_INVALIDATE: {
|
||||
if (data.accessibility_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(data.accessibility_element);
|
||||
AccessibilityServer::get_singleton()->free_element(data.accessibility_element);
|
||||
data.accessibility_element = RID();
|
||||
}
|
||||
} break;
|
||||
|
|
@ -76,7 +77,7 @@ void Node::_notification(int p_notification) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, get_name());
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, get_name());
|
||||
|
||||
// Node children.
|
||||
if (!accessibility_override_tree_hierarchy()) {
|
||||
|
|
@ -89,7 +90,7 @@ void Node::_notification(int p_notification) {
|
|||
if (child_node->is_part_of_edited_scene()) {
|
||||
continue;
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_add_child(ae, child_node->get_accessibility_element());
|
||||
AccessibilityServer::get_singleton()->update_add_child(ae, child_node->get_accessibility_element());
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
|
@ -195,7 +196,7 @@ void Node::_notification(int p_notification) {
|
|||
|
||||
if (data.tree->is_accessibility_supported() && !is_part_of_edited_scene()) {
|
||||
if (data.accessibility_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(data.accessibility_element);
|
||||
AccessibilityServer::get_singleton()->free_element(data.accessibility_element);
|
||||
data.accessibility_element = RID();
|
||||
}
|
||||
data.tree->_accessibility_notify_change(this, true);
|
||||
|
|
@ -3721,7 +3722,7 @@ RID Node::get_accessibility_element() const {
|
|||
if (unlikely(data.accessibility_element.is_null())) {
|
||||
Window *w = get_non_popup_window();
|
||||
if (w && w->get_window_id() != DisplayServer::INVALID_WINDOW_ID && get_window()->is_visible()) {
|
||||
data.accessibility_element = DisplayServer::get_singleton()->accessibility_create_element(w->get_window_id(), DisplayServer::ROLE_CONTAINER);
|
||||
data.accessibility_element = AccessibilityServer::get_singleton()->create_element(w->get_window_id(), AccessibilityServerEnums::ROLE_CONTAINER);
|
||||
}
|
||||
}
|
||||
return data.accessibility_element;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
#include "scene/resources/mesh.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "scene/resources/world_2d.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
|
|
@ -212,9 +213,9 @@ bool SceneTree::is_accessibility_enabled() const {
|
|||
return false;
|
||||
}
|
||||
|
||||
DisplayServer::AccessibilityMode accessibility_mode = DisplayServer::accessibility_get_mode();
|
||||
AccessibilityServerEnums::AccessibilityMode accessibility_mode = AccessibilityServer::get_singleton()->get_mode();
|
||||
int screen_reader_active = DisplayServer::get_singleton()->accessibility_screen_reader_active();
|
||||
if ((accessibility_mode == DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) || ((accessibility_mode == DisplayServer::AccessibilityMode::ACCESSIBILITY_AUTO) && (screen_reader_active != 1))) {
|
||||
if ((accessibility_mode == AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_DISABLED) || ((accessibility_mode == AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_AUTO) && (screen_reader_active != 1))) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -225,8 +226,8 @@ bool SceneTree::is_accessibility_supported() const {
|
|||
return false;
|
||||
}
|
||||
|
||||
DisplayServer::AccessibilityMode accessibility_mode = DisplayServer::accessibility_get_mode();
|
||||
if (accessibility_mode == DisplayServer::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
AccessibilityServerEnums::AccessibilityMode accessibility_mode = AccessibilityServer::get_singleton()->get_mode();
|
||||
if (accessibility_mode == AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_DISABLED) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -289,7 +290,7 @@ void SceneTree::_process_accessibility_changes(DisplayServer::WindowID p_window_
|
|||
new_focus_element = w_this->get_focused_accessibility_element();
|
||||
}
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_focus(new_focus_element);
|
||||
AccessibilityServer::get_singleton()->update_set_focus(new_focus_element);
|
||||
}
|
||||
|
||||
// Cleanup.
|
||||
|
|
@ -310,7 +311,7 @@ void SceneTree::_flush_accessibility_changes() {
|
|||
accessibility_last_update = time;
|
||||
|
||||
// Push update to the accessibility driver.
|
||||
DisplayServer::get_singleton()->accessibility_update_if_active(callable_mp(this, &SceneTree::_process_accessibility_changes));
|
||||
AccessibilityServer::get_singleton()->update_if_active(callable_mp(this, &SceneTree::_process_accessibility_changes));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
#include "scene/gui/control.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "scene/theme/theme_owner.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/rendering/rendering_server_enums.h"
|
||||
|
||||
|
|
@ -725,7 +726,7 @@ void Window::_make_window() {
|
|||
DisplayServer::get_singleton()->window_set_title(displayed_title, window_id);
|
||||
DisplayServer::get_singleton()->window_attach_instance_id(get_instance_id(), window_id);
|
||||
DisplayServer::get_singleton()->window_request_hdr_output(hdr_output_requested, window_id);
|
||||
DisplayServer::get_singleton()->accessibility_set_window_callbacks(window_id, callable_mp(this, &Window::_accessibility_activate), callable_mp(this, &Window::_accessibility_deactivate));
|
||||
AccessibilityServer::get_singleton()->set_window_callbacks(window_id, callable_mp(this, &Window::_accessibility_activate), callable_mp(this, &Window::_accessibility_deactivate));
|
||||
|
||||
_update_window_size();
|
||||
|
||||
|
|
@ -813,7 +814,7 @@ void Window::_rect_changed_callback(const Rect2i &p_callback) {
|
|||
Vector2 pos_out = DisplayServer::get_singleton()->window_get_position_with_decorations(window_id);
|
||||
Vector2 sz_in = DisplayServer::get_singleton()->window_get_size(window_id);
|
||||
Vector2 pos_in = DisplayServer::get_singleton()->window_get_position(window_id);
|
||||
DisplayServer::get_singleton()->accessibility_set_window_rect(window_id, Rect2(pos_out, sz_out), Rect2(pos_in, sz_in));
|
||||
AccessibilityServer::get_singleton()->set_window_rect(window_id, Rect2(pos_out, sz_out), Rect2(pos_in, sz_in));
|
||||
}
|
||||
queue_accessibility_update();
|
||||
}
|
||||
|
|
@ -951,12 +952,12 @@ void Window::hide() {
|
|||
|
||||
void Window::_accessibility_activate() {
|
||||
_accessibility_notify_enter(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_activation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_activation_completed(get_window_id());
|
||||
}
|
||||
|
||||
void Window::_accessibility_deactivate() {
|
||||
_accessibility_notify_exit(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_deactivation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_deactivation_completed(get_window_id());
|
||||
}
|
||||
|
||||
void Window::_accessibility_notify_enter(Node *p_node) {
|
||||
|
|
@ -1048,12 +1049,12 @@ void Window::set_visible(bool p_visible) {
|
|||
if (get_tree() && get_tree()->is_accessibility_supported()) {
|
||||
get_tree()->_accessibility_force_update();
|
||||
_accessibility_notify_enter(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_activation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_activation_completed(get_window_id());
|
||||
}
|
||||
} else {
|
||||
if (get_tree() && get_tree()->is_accessibility_supported()) {
|
||||
_accessibility_notify_exit(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_deactivation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_deactivation_completed(get_window_id());
|
||||
}
|
||||
focused = false;
|
||||
if (focused_window == this) {
|
||||
|
|
@ -1485,7 +1486,7 @@ RID Window::get_accessibility_element() const {
|
|||
if (get_embedder() || is_popup()) {
|
||||
return Node::get_accessibility_element();
|
||||
} else if (window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||
return DisplayServer::get_singleton()->accessibility_get_window_root(window_id);
|
||||
return AccessibilityServer::get_singleton()->get_window_root(window_id);
|
||||
} else {
|
||||
return RID();
|
||||
}
|
||||
|
|
@ -1505,11 +1506,11 @@ void Window::_notification(int p_what) {
|
|||
switch (p_what) {
|
||||
case NOTIFICATION_ACCESSIBILITY_INVALIDATE: {
|
||||
if (accessibility_title_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_title_element);
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_title_element);
|
||||
accessibility_title_element = RID();
|
||||
}
|
||||
if (accessibility_announcement_element.is_valid()) {
|
||||
DisplayServer::get_singleton()->accessibility_free_element(accessibility_announcement_element);
|
||||
AccessibilityServer::get_singleton()->free_element(accessibility_announcement_element);
|
||||
accessibility_announcement_element = RID();
|
||||
}
|
||||
} break;
|
||||
|
|
@ -1518,16 +1519,16 @@ void Window::_notification(int p_what) {
|
|||
RID ae = get_accessibility_element();
|
||||
ERR_FAIL_COND(ae.is_null());
|
||||
|
||||
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_WINDOW);
|
||||
AccessibilityServer::get_singleton()->update_set_role(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_WINDOW);
|
||||
if (accessibility_name.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, displayed_title);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, displayed_title);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(ae, accessibility_name);
|
||||
AccessibilityServer::get_singleton()->update_set_name(ae, accessibility_name);
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_description(ae, accessibility_description);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_MODAL, exclusive);
|
||||
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Window::_accessibility_action_grab_focus));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, !visible);
|
||||
AccessibilityServer::get_singleton()->update_set_description(ae, accessibility_description);
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_MODAL, exclusive);
|
||||
AccessibilityServer::get_singleton()->update_add_action(ae, AccessibilityServerEnums::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Window::_accessibility_action_grab_focus));
|
||||
AccessibilityServer::get_singleton()->update_set_flag(ae, AccessibilityServerEnums::AccessibilityFlags::FLAG_HIDDEN, !visible);
|
||||
|
||||
if (get_embedder() || is_popup()) {
|
||||
Control *parent_ctrl = Object::cast_to<Control>(get_parent());
|
||||
|
|
@ -1541,33 +1542,33 @@ void Window::_notification(int p_what) {
|
|||
tr.set_origin(get_position() - np->get_position());
|
||||
}
|
||||
}
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, parent_tr.affine_inverse() * tr);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), size));
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, parent_tr.affine_inverse() * tr);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, Rect2(Point2(), size));
|
||||
|
||||
if (accessibility_title_element.is_null()) {
|
||||
accessibility_title_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_TITLE_BAR);
|
||||
accessibility_title_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_TITLE_BAR);
|
||||
}
|
||||
|
||||
int w = get_theme_constant(SNAME("title_height"));
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(accessibility_title_element, displayed_title);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_title_element, Rect2(Vector2(0, -w), Size2(size.x, w)));
|
||||
AccessibilityServer::get_singleton()->update_set_name(accessibility_title_element, displayed_title);
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(accessibility_title_element, Rect2(Vector2(0, -w), Size2(size.x, w)));
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_final_transform());
|
||||
AccessibilityServer::get_singleton()->update_set_transform(ae, get_final_transform());
|
||||
if (_get_size_2d_override() != Size2()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), _get_size_2d_override()));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, Rect2(Point2(), _get_size_2d_override()));
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), _get_size()));
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(ae, Rect2(Point2(), _get_size()));
|
||||
}
|
||||
|
||||
if (accessibility_announcement_element.is_null()) {
|
||||
accessibility_announcement_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
accessibility_announcement_element = AccessibilityServer::get_singleton()->create_sub_element(ae, AccessibilityServerEnums::AccessibilityRole::ROLE_STATIC_TEXT);
|
||||
}
|
||||
|
||||
if (announcement.is_empty()) {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_live(accessibility_announcement_element, DisplayServer::LIVE_OFF);
|
||||
AccessibilityServer::get_singleton()->update_set_live(accessibility_announcement_element, AccessibilityServerEnums::AccessibilityLiveMode::LIVE_OFF);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->accessibility_update_set_name(accessibility_announcement_element, announcement);
|
||||
DisplayServer::get_singleton()->accessibility_update_set_live(accessibility_announcement_element, DisplayServer::LIVE_ASSERTIVE);
|
||||
AccessibilityServer::get_singleton()->update_set_name(accessibility_announcement_element, announcement);
|
||||
AccessibilityServer::get_singleton()->update_set_live(accessibility_announcement_element, AccessibilityServerEnums::AccessibilityLiveMode::LIVE_ASSERTIVE);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
|
@ -1631,7 +1632,7 @@ void Window::_notification(int p_what) {
|
|||
window_id = DisplayServer::MAIN_WINDOW_ID;
|
||||
focused_window = this;
|
||||
DisplayServer::get_singleton()->window_attach_instance_id(get_instance_id(), window_id);
|
||||
DisplayServer::get_singleton()->accessibility_set_window_callbacks(window_id, callable_mp(this, &Window::_accessibility_activate), callable_mp(this, &Window::_accessibility_deactivate));
|
||||
AccessibilityServer::get_singleton()->set_window_callbacks(window_id, callable_mp(this, &Window::_accessibility_activate), callable_mp(this, &Window::_accessibility_deactivate));
|
||||
_update_from_window();
|
||||
// Since this window already exists (created on start), we must update pos and size from it.
|
||||
{
|
||||
|
|
@ -1670,7 +1671,7 @@ void Window::_notification(int p_what) {
|
|||
if (window_id != DisplayServer::MAIN_WINDOW_ID && get_tree() && get_tree()->is_accessibility_supported()) {
|
||||
get_tree()->_accessibility_force_update();
|
||||
_accessibility_notify_enter(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_activation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_activation_completed(get_window_id());
|
||||
}
|
||||
notification(NOTIFICATION_VISIBILITY_CHANGED);
|
||||
emit_signal(SceneStringName(visibility_changed));
|
||||
|
|
@ -1725,7 +1726,7 @@ void Window::_notification(int p_what) {
|
|||
if (visible && window_id != DisplayServer::MAIN_WINDOW_ID) {
|
||||
if (get_tree() && get_tree()->is_accessibility_supported()) {
|
||||
_accessibility_notify_exit(this);
|
||||
DisplayServer::get_singleton()->accessibility_window_deactivation_completed(get_window_id());
|
||||
AccessibilityServer::get_singleton()->window_deactivation_completed(get_window_id());
|
||||
if (get_parent()) {
|
||||
get_parent()->queue_accessibility_update();
|
||||
}
|
||||
|
|
|
|||
257
servers/display/accessibility_server.cpp
Normal file
257
servers/display/accessibility_server.cpp
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_server.cpp */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#include "accessibility_server.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "servers/display/accessibility_server_dummy.h"
|
||||
|
||||
AccessibilityServer::AccessibilityServerCreate AccessibilityServer::server_create_functions[AccessibilityServer::MAX_SERVERS] = {
|
||||
{ "dummy", &AccessibilityServerDummy::create_func }
|
||||
};
|
||||
|
||||
int AccessibilityServer::server_create_count = 1;
|
||||
|
||||
void AccessibilityServer::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("is_supported"), &AccessibilityServer::is_supported);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("create_element", "window_id", "role"), &AccessibilityServer::create_element);
|
||||
ClassDB::bind_method(D_METHOD("create_sub_element", "parent_rid", "role", "insert_pos"), &AccessibilityServer::create_sub_element, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("create_sub_text_edit_elements", "parent_rid", "shaped_text", "min_height", "insert_pos", "is_last_line"), &AccessibilityServer::create_sub_text_edit_elements, DEFVAL(-1), DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("has_element", "id"), &AccessibilityServer::has_element);
|
||||
ClassDB::bind_method(D_METHOD("free_element", "id"), &AccessibilityServer::free_element);
|
||||
ClassDB::bind_method(D_METHOD("element_set_meta", "id", "meta"), &AccessibilityServer::element_set_meta);
|
||||
ClassDB::bind_method(D_METHOD("element_get_meta", "id"), &AccessibilityServer::element_get_meta);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_update_if_active", "callback"), &AccessibilityServer::update_if_active);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_window_rect", "window_id", "rect_out", "rect_in"), &AccessibilityServer::set_window_rect);
|
||||
ClassDB::bind_method(D_METHOD("set_window_focused", "window_id", "focused"), &AccessibilityServer::set_window_focused);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("update_set_focus", "id"), &AccessibilityServer::update_set_focus);
|
||||
ClassDB::bind_method(D_METHOD("get_window_root", "window_id"), &AccessibilityServer::get_window_root);
|
||||
ClassDB::bind_method(D_METHOD("update_set_role", "id", "role"), &AccessibilityServer::update_set_role);
|
||||
ClassDB::bind_method(D_METHOD("update_set_name", "id", "name"), &AccessibilityServer::update_set_name);
|
||||
ClassDB::bind_method(D_METHOD("update_set_braille_label", "id", "name"), &AccessibilityServer::update_set_braille_label);
|
||||
ClassDB::bind_method(D_METHOD("update_set_braille_role_description", "id", "description"), &AccessibilityServer::update_set_braille_role_description);
|
||||
ClassDB::bind_method(D_METHOD("update_set_extra_info", "id", "name"), &AccessibilityServer::update_set_extra_info);
|
||||
ClassDB::bind_method(D_METHOD("update_set_description", "id", "description"), &AccessibilityServer::update_set_description);
|
||||
ClassDB::bind_method(D_METHOD("update_set_value", "id", "value"), &AccessibilityServer::update_set_value);
|
||||
ClassDB::bind_method(D_METHOD("update_set_tooltip", "id", "tooltip"), &AccessibilityServer::update_set_tooltip);
|
||||
ClassDB::bind_method(D_METHOD("update_set_bounds", "id", "p_rect"), &AccessibilityServer::update_set_bounds);
|
||||
ClassDB::bind_method(D_METHOD("update_set_transform", "id", "transform"), &AccessibilityServer::update_set_transform);
|
||||
ClassDB::bind_method(D_METHOD("update_add_child", "id", "child_id"), &AccessibilityServer::update_add_child);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_controls", "id", "related_id"), &AccessibilityServer::update_add_related_controls);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_details", "id", "related_id"), &AccessibilityServer::update_add_related_details);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_described_by", "id", "related_id"), &AccessibilityServer::update_add_related_described_by);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_flow_to", "id", "related_id"), &AccessibilityServer::update_add_related_flow_to);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_labeled_by", "id", "related_id"), &AccessibilityServer::update_add_related_labeled_by);
|
||||
ClassDB::bind_method(D_METHOD("update_add_related_radio_group", "id", "related_id"), &AccessibilityServer::update_add_related_radio_group);
|
||||
ClassDB::bind_method(D_METHOD("update_set_active_descendant", "id", "other_id"), &AccessibilityServer::update_set_active_descendant);
|
||||
ClassDB::bind_method(D_METHOD("update_set_next_on_line", "id", "other_id"), &AccessibilityServer::update_set_next_on_line);
|
||||
ClassDB::bind_method(D_METHOD("update_set_previous_on_line", "id", "other_id"), &AccessibilityServer::update_set_previous_on_line);
|
||||
ClassDB::bind_method(D_METHOD("update_set_member_of", "id", "group_id"), &AccessibilityServer::update_set_member_of);
|
||||
ClassDB::bind_method(D_METHOD("update_set_in_page_link_target", "id", "other_id"), &AccessibilityServer::update_set_in_page_link_target);
|
||||
ClassDB::bind_method(D_METHOD("update_set_error_message", "id", "other_id"), &AccessibilityServer::update_set_error_message);
|
||||
ClassDB::bind_method(D_METHOD("update_set_live", "id", "live"), &AccessibilityServer::update_set_live);
|
||||
ClassDB::bind_method(D_METHOD("update_add_action", "id", "action", "callable"), &AccessibilityServer::update_add_action);
|
||||
ClassDB::bind_method(D_METHOD("update_add_custom_action", "id", "action_id", "action_description"), &AccessibilityServer::update_add_custom_action);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_row_count", "id", "count"), &AccessibilityServer::update_set_table_row_count);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_column_count", "id", "count"), &AccessibilityServer::update_set_table_column_count);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_row_index", "id", "index"), &AccessibilityServer::update_set_table_row_index);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_column_index", "id", "index"), &AccessibilityServer::update_set_table_column_index);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_cell_position", "id", "row_index", "column_index"), &AccessibilityServer::update_set_table_cell_position);
|
||||
ClassDB::bind_method(D_METHOD("update_set_table_cell_span", "id", "row_span", "column_span"), &AccessibilityServer::update_set_table_cell_span);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_item_count", "id", "size"), &AccessibilityServer::update_set_list_item_count);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_item_index", "id", "index"), &AccessibilityServer::update_set_list_item_index);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_item_level", "id", "level"), &AccessibilityServer::update_set_list_item_level);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_item_selected", "id", "selected"), &AccessibilityServer::update_set_list_item_selected);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_item_expanded", "id", "expanded"), &AccessibilityServer::update_set_list_item_expanded);
|
||||
ClassDB::bind_method(D_METHOD("update_set_popup_type", "id", "popup"), &AccessibilityServer::update_set_popup_type);
|
||||
ClassDB::bind_method(D_METHOD("update_set_checked", "id", "checekd"), &AccessibilityServer::update_set_checked);
|
||||
ClassDB::bind_method(D_METHOD("update_set_num_value", "id", "position"), &AccessibilityServer::update_set_num_value);
|
||||
ClassDB::bind_method(D_METHOD("update_set_num_range", "id", "min", "max"), &AccessibilityServer::update_set_num_range);
|
||||
ClassDB::bind_method(D_METHOD("update_set_num_step", "id", "step"), &AccessibilityServer::update_set_num_step);
|
||||
ClassDB::bind_method(D_METHOD("update_set_num_jump", "id", "jump"), &AccessibilityServer::update_set_num_jump);
|
||||
ClassDB::bind_method(D_METHOD("update_set_scroll_x", "id", "position"), &AccessibilityServer::update_set_scroll_x);
|
||||
ClassDB::bind_method(D_METHOD("update_set_scroll_x_range", "id", "min", "max"), &AccessibilityServer::update_set_scroll_x_range);
|
||||
ClassDB::bind_method(D_METHOD("update_set_scroll_y", "id", "position"), &AccessibilityServer::update_set_scroll_y);
|
||||
ClassDB::bind_method(D_METHOD("update_set_scroll_y_range", "id", "min", "max"), &AccessibilityServer::update_set_scroll_y_range);
|
||||
ClassDB::bind_method(D_METHOD("update_set_text_decorations", "id", "underline", "strikethrough", "overline", "color"), &AccessibilityServer::update_set_text_decorations, DEFVAL(Color(0, 0, 0, 1)));
|
||||
ClassDB::bind_method(D_METHOD("update_set_text_align", "id", "align"), &AccessibilityServer::update_set_text_align);
|
||||
ClassDB::bind_method(D_METHOD("update_set_text_selection", "id", "text_start_id", "start_char", "text_end_id", "end_char"), &AccessibilityServer::update_set_text_selection);
|
||||
ClassDB::bind_method(D_METHOD("update_set_flag", "id", "flag", "value"), &AccessibilityServer::update_set_flag);
|
||||
ClassDB::bind_method(D_METHOD("update_set_classname", "id", "classname"), &AccessibilityServer::update_set_classname);
|
||||
ClassDB::bind_method(D_METHOD("update_set_placeholder", "id", "placeholder"), &AccessibilityServer::update_set_placeholder);
|
||||
ClassDB::bind_method(D_METHOD("update_set_language", "id", "language"), &AccessibilityServer::update_set_language);
|
||||
ClassDB::bind_method(D_METHOD("update_set_text_orientation", "id", "vertical"), &AccessibilityServer::update_set_text_orientation);
|
||||
ClassDB::bind_method(D_METHOD("update_set_list_orientation", "id", "vertical"), &AccessibilityServer::update_set_list_orientation);
|
||||
ClassDB::bind_method(D_METHOD("update_set_shortcut", "id", "shortcut"), &AccessibilityServer::update_set_shortcut);
|
||||
ClassDB::bind_method(D_METHOD("update_set_url", "id", "url"), &AccessibilityServer::update_set_url);
|
||||
ClassDB::bind_method(D_METHOD("update_set_role_description", "id", "description"), &AccessibilityServer::update_set_role_description);
|
||||
ClassDB::bind_method(D_METHOD("update_set_state_description", "id", "description"), &AccessibilityServer::update_set_state_description);
|
||||
ClassDB::bind_method(D_METHOD("update_set_color_value", "id", "color"), &AccessibilityServer::update_set_color_value);
|
||||
ClassDB::bind_method(D_METHOD("update_set_background_color", "id", "color"), &AccessibilityServer::update_set_background_color);
|
||||
ClassDB::bind_method(D_METHOD("update_set_foreground_color", "id", "color"), &AccessibilityServer::update_set_foreground_color);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_UNKNOWN);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_DEFAULT_BUTTON);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_AUDIO);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_VIDEO);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_STATIC_TEXT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CONTAINER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_PANEL);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_BUTTON);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LINK);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CHECK_BOX);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_RADIO_BUTTON);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CHECK_BUTTON);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SCROLL_BAR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SCROLL_VIEW);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SPLITTER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SLIDER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_SPIN_BUTTON);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_PROGRESS_INDICATOR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TEXT_FIELD);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MULTILINE_TEXT_FIELD);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_COLOR_PICKER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TABLE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_CELL);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW_GROUP);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_ROW_HEADER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_COLUMN_HEADER);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TREE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TREE_ITEM);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_ITEM);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_BOX);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_LIST_BOX_OPTION);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB_BAR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TAB_PANEL);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_BAR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM_CHECK_BOX);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_MENU_ITEM_RADIO);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_IMAGE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_WINDOW);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TITLE_BAR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_DIALOG);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TOOLTIP);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_REGION);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ROLE_TEXT_RUN);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_MENU);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_LIST);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_TREE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::POPUP_DIALOG);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_HIDDEN);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_MULTISELECTABLE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_REQUIRED);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_VISITED);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_BUSY);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_MODAL);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_TOUCH_PASSTHROUGH);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_READONLY);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_DISABLED);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::FLAG_CLIPS_CHILDREN);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_CLICK);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_FOCUS);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_BLUR);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_COLLAPSE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_EXPAND);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_DECREMENT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_INCREMENT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_HIDE_TOOLTIP);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SHOW_TOOLTIP);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_TEXT_SELECTION);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_REPLACE_SELECTED_TEXT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_BACKWARD);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_DOWN);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_FORWARD);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_LEFT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_RIGHT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_UP);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_INTO_VIEW);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SCROLL_TO_POINT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_SCROLL_OFFSET);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SET_VALUE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_SHOW_CONTEXT_MENU);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::ACTION_CUSTOM);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_OFF);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_POLITE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::LIVE_ASSERTIVE);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_UNIT_ITEM);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_UNIT_PAGE);
|
||||
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_TOP_LEFT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_BOTTOM_RIGHT);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_TOP_EDGE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_BOTTOM_EDGE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_LEFT_EDGE);
|
||||
BIND_ENUM_CONSTANT(AccessibilityServerEnums::SCROLL_HINT_RIGHT_EDGE);
|
||||
}
|
||||
|
||||
AccessibilityServer *AccessibilityServer::create(int p_index, Error &r_error) {
|
||||
ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr);
|
||||
return server_create_functions[p_index].create_function(r_error);
|
||||
}
|
||||
|
||||
void AccessibilityServer::register_create_function(const char *p_name, CreateFunction p_function) {
|
||||
ERR_FAIL_COND(server_create_count == MAX_SERVERS);
|
||||
// Dummy server is always last
|
||||
server_create_functions[server_create_count] = server_create_functions[server_create_count - 1];
|
||||
server_create_functions[server_create_count - 1].name = p_name;
|
||||
server_create_functions[server_create_count - 1].create_function = p_function;
|
||||
server_create_count++;
|
||||
}
|
||||
|
||||
int AccessibilityServer::get_create_function_count() {
|
||||
return server_create_count;
|
||||
}
|
||||
|
||||
const char *AccessibilityServer::get_create_function_name(int p_index) {
|
||||
ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr);
|
||||
return server_create_functions[p_index].name;
|
||||
}
|
||||
|
||||
AccessibilityServer::AccessibilityServer() {
|
||||
singleton = this;
|
||||
}
|
||||
|
||||
AccessibilityServer::~AccessibilityServer() {
|
||||
singleton = nullptr;
|
||||
}
|
||||
171
servers/display/accessibility_server.h
Normal file
171
servers/display/accessibility_server.h
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_server.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "core/object/object.h"
|
||||
#include "servers/display/accessibility_server_enums.h"
|
||||
#include "servers/display/display_server.h"
|
||||
|
||||
class AccessibilityServer : public Object {
|
||||
GDCLASS(AccessibilityServer, Object)
|
||||
|
||||
public:
|
||||
typedef AccessibilityServer *(*CreateFunction)(Error &r_error);
|
||||
|
||||
protected:
|
||||
static inline AccessibilityServer *singleton = nullptr;
|
||||
static inline AccessibilityServerEnums::AccessibilityMode accessibility_mode = AccessibilityServerEnums::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
|
||||
static void _bind_methods();
|
||||
|
||||
enum {
|
||||
MAX_SERVERS = 64
|
||||
};
|
||||
|
||||
struct AccessibilityServerCreate {
|
||||
const char *name;
|
||||
CreateFunction create_function;
|
||||
};
|
||||
|
||||
static AccessibilityServerCreate server_create_functions[MAX_SERVERS];
|
||||
static int server_create_count;
|
||||
|
||||
public:
|
||||
_FORCE_INLINE_ static AccessibilityServerEnums::AccessibilityMode get_mode() { return accessibility_mode; }
|
||||
static void set_mode(AccessibilityServerEnums::AccessibilityMode p_mode) { accessibility_mode = p_mode; }
|
||||
|
||||
_FORCE_INLINE_ static AccessibilityServer *get_singleton() { return singleton; }
|
||||
|
||||
virtual bool is_supported() const { return false; }
|
||||
|
||||
virtual bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) = 0;
|
||||
virtual void window_destroy(DisplayServer::WindowID p_window_id) = 0;
|
||||
|
||||
virtual RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) = 0;
|
||||
virtual RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) = 0;
|
||||
virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) = 0;
|
||||
virtual bool has_element(const RID &p_id) const = 0;
|
||||
virtual void free_element(const RID &p_id) = 0;
|
||||
|
||||
virtual void element_set_meta(const RID &p_id, const Variant &p_meta) = 0;
|
||||
virtual Variant element_get_meta(const RID &p_id) const = 0;
|
||||
|
||||
virtual void update_if_active(const Callable &p_callable) = 0;
|
||||
|
||||
virtual RID get_window_root(DisplayServer::WindowID p_window_id) const = 0;
|
||||
virtual void update_set_focus(const RID &p_id) = 0;
|
||||
|
||||
virtual void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) = 0;
|
||||
virtual void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) = 0;
|
||||
virtual void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) = 0;
|
||||
virtual void window_activation_completed(DisplayServer::WindowID p_window_id) = 0;
|
||||
virtual void window_deactivation_completed(DisplayServer::WindowID p_window_id) = 0;
|
||||
|
||||
virtual void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) = 0;
|
||||
virtual void update_set_name(const RID &p_id, const String &p_name) = 0;
|
||||
virtual void update_set_braille_label(const RID &p_id, const String &p_name) = 0;
|
||||
virtual void update_set_braille_role_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void update_set_extra_info(const RID &p_id, const String &p_name_extra_info) = 0;
|
||||
virtual void update_set_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void update_set_value(const RID &p_id, const String &p_value) = 0;
|
||||
virtual void update_set_tooltip(const RID &p_id, const String &p_tooltip) = 0;
|
||||
virtual void update_set_bounds(const RID &p_id, const Rect2 &p_rect) = 0;
|
||||
virtual void update_set_transform(const RID &p_id, const Transform2D &p_transform) = 0;
|
||||
virtual void update_add_child(const RID &p_id, const RID &p_child_id) = 0;
|
||||
virtual void update_add_related_controls(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_add_related_details(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_add_related_described_by(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_add_related_flow_to(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_add_related_radio_group(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void update_set_active_descendant(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void update_set_next_on_line(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void update_set_previous_on_line(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void update_set_member_of(const RID &p_id, const RID &p_group_id) = 0;
|
||||
virtual void update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void update_set_error_message(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void update_set_live(const RID &p_id, AccessibilityServerEnums::AccessibilityLiveMode p_live) = 0;
|
||||
virtual void update_add_action(const RID &p_id, AccessibilityServerEnums::AccessibilityAction p_action, const Callable &p_callable) = 0;
|
||||
virtual void update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) = 0;
|
||||
virtual void update_set_table_row_count(const RID &p_id, int p_count) = 0;
|
||||
virtual void update_set_table_column_count(const RID &p_id, int p_count) = 0;
|
||||
virtual void update_set_table_row_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void update_set_table_column_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) = 0;
|
||||
virtual void update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) = 0;
|
||||
virtual void update_set_list_item_count(const RID &p_id, int p_size) = 0;
|
||||
virtual void update_set_list_item_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void update_set_list_item_level(const RID &p_id, int p_level) = 0;
|
||||
virtual void update_set_list_item_selected(const RID &p_id, bool p_selected) = 0;
|
||||
virtual void update_set_list_item_expanded(const RID &p_id, bool p_expanded) = 0;
|
||||
virtual void update_set_popup_type(const RID &p_id, AccessibilityServerEnums::AccessibilityPopupType p_popup) = 0;
|
||||
virtual void update_set_checked(const RID &p_id, bool p_checekd) = 0;
|
||||
virtual void update_set_num_value(const RID &p_id, double p_position) = 0;
|
||||
virtual void update_set_num_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void update_set_num_step(const RID &p_id, double p_step) = 0;
|
||||
virtual void update_set_num_jump(const RID &p_id, double p_jump) = 0;
|
||||
virtual void update_set_scroll_x(const RID &p_id, double p_position) = 0;
|
||||
virtual void update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void update_set_scroll_y(const RID &p_id, double p_position) = 0;
|
||||
virtual void update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline, const Color &p_color) = 0;
|
||||
virtual void update_set_text_align(const RID &p_id, HorizontalAlignment p_align) = 0;
|
||||
virtual void update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) = 0;
|
||||
virtual void update_set_flag(const RID &p_id, AccessibilityServerEnums::AccessibilityFlags p_flag, bool p_value) = 0;
|
||||
virtual void update_set_classname(const RID &p_id, const String &p_classname) = 0;
|
||||
virtual void update_set_placeholder(const RID &p_id, const String &p_placeholder) = 0;
|
||||
virtual void update_set_language(const RID &p_id, const String &p_language) = 0;
|
||||
virtual void update_set_text_orientation(const RID &p_id, bool p_vertical) = 0;
|
||||
virtual void update_set_list_orientation(const RID &p_id, bool p_vertical) = 0;
|
||||
virtual void update_set_shortcut(const RID &p_id, const String &p_shortcut) = 0;
|
||||
virtual void update_set_url(const RID &p_id, const String &p_url) = 0;
|
||||
virtual void update_set_role_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void update_set_state_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void update_set_color_value(const RID &p_id, const Color &p_color) = 0;
|
||||
virtual void update_set_background_color(const RID &p_id, const Color &p_color) = 0;
|
||||
virtual void update_set_foreground_color(const RID &p_id, const Color &p_color) = 0;
|
||||
|
||||
static void register_create_function(const char *p_name, CreateFunction p_function);
|
||||
static int get_create_function_count();
|
||||
static const char *get_create_function_name(int p_index);
|
||||
static AccessibilityServer *create(int p_index, Error &r_error);
|
||||
|
||||
AccessibilityServer();
|
||||
virtual ~AccessibilityServer();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityAction, AccessibilityServer::AccessibilityAction)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityFlags, AccessibilityServer::AccessibilityFlags)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityLiveMode, AccessibilityServer::AccessibilityLiveMode)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityPopupType, AccessibilityServer::AccessibilityPopupType)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityRole, AccessibilityServer::AccessibilityRole)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityScrollUnit, AccessibilityServer::AccessibilityScrollUnit)
|
||||
VARIANT_ENUM_CAST_EXT(AccessibilityServerEnums::AccessibilityScrollHint, AccessibilityServer::AccessibilityScrollHint)
|
||||
135
servers/display/accessibility_server_dummy.h
Normal file
135
servers/display/accessibility_server_dummy.h
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_server_dummy.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "servers/display/accessibility_server.h"
|
||||
|
||||
class AccessibilityServerDummy : public AccessibilityServer {
|
||||
GDSOFTCLASS(AccessibilityServerDummy, AccessibilityServer)
|
||||
friend class AccessibilityServer;
|
||||
|
||||
protected:
|
||||
static AccessibilityServer *create_func(Error &r_error) {
|
||||
r_error = OK;
|
||||
return memnew(AccessibilityServerDummy);
|
||||
}
|
||||
|
||||
public:
|
||||
virtual bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) override { return true; }
|
||||
virtual void window_destroy(DisplayServer::WindowID p_window_id) override {}
|
||||
|
||||
virtual RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override { return RID(); }
|
||||
virtual RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) override { return RID(); }
|
||||
virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) override { return RID(); }
|
||||
virtual bool has_element(const RID &p_id) const override { return false; }
|
||||
virtual void free_element(const RID &p_id) override {}
|
||||
|
||||
virtual void element_set_meta(const RID &p_id, const Variant &p_meta) override {}
|
||||
virtual Variant element_get_meta(const RID &p_id) const override { return Variant(); }
|
||||
|
||||
virtual void update_if_active(const Callable &p_callable) override {}
|
||||
|
||||
virtual RID get_window_root(DisplayServer::WindowID p_window_id) const override { return RID(); }
|
||||
virtual void update_set_focus(const RID &p_id) override {}
|
||||
|
||||
virtual void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override {}
|
||||
virtual void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) override {}
|
||||
virtual void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override {}
|
||||
virtual void window_activation_completed(DisplayServer::WindowID p_window_id) override {}
|
||||
virtual void window_deactivation_completed(DisplayServer::WindowID p_window_id) override {}
|
||||
|
||||
virtual void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) override {}
|
||||
virtual void update_set_name(const RID &p_id, const String &p_name) override {}
|
||||
virtual void update_set_braille_label(const RID &p_id, const String &p_name) override {}
|
||||
virtual void update_set_braille_role_description(const RID &p_id, const String &p_description) override {}
|
||||
virtual void update_set_extra_info(const RID &p_id, const String &p_name_extra_info) override {}
|
||||
virtual void update_set_description(const RID &p_id, const String &p_description) override {}
|
||||
virtual void update_set_value(const RID &p_id, const String &p_value) override {}
|
||||
virtual void update_set_tooltip(const RID &p_id, const String &p_tooltip) override {}
|
||||
virtual void update_set_bounds(const RID &p_id, const Rect2 &p_rect) override {}
|
||||
virtual void update_set_transform(const RID &p_id, const Transform2D &p_transform) override {}
|
||||
virtual void update_add_child(const RID &p_id, const RID &p_child_id) override {}
|
||||
virtual void update_add_related_controls(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_add_related_details(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_add_related_described_by(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_add_related_flow_to(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_add_related_radio_group(const RID &p_id, const RID &p_related_id) override {}
|
||||
virtual void update_set_active_descendant(const RID &p_id, const RID &p_other_id) override {}
|
||||
virtual void update_set_next_on_line(const RID &p_id, const RID &p_other_id) override {}
|
||||
virtual void update_set_previous_on_line(const RID &p_id, const RID &p_other_id) override {}
|
||||
virtual void update_set_member_of(const RID &p_id, const RID &p_group_id) override {}
|
||||
virtual void update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) override {}
|
||||
virtual void update_set_error_message(const RID &p_id, const RID &p_other_id) override {}
|
||||
virtual void update_set_live(const RID &p_id, AccessibilityServerEnums::AccessibilityLiveMode p_live) override {}
|
||||
virtual void update_add_action(const RID &p_id, AccessibilityServerEnums::AccessibilityAction p_action, const Callable &p_callable) override {}
|
||||
virtual void update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) override {}
|
||||
virtual void update_set_table_row_count(const RID &p_id, int p_count) override {}
|
||||
virtual void update_set_table_column_count(const RID &p_id, int p_count) override {}
|
||||
virtual void update_set_table_row_index(const RID &p_id, int p_index) override {}
|
||||
virtual void update_set_table_column_index(const RID &p_id, int p_index) override {}
|
||||
virtual void update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) override {}
|
||||
virtual void update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) override {}
|
||||
virtual void update_set_list_item_count(const RID &p_id, int p_size) override {}
|
||||
virtual void update_set_list_item_index(const RID &p_id, int p_index) override {}
|
||||
virtual void update_set_list_item_level(const RID &p_id, int p_level) override {}
|
||||
virtual void update_set_list_item_selected(const RID &p_id, bool p_selected) override {}
|
||||
virtual void update_set_list_item_expanded(const RID &p_id, bool p_expanded) override {}
|
||||
virtual void update_set_popup_type(const RID &p_id, AccessibilityServerEnums::AccessibilityPopupType p_popup) override {}
|
||||
virtual void update_set_checked(const RID &p_id, bool p_checekd) override {}
|
||||
virtual void update_set_num_value(const RID &p_id, double p_position) override {}
|
||||
virtual void update_set_num_range(const RID &p_id, double p_min, double p_max) override {}
|
||||
virtual void update_set_num_step(const RID &p_id, double p_step) override {}
|
||||
virtual void update_set_num_jump(const RID &p_id, double p_jump) override {}
|
||||
virtual void update_set_scroll_x(const RID &p_id, double p_position) override {}
|
||||
virtual void update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) override {}
|
||||
virtual void update_set_scroll_y(const RID &p_id, double p_position) override {}
|
||||
virtual void update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) override {}
|
||||
virtual void update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline, const Color &p_color) override {}
|
||||
virtual void update_set_text_align(const RID &p_id, HorizontalAlignment p_align) override {}
|
||||
virtual void update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) override {}
|
||||
virtual void update_set_flag(const RID &p_id, AccessibilityServerEnums::AccessibilityFlags p_flag, bool p_value) override {}
|
||||
virtual void update_set_classname(const RID &p_id, const String &p_classname) override {}
|
||||
virtual void update_set_placeholder(const RID &p_id, const String &p_placeholder) override {}
|
||||
virtual void update_set_language(const RID &p_id, const String &p_language) override {}
|
||||
virtual void update_set_text_orientation(const RID &p_id, bool p_vertical) override {}
|
||||
virtual void update_set_list_orientation(const RID &p_id, bool p_vertical) override {}
|
||||
virtual void update_set_shortcut(const RID &p_id, const String &p_shortcut) override {}
|
||||
virtual void update_set_url(const RID &p_id, const String &p_url) override {}
|
||||
virtual void update_set_role_description(const RID &p_id, const String &p_description) override {}
|
||||
virtual void update_set_state_description(const RID &p_id, const String &p_description) override {}
|
||||
virtual void update_set_color_value(const RID &p_id, const Color &p_color) override {}
|
||||
virtual void update_set_background_color(const RID &p_id, const Color &p_color) override {}
|
||||
virtual void update_set_foreground_color(const RID &p_id, const Color &p_color) override {}
|
||||
|
||||
AccessibilityServerDummy() {}
|
||||
virtual ~AccessibilityServerDummy() {}
|
||||
};
|
||||
158
servers/display/accessibility_server_enums.h
Normal file
158
servers/display/accessibility_server_enums.h
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
/**************************************************************************/
|
||||
/* accessibility_server_enums.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace AccessibilityServerEnums {
|
||||
|
||||
enum AccessibilityMode {
|
||||
ACCESSIBILITY_AUTO,
|
||||
ACCESSIBILITY_ALWAYS,
|
||||
ACCESSIBILITY_DISABLED,
|
||||
};
|
||||
|
||||
enum AccessibilityRole {
|
||||
ROLE_UNKNOWN,
|
||||
ROLE_DEFAULT_BUTTON,
|
||||
ROLE_AUDIO,
|
||||
ROLE_VIDEO,
|
||||
ROLE_STATIC_TEXT,
|
||||
ROLE_CONTAINER,
|
||||
ROLE_PANEL,
|
||||
ROLE_BUTTON,
|
||||
ROLE_LINK,
|
||||
ROLE_CHECK_BOX,
|
||||
ROLE_RADIO_BUTTON,
|
||||
ROLE_CHECK_BUTTON,
|
||||
ROLE_SCROLL_BAR,
|
||||
ROLE_SCROLL_VIEW,
|
||||
ROLE_SPLITTER,
|
||||
ROLE_SLIDER,
|
||||
ROLE_SPIN_BUTTON,
|
||||
ROLE_PROGRESS_INDICATOR,
|
||||
ROLE_TEXT_FIELD,
|
||||
ROLE_MULTILINE_TEXT_FIELD,
|
||||
ROLE_COLOR_PICKER,
|
||||
ROLE_TABLE,
|
||||
ROLE_CELL,
|
||||
ROLE_ROW,
|
||||
ROLE_ROW_GROUP,
|
||||
ROLE_ROW_HEADER,
|
||||
ROLE_COLUMN_HEADER,
|
||||
ROLE_TREE,
|
||||
ROLE_TREE_ITEM,
|
||||
ROLE_LIST,
|
||||
ROLE_LIST_ITEM,
|
||||
ROLE_LIST_BOX,
|
||||
ROLE_LIST_BOX_OPTION,
|
||||
ROLE_TAB_BAR,
|
||||
ROLE_TAB,
|
||||
ROLE_TAB_PANEL,
|
||||
ROLE_MENU_BAR,
|
||||
ROLE_MENU,
|
||||
ROLE_MENU_ITEM,
|
||||
ROLE_MENU_ITEM_CHECK_BOX,
|
||||
ROLE_MENU_ITEM_RADIO,
|
||||
ROLE_IMAGE,
|
||||
ROLE_WINDOW,
|
||||
ROLE_TITLE_BAR,
|
||||
ROLE_DIALOG,
|
||||
ROLE_TOOLTIP,
|
||||
ROLE_REGION,
|
||||
ROLE_TEXT_RUN,
|
||||
};
|
||||
|
||||
enum AccessibilityPopupType {
|
||||
POPUP_MENU,
|
||||
POPUP_LIST,
|
||||
POPUP_TREE,
|
||||
POPUP_DIALOG,
|
||||
};
|
||||
|
||||
enum AccessibilityFlags {
|
||||
FLAG_HIDDEN,
|
||||
FLAG_MULTISELECTABLE,
|
||||
FLAG_REQUIRED,
|
||||
FLAG_VISITED,
|
||||
FLAG_BUSY,
|
||||
FLAG_MODAL,
|
||||
FLAG_TOUCH_PASSTHROUGH,
|
||||
FLAG_READONLY,
|
||||
FLAG_DISABLED,
|
||||
FLAG_CLIPS_CHILDREN,
|
||||
};
|
||||
|
||||
enum AccessibilityAction {
|
||||
ACTION_CLICK,
|
||||
ACTION_FOCUS,
|
||||
ACTION_BLUR,
|
||||
ACTION_COLLAPSE,
|
||||
ACTION_EXPAND,
|
||||
ACTION_DECREMENT,
|
||||
ACTION_INCREMENT,
|
||||
ACTION_HIDE_TOOLTIP,
|
||||
ACTION_SHOW_TOOLTIP,
|
||||
ACTION_SET_TEXT_SELECTION,
|
||||
ACTION_REPLACE_SELECTED_TEXT,
|
||||
ACTION_SCROLL_BACKWARD,
|
||||
ACTION_SCROLL_DOWN,
|
||||
ACTION_SCROLL_FORWARD,
|
||||
ACTION_SCROLL_LEFT,
|
||||
ACTION_SCROLL_RIGHT,
|
||||
ACTION_SCROLL_UP,
|
||||
ACTION_SCROLL_INTO_VIEW,
|
||||
ACTION_SCROLL_TO_POINT,
|
||||
ACTION_SET_SCROLL_OFFSET,
|
||||
ACTION_SET_VALUE,
|
||||
ACTION_SHOW_CONTEXT_MENU,
|
||||
ACTION_CUSTOM,
|
||||
};
|
||||
|
||||
enum AccessibilityLiveMode {
|
||||
LIVE_OFF,
|
||||
LIVE_POLITE,
|
||||
LIVE_ASSERTIVE,
|
||||
};
|
||||
|
||||
enum AccessibilityScrollUnit {
|
||||
SCROLL_UNIT_ITEM,
|
||||
SCROLL_UNIT_PAGE,
|
||||
};
|
||||
|
||||
enum AccessibilityScrollHint {
|
||||
SCROLL_HINT_TOP_LEFT,
|
||||
SCROLL_HINT_BOTTOM_RIGHT,
|
||||
SCROLL_HINT_TOP_EDGE,
|
||||
SCROLL_HINT_BOTTOM_EDGE,
|
||||
SCROLL_HINT_LEFT_EDGE,
|
||||
SCROLL_HINT_RIGHT_EDGE,
|
||||
};
|
||||
|
||||
}; // namespace AccessibilityServerEnums
|
||||
|
|
@ -39,6 +39,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
#include "core/input/input.h"
|
||||
#include "core/object/class_db.h"
|
||||
#include "scene/resources/texture.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/display/display_server_headless.h"
|
||||
#include "servers/display/native_menu.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
|
|
@ -59,8 +60,6 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer);
|
|||
|
||||
DisplayServer *DisplayServer::singleton = nullptr;
|
||||
|
||||
DisplayServer::AccessibilityMode DisplayServer::accessibility_mode = DisplayServer::AccessibilityMode::ACCESSIBILITY_AUTO;
|
||||
|
||||
bool DisplayServer::hidpi_allowed = false;
|
||||
|
||||
bool DisplayServer::window_early_clear_override_enabled = false;
|
||||
|
|
@ -643,474 +642,478 @@ void DisplayServer::window_set_ime_position(const Point2i &p_pos, WindowID p_win
|
|||
WARN_PRINT("IME not supported by this display server.");
|
||||
}
|
||||
|
||||
RID DisplayServer::accessibility_create_element(WindowID p_window, DisplayServer::AccessibilityRole p_role) {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_create_element(p_window, p_role);
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
|
||||
RID DisplayServer::accessibility_create_element(WindowID p_window, AccessibilityRole p_role) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->create_element(p_window, (AccessibilityServerEnums::AccessibilityRole)p_role);
|
||||
} else {
|
||||
return RID();
|
||||
}
|
||||
}
|
||||
|
||||
RID DisplayServer::accessibility_create_sub_element(const RID &p_parent_rid, DisplayServer::AccessibilityRole p_role, int p_insert_pos) {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_create_sub_element(p_parent_rid, p_role, p_insert_pos);
|
||||
RID DisplayServer::accessibility_create_sub_element(const RID &p_parent_rid, AccessibilityRole p_role, int p_insert_pos) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->create_sub_element(p_parent_rid, (AccessibilityServerEnums::AccessibilityRole)p_role, p_insert_pos);
|
||||
} else {
|
||||
return RID();
|
||||
}
|
||||
}
|
||||
|
||||
RID DisplayServer::accessibility_create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos, bool p_is_last_line) {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_create_sub_text_edit_elements(p_parent_rid, p_shaped_text, p_min_height, p_insert_pos, p_is_last_line);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->create_sub_text_edit_elements(p_parent_rid, p_shaped_text, p_min_height, p_insert_pos, p_is_last_line);
|
||||
} else {
|
||||
return RID();
|
||||
}
|
||||
}
|
||||
|
||||
bool DisplayServer::accessibility_has_element(const RID &p_id) const {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_has_element(p_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->has_element(p_id);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_free_element(const RID &p_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_free_element(p_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->free_element(p_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_element_set_meta(const RID &p_id, const Variant &p_meta) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_element_set_meta(p_id, p_meta);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->element_set_meta(p_id, p_meta);
|
||||
}
|
||||
}
|
||||
|
||||
Variant DisplayServer::accessibility_element_get_meta(const RID &p_id) const {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_element_get_meta(p_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->element_get_meta(p_id);
|
||||
} else {
|
||||
return Variant();
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_if_active(const Callable &p_callable) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_if_active(p_callable);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_if_active(p_callable);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_focus(const RID &p_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_focus(p_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_focus(p_id);
|
||||
}
|
||||
}
|
||||
|
||||
RID DisplayServer::accessibility_get_window_root(DisplayServer::WindowID p_window_id) const {
|
||||
if (accessibility_driver) {
|
||||
return accessibility_driver->accessibility_get_window_root(p_window_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
return AccessibilityServer::get_singleton()->get_window_root(p_window_id);
|
||||
} else {
|
||||
return RID();
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_rect(p_window_id, p_rect_out, p_rect_in);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->set_window_rect(p_window_id, p_rect_out, p_rect_in);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_focused(p_window_id, p_focused);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->set_window_focused(p_window_id, p_focused);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_set_window_callbacks(p_window_id, p_activate_callable, p_deativate_callable);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->set_window_callbacks(p_window_id, p_activate_callable, p_deativate_callable);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_window_activation_completed(DisplayServer::WindowID p_window_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_window_activation_completed(p_window_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->window_activation_completed(p_window_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_window_deactivation_completed(p_window_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->window_deactivation_completed(p_window_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_role(const RID &p_id, DisplayServer::AccessibilityRole p_role) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_role(p_id, p_role);
|
||||
void DisplayServer::accessibility_update_set_role(const RID &p_id, AccessibilityRole p_role) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_role(p_id, (AccessibilityServerEnums::AccessibilityRole)p_role);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_name(const RID &p_id, const String &p_name) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_name(p_id, p_name);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_name(p_id, p_name);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_description(const RID &p_id, const String &p_description) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_description(p_id, p_description);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_description(p_id, p_description);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_extra_info(const RID &p_id, const String &p_name_extra_info) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_extra_info(p_id, p_name_extra_info);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_extra_info(p_id, p_name_extra_info);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_value(const RID &p_id, const String &p_value) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_value(p_id, p_value);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_value(p_id, p_value);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_tooltip(const RID &p_id, const String &p_tooltip) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_tooltip(p_id, p_tooltip);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_tooltip(p_id, p_tooltip);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_bounds(const RID &p_id, const Rect2 &p_rect) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_bounds(p_id, p_rect);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_bounds(p_id, p_rect);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_transform(const RID &p_id, const Transform2D &p_transform) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_transform(p_id, p_transform);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_transform(p_id, p_transform);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_child(const RID &p_id, const RID &p_child_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_child(p_id, p_child_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_child(p_id, p_child_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_controls(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_controls(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_controls(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_details(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_details(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_details(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_described_by(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_described_by(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_described_by(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_flow_to(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_flow_to(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_flow_to(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_labeled_by(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_labeled_by(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_related_radio_group(const RID &p_id, const RID &p_related_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_related_radio_group(p_id, p_related_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_related_radio_group(p_id, p_related_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_active_descendant(const RID &p_id, const RID &p_other_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_active_descendant(p_id, p_other_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_active_descendant(p_id, p_other_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_next_on_line(const RID &p_id, const RID &p_other_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_next_on_line(p_id, p_other_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_next_on_line(p_id, p_other_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_previous_on_line(const RID &p_id, const RID &p_other_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_previous_on_line(p_id, p_other_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_previous_on_line(p_id, p_other_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_member_of(const RID &p_id, const RID &p_group_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_member_of(p_id, p_group_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_member_of(p_id, p_group_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_in_page_link_target(p_id, p_other_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_in_page_link_target(p_id, p_other_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_error_message(const RID &p_id, const RID &p_other_id) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_error_message(p_id, p_other_id);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_error_message(p_id, p_other_id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_live(const RID &p_id, DisplayServer::AccessibilityLiveMode p_live) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_live(p_id, p_live);
|
||||
void DisplayServer::accessibility_update_set_live(const RID &p_id, AccessibilityLiveMode p_live) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_live(p_id, (AccessibilityServerEnums::AccessibilityLiveMode)p_live);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_action(const RID &p_id, DisplayServer::AccessibilityAction p_action, const Callable &p_callable) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_action(p_id, p_action, p_callable);
|
||||
void DisplayServer::accessibility_update_add_action(const RID &p_id, AccessibilityAction p_action, const Callable &p_callable) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_action(p_id, (AccessibilityServerEnums::AccessibilityAction)p_action, p_callable);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_add_custom_action(p_id, p_action_id, p_action_description);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_add_custom_action(p_id, p_action_id, p_action_description);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_row_count(const RID &p_id, int p_count) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_row_count(p_id, p_count);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_count(p_id, p_count);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_column_count(const RID &p_id, int p_count) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_column_count(p_id, p_count);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_column_count(p_id, p_count);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_row_index(const RID &p_id, int p_index) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_row_index(p_id, p_index);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_row_index(p_id, p_index);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_column_index(const RID &p_id, int p_index) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_column_index(p_id, p_index);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_column_index(p_id, p_index);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_cell_position(p_id, p_row_index, p_column_index);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_cell_position(p_id, p_row_index, p_column_index);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_table_cell_span(p_id, p_row_span, p_column_span);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_table_cell_span(p_id, p_row_span, p_column_span);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_item_count(const RID &p_id, int p_size) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_item_count(p_id, p_size);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_count(p_id, p_size);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_item_index(const RID &p_id, int p_index) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_item_index(p_id, p_index);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_index(p_id, p_index);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_item_level(const RID &p_id, int p_level) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_item_level(p_id, p_level);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_level(p_id, p_level);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_item_selected(const RID &p_id, bool p_selected) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_item_selected(p_id, p_selected);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_selected(p_id, p_selected);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_item_expanded(const RID &p_id, bool p_expanded) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_item_expanded(p_id, p_expanded);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_item_expanded(p_id, p_expanded);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_popup_type(const RID &p_id, DisplayServer::AccessibilityPopupType p_popup) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_popup_type(p_id, p_popup);
|
||||
void DisplayServer::accessibility_update_set_popup_type(const RID &p_id, AccessibilityPopupType p_popup) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_popup_type(p_id, (AccessibilityServerEnums::AccessibilityPopupType)p_popup);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_checked(const RID &p_id, bool p_checekd) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_checked(p_id, p_checekd);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_checked(p_id, p_checekd);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_num_value(const RID &p_id, double p_position) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_num_value(p_id, p_position);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_num_value(p_id, p_position);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_num_range(const RID &p_id, double p_min, double p_max) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_num_range(p_id, p_min, p_max);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_num_range(p_id, p_min, p_max);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_num_step(const RID &p_id, double p_step) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_num_step(p_id, p_step);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_num_step(p_id, p_step);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_num_jump(const RID &p_id, double p_jump) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_num_jump(p_id, p_jump);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_num_jump(p_id, p_jump);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_scroll_x(const RID &p_id, double p_position) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_scroll_x(p_id, p_position);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_scroll_x(p_id, p_position);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_scroll_x_range(p_id, p_min, p_max);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_scroll_x_range(p_id, p_min, p_max);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_scroll_y(const RID &p_id, double p_position) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_scroll_y(p_id, p_position);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_scroll_y(p_id, p_position);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_scroll_y_range(p_id, p_min, p_max);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_scroll_y_range(p_id, p_min, p_max);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_text_decorations(p_id, p_underline, p_strikethrough, p_overline);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_text_decorations(p_id, p_underline, p_strikethrough, p_overline, Color(0, 0, 0, 1));
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_text_align(const RID &p_id, HorizontalAlignment p_align) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_text_align(p_id, p_align);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_text_align(p_id, p_align);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_text_selection(p_id, p_text_start_id, p_start_char, p_text_end_id, p_end_char);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_text_selection(p_id, p_text_start_id, p_start_char, p_text_end_id, p_end_char);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_flag(const RID &p_id, DisplayServer::AccessibilityFlags p_flag, bool p_value) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_flag(p_id, p_flag, p_value);
|
||||
void DisplayServer::accessibility_update_set_flag(const RID &p_id, AccessibilityFlags p_flag, bool p_value) {
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_flag(p_id, (AccessibilityServerEnums::AccessibilityFlags)p_flag, p_value);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_classname(const RID &p_id, const String &p_classname) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_classname(p_id, p_classname);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_classname(p_id, p_classname);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_placeholder(const RID &p_id, const String &p_placeholder) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_placeholder(p_id, p_placeholder);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_placeholder(p_id, p_placeholder);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_language(const RID &p_id, const String &p_language) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_language(p_id, p_language);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_language(p_id, p_language);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_text_orientation(const RID &p_id, bool p_vertical) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_text_orientation(p_id, p_vertical);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_text_orientation(p_id, p_vertical);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_list_orientation(const RID &p_id, bool p_vertical) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_list_orientation(p_id, p_vertical);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_list_orientation(p_id, p_vertical);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_shortcut(const RID &p_id, const String &p_shortcut) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_shortcut(p_id, p_shortcut);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_shortcut(p_id, p_shortcut);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_url(const RID &p_id, const String &p_url) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_url(p_id, p_url);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_url(p_id, p_url);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_role_description(const RID &p_id, const String &p_description) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_role_description(p_id, p_description);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_role_description(p_id, p_description);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_state_description(const RID &p_id, const String &p_description) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_state_description(p_id, p_description);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_state_description(p_id, p_description);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_color_value(const RID &p_id, const Color &p_color) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_color_value(p_id, p_color);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_color_value(p_id, p_color);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_background_color(const RID &p_id, const Color &p_color) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_background_color(p_id, p_color);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_background_color(p_id, p_color);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::accessibility_update_set_foreground_color(const RID &p_id, const Color &p_color) {
|
||||
if (accessibility_driver) {
|
||||
accessibility_driver->accessibility_update_set_foreground_color(p_id, p_color);
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
AccessibilityServer::get_singleton()->update_set_foreground_color(p_id, p_color);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
Point2i DisplayServer::ime_get_selection() const {
|
||||
ERR_FAIL_V_MSG(Point2i(), "IME or NOTIFICATION_WM_IME_UPDATE not supported by this display server.");
|
||||
}
|
||||
|
|
@ -1424,7 +1427,7 @@ void DisplayServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("global_menu_clear", "menu_root"), &DisplayServer::global_menu_clear);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("global_menu_get_system_menu_roots"), &DisplayServer::global_menu_get_system_menu_roots);
|
||||
#endif
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
ClassDB::bind_method(D_METHOD("tts_is_speaking"), &DisplayServer::tts_is_speaking);
|
||||
ClassDB::bind_method(D_METHOD("tts_is_paused"), &DisplayServer::tts_is_paused);
|
||||
|
|
@ -1578,6 +1581,7 @@ void DisplayServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("accessibility_should_reduce_transparency"), &DisplayServer::accessibility_should_reduce_transparency);
|
||||
ClassDB::bind_method(D_METHOD("accessibility_screen_reader_active"), &DisplayServer::accessibility_screen_reader_active);
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
ClassDB::bind_method(D_METHOD("accessibility_create_element", "window_id", "role"), &DisplayServer::accessibility_create_element);
|
||||
ClassDB::bind_method(D_METHOD("accessibility_create_sub_element", "parent_rid", "role", "insert_pos"), &DisplayServer::accessibility_create_sub_element, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("accessibility_create_sub_text_edit_elements", "parent_rid", "shaped_text", "min_height", "insert_pos", "is_last_line"), &DisplayServer::accessibility_create_sub_text_edit_elements, DEFVAL(-1), DEFVAL(false));
|
||||
|
|
@ -1654,6 +1658,7 @@ void DisplayServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("accessibility_update_set_color_value", "id", "color"), &DisplayServer::accessibility_update_set_color_value);
|
||||
ClassDB::bind_method(D_METHOD("accessibility_update_set_background_color", "id", "color"), &DisplayServer::accessibility_update_set_background_color);
|
||||
ClassDB::bind_method(D_METHOD("accessibility_update_set_foreground_color", "id", "color"), &DisplayServer::accessibility_update_set_foreground_color);
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
ClassDB::bind_method(D_METHOD("ime_get_selection"), &DisplayServer::ime_get_selection);
|
||||
ClassDB::bind_method(D_METHOD("ime_get_text"), &DisplayServer::ime_get_text);
|
||||
|
|
@ -1720,7 +1725,7 @@ void DisplayServer::_bind_methods() {
|
|||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
BIND_ENUM_CONSTANT(FEATURE_GLOBAL_MENU);
|
||||
#endif
|
||||
#endif // DISABLE_DEPRECATED
|
||||
BIND_ENUM_CONSTANT(FEATURE_SUBWINDOWS);
|
||||
BIND_ENUM_CONSTANT(FEATURE_TOUCHSCREEN);
|
||||
BIND_ENUM_CONSTANT(FEATURE_MOUSE);
|
||||
|
|
@ -1756,6 +1761,7 @@ void DisplayServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(FEATURE_ACCESSIBILITY_SCREEN_READER);
|
||||
BIND_ENUM_CONSTANT(FEATURE_HDR_OUTPUT);
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
BIND_ENUM_CONSTANT(ROLE_UNKNOWN);
|
||||
BIND_ENUM_CONSTANT(ROLE_DEFAULT_BUTTON);
|
||||
BIND_ENUM_CONSTANT(ROLE_AUDIO);
|
||||
|
|
@ -1803,6 +1809,7 @@ void DisplayServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(ROLE_DIALOG);
|
||||
BIND_ENUM_CONSTANT(ROLE_TOOLTIP);
|
||||
BIND_ENUM_CONSTANT(ROLE_REGION);
|
||||
BIND_ENUM_CONSTANT(ROLE_TEXT_RUN);
|
||||
|
||||
BIND_ENUM_CONSTANT(POPUP_MENU);
|
||||
BIND_ENUM_CONSTANT(POPUP_LIST);
|
||||
|
|
@ -1864,6 +1871,7 @@ void DisplayServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED);
|
||||
BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED_HIDDEN);
|
||||
BIND_ENUM_CONSTANT(MOUSE_MODE_MAX);
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
BIND_CONSTANT(INVALID_SCREEN);
|
||||
BIND_CONSTANT(SCREEN_WITH_MOUSE_FOCUS);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
#include "core/variant/callable.h"
|
||||
#include "core/variant/typed_array.h"
|
||||
|
||||
class AccessibilityDriver;
|
||||
class NativeMenu;
|
||||
class Texture2D;
|
||||
|
||||
|
|
@ -251,7 +250,7 @@ public:
|
|||
virtual void global_menu_clear(const String &p_menu_root);
|
||||
|
||||
virtual Dictionary global_menu_get_system_menu_roots() const;
|
||||
#endif
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
struct TTSUtterance {
|
||||
String text;
|
||||
|
|
@ -584,17 +583,13 @@ public:
|
|||
|
||||
// Accessibility.
|
||||
|
||||
enum AccessibilityMode {
|
||||
ACCESSIBILITY_AUTO,
|
||||
ACCESSIBILITY_ALWAYS,
|
||||
ACCESSIBILITY_DISABLED,
|
||||
};
|
||||
|
||||
protected:
|
||||
AccessibilityDriver *accessibility_driver = nullptr;
|
||||
static AccessibilityMode accessibility_mode;
|
||||
|
||||
public:
|
||||
virtual int accessibility_should_increase_contrast() const { return -1; }
|
||||
virtual int accessibility_should_reduce_animation() const { return -1; }
|
||||
virtual int accessibility_should_reduce_transparency() const { return -1; }
|
||||
virtual int accessibility_screen_reader_active() const { return -1; }
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
enum AccessibilityRole {
|
||||
ROLE_UNKNOWN,
|
||||
ROLE_DEFAULT_BUTTON,
|
||||
|
|
@ -643,6 +638,7 @@ public:
|
|||
ROLE_DIALOG,
|
||||
ROLE_TOOLTIP,
|
||||
ROLE_REGION,
|
||||
ROLE_TEXT_RUN,
|
||||
};
|
||||
|
||||
enum AccessibilityPopupType {
|
||||
|
|
@ -711,16 +707,8 @@ public:
|
|||
SCROLL_HINT_RIGHT_EDGE,
|
||||
};
|
||||
|
||||
static AccessibilityMode accessibility_get_mode() { return accessibility_mode; }
|
||||
static void accessibility_set_mode(AccessibilityMode p_mode) { accessibility_mode = p_mode; }
|
||||
|
||||
virtual int accessibility_should_increase_contrast() const { return -1; }
|
||||
virtual int accessibility_should_reduce_animation() const { return -1; }
|
||||
virtual int accessibility_should_reduce_transparency() const { return -1; }
|
||||
virtual int accessibility_screen_reader_active() const { return -1; }
|
||||
|
||||
virtual RID accessibility_create_element(WindowID p_window_id, DisplayServer::AccessibilityRole p_role);
|
||||
virtual RID accessibility_create_sub_element(const RID &p_parent_rid, DisplayServer::AccessibilityRole p_role, int p_insert_pos = -1);
|
||||
virtual RID accessibility_create_element(WindowID p_window_id, AccessibilityRole p_role);
|
||||
virtual RID accessibility_create_sub_element(const RID &p_parent_rid, AccessibilityRole p_role, int p_insert_pos = -1);
|
||||
virtual RID accessibility_create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false);
|
||||
virtual bool accessibility_has_element(const RID &p_id) const;
|
||||
virtual void accessibility_free_element(const RID &p_id);
|
||||
|
|
@ -739,7 +727,7 @@ public:
|
|||
virtual void accessibility_window_activation_completed(DisplayServer::WindowID p_window_id); // Note: internal method used by Window, do not expose.
|
||||
virtual void accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id); // Note: internal method used by Window, do not expose.
|
||||
|
||||
virtual void accessibility_update_set_role(const RID &p_id, DisplayServer::AccessibilityRole p_role);
|
||||
virtual void accessibility_update_set_role(const RID &p_id, AccessibilityRole p_role);
|
||||
virtual void accessibility_update_set_name(const RID &p_id, const String &p_name);
|
||||
virtual void accessibility_update_set_extra_info(const RID &p_id, const String &p_name_extra_info);
|
||||
virtual void accessibility_update_set_description(const RID &p_id, const String &p_description);
|
||||
|
|
@ -760,8 +748,8 @@ public:
|
|||
virtual void accessibility_update_set_member_of(const RID &p_id, const RID &p_group_id);
|
||||
virtual void accessibility_update_set_in_page_link_target(const RID &p_id, const RID &p_other_id);
|
||||
virtual void accessibility_update_set_error_message(const RID &p_id, const RID &p_other_id);
|
||||
virtual void accessibility_update_set_live(const RID &p_id, DisplayServer::AccessibilityLiveMode p_live);
|
||||
virtual void accessibility_update_add_action(const RID &p_id, DisplayServer::AccessibilityAction p_action, const Callable &p_callable);
|
||||
virtual void accessibility_update_set_live(const RID &p_id, AccessibilityLiveMode p_live);
|
||||
virtual void accessibility_update_add_action(const RID &p_id, AccessibilityAction p_action, const Callable &p_callable);
|
||||
virtual void accessibility_update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description);
|
||||
virtual void accessibility_update_set_table_row_count(const RID &p_id, int p_count);
|
||||
virtual void accessibility_update_set_table_column_count(const RID &p_id, int p_count);
|
||||
|
|
@ -774,7 +762,7 @@ public:
|
|||
virtual void accessibility_update_set_list_item_level(const RID &p_id, int p_level);
|
||||
virtual void accessibility_update_set_list_item_selected(const RID &p_id, bool p_selected);
|
||||
virtual void accessibility_update_set_list_item_expanded(const RID &p_id, bool p_expanded);
|
||||
virtual void accessibility_update_set_popup_type(const RID &p_id, DisplayServer::AccessibilityPopupType p_popup);
|
||||
virtual void accessibility_update_set_popup_type(const RID &p_id, AccessibilityPopupType p_popup);
|
||||
virtual void accessibility_update_set_checked(const RID &p_id, bool p_checekd);
|
||||
virtual void accessibility_update_set_num_value(const RID &p_id, double p_position);
|
||||
virtual void accessibility_update_set_num_range(const RID &p_id, double p_min, double p_max);
|
||||
|
|
@ -787,7 +775,7 @@ public:
|
|||
virtual void accessibility_update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline);
|
||||
virtual void accessibility_update_set_text_align(const RID &p_id, HorizontalAlignment p_align);
|
||||
virtual void accessibility_update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char);
|
||||
virtual void accessibility_update_set_flag(const RID &p_id, DisplayServer::AccessibilityFlags p_flag, bool p_value);
|
||||
virtual void accessibility_update_set_flag(const RID &p_id, AccessibilityFlags p_flag, bool p_value);
|
||||
virtual void accessibility_update_set_classname(const RID &p_id, const String &p_classname);
|
||||
virtual void accessibility_update_set_placeholder(const RID &p_id, const String &p_placeholder);
|
||||
virtual void accessibility_update_set_language(const RID &p_id, const String &p_language);
|
||||
|
|
@ -800,6 +788,7 @@ public:
|
|||
virtual void accessibility_update_set_color_value(const RID &p_id, const Color &p_color);
|
||||
virtual void accessibility_update_set_background_color(const RID &p_id, const Color &p_color);
|
||||
virtual void accessibility_update_set_foreground_color(const RID &p_id, const Color &p_color);
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
// necessary for GL focus, may be able to use one of the existing functions for this, not sure yet
|
||||
virtual void gl_window_make_current(DisplayServer::WindowID p_window_id);
|
||||
|
|
@ -945,101 +934,7 @@ public:
|
|||
~DisplayServer();
|
||||
};
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
class AccessibilityDriver {
|
||||
public:
|
||||
virtual Error init() = 0;
|
||||
|
||||
virtual bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) = 0;
|
||||
virtual void window_destroy(DisplayServer::WindowID p_window_id) = 0;
|
||||
|
||||
virtual RID accessibility_create_element(DisplayServer::WindowID p_window_id, DisplayServer::AccessibilityRole p_role) = 0;
|
||||
virtual RID accessibility_create_sub_element(const RID &p_parent_rid, DisplayServer::AccessibilityRole p_role, int p_insert_pos = -1) = 0;
|
||||
virtual RID accessibility_create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) = 0;
|
||||
virtual bool accessibility_has_element(const RID &p_id) const = 0;
|
||||
virtual void accessibility_free_element(const RID &p_id) = 0;
|
||||
|
||||
virtual void accessibility_element_set_meta(const RID &p_id, const Variant &p_meta) = 0;
|
||||
virtual Variant accessibility_element_get_meta(const RID &p_id) const = 0;
|
||||
|
||||
virtual void accessibility_update_if_active(const Callable &p_callable) = 0;
|
||||
|
||||
virtual RID accessibility_get_window_root(DisplayServer::WindowID p_window_id) const = 0;
|
||||
virtual void accessibility_update_set_focus(const RID &p_id) = 0;
|
||||
|
||||
virtual void accessibility_set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) = 0;
|
||||
virtual void accessibility_set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) = 0;
|
||||
virtual void accessibility_set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) = 0;
|
||||
virtual void accessibility_window_activation_completed(DisplayServer::WindowID p_window_id) = 0;
|
||||
virtual void accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id) = 0;
|
||||
|
||||
virtual void accessibility_update_set_role(const RID &p_id, DisplayServer::AccessibilityRole p_role) = 0;
|
||||
virtual void accessibility_update_set_name(const RID &p_id, const String &p_name) = 0;
|
||||
virtual void accessibility_update_set_extra_info(const RID &p_id, const String &p_name_extra_info) = 0;
|
||||
virtual void accessibility_update_set_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void accessibility_update_set_value(const RID &p_id, const String &p_value) = 0;
|
||||
virtual void accessibility_update_set_tooltip(const RID &p_id, const String &p_tooltip) = 0;
|
||||
virtual void accessibility_update_set_bounds(const RID &p_id, const Rect2 &p_rect) = 0;
|
||||
virtual void accessibility_update_set_transform(const RID &p_id, const Transform2D &p_transform) = 0;
|
||||
virtual void accessibility_update_add_child(const RID &p_id, const RID &p_child_id) = 0;
|
||||
virtual void accessibility_update_add_related_controls(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_add_related_details(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_add_related_described_by(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_add_related_flow_to(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_add_related_labeled_by(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_add_related_radio_group(const RID &p_id, const RID &p_related_id) = 0;
|
||||
virtual void accessibility_update_set_active_descendant(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void accessibility_update_set_next_on_line(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void accessibility_update_set_previous_on_line(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void accessibility_update_set_member_of(const RID &p_id, const RID &p_group_id) = 0;
|
||||
virtual void accessibility_update_set_in_page_link_target(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void accessibility_update_set_error_message(const RID &p_id, const RID &p_other_id) = 0;
|
||||
virtual void accessibility_update_set_live(const RID &p_id, DisplayServer::AccessibilityLiveMode p_live) = 0;
|
||||
virtual void accessibility_update_add_action(const RID &p_id, DisplayServer::AccessibilityAction p_action, const Callable &p_callable) = 0;
|
||||
virtual void accessibility_update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description) = 0;
|
||||
virtual void accessibility_update_set_table_row_count(const RID &p_id, int p_count) = 0;
|
||||
virtual void accessibility_update_set_table_column_count(const RID &p_id, int p_count) = 0;
|
||||
virtual void accessibility_update_set_table_row_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void accessibility_update_set_table_column_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void accessibility_update_set_table_cell_position(const RID &p_id, int p_row_index, int p_column_index) = 0;
|
||||
virtual void accessibility_update_set_table_cell_span(const RID &p_id, int p_row_span, int p_column_span) = 0;
|
||||
virtual void accessibility_update_set_list_item_count(const RID &p_id, int p_size) = 0;
|
||||
virtual void accessibility_update_set_list_item_index(const RID &p_id, int p_index) = 0;
|
||||
virtual void accessibility_update_set_list_item_level(const RID &p_id, int p_level) = 0;
|
||||
virtual void accessibility_update_set_list_item_selected(const RID &p_id, bool p_selected) = 0;
|
||||
virtual void accessibility_update_set_list_item_expanded(const RID &p_id, bool p_expanded) = 0;
|
||||
virtual void accessibility_update_set_popup_type(const RID &p_id, DisplayServer::AccessibilityPopupType p_popup) = 0;
|
||||
virtual void accessibility_update_set_checked(const RID &p_id, bool p_checekd) = 0;
|
||||
virtual void accessibility_update_set_num_value(const RID &p_id, double p_position) = 0;
|
||||
virtual void accessibility_update_set_num_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void accessibility_update_set_num_step(const RID &p_id, double p_step) = 0;
|
||||
virtual void accessibility_update_set_num_jump(const RID &p_id, double p_jump) = 0;
|
||||
virtual void accessibility_update_set_scroll_x(const RID &p_id, double p_position) = 0;
|
||||
virtual void accessibility_update_set_scroll_x_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void accessibility_update_set_scroll_y(const RID &p_id, double p_position) = 0;
|
||||
virtual void accessibility_update_set_scroll_y_range(const RID &p_id, double p_min, double p_max) = 0;
|
||||
virtual void accessibility_update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline) = 0;
|
||||
virtual void accessibility_update_set_text_align(const RID &p_id, HorizontalAlignment p_align) = 0;
|
||||
virtual void accessibility_update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char) = 0;
|
||||
virtual void accessibility_update_set_flag(const RID &p_id, DisplayServer::AccessibilityFlags p_flag, bool p_value) = 0;
|
||||
virtual void accessibility_update_set_classname(const RID &p_id, const String &p_classname) = 0;
|
||||
virtual void accessibility_update_set_placeholder(const RID &p_id, const String &p_placeholder) = 0;
|
||||
virtual void accessibility_update_set_language(const RID &p_id, const String &p_language) = 0;
|
||||
virtual void accessibility_update_set_text_orientation(const RID &p_id, bool p_vertical) = 0;
|
||||
virtual void accessibility_update_set_list_orientation(const RID &p_id, bool p_vertical) = 0;
|
||||
virtual void accessibility_update_set_shortcut(const RID &p_id, const String &p_shortcut) = 0;
|
||||
virtual void accessibility_update_set_url(const RID &p_id, const String &p_url) = 0;
|
||||
virtual void accessibility_update_set_role_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void accessibility_update_set_state_description(const RID &p_id, const String &p_description) = 0;
|
||||
virtual void accessibility_update_set_color_value(const RID &p_id, const Color &p_color) = 0;
|
||||
virtual void accessibility_update_set_background_color(const RID &p_id, const Color &p_color) = 0;
|
||||
virtual void accessibility_update_set_foreground_color(const RID &p_id, const Color &p_color) = 0;
|
||||
|
||||
AccessibilityDriver() {}
|
||||
virtual ~AccessibilityDriver() {}
|
||||
};
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityAction)
|
||||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityFlags)
|
||||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityLiveMode)
|
||||
|
|
@ -1047,6 +942,7 @@ VARIANT_ENUM_CAST(DisplayServer::AccessibilityPopupType)
|
|||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityRole)
|
||||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityScrollUnit)
|
||||
VARIANT_ENUM_CAST(DisplayServer::AccessibilityScrollHint)
|
||||
#endif // DISABLE_DEPRECATED
|
||||
|
||||
VARIANT_ENUM_CAST(DisplayServer::WindowEvent)
|
||||
VARIANT_ENUM_CAST(DisplayServer::Feature)
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
#include "camera/camera_feed.h"
|
||||
#include "camera/camera_server.h"
|
||||
#include "debugger/servers_debugger.h"
|
||||
#include "display/accessibility_server.h"
|
||||
#include "display/display_server.h"
|
||||
#include "display/native_menu.h"
|
||||
#include "movie_writer/movie_writer.h"
|
||||
|
|
@ -157,6 +158,7 @@ void register_server_types() {
|
|||
|
||||
OS::get_singleton()->set_has_server_feature_callback(has_server_feature_callback);
|
||||
|
||||
GDREGISTER_ABSTRACT_CLASS(AccessibilityServer);
|
||||
GDREGISTER_ABSTRACT_CLASS(DisplayServer);
|
||||
GDREGISTER_ABSTRACT_CLASS(RenderingServer);
|
||||
GDREGISTER_CLASS(AudioServer);
|
||||
|
|
@ -385,6 +387,7 @@ void unregister_server_types() {
|
|||
void register_server_singletons() {
|
||||
OS::get_singleton()->benchmark_begin_measure("Servers", "Register Singletons");
|
||||
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("AccessibilityServer", AccessibilityServer::get_singleton(), "AccessibilityServer"));
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("AudioServer", AudioServer::get_singleton(), "AudioServer"));
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("CameraServer", CameraServer::get_singleton(), "CameraServer"));
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("DisplayServer", DisplayServer::get_singleton(), "DisplayServer"));
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "scene/main/window.h"
|
||||
#include "scene/theme/theme_db.h"
|
||||
#include "servers/audio/audio_server.h"
|
||||
#include "servers/display/accessibility_server.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/rendering/rendering_server_default.h"
|
||||
#include "tests/display_server_mock.h"
|
||||
|
|
@ -177,6 +178,14 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
|||
|
||||
Error err = OK;
|
||||
OS::get_singleton()->set_has_server_feature_callback(nullptr);
|
||||
|
||||
for (int i = 0; i < AccessibilityServer::get_create_function_count(); i++) {
|
||||
if (String("dummy") == AccessibilityServer::get_create_function_name(i)) {
|
||||
AccessibilityServer::create(i, err);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < DisplayServer::get_create_function_count(); i++) {
|
||||
if (String("mock") == DisplayServer::get_create_function_name(i)) {
|
||||
DisplayServer::create(i, "", DisplayServer::WindowMode::WINDOW_MODE_MINIMIZED, DisplayServer::VSyncMode::VSYNC_ENABLED, 0, nullptr, Vector2i(0, 0), DisplayServer::SCREEN_PRIMARY, DisplayServer::CONTEXT_EDITOR, 0, err);
|
||||
|
|
@ -338,6 +347,10 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
|||
memdelete(RenderingServer::get_singleton());
|
||||
}
|
||||
|
||||
if (AccessibilityServer::get_singleton()) {
|
||||
memdelete(AccessibilityServer::get_singleton());
|
||||
}
|
||||
|
||||
if (DisplayServer::get_singleton()) {
|
||||
memdelete(DisplayServer::get_singleton());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue