## GailMisc

GailMisc — GailMisc is a set of utility functions which may be useful to implementors of Atk interfaces for custom widgets.

## Functions

AtkAttributeSet * | gail_misc_add_attribute ()
AtkAttributeSet * | gail_misc_layout_get_run_attributes ()
AtkAttributeSet * | gail_misc_get_default_attributes ()
void | gail_misc_get_extents_from_pango_rectangle ()
gint | gail_misc_get_index_at_point_in_layout ()
void | gail_misc_get_origins ()
AtkAttributeSet * | gail_misc_add_to_attr_set ()
AtkAttributeSet * | gail_misc_buffer_get_run_attributes ()

## Description

GailMisc is a set of utility function which are used in the implemementation of Atk interfaces for GTK+ widgets. They may be useful to implementors of Atk interfaces for custom widgets.

## Functions

### gail_misc_add_attribute ()

    AtkAttributeSet *
    gail_misc_add_attribute (AtkAttributeSet *attrib_set,
                             AtkTextAttribute attr,
                             gchar *value);

Creates an AtkAttribute from `attr` and `value` , and adds it to `attrib_set` .

#### Parameters

attrib_set | The AtkAttributeSet to add the attribute to |
attr | The AtkTextAttrribute which identifies the attribute to be added |
value | The attribute value |

#### Returns

A pointer to the new AtkAttributeSet.

### gail_misc_layout_get_run_attributes ()

    AtkAttributeSet *
    gail_misc_layout_get_run_attributes (AtkAttributeSet *attrib_set,
                                         PangoLayout *layout,
                                         gchar *text,
                                         gint offset,
                                         gint *start_offset,
                                         gint *end_offset);

Adds the attributes for the run starting at offset to the specified attribute set.

#### Parameters

attrib_set | The AtkAttributeSet to add the attribute to |
layout | The PangoLayout from which the attributes will be obtained |
text | The text |
offset | The offset at which the attributes are required |
start_offset | The start offset of the current run |
end_offset | The end offset of the current run |

#### Returns

A pointer to the AtkAttributeSet.

### gail_misc_get_default_attributes ()

    AtkAttributeSet *
    gail_misc_get_default_attributes (AtkAttributeSet *attrib_set,
                                      PangoLayout *layout,
                                      GtkWidget *widget);

Adds the default attributes to the specified attribute set.

#### Parameters

attrib_set | The AtkAttributeSet to add the attribute to |
layout | The PangoLayout from which the attributes will be obtained |
widget | The GtkWidget for which the default attributes are required. |

#### Returns

A pointer to the AtkAttributeSet.

### gail_misc_get_extents_from_pango_rectangle ()

    void
    gail_misc_get_extents_from_pango_rectangle
                                   (GtkWidget *widget,
                                    PangoRectangle *char_rect,
                                    gint x_layout,
                                    gint y_layout,
                                    gint *x,
                                    gint *y,
                                    gint *width,
                                    gint *height,
                                    AtkCoordType coords);

Gets the extents of `char_rect` in device coordinates, relative to either top-level window or screen coordinates as specified by `coords` .

#### Parameters

widget | The widget that contains the PangoLayout, that contains the PangoRectangle |
char_rect | The PangoRectangle from which to calculate extents |
x_layout | The x-offset at which the widget displays the PangoLayout that contains the PangoRectangle, relative to `widget` |
y_layout | The y-offset at which the widget displays the PangoLayout that contains the PangoRectangle, relative to `widget` |
x | The x-position of the PangoRectangle relative to `coords` |
y | The y-position of the PangoRectangle relative to `coords` |
width | The width of the PangoRectangle |
height | The height of the PangoRectangle |
coords | An AtkCoordType enumeration |

### gail_misc_get_index_at_point_in_layout ()

    gint
    gail_misc_get_index_at_point_in_layout
                                   (GtkWidget *widget,
                                    PangoLayout *layout,
                                    gint x_layout,
                                    gint y_layout,
                                    gint x,
                                    gint y,
                                    AtkCoordType coords);

Gets the byte offset at the specified `x` and `y` in a PangoLayout.

#### Parameters

widget | A GtkWidget |
layout | The PangoLayout from which to get the index at the specified point. |
x_layout | The x-offset at which the widget displays the PangoLayout, relative to `widget` |
y_layout | The y-offset at which the widget displays the PangoLayout, relative to `widget` |
x | The x-coordinate relative to `coords` at which to calculate the index |
y | The y-coordinate relative to `coords` at which to calculate the index |
coords | An AtkCoordType enumeration |

#### Returns

the byte offset at the specified `x` and `y` in a PangoLayout

### gail_misc_get_origins ()

    void
    gail_misc_get_origins (GtkWidget *widget,
                           gint *x_window,
                           gint *y_window,
                           gint *x_toplevel,
                           gint *y_toplevel);

Gets the origin of the widget window, and the origin of the widgets top-level window.

#### Parameters

widget | a GtkWidget |
x_window | the x-origin of the widget->window |
y_window | the y-origin of the widget->window |
x_toplevel | the x-origin of the toplevel window for widget->window |
y_toplevel | the y-origin of the toplevel window for widget->window |

### gail_misc_add_to_attr_set ()

    AtkAttributeSet *
    gail_misc_add_to_attr_set (AtkAttributeSet *attrib_set,
                               GtkTextAttributes *attrs,
                               AtkTextAttribute attr);

Gets the value for the AtkTextAttribute from the GtkTextAttributes and adds it to the AttributeSet.

#### Parameters

attrib_set | An AtkAttributeSet |
attrs | The GtkTextAttributes containing the attribute value |
attr | The AtkTextAttribute to be added |

#### Returns

A pointer to the updated AtkAttributeSet.

### gail_misc_buffer_get_run_attributes ()

    AtkAttributeSet *
    gail_misc_buffer_get_run_attributes (GtkTextBuffer *buffer,
                                         gint offset,
                                         gint *start_offset,
                                         gint *end_offset);

Creates an AtkAttributeSet which contains the attributes for the run starting at offset.

#### Parameters

buffer | The GtkTextBuffer for which the attributes will be obtained |
offset | The offset at which the attributes are required |
start_offset | The start offset of the current run |
end_offset | The end offset of the current run |

#### Returns

A pointer to the AtkAttributeSet.