Protocols
The following protocols are available globally.
-
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.The
See moreActionIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkActionIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeActionIface
. Alternatively, useActionIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ActionIfaceProtocol
-
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_get_attributes()
) or an document (seeatk_document_get_attributes()
). In the case of text attributes (seeatk_text_get_default_attributes()
),AtkTextAttribute
enum defines all the possible text attribute names. You can useatk_text_attribute_get_name()
to get the string name from the enum value. See alsoatk_text_attribute_for_name()
andatk_text_attribute_get_value()
for more information.A string name/value pair representing a generic attribute.
The
See moreAttributeProtocol
protocol exposes the methods and properties of an underlyingAtkAttribute
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttribute
. Alternatively, useAttributeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol AttributeProtocol
-
AtkAction
should be implemented by instances ofAtkObject
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.) orAtkValue
(set value) then these actions should not be exposed byAtkAction
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 forAtkAction
names.The
See moreActionProtocol
protocol exposes the methods and properties of an underlyingAtkAction
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAction
. Alternatively, useActionRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ActionProtocol
-
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.
The
See moreComponentIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkComponentIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeComponentIface
. Alternatively, useComponentIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ComponentIfaceProtocol
-
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 haveAtkComponent
implementations provided for their correspondingAtkObject
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
See moreComponentProtocol
protocol exposes the methods and properties of an underlyingAtkComponent
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeComponent
. Alternatively, useComponentRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ComponentProtocol
-
The
See moreDocumentIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkDocumentIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeDocumentIface
. Alternatively, useDocumentIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol DocumentIfaceProtocol
-
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.
The
See moreDocumentProtocol
protocol exposes the methods and properties of an underlyingAtkDocument
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeDocument
. Alternatively, useDocumentRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol DocumentProtocol
-
The
See moreEditableTextIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkEditableTextIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEditableTextIface
. Alternatively, useEditableTextIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol EditableTextIfaceProtocol
-
AtkEditableText
should be implemented by UI components which contain text which the user can edit, via theAtkObject
corresponding to that component (seeAtkObject
).AtkEditableText
is a subclass ofAtkText
, and as such, an object which implementsAtkEditableText
is by definition anAtkText
implementor as well.See also:
AtkText
The
See moreEditableTextProtocol
protocol exposes the methods and properties of an underlyingAtkEditableText
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEditableText
. Alternatively, useEditableTextRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol EditableTextProtocol
-
The
See moreGObjectAccessibleClassProtocol
protocol exposes the methods and properties of an underlyingAtkGObjectAccessibleClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGObjectAccessibleClass
. Alternatively, useGObjectAccessibleClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol GObjectAccessibleClassProtocol
-
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.
The
See moreGObjectAccessibleProtocol
protocol exposes the methods and properties of an underlyingAtkGObjectAccessible
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGObjectAccessible
. Alternatively, useGObjectAccessibleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol GObjectAccessibleProtocol : ObjectProtocol
-
The
See moreHyperlinkClassProtocol
protocol exposes the methods and properties of an underlyingAtkHyperlinkClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHyperlinkClass
. Alternatively, useHyperlinkClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HyperlinkClassProtocol
-
The
See moreHyperlinkImplIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkHyperlinkImplIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHyperlinkImplIface
. Alternatively, useHyperlinkImplIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HyperlinkImplIfaceProtocol
-
The
See moreHypertextIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkHypertextIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHypertextIface
. Alternatively, useHypertextIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HypertextIfaceProtocol
-
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.
The
See moreHyperlinkProtocol
protocol exposes the methods and properties of an underlyingAtkHyperlink
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHyperlink
. Alternatively, useHyperlinkRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HyperlinkProtocol : ActionProtocol, ObjectProtocol
-
AtkHyperlinkImpl allows AtkObjects to refer to their associated AtkHyperlink instance, if one exists. AtkHyperlinkImpl differs from AtkHyperlink in that AtkHyperlinkImpl is an interface, whereas AtkHyperlink is a object type. The AtkHyperlinkImpl interface allows a client to query an AtkObject for the availability of an associated AtkHyperlink instance, and obtain that instance. It is thus particularly useful in cases where embedded content or inline content within a text object is present, since the embedding text object implements AtkHypertext and the inline/embedded objects are exposed as children which implement AtkHyperlinkImpl, in addition to their being obtainable via AtkHypertext:getLink followed by AtkHyperlink:getObject.
The AtkHyperlinkImpl interface should be supported by objects exposed within the hierarchy as children of an AtkHypertext container which correspond to “links” or embedded content within the text. HTML anchors are not, for instance, normally exposed this way, but embedded images and components which appear inline in the content of a text object are. The AtkHyperlinkIface interface allows a means of determining which children are hyperlinks in this sense of the word, and for obtaining their corresponding AtkHyperlink object, from which the embedding range, URI, etc. can be obtained.
To some extent this interface exists because, for historical reasons, AtkHyperlink was defined as an object type, not an interface. Thus, in order to interact with AtkObjects via AtkHyperlink semantics, a new interface was required.
The
See moreHyperlinkImplProtocol
protocol exposes the methods and properties of an underlyingAtkHyperlinkImpl
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHyperlinkImpl
. Alternatively, useHyperlinkImplRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HyperlinkImplProtocol
-
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.
The
See moreHypertextProtocol
protocol exposes the methods and properties of an underlyingAtkHypertext
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeHypertext
. Alternatively, useHypertextRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol HypertextProtocol
-
The
See moreImageIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkImageIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeImageIface
. Alternatively, useImageIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ImageIfaceProtocol
-
The
See moreImplementorProtocol
protocol exposes the methods and properties of an underlyingAtkImplementor
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeImplementor
. Alternatively, useImplementorRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ImplementorProtocol
-
AtkImage
should be implemented byAtkObject
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 implementAtkImage
.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.The
See moreImageProtocol
protocol exposes the methods and properties of an underlyingAtkImage
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeImage
. Alternatively, useImageRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ImageProtocol
-
The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor);
The
See moreImplementorIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkImplementorIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeImplementorIface
. Alternatively, useImplementorIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ImplementorIfaceProtocol
-
Encapsulates information about a key event.
The
See moreKeyEventStructProtocol
protocol exposes the methods and properties of an underlyingAtkKeyEventStruct
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeKeyEventStruct
. Alternatively, useKeyEventStructRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol KeyEventStructProtocol
-
Usage of AtkMisc is deprecated since 2.12 and heavily discouraged.
The
See moreMiscClassProtocol
protocol exposes the methods and properties of an underlyingAtkMiscClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeMiscClass
. Alternatively, useMiscClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol MiscClassProtocol
-
A set of utility functions for thread locking. This interface and all his related methods are deprecated since 2.12.
The
See moreMiscProtocol
protocol exposes the methods and properties of an underlyingAtkMisc
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeMisc
. Alternatively, useMiscRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol MiscProtocol : ObjectProtocol
-
The
See moreNoOpObjectClassProtocol
protocol exposes the methods and properties of an underlyingAtkNoOpObjectClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeNoOpObjectClass
. Alternatively, useNoOpObjectClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol NoOpObjectClassProtocol
-
The
See moreNoOpObjectFactoryClassProtocol
protocol exposes the methods and properties of an underlyingAtkNoOpObjectFactoryClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeNoOpObjectFactoryClass
. Alternatively, useNoOpObjectFactoryClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol NoOpObjectFactoryClassProtocol
-
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.
The
See moreNoOpObjectProtocol
protocol exposes the methods and properties of an underlyingAtkNoOpObject
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeNoOpObject
. Alternatively, useNoOpObjectRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol NoOpObjectProtocol : ActionProtocol, ComponentProtocol, DocumentProtocol, EditableTextProtocol, HypertextProtocol, ImageProtocol, SelectionProtocol, TableCellProtocol, TableProtocol, TextProtocol, ValueProtocol, WindowProtocol
-
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.
The
See moreNoOpObjectFactoryProtocol
protocol exposes the methods and properties of an underlyingAtkNoOpObjectFactory
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeNoOpObjectFactory
. Alternatively, useNoOpObjectFactoryRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol NoOpObjectFactoryProtocol : ObjectFactoryProtocol
-
The
See moreObjectClassProtocol
protocol exposes the methods and properties of an underlyingAtkObjectClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeObjectClass
. Alternatively, useObjectClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ObjectClassProtocol
-
The
See moreObjectFactoryClassProtocol
protocol exposes the methods and properties of an underlyingAtkObjectFactoryClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeObjectFactoryClass
. Alternatively, useObjectFactoryClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ObjectFactoryClassProtocol
-
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 ofAtkObject
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 togtk_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 inheritedAtkObject
implementation is insufficient, via instances of a newAtkObject
subclass.See also:
AtkObjectFactory
,AtkRegistry
. (GTK+ users see alsoGtkAccessible
).The
See moreObjectProtocol
protocol exposes the methods and properties of an underlyingAtkObject
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeObject
. Alternatively, useObjectRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ObjectProtocol : ObjectProtocol
-
This class is the base object class for a factory used to create an accessible object for a specific GType. The function
atk_registry_set_factory_type()
is normally called to store in the registry the factory type to be used to create an accessible of a particular GType.The
See moreObjectFactoryProtocol
protocol exposes the methods and properties of an underlyingAtkObjectFactory
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeObjectFactory
. Alternatively, useObjectFactoryRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ObjectFactoryProtocol : ObjectProtocol
-
The
See morePlugClassProtocol
protocol exposes the methods and properties of an underlyingAtkPlugClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seePlugClass
. Alternatively, usePlugClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol PlugClassProtocol
-
Note:
old_value
field ofAtkPropertyValues
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.The
See morePropertyValuesProtocol
protocol exposes the methods and properties of an underlyingAtkPropertyValues
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seePropertyValues
. Alternatively, usePropertyValuesRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol PropertyValuesProtocol
-
See
AtkSocket
The
See morePlugProtocol
protocol exposes the methods and properties of an underlyingAtkPlug
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seePlug
. Alternatively, usePlugRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol PlugProtocol : ComponentProtocol, ObjectProtocol
-
AtkRange
are used onAtkValue
, 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. SeeAtkValue
documentation for further details.The
See moreRangeProtocol
protocol exposes the methods and properties of an underlyingAtkRange
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRange
. Alternatively, useRangeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RangeProtocol
-
A data structure for holding a rectangle. Those coordinates are relative to the component top-level parent.
The
See moreRectangleProtocol
protocol exposes the methods and properties of an underlyingAtkRectangle
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRectangle
. Alternatively, useRectangleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RectangleProtocol
-
The
See moreRegistryClassProtocol
protocol exposes the methods and properties of an underlyingAtkRegistryClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRegistryClass
. Alternatively, useRegistryClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RegistryClassProtocol
-
The
See moreRelationClassProtocol
protocol exposes the methods and properties of an underlyingAtkRelationClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRelationClass
. Alternatively, useRelationClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RelationClassProtocol
-
The
See moreRelationSetClassProtocol
protocol exposes the methods and properties of an underlyingAtkRelationSetClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRelationSetClass
. Alternatively, useRelationSetClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RelationSetClassProtocol
-
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.
The
See moreRegistryProtocol
protocol exposes the methods and properties of an underlyingAtkRegistry
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRegistry
. Alternatively, useRegistryRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RegistryProtocol : ObjectProtocol
-
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.
The
See moreRelationProtocol
protocol exposes the methods and properties of an underlyingAtkRelation
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRelation
. Alternatively, useRelationRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RelationProtocol : ObjectProtocol
-
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.
The
See moreRelationSetProtocol
protocol exposes the methods and properties of an underlyingAtkRelationSet
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRelationSet
. Alternatively, useRelationSetRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RelationSetProtocol : ObjectProtocol
-
The
See moreSelectionIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkSelectionIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeSelectionIface
. Alternatively, useSelectionIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol SelectionIfaceProtocol
-
The
See moreSocketClassProtocol
protocol exposes the methods and properties of an underlyingAtkSocketClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeSocketClass
. Alternatively, useSocketClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol SocketClassProtocol
-
The
See moreStateSetClassProtocol
protocol exposes the methods and properties of an underlyingAtkStateSetClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeStateSetClass
. Alternatively, useStateSetClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol StateSetClassProtocol
-
The
See moreStreamableContentIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkStreamableContentIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeStreamableContentIface
. Alternatively, useStreamableContentIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol StreamableContentIfaceProtocol
-
AtkSelection
should be implemented by UI components with children which are exposed byatk_object_ref_child
andatk_object_get_n_children
, if the use of the parent UI component ordinarily involves selection of one or more of the objects corresponding to thoseAtkObject
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.The
See moreSelectionProtocol
protocol exposes the methods and properties of an underlyingAtkSelection
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeSelection
. Alternatively, useSelectionRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol SelectionProtocol
-
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.
The
See moreStreamableContentProtocol
protocol exposes the methods and properties of an underlyingAtkStreamableContent
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeStreamableContent
. Alternatively, useStreamableContentRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol StreamableContentProtocol
-
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 ofAtkPlug
, embedding it using the methodatk_socket_embed()
. Any accessible contained in theAtkPlug
will appear to the assistive technologies as being inside the application that created theAtkSocket
.The communication between a
AtkSocket
and aAtkPlug
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 methodsatk_plug_get_id()
andatk_socket_embed()
, so an ATK implementor shouldn’t reimplement them. The process that contains theAtkPlug
is responsible to send the ID returned byatk_plug_id()
to the process that contains theAtkSocket
, so it could call the methodatk_socket_embed()
in order to embed it.For the same reasons, an implementor doesn’t need to implement
atk_object_get_n_accessible_children()
andatk_object_ref_accessible_child()
. All the logic related to those functions will be implemented by the IPC layer.The
See moreSocketProtocol
protocol exposes the methods and properties of an underlyingAtkSocket
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeSocket
. Alternatively, useSocketRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol SocketProtocol : ComponentProtocol, ObjectProtocol
-
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 whenatk_object_ref_state_set
()
is called.The
See moreStateSetProtocol
protocol exposes the methods and properties of an underlyingAtkStateSet
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeStateSet
. Alternatively, useStateSetRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol StateSetProtocol : ObjectProtocol
-
AtkTableCell is an interface for cells inside an
AtkTable
.The
See moreTableCellIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkTableCellIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTableCellIface
. Alternatively, useTableCellIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TableCellIfaceProtocol
-
The
See moreTableIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkTableIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTableIface
. Alternatively, useTableIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TableIfaceProtocol
-
The
See moreTextIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkTextIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTextIface
. Alternatively, useTextIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TextIfaceProtocol
-
A structure used to describe a text range.
The
See moreTextRangeProtocol
protocol exposes the methods and properties of an underlyingAtkTextRange
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTextRange
. Alternatively, useTextRangeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TextRangeProtocol
-
A structure used to store a rectangle used by AtkText.
The
See moreTextRectangleProtocol
protocol exposes the methods and properties of an underlyingAtkTextRectangle
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTextRectangle
. Alternatively, useTextRectangleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TextRectangleProtocol
-
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 anAtkTable
are typically referred to as “cells”. Those cells should implement the interfaceAtkTableCell
, butAtk
doesn’t require them to be direct children of the currentAtkTable
. 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 areAtkObjects
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 ofAtkTable
, and provided some index based methods to request the cells. The practice showed that that forcing madeAtkTable
implementation complex, and hard to expose other kind of children, like rows or captions. Right now, index-based methods are deprecated.The
See moreTableProtocol
protocol exposes the methods and properties of an underlyingAtkTable
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTable
. Alternatively, useTableRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TableProtocol
-
Being
AtkTable
a component which present elements ordered via rows and columns, anAtkTableCell
is the interface which each of those elements, so “cells” should implement.See also
AtkTable
.The
See moreTableCellProtocol
protocol exposes the methods and properties of an underlyingAtkTableCell
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTableCell
. Alternatively, useTableCellRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TableCellProtocol : ObjectProtocol
-
AtkText
should be implemented byAtkObjects
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 viaatk_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, theAtkText
interface should be used to expose the text content. In the case of editable text content,AtkEditableText
(a subtype of theAtkText
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.The
See moreTextProtocol
protocol exposes the methods and properties of an underlyingAtkText
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeText
. Alternatively, useTextRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol TextProtocol
-
The
See moreUtilClassProtocol
protocol exposes the methods and properties of an underlyingAtkUtilClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeUtilClass
. Alternatively, useUtilClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol UtilClassProtocol
-
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.
The
See moreUtilProtocol
protocol exposes the methods and properties of an underlyingAtkUtil
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeUtil
. Alternatively, useUtilRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol UtilProtocol : ObjectProtocol
-
The
See moreValueIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkValueIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeValueIface
. Alternatively, useValueIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ValueIfaceProtocol
-
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 haveAtkObject
representations which implementAtkValue
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 implementAtkValue
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_value_type_get_localized_name()
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>
The
See moreValueProtocol
protocol exposes the methods and properties of an underlyingAtkValue
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeValue
. Alternatively, useValueRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ValueProtocol
-
The
See moreWindowIfaceProtocol
protocol exposes the methods and properties of an underlyingAtkWindowIface
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeWindowIface
. Alternatively, useWindowIfaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol WindowIfaceProtocol
-
AtkWindow
should be implemented by the UI elements that represent a top-level window, such as the main window of an application or dialog.The
See moreWindowProtocol
protocol exposes the methods and properties of an underlyingAtkWindow
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeWindow
. Alternatively, useWindowRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol WindowProtocol : ObjectProtocol