## AccessibleAction Interface

AccessibleAction Interface — The interface implemented by interface elements which are 'actionable' by the user.

## Synopsis

    void                AccessibleAction_ref                (AccessibleAction *obj);
    void                AccessibleAction_unref              (AccessibleAction *obj);
    long                AccessibleAction_getNActions        (AccessibleAction *obj);
    SPIBoolean          AccessibleAction_doAction           (AccessibleAction *obj,
                                                             long int i);
    char*               AccessibleAction_getKeyBinding      (AccessibleAction *obj,
                                                             long int i);
    char*               AccessibleAction_getName            (AccessibleAction *obj,
                                                             long int i);
    char*               AccessibleAction_getDescription     (AccessibleAction *obj,
                                                             long int i);

## Description

The Action interface is implemented by objects with which the user may interact using common graphical-user-interface metaphors such as "click", "toggle", "activate", and other gestures which are usually invoked via interaction with the system pointer or keyboard. The Action interface allows clients and/or assistive technologies to expose these actions to the end user for invocation via alternative mechanisms, and to inform the end user or assistive technology client that the implementing Accessible object is reactive to user input.

## Details

### AccessibleAction_ref ()

    void                AccessibleAction_ref                (AccessibleAction *obj);

Increment the reference count for an AccessibleAction.

`obj` : | a pointer to the AccessibleAction on which to operate.

### AccessibleAction_unref ()

    void                AccessibleAction_unref              (AccessibleAction *obj);

Decrement the reference count for an AccessibleAction.

`obj` : | a pointer to the AccessibleAction on which to operate.

### AccessibleAction_getNActions ()

    long                AccessibleAction_getNActions        (AccessibleAction *obj);

Get the number of actions invokable on an AccessibleAction implementor.

`obj` : | a pointer to the AccessibleAction to query.
Returns : | a long integer indicatin the number of invokable actions.

### AccessibleAction_doAction ()

    SPIBoolean          AccessibleAction_doAction           (AccessibleAction *obj,
                                                             long int i);

Invoke the action indicated by index.

`obj` : | a pointer to the AccessibleAction to query.
`i` : | an integer specifying which action to invoke.
Returns : | TRUE if the action is successfully invoked, otherwise FALSE.

### AccessibleAction_getKeyBinding ()

    char*               AccessibleAction_getKeyBinding      (AccessibleAction *obj,
                                                             long int i);

Get the keybindings for the `i`-th action invokable on an object implementing AccessibleAction, if any are defined. The keybindings string format is as follows: there are multiple parts to a keybinding string (typically 3). They are delimited with ";". The first is the action's keybinding which is usable if the object implementing the action is currently posted to the screen, e.g. if a menu is posted then these keybindings for the corresponding menu-items are available. The second keybinding substring is the full key sequence necessary to post the action's widget and activate it, e.g. for a menu item such as "File->Open" it would both post the menu and activate the item. Thus the second keybinding string is available during the lifetime of the containing toplevel window as a whole, whereas the first keybinding string only works while the object implementing AtkAction is posted. The third (and optional) keybinding string is the "keyboard shortcut" which invokes the action without posting any menus. Meta-keys are indicated by the conventional strings "<Control>", "<Alt>", "<Shift>", "<Mod2>", etc. (we use the same string as `gtk_accelerator_name()` in gtk+-2.X.

`obj` : | a pointer to the AccessibleAction implementor to query.
`i` : | a long integer indicating which action to query.
Returns : | a UTF-8 string which can be parsed to determine the `i`-th invokable action's keybindings.

### AccessibleAction_getName ()

    char*               AccessibleAction_getName            (AccessibleAction *obj,
                                                             long int i);

Get the name of the '`i`-th' action invokable on an object implementing AccessibleAction.

`obj` : | a pointer to the AccessibleAction implementor to query.
`i` : | a long integer indicating which action to query.
Returns : | the 'event type' name of the action, as a UTF-8 string.

### AccessibleAction_getDescription ()

    char*               AccessibleAction_getDescription     (AccessibleAction *obj,
                                                             long int i);

Get the description of '`i`-th' action invokable on an object implementing AccessibleAction.

`obj` : | a pointer to the AccessibleAction implementor to query.
`i` : | a long integer indicating which action to query.
Returns : | a UTF-8 string describing the '`i`-th' invokable action.