NAME

XSetDeviceButtonMapping, XGetDeviceButtonMapping - query or change device button mappings

SYNTAX

int XSetDeviceButtonMapping(Display *_d_i_s_p_l_a_y, XDevice *_d_e_v_i_c_e, unsigned char _m_a_p[], int _n_m_a_p); int XGetDeviceButtonMapping(Display *_d_i_s_p_l_a_y, XDevice *_d_e_v_i_c_e, unsigned char _m_a_p___r_e_t_u_r_n[], int _n_m_a_p);

ARGUMENTS

display
Specifies the connection to the X server.
device
Specifies the device whose button mapping is to be queried or changed.
map
Specifies the mapping list.
map_return
Returns the mapping list.
nmap
Specifies the number of items in the mapping list.

DESCRIPTION

The _X_S_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g request sets the mapping of the specified device. If it succeeds, the X server generates a _D_e_v_i_c_e_M_a_p_p_i_n_g_N_o_t_i_f_y event, and _X_S_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g returns _M_a_p_p_i_n_g_S_u_c_c_e_s_s. Element map[i] defines the logical button number for the physical button i+1. The length of the list must be the same as _X_G_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g would return, or a _B_a_d_V_a_l_u_e error results. A zero element disables a button, and elements are not restricted in value by the number of physical buttons. However, no two elements can have the same nonzero value, or a _B_a_d_V_a_l_u_e error results. If any of the buttons to be altered are logically in the down state, _X_S_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g returns _M_a_p_p_i_n_g_B_u_s_y, and the mapping is not changed.

_X_S_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g can generate _B_a_d_D_e_v_i_c_e, _B_a_d_M_a_t_c_h, and _B_a_d_V_a_l_u_e errors.

The _X_G_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g request returns the current mapping of the specified device. Buttons are numbered starting from one. _X_G_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g returns the number of physical buttons actually on the device. The nominal mapping for a device is map[i]=i+1. The nmap argument specifies the length of the array where the device mapping is returned, and only the first nmap elements are returned in map_return.

_X_G_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g can generate _B_a_d_D_e_v_i_c_e or _B_a_d_M_a_t_c_h errors.

DIAGNOSTICS

_B_a_d_D_e_v_i_c_e
An invalid device was specified. The specified device does not exist or has not been opened by this client via _X_O_p_e_n_I_n_p_u_t_D_e_v_i_c_e. This error may also occur if the specified device is the X keyboard or X pointer device.
_B_a_d_M_a_t_c_h
This error may occur if an _X_G_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g or _X_S_e_t_D_e_v_i_c_e_B_u_t_t_o_n_M_a_p_p_i_n_g request was made specifying a device that has no buttons.
_B_a_d_V_a_l_u_e
Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.

SEE ALSO

XChangeDeviceKeyboardControl(3X),
XChangeDeviceKeyMapping(3X)
XChangeDeviceModifierMapping(3X)

_P_r_o_g_r_a_m_m_i_n_g _W_i_t_h _X_l_i_b