From c3cf34712e7d9be39c72729691a42c4206dacc6e Mon Sep 17 00:00:00 2001 From: Padraig O'Briain Date: Wed, 21 Nov 2001 14:52:34 +0000 Subject: [PATCH] Add enum AtkLayer and functions atk_object_get_layer and * atk/atkobject.[c|h], docs/atk-sections.txt, docs/tmpl/atkobject.sgml: Add enum AtkLayer and functions atk_object_get_layer and atk_object_get_mdi_zorder --- ChangeLog | 8 ++++- atk/atkobject.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++-- atk/atkobject.h | 27 +++++++++++++++ docs/atk-sections.txt | 3 ++ docs/tmpl/atkobject.sgml | 33 ++++++++++++++++++ 5 files changed, 155 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8b5e8e..5d86f3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-11-21 Padraig O'Briain + + * atk/atkobject.[c|h], docs/atk-sections.txt, docs/tmpl/atkobject.sgml: + Add enum AtkLayer and functions atk_object_get_layer and + atk_object_get_mdi_zorder + 2001-11-20 Padraig O'Briain * atk/atkobject.[c|h]: @@ -6,7 +12,7 @@ instead of AtkPropertyValues Update atk_object_notify_state_change() to emit state-change signal - * atk/atkstate.[c|h], docs.atkstate.sgml: + * atk/atkstate.[c|h], docs/tmpl/atkstate.sgml: Remove state ATK_STATE_COLLAPSED 2001-11-19 Bill Haneman diff --git a/atk/atkobject.c b/atk/atkobject.c index a93ddfc..c99c33d 100755 --- a/atk/atkobject.c +++ b/atk/atkobject.c @@ -31,9 +31,10 @@ enum PROP_NAME, PROP_DESCRIPTION, PROP_PARENT, /* ancestry has changed */ - PROP_STATE, /* AtkStateSet for the object has changed */ PROP_VALUE, PROP_ROLE, + PROP_LAYER, + PROP_MDI_ZORDER, PROP_TABLE_CAPTION, PROP_TABLE_COLUMN_DESCRIPTION, PROP_TABLE_COLUMN_HEADER, @@ -75,6 +76,7 @@ static G_CONST_RETURN gchar* (AtkObject *object); static AtkObject* atk_object_real_get_parent (AtkObject *object); static AtkRole atk_object_real_get_role (AtkObject *object); +static AtkLayer atk_object_real_get_layer (AtkObject *object); static AtkStateSet* atk_object_real_ref_state_set (AtkObject *object); static void atk_object_real_set_name (AtkObject *object, @@ -106,6 +108,8 @@ static const gchar* atk_object_name_property_description = "accessible-descripti static const gchar* atk_object_name_property_parent = "accessible-parent"; static const gchar* atk_object_name_property_value = "accessible-value"; static const gchar* atk_object_name_property_role = "accessible-role"; +static const gchar* atk_object_name_property_component_layer = "accessible-component-layer"; +static const gchar* atk_object_name_property_component_mdi_zorder = "accessible-component-mdi-zorder"; static const gchar* atk_object_name_property_table_caption = "accessible-table-caption"; static const gchar* atk_object_name_property_table_column_description = "accessible-table-column-description"; static const gchar* atk_object_name_property_table_column_header = "accessible-table-column-header"; @@ -157,6 +161,8 @@ atk_object_class_init (AtkObjectClass *klass) klass->get_index_in_parent = NULL; klass->ref_relation_set = atk_object_real_ref_relation_set; klass->get_role = atk_object_real_get_role; + klass->get_layer = atk_object_real_get_layer; + klass->get_mdi_zorder = NULL; klass->ref_state_set = atk_object_real_ref_state_set; klass->set_name = atk_object_real_set_name; klass->set_description = atk_object_real_set_description; @@ -211,12 +217,30 @@ atk_object_class_init (AtkObjectClass *klass) PROP_ROLE, g_param_spec_int (atk_object_name_property_role, "Accessible Role", - "The accessible role this object ", + "The accessible role of this object ", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, + PROP_LAYER, + g_param_spec_int (atk_object_name_property_component_layer, + "Accessible Layer", + "The accessible layer of this object ", + 0, + G_MAXINT, + 0, + G_PARAM_READABLE)); + g_object_class_install_property (gobject_class, + PROP_MDI_ZORDER, + g_param_spec_int (atk_object_name_property_component_mdi_zorder, + "Accessible MDI Value", + "The accessible MDI value of this object ", + G_MININT, + G_MAXINT, + G_MININT, + G_PARAM_READABLE)); + g_object_class_install_property (gobject_class, PROP_TABLE_CAPTION, g_param_spec_string (atk_object_name_property_table_caption, "Accessible Table Caption", @@ -523,6 +547,53 @@ atk_object_get_role (AtkObject *accessible) } /** + * atk_object_get_layer: + * @accessible: an #AtkObject + * + * Gets the layer of the accessible. + * + * Returns: an #AtkLayer which is the layer of the accessible + **/ +AtkLayer +atk_object_get_layer (AtkObject *accessible) +{ + AtkObjectClass *klass; + + g_return_val_if_fail (ATK_IS_OBJECT (accessible), ATK_LAYER_INVALID); + + klass = ATK_OBJECT_GET_CLASS (accessible); + if (klass->get_layer) + return (klass->get_layer) (accessible); + else + return ATK_LAYER_INVALID; +} + +/** + * atk_object_get_mdi_zorder: + * @accessible: an #AtkObject + * + * Gets the zorder of the accessible. The value G_MININT will be returned + * if the layer of the accessible is not ATK_LAYER_MDI. + * + * Returns: a gint which is the zorder of the accessible, i.e. the depth at + * which the component is shown in relation to other components in the same + * container. + **/ +gint +atk_object_get_mdi_zorder (AtkObject *accessible) +{ + AtkObjectClass *klass; + + g_return_val_if_fail (ATK_IS_OBJECT (accessible), G_MININT); + + klass = ATK_OBJECT_GET_CLASS (accessible); + if (klass->get_mdi_zorder) + return (klass->get_mdi_zorder) (accessible); + else + return G_MININT; +} + +/** * atk_object_ref_state_set: * @accessible: an #AtkObject * @@ -814,10 +885,15 @@ atk_object_real_get_property (GObject *object, 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: + g_value_set_int (value, atk_object_get_role (accessible)); + break; + case PROP_MDI_ZORDER: + g_value_set_int (value, atk_object_get_mdi_zorder (accessible)); + break; case PROP_PARENT: g_value_set_object (value, atk_object_get_parent (accessible)); break; @@ -879,6 +955,12 @@ atk_object_real_get_role (AtkObject *object) return object->role; } +static AtkLayer +atk_object_real_get_layer (AtkObject *object) +{ + return object->layer; +} + static AtkStateSet* atk_object_real_ref_state_set (AtkObject *accessible) { diff --git a/atk/atkobject.h b/atk/atkobject.h index 8987247..ff08a00 100755 --- a/atk/atkobject.h +++ b/atk/atkobject.h @@ -188,6 +188,28 @@ typedef enum AtkRole atk_role_register (const gchar *name); +/** + *AtkLayer: + *@ATK_LAYER_INVALID: The object does not have a layer + *@ATK_LAYER_BACKGROUND: This layer is reserved for the desktop background + *@ATK_LAYER_CANVAS: This layer is used for Canvas components + *@ATK_LAYER_WIDGET: This layer is normally used for components + *@ATK_LAYER_MDI: This layer is used for layered components + *@ATK_LAYER_POPUP: This layer is used for popup components, such as menus + *@ATK_LAYER_OVERLAY: This layer is reserved for future use. + * + * Describes the layer of a component + **/ +typedef enum +{ + ATK_LAYER_INVALID, + ATK_LAYER_BACKGROUND, + ATK_LAYER_CANVAS, + ATK_LAYER_WIDGET, + ATK_LAYER_MDI, + ATK_LAYER_POPUP, + ATK_LAYER_OVERLAY, +} AtkLayer; #define ATK_TYPE_OBJECT (atk_object_get_type ()) #define ATK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_OBJECT, AtkObject)) @@ -244,6 +266,7 @@ struct _AtkObject AtkObject *accessible_parent; AtkRole role; AtkRelationSet *relation_set; + AtkLayer layer; }; struct _AtkObjectClass @@ -287,6 +310,8 @@ struct _AtkObjectClass * Gets the role of the object */ AtkRole (* get_role) (AtkObject *accessible); + AtkLayer (* get_layer) (AtkObject *accessible); + gint (* get_mdi_zorder) (AtkObject *accessible); /* * Gets the state set of the object */ @@ -394,6 +419,8 @@ AtkObject* atk_object_ref_accessible_child (AtkObject *ac gint i); AtkRelationSet* atk_object_ref_relation_set (AtkObject *accessible); AtkRole atk_object_get_role (AtkObject *accessible); +AtkLayer atk_object_get_layer (AtkObject *accessible); +gint atk_object_get_mdi_zorder (AtkObject *accessible); AtkStateSet* atk_object_ref_state_set (AtkObject *accessible); gint atk_object_get_index_in_parent (AtkObject *accessible); void atk_object_set_name (AtkObject *accessible, diff --git a/docs/atk-sections.txt b/docs/atk-sections.txt index 4bc486d..966621a 100644 --- a/docs/atk-sections.txt +++ b/docs/atk-sections.txt @@ -143,6 +143,7 @@ ATK_NO_OP_OBJECT_FACTORY_GET_CLASS AtkObject AtkRole atk_role_register +AtkLayer AtkImplementor AtkImplementorIface AtkRelationSet @@ -155,6 +156,8 @@ atk_object_get_parent atk_object_get_n_accessible_children atk_object_ref_accessible_child atk_object_ref_relation_set +atk_object_get_layer +atk_object_get_mdi_zorder atk_object_get_role atk_object_ref_state_set atk_object_get_index_in_parent diff --git a/docs/tmpl/atkobject.sgml b/docs/tmpl/atkobject.sgml index 37091eb..5cab149 100644 --- a/docs/tmpl/atkobject.sgml +++ b/docs/tmpl/atkobject.sgml @@ -104,6 +104,19 @@ of the other ATK interfaces: @Returns: + + + + + +@ATK_LAYER_INVALID: +@ATK_LAYER_BACKGROUND: +@ATK_LAYER_CANVAS: +@ATK_LAYER_WIDGET: +@ATK_LAYER_MDI: +@ATK_LAYER_POPUP: +@ATK_LAYER_OVERLAY: + @@ -208,6 +221,26 @@ of the other ATK interfaces: @Returns: + + + + + +@accessible: +@Returns: + + + + + + + +@accessible: +@Returns: + +@acessible: + + -- 2.7.4