⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atkobject.c

📁 The ATK library provides a set of interfaces for accessibility.By supporting the ATK interfaces, an
💻 C
📖 第 1 页 / 共 4 页
字号:
    case PROP_TABLE_SUMMARY:      if (ATK_IS_TABLE (accessible))        atk_table_set_summary (ATK_TABLE (accessible), g_value_get_object (value));      break;    case PROP_TABLE_CAPTION_OBJECT:      if (ATK_IS_TABLE (accessible))        atk_table_set_caption (ATK_TABLE (accessible), g_value_get_object (value));      break;    default:      break;    }}static voidatk_object_real_get_property (GObject      *object,                              guint         prop_id,                              GValue       *value,                              GParamSpec   *pspec){  AtkObject *accessible;  accessible = ATK_OBJECT (object);  switch (prop_id)    {    case PROP_NAME:      g_value_set_string (value, atk_object_get_name (accessible));      break;    case PROP_DESCRIPTION:      g_value_set_string (value, atk_object_get_description (accessible));      break;    case PROP_ROLE:      g_value_set_int (value, atk_object_get_role (accessible));      break;    case PROP_LAYER:      if (ATK_IS_COMPONENT (accessible))        g_value_set_int (value, atk_component_get_layer (ATK_COMPONENT (accessible)));      break;    case PROP_MDI_ZORDER:      if (ATK_IS_COMPONENT (accessible))        g_value_set_int (value, atk_component_get_mdi_zorder (ATK_COMPONENT (accessible)));      break;    case PROP_PARENT:      g_value_set_object (value, atk_object_get_parent (accessible));      break;    case PROP_VALUE:      if (ATK_IS_VALUE (accessible))        atk_value_get_current_value (ATK_VALUE (accessible), value);      break;    case PROP_TABLE_SUMMARY:      if (ATK_IS_TABLE (accessible))        g_value_set_object (value, atk_table_get_summary (ATK_TABLE (accessible)));      break;    case PROP_TABLE_CAPTION_OBJECT:      if (ATK_IS_TABLE (accessible))        g_value_set_object (value, atk_table_get_caption (ATK_TABLE (accessible)));      break;    case PROP_HYPERTEXT_NUM_LINKS:      if (ATK_IS_HYPERTEXT (accessible))        g_value_set_int (value, atk_hypertext_get_n_links (ATK_HYPERTEXT (accessible)));      break;    default:      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);      break;    }}static voidatk_object_finalize (GObject *object){  AtkObject        *accessible;  g_return_if_fail (ATK_IS_OBJECT (object));  accessible = ATK_OBJECT (object);  g_free (accessible->name);  g_free (accessible->description);  /*   * Free memory allocated for relation set if it have been allocated.   */  if (accessible->relation_set)    g_object_unref (accessible->relation_set);  if (accessible->accessible_parent)    g_object_unref (accessible->accessible_parent);  G_OBJECT_CLASS (parent_class)->finalize (object);}static G_CONST_RETURN gchar*atk_object_real_get_name (AtkObject *object){  return object->name;}static G_CONST_RETURN gchar*atk_object_real_get_description (AtkObject *object){  return object->description;}static AtkObject*atk_object_real_get_parent (AtkObject       *object){  return object->accessible_parent;}static AtkRoleatk_object_real_get_role (AtkObject       *object){  return object->role;}static AtkLayeratk_object_real_get_layer (AtkObject       *object){  return object->layer;}static AtkStateSet*atk_object_real_ref_state_set (AtkObject *accessible) {  AtkStateSet *state_set;  AtkObject *ap;  AtkObject *focus_object;  state_set = atk_state_set_new ();  ap = atk_object_get_parent (accessible);  if (ap)    if (ATK_IS_SELECTION (ap))      {        int i;        atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);        i = atk_object_get_index_in_parent (accessible);        if (i >= 0)          if (atk_selection_is_child_selected(ATK_SELECTION (ap), i))            atk_state_set_add_state (state_set, ATK_STATE_SELECTED);      }   focus_object = atk_get_focus_object ();  if (focus_object == accessible)    atk_state_set_add_state (state_set, ATK_STATE_FOCUSED);  return state_set; }static voidatk_object_real_set_name (AtkObject       *object,                          const gchar     *name){  g_free (object->name);  object->name = g_strdup (name);}static voidatk_object_real_set_description (AtkObject       *object,                                 const gchar     *description){  g_free (object->description);  object->description = g_strdup (description);}static voidatk_object_real_set_parent (AtkObject       *object,                            AtkObject       *parent){  if (object->accessible_parent)    g_object_unref (object->accessible_parent);  object->accessible_parent = parent;  if (object->accessible_parent)    g_object_ref (object->accessible_parent);}static voidatk_object_real_set_role (AtkObject *object,                          AtkRole   role){  object->role = role;}static guintatk_object_real_connect_property_change_handler (AtkObject                *obj,                                                 AtkPropertyChangeHandler *handler){  return g_signal_connect_closure_by_id (obj,                                         atk_object_signals[PROPERTY_CHANGE],                                         0,                                         g_cclosure_new (                                         G_CALLBACK (handler), NULL,                                         (GClosureNotify) NULL),                                         FALSE);}static voidatk_object_real_remove_property_change_handler (AtkObject           *obj,                                          guint               handler_id){  g_signal_handler_disconnect (obj, handler_id);}/** * atk_object_initialize: * @accessible: a #AtkObject * @data: a #gpointer which identifies the object for which the AtkObject was created. * * This function is called when implementing subclasses of #AtkObject. * It does initialization required for the new object. It is intended * that this function should called only in the ..._new() functions used * to create an instance of a subclass of #AtkObject **/voidatk_object_initialize (AtkObject  *accessible,                       gpointer   data){  AtkObjectClass *klass;  g_return_if_fail (ATK_IS_OBJECT (accessible));  klass = ATK_OBJECT_GET_CLASS (accessible);  if (klass->initialize)    klass->initialize (accessible, data);}/* * This function is a signal handler for notify signal which gets emitted * when a property changes value. * * It constructs an AtkPropertyValues structure and emits a "property_changed" * signal which causes the user specified AtkPropertyChangeHandler * to be called. */static voidatk_object_notify (GObject     *obj,                   GParamSpec  *pspec){  AtkPropertyValues values = { NULL, };  g_value_init (&values.new_value, pspec->value_type);  g_object_get_property (obj, pspec->name, &values.new_value);  values.property_name = pspec->name;  g_signal_emit (obj, atk_object_signals[PROPERTY_CHANGE],                 g_quark_from_string (pspec->name),                 &values, NULL);  g_value_unset (&values.new_value);}/** * atk_role_get_name: * @role: The #AtkRole whose name is required * * Gets the description string describing the #AtkRole @role. * * Returns: the string describing the AtkRole */G_CONST_RETURN gchar*atk_role_get_name (AtkRole role){  if (role >= 0 && role < ATK_ROLE_LAST_DEFINED)    return roles + roles_offsets[role];  if (extra_roles)    {      gint n = role;      n -= ATK_ROLE_LAST_DEFINED + 1;      if (n >= 0 && n < extra_roles->len)        return g_ptr_array_index (extra_roles, n);    }  return NULL;}/** * atk_role_get_localized_name: * @role: The #AtkRole whose localized name is required * * Gets the localized description string describing the #AtkRole @role. * * Returns: the localized string describing the AtkRole **/G_CONST_RETURN gchar*atk_role_get_localized_name (AtkRole role){  gettext_initialization ();  if (role >= 0 && role < ATK_ROLE_LAST_DEFINED)    return dgettext (GETTEXT_PACKAGE, roles + roles_offsets[role]);  return atk_role_get_name (role);}/** * atk_role_for_name: * @name: a string which is the (non-localized) name of an ATK role. * * Get the #AtkRole type corresponding to a rolew name. * * Returns: the #AtkRole enumerated type corresponding to the specifiedname, *          or #ATK_ROLE_INVALID if no matching role is found. **/AtkRoleatk_role_for_name (const gchar *name){  AtkRole role = ATK_ROLE_INVALID;  gint i;  g_return_val_if_fail (name, ATK_ROLE_INVALID);  for (i = 0; i < G_N_ELEMENTS (roles_offsets); i++)    {      if (strcmp (name, roles + roles_offsets[i]) == 0)        return (AtkRole) i;    }  if (extra_roles)    {      for (i = 0; i < extra_roles->len; i++)        {          gchar *extra_role = (gchar *)g_ptr_array_index (extra_roles, i);          g_return_val_if_fail (extra_role, ATK_ROLE_INVALID);          if (strcmp (name, extra_role) == 0)            {              role = i + 1 + ATK_ROLE_LAST_DEFINED;              break;            }        }    }    return role;}/** * atk_object_add_relationship: * @object: The #AtkObject to which an AtkRelation is to be added.  * @relationship: The #AtkRelationType of the relation * @target: The #AtkObject which is to be the target of the relation. * * Adds a relationship of the specified type with the specified target. * * Returns TRUE if the relationship is added. **/gbooleanatk_object_add_relationship (AtkObject       *object,                             AtkRelationType relationship,                             AtkObject       *target){  AtkObject *array[1];  AtkRelation *relation;  g_return_val_if_fail (ATK_IS_OBJECT (object), FALSE);  g_return_val_if_fail (ATK_IS_OBJECT (target), FALSE);  array[0] = target;  relation = atk_relation_new (array, 1, relationship);  atk_relation_set_add (object->relation_set, relation);  g_object_unref (relation);  return TRUE;}/** * atk_object_remove_relationship: * @object: The #AtkObject from which an AtkRelation is to be removed.  * @relationship: The #AtkRelationType of the relation * @target: The #AtkObject which is the target of the relation to be removed. * * Removes a relationship of the specified type with the specified target. * * Returns TRUE if the relationship is removed. **/gbooleanatk_object_remove_relationship (AtkObject       *object,                                AtkRelationType relationship,                                AtkObject       *target){  gboolean ret = FALSE;  AtkRelation *relation;  GPtrArray *array;  g_return_val_if_fail (ATK_IS_OBJECT (object), FALSE);  g_return_val_if_fail (ATK_IS_OBJECT (target), FALSE);  relation = atk_relation_set_get_relation_by_type (object->relation_set, relationship);  if (relation)    {      ret = atk_relation_remove_target (relation, target);      array = atk_relation_get_target (relation);      if (!array || array->len == 0)        atk_relation_set_remove (object->relation_set, relation);    }  return ret;}static voidatk_object_real_initialize (AtkObject *accessible,                            gpointer  data){  return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -