Setting up an ATK Signal Handler

Using the column_inserted signal as an example:

table_column_inserted_id = g_signal_connect_closure_by_id (my_atk_obj, 
g_signal_lookup("column_inserted", G_OBJECT_TYPE(my_atk_obj)), 0, 
g_cclosure_new(G_CALLBACK (_my_table_column_inserted_func), NULL, NULL), FALSE);

This will cause _my_table_column_inserted_func() to be called whenever a column_inserted signal is emitted on the AtkObject my_atk_object.

Connecting to a signal is slightly different if the signal supports detail. The children_changed signal supports the add detail. To connect to a signal when the add detail is also specified, this technique is used:

child_added_id = g_signal_connect_closure (my_atk_obj,"children_changed::add",
g_cclosure_new (G_CALLBACK(_my_children_changed_func), NULL, NULL), FALSE);

This will cause _my_children_changed_func() to be called whenever a children_changed signal with the add detail is emitted on the AtkObject my_atk_obj.