Property Change Notifications



This note discusses the property change notifications we have with the ATK 
API and their implementation in ATK and GAIL.

I would welcome suggestions about AtkState values, you expect notification
of, and other properties for which change notification is expected.
I am aware of the following, which are not implemented yet:

"ancestry has changed"
"children have changed in number or identity"


I have summarized below the current position.

When a property change notification occurs only the new value will be
available unless explicitly stated.

accessible-name
accessible-description

  These are implemented as standard Gobject properties and a g_object_notify()
  call is made when the property is changed.

accessible-state

  For accessible state the old and new values will be available but only
  one of them will be set and will indicate how the state has changed; 
  e.g. if old_value is ATK_STATE_FOCUSED it means that the object has lost
  focus and if the new value is ATK_STATE_FOCUSED it means that the object
  has gained focus. 

  Changes of the following states will be notified:
 
  ATK_STATE_FOCUSED

Originally this was implemented by by specifying a signal handler for 
focus-in and focus-out events on the GtkWidget. I would prefer to 
implement usoing "has-focus" property of GtkWidget but there are issues 
in GTK with property notifications that are holding me up at the moment.
 

  ATK_STATE_DEFUNCT

When the AtkObject corresponding to the widget is created a signal handler
for the "destroy" signal on the widget is specified in the call to
gtk_accessible_connect_widget_destroyed() which is called from 
gail_widget_set_widget() which is called each time a widget's accessible
is created. When the signal handler, gail_widget_destroyed(), is called
a property changed signal is emitted for the property "accessible-state" with 
the new value being ATK_STATE_DEFUNCT.


  ATK_STATE_VISIBLE

I hope to associate this with the GtkWidget property "visible".

  ATK_STATE_SHOWING

I hope to associate this with the GtkWidget property ""mapped".






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]