Browse Source

Add interfaces for at-spi2

feature/linux-automation-backup
Jumar Macato 2 years ago
parent
commit
35270f3788
  1. 27
      src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
  2. 1010
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Accessible.xml
  3. 128
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Action.xml
  4. 59
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Application.xml
  5. 106
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Cache.xml
  6. 48
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Collection.xml
  7. 320
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Component.xml
  8. 93
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.DeviceEventController.xml
  9. 20
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.DeviceEventListener.xml
  10. 33
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Document.xml
  11. 40
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.EditableText.xml
  12. 497
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Event.xml
  13. 27
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Hyperlink.xml
  14. 21
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Hypertext.xml
  15. 27
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Image.xml
  16. 30
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Registry.xml
  17. 42
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Selection.xml
  18. 73
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Socket.xml
  19. 135
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Table.xml
  20. 45
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.TableCell.xml
  21. 179
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Text.xml
  22. 16
      src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Value.xml

27
src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj

@ -42,6 +42,33 @@
<AdditionalFiles Include="DBusXml/org.kde.StatusNotifierWatcher.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.kde.StatusNotifierItem.xml" DBusGeneratorMode="Handler" />
<!-- AT-SPI2 -->
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Accessible.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Action.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Application.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Cache.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Collection.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Component.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.DeviceEventController.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.DeviceEventListener.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Document.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.EditableText.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Event.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Hyperlink.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Hypertext.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Image.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Registry.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Selection.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Socket.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Table.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.TableCell.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Text.xml" DBusGeneratorMode="Proxy" />
<AdditionalFiles Include="DBusXml/org.a11y.atspi.Value.xml" DBusGeneratorMode="Proxy" />
</ItemGroup>
<ItemGroup>
<Folder Include="Automation\" />
</ItemGroup>
</Project>

1010
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Accessible.xml

File diff suppressed because it is too large

128
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Action.xml

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.a11y.atspi.Action:
@short_description: Allows exploring and invoking the actions of a user-actionable UI component.
For example, a button may expose a "click" action; a popup menu may expose an "open"
action. Components which are not "passive" providers of UI information should
implement this interface, unless there is a more specialized interface for
interaction like org.a11y.atspi.Text or org.a11y.atspi.Value.
-->
<interface name="org.a11y.atspi.Action">
<!--
NActions: returns the number of available actions.
By convention, if there is more than one action available, the first one is
considered the "default" action of the object.
-->
<property name="NActions" type="i" access="read"/>
<!--
GetDescription:
@index: 0-based index of the action to query.
Returns: The localized description for the action at the specified @index. For
example, a screen reader will read out this description when the user asks for
extra detail on an action. For example, "Clicks the button" for the "click"
action of a button.
-->
<method name="GetDescription">
<arg type="i" name="index" direction="in"/>
<arg type="s" direction="out"/>
</method>
<!--
GetName:
@index: 0-based index of the action to query.
Returns: Machine-readable name for the action at the specified @index.
-->
<method name="GetName">
<arg type="i" name="index" direction="in"/>
<arg type="s" direction="out"/>
</method>
<!--
GetLocalizedName:
@index: 0-based index of the action to query.
Returns: A short, localized name for the action at the specified @index. This is
what screen readers will read out during normal navigation. For example, "Click"
for a button.
-->
<method name="GetLocalizedName">
<arg type="i" name="index" direction="in"/>
<arg type="s" direction="out"/>
</method>
<!--
GetKeyBinding:
@index: 0-based index of the action to query.
Gets the keybinding which can be used to activate this action, if one
exists. The string returned should contain localized, human-readable,
key sequences as they would appear when displayed on screen. It must
be in the format "mnemonic;sequence;shortcut".
- The mnemonic key activates the object if it is presently enabled onscreen.
This typically corresponds to the underlined letter within the widget.
Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
a button.
- The sequence is the full list of keys which invoke the action even if the
relevant element is not currently shown on screen. For instance, for a menu
item the sequence is the keybindings used to open the parent menus before
invoking. The sequence string is colon-delimited. Example: "Alt+F:N" in a
traditional "New..." menu item.
- The shortcut, if it exists, will invoke the same action without showing
the component or its enclosing menus or dialogs. Example: "Ctrl+N" in a
traditional "New..." menu item.
Example: For a traditional "New..." menu item, the expected return value
would be: "N;Alt+F:N;Ctrl+N" for the English locale and "N;Alt+D:N;Strg+N"
for the German locale. If, hypothetically, this menu item lacked a mnemonic,
it would be represented by ";;Ctrl+N" and ";;Strg+N" respectively.
If there is no key binding for this action, return "".
-->
<method name="GetKeyBinding">
<arg type="i" name="index" direction="in"/>
<arg type="s" direction="out"/>
</method>
<!--
GetActions:
Returns: an array of (localized_name, localized description, keybinding) for the
actions that an object supports. See the GetKeyBinding method for a description
of that field's syntax.
This is equivalent to using the methods GetLocalizedName, GetDescription,
GetKeyBinding for each action, but with a single call and thus less DBus traffic.
By convention, if there is more than one action available, the first one is
considered the "default" action of the object.
-->
<method name="GetActions">
<arg direction="out" type="a(sss)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiActionArray"/>
</method>
<!--
DoAction:
@index: 0-based index of the action to perform.
Performs the specified action on the object.
Returns: true on success, false otherwise.
-->
<method name="DoAction">
<arg direction="in" name="index" type="i"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

59
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Application.xml

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.a11y.atspi.Application:
@short_description: Interface that must be implemented by the root object of an application.
-->
<interface name="org.a11y.atspi.Application">
<!--
ToolkitName: name of the toolkit used to implement the application's user interface.
-->
<property name="ToolkitName" type="s" access="read"/>
<!--
Version: version of the toolkit used to implement the application's user interface.
-->
<property name="Version" type="s" access="read"/>
<!--
AtspiVersion: You should return "2.1" here.
This was intended to be the version of the atspi interfaces
that the application supports, but atspi will probably move to
using versioned interface names instead. Just return "2.1" here.
-->
<property name="AtspiVersion" type="s" access="read"/>
<!--
Id: set to an arbitrary numerical id when an application registers with the registry.
When a freshly-started application uses the
org.a11y.atspi.Socket.Embed method to register with the
accessibility registry, the registry will set a numerical id
on the application.
Per https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/82 it
may turn out that this id is not actually used subsequently.
This is a remnant of the time when registryd actually had to
make up identifiers for each application. With DBus, however,
it is the bus that assigns unique names to applications that
connect to it.
Your application or toolkit can remember the Id passed when
the accessibility registry sets this property, and return it
back when the property is read.
-->
<property name="Id" type="i" access="readwrite"/>
<!-- This method is not used.
See https://gitlab.gnome.org/GNOME/orca/-/issues/260
-->
<method name="GetLocale">
<arg direction="in" name="lctype" type="u"/>
<arg direction="out" type="s"/>
</method>
</interface>
</node>

106
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Cache.xml

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<!--
org.a11y.atspi.Cache:
@short_description: Interface to query accessible objects in bulk.
The application should expose this interface at the /org/a11y/atspi/cache object
path.
The org.a11y.atspi.Accessible interface has methods like GetChildren and
GetChildAtIndex, but these only transfer an object's DBus id. The caller has to
then query the object's properties individually. Transferring objects one by one and
then their properties produces a lot of traffic in the accessibility bus.
So, this Cache interface can be used to query objects in bulk. Assistive tech
should try to do a bulk query of all the objects in a new window with the GetItems
method, and then update them dynamically from the AddAccessible and RemoveAccessible
signals.
FIXME: Does GetItems only get called if an application implements
GetApplicationBusAddress? GTK4 doesn't implement that, but it implements GetItems -
does that ever get called?
-->
<interface name="org.a11y.atspi.Cache">
<!--
GetItems: bulk query an application's accessible objects.
Returns: an array with one element for each available object. Each element's
fields are like this:
- (so): accessible object reference - DBus name and object
path. The rest of the fields refer to this main object.
- (so): application reference - DBus name and object path. This is the owner of
the main object; the root path of the application that registered via
the Embed method of the org.a11y.atspi.Socket interface.
- (so): parent object reference - DBus name and object path.
If the main object has no parent:
- If it is a control, or a window, return the parent application.
- If the object has the application role, return a null reference. FIXME:
atk-adaptor/adaptors/cache-adaptor.c:append_cache_item() returns a
reference to the registry in this case (the one it obtained from the
initial Socket::Embed call); GTK4 returns a null reference.
- Otherwise, return a null reference ("" for the application name name and
"/org/a11y/atspi/null" for the object path).
- i: index in parent, or -1 for transient widgets/menu items. Equivalent to the
GetIndexInParent method of the org.a11y.atspi.Accessible interface.
- i: child count of main object, or -1 for defunct/menus. Equivalent to the
ChildCount property of the org.a11y.atspi.Accessible interface.
- as: array of names of the interfaces that the main object supports. Equivalent
to the GetInterfaces method of the org.a11y.atspi.Accessible interface.
- s: human-readable, localized, short name for the main object. Equivalent to the
Name property of the org.a11y.atspi.Accessible interface.
- u: role. Equivalent to the GetRole method of the org.a11y.atspi.Accessible interface.
- s: human-readable, localized description of the object in more detail.
Equivalent to the Description property of the org.a11y.atspi.Accessible interface.
- au: Set of states currently held by an object. Equivalent to the GetState
method of the org.a11y.atspi.Accessible interface.
Deprecation note: The signature for the return value of this method changed in
2015, in commit b2c8c4c7. It used to be "a((so)(so)(so)a(so)assusau)". The
"a(so)" instead of "ii" is a list of references to child objects. The
implementation in atspi-misc.c can handle either version, although the intention
is to deprecate the code that handles the old version. Qt still uses this old
signature and should be changed to the new scheme (see qspi_struct_marshallers.cpp
in the Qt source code).
-->
<method name="GetItems">
<arg direction="out" name="nodes" type="a((so)(so)(so)iiassusau)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAccessibleCacheArray"/>
</method>
<!--
AddAccessible: to be emitted when a new object is added.
See the GetItems method for a description of the signature.
-->
<signal name="AddAccessible">
<arg name="nodeAdded" type="((so)(so)(so)iiassusau)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiAccessibleCacheItem"/>
</signal>
<!--
RemoveAccessible: to be emitted when an object is no longer available.
@nodeRemoved: (so) string for the application name and object path.
-->
<signal name="RemoveAccessible">
<arg name="nodeRemoved" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
</signal>
</interface>
</node>

48
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Collection.xml

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Collection">
<method name="GetMatches">
<arg direction="in" name="rule" type="(aiia{ss}iaiiasib)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiMatchRule"/>
<arg direction="in" name="sortby" type="u"/>
<arg direction="in" name="count" type="i"/>
<arg direction="in" name="traverse" type="b"/>
<arg direction="out" type="a(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
</method>
<method name="GetMatchesTo">
<arg direction="in" name="current_object" type="o"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
<arg direction="in" name="rule" type="(aiia{ss}iaiiasib)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QSpiMatchRule"/>
<arg direction="in" name="sortby" type="u"/>
<arg direction="in" name="tree" type="u"/>
<arg direction="in" name="limit_scope" type="b"/>
<arg direction="in" name="count" type="i"/>
<arg direction="in" name="traverse" type="b"/>
<arg direction="out" type="a(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
</method>
<method name="GetMatchesFrom">
<arg direction="in" name="current_object" type="o"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
<arg direction="in" name="rule" type="(aiia{ss}iaiiasib)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QSpiMatchRule"/>
<arg direction="in" name="sortby" type="u"/>
<arg direction="in" name="tree" type="u"/>
<arg direction="in" name="count" type="i"/>
<arg direction="in" name="traverse" type="b"/>
<arg direction="out" type="a(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
</method>
<method name="GetActiveDescendant">
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiReferenceSet"/>
</method>
</interface>
</node>

320
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Component.xml

@ -0,0 +1,320 @@
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.a11y.atspi.Component:
@short_description: Interface for GUI components like widgets or other visible elements.
-->
<interface name="org.a11y.atspi.Component">
<!--
Contains:
@x: X coordinate of point.
@y: Y coordinate of point.
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Queries whether a point (x, y) is inside the component.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
-->
<method name="Contains">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" type="b"/>
</method>
<!--
GetAccessibleAtPoint:
@x: X coordinate of point.
@y: Y coordinate of point.
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Gets a reference to the accessible object that contains an (x, y) pair of
coordinates.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: A DBus name and object reference (so) for the sought object, or a null
object reference "/org/a11y/atspi/null" if there is no object at the specified
coordinates.
-->
<method name="GetAccessibleAtPoint">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<!--
GetExtents:
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Queries the pixel extents of a component.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: a tuple (x, y, width, height) corresponding to the rectangle for the
component's extents.
-->
<method name="GetExtents">
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" type="(iiii)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiRect"/>
</method>
<!--
GetPosition:
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Queries the upper-left position of a component.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: (x, y) coordinates of the component's upper-left corner.
-->
<method name="GetPosition">
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" name="x" type="i"/>
<arg direction="out" name="y" type="i"/>
</method>
<!--
GetSize:
Queries the pixel size of a component.
Returns: (width, height) of the component's rectangular area.
-->
<method name="GetSize">
<arg direction="out" name="width" type="i"/>
<arg direction="out" name="height" type="i"/>
</method>
<!--
GetLayer:
Queries the UI layer at which a component is rendered, which can help in
determining when components occlude one another.
The layer of a component indicates its relative stacking order with respect to the
onscreen visual representation of the UI. The layer index, in combination
with the component's extents, can be used to compute the visibility of
all or part of a component. This is important in programmatic determination of
region-of-interest for magnification, and in flat screen review models of the
screen, as well as for other uses. Objects residing in two of the
Layer categories support further z-ordering information, with
respect to their peers in the same layer: namely, WINDOW and
MDI. Relative stacking order for other objects within the same layer
is not available; the recommended heuristic is first child paints first. In other
words, assume that the first siblings in the child list are subject to being
overpainted by later siblings if their bounds intersect. The order of layers, from
bottom to top, is as follows:
0 - INVALID: Error condition.
1 - BACKGROUND: Reserved for the desktop background; this is the bottom-most
layer, over which everything else is painted.
2 - CANVAS: The 'background' layer for most content renderers and UI component containers.
3 - WIDGET: The layer in which the majority of ordinary 'foreground' widgets reside.
4 - MDI: A special layer between CANVAS and WIDGET, in which the 'pseudo-windows'
(e.g. the Multiple-Document Interface frames) reside. See the GetMDIZOrder
method.
5 - POPUP: Layer for popup window content, above WIDGET.
6 - OVERLAY: The topmost layer.
7 - WINDOW: The layer in which a toplevel window background usually resides.
-->
<method name="GetLayer">
<arg direction="out" type="u"/>
</method>
<!--
GetMDIZOrder:
Queries the Z stacking order of a component which is in the MDI or WINDOW layer,
per the GetLayer method. Bigger z-order numbers are nearer the top.
Returns: The z order of the component, or -1 if it is not in the MDI layer.
-->
<method name="GetMDIZOrder">
<arg direction="out" type="n"/>
</method>
<!--
GrabFocus:
Attempts to set the keyboard input focus to the component.
Returns: true if successful, or false otherwise.
-->
<method name="GrabFocus">
<arg direction="out" type="b"/>
</method>
<!--
GetAlpha:
Gets the opacity/alpha value of a component, if alpha blending is in use.
Returns: opacity value in the [0.0, 1.0] range. 0 is fully transparent and 1 is fully opaque.
-->
<method name="GetAlpha">
<arg direction="out" type="d"/>
</method>
<!--
SetExtents:
@x: the new horizontal position to which the component should be moved.
@y: the new vertical position to which the component should be moved.
@width: the width to which the component should be resized.
@height: the height to which the component should be resized.
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Moves and resizes the component.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: true if successful, or false otherwise.
-->
<method name="SetExtents">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="width" type="i"/>
<arg direction="in" name="height" type="i"/>
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" type="b"/>
</method>
<!--
SetPosition:
@x: the new horizontal position to which the component should be moved.
@y: the new vertical position to which the component should be moved.
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
Moves the component to the specified position.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: true if successful, or false otherwise.
-->
<method name="SetPosition">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="coord_type" type="u"/>
<arg direction="out" type="b"/>
</method>
<!--
SetSize:
@width: the width to which the component should be resized.
@height: the height to which the component should be resized.
Resizes the component to the given pixel dimensions.
Returns: true if successful, or false otherwise.
-->
<method name="SetSize">
<arg direction="in" name="width" type="i"/>
<arg direction="in" name="height" type="i"/>
<arg direction="out" type="b"/>
</method>
<!--
ScrollTo:
@type: How to position the component within its parent; see the description.
Makes the component visible on the screen by scrolling all necessary parents.
The @type corresponds to AtkScrollType:
0 - TOP_LEFT: Scroll the object vertically and horizontally to bring
its top left corner to the top left corner of the window.
1 - BOTTOM_RIGHT: Scroll the object vertically and horizontally to
bring its bottom right corner to the bottom right corner of the window.
2 - TOP_EDGE: Scroll the object vertically to bring its top edge to
the top edge of the window.
3 - BOTTOM_EDGE: Scroll the object vertically to bring its bottom
edge to the bottom edge of the window.
4 - LEFT_EDGE: Scroll the object vertically and horizontally to bring
its left edge to the left edge of the window.
5 - RIGHT_EDGE: Scroll the object vertically and horizontally to
bring its right edge to the right edge of the window.
6 - ANYWHERE: Scroll the object vertically and horizontally so that
as much as possible of the object becomes visible. The exact placement is
determined by the application.
Returns: true if successful, or false otherwise.
-->
<method name="ScrollTo">
<arg direction="in" name="type" type="u"/>
<arg direction="out" type="b"/>
</method>
<!--
ScrollToPoint:
@coord_type: Whether the coordinates are relative to the screen or to the
component's top level window; see the description.
@x: X coordinate within the component to make visible.
@y: Y coordinate within the component to make visible.
Similar to the ScrollTo method, but makes a specific point from the component
visible in its parent.
The @coord_type values are as follows, and correspond to AtkCoordType:
0 - Coordinates are relative to the screen.
1 - Coordinates are relative to the component's toplevel window.
2 - Coordinates are relative to the component's immediate parent.
Returns: true if successful, or false otherwise.
-->
<method name="ScrollToPoint">
<arg direction="in" name="coord_type" type="u"/>
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

93
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.DeviceEventController.xml

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.a11y.atspi.DeviceEventController:
@short_description: Legacy interface for keystroke listeners and generation of keyboard/mouse events
This interface is being replaced by the functions in atspi-device-listener.h.
-->
<interface name="org.a11y.atspi.DeviceEventController">
<!--
RegisterKeystrokeListener:
@listener: path of object to be notified when the following keys are pressed
@keys: array of (key_code, key_sym, key_string, unused)
@mask: modifier mask in X11 style (see Xlib.h)
@types: mask of press/release; see the description below.
@mode: struct of flags (synchronous, preemptive, global), see the description below.
The @types can be a mask of the following:
* KEY_PRESS = 1 << 0
* KEY_RELEASE = 1 << 1
Note that Orca always passes (KEY_PRESS | KEY_RELEASE).
The @mode is composed of three flags (see AtspiKeyListenerSyncType):
* synchronous: Events are delivered synchronously, before
the currently focused application sees them. If false,
events may be delivered asynchronously, which means in some
cases they may already have been delivered to the
application before the AT client receives the notification.
* preemptive: (called CANCONSUME in AtspiKeyListenerSyncType)
Events may be consumed by the AT client. Requires the synchronous flag to be set.
* global: (called ALL_WINDOWS in AtspiKeyListenerSyncType)
Events are received not from the application toolkit layer,
but from the device driver or windowing system subsystem.
Returns: boolean indicating whether the operation was successful. This is always
TRUE for non-global listeners (c.f. @mode), and may be FALSE for global listeners
if the underlying XGrabKey() failed (see spi_dec_x11_grab_key).
-->
<method name="RegisterKeystrokeListener">
<arg direction="in" name="listener" type="o"/>
<arg direction="in" name="keys" type="a(iisi)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QSpiKeyTypeArray"/>
<arg direction="in" name="mask" type="u"/>
<arg direction="in" name="types" type="u"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="QSpiEventTypeArray"/>
<arg direction="in" name="mode" type="(bbb)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In4" value="QSpiEventMode"/>
<arg direction="out" type="b"/>
</method>
<method name="DeregisterKeystrokeListener">
<arg direction="in" name="listener" type="o"/>
<arg direction="in" name="keys" type="a(iisi)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QSpiKeyTypeArray"/>
<arg direction="in" name="mask" type="u"/>
<arg direction="in" name="type" type="u"/>
</method>
<method name="GetKeystrokeListeners">
<arg direction="out" type="a(souua(iisi)u(bbb))"/>
</method>
<method name="GenerateKeyboardEvent">
<arg direction="in" name="keycode" type="i"/>
<arg direction="in" name="keystring" type="s"/>
<arg direction="in" name="type" type="u"/>
</method>
<method name="GenerateMouseEvent">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="eventName" type="s"/>
</method>
<method name="NotifyListenersSync">
<arg direction="in" name="event" type="(uiuuisb)"/>
<arg direction="out" type="b"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
</method>
<method name="NotifyListenersAsync">
<arg direction="in" name="event" type="(uiuuisb)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
</method>
</interface>
</node>

20
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.DeviceEventListener.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.DeviceEventListener">
<method name="NotifyEvent">
<arg direction="in" name="event" type="(uiuuisb)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiDeviceEvent"/>
<arg direction="out" type="b"/>
</method>
<signal name="KeystrokeListenerRegistered">
<arg name="listener" type="(souua(iisi)u(bbb))"/>
</signal>
<signal name="KeystrokeListenerDeregistered">
<arg name="listener" type="(souua(iisi)u(bbb))"/>
</signal>
</interface>
</node>

33
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Document.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Document">
<property name="CurrentPageNumber" type="i" access="read"/>
<property name="PageCount" type="i" access="read"/>
<method name="GetLocale">
<arg direction="out" type="s"/>
</method>
<method name="GetAttributeValue">
<arg direction="in" name="attributename" type="s"/>
<arg direction="out" type="s"/>
</method>
<method name="GetAttributes">
<arg direction="out" type="a{ss}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
</method>
<method name="GetTextSelections">
<arg direction="out" name="selections" type="a((so)i(so)ib)"/>
</method>
<method name="SetTextSelections">
<arg direction="in" name="selections" type="a((so)i(so)ib)"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

40
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.EditableText.xml

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.EditableText">
<method name="SetTextContents">
<arg direction="in" name="newContents" type="s"/>
<arg direction="out" type="b"/>
</method>
<method name="InsertText">
<arg direction="in" name="position" type="i"/>
<arg direction="in" name="text" type="s"/>
<arg direction="in" name="length" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="CopyText">
<arg direction="in" name="startPos" type="i"/>
<arg direction="in" name="endPos" type="i"/>
</method>
<method name="CutText">
<arg direction="in" name="startPos" type="i"/>
<arg direction="in" name="endPos" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="DeleteText">
<arg direction="in" name="startPos" type="i"/>
<arg direction="in" name="endPos" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="PasteText">
<arg direction="in" name="position" type="i"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

497
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Event.xml

@ -0,0 +1,497 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<!-- FIXME: all the following signatures are incorrect and need to be synched
with the C code and the actual implementations in toolkits.
See https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/74
-->
<interface name="org.a11y.atspi.Event.Object">
<signal name="PropertyChange">
<arg name="property" type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg name="value" type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="BoundsChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="LinkSelected">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="StateChanged">
<arg name="state" type="s"/>
<arg name="enabled" type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ChildrenChanged">
<arg name="operation" type="s"/>
<arg name="index_in_parent" type="i"/>
<arg type="i"/>
<arg name="child" type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="VisibleDataChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="SelectionChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ModelChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ActiveDescendantChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg name="child" type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Announcement">
<arg type="s"/>
<!-- politeness should be 1 (ATSPI_LIVE_POLITE) or 2
(ATSPI_LIVE_ASSERTIVE) -->
<arg type="i" name="politeness"/>
<arg type="i"/>
<!-- The variant should enclose a string with the text to be announced -->
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="AttributesChanged">
<!-- name specifies the name of the attribute that has changed, when available -->
<arg name="name" type="s"/>
<arg type="i"/>
<arg type="i"/>
<!-- The variant should include a string with the attribute's new value, when available -->
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<!-- Table events. TODO: move to Table interface? -->
<signal name="RowInserted">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="RowReordered">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="RowDeleted">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ColumnInserted">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ColumnReordered">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ColumnDeleted">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<!-- Text events. TODO: move to Text interface? -->
<signal name="TextBoundsChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="TextSelectionChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="TextChanged">
<arg name="detail" type="s"/>
<arg name="start_pos" type="i"/>
<arg name="length" type="i"/>
<arg name="text" type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="TextAttributesChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="TextCaretMoved">
<arg type="s"/>
<arg name="position" type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Window">
<signal name="PropertyChange">
<arg name="property" type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Minimize">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Maximize">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Restore">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Close">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Create">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Reparent">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="DesktopCreate">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="DesktopDestroy">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Destroy">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Activate">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Deactivate">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Raise">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Lower">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Move">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Resize">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Shade">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="uUshade">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Restyle">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Mouse">
<signal name="Abs">
<arg type="s"/>
<arg name="x" type="i"/>
<arg name="y" type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Rel">
<arg type="s"/>
<arg name="x" type="i"/>
<arg name="y" type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Button">
<arg name="detail" type="s"/>
<arg name="mouse_x" type="i"/>
<arg name="mouse_y" type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Keyboard">
<signal name="Modifiers">
<arg type="s"/>
<arg name="previous_modifiers" type="i"/>
<arg name="current_modifiers" type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Terminal">
<signal name="LineChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ColumncountChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="LinecountChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ApplicationChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="CharwidthChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Document">
<signal name="LoadComplete">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="Reload">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="LoadStopped">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="ContentChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="AttributesChanged">
<!-- name specifies the name of the attribute that has changed, when available -->
<arg name="name" type="s"/>
<arg type="i"/>
<arg type="i"/>
<!-- The variant should include a string with the attribute's new value, when available -->
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
<signal name="PageChanged">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
<interface name="org.a11y.atspi.Event.Focus">
<!-- Focus is deprecated in favor of StateChanged with focus passed as its first argument -->
<signal name="Focus">
<arg type="s"/>
<arg type="i"/>
<arg type="i"/>
<arg type="v"/>
<arg name="properties" type="a{sv}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiEvent"/>
</signal>
</interface>
</node>

27
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Hyperlink.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Hyperlink">
<property name="NAnchors" type="n" access="read"/>
<property name="StartIndex" type="i" access="read"/>
<property name="EndIndex" type="i" access="read"/>
<method name="GetObject">
<arg direction="in" name="i" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="GetURI">
<arg direction="in" name="i" type="i"/>
<arg direction="out" type="s"/>
</method>
<method name="IsValid">
<arg direction="out" type="b"/>
</method>
</interface>
</node>

21
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Hypertext.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Hypertext">
<method name="GetNLinks">
<arg direction="out" type="i"/>
</method>
<method name="GetLink">
<arg direction="in" name="linkIndex" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="GetLinkIndex">
<arg direction="in" name="characterIndex" type="i"/>
<arg direction="out" type="i"/>
</method>
</interface>
</node>

27
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Image.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Image">
<property name="ImageDescription" type="s" access="read"/>
<property name="ImageLocale" type="s" access="read"/>
<method name="GetImageExtents">
<arg direction="in" name="coordType" type="u"/>
<arg direction="out" type="(iiii)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiRect"/>
</method>
<method name="GetImagePosition">
<arg direction="in" name="coordType" type="u"/>
<arg direction="out" name="x" type="i"/>
<arg direction="out" name="y" type="i"/>
</method>
<method name="GetImageSize">
<arg direction="out" name="width" type="i"/>
<arg direction="out" name="height" type="i"/>
</method>
</interface>
</node>

30
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Registry.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Registry">
<method name="RegisterEvent">
<arg direction="in" name="event" type="s"/>
<arg direction="in" name="properties" type="as"/>
<arg direction="in" name="app_bus_name" type="s"/>
</method>
<method name="DeregisterEvent">
<arg direction="in" name="event" type="s"/>
</method>
<method name="GetRegisteredEvents">
<arg direction="out" name="events" type="a(ss)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiEventListenerArray"/>
</method>
<signal name="EventListenerRegistered">
<arg name="bus" type="s"/>
<arg name="path" type="s"/>
</signal>
<signal name="EventListenerDeregistered">
<arg name="bus" type="s"/>
<arg name="path" type="s"/>
</signal>
</interface>
</node>

42
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Selection.xml

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Selection">
<property name="NSelectedChildren" type="i" access="read"/>
<method name="GetSelectedChild">
<arg direction="in" name="selectedChildIndex" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="SelectChild">
<arg direction="in" name="childIndex" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="DeselectSelectedChild">
<arg direction="in" name="selectedChildIndex" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="IsChildSelected">
<arg direction="in" name="childIndex" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="SelectAll">
<arg direction="out" type="b"/>
</method>
<method name="ClearSelection">
<arg direction="out" type="b"/>
</method>
<method name="DeselectChild">
<arg direction="in" name="childIndex" type="i"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

73
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Socket.xml

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.a11y.atspi.Socket:
@short_description: Interface to register an application on the registry.
-->
<interface name="org.a11y.atspi.Socket">
<!--
Embed:
@plug: a string for the unique bus name of the application, and an object path
for the application's' root object.
This is the entry point for an application that wants to register itself against
the accessibility registry. The application's root object, which it passes in
@plug, must support the org.a11y.atspi.Application interface.
When an application calls this method on the registry, the following handshake happens:
* Application calls this method on the registry to identify itself.
* The registry sets the "Id" property on the org.a11y.atspi.Application interface on the @plug object.
* The Embed method returns with the bus name and object path for the registry's root object.
Returns: the bus name and object path of the registry's root object.
-->
<method name="Embed">
<arg direction="in" name="plug" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
<arg direction="out" name="socket" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<!--
Embedded:
@path: the object path of the socket.
This method is called by a socket to inform the plug that it is being
embedded. The plug should register the embedding socket as its parent.
-->
<method name="Embedded">
<arg direction="in" name="path" type="s"/>
</method>
<!--
Unembed:
@plug: a string for the unique bus name of the application, and an object path
for the application's' root object.
Unregisters an application from the accesibility registry. It is not necessary to
call this method; the accessibility registry detects when an application
disconnects from the bus.
-->
<method name="Unembed">
<arg direction="in" name="plug" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
</method>
<!--
Available:
@socket: application and object path for the registry's root object.
The accessibility registry emits this signal early during startup, when it has
registered with the DBus daemon and is available for calls from applications.
-->
<signal name="Available">
<arg name="socket" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSpiObjectReference"/>
</signal>
</interface>
</node>

135
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Table.xml

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Table">
<property name="NRows" type="i" access="read"/>
<property name="NColumns" type="i" access="read"/>
<property name="Caption" type="(so)" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QSpiObjectReference"/>
</property>
<property name="Summary" type="(so)" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QSpiObjectReference"/>
</property>
<property name="NSelectedRows" type="i" access="read"/>
<property name="NSelectedColumns" type="i" access="read"/>
<method name="GetAccessibleAt">
<arg direction="in" name="row" type="i"/>
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="GetIndexAt">
<arg direction="in" name="row" type="i"/>
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetRowAtIndex">
<arg direction="in" name="index" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetColumnAtIndex">
<arg direction="in" name="index" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetRowDescription">
<arg direction="in" name="row" type="i"/>
<arg direction="out" type="s"/>
</method>
<method name="GetColumnDescription">
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="s"/>
</method>
<method name="GetRowExtentAt">
<arg direction="in" name="row" type="i"/>
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetColumnExtentAt">
<arg direction="in" name="row" type="i"/>
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetRowHeader">
<arg direction="in" name="row" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="GetColumnHeader">
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
</method>
<method name="GetSelectedRows">
<arg direction="out" type="ai"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
</method>
<method name="GetSelectedColumns">
<arg direction="out" type="ai"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
</method>
<method name="IsRowSelected">
<arg direction="in" name="row" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="IsColumnSelected">
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="IsSelected">
<arg direction="in" name="row" type="i"/>
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="AddRowSelection">
<arg direction="in" name="row" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="AddColumnSelection">
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="RemoveRowSelection">
<arg direction="in" name="row" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="RemoveColumnSelection">
<arg direction="in" name="column" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="GetRowColumnExtentsAtIndex">
<arg direction="in" name="index" type="i"/>
<arg direction="out" type="b"/>
<arg direction="out" name="row" type="i"/>
<arg direction="out" name="col" type="i"/>
<arg direction="out" name="row_extents" type="i"/>
<arg direction="out" name="col_extents" type="i"/>
<arg direction="out" name="is_selected" type="b"/>
</method>
</interface>
</node>

45
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.TableCell.xml

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.TableCell">
<property access="read" name="ColumnSpan" type="i" />
<property access="read" name="Position" type="(ii)">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QPoint"/>
</property>
<property access="read" name="RowSpan" type="i" />
<property access="read" name="Table" type="(so)" >
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QSpiObjectReference"/>
</property>
<method name="GetRowColumnSpan">
<arg direction="out" type="b" />
<arg direction="out" name="row" type="i" />
<arg direction="out" name="col" type="i" />
<arg direction="out" name="row_extents" type="i" />
<arg direction="out" name="col_extents" type="i" />
</method>
<!--
GetColumnHeaderCells:
Returns a list of the table cell's column header cells.
-->
<method name="GetColumnHeaderCells">
<arg direction="out" type="a(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReferenceArray"/>
</method>
<!--
GetRowHeaderCells:
Returns a list of the table cell's row header cells.
-->
<method name="GetRowHeaderCells">
<arg direction="out" type="a(so)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReferenceArray"/>
</method>
</interface>
</node>

179
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Text.xml

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Text">
<property name="CharacterCount" type="i" access="read"/>
<property name="CaretOffset" type="i" access="read"/>
<method name="GetStringAtOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="granularity" type="u"/>
<arg direction="out" type="s"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="GetText">
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="out" type="s"/>
</method>
<method name="SetCaretOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="GetTextBeforeOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="type" type="u"/>
<arg direction="out" type="s"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<!--
GetTextAtOffset:
Returns the text at the given offset.
Deprecated: Use GetStringAtOffset.
-->
<method name="GetTextAtOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="type" type="u"/>
<arg direction="out" type="s"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="GetTextAfterOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="type" type="u"/>
<arg direction="out" type="s"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="GetCharacterAtOffset">
<arg direction="in" name="offset" type="i"/>
<arg direction="out" type="i"/>
</method>
<method name="GetAttributeValue">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="attributeName" type="s"/>
<arg direction="out" type="s"/>
</method>
<method name="GetAttributes">
<arg direction="in" name="offset" type="i"/>
<arg direction="out" type="a{ss}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="GetDefaultAttributes">
<arg direction="out" type="a{ss}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
</method>
<method name="GetCharacterExtents">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="coordType" type="u"/>
<arg direction="out" name="x" type="i"/>
<arg direction="out" name="y" type="i"/>
<arg direction="out" name="width" type="i"/>
<arg direction="out" name="height" type="i"/>
</method>
<method name="GetOffsetAtPoint">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="coordType" type="u"/>
<arg direction="out" type="i"/>
</method>
<method name="GetNSelections">
<arg direction="out" type="i"/>
</method>
<method name="GetSelection">
<arg direction="in" name="selectionNum" type="i"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="AddSelection">
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="RemoveSelection">
<arg direction="in" name="selectionNum" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="SetSelection">
<arg direction="in" name="selectionNum" type="i"/>
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="out" type="b"/>
</method>
<method name="GetRangeExtents">
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="in" name="coordType" type="u"/>
<arg direction="out" name="x" type="i"/>
<arg direction="out" name="y" type="i"/>
<arg direction="out" name="width" type="i"/>
<arg direction="out" name="height" type="i"/>
</method>
<method name="GetBoundedRanges">
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="in" name="width" type="i"/>
<arg direction="in" name="height" type="i"/>
<arg direction="in" name="coordType" type="u"/>
<arg direction="in" name="xClipType" type="u"/>
<arg direction="in" name="yClipType" type="u"/>
<arg direction="out" type="a(iisv)"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiRangeList"/>
</method>
<method name="GetAttributeRun">
<arg direction="in" name="offset" type="i"/>
<arg direction="in" name="includeDefaults" type="b"/>
<arg direction="out" type="a{ss}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
<arg direction="out" name="startOffset" type="i"/>
<arg direction="out" name="endOffset" type="i"/>
</method>
<method name="GetDefaultAttributeSet">
<arg direction="out" type="a{ss}"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
</method>
<method name="ScrollSubstringTo">
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="in" name="type" type="u"/>
<arg direction="out" type="b"/>
</method>
<method name="ScrollSubstringToPoint">
<arg direction="in" name="startOffset" type="i"/>
<arg direction="in" name="endOffset" type="i"/>
<arg direction="in" name="type" type="u"/>
<arg direction="in" name="x" type="i"/>
<arg direction="in" name="y" type="i"/>
<arg direction="out" type="b"/>
</method>
</interface>
</node>

16
src/Avalonia.FreeDesktop/DBusXml/org.a11y.atspi.Value.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<node>
<interface name="org.a11y.atspi.Value">
<property name="MinimumValue" type="d" access="read"/>
<property name="MaximumValue" type="d" access="read"/>
<property name="MinimumIncrement" type="d" access="read"/>
<property name="CurrentValue" type="d" access="readwrite"/>
<property name="Text" type="s" access="read"/>
</interface>
</node>
Loading…
Cancel
Save