NAME

XtCreateSelectionRequest, XtSendSelectionRequest, XtCancelSelectionRequest - bundle multiple selection conversion requests into a single request using MULTIPLE target

SYNTAX

void XtCreateSelectionRequest(Widget _r_e_q_u_e_s_t_o_r, Atom _s_e_l_e_c_t_i_o_n): void XtSendSelectionRequest(Widget _r_e_q_u_e_s_t_o_r, Atom _s_e_l_e_c_t_i_o_n, Time _t_i_m_e); void XtCancelSelectionRequest(Widget _r_e_q_u_e_s_t_o_r, Atom _s_e_l_e_c_t_i_o_n);

ARGUMENTS

_r_e_q_u_e_s_t_o_r Specifies the widget making the request. Must be of class Core or a
subclass thereof.
_s_e_l_e_c_t_i_o_n Specifies the particular selection desired.
_t_i_m_e Specifies the timestamp to be used in making the request.

DESCRIPTION

When _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t is called, subsequent calls to _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e and _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_I_n_c_r_e_m_e_n_t_a_l with the requestor and selection as specified to _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t will be bundled into a single selection conversion request with multiple targets. The request is actually initiated by calling _X_t_S_e_n_d_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t.

When _X_t_S_e_n_d_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t is called with a value of _r_e_q_u_e_s_t_o_r and _s_e_l_e_c_t_i_o_n matching a previous call to _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t, a selection conversion request is actually sent to the selection owner. If a single target request is queued, that request is made. If multiple targets are queued they are bundled into a single request with the target MULTIPLE using the specified timestamp. As the conversions are made, the callbacks associated with each _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e and _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_I_n_c_r_e_m_e_n_t_a_l are invoked in turn.

Multi-threaded applications should lock the application context before calling _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t and release the lock after calling _X_t_S_e_n_d_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t to ensure that the thread assembling the request is safe from interference by another thread assembling a different request naming the same widget and selection.

When _X_t_C_a_n_c_e_l_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t is called, any requests queued since the last call to _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t are cleaned up. Subsequent calls to _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e, _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_s, _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_I_n_c_r_e_m_e_n_t_a_l, and _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_s_I_n_c_r_e_m_e_n_t_a_l will not be deferred.

SEE ALSO


_X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s _- _C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e
_X_l_i_b _- _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e