atk.c.types

C types for atk1 library

Types 88

This is a singly-linked list (a #GSList) of #AtkAttribute. It is used by [atk.text.Text.getRunAttributes], [atk.text.Text.getDefaultAttributes], [atk.editable_text.EditableText.setRunAttributes], [atk.document.Document.getAttributes] and [atk.object.ObjectWrap.getAttributes]

aliasAtkState = ulong

An AtkState describes a single state of an object.

An AtkState describes a single state of an object. The full set of states that apply to an object at a given time are contained in its #AtkStateSet.

See id@atk_object_ref_state_set and id@atk_object_notify_state_change

Specifies how xy coordinates are to be interpreted. Used by functions such as [atk.component.Component.getPosition] and [atk.text.Text.getCharacterExtents]

Screen = 0specifies xy coordinates relative to the screen
Window = 1specifies xy coordinates relative to the widget's top-level window
Parent = 2specifies xy coordinates relative to the widget's immediate parent. Since: 2.30

Describes the type of link

Inline = 1Link is inline

Specifies the type of a keyboard evemt.

Press = 0specifies a key press event
Release = 1specifies a key release event
LastDefined = 2Not a valid value; specifies end of enumeration

Describes the layer of a component

These enumerated "layer values" are used when determining which UI rendering layer a component is drawn into, which can help in making determinations of when components occlude one another.

Invalid = 0The object does not have a layer
Background = 1This layer is reserved for the desktop background
Canvas = 2This layer is used for Canvas components
Widget = 3This layer is normally used for components
Mdi = 4This layer is used for layered components
Popup = 5This layer is used for popup components, such as menus
Overlay = 6This layer is reserved for future use.
Window = 7This layer is used for toplevel windows.

Enumeration used to indicate a type of live region and how assertive it should be in terms of speaking notifications. Currently, this is only used for "notification" events, but it may be used for additional purposes in the future.

None = 0No live region.
Polite = 1This live region should be considered polite.
Assertive = 2This live region should be considered assertive.

Describes the type of the relation

Null = 0Not used, represens "no relationship" or an error condition.
ControlledBy = 1Indicates an object controlled by one or more target objects.
ControllerFor = 2Indicates an object is an controller for one or more target objects.
LabelFor = 3Indicates an object is a label for one or more target objects.
LabelledBy = 4Indicates an object is labelled by one or more target objects.
MemberOf = 5Indicates an object is a member of a group of one or more target objects.
NodeChildOf = 6Indicates an object is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell.
FlowsTo = 7Indicates that the object has content that flows logically to another AtkObject in a sequential way, (for instance text-flow).
FlowsFrom = 8Indicates that the object has content that flows logically from another AtkObject in a sequential way, (for instance text-flow).
SubwindowOf = 9Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component.
Embeds = 10Indicates that the object visually embeds another object's content, i.e. this object's content flows around another's content.
EmbeddedBy = 11Reciprocal of [atk.types.RelationType.Embeds], indicates that this object's content is visualy embedded in another object.
PopupFor = 12Indicates that an object is a popup for another object.
ParentWindowOf = 13Indicates that an object is a parent window of another object.
DescribedBy = 14Reciprocal of [atk.types.RelationType.DescriptionFor]. Indicates that one or more target objects provide descriptive information about this object. This relation type is most appropriate for inform...
DescriptionFor = 15Reciprocal of [atk.types.RelationType.DescribedBy]. Indicates that this object provides descriptive information about the target object(s). See also [atk.types.RelationType.DetailsFor] and [atk.typ...
NodeParentOf = 16Indicates an object is a cell in a treetable and is expanded to display other cells in the same column.
Details = 17Reciprocal of [atk.types.RelationType.DetailsFor]. Indicates that this object has a detailed or extended description, the contents of which can be found in the target object(s). This relation type ...
DetailsFor = 18Reciprocal of [atk.types.RelationType.Details]. Indicates that this object provides a detailed or extended description about the target object(s). See also [atk.types.RelationType.DescriptionFor] a...
ErrorMessage = 19Reciprocal of [atk.types.RelationType.ErrorFor]. Indicates that this object has one or more errors, the nature of which is described in the contents of the target object(s). Objects that have this ...
ErrorFor = 20Reciprocal of [atk.types.RelationType.ErrorMessage]. Indicates that this object contains an error message describing an invalid condition in the target object(s). @Since: ATK_2.26.
LastDefined = 21Not used, this value indicates the end of the enumeration.

Describes the role of an object

These are the built-in enumerated roles that UI components can have in ATK. Other roles may be added at runtime, so an AtkRole >= [atk.types.Role.LastDefined] is not necessarily an error.

Invalid = 0Invalid role
AcceleratorLabel = 1A label which represents an accelerator
Alert = 2An object which is an alert to the user. Assistive Technologies typically respond to ATKROLEALERT by reading the entire onscreen contents of containers advertising this role. Should be used for wa...
Animation = 3An object which is an animated image
Arrow = 4An arrow in one of the four cardinal directions
Calendar = 5An object that displays a calendar and allows the user to select a date
Canvas = 6An object that can be drawn into and is used to trap events
CheckBox = 7A choice that can be checked or unchecked and provides a separate indicator for the current state
CheckMenuItem = 8A menu item with a check box
ColorChooser = 9A specialized dialog that lets the user choose a color
ColumnHeader = 10The header for a column of data
ComboBox = 11A collapsible list of choices the user can select from
DateEditor = 12An object whose purpose is to allow a user to edit a date
DesktopIcon = 13An inconifed internal frame within a DESKTOP_PANE
DesktopFrame = 14A pane that supports internal frames and iconified versions of those internal frames
Dial = 15An object whose purpose is to allow a user to set a value
Dialog = 16A top level window with title bar and a border
DirectoryPane = 17A pane that allows the user to navigate through and select the contents of a directory
DrawingArea = 18An object used for drawing custom user interface elements
FileChooser = 19A specialized dialog that lets the user choose a file
Filler = 20A object that fills up space in a user interface
FontChooser = 21A specialized dialog that lets the user choose a font
Frame = 22A top level window with a title bar, border, menubar, etc.
GlassPane = 23A pane that is guaranteed to be painted on top of all panes beneath it
HtmlContainer = 24A document container for HTML, whose children represent the document content
Icon = 25A small fixed size picture, typically used to decorate components
Image = 26An object whose primary purpose is to display an image
InternalFrame = 27A frame-like object that is clipped by a desktop pane
Label = 28An object used to present an icon or short string in an interface
LayeredPane = 29A specialized pane that allows its children to be drawn in layers, providing a form of stacking order
List = 30An object that presents a list of objects to the user and allows the user to select one or more of them
ListItem = 31An object that represents an element of a list
Menu = 32An object usually found inside a menu bar that contains a list of actions the user can choose from
MenuBar = 33An object usually drawn at the top of the primary dialog box of an application that contains a list of menus the user can choose from
MenuItem = 34An object usually contained in a menu that presents an action the user can choose
OptionPane = 35A specialized pane whose primary use is inside a DIALOG
PageTab = 36An object that is a child of a page tab list
PageTabList = 37An object that presents a series of panels (or page tabs), one at a time, through some mechanism provided by the object
Panel = 38A generic container that is often used to group objects
PasswordText = 39A text object uses for passwords, or other places where the text content is not shown visibly to the user
PopupMenu = 40A temporary window that is usually used to offer the user a list of choices, and then hides when the user selects one of those choices
ProgressBar = 41An object used to indicate how much of a task has been completed
PushButton = 42An object the user can manipulate to tell the application to do something
RadioButton = 43A specialized check box that will cause other radio buttons in the same group to become unchecked when this one is checked
RadioMenuItem = 44A check menu item which belongs to a group. At each instant exactly one of the radio menu items from a group is selected
RootPane = 45A specialized pane that has a glass pane and a layered pane as its children
RowHeader = 46The header for a row of data
ScrollBar = 47An object usually used to allow a user to incrementally view a large amount of data.
ScrollPane = 48An object that allows a user to incrementally view a large amount of information
Separator = 49An object usually contained in a menu to provide a visible and logical separation of the contents in a menu
Slider = 50An object that allows the user to select from a bounded range
SplitPane = 51A specialized panel that presents two other panels at the same time
SpinButton = 52An object used to get an integer or floating point number from the user
Statusbar = 53An object which reports messages of minor importance to the user
Table = 54An object used to represent information in terms of rows and columns
TableCell = 55A cell in a table
TableColumnHeader = 56The header for a column of a table
TableRowHeader = 57The header for a row of a table
TearOffMenuItem = 58A menu item used to tear off and reattach its menu
Terminal = 59An object that represents an accessible terminal. (Since: 0.6)
Text = 60An interactive widget that supports multiple lines of text and optionally accepts user input, but whose purpose is not to solicit user input. Thus ATKROLETEXT is appropriate for the text view in a ...
ToggleButton = 61A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state
ToolBar = 62A bar or palette usually composed of push buttons or toggle buttons
ToolTip = 63An object that provides information about another object
Tree = 64An object used to represent hierarchical information to the user
TreeTable = 65An object capable of expanding and collapsing rows as well as showing multiple columns of data. (Since: 0.7)
Unknown = 66The object contains some Accessible information, but its role is not known
Viewport = 67An object usually used in a scroll pane
Window = 68A top level window with no title or border.
Header = 69An object that serves as a document header. (Since: 1.1.1)
Footer = 70An object that serves as a document footer. (Since: 1.1.1)
Paragraph = 71An object which is contains a paragraph of text content. (Since: 1.1.1)
Ruler = 72An object which describes margins and tab stops, etc. for text objects which it controls (should have CONTROLLER_FOR relation to such). (Since: 1.1.1)
Application = 73The object is an application object, which may contain @ATKROLEFRAME objects or other types of accessibles. The root accessible of any application's ATK hierarchy should have ATKROLEAPPLICATION. ...
Autocomplete = 74The object is a dialog or list containing items for insertion into an entry widget, for instance a list of words for completion of a text entry. (Since: 1.3)
EditBar = 75The object is an editable text object in a toolbar. (Since: 1.5)
Embedded = 76The object is an embedded container within a document or panel. This role is a grouping "hint" indicating that the contained objects share a context. (Since: 1.7.2)
Entry = 77The object is a component whose textual content may be entered or modified by the user, provided @ATKSTATEEDITABLE is present. (Since: 1.11)
Chart = 78The object is a graphical depiction of quantitative data. It may contain multiple subelements whose attributes and/or description may be queried to obtain both the quantitative data and information...
Caption = 79The object contains descriptive information, usually textual, about another user interface element such as a table, chart, or image. (Since: 1.11)
DocumentFrame = 80The object is a visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be ...
Heading = 81The object serves as a heading for content which follows it in a document. The 'heading level' of the heading, if availabe, may be obtained by querying the object's attributes.
Page = 82The object is a containing instance which encapsulates a page of information. @ATKROLEPAGE is used in documents and content which support a paginated navigation model. (Since: 1.11)
Section = 83The object is a containing instance of document content which constitutes a particular 'logical' section of the document. The type of content within a section, and the nature of the section divisio...
RedundantObject = 84The object is redundant with another object in the hierarchy, and is exposed for purely technical reasons. Objects of this role should normally be ignored by clients. (Since: 1.11)
Form = 85The object is a container for form controls, for instance as part of a web form or user-input form within a document. This role is primarily a tag/convenience for clients when navigating complex d...
Link = 86The object is a hypertext anchor, i.e. a "link" in a hypertext document. Such objects are distinct from 'inline' content which may also use the Hypertext/Hyperlink interfaces to indicate the range...
InputMethodWindow = 87The object is a window or similar viewport which is used to allow composition or input of a 'complex character', in other words it is an "input method window." (Since: 1.12.1)
TableRow = 88A row in a table. (Since: 2.1.0)
TreeItem = 89An object that represents an element of a tree. (Since: 2.1.0)
DocumentSpreadsheet = 90A document frame which contains a spreadsheet. (Since: 2.1.0)
DocumentPresentation = 91A document frame which contains a presentation or slide content. (Since: 2.1.0)
DocumentText = 92A document frame which contains textual content, such as found in a word processing application. (Since: 2.1.0)
DocumentWeb = 93A document frame which contains HTML or other markup suitable for display in a web browser. (Since: 2.1.0)
DocumentEmail = 94A document frame which contains email content to be displayed or composed either in plain text or HTML. (Since: 2.1.0)
Comment = 95An object found within a document and designed to present a comment, note, or other annotation. In some cases, this object might not be visible until activated. (Since: 2.1.0)
ListBox = 96A non-collapsible list of choices the user can select from. (Since: 2.1.0)
Grouping = 97A group of related widgets. This group typically has a label. (Since: 2.1.0)
ImageMap = 98An image map object. Usually a graphic with multiple hotspots, where each hotspot can be activated resulting in the loading of another document or section of a document. (Since: 2.1.0)
Notification = 99A transitory object designed to present a message to the user, typically at the desktop level rather than inside a particular application. (Since: 2.1.0)
InfoBar = 100An object designed to present a message to the user within an existing window. (Since: 2.1.0)
LevelBar = 101A bar that serves as a level indicator to, for instance, show the strength of a password or the state of a battery. (Since: 2.7.3)
TitleBar = 102A bar that serves as the title of a window or a dialog. (Since: 2.12)
BlockQuote = 103An object which contains a text section that is quoted from another source. (Since: 2.12)
Audio = 104An object which represents an audio element. (Since: 2.12)
Video = 105An object which represents a video element. (Since: 2.12)
Definition = 106A definition of a term or concept. (Since: 2.12)
Article = 107A section of a page that consists of a composition that forms an independent part of a document, page, or site. Examples: A blog entry, a news story, a forum post. (Since: 2.12)
Landmark = 108A region of a web page intended as a navigational landmark. This is designed to allow Assistive Technologies to provide quick navigation among key regions within a document. (Since: 2.12)
Log = 109A text widget or container holding log content, such as chat history and error logs. In this role there is a relationship between the arrival of new items in the log and the reading order. The log ...
Marquee = 110A container where non-essential information changes frequently. Common usages of marquee include stock tickers and ad banners. The primary difference between a marquee and a log is that logs usuall...
Math = 111A text widget or container that holds a mathematical expression. (Since: 2.12)
Rating = 112A widget whose purpose is to display a rating, such as the number of stars associated with a song in a media player. Objects of this role should also implement AtkValue. (Since: 2.12)
Timer = 113An object containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point. (Since: 2.12)
DescriptionList = 114An object that represents a list of term-value groups. A term-value group represents a individual description and consist of one or more names (ATKROLEDESCRIPTIONTERM) followed by one or more value...
DescriptionTerm = 115An object that represents a term or phrase with a corresponding definition. (Since: 2.12)
DescriptionValue = 116An object that represents the description, definition or value of a term. (Since: 2.12)
Static = 117A generic non-container object whose purpose is to display a brief amount of information to the user and whose role is known by the implementor but lacks semantic value for the user. Examples in wh...
MathFraction = 118An object that represents a mathematical fraction. (Since: 2.16)
MathRoot = 119An object that represents a mathematical expression displayed with a radical. (Since: 2.16)
Subscript = 120An object that contains text that is displayed as a subscript. (Since: 2.16)
Superscript = 121An object that contains text that is displayed as a superscript. (Since: 2.16)
Footnote = 122An object that contains the text of a footnote. (Since: 2.26)
ContentDeletion = 123Content previously deleted or proposed to be deleted, e.g. in revision history or a content view providing suggestions from reviewers. (Since: 2.34)
ContentInsertion = 124Content previously inserted or proposed to be inserted, e.g. in revision history or a content view providing suggestions from reviewers. (Since: 2.34)
Mark = 125A run of content that is marked or highlighted, such as for reference purposes, or to call it out as having a special purpose. If the marked content has an associated section in the document elabor...
Suggestion = 126A container for content that is called out as a proposed change from the current version of the document, such as by a reviewer of the content. This role should include either [atk.types.Role.Conte...
PushButtonMenu = 127A specialized push button to open a menu. (Since: 2.46)
LastDefined = 128not a valid role, used for finding end of the enumeration

Specifies where an object should be placed on the screen when using scroll_to.

TopLeft = 0Scroll the object vertically and horizontally to bring its top left corner to the top left corner of the window.
BottomRight = 1Scroll the object vertically and horizontally to bring its bottom right corner to the bottom right corner of the window.
TopEdge = 2Scroll the object vertically to bring its top edge to the top edge of the window.
BottomEdge = 3Scroll the object vertically to bring its bottom edge to the bottom edge of the window.
LeftEdge = 4Scroll the object vertically and horizontally to bring its left edge to the left edge of the window.
RightEdge = 5Scroll the object vertically and horizontally to bring its right edge to the right edge of the window.
Anywhere = 6Scroll the object vertically and horizontally so that as much as possible of the object becomes visible. The exact placement is determined by the application.

The possible types of states of an object

Invalid = 0Indicates an invalid state - probably an error condition.
Active = 1Indicates a window is currently the active window, or an object is the active subelement within a container or table. ATKSTATEACTIVE should not be used for objects which have ATKSTATEFOCUSABLE or A...
Armed = 2Indicates that the object is 'armed', i.e. will be activated by if a pointer button-release event occurs within its bounds. Buttons often enter this state when a pointer click occurs within their ...
Busy = 3Indicates the current object is busy, i.e. onscreen representation is in the process of changing, or the object is temporarily unavailable for interaction due to activity already in progress. This...
Checked = 4Indicates this object is currently checked, for instance a checkbox is 'non-empty'.
Defunct = 5Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed)
Editable = 6Indicates that this object can contain text, and that the user can change the textual contents of this object by editing those contents directly. For an object which is expected to be editable due ...
Enabled = 7Indicates that this object is enabled, i.e. that it currently reflects some application state. Objects that are "greyed out" may lack this state, and may lack the STATESENSITIVE if direct user inte...
Expandable = 8Indicates this object allows progressive disclosure of its children
Expanded = 9Indicates this object its expanded - see ATKSTATEEXPANDABLE above
Focusable = 10Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus
Focused = 11Indicates this object currently has the keyboard focus
Horizontal = 12Indicates the orientation of this object is horizontal; used, for instance, by objects of ATKROLESCROLL_BAR. For objects where vertical/horizontal orientation is especially meaningful.
Iconified = 13Indicates this object is minimized and is represented only by an icon
Modal = 14Indicates something must be done with this object before the user can interact with an object in a different window
MultiLine = 15Indicates this (text) object can contain multiple lines of text
Multiselectable = 16Indicates this object allows more than one of its children to be selected at the same time, or in the case of text objects, that the object supports non-contiguous text selections.
Opaque = 17Indicates this object paints every pixel within its rectangular region.
Pressed = 18Indicates this object is currently pressed.
Resizable = 19Indicates the size of this object is not fixed
Selectable = 20Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected
Selected = 21Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected
Sensitive = 22Indicates this object is sensitive, e.g. to user interaction. STATESENSITIVE usually accompanies STATEENABLED for user-actionable controls, but may be found in the absence of STATEENABLED if the cu...
Showing = 23Indicates this object, the object's parent, the object's parent's parent, and so on, are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose be...
SingleLine = 24Indicates this (text) object can contain only a single line of text
Stale = 25Indicates that the information returned for this object may no longer be synchronized with the application state. This is implied if the object has STATE_TRANSIENT, and can also occur towards the ...
Transient = 26Indicates this object is transient, i.e. a snapshot which may not emit events when its state changes. Data from objects with ATKSTATETRANSIENT should not be cached, since there may be no notificat...
Vertical = 27Indicates the orientation of this object is vertical
Visible = 28Indicates this object is visible, e.g. has been explicitly marked for exposure to the user. *note*: [atk.types.StateType.Visible] is no guarantee that the object is actually unobscured on the scree...
ManagesDescendants = 29Indicates that "active-descendant-changed" event is sent when children become 'active' (i.e. are selected or navigated to onscreen). Used to prevent need to enumerate all children in very large con...
Indeterminate = 30Indicates that the value, or some other quantifiable property, of this AtkObject cannot be fully determined. In the case of a large data set in which the total number of items in that set is unknow...
Truncated = 31Indicates that an object is truncated, e.g. a text value in a speradsheet cell.
Required = 32Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface.
InvalidEntry = 33Indicates that the object has encountered an error condition due to failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input.
SupportsAutocompletion = 34Indicates that the object in question implements some form of ¨typeahead¨ or pre-selection behavior whereby entering the first character of one or more sub-elements causes those elements to scrol...
SelectableText = 35Indicates that the object in question supports text selection. It should only be exposed on objects which implement the Text interface, in order to distinguish this state from @ATKSTATESELECTABLE, ...
Default = 36Indicates that the object is the "default" active component, i.e. the object which is activated by an end-user press of the "Enter" or "Return" key. Typically a "close" or "submit" button.
Animated = 37Indicates that the object changes its appearance dynamically as an inherent part of its presentation. This state may come and go if an object is only temporarily animated on the way to a 'final' o...
Visited = 38Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited".
Checkable = 39Indicates this object has the potential to be checked, such as a checkbox or toggle-able table cell. @Since: ATK-2.12
HasPopup = 40Indicates that the object has a popup context menu or sub-level menu which may or may not be showing. This means that activation renders conditional content. Note that ordinary tooltips are not co...
HasTooltip = 41Indicates this object has a tooltip. @Since: ATK-2.16
ReadOnly = 42Indicates that a widget which is ENABLED and SENSITIVE has a value which can be read, but not modified, by the user. Note that this state should only be applied to widget types whose value is norma...
Collapsed = 43Indicates this object is collapsed. @Since: ATK-2.38
LastDefined = 44Not a valid state, used for finding end of enumeration

Describes the text attributes supported

Invalid = 0Invalid attribute, like bad spelling or grammar.
LeftMargin = 1The pixel width of the left margin
RightMargin = 2The pixel width of the right margin
Indent = 3The number of pixels that the text is indented
Invisible = 4Either "true" or "false" indicating whether text is visible or not
Editable = 5Either "true" or "false" indicating whether text is editable or not
PixelsAboveLines = 6Pixels of blank space to leave above each newline-terminated line.
PixelsBelowLines = 7Pixels of blank space to leave below each newline-terminated line.
PixelsInsideWrap = 8Pixels of blank space to leave between wrapped lines inside the same newline-terminated line (paragraph).
BgFullHeight = 9"true" or "false" whether to make the background color for each character the height of the highest font used on the current line, or the height of the font used for the current character.
Rise = 10Number of pixels that the characters are risen above the baseline. See also ATKTEXTATTRTEXTPOSITION.
Underline = 11"none", "single", "double", "low", or "error"
Strikethrough = 12"true" or "false" whether the text is strikethrough
Size = 13The size of the characters in points. eg: 10
Scale = 14The scale of the characters. The value is a string representation of a double
Weight = 15The weight of the characters.
Language = 16The language used
FamilyName = 17The font family name
BgColor = 18The background color. The value is an RGB value of the format "`u`,`u`,`u`"
FgColor = 19The foreground color. The value is an RGB value of the format "`u`,`u`,`u`"
BgStipple = 20"true" if a #GdkBitmap is set for stippling the background color.
FgStipple = 21"true" if a #GdkBitmap is set for stippling the foreground color.
WrapMode = 22The wrap mode of the text, if any. Values are "none", "char", "word", or "word_char".
Direction = 23The direction of the text, if set. Values are "none", "ltr" or "rtl"
Justification = 24The justification of the text, if set. Values are "left", "right", "center" or "fill"
Stretch = 25The stretch of the text, if set. Values are "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded" or "ultraexpanded"
Variant = 26The capitalization variant of the text, if set. Values are "normal" or "small_caps"
Style = 27The slant style of the text, if set. Values are "normal", "oblique" or "italic"
TextPosition = 28The vertical position with respect to the baseline. Values are "baseline", "super", or "sub". Note that a super or sub text attribute refers to position with respect to the baseline of the prior ch...
LastDefined = 29not a valid text attribute, used for finding end of enumeration

Text boundary types used for specifying boundaries for regions of text. This enumeration is deprecated since 2.9.4 and should not be used. Use AtkTextGranularity with #atk_text_get_string_at_offset instead.

Char = 0Boundary is the boundary between characters (including non-printing characters)
WordStart = 1Boundary is the start (i.e. first character) of a word.
WordEnd = 2Boundary is the end (i.e. last character) of a word.
SentenceStart = 3Boundary is the first character in a sentence.
SentenceEnd = 4Boundary is the last (terminal) character in a sentence; in languages which use "sentence stop" punctuation such as English, the boundary is thus the '.', '?', or similar terminal punctuation chara...
LineStart = 5Boundary is the initial character of the content or a character immediately following a newline, linefeed, or return character.
LineEnd = 6Boundary is the linefeed, or return character.

Describes the type of clipping required.

None = 0No clipping to be done
Min = 1Text clipped by min coordinate is omitted
Max = 2Text clipped by max coordinate is omitted
Both = 3Only text fully within mix/max bound is retained

Text granularity types used for specifying the granularity of the region of text we are interested in.

Char = 0Granularity is defined by the boundaries between characters (including non-printing characters)
Word = 1Granularity is defined by the boundaries of a word, starting at the beginning of the current word and finishing at the beginning of the following one, if present.
Sentence = 2Granularity is defined by the boundaries of a sentence, starting at the beginning of the current sentence and finishing at the beginning of the following one, if present.
Line = 3Granularity is defined by the boundaries of a line, starting at the beginning of the current line and finishing at the beginning of the following one, if present.
Paragraph = 4Granularity is defined by the boundaries of a paragraph, starting at the beginning of the current paragraph and finishing at the beginning of the following one, if present.

Default types for a given value. Those are defined in order to easily get localized strings to describe a given value or a given subrange, using [atk.global.valueTypeGetLocalizedName].

VeryWeak = 0
Weak = 1
Acceptable = 2
Strong = 3
VeryStrong = 4
VeryLow = 5
Low = 6
Medium = 7
High = 8
VeryHigh = 9
VeryBad = 10
Bad = 11
Good = 12
VeryGood = 13
Best = 14
LastDefined = 15
structAtkAction

The ATK interface provided by UI components which the user can activate/interact with.

#AtkAction should be implemented by instances of #AtkObject classes with which the user can interact directly, i.e. buttons, checkboxes, scrollbars, e.g. components which are not "passive" providers of UI information.

Exceptions: when the user interaction is already covered by another appropriate interface such as #AtkEditableText (insert/delete text, etc.) or #AtkValue (set value) then these actions should not be exposed by #AtkAction as well.

Though most UI interactions on components should be invocable via keyboard as well as mouse, there will generally be a close mapping between "mouse actions" that are possible on a component and the AtkActions. Where mouse and keyboard actions are redundant in effect, #AtkAction should expose only one action rather than exposing redundant actions if possible. By convention we have been using "mouse centric" terminology for #AtkAction names.

The #AtkAction interface should be supported by any object that can perform one or more actions. The interface provides the standard mechanism for an assistive technology to determine what those actions are as well as tell the object to perform them. Any object that can be manipulated should support this interface.

Fields
gboolean function(AtkAction * action, int i) doAction
int function(AtkAction * action) getNActions
const(char) * function(AtkAction * action, int i) getDescription
const(char) * function(AtkAction * action, int i) getName
const(char) * function(AtkAction * action, int i) getKeybinding
gboolean function(AtkAction * action, int i, const(char) * desc) setDescription
const(char) * function(AtkAction * action, int i) getLocalizedName

AtkAttribute is a string name/value pair representing a generic attribute. This can be used to expose additional information from an accessible object as a whole (see [atk.object.ObjectWrap.getAttributes]) or an document (see [atk.document.Document.getAttributes]). In the case of text attributes (see [atk.text.Text.getDefaultAttributes]), #AtkTextAttribute enum defines all the possible text attribute names. You can use [atk.global.textAttributeGetName] to get the string name from the enum value. See also [atk.global.textAttributeForName] and [atk.global.textAttributeGetValue] for more information.

A string name/value pair representing a generic attribute.

Fields
char * nameThe attribute name.
char * valuethe value of the attribute, represented as a string.

The ATK interface provided by UI components which occupy a physical area on the screen. which the user can activate/interact with.

#AtkComponent should be implemented by most if not all UI elements with an actual on-screen presence, i.e. components which can be said to have a screen-coordinate bounding box. Virtually all widgets will need to have #AtkComponent implementations provided for their corresponding #AtkObject class. In short, only UI elements which are not GUI elements will omit this ATK interface.

A possible exception might be textual information with a transparent background, in which case text glyph bounding box information is provided by #AtkText.

The AtkComponent interface should be supported by any object that is rendered on the screen. The interface provides the standard mechanism for an assistive technology to determine and set the graphical representation of an object.

Fields
uint function(AtkComponent * component, AtkFocusHandler handler) addFocusHandlerThis virtual function is deprecated since 2.9.4 and it should not be overriden. See [atk.component.Component.addFocusHandler] for more information.
gboolean function(AtkComponent * component, int x, int y, AtkCoordType coordType) contains
AtkObject * function(AtkComponent * component, int x, int y, AtkCoordType coordType) refAccessibleAtPoint
void function(AtkComponent * component, int * x, int * y, int * width, int * height, AtkCoordType coordType) getExtents
void function(AtkComponent * component, int * x, int * y, AtkCoordType coordType) getPositionThis virtual function is deprecated since 2.12 and it should not be overriden. Use @AtkComponentIface.get_extents instead.
void function(AtkComponent * component, int * width, int * height) getSizeThis virtual function is deprecated since 2.12 and it should not be overriden. Use @AtkComponentIface.get_extents instead.
gboolean function(AtkComponent * component) grabFocus
void function(AtkComponent * component, uint handlerId) removeFocusHandlerThis virtual function is deprecated since 2.9.4 and it should not be overriden. See [atk.component.Component.removeFocusHandler] for more information.
gboolean function(AtkComponent * component, int x, int y, int width, int height, AtkCoordType coordType) setExtents
gboolean function(AtkComponent * component, int x, int y, AtkCoordType coordType) setPosition
gboolean function(AtkComponent * component, int width, int height) setSize
AtkLayer function(AtkComponent * component) getLayer
int function(AtkComponent * component) getMdiZorder
void function(AtkComponent * component, AtkRectangle * bounds) boundsChanged
double function(AtkComponent * component) getAlpha
gboolean function(AtkComponent * component, AtkScrollType type) scrollTo
gboolean function(AtkComponent * component, AtkCoordType coords, int x, int y) scrollToPoint

The ATK interface which represents the toplevel container for document content.

The AtkDocument interface should be supported by any object whose content is a representation or view of a document. The AtkDocument interface should appear on the toplevel container for the document content; however AtkDocument instances may be nested (i.e. an AtkDocument may be a descendant of another AtkDocument) in those cases where one document contains "embedded content" which can reasonably be considered a document in its own right.

Fields
const(char) * function(AtkDocument * document) getDocumentTypegets a string indicating the document type. This virtual function is deprecated since 2.12 and it should not be overriden.
void * function(AtkDocument * document) getDocumenta #GObject instance that implements AtkDocumentIface. This virtual method is deprecated since 2.12 and it should not be overriden.
const(char) * function(AtkDocument * document) getDocumentLocalegets locale. This virtual function is deprecated since 2.7.90 and it should not be overriden.
AtkAttributeSet * function(AtkDocument * document) getDocumentAttributesgets an AtkAttributeSet which describes document-wide attributes as name-value pairs.
const(char) * function(AtkDocument * document, const(char) * attributeName) getDocumentAttributeValuereturns a string value assocciated with the named attribute for this document, or NULL
gboolean function(AtkDocument * document, const(char) * attributeName, const(char) * attributeValue) setDocumentAttributesets the value of an attribute. Returns TRUE on success, FALSE otherwise
int function(AtkDocument * document) getCurrentPageNumbergets the current page number. Since 2.12
int function(AtkDocument * document) getPageCountgets the page count of the document. Since 2.12
GArray * function(AtkDocument * document) getTextSelections
gboolean function(AtkDocument * document, GArray * selections) setTextSelections

The ATK interface implemented by components containing user-editable text content.

#AtkEditableText should be implemented by UI components which contain text which the user can edit, via the #AtkObject corresponding to that component (see #AtkObject).

#AtkEditableText is a subclass of #AtkText, and as such, an object which implements #AtkEditableText is by definition an #AtkText implementor as well.

See iface@AtkText

Fields
GTypeInterface parentInterface
gboolean function(AtkEditableText * text, AtkAttributeSet * attribSet, int startOffset, int endOffset) setRunAttributes
void function(AtkEditableText * text, const(char) * string_) setTextContents
void function(AtkEditableText * text, const(char) * string_, int length, int * position) insertText
void function(AtkEditableText * text, int startPos, int endPos) copyText
void function(AtkEditableText * text, int startPos, int endPos) cutText
void function(AtkEditableText * text, int startPos, int endPos) deleteText
void function(AtkEditableText * text, int position) pasteText

This object class is derived from AtkObject and can be used as a basis implementing accessible objects.

This object class is derived from AtkObject. It can be used as a basis for implementing accessible objects for GObjects which are not derived from GtkWidget. One example of its use is in providing an accessible object for GnomeCanvasItem in the GAIL library.

Fields
AtkObject parent

An ATK object which encapsulates a link or set of links in a hypertext document.

An ATK object which encapsulates a link or set of links (for instance in the case of client-side image maps) in a hypertext document. It may implement the AtkAction interface. AtkHyperlink may also be used to refer to inline embedded content, since it allows specification of a start and end offset within the host AtkHypertext object.

Fields
GObject parent
Fields
char * function(AtkHyperlink * link, int i) getUri
AtkObject * function(AtkHyperlink * link, int i) getObject
int function(AtkHyperlink * link) getEndIndex
int function(AtkHyperlink * link) getStartIndex
gboolean function(AtkHyperlink * link) isValid
int function(AtkHyperlink * link) getNAnchors
uint function(AtkHyperlink * link) linkState
gboolean function(AtkHyperlink * link) isSelectedLink
void function(AtkHyperlink * link) linkActivated

A queryable interface which allows AtkHyperlink instances associated with an AtkObject to be obtained. AtkHyperlinkImpl corresponds to AT-SPI's Hyperlink interface, and differs from AtkHyperlink in that AtkHyperlink is an object type, rather than an interface, and thus cannot be directly queried. FTW

Fields
AtkHyperlink * function(AtkHyperlinkImpl * impl) getHyperlink

The ATK interface which provides standard mechanism for manipulating hyperlinks.

An interface used for objects which implement linking between multiple resource or content locations, or multiple 'markers' within a single document. A Hypertext instance is associated with one or more Hyperlinks, which are associated with particular offsets within the Hypertext's included content. While this interface is derived from Text, there is no requirement that Hypertext instances have textual content; they may implement Image as well, and Hyperlinks need not have non-zero text offsets.

Fields
AtkHyperlink * function(AtkHypertext * hypertext, int linkIndex) getLink
int function(AtkHypertext * hypertext) getNLinks
int function(AtkHypertext * hypertext, int charIndex) getLinkIndex
void function(AtkHypertext * hypertext, int linkIndex) linkSelected
structAtkImage

The ATK Interface implemented by components which expose image or pixmap content on-screen.

#AtkImage should be implemented by #AtkObject subtypes on behalf of components which display image/pixmap information onscreen, and which provide information (other than just widget borders, etc.) via that image content. For instance, icons, buttons with icons, toolbar elements, and image viewing panes typically should implement #AtkImage.

#AtkImage primarily provides two types of information: coordinate information (useful for screen review mode of screenreaders, and for use by onscreen magnifiers), and descriptive information. The descriptive information is provided for alternative, text-only presentation of the most significant information present in the image.

Fields
void function(AtkImage * image, int * x, int * y, AtkCoordType coordType) getImagePosition
const(char) * function(AtkImage * image) getImageDescription
void function(AtkImage * image, int * width, int * height) getImageSize
gboolean function(AtkImage * image, const(char) * description) setImageDescription
const(char) * function(AtkImage * image) getImageLocale

The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor);

Encapsulates information about a key event.

Fields
int typeAn AtkKeyEventType, generally one of ATKKEYEVENTPRESS or ATKKEYEVENTRELEASE
uint stateA bitmask representing the state of the modifier keys immediately after the event takes place. The meaning of the bits is currently defined to match the bitmask used by GDK in GdkEventType.state, s...
uint keyvalA guint representing a keysym value corresponding to those used by GDK and X11: see /usr/X11/include/keysymdef.h.
int lengthThe length of member #string.
char * string_A string containing one of the following: either a string approximating the text that would result from this keypress, if the key is a control or graphic character, or a symbolic name for this keyp...
ushort keycodeThe raw hardware code that generated the key event. This field is raraly useful.
uint timestampA timestamp in milliseconds indicating when the event occurred. These timestamps are relative to a starting point which should be considered arbitrary, and only used to compare the dispatch times o...
structAtkMisc

A set of ATK utility functions for thread locking

A set of utility functions for thread locking. This interface and all his related methods are deprecated since 2.12.

Fields
GObject parent

Usage of AtkMisc is deprecated since 2.12 and heavily discouraged.

Fields
void function(AtkMisc * misc) threadsEnterThis virtual function is deprecated since 2.12 and it should not be overriden.
void function(AtkMisc * misc) threadsLeaveThis virtual function is deprecated sice 2.12 and it should not be overriden.
void *[32] vfuncs

An AtkObject which purports to implement all ATK interfaces.

An AtkNoOpObject is an AtkObject which purports to implement all ATK interfaces. It is the type of AtkObject which is created if an accessible object is requested for an object type for which no factory type is specified.

Fields
AtkObject parent
Fields
AtkObjectClass parentClass

The AtkObjectFactory which creates an AtkNoOpObject.

The AtkObjectFactory which creates an AtkNoOpObject. An instance of this is created by an AtkRegistry if no factory type has not been specified to create an accessible object of a particular type.

Fields
Fields
const(char) * function(AtkObject * accessible) getName
const(char) * function(AtkObject * accessible) getDescription
AtkObject * function(AtkObject * accessible) getParent
int function(AtkObject * accessible) getNChildren
AtkObject * function(AtkObject * accessible, int i) refChild
int function(AtkObject * accessible) getIndexInParent
AtkRelationSet * function(AtkObject * accessible) refRelationSet
AtkRole function(AtkObject * accessible) getRole
AtkLayer function(AtkObject * accessible) getLayer
int function(AtkObject * accessible) getMdiZorder
AtkStateSet * function(AtkObject * accessible) refStateSet
void function(AtkObject * accessible, const(char) * name) setName
void function(AtkObject * accessible, const(char) * description) setDescription
void function(AtkObject * accessible, AtkObject * parent) setParent
void function(AtkObject * accessible, AtkRole role) setRole
uint function(AtkObject * accessible, AtkPropertyChangeHandler * handler) connectPropertyChangeHandlerspecifies a function to be called when a property changes value. This virtual function is deprecated since 2.12 and it should not be overriden. Connect directly to property-change or notify signal ...
void function(AtkObject * accessible, uint handlerId) removePropertyChangeHandlerremoves a property changed handler as returned by @connectpropertychange_handler. This virtual function is deprecated sice 2.12 and it should not be overriden.
void function(AtkObject * accessible, void * data) initialize
void function(AtkObject * accessible, uint changeIndex, void * changedChild) childrenChanged
void function(AtkObject * accessible, gboolean focusIn) focusEventThe signal handler which is executed when there is a focus event for an object. This virtual function is deprecated since 2.9.4 and it should not be overriden. Use the #AtkObject::state-change "foc...
void function(AtkObject * accessible, AtkPropertyValues * values) propertyChange
void function(AtkObject * accessible, const(char) * name, gboolean stateSet) stateChange
void function(AtkObject * accessible) visibleDataChanged
void function(AtkObject * accessible, void * * child) activeDescendantChanged
AtkAttributeSet * function(AtkObject * accessible) getAttributes
const(char) * function(AtkObject * accessible) getObjectLocale

The base object class for a factory used to create accessible objects for objects of a specific GType.

This class is the base object class for a factory used to create an accessible object for a specific GType. The function [atk.registry.Registry.setFactoryType] is normally called to store in the registry the factory type to be used to create an accessible of a particular GType.

Fields
GObject parent
Fields
GObjectClass parentClass
AtkObject * function(GObject * obj) createAccessible
void function(AtkObjectFactory * factory) invalidate
GType function() getAccessibleType
structAtkObject

The base object class for the Accessibility Toolkit API.

This class is the primary class for accessibility support via the Accessibility ToolKit (ATK). Objects which are instances of #AtkObject (or instances of AtkObject-derived types) are queried for properties which relate basic (and generic) properties of a UI component such as name and description. Instances of #AtkObject may also be queried as to whether they implement other ATK interfaces (e.g. #AtkAction, #AtkComponent, etc.), as appropriate to the role which a given UI component plays in a user interface.

All UI components in an application which provide useful information or services to the user must provide corresponding #AtkObject instances on request (in GTK+, for instance, usually on a call to #gtk_widget_get_accessible ()), either via ATK support built into the toolkit for the widget class or ancestor class, or in the case of custom widgets, if the inherited #AtkObject implementation is insufficient, via instances of a new #AtkObject subclass.

See class@AtkObjectFactory, class@AtkRegistry. (GTK+ users see also #GtkAccessible).

Fields
GObject parent
char * description
char * name
AtkObject * accessibleParent
AtkRole role
AtkRelationSet * relationSet
AtkLayer layer
structAtkPlug

Toplevel for embedding into other processes

See class@AtkSocket

Fields
AtkObject parent
Fields
AtkObjectClass parentClass
char * function(AtkPlug * obj) getObjectId

Note

@old_value field of #AtkPropertyValues will not contain a

valid value. This is a field defined with the purpose of contain the previous value of the property, but is not used anymore.

Fields
const(char) * propertyNameThe name of the ATK property which has changed.
GValue oldValueNULL. This field is not used anymore.
GValue newValueThe new value of the named property.
structAtkRange

A given range or subrange, to be used with #AtkValue

#AtkRange are used on #AtkValue, in order to represent the full range of a given component (for example an slider or a range control), or to define each individual subrange this full range is splitted if available. See #AtkValue documentation for further details.

A data structure for holding a rectangle. Those coordinates are relative to the component top-level parent.

Fields
int xX coordinate of the left side of the rectangle.
int yY coordinate of the top side of the rectangle.
int widthwidth of the rectangle.
int heightheight of the rectangle.

An object used to store the GType of the factories used to create an accessible object for an object of a particular GType.

The AtkRegistry is normally used to create appropriate ATK "peers" for user interface components. Application developers usually need only interact with the AtkRegistry by associating appropriate ATK implementation classes with GObject classes via the atk_registry_set_factory_type call, passing the appropriate GType for application custom widget classes.

Fields
GObject parent
GHashTable * factoryTypeRegistry
GHashTable * factorySingletonCache
Fields
GObjectClass parentClass

An object used to describe a relation between a object and one or more other objects.

An AtkRelation describes a relation between an object and one or more other objects. The actual relations that an object has with other objects are defined as an AtkRelationSet, which is a set of AtkRelations.

Fields
GObject parent
GPtrArray * target
AtkRelationType relationship
Fields

A set of AtkRelations, normally the set of AtkRelations which an AtkObject has.

The AtkRelationSet held by an object establishes its relationships with objects beyond the normal "parent/child" hierarchical relationships that all user interface objects have. AtkRelationSets establish whether objects are labelled or controlled by other components, share group membership with other components (for instance within a radio-button group), or share content which "flows" between them, among other types of possible relationships.

Fields
GObject parent
GPtrArray * relations

The ATK interface implemented by container objects whose #AtkObject children can be selected.

#AtkSelection should be implemented by UI components with children which are exposed by #atk_object_ref_child and #atk_object_get_n_children, if the use of the parent UI component ordinarily involves selection of one or more of the objects corresponding to those #AtkObject children - for example, selectable lists.

Note that other types of "selection" (for instance text selection) are accomplished a other ATK interfaces - #AtkSelection is limited to the selection/deselection of children.

Fields
gboolean function(AtkSelection * selection, int i) addSelection
gboolean function(AtkSelection * selection) clearSelection
AtkObject * function(AtkSelection * selection, int i) refSelection
int function(AtkSelection * selection) getSelectionCount
gboolean function(AtkSelection * selection, int i) isChildSelected
gboolean function(AtkSelection * selection, int i) removeSelection
gboolean function(AtkSelection * selection) selectAllSelection
void function(AtkSelection * selection) selectionChanged
structAtkSocket

Container for AtkPlug objects from other processes

Together with #AtkPlug, #AtkSocket provides the ability to embed accessibles from one process into another in a fashion that is transparent to assistive technologies. #AtkSocket works as the container of #AtkPlug, embedding it using the method [atk.socket.Socket.embed]. Any accessible contained in the #AtkPlug will appear to the assistive technologies as being inside the application that created the #AtkSocket.

The communication between a #AtkSocket and a #AtkPlug is done by the IPC layer of the accessibility framework, normally implemented by the D-Bus based implementation of AT-SPI (at-spi2). If that is the case, at-spi-atk2 is the responsible to implement the abstract methods [atk.plug.Plug.getId] and [atk.socket.Socket.embed], so an ATK implementor shouldn't reimplement them. The process that contains the #AtkPlug is responsible to send the ID returned by atk_plug_id() to the process that contains the #AtkSocket, so it could call the method [atk.socket.Socket.embed] in order to embed it.

For the same reasons, an implementor doesn't need to implement [atk.object.ObjectWrap.getNAccessibleChildren] and [atk.object.ObjectWrap.refAccessibleChild]. All the logic related to those functions will be implemented by the IPC layer.

See class@AtkPlug

Fields
AtkObject parent
char * embeddedPlugId
Fields
AtkObjectClass parentClass
void function(AtkSocket * obj, const(char) * plugId) embed

An AtkStateSet contains the states of an object.

An AtkStateSet is a read-only representation of the full set of #AtkStates that apply to an object at a given time. This set is not meant to be modified, but rather created when #[atk.object.ObjectWrap.refStateSet] is called.

Fields
GObject parent
Fields

The ATK interface which provides access to streamable content.

An interface whereby an object allows its backing content to be streamed to clients. Typical implementors would be images or icons, HTML content, or multimedia display/rendering widgets.

Negotiation of content type is allowed. Clients may examine the backing data and transform, convert, or parse the content in order to present it in an alternate form to end-users.

The AtkStreamableContent interface is particularly useful for saving, printing, or post-processing entire documents, or for persisting alternate views of a document. If document content itself is being serialized, stored, or converted, then use of the AtkStreamableContent interface can help address performance issues. Unlike most ATK interfaces, this interface is not strongly tied to the current user-agent view of the a particular document, but may in some cases give access to the underlying model data.

Fields
int function(AtkStreamableContent * streamable) getNMimeTypes
const(char) * function(AtkStreamableContent * streamable, int i) getMimeType
GIOChannel * function(AtkStreamableContent * streamable, const(char) * mimeType) getStream
const(char) * function(AtkStreamableContent * streamable, const(char) * mimeType) getUri
structAtkTable

The ATK interface implemented for UI components which contain tabular or row/column information.

#AtkTable should be implemented by components which present elements ordered via rows and columns. It may also be used to present tree-structured information if the nodes of the trees can be said to contain multiple "columns". Individual elements of an #AtkTable are typically referred to as "cells". Those cells should implement the interface #AtkTableCell, but #Atk doesn't require them to be direct children of the current #AtkTable. They can be grand-children, grand-grand-children etc. #AtkTable provides the API needed to get a individual cell based on the row and column numbers.

Children of #AtkTable are frequently "lightweight" objects, that is, they may not have backing widgets in the host UI toolkit. They are therefore often transient.

Since tables are often very complex, #AtkTable includes provision for offering simplified summary information, as well as row and column headers and captions. Headers and captions are #AtkObjects which may implement other interfaces (#AtkText, #AtkImage, etc.) as appropriate. #AtkTable summaries may themselves be (simplified) #AtkTables, etc.

Note for implementors: in the past, #AtkTable required that all the cells should be direct children of #AtkTable, and provided some index based methods to request the cells. The practice showed that that forcing made #AtkTable implementation complex, and hard to expose other kind of children, like rows or captions. Right now, index-based methods are deprecated.

The ATK interface implemented for a cell inside a two-dimentional #AtkTable

Being #AtkTable a component which present elements ordered via rows and columns, an #AtkTableCell is the interface which each of those elements, so "cells" should implement.

See iface@AtkTable

AtkTableCell is an interface for cells inside an #AtkTable.

Fields
int function(AtkTableCell * cell) getColumnSpanvirtual function that returns the number of columns occupied by this cell accessible
GPtrArray * function(AtkTableCell * cell) getColumnHeaderCellsvirtual function that returns the column headers as an array of cell accessibles
gboolean function(AtkTableCell * cell, int * row, int * column) getPositionvirtual function that retrieves the tabular position of this cell
int function(AtkTableCell * cell) getRowSpanvirtual function that returns the number of rows occupied by this cell
GPtrArray * function(AtkTableCell * cell) getRowHeaderCellsvirtual function that returns the row headers as an array of cell accessibles
gboolean function(AtkTableCell * cell, int * row, int * column, int * rowSpan, int * columnSpan) getRowColumnSpanvirtual function that get the row an column indexes and span of this cell
AtkObject * function(AtkTableCell * cell) getTablevirtual function that returns a reference to the accessible of the containing table
Fields
AtkObject * function(AtkTable * table, int row, int column) refAt
int function(AtkTable * table, int row, int column) getIndexAt
int function(AtkTable * table, int index) getColumnAtIndex
int function(AtkTable * table, int index) getRowAtIndex
int function(AtkTable * table) getNColumns
int function(AtkTable * table) getNRows
int function(AtkTable * table, int row, int column) getColumnExtentAt
int function(AtkTable * table, int row, int column) getRowExtentAt
AtkObject * function(AtkTable * table) getCaption
const(char) * function(AtkTable * table, int column) getColumnDescription
AtkObject * function(AtkTable * table, int column) getColumnHeader
const(char) * function(AtkTable * table, int row) getRowDescription
AtkObject * function(AtkTable * table, int row) getRowHeader
AtkObject * function(AtkTable * table) getSummary
void function(AtkTable * table, AtkObject * caption) setCaption
void function(AtkTable * table, int column, const(char) * description) setColumnDescription
void function(AtkTable * table, int column, AtkObject * header) setColumnHeader
void function(AtkTable * table, int row, const(char) * description) setRowDescription
void function(AtkTable * table, int row, AtkObject * header) setRowHeader
void function(AtkTable * table, AtkObject * accessible) setSummary
int function(AtkTable * table, int * * selected) getSelectedColumns
int function(AtkTable * table, int * * selected) getSelectedRows
gboolean function(AtkTable * table, int column) isColumnSelected
gboolean function(AtkTable * table, int row) isRowSelected
gboolean function(AtkTable * table, int row, int column) isSelected
gboolean function(AtkTable * table, int row) addRowSelection
gboolean function(AtkTable * table, int row) removeRowSelection
gboolean function(AtkTable * table, int column) addColumnSelection
gboolean function(AtkTable * table, int column) removeColumnSelection
void function(AtkTable * table, int row, int numInserted) rowInserted
void function(AtkTable * table, int column, int numInserted) columnInserted
void function(AtkTable * table, int row, int numDeleted) rowDeleted
void function(AtkTable * table, int column, int numDeleted) columnDeleted
void function(AtkTable * table) rowReordered
void function(AtkTable * table) columnReordered
void function(AtkTable * table) modelChanged
structAtkText

The ATK interface implemented by components with text content.

#AtkText should be implemented by #AtkObjects on behalf of widgets that have text content which is either attributed or otherwise non-trivial. #AtkObjects whose text content is simple, unattributed, and very brief may expose that content via #atk_object_get_name instead; however if the text is editable, multi-line, typically longer than three or four words, attributed, selectable, or if the object already uses the 'name' ATK property for other information, the #AtkText interface should be used to expose the text content. In the case of editable text content, #AtkEditableText (a subtype of the #AtkText interface) should be implemented instead.

#AtkText provides not only traversal facilities and change notification for text content, but also caret tracking and glyph bounding box calculations. Note that the text strings are exposed as UTF-8, and are therefore potentially multi-byte, and caret-to-byte offset mapping makes no assumptions about the character length; also bounding box glyph-to-offset mapping may be complex for languages which use ligatures.

Fields
char * function(AtkText * text, int startOffset, int endOffset) getText
char * function(AtkText * text, int offset, AtkTextBoundary boundaryType, int * startOffset, int * endOffset) getTextAfterOffsetGets specified text. This virtual function is deprecated and it should not be overridden.
char * function(AtkText * text, int offset, AtkTextBoundary boundaryType, int * startOffset, int * endOffset) getTextAtOffsetGets specified text. This virtual function is deprecated and it should not be overridden.
dchar function(AtkText * text, int offset) getCharacterAtOffset
char * function(AtkText * text, int offset, AtkTextBoundary boundaryType, int * startOffset, int * endOffset) getTextBeforeOffsetGets specified text. This virtual function is deprecated and it should not be overridden.
int function(AtkText * text) getCaretOffset
AtkAttributeSet * function(AtkText * text, int offset, int * startOffset, int * endOffset) getRunAttributes
AtkAttributeSet * function(AtkText * text) getDefaultAttributes
void function(AtkText * text, int offset, int * x, int * y, int * width, int * height, AtkCoordType coords) getCharacterExtents
int function(AtkText * text) getCharacterCount
int function(AtkText * text, int x, int y, AtkCoordType coords) getOffsetAtPoint
int function(AtkText * text) getNSelections
char * function(AtkText * text, int selectionNum, int * startOffset, int * endOffset) getSelection
gboolean function(AtkText * text, int startOffset, int endOffset) addSelection
gboolean function(AtkText * text, int selectionNum) removeSelection
gboolean function(AtkText * text, int selectionNum, int startOffset, int endOffset) setSelection
gboolean function(AtkText * text, int offset) setCaretOffset
void function(AtkText * text, int position, int length) textChangedthe signal handler which is executed when there is a text change. This virtual function is deprecated sice 2.9.4 and it should not be overriden.
void function(AtkText * text, int location) textCaretMoved
void function(AtkText * text) textSelectionChanged
void function(AtkText * text) textAttributesChanged
void function(AtkText * text, int startOffset, int endOffset, AtkCoordType coordType, AtkTextRectangle * rect) getRangeExtents
AtkTextRange * * function(AtkText * text, AtkTextRectangle * rect, AtkCoordType coordType, AtkTextClipType xClipType, AtkTextClipType yClipType) getBoundedRanges
char * function(AtkText * text, int offset, AtkTextGranularity granularity, int * startOffset, int * endOffset) getStringAtOffsetGets a portion of the text exposed through an AtkText according to a given offset and a specific granularity, along with the start and end offsets defining the boundaries of such a portion of text.
gboolean function(AtkText * text, int startOffset, int endOffset, AtkScrollType type) scrollSubstringTo
gboolean function(AtkText * text, int startOffset, int endOffset, AtkCoordType coords, int x, int y) scrollSubstringToPoint

A structure used to describe a text range.

Fields
AtkTextRectangle boundsA rectangle giving the bounds of the text range
int startOffsetThe start offset of a AtkTextRange
int endOffsetThe end offset of a AtkTextRange
char * contentThe text in the text range

A structure used to store a rectangle used by AtkText.

Fields
int xThe horizontal coordinate of a rectangle
int yThe vertical coordinate of a rectangle
int widthThe width of a rectangle
int heightThe height of a rectangle

This structure represents a single text selection within a document. This selection is defined by two points in the content, where each one is defined by an AtkObject supporting the AtkText interface and a character offset relative to it.

The end object must appear after the start object in the accessibility tree, i.e. the end object must be reachable from the start object by navigating forward (next, first child etc).

This struct also contains a @start_is_active boolean, to communicate if the start of the selection is the active point or not.

The active point corresponds to the user's focus or point of interest. The user moves the active point to expand or collapse the range. The anchor point is the other point of the range and typically remains constant. In most cases, anchor is the start of the range and active is the end. However, when selecting backwards (e.g. pressing shift+left arrow in a text field), the start of the range is the active point, as the user moves this to manipulate the selection.

Fields
AtkObject * startObjectthe AtkText containing the start of the selection.
int startOffsetthe text offset of the beginning of the selection within @start_object.
AtkObject * endObjectthe AtkText containing the end of the selection.
int endOffsetthe text offset of the end of the selection within @end_object.
gboolean startIsActivea gboolean indicating whether the start of the selection is the active point.
structAtkUtil

A set of ATK utility functions for event and toolkit support.

A set of ATK utility functions which are used to support event registration of various types, and obtaining the 'root' accessible of a process and information about the current ATK implementation and toolkit version.

Fields
GObject parent
Fields
uint function(GSignalEmissionHook listener, const(char) * eventType) addGlobalEventListeneradds the specified function to the list of functions to be called when an ATK event occurs. ATK implementors are discouraged from reimplementing this method.
void function(uint listenerId) removeGlobalEventListenerremoves the specified function to the list of functions to be called when an ATK event occurs. ATK implementors are discouraged from reimplementing this method.
uint function(AtkKeySnoopFunc listener, void * data) addKeyEventListeneradds the specified function to the list of functions to be called when a key event occurs.
void function(uint listenerId) removeKeyEventListenerremove the specified function to the list of functions to be called when a key event occurs.
AtkObject * function() getRootgets the root accessible container for the current application.
const(char) * function() getToolkitNamegets name string for the GUI toolkit implementing ATK for this application.
const(char) * function() getToolkitVersiongets version string for the GUI toolkit implementing ATK for this application.
structAtkValue

The ATK interface implemented by valuators and components which display or select a value from a bounded range of values.

#AtkValue should be implemented for components which either display a value from a bounded range, or which allow the user to specify a value from a bounded range, or both. For instance, most sliders and range controls, as well as dials, should have #AtkObject representations which implement #AtkValue on the component's behalf. #AtKValues may be read-only, in which case attempts to alter the value return would fail.

<refsect1 id="current-value-text"> <title>On the subject of current value text</title> <para>

In addition to providing the current value, implementors can optionally provide an end-user-consumable textual description associated with this value. This description should be included when the numeric value fails to convey the full, on-screen representation seen by users.

</para> <example> <title>Password strength</title>

A password strength meter whose value changes as the user types their new password. Red is used for values less than 4.0, yellow for values between 4.0 and 7.0, and green for values greater than 7.0. In this instance, value text should be provided by the implementor. Appropriate value text would be "weak", "acceptable," and "strong" respectively.

</example>

A level bar whose value changes to reflect the battery charge. The color remains the same regardless of the charge and there is no on-screen text reflecting the fullness of the battery. In this case, because the position within the bar is the only indication the user has of the current charge, value text should not be provided by the implementor.

<refsect2 id="implementor-notes"> <title>Implementor Notes</title> <para>

Implementors should bear in mind that assistive technologies will likely prefer the value text provided over the numeric value when presenting a widget's value. As a result, strings not intended for end users should not be exposed in the value text, and strings which are exposed should be localized. In the case of widgets which display value text on screen, for instance through a separate label in close proximity to the value-displaying widget, it is still expected that implementors will expose the value text using the above API.

</para> <para>

#AtkValue should NOT be implemented for widgets whose displayed value is not reflective of a meaningful amount. For instance, a progress pulse indicator whose value alternates between 0.0 and 1.0 to indicate that some process is still taking place should not implement #AtkValue because the current value does not reflect progress towards completion.

</para> </refsect2> </refsect1> <refsect1 id="ranges"> <title>On the subject of ranges</title> <para>

In addition to providing the minimum and maximum values, implementors can optionally provide details about subranges associated with the widget. These details should be provided by the implementor when both of the following are communicated visually to the end user:

</para> <itemizedlist> <listitem>The existence of distinct ranges such as "weak",

"acceptable", and "strong" indicated by color, bar tick marks, and/or on-screen text.</listitem>

<listitem>Where the current value stands within a given subrange,

for instance illustrating progression from very "weak" towards nearly "acceptable" through changes in shade and/or position on the bar within the "weak" subrange.</listitem>

</itemizedlist> <para>

If both of the above do not apply to the widget, it should be sufficient to expose the numeric value, along with the value text if appropriate, to make the widget accessible.

</para> <refsect2 id="ranges-implementor-notes"> <title>Implementor Notes</title> <para>

If providing subrange details is deemed necessary, all possible values of the widget are expected to fall within one of the subranges defined by the implementor.

</para> </refsect2> </refsect1> <refsect1 id="localization"> <title>On the subject of localization of end-user-consumable text

values</title>

<para>

Because value text and subrange descriptors are human-consumable, implementors are expected to provide localized strings which can be directly presented to end users via their assistive technology. In order to simplify this for implementors, implementors can use [atk.global.valueTypeGetLocalizedName] with the following already-localized constants for commonly-needed values can be used:

</para> <itemizedlist> <listitem>ATK_VALUE_VERY_WEAK</listitem> <listitem>ATK_VALUE_WEAK</listitem> <listitem>ATK_VALUE_ACCEPTABLE</listitem> <listitem>ATK_VALUE_STRONG</listitem> <listitem>ATK_VALUE_VERY_STRONG</listitem> <listitem>ATK_VALUE_VERY_LOW</listitem> <listitem>ATK_VALUE_LOW</listitem> <listitem>ATK_VALUE_MEDIUM</listitem> <listitem>ATK_VALUE_HIGH</listitem> <listitem>ATK_VALUE_VERY_HIGH</listitem> <listitem>ATK_VALUE_VERY_BAD</listitem> <listitem>ATK_VALUE_BAD</listitem> <listitem>ATK_VALUE_GOOD</listitem> <listitem>ATK_VALUE_VERY_GOOD</listitem> <listitem>ATK_VALUE_BEST</listitem> <listitem>ATK_VALUE_SUBSUBOPTIMAL</listitem> <listitem>ATK_VALUE_SUBOPTIMAL</listitem> <listitem>ATK_VALUE_OPTIMAL</listitem> </itemizedlist> <para>

Proposals for additional constants, along with their use cases, should be submitted to the GNOME Accessibility Team.

</para> </refsect1> <refsect1 id="changes"> <title>On the subject of changes</title> <para>

Note that if there is a textual description associated with the new numeric value, that description should be included regardless of whether or not it has also changed.

</para> </refsect1>
Fields
void function(AtkValue * obj, GValue * value) getCurrentValueThis virtual function is deprecated since 2.12 and it should not be overriden.
void function(AtkValue * obj, GValue * value) getMaximumValueThis virtual function is deprecated since 2.12 and it should not be overriden.
void function(AtkValue * obj, GValue * value) getMinimumValueThis virtual function is deprecated since 2.12 and it should not be overriden.
gboolean function(AtkValue * obj, const(GValue) * value) setCurrentValueThis virtual function is deprecated since 2.12 and it should not be overriden.
void function(AtkValue * obj, GValue * value) getMinimumIncrementThis virtual function is deprecated since 2.12 and it should not be overriden.
void function(AtkValue * obj, double * value, char * * text) getValueAndTextgets the current value and the human readable text alternative (if available) of this object. Since 2.12.
AtkRange * function(AtkValue * obj) getRangegets the range that defines the minimum and maximum value of this object. Returns NULL if there is no range defined. Since 2.12.
double function(AtkValue * obj) getIncrementgets the minimum increment by which the value of this object may be changed. If zero it is undefined. Since 2.12.
GSList * function(AtkValue * obj) getSubRangesreturns a list of different subranges, and their description (if available) of this object. Returns NULL if there is not subranges defined. Since 2.12.
void function(AtkValue * obj, double newValue) setValuesets the value of this object. Since 2.12.
structAtkWindow

The ATK Interface provided by UI components that represent a top-level window.

#AtkWindow should be implemented by the UI elements that represent a top-level window, such as the main window of an application or dialog.

See class@AtkObject

Fields
aliasAtkEventListener = void function(AtkObject * obj)
aliasAtkEventListenerInit = void function()
aliasAtkFocusHandler = void function(AtkObject * object, gboolean focusIn)
aliasAtkFunction = gboolean function(void * userData)
aliasAtkKeySnoopFunc = int function(AtkKeyEventStruct * event, void * userData)
aliasAtkPropertyChangeHandler = void function(AtkObject * obj, AtkPropertyValues * vals)