## AccessibleComponent Interface

AccessibleComponent Interface —

##

# Synopsis

    enum        AccessibleCoordType;
    enum        AccessibleComponentLayer;
    void        AccessibleComponent_ref         (AccessibleComponent *obj);
    void        AccessibleComponent_unref       (AccessibleComponent *obj);
    SPIBoolean  AccessibleComponent_contains    (AccessibleComponent *obj,
                                                 long int x,
                                                 long int y,
                                                 AccessibleCoordType ctype);
    Accessible* AccessibleComponent_getAccessibleAtPoint
                                                (AccessibleComponent *obj,
                                                 long int x,
                                                 long int y,
                                                 AccessibleCoordType ctype);
    void        AccessibleComponent_getExtents  (AccessibleComponent *obj,
                                                 long int *x,
                                                 long int *y,
                                                 long int *width,
                                                 long int *height,
                                                 AccessibleCoordType ctype);
    void        AccessibleComponent_getPosition (AccessibleComponent *obj,
                                                 long int *x,
                                                 long int *y,
                                                 AccessibleCoordType ctype);
    void        AccessibleComponent_getSize     (AccessibleComponent *obj,
                                                 long int *width,
                                                 long int *height);
    AccessibleComponentLayer AccessibleComponent_getLayer
                                                (AccessibleComponent *obj);
    short       AccessibleComponent_getMDIZOrder
                                                (AccessibleComponent *obj);
    SPIBoolean  AccessibleComponent_grabFocus   (AccessibleComponent *obj);

## Description

## Details

### enum AccessibleCoordType

    typedef enum {
      SPI_COORD_TYPE_SCREEN,
      SPI_COORD_TYPE_WINDOW
    } AccessibleCoordType;

Specifies how xy coordinates are to be interpreted. Used by functions such as AccessibleComponent_getPosition() and AccessibleText_getCharacterExtents()

`SPI_COORD_TYPE_SCREEN` | specifies xy coordinates relative to the screen
`SPI_COORD_TYPE_WINDOW` | specifies xy coordinates relative to an object's top-level window

### enum AccessibleComponentLayer

    typedef enum {
        SPI_LAYER_INVALID,
        SPI_LAYER_BACKGROUND,
        SPI_LAYER_CANVAS,
        SPI_LAYER_WIDGET,
        SPI_LAYER_MDI,
        SPI_LAYER_POPUP,
        SPI_LAYER_OVERLAY,
        SPI_LAYER_WINDOW,
        SPI_LAYER_LAST_DEFINED
    } AccessibleComponentLayer;

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.

`SPI_LAYER_INVALID` | The layer cannot be determined or is somehow undefined.
`SPI_LAYER_BACKGROUND` | Component belongs to the destop background.
`SPI_LAYER_CANVAS` | Component is a canvas backdrop or drawing area.
`SPI_LAYER_WIDGET` | Component is a 'normal' widget.
`SPI_LAYER_MDI` | Component is drawn in the MDI layer and may have valid Z-information relative to other MDI-layer components.
`SPI_LAYER_POPUP` | Component is in the popup layer, above other widgets and MDI components.
`SPI_LAYER_OVERLAY` | Component is in the overlay plane - this value is reserved for future use.
`SPI_LAYER_WINDOW` | Component is in the window layer and have valid Z-information relative to other window-layer components.
`SPI_LAYER_LAST_DEFINED` | Used to determine the last valid value in the enum, should not be encountered.

### AccessibleComponent_ref ()

    void        AccessibleComponent_ref         (AccessibleComponent *obj);

Increment the reference count for an AccessibleComponent.

`obj` : | a pointer to an object implementing AccessibleComponent on which to operate.

### AccessibleComponent_unref ()

    void        AccessibleComponent_unref       (AccessibleComponent *obj);

Decrement the reference count for an AccessibleComponent.

`obj` : | a pointer to the object implementing AccessibleComponent on which to operate.

### AccessibleComponent_contains ()

    SPIBoolean  AccessibleComponent_contains    (AccessibleComponent *obj,
                                                 long int x,
                                                 long int y,
                                                 AccessibleCoordType ctype);

Query whether a given AccessibleComponent contains a particular point.

`obj` : | a pointer to the AccessibleComponent to query.
`x` : | a long specifying the x coordinate in question.
`y` : | a long specifying the y coordinate in question.
`ctype` : | the desired coordinate system of the point (`x`, `y`) (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
Returns : | a TRUE if the specified component contains the point (`x`, `y`), otherwise FALSE.

### AccessibleComponent_getAccessibleAtPoint ()

    Accessible* AccessibleComponent_getAccessibleAtPoint
                                                (AccessibleComponent *obj,
                                                 long int x,
                                                 long int y,
                                                 AccessibleCoordType ctype);

Get the accessible child at a given coordinate within an AccessibleComponent.

`obj` : | a pointer to the AccessibleComponent to query.
`x` : | a long specifying the x coordinate of the point in question.
`y` : | a long specifying the y coordinate of the point in question.
`ctype` : | the coordinate system of the point (`x`, `y`) (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
Returns : | a pointer to an Accessible child of the specified component which contains the point (`x`, `y`), or NULL of no child contains the point.

### AccessibleComponent_getExtents ()

    void        AccessibleComponent_getExtents  (AccessibleComponent *obj,
                                                 long int *x,
                                                 long int *y,
                                                 long int *width,
                                                 long int *height,
                                                 AccessibleCoordType ctype);

Get the bounding box of the specified AccessibleComponent.

`obj` : | a pointer to the AccessibleComponent to query.
`x` : | a pointer to a long into which the minimum x coordinate will be returned.
`y` : | a pointer to a long into which the minimum y coordinate will be returned.
`width` : | a pointer to a long into which the x extents (width) will be returned.
`height` : | a pointer to a long into which the y extents (height) will be returned.
`ctype` : | the desired coordinate system into which to return the results, (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).

### AccessibleComponent_getPosition ()

    void        AccessibleComponent_getPosition (AccessibleComponent *obj,
                                                 long int *x,
                                                 long int *y,
                                                 AccessibleCoordType ctype);

Get the minimum x and y coordinates of the specified AccessibleComponent.

`obj` : | a pointer to the AccessibleComponent to query.
`x` : | a pointer to a long into which the minimum x coordinate will be returned.
`y` : | a pointer to a long into which the minimum y coordinate will be returned.
`ctype` : | the desired coordinate system into which to return the results, (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).

### AccessibleComponent_getSize ()

    void        AccessibleComponent_getSize     (AccessibleComponent *obj,
                                                 long int *width,
                                                 long int *height);

Get the size of the specified AccessibleComponent.

`obj` : | a pointer to the AccessibleComponent to query.
`width` : | a pointer to a long into which the x extents (width) will be returned.
`height` : | a pointer to a long into which the y extents (height) will be returned.

### AccessibleComponent_getLayer ()

    AccessibleComponentLayer AccessibleComponent_getLayer
                                                (AccessibleComponent *obj);

Query which layer the component is painted into, to help determine its visibility in terms of stacking order.

`obj` : | a pointer to the AccessibleComponent to query.
Returns : | the AccessibleComponentLayer into which this component is painted.

### AccessibleComponent_getMDIZOrder ()

    short       AccessibleComponent_getMDIZOrder
                                                (AccessibleComponent *obj);

Query the z stacking order of a component which is in the MDI or window layer. (Bigger z-order numbers mean nearer the top)

`obj` : | a pointer to the AccessibleComponent to query.
Returns : | a short integer indicating the stacking order of the component in the MDI layer, or -1 if the component is not in the MDI layer.

### AccessibleComponent_grabFocus ()

    SPIBoolean  AccessibleComponent_grabFocus   (AccessibleComponent *obj);

Attempt to set the keyboard input focus to the specified AccessibleComponent.

`obj` : | a pointer to the AccessibleComponent on which to operate.
Returns : | TRUE if successful, FALSE otherwise.