<!-- ##### SECTION Title ##### -->
Signals

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>


<!-- ##### SECTION See_Also ##### -->
<para>

</para>


<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT GSignalInvocationHint ##### -->
<para>

</para>

@signal_id: 
@detail: 
@run_type: 

<!-- ##### USER_FUNCTION GSignalAccumulator ##### -->
<para>

</para>

@ihint: 
@return_accu: 
@handler_return: 
@data: 
@Returns: 


<!-- ##### TYPEDEF GSignalCMarshaller ##### -->
<para>

</para>


<!-- ##### TYPEDEF GSignalCVaMarshaller ##### -->
<para>

</para>


<!-- ##### USER_FUNCTION GSignalEmissionHook ##### -->
<para>

</para>

@ihint: 
@n_param_values: 
@param_values: 
@data: 
@Returns: 


<!-- ##### ENUM GSignalFlags ##### -->
<para>

</para>

@G_SIGNAL_RUN_FIRST: 
@G_SIGNAL_RUN_LAST: 
@G_SIGNAL_RUN_CLEANUP: 
@G_SIGNAL_NO_RECURSE: 
@G_SIGNAL_DETAILED: 
@G_SIGNAL_ACTION: 
@G_SIGNAL_NO_HOOKS: 
@G_SIGNAL_MUST_COLLECT: 
@G_SIGNAL_DEPRECATED: 

<!-- ##### ENUM GSignalMatchType ##### -->
<para>

</para>

@G_SIGNAL_MATCH_ID: 
@G_SIGNAL_MATCH_DETAIL: 
@G_SIGNAL_MATCH_CLOSURE: 
@G_SIGNAL_MATCH_FUNC: 
@G_SIGNAL_MATCH_DATA: 
@G_SIGNAL_MATCH_UNBLOCKED: 

<!-- ##### STRUCT GSignalQuery ##### -->
<para>

</para>

@signal_id: 
@signal_name: 
@itype: 
@signal_flags: 
@return_type: 
@n_params: 
@param_types: 

<!-- ##### MACRO G_SIGNAL_TYPE_STATIC_SCOPE ##### -->
<para>

</para>



<!-- ##### MACRO G_SIGNAL_MATCH_MASK ##### -->
<para>

</para>



<!-- ##### MACRO G_SIGNAL_FLAGS_MASK ##### -->
<para>

</para>



<!-- ##### FUNCTION g_signal_new ##### -->
<para>

</para>

@signal_name: 
@itype: 
@signal_flags: 
@class_offset: 
@accumulator: 
@accu_data: 
@c_marshaller: 
@return_type: 
@n_params: 
@...: 
@Returns: 


<!-- ##### FUNCTION g_signal_newv ##### -->
<para>

</para>

@signal_name: 
@itype: 
@signal_flags: 
@class_closure: 
@accumulator: 
@accu_data: 
@c_marshaller: 
@return_type: 
@n_params: 
@param_types: 
@Returns: 


<!-- ##### FUNCTION g_signal_new_valist ##### -->
<para>

</para>

@signal_name: 
@itype: 
@signal_flags: 
@class_closure: 
@accumulator: 
@accu_data: 
@c_marshaller: 
@return_type: 
@n_params: 
@args: 
@Returns: 


<!-- ##### FUNCTION g_signal_set_va_marshaller ##### -->
<para>

</para>

@signal_id: 
@instance_type: 
@va_marshaller: 


<!-- ##### FUNCTION g_signal_query ##### -->
<para>

</para>

@signal_id: 
@query: 


<!-- ##### FUNCTION g_signal_lookup ##### -->
<para>

</para>

@name: 
@itype: 
@Returns: 


<!-- ##### FUNCTION g_signal_name ##### -->
<para>

</para>

@signal_id: 
@Returns: 


<!-- ##### FUNCTION g_signal_list_ids ##### -->
<para>

</para>

@itype: 
@n_ids: 
@Returns: 


<!-- ##### FUNCTION g_signal_emit ##### -->
<para>

</para>

@instance: 
@signal_id: 
@detail: 
@...: 


<!-- ##### FUNCTION g_signal_emit_by_name ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@...: 


<!-- ##### FUNCTION g_signal_emitv ##### -->
<para>

</para>

@instance_and_params: 
@signal_id: 
@detail: 
@return_value: 


<!-- ##### FUNCTION g_signal_emit_valist ##### -->
<para>

</para>

@instance: 
@signal_id: 
@detail: 
@var_args: 


<!-- ##### MACRO g_signal_connect ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@c_handler: 
@data: 


<!-- ##### MACRO g_signal_connect_after ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@c_handler: 
@data: 


<!-- ##### MACRO g_signal_connect_swapped ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@c_handler: 
@data: 


<!-- ##### FUNCTION g_signal_connect_object ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@c_handler: 
@gobject: 
@connect_flags: 
@Returns: 


<!-- ##### ENUM GConnectFlags ##### -->
<para>

</para>

@G_CONNECT_AFTER: 
@G_CONNECT_SWAPPED: 

<!-- ##### FUNCTION g_signal_connect_data ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@c_handler: 
@data: 
@destroy_data: 
@connect_flags: 
@Returns: 


<!-- ##### FUNCTION g_signal_connect_closure ##### -->
<para>

</para>

@instance: 
@detailed_signal: 
@closure: 
@after: 
@Returns: 


<!-- ##### FUNCTION g_signal_connect_closure_by_id ##### -->
<para>

</para>

@instance: 
@signal_id: 
@detail: 
@closure: 
@after: 
@Returns: 


<!-- ##### FUNCTION g_signal_handler_block ##### -->
<para>

</para>

@instance: 
@handler_id: 


<!-- ##### FUNCTION g_signal_handler_unblock ##### -->
<para>

</para>

@instance: 
@handler_id: 


<!-- ##### FUNCTION g_signal_handler_disconnect ##### -->
<para>

</para>

@instance: 
@handler_id: 


<!-- ##### FUNCTION g_signal_handler_find ##### -->
<para>

</para>

@instance: 
@mask: 
@signal_id: 
@detail: 
@closure: 
@func: 
@data: 
@Returns: 


<!-- ##### FUNCTION g_signal_handlers_block_matched ##### -->
<para>

</para>

@instance: 
@mask: 
@signal_id: 
@detail: 
@closure: 
@func: 
@data: 
@Returns: 


<!-- ##### FUNCTION g_signal_handlers_unblock_matched ##### -->
<para>

</para>

@instance: 
@mask: 
@signal_id: 
@detail: 
@closure: 
@func: 
@data: 
@Returns: 


<!-- ##### FUNCTION g_signal_handlers_disconnect_matched ##### -->
<para>

</para>

@instance: 
@mask: 
@signal_id: 
@detail: 
@closure: 
@func: 
@data: 
@Returns: 


<!-- ##### FUNCTION g_signal_handler_is_connected ##### -->
<para>

</para>

@instance: 
@handler_id: 
@Returns: 


<!-- ##### MACRO g_signal_handlers_block_by_func ##### -->
<para>

</para>

@instance: 
@func: 
@data: 


<!-- ##### MACRO g_signal_handlers_unblock_by_func ##### -->
<para>

</para>

@instance: 
@func: 
@data: 


<!-- ##### MACRO g_signal_handlers_disconnect_by_func ##### -->
<para>

</para>

@instance: 
@func: 
@data: 


<!-- ##### MACRO g_signal_handlers_disconnect_by_data ##### -->
<para>

</para>

@instance: 
@data: 


<!-- ##### FUNCTION g_signal_has_handler_pending ##### -->
<para>

</para>

@instance: 
@signal_id: 
@detail: 
@may_be_blocked: 
@Returns: 


<!-- ##### FUNCTION g_signal_stop_emission ##### -->
<para>

</para>

@instance: 
@signal_id: 
@detail: 


<!-- ##### FUNCTION g_signal_stop_emission_by_name ##### -->
<para>

</para>

@instance: 
@detailed_signal: 


<!-- ##### FUNCTION g_signal_override_class_closure ##### -->
<para>

</para>

@signal_id: 
@instance_type: 
@class_closure: 


<!-- ##### FUNCTION g_signal_chain_from_overridden ##### -->
<para>

</para>

@instance_and_params: 
@return_value: 


<!-- ##### FUNCTION g_signal_new_class_handler ##### -->
<para>

</para>

@signal_name: 
@itype: 
@signal_flags: 
@class_handler: 
@accumulator: 
@accu_data: 
@c_marshaller: 
@return_type: 
@n_params: 
@...: 
@Returns: 


<!-- ##### FUNCTION g_signal_override_class_handler ##### -->
<para>

</para>

@signal_name: 
@instance_type: 
@class_handler: 


<!-- ##### FUNCTION g_signal_chain_from_overridden_handler ##### -->
<para>

</para>

@instance: 
@...: 


<!-- ##### FUNCTION g_signal_add_emission_hook ##### -->
<para>

</para>

@signal_id: 
@detail: 
@hook_func: 
@hook_data: 
@data_destroy: 
@Returns: 


<!-- ##### FUNCTION g_signal_remove_emission_hook ##### -->
<para>

</para>

@signal_id: 
@hook_id: 


<!-- ##### FUNCTION g_signal_parse_name ##### -->
<para>

</para>

@detailed_signal: 
@itype: 
@signal_id_p: 
@detail_p: 
@force_detail_quark: 
@Returns: 


<!-- ##### FUNCTION g_signal_get_invocation_hint ##### -->
<para>

</para>

@instance: 
@Returns: 


<!-- ##### FUNCTION g_signal_type_cclosure_new ##### -->
<para>

</para>

@itype: 
@struct_offset: 
@Returns: 


<!-- ##### FUNCTION g_signal_accumulator_first_wins ##### -->
<para>

</para>

@ihint: 
@return_accu: 
@handler_return: 
@dummy: 
@Returns: 


<!-- ##### FUNCTION g_signal_accumulator_true_handled ##### -->
<para>

</para>

@ihint: 
@return_accu: 
@handler_return: 
@dummy: 
@Returns: 


