*
* Gets reading material
*
- * Returns: reading material to be used screen-reader side. This is not stable.
- * You have to handle all alocated memory as below on screen-reader side.
- *
- * AtspiAccessibleReadingMaterial *rm
- * g_object_unref(rm->parent);
- * g_object_unref(rm->described_by_accessible);
- * g_hash_table_unref(rm->attributes);
- * free(rm->name);
- * free(rm->labeled_by_name);
- * free(rm->text_interface_name);
- * free(rm->localized_role_name);
- * free(rm->description);
- * free(rm);
+ * Returns: reading material to be used screen-reader side.
**/
AtspiAccessibleReadingMaterial *
atspi_accessible_get_reading_material (AtspiAccessible *obj, GError **error)
dbus_message_unref(reply);
+ reading_material->self = g_object_ref(obj);
+
return reading_material;
}
/**
+ * atspi_accessible_free_reading_material:
+ * @rm: a pointer to the #AtspiAccessibleReadingMaterial object on which to operate.
+ *
+ * Release memory allocated for reading material
+ **/
+void atspi_accessible_free_reading_material(AtspiAccessibleReadingMaterial *rm)
+{
+ g_return_if_fail(rm != NULL);
+
+ if (rm->self)
+ g_object_unref(rm->self);
+
+ if (rm->parent)
+ g_object_unref(rm->parent);
+
+ if (rm->described_by_accessible)
+ g_object_unref(rm->described_by_accessible);
+
+ g_hash_table_unref(rm->attributes);
+ g_free(rm->name);
+ g_free(rm->labeled_by_name);
+ g_free(rm->text_interface_name);
+ g_free(rm->localized_role_name);
+ g_free(rm->description);
+ g_free(rm->value_text);
+ g_free(rm);
+}
+
+/**
* atspi_accessible_get_default_label_info:
* @obj: a pointer to the #AtspiAccessible object would be window.
*
struct _AtspiAccessibleReadingMaterial
{
+ AtspiAccessible *self;
AtspiAccessible *parent;
AtspiAccessible *described_by_accessible;
GHashTable *attributes;
AtspiAccessibleReadingMaterial *atspi_accessible_get_reading_material (AtspiAccessible *obj, GError **error);
+void atspi_accessible_free_reading_material (AtspiAccessibleReadingMaterial *rm);
+
AtspiAccessibleDefaultLabelInfo *atspi_accessible_get_default_label_info (AtspiAccessible *obj, GError **error);
AtspiAccessible * atspi_accessible_get_parent (AtspiAccessible *obj, GError **error);