If _e_v_e_n_t___t_y_p_e is one of the core X protocol events then _s_e_l_e_c_t___d_a_t_a must be a pointer to a value of type _E_v_e_n_t_M_a_s_k, indicating the event mask to be used to select for the desired event. This event mask will be included in the value returned by _X_t_B_u_i_l_d_E_v_e_n_t_M_a_s_k. If the widget is realized _X_t_I_n_s_e_r_t_E_v_e_n_t_T_y_p_e_H_a_n_d_l_e_r calls _X_S_e_l_e_c_t_I_n_p_u_t if necessary. Specifying NULL for _s_e_l_e_c_t___d_a_t_a is equivalent to specifying a pointer to an event mask containing 0. This is similar to the _X_t_I_n_s_e_r_t_R_a_w_E_v_e_n_t_H_a_n_d_l_e_r function.
If _e_v_e_n_t___t_y_p_e specifies an extension event type then the semantics of the data pointed to by _s_e_l_e_c_t___d_a_t_a are defined by the extension selector registered for the specified event type.
In either case the Intrinsics are not required to copy the data pointed to by _s_e_l_e_c_t___d_a_t_a, so the caller must ensure that it remains valid as long as the event handler remains registered with this value of _s_e_l_e_c_t___d_a_t_a.
The _p_o_s_i_t_i_o_n argument allows the client to control the order of the invocation of event handlers registered for the same event type. If the client does not care about the order, it should normally specify _X_t_L_i_s_t_T_a_i_l, which registers this event handler after any previously registered handlers for this event type.
The _X_t_R_e_m_o_v_e_E_v_e_n_t_T_y_p_e_H_a_n_d_l_e_r function unregisters an even handler registered with _X_t_I_n_s_e_r_t_E_v_e_n_t_T_y_p_e_H_a_n_d_l_e_r for the specified event type. The request is ignored if _c_l_i_e_n_t___d_a_t_a does not match the value given with the handler was registered.
If _e_v_e_n_t___t_y_p_e specifies on of the core X protocol events, _s_e_l_e_c_t___d_a_t_a must be a pointer to a value of type _E_v_e_n_t_M_a_s_k, indicating the mask to be used to deselect for the appropriate event. If the widget is realized, _X_t_R_e_m_o_v_e_E_v_e_n_t_T_y_p_e_H_a_n_d_l_e_r calls _X_S_e_l_e_c_t_I_n_p_u_t if necessary. Specifying NULL for _s_e_l_e_c_t___d_a_t_a is equivalent to specifying a pointer to an event mask containing 0. This is similar to the _X_t_R_e_m_o_v_e_R_a_w_E_v_e_n_t_H_a_n_d_l_e_r function.
If _e_v_e_n_t___t_y_p_e specifies an extension event type then the semantics of the data pointed to by _s_e_l_e_c_t___d_a_t_a are defined by the extension selector registered for the specified event type.
The _X_t_R_e_g_i_s_t_e_r_E_x_t_e_n_s_i_o_n_S_e_l_e_c_t_o_r function registers a procedure to arrange for the delivery of extension events to widgets.
If _m_i_n___e_v_e_n_t___t_y_p_e and _m_a_x___e_v_e_n_t___t_y_p_e match the parameters to a previous call to _X_t_R_e_g_i_s_t_e_r_E_x_t_e_n_s_i_o_n_S_e_l_e_c_t_o_r for the same display, the _p_r_o_c and _c_l_i_e_n_t___d_a_t_a replace the previously registered values. If the range specified by _m_i_n___e_v_e_n_t___t_y_p_e and _m_a_x___e_v_e_n_t___t_y_p_e overlaps the range of the parameters to a previous call for the same display in any other way, an error results.
The _X_t_S_e_t_E_v_e_n_t_D_i_s_p_a_t_c_h_e_r function registers the event dispatcher procedure specified by _p_r_o_c for events with the type _e_v_e_n_t___t_y_p_e. The previously registered dispatcher (or the default dispatcher if there was no previously registered dispatcher) is returned. If _p_r_o_c is NULL, the default procedure is restored for the specified type.
In the future, when _X_t_D_i_s_p_a_t_c_h_E_v_e_n_t is called with an event of _e_v_e_n_t___t_y_p_e, the specified _p_r_o_c (or the default dispatcher) will be invoked to determine a widget ot which to dispatch the event.
The _X_t_D_i_s_p_a_t_c_h_E_v_e_n_t_T_o_W_i_d_g_e_t function scans the list of registered event handlers for the specified widget and calls each handler that has been registered for the specified event type, subject to the _c_o_n_t_i_n_u_e___t_o___d_i_s_p_a_t_c_h value returned by each handler. The Intrinsics behave as if event handlers were registered at the head of the list for _E_x_p_o_s_e, _N_o_E_x_p_o_s_e, _G_r_a_p_h_i_c_s_E_x_p_o_s_e, and _V_i_s_i_b_i_l_i_t_y_N_o_t_i_f_y events to invoke the widget's expose procedure according to the exposure compression rules and to update the widget's _v_i_s_i_b_l_e field if _v_i_s_i_b_l_e___i_n_t_e_r_e_s_t is _T_r_u_e. These internal event handlers never set _c_o_n_t_i_n_u_e___t_o___d_i_s_p_a_t_c_h to _F_a_l_s_e.
_X_t_D_i_s_p_a_t_c_h_E_v_e_n_t_T_o_W_i_d_g_e_t returns _T_r_u_e if any event handler was called and _F_a_l_s_e otherwise.