📄 atkobject.c
字号:
if (klass->connect_property_change_handler) return (klass->connect_property_change_handler) (accessible, handler); else return 0;}/** * atk_object_remove_property_change_handler: * @accessible: an #AtkObject * @handler_id : a guint which identifies the handler to be removed. * * Removes a property change handler. **/voidatk_object_remove_property_change_handler (AtkObject *accessible, guint handler_id){ AtkObjectClass *klass; g_return_if_fail (ATK_IS_OBJECT (accessible)); klass = ATK_OBJECT_GET_CLASS (accessible); if (klass->remove_property_change_handler) (klass->remove_property_change_handler) (accessible, handler_id);}/** * atk_object_notify_state_change: * @accessible: an #AtkObject * @state: an #AtkState whose state is changed * @value : a gboolean which indicates whether the state is being set on or off * * Emits a state-change signal for the specified state. **/voidatk_object_notify_state_change (AtkObject *accessible, AtkState state, gboolean value){ G_CONST_RETURN gchar* name; name = atk_state_type_get_name (state); g_signal_emit (accessible, atk_object_signals[STATE_CHANGE], g_quark_from_string (name), name, value, NULL);}/** * atk_implementor_ref_accessible: * @implementor: The #GObject instance which should implement #AtkImplementorIface * if a non-null return value is required. * * Gets a reference to an object's #AtkObject implementation, if * the object implements #AtkObjectIface * * Returns: a reference to an object's #AtkObject implementation */AtkObject *atk_implementor_ref_accessible (AtkImplementor *object){ AtkImplementorIface *iface; AtkObject *accessible = NULL; g_return_val_if_fail (ATK_IS_IMPLEMENTOR (object), NULL); iface = ATK_IMPLEMENTOR_GET_IFACE (object); if (iface != NULL) accessible = iface->ref_accessible (object); g_return_val_if_fail ((accessible != NULL), NULL); return accessible;}static AtkRelationSet*atk_object_real_ref_relation_set (AtkObject *accessible){ g_return_val_if_fail (accessible->relation_set, NULL); g_object_ref (accessible->relation_set); return accessible->relation_set;}static voidatk_object_real_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec){ AtkObject *accessible; accessible = ATK_OBJECT (object); switch (prop_id) { case PROP_NAME: atk_object_set_name (accessible, g_value_get_string (value)); break; case PROP_DESCRIPTION: atk_object_set_description (accessible, g_value_get_string (value)); break; case PROP_ROLE: atk_object_set_role (accessible, g_value_get_int (value)); break; case PROP_PARENT: atk_object_set_parent (accessible, g_value_get_object (value)); break; case PROP_VALUE: if (ATK_IS_VALUE (accessible)) atk_value_set_current_value (ATK_VALUE (accessible), value); break; 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; 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; 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); } 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 = { 0, }; 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){ GTypeClass *type_class; GEnumValue *value; gchar *name = NULL; type_class = g_type_class_ref (ATK_TYPE_ROLE); g_return_val_if_fail (G_IS_ENUM_CLASS (type_class), NULL); value = g_enum_get_value (G_ENUM_CLASS (type_class), role); if (value) { name = value->value_nick; } else { if (extra_roles) { gint n = role; n -= ATK_ROLE_LAST_DEFINED + 1; if (n < extra_roles->len) name = g_ptr_array_index (extra_roles, n); } } g_type_class_unref (type_class); return name;}#ifdef G_OS_WIN32#undef ATKLOCALEDIR#define ATKLOCALEDIR get_atk_locale_dir()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -