Add man pages for XKB API's

Man pages originally written for X11R6.4 integration to Solaris 7 11/99
Sun bug id 4258344: Add new XKB API manpages for 6.4 upgrade
<http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=4258344>

(Volunteer needed to convert prototypes in man pages to ANSI C style...)
This commit is contained in:
Dennis Arellano 1999-08-19 00:00:00 -07:00 committed by Alan Coopersmith
parent f640a49b5e
commit d9954c6f6f
200 changed files with 27520 additions and 0 deletions

146
man/xkb/XkbActionCtrls.man Normal file
View file

@ -0,0 +1,146 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbActionCtrls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbActionCtrls \- Returns the ctrls fields of act converted to an unsigned int
.SH SYNOPSIS
.B unsigned int XkbActionCtrls macro
(
.I act
)
.br
XkbCtrlsAction \fIact\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- act
action from which to extract controls
.SH DESCRIPTION
.LP
Actions associated with the XkbCtrlsAction structure change the state of the
boolean controls.
The
.I type
field can have any one of the values shown in Table 1.
.TS
c s
l l
l lw(4i).
Table 1 Controls Action Types
_
Type Effect
_
XkbSA_SetControls T{
A key press enables any boolean controls specified in the ctrls fields that were
not already enabled at
the time of the key press.
A key release disables any controls enabled by the key press.
This action can cause XkbControlsNotify events.
T}
XkbSA_LockControls T{
If the XkbSA_LockNoLock bit is not set in the flags field, a key press enables
any controls specified in
the ctrls fields that were not already enabled at the time of the key press.
.br
If the XkbSA_LockNoUnlock bit is not set in the flags field, a key release
disables any controls
specified in the ctrls fields that were not already disabled at the time of the
key press.
.br
This action can cause XkbControlsNotify events.
T}
.TE
The
.I flags
field is composed of the bitwise inclusive OR of the masks shown in Table 2.
.TS
c s
l l
l lw(4i).
Table 2 Control Action Flags
_
Flag Meaning
_
XkbSA_LockNoLock T{
If set, and the action type is XkbSA_LockControls, the server only disables
controls.
T}
XkbSA_LockNoUnlock T{
If set, and the action type is XkbSA_LockControls, the server only enables
controls.
T}
.TE
The XkbSA_SetControls action implements a key that enables a boolean control
when pressed and disables it
when released. The XkbSA_LockControls action is used to implement a key that
toggles the state of a
boolean control each time it is pressed and released. The XkbSA_LockNoLock and
XkbSA_LockNoUnlock flags
allow modifying the toggling behavior to only unlock or only lock the boolean
control.
The
.I ctrls0, ctrls1, ctrls2,
and
.I ctrls3
fields represent the boolean controls in the
.I enabled_ctrls
field of the controls structure. Xkb macros, to convert between the two formats.
.I XkbActionCtrls
returns the
.I ctrls
fields of
.I act
converted to an unsigned int.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbCtrlsAction {
unsigned char type; /* XkbSA_SetControls, XkbSA_LockControls */
unsigned char flags; /* with type, controls enabling and disabling
of controls */
unsigned char ctrls3; /* ctrls0 through ctrls3 represent the boolean
controls */
unsigned char ctrls2; /* ctrls0 through ctrls3 represent the boolean
controls */
unsigned char ctrls1; /* ctrls0 through ctrls3 represent the boolean
controls */
unsigned char ctrls0; /* ctrls0 through ctrls3 represent the boolean
controls */
} XkbCtrlsAction;
.fi

View file

@ -0,0 +1,131 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddDeviceLedInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddDeviceLedInfo \- Initialize an XkbDeviceLedInfoRec structure
.SH SYNOPSIS
.B XkbDeviceLedInfoPtr XkbAddDeviceLedInfo
(
.I device_info,
.I led_class,
.I led_id
)
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
unsigned int \fIled_class\fP\^;
.br
unsigned int \fIled_id\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- device_info
structure in which to add LED info
.TP
.I \- led_class
input extension class for LED device of interest
.TP
.I \- led_id
input extension ID for LED device of interest
.SH DESCRIPTION
.LP
.I XkbAddDeviceLedInfo
first checks to see whether an entry matching
.I led_class
and
.I led_id
already exists in the
.I device_info->leds
array. If it finds a matching entry, it returns a pointer to that entry. Otherwise, it checks to be sure
there is at least one empty entry in
.I device_info->leds
and extends it if there is not enough room. It then increments
.I device_info->num_leds
and fills in the next available entry in
.I device_info->leds
with
.I led_class
and
.I led_id.
If successful,
.I XkbAddDeviceLedInfo
returns a pointer to the XkbDeviceLedInfoRec structure that was initialized. If unable to allocate
sufficient storage, or if
.I device_info
points to an invalid XkbDeviceInfoRec structure, or if
.I led_class
or
.I led_id
are inappropriate,
.I XkbAddDeviceLedInfo
returns NULL.
To allocate additional space for button actions in an XkbDeviceInfoRec structure, use
.I XkbResizeDeviceButtonActions.
.SH STRUCTURES
.LP
Information about X Input Extension devices is transferred between a client program and the Xkb
extension in an XkbDeviceInfoRec structure:
.nf
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
.fi
.SH "SEE ALSO"
.BR XkbResizeDeviceButtonActions (__libmansuffix__)

110
man/xkb/XkbAddGeomColor.man Normal file
View file

@ -0,0 +1,110 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomColor __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomColor \- Add one color name to an existing keyboard geometry
description
.SH SYNOPSIS
.B XkbColorPtr XkbAddGeomColor
(
.I geom,
.I spec,
.I pixel
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
char * \fIspec\fP\^;
.br
unsigned int \fIpixel\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be updated
.TP
.I \- spec
color to be added
.TP
.I \- pixel
color to be added
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomColor
adds the specified color
.I name
and
.I pixel
to the specified geometry
.I geom.
The top-level geometry description includes a list of up to MaxColors (32)
.I color names.
A color
.I name
is a string whose interpretation is not specified by Xkb and neither is the
.I pixel
value's interpretation. All other geometry data structures refer to colors using
their indices in this global list or pointers to colors in this list.
.I XkbAddGeomColor
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the color. To allocate space for an arbitrary number of colors to a
geometry, use the
.I XkbAllocGeomColors
function.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbColor {
unsigned int pixel; /* color */
char * spec; /* color name */
} XkbColorRec,*XkbColorPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomColors (__libmansuffix__)

View file

@ -0,0 +1,123 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomDoodad __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomDoodad \- Add one doodad to a section of a keyboard geometry or to the
top-level geometry
.SH SYNOPSIS
.B XkbDoodadPtr XkbAddGeomDoodad
(
.I geom ,
.I section,
.I name
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
XkbSectionPtr \fIsection\fP\^;
.br
Atom \fIname\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to which the doodad is added
.TP
.I \- section
section, if any, to which the doodad is added
.TP
.I \- name
name of the new doodad
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
A
.I doodad
describes some visible aspect of the keyboard that is not a key and is not a
section.
.I XkbAddGeomDoodad
adds a doodad with name specified by
.I name
to the geometry
.I geom
if
.I section
is NULL or to the section of the geometry specified by
.I section
if
.I section
is not NULL.
.I XkbAddGeomDoodad
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the doodad. If there is already a doodad with the name
.I name
in the doodad array for the geometry (if
.I section
is NULL) or the section (if
.I section
is non-NULL), a pointer to that doodad is returned. To allocate space for an
arbitrary number of doodads to a section, use the
.I XkbAllocGeomSectionDoodads
function. To allocate space for an arbitrary number of doodads to a keyboard
geometry, use the
.I XkbAllocGeomDoodads
function.
.SH STRUCTURES
.LP
.nf
typedef union _XkbDoodad {
XkbAnyDoodadRec any;
XkbShapeDoodadRec shape;
XkbTextDoodadRec text;
XkbIndicatorDoodadRec indicator;
XkbLogoDoodadRec logo;
} XkbDoodadRec, *XkbDoodadPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomDoodads (__libmansuffix__),
.BR XkbAllocGeomSectionDoodads (__libmansuffix__)

86
man/xkb/XkbAddGeomKey.man Normal file
View file

@ -0,0 +1,86 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomKey __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomKey \- Add one key at the end of an existing row of keys
.SH SYNOPSIS
.B XkbKeyPtr XkbAddGeomKey
(
.I row
)
.br
XkbRowPtr \fIrow\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- row
row to be updated
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard geometry. In each case
the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the values of the
element's structure from the arguments. For other functions, you must explicitly write code to fill
the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary name. Programs that
display images of keyboards can use geometry properties as hints, but they are not interpreted by
Xkb. No other geometry structures refer to geometry properties.
Keys are grouped into rows.
.I XkbAddGeomKey
adds one key to the end of the specified
.I row.
The key is allocated and zeroed.
.I XkbAddGeomKey
returns NULL if
.I row
is empty or if it was not able to allocate space for the key. To allocate space for an arbitrary
number of keys to a row, use
.I XkbAllocGeomKeys.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbKey { /* key in a row */
XkbKeyNameRec name; /* key name */
short gap; /* gap in mm/10 from previous key in row */
unsigned char shape_ndx; /* index of shape for key */
unsigned char color_ndx; /* index of color for key body */
} XkbKeyRec, *XkbKeyPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomKeys (__libmansuffix__)

View file

@ -0,0 +1,99 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomKeyAlias __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomKeyAlias \- Add one key alias to an existing keyboard geometry
description
.SH SYNOPSIS
.B XkbKeyAliasPtr XkbAddGeomKeyAlias
(
.I geom,
.I alias,
.I real
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
char * \fIalias\fP\^;
.br
char * \fIreal\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be updated
.TP
.I \- alias
alias to be added
.TP
.I \- real
real name to be bound to the new alias
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomKeyAlias
adds one key alias with the value
.I alias
to the geometry
.I geom,
and associates it with the key whose real name is
.I real. XkbAddGeomKeyAlias
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the alias. To allocate space for an arbitrary number of aliases, use
the
.I XkbAllocGeomKeyAliases
function.
.SH STRUCTURES
.LP
.nf
typedef struct {
char real[XkbKeyNameLength]; /* this key name must be in the keys array */
char alias[XkbKeyNameLength]; /* symbolic key name as alias for the key */
} XkbKeyAliasRec,*XkbKeyAliasPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomKeyAliases (__libmansuffix__)

View file

@ -0,0 +1,94 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomOutline __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomOutline \- Add one outline to an existing shape
.SH SYNOPSIS
.B XkbOutlinePtr XkbAddGeomOutline
(
.I shape,
.I sz_points
)
.br
XkbShapePtr \fIshape\fP\^;
.br
int \fIsz_points\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- shape
shape to be updated
.TP
.I \- sz_points
number of points to be reserved
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
An outline consists of an arbitrary number of points.
.I XkbAddGeomOutline
adds an outline to the specified
.I shape
by reserving
.I sz_points
points for it. The new outline is allocated and zeroed.
.I XkbAddGeomOutline
returns NULL if any of the parameters is empty or if it was not able to allocate
space. To allocate space for an arbitrary number of outlines to a shape, use
.I XkbAllocGeomOutlines.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbOutline {
unsigned short num_points; /* number of points in the outline */
unsigned short sz_points; /* size of the points array */
unsigned short corner_radius; /* draw corners as circles with this radius */
XkbPointPtr points; /* array of points defining the outline */
} XkbOutlineRec, *XkbOutlinePtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomOutlines (__libmansuffix__)

View file

@ -0,0 +1,105 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomOverlay __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomOverlay \- Add one overlay to a section
.SH SYNOPSIS
.B XkbOverlayPtr XkbAddGeomOverlay
(
.I section,
.I name,
.I sz_rows
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
Atom \fIname\fP\^;
.br
int \fIsz_rows\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section to which an overlay will be added
.TP
.I \- name
name of the overlay
.TP
.I \- sz_rows
number of rows to reserve in the overlay
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomOverlay
adds an overlay with the specified name to the specified
.I section.
The new overlay is created with space allocated for
.I sz_rows
rows. If an overlay with name
.I name
already exists in the section, a pointer to the existing overlay is returned.
.I XkbAddGeomOverlay
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the overlay. To allocate space for an arbitrary number of overlays to
a section, use the
.I XkbAllocGeomOverlay
function.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbOverlayRec {
Atom name; /* overlay name */
XkbSectionPtr section_under; /* the section under this overlay */
unsigned short num_rows; /* number of rows in the rows array */
unsigned short sz_rows; /* size of the rows array */
XkbOverlayRowPtr rows; /* array of rows in the overlay */
XkbBoundsPtr bounds; /* bounding box for the overlay */
} XkbOverlayRec,*XkbOverlayPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomOverlay (__libmansuffix__)

View file

@ -0,0 +1,95 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomOverlayKey __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomOverlayKey \- Add a key to an existing overlay row
.SH SYNOPSIS
.B XkbOverlayKeyPtr XkbAddGeomOverlayKey
(
.I overlay,
.I row,
.I under
)
.br
XkbOverlayPtr \fIoverlay\fP\^;
.br
XkbRowPtr \fIrow\fP\^;
.br
char * \fIunder\fP\^;
..if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- overlay
overlay to be updated
.TP
.I \- row
row in overlay to be updated
.TP
.I \- under
primary name of the key to be considered
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomOverlayKey
adds one key to the
.I row
in the
.I overlay.
If there is no key named
.I under
in the row of the underlying section,
.I XkbAddGeomOverlayKey
returns NULL.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbOverlayKey {
XkbKeyNameRec over; /* name of this overlay key */
XkbKeyNameRec under; /* name of the key under this overlay key */
} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
.fi

View file

@ -0,0 +1,100 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomOverlayRow __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomOverlayRow \- Add a row to an existing overlay
.SH SYNOPSIS
.B XkbOverlayRowPtr XkbAddGeomOverlayRow
(
.I overlay,
.I row_under,
.I sz_keys
)
.br
XkbOverlayPtr \fIoverlay\fP\^;
.br
XkbRowPtr \fIrow_under\fP\^;
.br
int \fIsz_keys\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- overlay
overlay to be updated
.TP
.I \- row_under
row to be overlayed in the section overlay overlays
.TP
.I \- sz_keys
number of keys to reserve in the row
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomOverlayRow
adds one row to the
.I overlay.
The new row contains space for
.I sz_keys
keys. If
. I row_under
specifies a row that doesn't exist on the underlying section,
.I XkbAddGeomOverlayRow
returns NULL and doesn't change the overlay.
.I XkbAddGeomOverlayRow
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the overlay.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbOverlayRow {
unsigned short row_under; /* index into the row under this overlay row */
unsigned short num_keys; /* number of keys in the keys array */
unsigned short sz_keys; /* size of the keys array */
XkbOverlayKeyPtr keys; /* array of keys in the overlay row */
} XkbOverlayRowRec,*XkbOverlayRowPtr;
.fi

View file

@ -0,0 +1,100 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomProperty __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomProperty \- Add one property to an existing keyboard geometry
description
.SH SYNOPSIS
.B XkbPropertyPtr XkbAddGeomProperty
(
.I geom,
.I name,
.I value
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
char * \fIname\fP\^;
.br
char * \fIvalue\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be updated
.TP
.I \- name
name of the new property
.TP
.I \- value
value for the new property
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
.I XkbAddGeomProperty
adds one property with the specified
.I name
and
.I value
to the keyboard geometry specified by
.I geom. XkbAddGeomProperty
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the property. To allocate space for an arbitrary number of properties,
use the
.I XkbAllocGeomProps
function.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbProperty {
char * name; /* property name */
char * value; /* property value */
} XkbPropertyRec,*XkbPropertyPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomProps (__libmansuffix__)

88
man/xkb/XkbAddGeomRow.man Normal file
View file

@ -0,0 +1,88 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomRow __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomRow \- Add a row to a section
.SH SYNOPSIS
.B XkbRowPtr XkbAddGeomRow
(
.I section,
.I sz_keys
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fIsz_keys\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section to be updated
.TP
.I \- sz_keys
number of keys to be reserved
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the values of the element's structure from the arguments. For other functions, you must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary name. Programs that display images of keyboards can use geometry properties as hints, but they are not interpreted by Xkb. No other geometry structures refer to geometry properties.
One of the components of a keyboard geometry section is one or more rows of keys.
.I XkbAddGeomRow
adds one row to the specified
.I section.
The newly created row contains space for the number of keys specified in
.I sz_keys.
They are allocated and zeroed, but otherwise uninitialized.
.I XkbAddGeomRow
returns NULL if any of the parameters is empty or if it was not able to allocate space for the row. To allocate space for an arbitrary number of rows to a section, use the
.I XkbAllocGeomRows
function.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbRow {
short top;
short left;
unsigned short num_keys;
unsigned short sz_keys;
int vertical;
XkbKeyPtr keys;
XkbBoundsRec bounds;
} XkbRowRec, *XkbRowPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomRows (__libmansuffix__)

View file

@ -0,0 +1,137 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomSection __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomSection \- Add one section to an existing keyboard geometry
.SH SYNOPSIS
.B XkbSectionPtr XkbAddGeomSection
(
.I geom,
.I name,
.I sz_rows,
.I sz_doodads,
.I sz_overlays
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
Atom \fIname\fP\^;
.br
int \fIsz_rows\fP\^;
.br
int \fIsz_doodads\fP\^;
.br
int \fIsz_overlays\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be updated
.TP
.I \- name
name of the new section
.TP
.I \- sz_rows
number of rows to reserve in the section
.TP
.I \- sz_doodads
number of doodads to reserve in the section
.TP
.I \- sz_overlays
number of overlays to reserve in the section
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard
geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do
not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the
values of the element's structure from the arguments. For other functions, you
must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary
name. Programs that display images of keyboards can use geometry properties as
hints, but they are not interpreted by Xkb. No other geometry structures refer
to geometry properties.
A keyboard geometry contains an arbitrary number of sections.
.I XkbAddGeomSection
adds one section to an existing keyboard geometry
.I geom.
The new section contains space for the number of rows, doodads, and overlays
specified by
.I sz_rows, sz_doodads,
and
.I sz_overlays.
The new section is allocated and zeroed and given the name specified by
.I name.
If a section with name
.I name
already exists in the geometry, a pointer to the existing section is returned.
.I XkbAddGeomSection
returns NULL if any of the parameters is empty or if it was not able to allocate
space for the section. To allocate space for an arbitrary number of sections to
a geometry, use
.I XkbAllocGeomSections.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbSection {
Atom name; /* section name */
unsigned char priority; /* drawing priority, 0=>highest, 255=>lowest */
short top; /* top coordinate of section origin */
short left; /* left coordinate of row origin */
unsigned short width; /* section width, in mm/10 */
unsigned short height; /* section height, in mm/10 */
short angle; /* angle of section rotation, counterclockwise */
unsigned short num_rows; /* number of rows in the rows array */
unsigned short num_doodads; /* number of doodads in the doodads array */
unsigned short num_overlays; /* number of overlays in the overlays array */
unsigned short sz_rows; /* size of the rows array */
unsigned short sz_doodads; /* size of the doodads array */
unsigned short sz_overlays; /* size of the overlays array */
XkbRowPtr rows; /* section rows array */
XkbDoodadPtr doodads; /* section doodads array */
XkbBoundsRec bounds; /* bounding box for the section, before rotation*/
XkbOverlayPtr overlays; /* section overlays array */
} XkbSectionRec, *XkbSectionPtr;
.fi
.I top
and
.I left
are the origin of the section, relative to the origin of the keyboard, in mm/10. angle is in 1/10 degrees.
.SH "SEE ALSO"
.BR XkbAllocGeomSections (__libmansuffix__)

103
man/xkb/XkbAddGeomShape.man Normal file
View file

@ -0,0 +1,103 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddGeomShape __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddGeomShape \- Add a shape to a keyboard geometry
.SH SYNOPSIS
.B XkbShapePtr XkbAddGeomShape
(
.I geom,
.I name,
.I sz_outlines
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
Atom \fIname\fP\^;
.br
int \fIsz_outlines\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be updated
.TP
.I \- name
name of the new shape
.TP
.I \- sz_outlines
number of outlines to be reserved
.SH DESCRIPTION
.LP
Xkb provides functions to add a single new element to the top-level keyboard geometry. In each case the
.I num_ *
fields of the corresponding structure is incremented by 1. These functions do not change
.I sz_*
unless there is no more room in the array. Some of these functions fill in the values of the element's structure from the
arguments. For other functions, you must explicitly write code to fill the structure's elements.
The top-level geometry description includes a list of
.I geometry properties.
A geometry property associates an arbitrary string with an equally arbitrary name. Programs that display images of
keyboards can use geometry properties as hints, but they are not interpreted by Xkb. No other geometry structures refer to
geometry properties.
A geometry contains an arbitrary number of shapes, each of which is made up of an arbitrary number of outlines.
.I XkbAddGeomShape
adds a shape to a geometry
.I geom
by allocating space for
.I sz_outlines
outlines for it and giving it the name specified by
.I name.
If a shape with name
.I name
already exists in the geometry, a pointer to the existing shape is returned.
.I XkbAddGeomShape
returns NULL if any of the parameters is empty or if it was not able to allocate space. To allocate space for an arbitrary
number of geometry shapes, use
.I XkbAllocGeomShapes.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbShape {
Atom name; /* shape's name */
unsigned short num_outlines; /* number of outlines for the shape */
unsigned short sz_outlines; /* size of the outlines array */
XkbOutlinePtr outlines; /* array of outlines for the shape */
XkbOutlinePtr approx; /* pointer into the array to the approximating outline */
XkbOutlinePtr primary; /* pointer into the array to the primary outline */
XkbBoundsRec bounds; /* bounding box for the shape; encompasses all outlines */
} XkbShapeRec, *XkbShapePtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocGeomShapes (__libmansuffix__)

View file

@ -0,0 +1,81 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAddSymInterpret __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAddSymInterpret \- Add a symbol interpretation to the list of symbol
interpretations in an XkbCompatRec
.SH SYNOPSIS
.B XkbSymInterpretPtr XkbAddSymInterpret
(
.I xkb,
.I si,
.I updateMap,
.I changes
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbSymInterpretPtr \fIsi\fP\^;
.br
Bool \fIupdateMap\fP\^;
.br
XkbChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description to be updated
.TP
.I \- si
symbol interpretation to be added
.TP
.I \- updateMap
True=>apply compatibility map to keys
.TP
.I \- changes
changes are put here
.SH DESCRIPTION
.LP
.I XkbAddSymInterpret
adds
.I si
to the list of symbol interpretations in
.I xkb.
If
.I updateMap
is True, it (re)applies the compatibility map to all of the keys on the
keyboard. If
.I changes
is non-NULL, it reports the parts of the keyboard that were affected (unless
.I updateMap
is True, not much changes).
.I XkbAddSymInterpret
returns a pointer to the actual new symbol interpretation in the list or NULL if
it failed.

View file

@ -0,0 +1,178 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocClientMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocClientMap \- Allocate and initialize an empty client map description
record
.SH SYNOPSIS
.B Status XkbAllocClientMap
(
.I xkb,
.I which,
.I type_count
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
unsigned int \fItype_count\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description in which to allocate client map
.TP
.I \- which
mask selecting map components to allocate
.TP
.I \- type_count
value of num_types field in map to be allocated
.SH DESCRIPTION
.LP
Calling
.I XkbGetMap
should be sufficient for most applications to get client and server maps. As a
result, most applications do not need to directly allocate client and server
maps.
If you change the number of key types or construct map components without
loading the necessary components from the X server, do not allocate any map
components directly using
.I malloc
or
.I Xmalloc.
Instead, use the Xkb allocators,
.I XkbAllocClientMap,
and
.I XkbAllocServerMap.
Similarly, use the Xkb destructors,
.I XkbFreeClientMap,
and
.I XkbFreeServerMap
instead of
.I free
or
.I Xfree.
.I XkbAllocClientMap
allocates and initializes an empty client map in the
.I map
field of the keyboard description specified by
.I xkb.
The
.I which
parameter specifies the particular components of the client map structure to
allocate and is a mask composed by a bitwise inclusive OR of one or more of the
masks shown in Table 1.
.bp
.TS
c s
l l
l lw(4i).
Table 1 XkbAllocClientMap Masks
_
Mask Effect
_
XkbKeyTypesMask T{
The type_count field specifies the number of entries to preallocate for the
types field of the client map. If the type_count field is less than
XkbNumRequiredTypes returns BadValue.
T}
.sp
XkbKeySymsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the syms and key_sym_map fields of the client map. The fields are
allocated to contain the maximum number of entries necessary for max_key_code -
min_key_code + 1 keys.
T}
.sp
XkbModifierMapMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the modmap field of the client map. The field is allocated to contain
the maximum number of entries necessary for max_key_code - min_key_code + 1
keys.
T}
.TE
NOTE: The
.I min_key_code
and
.I max_key_code
fields of the
.I xkb
parameter must be legal values if the XkbKeySymsMask or XkbModifierMapMask masks
are set in the
.I which
parameter. If they are not valid,
.I XkbAllocClientMap
returns BadValue.
If the client map of the keyboard description is not NULL, and any fields are
already allocated in the client map,
.I XkbAllocClientMap
does not overwrite the existing values; it simply ignores that part of the
request. The only exception is the
.I types
array. If
.I type_count
is greater than the current
.I num_types
field of the client map,
.I XkbAllocClientMap
resizes the
.I types
array and resets the
.I num_types
field accordingly.
If
.I XkbAllocClientMap
is successful, it returns Success. Otherwise, it can return either BadMatch,
BadAlloc, or BadValue errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbAllocClientMap (__libmansuffix__),
.BR XkbAllocServerMap (__libmansuffix__),
.BR XkbFreeClientMap, (__libmansuffix__),
.BR XkbFreeServerMap (__libmansuffix__),
.BR XkbGetMap (__libmansuffix__)

View file

@ -0,0 +1,122 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocCompatMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocCompatMap \- Allocate a new compatibility map if you do not already have one available
.SH SYNOPSIS
.B Status XkbAllocCompatMap
(
.I xkb,
.I which,
.I num_si
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
unsigned int \fInum_si\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description in which to allocate compat map
.TP
.I \- which
mask of compatibility map components to allocate
.TP
.I \- num_si
number of symbol interpretations to allocate
.SH DESCRIPTION
.LP
.I xkb
specifies the keyboard description for which compatibility maps are to be allocated. The compatibility map is the
.I compat
field in this structure.
.I which
specifies the compatibility map components to be allocated (see XkbGetCompatMap).
.I which
is an inclusive OR of the bits shown in Table 1.
.TS
c s s
l l l.
Table 1 Compatibility Map Component Masks
_
Mask Value Affecting
_
XkbSymInterpMask (1<<0) Symbol interpretations
XkbGroupCompatMask (1<<1) Group maps
XkbAllCompatMask (0x3) All compatibility map components
.TE
.I num_si
specifies the total number of entries to allocate in the symbol interpretation vector
.I (xkb.compat.sym_interpret).
.I XkbAllocCompatMap
returns Success if successful, BadMatch if
.I xkb
is NULL, or BadAlloc if errors are encountered when attempting to allocate storage.
.SH STRUCTURES
.LP
.nf
typedef struct {
KeySym sym; /* keysym of interest or NULL */
unsigned char flags; /* XkbSI_AutoRepeat, XkbSI_LockingKey */
unsigned char match; /* specifies how mods is interpreted */
unsigned char mods; /* modifier bits, correspond to eight real modifiers */
unsigned char virtual_mod; /* 1 modifier to add to key virtual mod map */
XkbAnyAction act; /* action to bind to symbol position on key */
} XkbSymInterpretRec,*XkbSymInterpretPtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbGetCompatMap (__libmansuffix__)
.SH NOTES
.LP
Note that symbol interpretations in a compatibility map (the
.I sym_interpret
vector of XkbSymInterpretRec structures) are also allocated using this same function. To ensure that there is sufficient space in the symbol interpretation vector for entries to be added, use
.I XkbAllocCompatMap
specifying
.I which
as XkbSymInterpretMask and the number of free symbol interpretations needed in
.I num_si.

View file

@ -0,0 +1,150 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocControls \- Allocates an XkbControlsRec structure in the XkbDescRec
.SH SYNOPSIS
.B Status XkbAllocControls
(
.I xkb,
.I which
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
Xkb description in which to allocate ctrls rec
.TP
.I \- which
mask of components of ctrls to allocate
.SH DESCRIPTION
.LP
The need to allocate an XkbControlsRec structure seldom arises; Xkb creates one
when an application calls
.I XkbGetControls
or a related function. For those situations where there is not an XkbControlsRec
structure allocated in the XkbDescRec, allocate one by calling
.I XkbAllocControls.
.I XkbAllocControls
allocates the
.I ctrls
field of the
.I xkb
parameter, initializes all fields to zero, and returns Success. If the
.I ctrls
field is not NULL,
.I XkbAllocControls
simply returns Success. If
.I xkb
is NULL,
.I XkbAllocControls
reports a BadMatch error. If the
.I ctrls
field could not be allocated, it reports a BadAlloc error.
The
.I which
mask specifies the individual fields of the
.I ctrls
structure to be allocated and can contain any of the valid masks defined in
Table 1.
(SHOULD THIS COMMENT BE LEFT IN????)
Because none of the currently existing controls have any structures associated
with them, which is currently of little practical value in this call.
Table 1 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s
l l l l
l l l l
l l l l.
Table 1 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
.nh
.SH "RETURN VALUES"
.TP 15
SUCCESS
allocates the ctrls field of the xkb parameter, initializes all fields to zero
.sp
.in 20
the ctrls field is not NULL
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbGetControls (__libmansuffix__)

View file

@ -0,0 +1,114 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocDeviceInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocDeviceInfo \- Obtain an XkbDeviceInfoRec structure
.SH SYNOPSIS
.B XkbDeviceInfoPtr XkbAllocDeviceInfo
(
.I device_spec,
.I n_buttons,
.I sz_leds
)
.br
unsigned int \fIdevice_spec\fP\^;
.br
unsigned int \fIn_buttons\fP\^;
.br
unsigned int \fIsz_leds\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- device_spec
device ID with which structure will be used
.TP
.I \- n_buttons
number of button actions to allocate space for
.TP
.I \- sz_leds
number of LED feedbacks to allocate space for
.SH DESCRIPTION
.LP
.I XkbAllocDeviceInfo
allocates space for an XkbDeviceInfoRec structure and initializes that structure's
.I device_spec
field with the device ID specified by
.I device_spec.
If
.I n_buttons
is nonzero,
.I n_buttons
XkbActions are linked into the XkbDeviceInfoRec structure and initialized to zero. If
.I sz_leds
is nonzero,
.I sz_leds
XkbDeviceLedInfoRec structures are also allocated and linked into the XkbDeviceInfoRec structure. If
you request XkbDeviceLedInfoRec structures be allocated using this request, you must initialize them
explicitly.
To obtain an XkbDeviceLedInfoRec structure, use
.I XkbAllocDeviceLedInfo.
.SH STRUCTURES
.LP
Information about X Input Extension devices is transferred between a client program and the Xkb
extension in an XkbDeviceInfoRec structure:
.nf
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocDeviceLedInfo (__libmansuffix__)

View file

@ -0,0 +1,125 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocDeviceLedInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocDeviceLedInfo \- Obtain an XkbDeviceLedInfoRec structure
.SH SYNOPSIS
.B Status XkbAllocDeviceLedInfo
(
.I device_info,
.I num_needed
)
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- device_info
structure in which to allocate LED space
.TP
.I \- num_needed
number of indicators to allocate space for
.SH DESCRIPTION
.LP
.I XkbAllocDeviceLedInfo
allocates space for an XkbDeviceLedInfoRec and places it in
.I device_info.
If
.I num_needed
is nonzero,
.I num_needed
XkbIndicatorMapRec structures are also allocated and linked into the XkbDeviceLedInfoRec structure. If you request XkbIndicatorMapRec structures be allocated using this request, you must initialize them explicitly. All other fields are initialized to zero.
To initialize an XkbDeviceLedInfoRec structure, use
.I XkbAddDeviceLedInfo.
.SH STRUCTURES
.LP
Information about X Input Extension devices is transferred between a client program and the Xkb
extension in an XkbDeviceInfoRec structure:
.nf
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
.fi
Each indicator has its own set of attributes that specify whether clients can explicitly set its state and whether it tracks the keyboard state. The attributes of each indicator are held in the maps array, which is an array of XkbIndicatorRec structures:
.nf
typedef struct {
unsigned char flags; /* how the indicator can be changed */
unsigned char which_groups; /* match criteria for groups */
unsigned char groups; /* which keyboard groups the indicator watches */
unsigned char which_mods; /* match criteria for modifiers */
XkbModsRec mods; /* which modifiers the indicator watches */
unsigned int ctrls; /* which controls the indicator watches */
} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
.fi
This indicator map specifies for each indicator:
.IP \(bu 5
The conditions under which the keyboard modifier state affects the indicator
.IP \(bu 5
The conditions under which the keyboard group state affects the indicator
.IP \(bu 5
The conditions under which the state of the boolean controls affects the indicator
.IP \(bu 5
The effect (if any) of attempts to explicitly change the state of the indicator using the functions XkbSetControls or XChangeKeyboardControl
.SH "SEE ALSO"
.BR XkbAddDeviceLedInfo (__libmansuffix__),
.BR XkbSetControls (__libmansuffix__)

View file

@ -0,0 +1,82 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomColors __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomColors \- Allocate geometry colors
.SH SYNOPSIS
.B Status XkbAllocGeomColors
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry for which colors should be allocated
.TP
.I \- num_needed
number of new colors required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomColors
allocates space for
.I num_needed
colors and adds them to the specified geometry
.I geom.
A color name is a string whose interpretation is not specified by Xkb. All other
geometry data structures refer to colors using their indices in this global list
or pointers to colors in this list.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,81 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomDoodads __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomDoodads \- Allocate doodads that are global to a keyboard geometry
.SH SYNOPSIS
.B Status XkbAllocGeomDoodads
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry for which doodads should be allocated
.TP
.I \- num_needed
number of new doodads required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomDoodads
allocates
.I num_needed
doodads and adds them to the specified geometry
.I geom.
No initialization of the doodads is done.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,86 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomKeyAliases __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomKeyAliases \- Allocate geometry key aliases
.SH SYNOPSIS
.B Status XkbAllocGeomKeyAliases
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry for which key aliases should be allocated
.TP
.I \- num_needed
number of new key aliases required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomKeyAliases
allocates space for
.I num_needed
key aliases and adds them to the specified geometry
.I geom.
A key alias is a pair of strings that associates an alternate name for a key
with the real name for that key.
To free geometry key aliases, use
.I XkbFreeGeomKeyAliases.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomKeyAliases (__libmansuffix__)

View file

@ -0,0 +1,80 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomKeys __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomKeys \- Allocate space for an arbitrary number of keys to a row
.SH SYNOPSIS
.B Status XkbAllocGeomKeys
(
.I row,
.I num_needed
)
.br
XkbRowPtr \fIrow\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- row
row to which keys should be allocated
.TP
.I \- num_needed
number of new keys required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomKeys
allocates
.I num_needed
keys and adds them to the
.I row.
No initialization of the keys is done.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,86 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomOutlines __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomOutlines \- Allocate space for an arbitrary number of outlines to a
shape
.SH SYNOPSIS
.B Status XkbAllocGeomOutlines
(
.I shape,
.I num_needed
)
.br
XkbShapePtr \fIshape\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- shape
shape for which outlines should be allocated
.TP
.I \- num_needed
number of new outlines required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomOutlines
allocates space for
.I num_needed
outlines in the specified
.I shape.
The outlines are not initialized.
To free geometry outlines, use
.I XkbFreeGeomOutlines.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomOutlines (__libmansuffix__)

View file

@ -0,0 +1,76 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomOverlayKeys __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomOverlayKeys \- Allocate keys in an overlay row
.SH SYNOPSIS
.B Status XkbAllocGeomOverlayKeys
(
.I row,
.I num_needed
)
.br
XkbRowPtr \fIrow\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- row
section for which rows should be allocated
.TP
.I \- num_needed
number of new rows required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a keyboard geometry. Use these functions to create or modify keyboard geometries. Note that these functions merely allocate space for the new element(s), and it is up to you to fill in the values explicitly in your code. These allocation functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomOverlayKeys
allocates
.I num_needed
keys and adds them to the
.I row.
No initialization of the keys is done.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,85 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomOverlayRows 3Xkb "Release 6.1" "X Version 11" "XKBLIB FUNCTION"
.SH NAME
XkbAllocGeomOverlayRows \- Allocate rows in a overlay
.SH SYNOPSIS
.B Status XkbAllocGeomOverlayRows
(
.I overlay,
.I num_needed
)
.br
XkbSectionPtr \fIoverlay\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- overlay
section for which rows should be allocated
.TP
.I \- num_needed
number of new rows required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomOverlayRows
allocates
.I num_needed
rows and adds them to the
.I overlay.
No initialization of the rows is done.
To free rows in an overlay, use
.I XkbFreeGeomOverlayRows.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomOverlayRows (__libmansuffix__)

View file

@ -0,0 +1,75 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomOverlays __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomOverlays \- Allocate overlays in a section
.SH SYNOPSIS
.B Status XkbAllocGeomOverlays
(
.I section,
.I num_needed
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section for which overlays should be allocated
.TP
.I \- num_needed
number of new overlays required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a keyboard geometry. Use these functions to create or modify keyboard geometries. Note that these functions merely allocate space for the new element(s), and it is up to you to fill in the values explicitly in your code. These allocation functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomOverlays
allocates
.I num_needed
overlays and adds them to the
.I section.
No initialization of the overlays is done.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,80 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomPoints __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomPoints \- Allocate points in an outline
.SH SYNOPSIS
.B Status XkbAllocGeomPoints
(
.I outline,
.I num_needed
)
.br
XkbOutlinePtr \fIoutline\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- outline
outline for which points should be allocated
.TP
.I \- num_needed
number of new points required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomPoints
allocates space for
.I num_needed
points in the specified
.I outline.
The points are not initialized.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,83 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomProps __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomProps \- Allocate geometry properties
.SH SYNOPSIS
.B Status XkbAllocGeomProps
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
_summary_
.TP
.I \- num_needed
_summary_
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomProps
allocates space for
.I num_needed
properties and adds them to the specified geometry
.I geom.
No initialization of the properties is done. A geometry property associates an
arbitrary string with an equally arbitrary name. Geometry properties can be used
to provide hints to programs that display images of keyboards, but they are not
interpreted by Xkb. No other geometry structures refer to geometry properties.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,80 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomRows __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomRows \- Allocate rows in a section
.SH SYNOPSIS
.B Status XkbAllocGeomRows
(
.I section,
.I num_needed
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section for which rows should be allocated
.TP
.I \- num_needed
number of new rows required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomRows
allocates
.I num_needed
rows and adds them to the
.I section.
No initialization of the rows is done.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,87 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomSectionDoodads 3Xkb "Release 6.1" "X Version 11" "XKBLIB
FUNCTION"
.SH NAME
XkbAllocGeomSectionDoodads \- Allocate doodads that are specific to a section
.SH SYNOPSIS
.B Status XkbAllocGeomSectionDoodads
(
.I section,
.I num_needed
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section for which doodads should be allocated
.TP
.I \- num_needed
number of new doodads required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomSectionDoodads
allocates
.I num_needed
doodads and adds them to the specified
.I section.
No initialization of the doodads is done.
To free geometry doodads, use
.I XkbFreeGeomDoodads.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomDoodads (__libmansuffix__)

View file

@ -0,0 +1,85 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomSections __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomSections \- Allocate geometry sections
.SH SYNOPSIS
.B Status XkbAllocGeomSections
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry for which sections should be allocated
.TP
.I \- num_needed
number of new sections required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomSections
allocates
.I num_needed
sections and adds them to the geometry
.I geom.
No initialization of the sections is done.
To free geometry sections, use
.I XkbFreeGeomSections.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomSections (__libmansuffix__)

View file

@ -0,0 +1,86 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeomShapes __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeomShapes \- Allocate space for an arbitrary number of geometry shapes
.SH SYNOPSIS
.B Status XkbAllocGeomShapes
(
.I geom,
.I num_needed
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fInum_needed\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry for which shapes should be allocated
.TP
.I \- num_needed
number of new shapes required
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeomShapes
allocates space for
.I num_needed
shapes in the specified geometry
.I geom.
The shapes are not initialized.
To free geometry shapes, use
.I XkbFreeGeomShapes.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeGeomShapes (__libmansuffix__)

View file

@ -0,0 +1,97 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocGeometry __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocGeometry \- Allocate an entire geometry
.SH SYNOPSIS
.B Status XkbAllocGeometry
(
.I xkb,
.I sizes
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbGeometrySizesPtr \fIsizes\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description for which geometry is to be allocated
.TP
.I \- sizes
initial sizes for all geometry components
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
.I XkbAllocGeometry
allocates a keyboard geometry and adds it to the keyboard description specified
by
.I xkb.
The keyboard description should be obtained via the
.I XkbGetKeyboard
or
.I XkbAllocKeyboard
functions. The
.I sizes
parameter specifies the number of elements to be reserved for the subcomponents
of the keyboard geometry and can be zero or more. These subcomponents include
the
.I properties, colors, shapes, sections, and doodads.
To free an entire geometry, use
.I XkbFreeGeometry.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbAllocKeyboard (__libmansuffix__),
.BR XkbFreeGeometry (__libmansuffix__),
.BR XkbGetKeyboard (__libmansuffix__)

View file

@ -0,0 +1,75 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocIndicatorMaps __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocIndicatorMaps \- Allocates, directly, the
.I indicators
member of the keyboard description record
.SH SYNOPSIS
.B Status XkbAllocIndicatorMaps
(
.I xkb
)
.br
variable_type *\fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description structure
.SH DESCRIPTION
.LP
The
.I xkb
parameter must point to a valid keyboard description. If it doesn't,
.I XkbAllocIndicatorMaps
returns a BadMatch error. Otherwise,
.I XkbAllocIndicatorMaps
allocates and initializes the
.I indicators
member of the keyboard description record and returns Success. If
.I XkbAllocIndicatorMaps
was unable to allocate the indicators record, it reports a BadAlloc error.
.SH RETURN VALUES"
.TP 15
Success
The
.I XkbAllocIndicatorMaps
function returns Success if it is successful in allocating and initializing the
.I indicators
member of the keyboard description record.
.SH DIAGNOSTICS
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadAlloc
Unable to allocate storage

View file

@ -0,0 +1,62 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocKeyboard __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocKeyboard \- Creates a keyboard description from scratch
.SH SYNOPSIS
.B XkbDescRec XkbAllocKeyboard
(
.I void
)
.if n .ti +5n
.if t .ti +.5i
.SH DESCRIPTION
.LP
Applications seldom need to directly allocate a keyboard description; calling
.I XkbGetKeyboard
usually suffices. In the event you need to create a keyboard description from
scratch, however, use
.I XkbAllocKeyboard
rather than directly calling
.I malloc.
If
.I XkbAllocKeyboard
fails to allocate the keyboard description, it returns NULL.
Otherwise, it returns a pointer to an empty keyboard description structure. The
.I device_spec
field will have been initialized to XkbUseCoreKbd. You may then
either fill in the structure components or use Xkb functions to obtain values
for the structure components from a keyboard device.
.SH "SEE ALSO"
.BR malloc (3F),
.BR XkbUseCoreKbd (__libmansuffix__),
.BR XkbGetKeyboard (__libmansuffix__)

132
man/xkb/XkbAllocNames.man Normal file
View file

@ -0,0 +1,132 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocNames __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocNames \- Allocate symbolic names structures
.SH SYNOPSIS
.B Status XkbAllocNames
(
.I xkb,
.I which,
.I num_rg,
.I num_key_aliases
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
int \fInum_rg\fP\^;
.br
int \fInum_key_aliases\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description for which names are to be allocated
.TP
.I \- which
mask of names to be allocated
.TP
.I \- num_rg
total number of radio group names needed
.TP
.I \- num_key_aliases
total number of key aliases needed
.SH DESCRIPTION
.LP
Most applications do not need to directly allocate symbolic names structures. Do
not allocate a names structure directly using
.I malloc
or
.I Xmalloc
if your application changes the number of key aliases or radio groups or
constructs a symbolic names structure without loading the necessary components
from the X server. Instead use
.I XkbAllocNames.
.I XkbAllocNames
can return BadAlloc, BadMatch, and BadValue errors. The
.I which
parameter is the bitwise inclusive OR of the valid names mask bits defined in
Table 1.
.TS
c s s s
l l l l.
Table 1 Symbolic Names Masks
_
Mask Bit Value Keyboard Field
Component
_
XkbKeycodesNameMask (1<<0) Xkb->names keycodes
XkbGeometryNameMask (1<<1) Xkb->names geometry
XkbSymbolsNameMask (1<<2) Xkb->names symbols
XkbPhysSymbolsNameMask (1<<3) Xkb->names phys_symbols
XkbTypesNameMask (1<<4) Xkb->names type
XkbCompatNameMask (1<<5) Xkb->names compat
XkbKeyTypeNamesMask (1<<6) Xkb->map type[*].name
XkbKTLevelNamesMask (1<<7) Xkb->map type[*].lvl_names[*]
XkbIndicatorNamesMask (1<<8) Xkb->names indicators[*]
XkbKeyNamesMask (1<<9) Xkb->names keys[*], num_keys
XkbKeyAliasesMask (1<<10) Xkb->names key_aliases[*], num_key_aliases
XkbVirtualModNamesMask (1<<11) Xkb->names vmods[*]
XkbGroupNamesMask (1<<12) Xkb->names groups[*]
XkbRGNamesMask (1<<13) Xkb->names radio_groups[*], num_rg
XkbComponentNamesMask (0x3f) Xkb->names keycodes,
geometry,
symbols,
physical symbols,
types, and
compatibility map
XkbAllNamesMask (0x3fff) Xkb->names all name components
.TE
Do not free symbolic names structures directly using
.I free
or
.I XFree.
Use
.I XkbFreeNames
instead.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbFreeNames (__libmansuffix__)

View file

@ -0,0 +1,135 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbAllocServerMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbAllocServerMap \- Allocate and initialize an empty server map description record
.SH SYNOPSIS
.B Status XkbAllocServerMap
(
.I xkb,
.I which,
.I count_acts
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
unsigned int \fIcount_acts\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description in which to allocate server map
.TP
.I \- which
mask selecting map components to allocate
.TP
.I \- count_acts
value of num_acts field in map to be allocated
.SH DESCRIPTION
.LP
.I XkbAllocServerMap
allocates and initializes an empty server map in the
.I server
field of the keyboard description specified by
.I xkb.
The
.I which
parameter specifies the particular components of the server map structure to allocate, as specified in Table 1.
.TS
c s
l l
l lw(4i).
Table 1 XkbAllocServerMap Masks
_
Mask Effect
_
XkbExplicitComponentsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the explicit field of the server map.
T}
.sp
XkbKeyActionsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to allocate the key_acts field of the server map. The count_acts parameter is used to allocate the acts field of the server map.
T}
.sp
XkbKeyBehaviorsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to allocate the behaviors field of the server map.
T}
.sp
XkbVirtualModMapMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to allocate the vmodmap field of the server map.
T}
.TE
If the server map of the keyboard description is not NULL and any fields are already allocated in the server map,
.I XkbAllocServerMap
does not overwrite the existing values. The only exception is with the
.I acts
array. If the
.I count_acts
parameter is greater than the current
.I num_acts
field of the server map,
.I XkbAllocServerMap
resizes the
.I acts
array and resets the
.I num_acts
field accordingly.
If
.I XkbAllocServerMap
is successful, it returns Success. Otherwise, it can return either BadMatch or BadAlloc errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range
.SH NOTES
.LP
The
.I min_key_code
and
.I max_key_code
fields of the
.I xkb
parameter must be legal values. If they are not valid,
.I XkbAllocServerMap
returns BadValue.

View file

@ -0,0 +1,376 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbApplyCompatMapToKey __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbApplyCompatMapToKey \- Apply the new compatibility mapping to an individual
key to get its semantics updated
.SH SYNOPSIS
.B Bool XkbApplyCompatMapToKey
(
.I xkb,
.I key,
.I changes
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
KeyCode \fIkey\fP\^;
.br
XkbChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description to be updated
.TP
.I \- key
key to be updated
.TP
.I \- changes
notes changes to the Xkb keyboard description
.SH DESCRIPTION
.LP
.I XkbApplyCompatMapToKey
essentially performs the operation described in Core Keyboard Mapping to Xkb
Keyboard Mapping Transformation to a specific key. This updates the behavior,
actions, repeat status, and virtual modifier bindings of the key.
.B Core Keyboard Mapping to Xkb Keyboard Mapping Transformation
When a core protocol keyboard mapping request is received by the server, the
server's core keyboard map is updated, and then the Xkb map maintained by the
server is updated. Because a client may have explicitly configured some of the
Xkb keyboard mapping in the server, this automatic regeneration of the Xkb
keyboard mapping from the core protocol keyboard mapping should not modify any
components of the Xkb keyboard mapping that were explicitly set by a client. The
client must set explicit override controls to prevent this from happening (see
Explicit Components-Avoiding Automatic Remapping by the Server). The core-to-Xkb
mapping is done as follows:
.B Explicit Components-Avoiding Automatic Remapping by the Server
Whenever a client remaps the keyboard using core protocol requests, Xkb examines
the map to determine likely default values for the components that cannot be
specified using the core protocol.
This automatic remapping might replace definitions explicitly requested by an
application, so the Xkb keyboard description defines an explicit components mask
for each key. Any aspects of the automatic remapping listed in the explicit
components mask for a key are not changed by the automatic keyboard mapping.
The explicit components masks are held in the
.I explicit
field of the server map, which is an array indexed by keycode. Each entry in
this array is a mask that is a bitwise inclusive OR of the values shown in Table
1.
.TS
c s s
l l l
l l lw(3i).
Table 1 Explicit Component Masks
_
Bit in Explicit Mask Value Protects Against
_
ExplicitKeyType1 (1<<0) T{
Automatic determination of the key type associated with Group1.
T}
ExplicitKeyType2 (1<<1) T{
Automatic determination of the key type associated with Group2.
T}
ExplicitKeyType3 (1<<2) T{
Automatic determination of the key type associated with Group3.
T}
ExplicitKeyType4 (1<<3) T{
Automatic determination of the key type associated with Group4.
T}
ExplicitInterpret (1<<4) T{
Application of any of the fields of a symbol interpretation to the key in
question.
T}
ExplicitAutoRepeat (1<<5) T{
Automatic determination of auto-repeat status for the key, as specified in a
symbol interpretation.
T}
ExplicitBehavior (1<<6) T{
Automatic assignment of the XkbKB_Lock behavior to the key, if the
XkbSI_LockingKey flag is set in a symbol interpretation.
T}
ExplicitVModMap (1<<7) T{
Automatic determination of the virtual modifier map for the key based on the
actions assigned to the key and the symbol interpretations that match the key.
T}
.TE
.TP 4
1.
Map the symbols from the keys in the core keyboard map to groups and symbols on
keys in the Xkb keyboard map. The core keyboard mapping is of fixed width, so
each key in the core mapping has the same number of symbols associated with it.
The Xkb mapping allows a different number of symbols to be associated with each
key; those symbols may be divided into a different number of groups (1-4) for
each key. For each key, this process therefore involves partitioning the fixed
number of symbols from the core mapping into a set of variable-length groups
with a variable number of symbols in each group. For example, if the core
protocol map is of width five, the partition for one key might result in one
group with two symbols and another with three symbols. A different key might
result in two groups with two symbols plus a third group with one symbol. The
core protocol map requires at least two symbols in each of the first two groups.
.TP 4
1a.
For each changed key, determine the number of groups represented in the new core
keyboard map. This results in a tentative group count for each key in the Xkb
map.
.TP 4
1b.
For each changed key, determine the number of symbols in each of the groups
found in step 1a. There is one explicit override control associated with each of
the four possible groups for each Xkb key, ExplicitKeyType1 through
ExplicitKeyType4. If no explicit override control is set for a group, the number
of symbols used for that group from the core map is two. If the explicit
override control is set for a group on the key, the number of symbols used for
that Xkb group from the core map is the width of the Xkb group with one
exception: because of the core protocol requirement for at least two symbols in
each of groups one and two, the number of symbols used for groups one and two is
the maximum of 2 or the width of the Xkb group.
.TP 4
1c.
For each changed key, assign the symbols in the core map to the appropriate
group on the key. If the total number of symbols required by the Xkb map for a
particular key needs more symbols than the core protocol map contains, the
additional symbols are taken to be NoSymbol keysyms appended to the end of the
core set. If the core map contains more symbols than are needed by the Xkb map,
trailing symbols in the core map are discarded. In the absence of an explicit
override for group one or two, symbols are assigned in order by group; the first
symbols in the core map are assigned to group one, in order, followed by group
two, and so on. For example, if the core map contained eight symbols per key,
and a particular Xkb map contained 2 symbols for G1 and G2 and three for G3, the
symbols would be assigned as (G is group, L is shift level):
.nf
G1L1 G1L2 G2L1 G2L2 G3L1 G3L2 G3L3
.fi
If an explicit override control is set for group one or two, the symbols are
taken from the core set in a somewhat different order. The first four symbols
from the core set are assigned to G1L1, G1L2, G2L1, G2L2, respectively. If group
one requires more symbols, they are taken next, and then any additional symbols
needed by group two. Group three and four symbols are taken in complete sequence
after group two. For example, a key with four groups and three symbols in each
group would take symbols from the core set in the following order:
.nf
G1L1 G1L2 G2L1 G2L2 G1L3 G2L3 G3L1 G3L2 G3L3 G4L1 G4L2 G4L3
.fi
As previously noted, the core protocol map requires at lease two symbols in
groups one and two. Because of this, if an explicit override control for an Xkb
key is set and group one and / or group two is of width one, it is not possible
to generate the symbols taken from the core protocol set and assigned to
position G1L2 and / or G2L2.
.TP 4
1d.
For each group on each changed key, assign a key type appropriate for the
symbols in the group.
.TP 4
1e.
For each changed key, remove any empty or redundant groups.
At this point, the groups and their associated symbols have been assigned to the
corresponding key definitions in the Xkb map.
.TP 4
2.
Apply symbol interpretations to modify key operation. This phase is completely
skipped if the ExplicitInterpret override control bit is set in the explicit
controls mask for the Xkb key (see Explicit Components-Avoiding Automatic
Remapping by the Server).
.TP 4
2a.
For each symbol on each changed key, attempt to match the symbol and modifiers
from the Xkb map to a symbol interpretation describing how to generate the
symbol.
.TP 4
2b.
When a match is found in step 2a, apply the symbol interpretation to change the
semantics associated with the symbol in the Xkb key map. If no match is found,
apply a default interpretation.
.LP
The symbol interpretations used in step 2 are configurable and may be specified
using XkbSymInterpretRec structures referenced by the sym_interpret field of an
XkbCompatMapRec.
.B Symbol Interpretations - the XkbSymInterpretRec Structure
Symbol interpretations are used to guide the X server when it modifies the Xkb
keymap in step 2. An initial set of symbol interpretations is loaded by the
server when it starts. A client may add new ones using XkbSetCompatMap.
Symbol interpretations result in key semantics being set. When a symbol
interpretation is applied, the following components of server key event
processing may be modified for the particular key involved:
.nf
Virtual modifier map
Auto repeat
Key behavior (may be set to XkbKB_Lock)
Key action
.fi
The XkbSymInterpretRec structure specifies a symbol interpretation:
.nf
typedef struct {
KeySym sym; /* keysym of interest or NULL */
unsigned char flags; /* XkbSI_AutoRepeat, XkbSI_LockingKey */
unsigned char match; /* specifies how mods is interpreted */
unsigned char mods; /* modifier bits, correspond to eight real modifiers */
unsigned char virtual_mod; /* 1 modifier to add to key virtual mod map */
XkbAnyAction act; /* action to bind to symbol position on key */
} XkbSymInterpretRec,*XkbSymInterpretPtr;
.fi
If sym is not NULL, it limits the symbol interpretation to keys on which that
particular keysym is selected by the modifiers matching the criteria specified
by
.I mods
and
.I match.
If
.I sym
is NULL, the interpretation may be applied to any symbol selected on a key when
the modifiers match the criteria specified by
.I mods
and
.I match.
.I match
must be one of the values shown in Table 2 and specifies how the real modifiers
specified in
.I mods
are to be interpreted.
.TS
c s s
l l l
l l lw(3i).
Table 2 Symbol Interpretation Match Criteria
_
Match Criteria Value Effect
_
XkbSI_NoneOf (0) T{
None of the bits that are on in mods can be set, but other bits can be.
T}
XkbSI_AnyOfOrNone (1) T{
Zero or more of the bits that are on in mods can be set, as well as others.
T}
XkbSI_AnyOf (2) T{
One or more of the bits that are on in mods can be set, as well as any others.
T}
XkbSI_AllOf (3) T{
All of the bits that are on in mods must be set, but others may be set as well.
T}
XkbSI_Exactly (4) T{
All of the bits that are on in mods must be set, and no other bits may be set.
T}
.TE
In addition to the above bits,
.I match
may contain the XkbSI_LevelOneOnly bit, in which case the modifier match
criteria specified by
.I mods
and
.I match
applies only if
.I sym
is in level one of its group; otherwise,
.I mods
and
.I match
are ignored and the symbol matches a condition where no modifiers are set.
.nf
#define XkbSI_LevelOneOnly (0x80) /* use mods + match only if sym is level 1 */
.fi
If no matching symbol interpretation is found, the server uses a default
interpretation where:
.nf
sym = 0
flags = XkbSI_AutoRepeat
match = XkbSI_AnyOfOrNone
mods = 0
virtual_mod = XkbNoModifier
act = SA_NoAction
.fi
When a matching symbol interpretation is found in step 2a, the interpretation is
applied to modify the Xkb map as follows.
The
.I act
field specifies a single action to be bound to the symbol position; any key event that selects the symbol
causes the action to be taken. Valid actions are defined in Key Actions.
If the Xkb keyboard map for the key does not have its ExplicitVModMap control set, the XkbSI_LevelOneOnly bit
and symbol position are examined. If the XkbSI_LevelOneOnly bit is not set in
.I match
or the symbol is in position G1L1, the
.I virtual_mod
field is examined. If
.I virtual_mod
is not XkbNoModifier,
.I virtual_mod
specifies a single virtual modifier to be added to the virtual modifier map for the key.
.I virtual_mod
is specified as an index in the range [0..15].
If the matching symbol is in position G1L1 of the key, two bits in the flags field potentially specify
additional behavior modifications:
.nf
#define XkbSI_AutoRepeat (1<<0) /* key repeats if sym is in position G1L1 */
#define XkbSI_LockingKey (1<<1) /* set KB_Lock behavior if sym is in psn G1L1 */
.fi
If the Xkb keyboard map for the key does not have its ExplicitAutoRepeat control set, its auto repeat behavior
is set based on the value of the XkbSI_AutoRepeat bit. If the XkbSI_AutoRepeat bit is set, the auto-repeat
behavior of the key is turned on; otherwise, it is turned off.
If the Xkb keyboard map for the key does not have its ExplicitBehavior control set, its locking behavior is
set based on the value of the XkbSI_LockingKey bit. If XkbSI_LockingKey is set, the key behavior is set to
KB_Lock; otherwise, it is turned off.
.SH "SEE ALSO"
.BR XkbKeyAction (__libmansuffix__),
.BR XkbKeyActionEntry (__libmansuffix__),
.BR XkbKeyActionsPtr (__libmansuffix__),
.BR XkbKeyHasActions (__libmansuffix__),
.BR XkbKeyNumActions (__libmansuffix__)

344
man/xkb/XkbBell.man Normal file
View file

@ -0,0 +1,344 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbBell __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbBell \- Rings the bell on the default keyboard
.SH SYNOPSIS
.B Bool XkbBell
(
.I display,
.I window,
.I percent,
.I name
)
.br
Display *\fIdisplay\fP\^;
.br
Window \fIwindow\fP\^;
.br
int \fIpercent\fP\^;
.br
Atom \fIname\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- window
event window, or None
.TP
.I \- percent
relative volume, which can range from -100 to 100 inclusive
.TP
.I \- name
a bell name, or NULL
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell
with a
given duration, pitch, and volume. Xkb extends this capability by allowing
clients to
attach symbolic names to bells, disable audible bells, and receive an event
whenever the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed
to any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id
pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point
of view,
merely a name, and not connected with any physical sound-generating device. Some
client
application must generate the sound, or visual feedback, if any, that is
associated with
the name.)
.LP
You can also ask to receive XkbBellNotify events when the server rings the
default bell
or if any client has requested events only (without the bell sounding) for any
of the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that
replaces the
keyboard bell with some other audible cue might want to turn off the AudibleBell
control
to prevent the server from also generating a sound and avoid cacophony. If you
disable
audible bells and request to receive XkbBellNotify events, you can generate
feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the
functions that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell
or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed
or
repeating, Xkb can provide feedback for the controls by using special beep
codes. The
AccessXFeedback control is used to configure the specific types of operations
that
generate feedback.
Bell Names
You can associate a name to an act of ringing a bell by converting the name to
an Atom
and then using this name when you call the functions listed in this chapter. If
an event
is generated as a result, the name is then passed to all other clients
interested in
receiving XkbBellNotify events. Note that these are arbitrary names and that
there is no
binding to any sounds. Any sounds or other effects (such as visual bells on the
screen)
must be generated by a client application upon receipt of the bell event
containing the
name. There is no default name for the default keyboard bell. The server does
generate
some predefined bells for the AccessX controls. These named bells are shown in
Table 1 below; the name is included in any bell event sent to clients that have
requested to receive XkbBellNotify events.
.TS
c s
l l
lW(4I) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{ SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system
bell. This
is useful if you need to use an audio server instead of the system beep. For
example,
when an audio client starts, it could disable the audible bell (the system bell)
and then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the
audio client
could then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell
event
occurs. This is the default. If you set XkbAudibleBellMask off and a bell event
occurs,
the server does not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell
events.
The input extension has two types of feedbacks that can generate bells - bell
feedback
and keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one
feedback of
each type; set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
Table 2 shows the conditions that cause a bell to sound or an XkbBellNotifyEvent
to be generated when a bell function is called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
If a compatible keyboard extension isn't present in the X server,
.I XkbBell
calls
.I XBell
with the specified
.I display
and
.I percent,
and returns False. Otherwise,
.I XkbBell
calls
.I XkbDeviceBell
with the specified
.I display, window, percent,
and
.I name,
a
.I device_spec
of XkbUseCoreKbd, a
.I bell_class
of XkbDfltXIClass, and a
.I bell_id
of XkbDfltXIId, and returns True.
If you have disabled the audible bell, the server does not ring the system bell,
although it does generate a XkbBellNotify event.
You can call
.I XkbBell
without first initializing the keyboard extension.
.SH "RETURN VALUES"
.TP 15
FALSE
The XkbBell function returns FALSE if XlibDisplayNoXkb is set.
.SH STRUCTURES
.LP
Xkb generates XkbBellNotify events for all bells except for those resulting from
calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass
XkbBellNotifyMask in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is
not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd
*/
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep
*/
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it
receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XBell (3X11),
.BR XkbBellNotify (__libmansuffix__),
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbDeviceBell (__libmansuffix__),
.BR XkbForceBell (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XkbUseCoreKbd (__libmansuffix__)

341
man/xkb/XkbBellEvent.man Normal file
View file

@ -0,0 +1,341 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbBellEvent __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbBellEvent \- Provides a function that initiates a bell event for the keyboard
without ringing the bell
.SH SYNOPSIS
.B Bool XkbBellEvent
(
.I display,
.I window,
.I percent,
.I name
)
.br
Display *\fI display \fP\^;
.br
Window \fI window \fP\^;
.br
int \fI percent \fP\^;
.br
Atom \fI name \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- window
the event window, or None
.TP
.I \- percent,
relative volume, which can range from -100 to 100 inclusive
.TP
.I \- name
a bell name, or NULL
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell
with a
given duration, pitch, and volume. Xkb extends this capability by allowing
clients to
attach symbolic names to bells, disable audible bells, and receive an event
whenever the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed
to any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id
pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point
of view,
merely a name, and not connected with any physical sound-generating device. Some
client
application must generate the sound, or visual feedback, if any, that is
associated with
the name.)
You can also ask to receive XkbBellNotify events when the server rings the
default bell
or if any client has requested events only (without the bell sounding) for any
of the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that
replaces the
keyboard bell with some other audible cue might want to turn off the AudibleBell
control
to prevent the server from also generating a sound and avoid cacophony. If you
disable
audible bells and request to receive XkbBellNotify events, you can generate
feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the
functions that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed
or
repeating, Xkb can provide feedback for the controls by using special beep
codes. The
AccessXFeedback control is used to configure the specific types of operations
that
generate feedback.
Bell Names
You can associate a name to an act of ringing a bell by converting the name to
an Atom
and then using this name when you call the functions listed in this chapter. If
an event
is generated as a result, the name is then passed to all other clients
interested in
receiving XkbBellNotify events. Note that these are arbitrary names and that
there is no
binding to any sounds. Any sounds or other effects (such as visual bells on the
screen)
must be generated by a client application upon receipt of the bell event
containing the
name. There is no default name for the default keyboard bell. The server does
generate
some predefined bells for the AccessX controls. These named bells are shown in
Table 1; the name is included in any bell event sent to clients that have
requested to
receive XkbBellNotify events.
.TS
c s
l l
lW(4i) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{
SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system
bell. This
is useful if you need to use an audio server instead of the system beep. For
example,
when an audio client starts, it could disable the audible bell (the system bell)
and then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the
audio client
could then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell
event
occurs. This is the default. If you set XkbAudibleBellMask off and a bell event
occurs,
the server does not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell
events.
The input extension has two types of feedbacks that can generate bells - bell
feedback
and keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one
feedback of
each type; set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
Table 2 shows the conditions that cause a bell to sound or an
XkbBellNotifyEvent
to be generated when a bell function is called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
If a compatible keyboard extension isn't present in the X server,
.I XkbBellEvent
immediately returns False. Otherwise,
.I XkbBellEvent
calls
.I XkbDeviceBellEvent
with the specified
.I display, window, percent,
and
.I name,
a
.I device_spec
of XkbUseCoreKbd, a
.I bell_class
of XkbDfltXIClass, and a
.I bell_id
of XkbDfltXIId, and returns what
.I XkbDeviceBellEvent
returns.
.I XkbBellEvent
generates a XkbBellNotify event.
You can call
.I XkbBellEvent
without first initializing the keyboard extension.
.SH "RETURN VALUES"
.TP 15
False
The
.I XkbBellEvent
immediately returns False, if a compatible keyboard extension isn't present in
the X server.
.SH STRUCTURES
Xkb generates XkbBellNotify events for all bells except for those resulting from
calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass
XkbBellNotifyMask in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is
not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd
*/
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep
*/
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it
receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbDeviceBellEvent (__libmansuffix__),
.BR XkbForceBell (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XkbSelectEventDetails (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__)

View file

@ -0,0 +1,336 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeControls \- Provides a flexible method for updating the controls in a
server to match those in
the changed keyboard description
.SH SYNOPSIS
.B Bool XkbChangeControls
(
.I dpy,
.I xkb,
.I changes
)
.br
Display *\fIdpy\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbControlsChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- xkb
keyboard description with changed xkb->ctrls
.TP
.I \- changes
which parts of xkb->ctrls have changed
.SH DESCRIPTION
.LP
The XkbControlsChangesRec structure allows applications to track modifications
to an XkbControlsRec
structure and thereby reduce the amount of traffic sent to the server. The same
XkbControlsChangesRec
structure may be used in several successive modifications to the same
XkbControlsRec structure, then
subsequently used to cause all of the changes, and only the changes, to be
propagated to the server.
The
.I changed_ctrls
field is a mask specifying which logical sets of data in the controls structure
have been modified. In
this context, modified means
.I set,
that is, if a value is set to the same value it previously contained, it has
still been modified, and is
noted as changed. Valid values for
.I changed_ctrls
are any combination of the masks listed in Table 1 that have "ok" in the
.I changed_ctrls
column. Setting a bit implies the corresponding data fields from the "Relevant
XkbControlsRec Data
Fields" column in Table 1 have been modified. The
.I enabled_ctrls_changes
field specifies which bits in the
.I enabled_ctrls
field have changed. If the number of keyboard groups has changed, the
.I num_groups_changed
field is set to True.
Table 1 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s s
l l l l l
l l l l l
l l l l l
l l l l l
lw(1.5i) lw(1.5i) l lw(1.5i) l.
Table 1 Xkb Controls
_
Control Control
Selection Relevant
Mask XkbControlsRec Boolean Control
(which parameter) DataFields enabled_ctrls bit Section
_
T{
AccessXFeedback
T} T{
XkbAccessXFeedbackMask
T} ax_options: T{
XkbAccessXFeedbackMask
T} 10.6.3
XkbAX_*FBMask
T{
AccessXKeys
T} T{
XkbAccessXKeysMask
T} 10.6.1
T{
AccessXTimeout
T} T{
XkbAccessXTimeoutMask
T} ax_timeout T{
XkbAccessXTimeoutMask
T} 10.6.2
axt_opts_mask
axt_opts_values
axt_ctrls_mask
axt_ctrls_values
T{
AudibleBell
T} T{
XkbAudibleBellMask
T} 9.2
T{
AutoReset
T} 10.1.2
T{
BounceKeys
T} T{
XkbBounceKeysMask
T} debounce_delay T{
XkbBounceKeysMask
T} 10.6.7
T{
Detectable-
T} 10.3.3
T{
Autorepeat
T}
T{
EnabledControls
T} T{
XkbControlsEnabledMask
T} enabled_ctrls T{
Non-Boolean Control
T} 10.1.1
T{
GroupsWrap
T} T{
XkbGroupsWrapMask
T} groups_wrap T{
Non-Boolean Control
T} 10.7.1
T{
IgnoreGroupLock
T} T{
XkbIgnoreGroupLockMask
T} 10.7.3
T{
IgnoreLockMods
T} T{
XkbIgnoreLockModsMask
T} ignore_lock T{
Non-Boolean Control
T} 5.1
T{
InternalMods
T} T{
XkbInternalModsMask
T} internal T{
Non-Boolean Control
T} 5.1
T{
MouseKeys
T} T{
XkbMouseKeysMask
T} mk_dflt_btn T{
XkbMouseKeysMask
T} 10.5.1
T{
MouseKeysAccel
T} T{
XkbMouseKeysAccelMask
T} mk_delay T{
XkbMouseKeysAccelMask
T} 10.5.2
mk_interval
mk_time_to_max
mk_max_speed
mk_curve
T{
Overlay1
T} T{
XkbOverlay1Mask
T} 10.4
T{
Overlay2
T} T{
XkbOverlay2Mask
T} 10.4
T{
PerKeyRepeat
T} T{
XkbPerKeyRepeatMask
T} per_key_repeat T{
Non-Boolean Control
T} 10.3.1
T{
RepeatKeys
T} T{
XkbRepeatKeysMask
T} repeat_delay T{
XkbRepeatKeysMask
T} 10.3
repeat_interval
T{
SlowKeys
T} T{
XkbSlowKeysMask
T} slow_keys_delay T{
XkbSlowKeysMask
T} 10.6.6
T{
StickyKeys
T} T{
XkbStickyKeysMask
T} ax_options: T{
XkbStickyKeysMask
T} 10.6.8
XkbAX_TwoKeysMask
XkbAX_LatchToLockMask
.TE
Table 2 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s
l l l l
l l l l
l l l l.
Table 2 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
If you have an Xkb description with controls that have been modified and an
XkbControlsChangesRec that
describes the changes that have been made, the
.I XkbChangeControls
function provides a flexible method for updating the controls in a server to
match those in the changed
keyboard description.
.I XkbChangeControls
copies any controls fields specified by
.I changes
from the keyboard description controls structure,
.I xkb->ctrls,
to the server specified by
.I dpy.
.SH STRUCTURES
.LP
The XkbControlsChangesRec structure is defined as follows:
.nf
typedef struct _XkbControlsChanges {
unsigned int changed_ctrls; /* bits indicating changed control data
*/
unsigned int enabled_ctrls_changes; /* bits indicating enabled/disabled
controls */
Bool num_groups_changed; /* True if number of keyboard groups
changed */
} XkbControlsChangesRec,*XkbControlsChangesPtr;
.fi

View file

@ -0,0 +1,88 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeDeviceInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeDeviceInfo \- Update the server's description of a device with the changes noted in an
XkbDeviceChangesRec
.SH SYNOPSIS
.B Bool XkbChangeDeviceInfo
(
.I dpy,
.I device_info,
.I changes
)
.br
Display * \fIdpy\fP\^;
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
XkbDeviceChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- device_info
local copy of device state and configuration
.TP
.I \- changes
note specifying changes in device_info
.SH DESCRIPTION
.LP
.I XkbChangeDeviceInfo
updates the server's description of the device specified in
.I device_info->device_spec
with the changes specified in
.I changes
and contained in
.I device_info.
The update is made by an
.I XkbSetDeviceInfo
request.
.SH STRUCTURES
.LP
Changes to an Xkb extension device may be tracked by listening to XkbDeviceExtensionNotify events
and accumulating the changes in an XkbDeviceChangesRec structure. The changes noted in the
structure may then be used in subsequent operations to update either a server configuration or a
local copy of an Xkb extension device configuration. The changes structure is defined as follows:
.nf
typedef struct _XkbDeviceChanges {
unsigned int changed; /* bits indicating what has changed */
unsigned short first_btn; /* number of first button which changed, if any */
unsigned short num_btns; /* number of buttons that have changed */
XkbDeviceLedChangesRec leds;
} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
.fi
.SH "SEE ALSO"
.BR XkbSetDeviceInfo (__libmansuffix__)

View file

@ -0,0 +1,180 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeEnabledControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeEnabledControls \- Manipulates the EnabledControls control
.SH SYNOPSIS
.B Bool XkbChangeEnabledControls
(
.I dpy,
.I device_spec,
.I mask,
.I values
)
.br
Display *\fI dpy \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned int \fI mask \fP\^;
.br
unsigned int \fI values \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- device_spec
keyboard device to modify
.TP
.I \- mask
1 bit -> controls to enable / disable
.TP
.I \- values
1 bit => enable, 0 bit => disable
.SH DESCRIPTION
.LP
The EnabledControls control is a bit mask where each bit that is turned on means the
corresponding control is enabled, and when turned off, disabled. It corresponds to the
.I enabled_ctrls
field of an XkbControlsRec structure (see STRUCTURES). The bits describing which controls are
turned on or off are defined in Table 1.
Table 1 shows the actual values for the individual mask bits used to select controls for
modification and to enable and disable the control. Note that the same mask bit is used to
specify general modifications to the parameters used to configure the control (which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no "ok" in column)
are for controls that have no configurable attributes; and for controls that are not boolean
controls and therefore cannot be enabled or disabled.
.bp
.TS
c s s s
l l l l
l l l l
l l l l.
Table 1 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
The
.I mask
parameter specifies the boolean controls to be enabled or disabled, and the
.I values
mask specifies the new state for those controls. Valid values for both of these
masks are composed of a bitwise inclusive OR of bits taken from the set of mask
bits in Table 1, using only those masks with "ok" in the
.I enabled_ctrls
column.
If the X server does not support a compatible version of Xkb or the Xkb
extension has not been properly initialized,
.I XkbChangeEnabledControls
returns False; otherwise, it sends the request to the X server and returns True.
Note that the EnabledControls control only enables and disables controls; it
does not configure them. Some controls, such as the AudibleBell control, have no
configuration attributes and are therefore manipulated solely by enabling and
disabling them. Others, however, have additional attributes to configure their
behavior. For example, the RepeatControl control uses
.I repeat_delay
and
.I repeat_interval
fields to describe the timing behavior of keys that repeat. The RepeatControl
behavior is turned on or off depending on the value of the XkbRepeatKeysMask
bit, but you must use other means, as described in this chapter, to configure
its behavior in detail.
.SH "RETURN VALUES"
.TP 15
True
The X server supports a compatible version of Xkb.
.TP 15
False
The X server does not support a compatible version of Xkb or the Xkb extension has not been properly initialized.
.SH STRUCTURES
.LP
.nf
The XkbControlsRec structure is defined as follows:
#define XkbMaxLegalKeyCode 255
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
typedef struct {
unsigned char mk_dflt_btn; /* default button for keyboard driven mouse */
unsigned char num_groups; /* number of keyboard groups */
unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
XkbModsRec internal; /* defines server internal modifiers */
XkbModsRec ignore_lock; /* modifiers to ignore when checking for grab */
unsigned int enabled_ctrls; /* 1 bit => corresponding boolean control enabled */
unsigned short repeat_delay; /* ms delay until first repeat */
unsigned short repeat_interval; /* ms delay between repeats */
unsigned short slow_keys_delay; /* ms minimum time key must be down to be ok */
unsigned short debounce_delay; /* ms delay before key reactivated */
unsigned short mk_delay; /* ms delay to second mouse motion event */
unsigned short mk_interval; /* ms delay between repeat mouse events */
unsigned short mk_time_to_max; /* # intervals until constant mouse move */
unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
short mk_curve; /* determines mouse move curve type */
unsigned short ax_options; /* 1 bit => Access X option enabled */
unsigned short ax_timeout; /* seconds until Access X disabled */
unsigned short axt_opts_mask; /* 1 bit => options to reset on Access X timeout */
unsigned short axt_opts_values; /* 1 bit => turn option on, 0=> off */
unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls to modify */
unsigned int axt_ctrls_values; /* values for new bits in enabled_ctrls */
unsigned char per_key_repeat[XkbPerKeyBitArraySize]; /* per key auto repeat */
} XkbControlsRec, *XkbControlsPtr;
.fi

View file

@ -0,0 +1,172 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeIndicators __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeIndicators \- Changes indicator maps or state without passing the
entire keyboard description
.SH SYNOPSIS
.B Bool XkbChangeIndicators
(
.I dpy,
.I xkb,
.I changes,
.I state
)
.br
Display *\fI dpy \fP\^;
.br
XkbDescPtr \fI xkb \fP\^;
.br
XkbIndicatorChangesPtr \fI changes \fP\^;
.br
unsigned int \fI state \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to the X server
.TP
.I \- xkb
keyboard description from which names are to be taken.
.TP
.I \- changes
indicators to be updated on the server
.TP
.I \- state
new state of indicators listed in changes->state_changes
.SH DESCRIPTION
.LP
The XkbIndicatorChangesRec identifies small modifications to the indicator map.
Use it with the function
.I XkbChangeIndicators
to reduce the amount of traffic sent to the server (see STRUCTURES).
The
.I state_changes
field is a mask that specifies the indicators that have changed state, and
.I map_changes
is a mask that specifies the indicators whose maps have changed.
.I XkbChangeIndicators
copies any maps specified by
.I changes
from the keyboard description,
.I xkb,
to the server specified by
.I dpy.
If any bits are set in the
.I state_changes
field of
.I changes, XkbChangeIndicators
also sets the state of those indicators to the values specified in the
.I state
mask. A 1 bit in
.I state
turns the corresponding indicator on, a 0 bit turns it off.
In addition, it can also generate XkbIndicatorStateNotify and
XkbIndicatorMapNotify events.
Whenever an indicator changes state, the server sends XkbIndicatorStateNotify events
to all interested clients. Similarly, whenever an indicator's map changes, the
server sends XkbIndicatorMapNotify events to all interested clients.
To receive XkbIndicatorStateNotify events, use
.I XkbSelectEvents
with both the
.I bits_to_change
and
.I values_for_bits
parameters containing XkbIndicatorStateNotifyMask. To receive XkbIndicatorMapNotify
events, use
.I XkbSelectEvents
with XkbIndicatorMapNotifyMask.
To receive events for only specific indicators, use
.I XkbSelectEventDetails.
Set the
.I event_type
parameter to XkbIndicatorStateNotify or XkbIndicatorMapNotify, and set both the
.I bits_to_change
and
.I values_for_bits
detail parameters to a mask where each bit specifies one indicator, turning on those
bits that specify the indicators for which you want to receive events.
.I xkb_type
is either XkbIndicatorStateNotify or XkbIndicatorMapNotify, depending on whether the
event is a kbIndicatorStateNotify event or kbIndicatorMapNotify event.
The
.I changed
parameter is a mask that is the bitwise inclusive OR of the indicators that have
changed. If the event is of type XkbIndicatorMapNotify,
.I changed
reports the maps that changed. If the event is of type XkbIndicatorStateNotify,
.I changed
reports the indicators that have changed state.
.I state
is a mask that specifies the current state of all indicators, whether they have
changed or not, for both XkbIndicatorStateNotify and IndicatorMapNotify events.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbIndicatorChanges {
unsigned int state_changes;
unsigned int map_changes;
}XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
.fi
Both types of indicator events use the same structure:
.nf
typedef struct _XkbIndicatorNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* specifies state or map notify */
int device; /* Xkb device ID, will not be XkbUseCoreKbd*/
unsigned int changed; /* mask of indicators with new state or map */
unsigned int state; /* current state of all indicators */
} XkbIndicatorNotifyEvent;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAtom
A name is neither a valid Atom or None
.TP 15
.B BadImplementation
Invalid reply from server
.SH "SEE ALSO"
.BR XkbIndicatorMapNotify (__libmansuffix__),
.BR XkbIndicatorStateNotify (__libmansuffix__)

149
man/xkb/XkbChangeMap.man Normal file
View file

@ -0,0 +1,149 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeMap \- Update only partial components of a keyboard description, modify
the appropriate fields in the server and map components of a local copy of the
keyboard description
.SH SYNOPSIS
.B Bool XkbChangeMap
(
.I dpy,
.I xkb,
.I changes
)
.br
Display * \fIdpy\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbMapChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- xkb
description from which new values are taken
.TP
.I \- changes
identifies component parts to update
.SH DESCRIPTION
.LP
To update only partial components of a keyboard description, modify the
appropriate fields in the server and map components of a local copy of the
keyboard description, then call
.I XkbChangeMap
with an XkbMapChangesRec structure indicating which components have changed.
.I XkbChangeMap
copies any components specified by the
.I changes
structure from the keyboard description,
.I xkb,
to the X server specified by
.I dpy.
If any components specified by
.I changes
are not present in the
.I xkb
parameter,
.I XkbChangeMap
returns False. Otherwise, it sends a request to the server and returns True.
.I XkbChangeMap
can generate BadAlloc, BadLength, and BadValue protocol errors.
.SH "RETURN VALUES"
.TP 15
True
The XkbChangeMap function returns True if the components specified by
.I changes
are present in the
.I xkb
parameter.
.TP 15
False
The XkbChangeMap function returns False if the components specified by
.I changes
are not present in the
.I xkb
parameter.
.SH STRUCTURES
.LP
Use the XkbMapChangesRec structure to identify and track partial modifications
to the mapping components and to reduce the amount of traffic between the server
and clients.
.nf
typedef struct _XkbMapChanges {
unsigned short changed; /* identifies valid components in
structure */
KeyCode min_key_code; /* lowest numbered keycode for device
*/
KeyCode max_key_code; /* highest numbered keycode for device
*/
unsigned char first_type; /* index of first key type modified */
unsigned char num_types; /* # types modified */
KeyCode first_key_sym; /* first key whose key_sym_map changed
*/
unsigned char num_key_syms; /* # key_sym_map entries changed */
KeyCode first_key_act; /* first key whose key_acts entry
changed */
unsigned char num_key_acts; /* # key_acts entries changed */
KeyCode first_key_behavior; /* first key whose behaviors changed */
unsigned char num_key_behaviors; /* # behaviors entries changed */
KeyCode first_key_explicit; /* first key whose explicit entry
changed */
unsigned char num_key_explicit; /* # explicit entries changed */
KeyCode first_modmap_key; /* first key whose modmap entry changed
*/
unsigned char num_modmap_keys; /* # modmap entries changed */
KeyCode first_vmodmap_key; /* first key whose vmodmap changed */
unsigned char num_vmodmap_keys; /* # vmodmap entries changed */
unsigned char pad1; /* reserved */
unsigned short vmods; /* mask indicating which vmods changed
*/
} XkbMapChangesRec,*XkbMapChangesPtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadLength
The length of a request is shorter or longer than that required to minimally
contain the arguments
.TP 15
.B BadValue
An argument is out of range

200
man/xkb/XkbChangeNames.man Normal file
View file

@ -0,0 +1,200 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeNames __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeNames \- _summary-line_
.SH SYNOPSIS
.B Bool XkbChangeNames
(
.I dpy,
.I which,
.I Xkb
)
.br
Display * \fIdpy\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
XkbDescPtr \fIXkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to the X server
.TP
.I \- which
mask of names or map components to be updated
.TP
.I \- Xkb
keyboard description to be updated
.SH DESCRIPTION
.LP
.I XkbChangeNames
provides a more flexible method for changing symbolic names than
.I XkbSetNames
and requires the use of an XkbNameChangesRec structure.
.I XkbChangeNames
copies any names specified by
.I changes
from the keyboard description,
.I xkb,
to the X server specified by
.I dpy. XkbChangeNames
aborts and returns False if any illegal type names or type shift level names are
specified by changes.
To change the symbolic names in the server, first modify a local copy of the
keyboard description and then use either
.I XkbSetNames,
or, to save network traffic, use a XkbNameChangesRec structure and call
.I XkbChangeNames
to download the changes to the server.
.I XkbSetNames
and
.I XkbChangeNames
can generate BadAlloc, BadAtom, BadLength, BadMatch, and BadImplementation
errors.
.SH STRUCTURES
.LP
The XkbNameChangesRec allows applications to identify small modifications to the
symbolic names and
effectively reduces the amount of traffic sent to the server:
.nf
typedef struct _XkbNameChanges {
unsigned int changed; /* name components that have changed
*/
unsigned char first_type; /* first key type with a new name */
unsigned char num_types; /* number of types with new names */
unsigned char first_lvl; /* first key type with new level
names */
unsigned char num_lvls; /* number of key types with new level
names */
unsigned char num_aliases; /* if key aliases changed, total
number of key aliases */
unsigned char num_rg; /* if radio groups changed, total
number of radio groups */
unsigned char first_key; /* first key with a new name */
unsigned char num_keys; /* number of keys with new names */
unsigned short changed_vmods; /* mask of virtual modifiers for
which names have changed */
unsigned long changed_indicators; /* mask of indicators for which names
were changed */
unsigned char changed_groups; /* mask of groups for which names
were changed */
} XkbNameChangesRec, *XkbNameChangesPtr
.fi
The
.I changed
field specifies the name components that have changed and is the bitwise
inclusive OR of the valid names
mask bits defined in Table 1. The rest of the fields in the structure specify
the ranges that have changed
for the various kinds of symbolic names, as shown in Table 2.
Xkb provides several functions that work with symbolic names. Each of these
functions uses a mask to
specify individual fields of the structures described above. These masks and
their relationships to the
fields in a keyboard description are shown in Table 1.
.TS
c s s s
l l l l.
Table 1 Symbolic Names Masks
_
Mask Bit Value Keyboard Field
Component
_
XkbKeycodesNameMask (1<<0) Xkb->names keycodes
XkbGeometryNameMask (1<<1) Xkb->names geometry
XkbSymbolsNameMask (1<<2) Xkb->names symbols
XkbPhysSymbolsNameMask (1<<3) Xkb->names phys_symbols
XkbTypesNameMask (1<<4) Xkb->names type
XkbCompatNameMask (1<<5) Xkb->names compat
XkbKeyTypeNamesMask (1<<6) Xkb->map type[*].name
XkbKTLevelNamesMask (1<<7) Xkb->map type[*].lvl_names[*]
XkbIndicatorNamesMask (1<<8) Xkb->names indicators[*]
XkbKeyNamesMask (1<<9) Xkb->names keys[*], num_keys
XkbKeyAliasesMask (1<<10) Xkb->names key_aliases[*], num_key_aliases
XkbVirtualModNamesMask (1<<11) Xkb->names vmods[*]
XkbGroupNamesMask (1<<12) Xkb->names groups[*]
XkbRGNamesMask (1<<13) Xkb->names radio_groups[*], num_rg
XkbComponentNamesMask (0x3f) Xkb->names keycodes,
geometry,
symbols,
physical symbols,
types, and
compatibility map
XkbAllNamesMask (0x3fff) Xkb->names all name components
.TE
.TS
c s s s
l l l l.
Table 2 XkbNameChanges Fields
_
Mask Fields Component Field
_
XkbKeyTypeNamesMask first_type, Xkb->map type[*].name
num_types
XkbKTLevelNamesMask first_lvl, Xkb->map type[*].lvl_names[*]
num_lvls
XkbKeyAliasesMask num_aliases Xkb->names key_aliases[*]
XkbRGNamesMask num_rg Xkb->names radio_groups[*]
XkbKeyNamesMask first_key, Xkb->names keys[*]
num_keys
XkbVirtualModNamesMask changed_vmods Xkb->names vmods[*]
XkbIndicatorNamesMask changed_indicators Xkb->names indicators[*]
XkbGroupNamesMask changed_groups Xkb->names groups[*]
.TE
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadAtom
A name is neither a valid Atom or None
.TP 15
.B BadImplementation
Invalid reply from server
.TP 15
.B BadLength
The length of a request is shorter or longer than that required to minimally
contain the arguments
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbSetNames (__libmansuffix__)

View file

@ -0,0 +1,222 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbChangeTypesOfKey __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbChangeTypesOfKey \- Change the number of groups and the types bound to a key
.SH SYNOPSIS
.B Status XkbChangeTypesOfKey
(
.I xkb,
.I key,
.I n_groups,
.I groups,
.I new_types_in,
.I p_changes
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
int \fIkey\fP\^;
.br
int \fIn_groups\fP\^;
.br
unsigned int \fIgroups\fP\^;
.br
int * \fInew_types_in\fP\^;
.br
XkbMapChangesPtr \fIp_changes\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description to be changed
.TP
.I \- key
keycode for key of interest
.TP
.I \- n_groups
new number of groups for key
.TP
.I \- groups
mask indicating groups to change
.TP
.I \- new_types_in
indices for new groups specified in groups
.TP
.I \- p_changes
notes changes made to xkb
.SH DESCRIPTION
.LP
.I XkbChangeTypesOfKey
reallocates the symbols and actions bound to the key, if necessary, and
initializes any new symbols
or actions to NoSymbol or NoAction, as appropriate. If the p_changes parameter
is not NULL,
.I XkbChangeTypesOfKey
adds the XkbKeySymsMask to the changes field of
.I p_changes
and modifies the
.I first_key_sym
and
.I num_key_syms
fields of
.I p_changes
to include the
.I key
that was changed. See STRUCTURE for more information on the XkbMapChangesPtr
structure. If
successful,
.I XkbChangeTypesOfKey
returns Success.
The
.I n_groups
parameter specifies the new number of groups for the key. The
.I groups
parameter is a mask specifying the groups for which new types are supplied and
is a bitwise
inclusive OR of the following masks: XkbGroup1Mask, XkbGroup2Mask,
XkbGroup3Mask, and XkbGroup4Mask.
The
.I new_types_in
parameter is an integer array of length
.I n_groups.
Each entry represents the type to use for the associated group and is an index
into
.I xkb->map->types.
The
.I new_types_in
array is indexed by group index; if
.I n_groups
is four and
.I groups
only has Group1Mask and Group3Mask set,
.I new_types_in
looks like this:
.nf
new_types_in[0] = type for Group1
new_types_in[1] = ignored
new_types_in[2] = type for Group3
new_types_in[3] = ignored
.fi
For convenience, Xkb provides the following constants to use as indices to the
groups:
.TS
c s
l l
l l.
Table 1 Group Index Constants
_
Constant Name Value
_
XkbGroup1Index 0
XkbGroup2Index 1
XkbGroup3Index 2
XkbGroup4Index 3
.TE
If the Xkb extension has not been properly initialized,
.I XkbChangeTypesOfKey
returns BadAccess. If the
.I xkb
parameter it not valid (that is, it is NULL or it does not contain a valid
client map),
.I XkbChangeTypesOfKey
returns BadMatch. If the
.I key
is not a valid keycode,
.I n_groups
is greater than XkbNumKbdGroups, or the
.I groups
mask does not contain any of the valid group mask bits,
.I XkbChangeTypesOfKey
returns BadValue. If it is necessary to resize the key symbols or key actions
arrays and any
allocation errors occur,
.I XkbChangeTypesOfKey
returns BadAlloc.
.SH STRUCTURES
.LP
Use the XkbMapChangesRec structure to identify and track partial modifications
to the mapping
components and to reduce the amount of traffic between the server and clients.
.nf
typedef struct _XkbMapChanges {
unsigned short changed; /* identifies valid components in
structure */
KeyCode min_key_code; /* lowest numbered keycode for device
*/
KeyCode max_key_code; /* highest numbered keycode for device
*/
unsigned char first_type; /* index of first key type modified */
unsigned char num_types; /* # types modified */
KeyCode first_key_sym; /* first key whose key_sym_map changed
*/
unsigned char num_key_syms; /* # key_sym_map entries changed */
KeyCode first_key_act; /* first key whose key_acts entry
changed */
unsigned char num_key_acts; /* # key_acts entries changed */
KeyCode first_key_behavior; /* first key whose behaviors changed */
unsigned char num_key_behaviors; /* # behaviors entries changed */
KeyCode first_key_explicit; /* first key whose explicit entry
changed */
unsigned char num_key_explicit; /* # explicit entries changed */
KeyCode first_modmap_key; /* first key whose modmap entry changed
*/
unsigned char num_modmap_keys; /* # modmap entries changed */
KeyCode first_vmodmap_key; /* first key whose vmodmap changed */
unsigned char num_vmodmap_keys; /* # vmodmap entries changed */
unsigned char pad1; /* reserved */
unsigned short vmods; /* mask indicating which vmods changed
*/
} XkbMapChangesRec,*XkbMapChangesPtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAccess
The Xkb extension has not been properly initialized
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and
range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,64 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbComputeRowBounds __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbComputeRowBounds \- Update the bounding box of a row
.SH SYNOPSIS
.B Bool XkbComputeRowBounds
(
.I geom,
.I section,
.I row
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
XkbSectionPtr \fIsection\fP\^;
.br
XkbRowPtr \fIrow\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry that contains the section
.TP
.I \- section
section that contains the row
.TP
.I \- row
row to be examined and updated
.SH DESCRIPTION
.LP
.I XkbComputeRowBounds
checks the bounds of all keys in the
.I row
and updates the bounding box of the row if necessary.
.I XkbComputeRowBounds
returns False if any of the arguments is NULL; otherwise, it returns True.

View file

@ -0,0 +1,62 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbComputeSectionBounds __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbComputeSectionBounds \- Update the bounding box of a section
.SH SYNOPSIS
.B Bool XkbComputeSectionBounds
(
.I geom,
.I section
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
XkbSectionPtr \fIsection\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry that contains the section
.TP
.I \- section
section to be examined and updated
.SH DESCRIPTION
.LP
If you add or delete a row to or from a section, or if you change the geometry
of any of the rows in that section, you may need to update the bounding box for
that section.
.I XkbComputeSectionBounds
examines all the rows of the
.I section
and updates the bounding box of that section so that it contains all rows.
.I XkbComputeSectionBounds
returns False if any of the arguments is NULL; otherwise, it returns True.

View file

@ -0,0 +1,92 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbComputeShapeBounds __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbComputeShapeBounds \- Updates the bounding box of a shape
.SH SYNOPSIS
.B Bool XkbComputeShapeBounds
(
.I shape
)
.br
XkbShapePtr \fIshape\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- shape
shape to be examined
.SH DESCRIPTION
.LP
Xkb provides a number of convenience functions to help use a keyboard geometry. These include
functions to return the bounding box of a shape's top surface and to update the bounding box
of a shape row or section.
A shape is made up of a number of outlines. Each outline is a polygon made up of a number of
points. The bounding box of a shape is a rectangle that contains all the outlines of that
shape.
A ShapeRec contains a BoundsRec that describes the bounds of the shape. If you add or delete
an outline to or from a shape, the bounding box must be updated.
.I XkbComputeShapeBounds
updates the BoundsRec contained in the
.I shape
by examining all the outlines of the shape and setting the BoundsRec to the minimum x and
minimum y, and maximum x and maximum y values found in those outlines.
.I XkbComputeShapeBounds
returns False if
.I shape
is NULL or if there are no outlines for the shape; otherwise, it returns True.
If you add or delete a key to or from a row, or if you update the shape of one of the keys in that row, you may need to update the bounding box of that row. To update the bounding box of a row, use
.I XkbComputeRowBounds.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbShape {
Atom name; /* shape's name */
unsigned short num_outlines; /* number of outlines for the shape */
unsigned short sz_outlines; /* size of the outlines array */
XkbOutlinePtr outlines; /* array of outlines for the shape */
XkbOutlinePtr approx; /* pointer into the array to the approximating outline */
XkbOutlinePtr primary; /* pointer into the array to the primary outline */
XkbBoundsRec bounds; /* bounding box for the shape; encompasses all outlines */
} XkbShapeRec, *XkbShapePtr;
typedef struct _XkbBounds {
short x1,y1; /* upper left corner of the bounds, in mm/10 */
short x2,y2; /* lower right corner of the bounds, in mm/10 */
} XkbBoundsRec, *XkbBoundsPtr;
.fi
.SH "SEE ALSO"
.BR XkbComputeRowBounds (__libmansuffix__)

View file

@ -0,0 +1,87 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbComputeShapeTop __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbComputeShapeTop \- Determines the bounding box of the top surface of a shape
.SH SYNOPSIS
.B Bool XkbComputeShapeTop
(
.I shape,
.I bounds_rtrn
)
.br
XkbShapePtr \fIshape\fP\^;
.br
XkbBoundsPtr \fIbounds_rtrn\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- shape
shape to be examined
.TP
.I \- bounds_rtrn
backfilled with the bounding box for the shape
.SH DESCRIPTION
.LP
Xkb provides a number of convenience functions to help use a keyboard geometry.
These include functions to return the bounding box of a shape's top surface and
to update the bounding box of a shape row or section.
A shape is made up of a number of outlines. Each outline is a polygon made up of
a number of points. The bounding box of a shape is a rectangle that contains all
the outlines of that shape.
.I XkbComputeShapeTop
returns a BoundsRec that contains two x and y coordinates. These coordinates
describe the corners of a rectangle that contains the outline that describes the
top surface of the shape. The top surface is defined to be the approximating
outline if the
.I approx
field of
.I shape
is not NULL. If
.I approx
is NULL, the top surface is defined as the last outline in the
.I shape's
array of outlines.
.I XkbComputeShapeTop
returns False if
.I shape
is NULL or if there are no outlines for the shape; otherwise, it returns True.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbBounds {
short x1,y1; /* upper left corner of the bounds, in mm/10 */
short x2,y2; /* lower right corner of the bounds, in mm/10 */
} XkbBoundsRec, *XkbBoundsPtr;
.fi

106
man/xkb/XkbCopyKeyType.man Normal file
View file

@ -0,0 +1,106 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbCopyKeyType __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbCopyKeyType \- Copy one XkbKeyTypeRec structures
.SH SYNOPSIS
.B Status XkbCopyKeyType
(
.I from,
.I into
)
.br
XkbKeyTypePtr \fIfrom\fP\^;
.br
XkbKeyTypePtr \fIinto\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- from
pointer to XkbKeyTypeRec to be copied
.TP
.I \- into
pointer to XkbKeyTypeRec to be changed
.SH DESCRIPTION
.LP
.I XkbCopyKeyType
copies the key type specified by
.I from
to the key type specified by
.I into.
Both must point to legal XkbKeyTypeRec structures. Xkb assumes
.I from
and
.I into
point to different places. As a result, overlaps can be fatal.
.I XkbCopyKeyType
frees any existing
.I map, preserve,
and
.I level_names
in
.I into
prior to copying. If any allocation errors occur while copying
.I from
to
.I into, XkbCopyKeyType
returns BadAlloc. Otherwise,
.I XkbCopyKeyType
copies
.I from
to
.I into
and returns Success.
.SH STRUCTURES
.LP
Key types are used to determine the shift level of a key given the current state of the
keyboard. The set of all possible key types for the Xkb keyboard description are held in the
.I types
field of the client map, whose total size is stored in
.I size_types,
and whose total number of valid entries is stored in
.I num_types.
Key types are defined using the following structure:
.nf
typedef struct { /* Key Type */
XkbModsRec mods; /* modifiers used to compute shift level */
unsigned char num_levels; /* total # shift levels, do not modify directly */
unsigned char map_count; /* # entries in map, preserve (if non-NULL) */
XkbKTMapEntryPtr map; /* vector of modifiers for each shift level */
XkbModsPtr preserve; /* mods to preserve for corresponding map entry */
Atom name; /* name of key type */
Atom * level_names; /* array of names of each shift level */
} XkbKeyTypeRec, *XkbKeyTypePtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage

130
man/xkb/XkbCopyKeyTypes.man Normal file
View file

@ -0,0 +1,130 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbCopyKeyTypes __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbCopyKeyTypes \- Copy more than one XkbKeyTypeRec structure
.SH SYNOPSIS
.B Status XkbCopyKeyTypes
(
.I from,
.I into,
.I num_types
)
.br
XkbKeyTypePtr \fIfrom\fP\^;
.br
XkbKeyTypePtr \fIinto\fP\^;
.br
int \fInum_types\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- from
pointer to array of XkbKeyTypeRecs to copy
.TP
.I \- into
pointer to array of XkbKeyTypeRecs to change
.TP
.I \- num_types
number of types to copy
.SH DESCRIPTION
.LP
.I XkbCopyKeyTypes
copies
.I num_types
XkbKeyTypeRec structures from the array specified by
.I from
into the array specified by
.I into.
It is intended for copying between, rather than within, keyboard descriptions,
so it
doesn't check for overlaps. The same rules that apply to the
.I from
and
.I into
parameters in
.I XkbCopyKeyType
apply to each entry of the
.I from
and
.I into
arrays of
.I XkbCopyKeyTypes.
If any allocation errors occur while copying
.I from
to
.I into, XkbCopyKeyTypes
returns BadAlloc. Otherwise,
.I XkbCopyKeyTypes
copies
.I from
to
.I into
and returns Success.
.SH "RETURN VALUES"
.TP 15
Success
The XkbCopyKeyTypes function returns Success when there are no allocation
errors.
.SH STRUCTURES
.LP
Key types are used to determine the shift level of a key given the current state
of the
keyboard. The set of all possible key types for the Xkb keyboard description are
held in
the
.I types
field of the client map, whose total size is stored in
.I size_types,
and whose total number of valid entries is stored in
.I num_types.
Key types are defined using the following structure:
.nf
typedef struct { /* Key Type */
XkbModsRec mods; /* modifiers used to compute shift level */
unsigned char num_levels; /* total # shift levels, do not modify
directly */
unsigned char map_count; /* # entries in map, preserve (if non-NULL)
*/
XkbKTMapEntryPtr map; /* vector of modifiers for each shift level
*/
XkbModsPtr preserve; /* mods to preserve for corresponding map
entry */
Atom name; /* name of key type */
Atom * level_names; /* array of names of each shift level */
} XkbKeyTypeRec, *XkbKeyTypePtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.SH "SEE ALSO"
.BR XkbCopyKeyType (__libmansuffix__)

313
man/xkb/XkbDeviceBell.man Normal file
View file

@ -0,0 +1,313 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbDeviceBell __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbDeviceBell \- Rings the bell on an X input extension device or the default keyboard
.SH SYNOPSIS
.B Bool XkbDeviceBell
(
.I display,
.I window,
.I device_spec,
.I bell_class,
.I bell_id,
.I percent,
.I name
)
.br
Display *\fI display \fP\^;
.br
Window \fI window \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned int \fI bell_class \fP\^;
.br
unsigned int \fI bell_id \fP\^;
.br
int \fI percent \fP\^;
.br
Atom \fI name \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- window
window for which the bell is generated, or None
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- bell_class
X input extension bell class of the bell to be rung
.TP
.I \- bell_id
X input extension bell ID of the bell to be rung
.TP
.I \- percent
bell volume, from -100 to 100 inclusive
.TP
.I \- name
a name for the bell, or NULL
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell with a
given duration, pitch, and volume. Xkb extends this capability by allowing clients to
attach symbolic names to bells, disable audible bells, and receive an event whenever the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed to any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point of view,
merely a name, and not connected with any physical sound-generating device. Some client
application must generate the sound, or visual feedback, if any, that is associated with
the name.)
You can also ask to receive XkbBellNotify events when the server rings the default bell
or if any client has requested events only (without the bell sounding) for any of the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that replaces the
keyboard bell with some other audible cue might want to turn off the AudibleBell control
to prevent the server from also generating a sound and avoid cacophony. If you disable
audible bells and request to receive XkbBellNotify events, you can generate feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the functions that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell
or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed or
repeating, Xkb can provide feedback for the controls by using special beep codes. The
AccessXFeedback control is used to configure the specific types of operations that
generate feedback.
Bell Names
You can associate a name to an act of ringing a bell by converting the name to an Atom
and then using this name when you call the functions listed in this chapter. If an event
is generated as a result, the name is then passed to all other clients interested in
receiving XkbBellNotify events. Note that these are arbitrary names and that there is no
binding to any sounds. Any sounds or other effects (such as visual bells on the screen)
must be generated by a client application upon receipt of the bell event containing the
name. There is no default name for the default keyboard bell. The server does generate
some predefined bells for the AccessX controls. These named bells are shown in the Table 1
; the name is included in any bell event sent to clients that have requested to
receive XkbBellNotify events.
.TS
c s
l l
lW(4i) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{
SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system bell. This
is useful if you need to use an audio server instead of the system beep. For example,
when an audio client starts, it could disable the audible bell (the system bell) and then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the audio client
could then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell event
occurs. This is the default. If you set XkbAudibleBellMask off and a bell event occurs,
the server does not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell events.
The input extension has two types of feedbacks that can generate bells - bell feedback
and keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one feedback of
each type; set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
The Table 2 shows the conditions that cause a bell to sound or an XkbBellNotifyEvent
to be generated when a bell function is called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
Set
.I percent
to be the volume relative to the base volume for the keyboard as described for .I XBell.
Note that
.I bell_class
and
.I bell_id
indicate the bell to physically ring.
.I name
is simply an arbitrary moniker for the client application's use.
To determine the current feedback settings of an extension input device, use
.I XGetFeedbackControl.
See the X input extension documentation for more information on
.I XGetFeedbackControl
and related data structures.
If a compatible keyboard extension is not present in the X server,
.I XkbDeviceBell
immediately returns False. Otherwise,
.I XkbDeviceBell
rings the bell as specified for the display and keyboard device and returns True. If you have disabled the audible bell, the server does not ring the system bell, although it does generate a
.I XkbBellNotify
event.
You can call
.I XkbDeviceBell
without first initializing the keyboard extension.
.SH STRUCTURES
Xkb generates XkbBellNotify events for all bells except for those resulting from calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass XkbBellNotifyMask in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep */
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XBell (3X11),
.BR XkbBellNotify (__libmansuffix__),
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbDeviceBell (__libmansuffix__),
.BR XkbForceBell (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XGetFeedbackControl (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__)

View file

@ -0,0 +1,344 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbDeviceBellEvent __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbDeviceBellEvent \- Creates a bell event for an X input extension device or
for the keyboard, without ringing the corresponding bell
.SH SYNOPSIS
.B Bool XkbDeviceBellEvent
(
.I display,
.I window,
.I device_spec,
.I bell_class,
.I bell_id,
.I percent,
.I name
)
.br
Display *\fI display \fP\^;
.br
Window \fI window \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned int \fI bell_class \fP\^;
.br
unsigned int \fI bell_id \fP\^;
.br
int \fI percent \fP\^;
.br
Atom \fI name \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- window
event window, or None
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- bell_class
input extension bell class for the event
.TP
.I \- bell_id
input extension bell ID for the event
.TP
.I \- percent
volume for the bell, which can range from -100 to 100 inclusive
.TP
.I \- name
a bell name, or NULL
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell with
a
given duration, pitch, and volume. Xkb extends this capability by allowing clients to
attach symbolic names to bells, disable audible bells, and receive an event whenever
the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed to
any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point of
view,
merely a name, and not connected with any physical sound-generating device. Some
client
application must generate the sound, or visual feedback, if any, that is associated
with
the name.)
You can also ask to receive XkbBellNotify events when the server rings the default
bell
or if any client has requested events only (without the bell sounding) for any of the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that replaces
the
keyboard bell with some other audible cue might want to turn off the AudibleBell
control
to prevent the server from also generating a sound and avoid cacophony. If you
disable
audible bells and request to receive XkbBellNotify events, you can generate feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the functions
that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell
or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed or
repeating, Xkb can provide feedback for the controls by using special beep codes. The
AccessXFeedback control is used to configure the specific types of operations that
generate feedback.
Bell Names
You can associate a name to an act of ringing a bell by converting the name to an
Atom
and then using this name when you call the functions listed in this chapter. If an
event
is generated as a result, the name is then passed to all other clients interested in
receiving XkbBellNotify events. Note that these are arbitrary names and that there is
no
binding to any sounds. Any sounds or other effects (such as visual bells on the
screen)
must be generated by a client application upon receipt of the bell event containing
the
name. There is no default name for the default keyboard bell. The server does
generate
some predefined bells for the AccessX controls. These named bells are shown in the
Table 1
below; the name is included in any bell event sent to clients that have requested to
receive XkbBellNotify events.
.TS
c s
l l
lW(4i) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{
SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system bell.
This
is useful if you need to use an audio server instead of the system beep. For example,
when an audio client starts, it could disable the audible bell (the system bell) and
then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the audio
client
could then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell event
occurs. This is the default. If you set XkbAudibleBellMask off and a bell event
occurs,
the server does not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell
events.
The input extension has two types of feedbacks that can generate bells - bell
feedback
and keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one feedback of
each type; set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
Table 2 shows the conditions that cause a bell to sound or an
XkbBellNotifyEvent
to be generated when a bell function is called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
If a compatible keyboard extension isn't present in the X server,
.I XkbDeviceBellEvent
immediately returns False. Otherwise,
.I XkbDeviceBellEvent
causes an XkbBellNotify event to be sent to all interested clients and returns
True. Set
.I percent
to be the volume relative to the base volume for the keyboard as described for
.I XBell.
In addition,
.I XkbDeviceBellEvent
may generate Atom protocol errors as well as XkbBellNotify events. You can call
.I XkbBell
without first initializing the keyboard extension.
.SH "RETURN VALUES"
.TP 15
True
The
.I XkbDeviceBellEvent
sends an XkbBellNotify event to to all interested clients and returns
True.
.TP 15
False
If a compatible keyboard extension isn't present in the X server,
.I XkbDeviceBellEvent
immediately returns False
.SH STRUCTURES
.TP
Xkb generates XkbBellNotify events for all bells except for those resulting from
calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass XkbBellNotifyMask
in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep */
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it
receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XBell (3X11),
.BR XkbBellNotify (__libmansuffix__),
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbDeviceBell (__libmansuffix__),
.BR XkbForceBell (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__),
.BR XkbSelectEventDetails (__libmansuffix__),
.BR XkbUseCoreKbd (__libmansuffix__)

View file

@ -0,0 +1,66 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFindOverlayForKey __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFindOverlayForKey \- Find the alternate name by using the primary name for a
key that is part of an overlay
.SH SYNOPSIS
.B char * XkbFindOverlayForKey
(
.I geom,
.I section,
.I under
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
XkbSectionPtr \fIsection\fP\^;
.br
char * \fIunder\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry that contains the section
.TP
.I \- section
section to be searched for matching keys
.TP
.I \- under
primary name of the key to be considered
.SH DESCRIPTION
.LP
Keys that can generate multiple keycodes may be associated with multiple names.
Such keys have a primary name and an alternate name.
.I XkbFindOverlayForKey
uses the primary name of the key,
.I under,
to look up the alternate name, which it returns.

326
man/xkb/XkbForceBell.man Normal file
View file

@ -0,0 +1,326 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbForceBell __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbForceBell \- Overrides user preference settings for audible bells to ring the
bell on the default keyboard
.SH SYNOPSIS
.B Bool XkbForceBell
(
.I display,
.I percent
)
.br
Display *\fI display \fP\^;
.br
int \fI percent \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- percent
volume for the bell, which can range from -100 to 100 inclusive
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell
with a
given duration, pitch, and volume. Xkb extends this capability by allowing clients
to
attach symbolic names to bells, disable audible bells, and receive an event whenever
the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed to
any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point of
view,
merely a name, and not connected with any physical sound-generating device. Some
client
application must generate the sound, or visual feedback, if any, that is associated
with
the name.)
.LP
You can also ask to receive XkbBellNotify events when the server rings the default
bell
or if any client has requested events only (without the bell sounding) for any of
the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that replaces
the
keyboard bell with some other audible cue might want to turn off the AudibleBell
control
to prevent the server from also generating a sound and avoid cacophony. If you
disable
audible bells and request to receive XkbBellNotify events, you can generate feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the functions
that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell
or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed or
repeating, Xkb can provide feedback for the controls by using special beep codes.
The
AccessXFeedback control is used to configure the specific types of operations that
generate feedback.
.B Bell Names
You can associate a name to an act of ringing a bell by converting the name to an
Atom
and then using this name when you call the functions listed in this chapter. If an
event
is generated as a result, the name is then passed to all other clients interested in
receiving XkbBellNotify events. Note that these are arbitrary names and that there
is no
binding to any sounds. Any sounds or other effects (such as visual bells on the
screen)
must be generated by a client application upon receipt of the bell event containing
the
name. There is no default name for the default keyboard bell. The server does
generate
some predefined bells for the AccessX controls. These named bells are shown in the
Table 1; the name is included in any bell event sent to clients that have requested to
receive XkbBellNotify events.
.TS
c s
l l
lW(4i) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{
SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
.B Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system bell.
This
is useful if you need to use an audio server instead of the system beep. For
example,
when an audio client starts, it could disable the audible bell (the system bell) and
then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the audio
client
could then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell event
occurs. This is the default. If you set XkbAudibleBellMask off and a bell event
occurs,
the server does not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell
events.
The input extension has two types of feedbacks that can generate bells - bell
feedback
and keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one feedback
of
each type; set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
Table 2 shows the conditions that cause a bell to sound or an XkbBellNotifyEvent to be generated when a bell function is
called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
If a compatible keyboard extension isn't present in the X server,
.I XkbForceBell
calls
.I XBell
with the specified
.I display
and
.I percent
and returns False. Otherwise,
.I XkbForceBell
calls
.I XkbForceDeviceBell
with the specified
.I display
and
.I percent, device_spec
=XkbUseCoreKbd,
.I bell_class
= XkbDfltXIClass,
.I bell_id
= XkbDfltXIId,
.I window
= None, and
.I name
= NULL, and returns what
.I XkbForceDeviceBell
returns.
.I XkbForceBell
does not cause an XkbBellNotify event.
You can call
.I XkbBell
without first initializing the keyboard extension.
.SH "RETURNS VALUES"
.TP 15
False
The
.I XkbForceBell
function returns False when a compatible keyboard extension isn't present in the X server.
.SH STRUCTURES
.LP
Xkb generates XkbBellNotify events for all bells except for those resulting from
calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass
XkbBellNotifyMask in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep */
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it
receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XBell (3X11),
.BR XkbBell (__libmansuffix__),
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XkbSelectEventDetails (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__)

View file

@ -0,0 +1,319 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbForceDeviceBell __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbForceDeviceBell \- Rings the bell on any keyboard, overriding user preference
settings for audible bells
.SH SYNOPSIS
.B Bool XkbForceDeviceBell
(
.I display,
.I window,
.I device_spec,
.I bell_class,
.I bell_id,
.I percent
)
.br
Display *\fI display \fP\^;
.br
Window \fI window \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned int \fI bell_class \fP\^;
.br
unsigned int \fI bell_id \fP\^;
.br
int \fI percent \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- window
event window, or None
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- bell_class
input extension class of the bell to be rung
.TP
.I \- bell_id
input extension ID of the bell to be rung
.TP
.I \- percent
relative volume, which can range from -100 to 100 inclusive
.SH DESCRIPTION
.LP
The core X protocol allows only applications to explicitly sound the system bell
with a
given duration, pitch, and volume. Xkb extends this capability by allowing clients
to
attach symbolic names to bells, disable audible bells, and receive an event
whenever the
keyboard bell is rung. For the purposes of this document, the
.I audible
bell is defined to be the system bell, or the default keyboard bell, as opposed to
any
other audible sound generated elsewhere in the system.
You can ask to receive XkbBellNotify events when any client rings any one of the
following:
.IP \(bu 5
The default bell
.IP \(bu 5
Any bell on an input device that can be specified by a bell_class and bell_id pair
.IP \(bu 5
Any bell specified only by an arbitrary name. (This is, from the server's point of
view,
merely a name, and not connected with any physical sound-generating device. Some
client
application must generate the sound, or visual feedback, if any, that is associated
with
the name.)
.LP
You can also ask to receive XkbBellNotify events when the server rings the default
bell
or if any client has requested events only (without the bell sounding) for any of
the
bell types previously listed.
You can disable audible bells on a global basis. For example, a client that
replaces the
keyboard bell with some other audible cue might want to turn off the AudibleBell
control
to prevent the server from also generating a sound and avoid cacophony. If you
disable
audible bells and request to receive XkbBellNotify events, you can generate
feedback
different from the default bell.
You can, however, override the AudibleBell control by calling one of the functions
that
force the ringing of a bell in spite of the setting of the AudibleBell control -
.I XkbForceDeviceBell
or
.I XkbForceBell.
In this case the server does not generate a bell event.
Just as some keyboards can produce keyclicks to indicate when a key is pressed or repeating, Xkb
can provide feedback for the controls by using special beep codes. The AccessXFeedback control
is used to configure the specific types of operations that generate feedback.
Bell Names
You can associate a name to an act of ringing a bell by converting the name to an Atom
and then using this name when you call the functions listed in this chapter. If an event
is generated as a result, the name is then passed to all other clients interested in receiving
XkbBellNotify events. Note that these are arbitrary names and that there is no binding to any
sounds. Any sounds or other effects (such as visual bells on the screen) must be generated by a
client application upon receipt of the bell event containing the name. There is no default name
for the default keyboard bell. The server does generate some predefined bells for the AccessX
controls. These named bells are shown in Table 1; the name is included in any bell event sent to
clients that have requested to receive XkbBellNotify events.
.TS
c s
l l
lW(4i) l.
Table 1 Predefined Bells
_
Action Named Bell
_
Indicator turned on AX_IndicatorOn
Indicator turned off AX_IndicatorOff
More than one indicator changed state AX_IndicatorChange
Control turned on AX_FeatureOn
Control turned off AX_FeatureOff
More than one control changed state AX_FeatureChange
T{
SlowKeys and BounceKeys about to be turned on or off
T} AX_SlowKeysWarning
SlowKeys key pressed AX_SlowKeyPress
SlowKeys key accepted AX_SlowKeyAccept
SlowKeys key rejected AX_SlowKeyReject
Accepted SlowKeys key released AX_SlowKeyRelease
BounceKeys key rejected AX_BounceKeyReject
StickyKeys key latched AX_StickyLatch
StickyKeys key locked AX_StickyLock
StickyKeys key unlocked AX_StickyUnlock
.TE
Audible Bells
Using Xkb you can generate bell events that do not necessarily ring the system bell. This
is useful if you need to use an audio server instead of the system beep. For example,
when an audio client starts, it could disable the audible bell (the system bell) and then
listen for XkbBellNotify events. When it receives a XkbBellNotify event, the audio client could
then send a request to an audio server to play a sound.
You can control the audible bells feature by passing the XkbAudibleBellMask to
.I XkbChangeEnabledControls.
If you set XkbAudibleBellMask on, the server rings the system bell when a bell event occurs.
This is the default. If you set XkbAudibleBellMask off and a bell event occurs, the server does
not ring the system bell unless you call
.I XkbForceDeviceBell
or
.I XkbForceBell.
Audible bells are also part of the per-client auto-reset controls.
Bell Functions
Use the functions described in this section to ring bells and to generate bell events.
The input extension has two types of feedbacks that can generate bells - bell feedback and
keyboard feedback. Some of the functions in this section have
.I bell_class
and
.I bell_id
parameters; set them as follows: Set
.I bell_class
to BellFeedbackClass or KbdFeedbackClass. A device can have more than one feedback of each type;
set
.I bell_id
to the particular bell feedback of
.I bell_class
type.
Table 2 shows the conditions that cause a bell to sound or an XkbBellNotifyEvent to be generated
when a bell function is called.
.TS
c s s s
l l l l
l l l l.
Table 2 Bell Sounding and Bell Event Generating
_
Function called AudibleBell Server sounds a bell Server sends an
XkbBellNotifyEvent
_
XkbDeviceBell On Yes Yes
XkbDeviceBell Off No Yes
XkbBell On Yes Yes
XkbBell Off No Yes
XkbDeviceBellEvent On or Off No Yes
XkbBellEvent On or Off No Yes
XkbDeviceForceBell On or Off Yes No
XkbForceBell On or Off Yes No
.TE
If a compatible keyboard extension isn't present in the X server,
.I XkbForceDeviceBell
immediately returns False. Otherwise,
.I XkbForceDeviceBell
rings the bell as specified for the display and keyboard device and returns
True. Set
.I percent
to be the volume relative to the base volume for the keyboard as described for
.I XBell.
There is no
.I name
parameter because
.I XkbForceDeviceBell
does not cause an XkbBellNotify event.
You can call
.I XkbBell
without first initializing the keyboard extension.
.SH STRUCTURES
.LP
Xkb generates XkbBellNotify events for all bells except for those resulting from
calls to
.I XkbForceDeviceBell
and
.I XkbForceBell.
To receive XkbBellNotify events under all possible conditions, pass
XkbBellNotifyMask in
both the
.I bits_to_change
and
.I values_for_bits
parameters to
.I XkbSelectEvents.
The XkbBellNotify event has no event details. It is either selected or it is not.
However, you can call
.I XkbSelectEventDetails
using XkbBellNotify as the
.I event_type
and specifying XkbAllBellNotifyMask in
.I bits_to_change
and
.I values_for_bits.
This has the same effect as a call to
.I XkbSelectEvents.
The structure for the XkbBellNotify event type contains:
.nf
typedef struct _XkbBellNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbBellNotify */
unsigned int device; /* Xkb device ID, will not be XkbUseCoreKbd */
int percent; /* requested volume as % of max */
int pitch; /* requested pitch in Hz */
int duration; /* requested duration in microseconds */
unsigned int bell_class; /* X input extension feedback class */
unsigned int bell_id; /* X input extension feedback ID */
Atom name; /* "name" of requested bell */
Window window; /* window associated with event */
Bool event_only; /* False -> the server did not produce a beep */
} XkbBellNotifyEvent;
.fi
If your application needs to generate visual bell feedback on the screen when it
receives
a bell event, use the window ID in the XkbBellNotifyEvent, if present.
.SH "SEE ALSO"
.BR XBell (3X11),
.BR XkbBell (__libmansuffix__),
.BR XkbBellNotify (__libmansuffix__),
.BR XkbChangeEnabledControls (__libmansuffix__),
.BR XkbDeviceBell (__libmansuffix__),
.BR XkbForceBell (__libmansuffix__),
.BR XkbForceDeviceBell (__libmansuffix__),
.BR XkbSelectEventDetails (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__)

View file

@ -0,0 +1,215 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeClientMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeClientMap \- Free memory used by the client map member of an XkbDescRec
structure
.SH SYNOPSIS
.B void XkbFreeClientMap
(
.I xkb,
.I which,
.I free_all
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description containing client map to free
.TP
.I \- which
mask identifying components of map to free
.TP
.I \- free_all
True => free all client components and map itself
.SH DESCRIPTION
.LP
.I XkbFreeClientMap
frees the components of client map specified by
.I which
in the XkbDescRec structure specified by the
.I xkb
parameter and sets the corresponding structure component values to NULL. The
.I which
parameter specifies a combination of the client map masks shown in Table 1.
If
.I free_all
is True,
.I which
is ignored;
.I XkbFreeClientMap
frees every non-NULL structure component in the client map, frees the
XkbClientMapRec
structure referenced by the
.I map
member of the
.I xkb
parameter, and sets the
.I map
member to NULL.
.TS
c s
l l
l lw(4i).
Table 1 XkbAllocClientMap Masks
_
Mask Effect
_
XkbKeyTypesMask T{
The type_count field specifies the number of entries to preallocate for the
types field of the client map. If the type_count field is less than
XkbNumRequiredTypes returns BadValue.
T}
.sp
XkbKeySymsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the syms and key_sym_map fields of the client map. The fields are
allocated to contain the maximum number of entries necessary for max_key_code -
min_key_code + 1 keys.
T}
.sp
XkbModifierMapMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the modmap field of the client map. The field is allocated to contain
the maximum number of entries necessary for max_key_code - min_key_code + 1
keys.
T}
.TE
NOTE: The
.I min_key_code
and
.I max_key_code
fields of the
.I xkb
parameter must be legal values if the XkbKeySymsMask or XkbModifierMapMask masks
are set in the
.I which
parameter. If they are not valid,
.I XkbAllocClientMap
returns BadValue.
.SH STRUCTURES
.LP
The complete description of an Xkb keyboard is given by an XkbDescRec. The
component
structures in the XkbDescRec represent the major Xkb components.
.nf
typedef struct {
struct _XDisplay * display; /* connection to X server */
unsigned short flags; /* private to Xkb, do not modify */
unsigned short device_spec; /* device of interest */
KeyCode min_key_code; /* minimum keycode for device */
KeyCode max_key_code; /* maximum keycode for device */
XkbControlsPtr ctrls; /* controls */
XkbServerMapPtr server; /* server keymap */
XkbClientMapPtr map; /* client keymap */
XkbIndicatorPtr indicators; /* indicator map */
XkbNamesPtr names; /* names for all components */
XkbCompatMapPtr compat; /* compatibility map */
XkbGeometryPtr geom; /* physical geometry of keyboard */
} XkbDescRec, *XkbDescPtr;
.fi
The
.I display
field points to an X display structure. The
.I flags field is private to the library: modifying
.I flags
may yield unpredictable results. The
.I device_spec
field specifies the device identifier of the keyboard input device, or
XkbUseCoreKeyboard, which specifies the core keyboard device. The
.I min_key_code
and
.I max_key_code
fields specify the least and greatest keycode that can be returned by the
keyboard.
Each structure component has a corresponding mask bit that is used in function
calls to
indicate that the structure should be manipulated in some manner, such as
allocating it
or freeing it. These masks and their relationships to the fields in the
XkbDescRec are
shown in Table 2.
.TS
c s s
l l l
l l l.
Table 2 Mask Bits for XkbDescRec
_
Mask Bit XkbDescRec Field Value
_
XkbControlsMask ctrls (1L<<0)
XkbServerMapMask server (1L<<1)
XkbIClientMapMask map (1L<<2)
XkbIndicatorMapMask indicators (1L<<3)
XkbNamesMask names (1L<<4)
XkbCompatMapMask compat (1L<<5)
XkbGeometryMask geom (1L<<6)
XkbAllComponentsMask All Fields (0x7f)
.TE
The
.I map
field of the complete Xkb keyboard description is a pointer to the Xkb client
map, which is
of type XkbClientMapRec:
.nf
typedef struct { /* Client Map */
unsigned char size_types; /* # occupied entries in types */
unsigned char num_types; /* # entries in types */
XkbKeyTypePtr types; /* vector of key types used by this keymap */
unsigned short size_syms; /* length of the syms array */
unsigned short num_syms; /* # entries in syms */
KeySym * syms; /* linear 2d tables of keysyms, 1 per key */
XkbSymMapPtr key_sym_map; /* 1 per keycode, maps keycode to syms */
unsigned char * modmap; /* 1 per keycode, real mods bound to key */
} XkbClientMapRec, *XkbClientMapPtr;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbAllocClientMap (__libmansuffix__)

View file

@ -0,0 +1,178 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeCompatMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeCompatMap \- Free an entire compatibility map or selected portions of one
.SH SYNOPSIS
.B void XkbFreeCompatMap
(
.I xkb,
.I which,
.I free_map
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_map\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
Xkb description in which to free compatibility map
.TP
.I \- which
mask of compatibility map components to free
.TP
.I \- free_map
True => free XkbCompatMap structure itself
.SH DESCRIPTION
.LP
.I which
specifies the compatibility map components to be freed (see XkbGetCompatMap).
.I which
is an inclusive OR of the bits shown in Table 1.
.TS
c s s
l l l.
Table 1 Compatibility Map Component Masks
_
Mask Value Affecting
_
XkbSymInterpMask (1<<0) Symbol interpretations
XkbGroupCompatMask (1<<1) Group maps
XkbAllCompatMask (0x3) All compatibility map components
.TE
.I free_map
indicates whether the XkbCompatMap structure itself should be freed. If
.I free_map
is True,
.I which
is ignored, all non-NULL compatibility map components are freed, and the
.I compat
field in the XkbDescRec referenced by
.I xkb
is set to NULL.
.SH STRUCTURES
.LP
.nf
typedef struct _XkbCompatMapRec {
XkbSymInterpretPtr sym_interpret; /* symbol based key semantics*/
XkbModsRec groups[XkbNumKbdGroups]; /* group => modifier map */
unsigned short num_si; /* # structures used in sym_interpret */
unsigned short size_si; /* # structures allocated in sym_interpret */
} XkbCompatMapRec, *XkbCompatMapPtr;
.fi
The complete description of an Xkb keyboard is given by an XkbDescRec. The component
structures in the XkbDescRec represent the major Xkb components outlined in Figure 1.1.
.nf
typedef struct {
struct _XDisplay * display; /* connection to X server */
unsigned short flags; /* private to Xkb, do not modify */
unsigned short device_spec; /* device of interest */
KeyCode min_key_code; /* minimum keycode for device */
KeyCode max_key_code; /* maximum keycode for device */
XkbControlsPtr ctrls; /* controls */
XkbServerMapPtr server; /* server keymap */
XkbClientMapPtr map; /* client keymap */
XkbIndicatorPtr indicators; /* indicator map */
XkbNamesPtr names; /* names for all components */
XkbCompatMapPtr compat; /* compatibility map */
XkbGeometryPtr geom; /* physical geometry of keyboard */
} XkbDescRec, *XkbDescPtr;
.fi
The
.I display
field points to an X display structure. The
.I flags field is private to the library: modifying
.I flags
may yield unpredictable results. The
.I device_spec
field specifies the device identifier of the keyboard input device, or
XkbUseCoreKeyboard, which specifies the core keyboard device. The
.I min_key_code
and
.I max_key_code
fields specify the least and greatest keycode that can be returned by the keyboard.
The other fields specify structure components of the keyboard description and are
described in detail in other sections of this document. Table 2 identifies the
subsequent sections of this document that discuss the individual components of the
XkbDescRec.
.TS
c s
l l
l l.
Table 2 XkbDescRec Component References
_
XkbDescRec Field For more info
_
ctrls Chapter 10
server Chapter 16
map Chapter 15
indicators Chapter 8
names Chapter 18
compat Chapter 17
geom Chapter 13
.TE
Each structure component has a corresponding mask bit that is used in function calls to
indicate that the structure should be manipulated in some manner, such as allocating it
or freeing it. These masks and their relationships to the fields in the XkbDescRec are
shown in Table 3.
.TS
c s s
l l l
l l l.
Table 3 Mask Bits for XkbDescRec
_
Mask Bit XkbDescRec Field Value
_
XkbControlsMask ctrls (1L<<0)
XkbServerMapMask server (1L<<1)
XkbIClientMapMask map (1L<<2)
XkbIndicatorMapMask indicators (1L<<3)
XkbNamesMask names (1L<<4)
XkbCompatMapMask compat (1L<<5)
XkbGeometryMask geom (1L<<6)
XkbAllComponentsMask All Fields (0x7f)
.TE
.SH "SEE ALSO"
.BR XkbGetCompatMap (__libmansuffix__)

View file

@ -0,0 +1,54 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeComponentList __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeComponentList \- Free the structure returned by
.I XkbListComponents
.SH SYNOPSIS
.B void XkbFreeComponentList
(
.I list
)
.br
XkbComponentListPtr \fIlist\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- list
pointer to XkbComponentListRec to free
.SH DESCRIPTION
.LP
When you are done using the structure returned by
.I XkbListComponents,
free it using
.I XkbFreeComponentList.
.SH "SEE ALSO"
.BR XkbListComponents (__libmansuffix__)

127
man/xkb/XkbFreeControls.man Normal file
View file

@ -0,0 +1,127 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeControls \- Frees memory used by the ctrls member of an XkbDescRec structure
.SH SYNOPSIS
.B void XkbFreeControls
(
.I xkb,
.I which,
.I free_all
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
Xkb description in which to free controls components
.TP
.I \- which
mask of components of ctrls to free
.TP
.I \- free_all
True => free everything + ctrls itself
.SH DESCRIPTION
.LP
.I XkbFreeControls
frees the specified components of the
.I ctrls
field in the
.I xkb
keyboard description and sets the corresponding structure component values to NULL or zero. The
.I which
mask specifies the fields of
.I ctrls
to be freed and can contain any of the controls components specified in Table 1.
Table 1 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s
l l l l
l l l l
l l l l.
Table 1 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
If
.I free_all
is True,
.I XkbFreeControls
frees every non-NULL structure component in the controls, frees the XkbControlsRec structure referenced by the
.I ctrls
member of
.I xkb,
and sets
.I ctrls
to NULL.

View file

@ -0,0 +1,190 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeDeviceInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeDeviceInfo \- Free an XkbDeviceInfoRec structure
.SH SYNOPSIS
.B void XkbFreeDeviceInfo
(
.I device_info,
.I which,
.I free_all
)
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- device_info
pointer to XkbDeviceInfoRec in which to free items
.TP
.I \- which
mask of components of device_info to free
.TP
.I \- free_all
True => free everything, including device_info
.SH DESCRIPTION
.LP
If
.I free_all
is True, the
.I XkbFreeDeviceInfo
frees all components of
.I device_info
and the XkbDeviceInfoRec structure pointed to by
.I device_info
itself. If
.I free_all
is False, the value of
.I which
determines which subcomponents are freed.
.I which
is an inclusive OR of one or more of the values from Table 1. If
.I which
contains XkbXI_ButtonActionsMask, all button actions associated with
.I device_info
are freed,
.I device_info->btn_acts
is set to NULL, and
.I device_info->num_btns
is set to zero. If
.I which
contains all bits in XkbXI_IndicatorsMask, all XkbDeviceLedInfoRec structures associated with
.I device_info
are freed,
.I device_info->leds
is set to NULL, and
.I device_info->sz_leds
and
.I device_info->num_leds
are set to zero. If
.I which
contains XkbXI_IndicatorMapsMask, all indicator maps associated with
.I device_info
are cleared, but the number of LEDs and the leds structures themselves is preserved. If
.I which
contains XkbXI_IndicatorNamesMask, all indicator names associated with
.I device_info
are cleared, but the number of LEDs and the leds structures themselves is preserved. If
.I which
contains XkbXI_IndicatorStateMask, the indicator state associated with the
.I device_info
leds are set to zeros but the number of LEDs and the leds structures themselves is preserved.
.bp
.nf
Table 1 XkbDeviceInfoRec Mask Bits
____________________________________________________________________________________
Name XkbDeviceInfoRec Value Capability If Set
Fields Effected
____________________________________________________________________________________
XkbXI_KeyboardsMask (1L <<0) Clients can use all
Xkb requests and events
with KeyClass devices
supported by the input
device extension.
XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key
btn_acts actions to buttons
non-KeyClass input
extension devices.
XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign
names to indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign
indicator maps to
indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request
the status of indicators
on non-KeyClass input
extension devices.
XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask |
num_leds XkbXI_IndicatorMapsMask |
leds->* XkbXI_IndicatorStateMask
XkbXI_UnsupportedFeaturesMask unsupported (1L <<15)
XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask |
by Value Column XkbSI_ButtonActionsMask
masks
XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask |
by Value Column XkbSI_KeyboardsMask
masks
XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask |
by Value column XkbXI_UnsupportedFeaturesMask
masks
.fi
.SH STRUCTURES
.LP
Information about X Input Extension devices is transferred between a client program and the Xkb
extension in an XkbDeviceInfoRec structure:
.nf
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
.fi

View file

@ -0,0 +1,96 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomColors __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomColors \- Free geometry colors
.SH SYNOPSIS
.B void XkbFreeGeomColors
(
.I geom,
.I first,
.I count,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry in which colors should be freed
.TP
.I \- first
first color to be freed
.TP
.I \- count
number of colors to be freed
.TP
.I \- free_all
True => all colors are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all colors are freed regardless of the value of
.I first
or
.I count.
Otherwise,
.I count
colors are freed beginning with the one specified by
.I first.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,92 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomDoodads __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomDoodads \- Free geometry doodads
.SH SYNOPSIS
.B void XkbFreeGeomDoodads
(
.I doodads,
.I count,
.I free_all
)
.br
XkbDoodadPtr \fIdoodads\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- doodads
doodads to be freed
.TP
.I \- count
number of doodads to be freed
.TP
.I \- free_all
True => all doodads are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all doodads in the array are freed, regardless of the value of
.I count.
Otherwise,
.I count
doodads are freed.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomDoodads function returns Success if there are no allocation
errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,105 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomKeyAliases __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomKeyAliases \- Free geometry key aliases
.SH SYNOPSIS
.B void XkbFreeGeomKeyAliases
(
.I geom,
.I first,
.I count,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry in which key aliases should be freed
.TP
.I \- first
first key alias to be freed
.TP
.I \- count
number of key aliases to be freed
.TP
.I \- free_all
True => all key aliases are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all aliases in the top level of the specified geometry
.I geom
are freed regardless of the value of
.I first
or
.I count.
Otherwise,
.I count
aliases in
.I geom
are freed beginning with the one specified by
.I first.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomKeyAliases function returns Success if there are no allocation
errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,74 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomKeys __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomKeys \- Free geometry keys
.SH SYNOPSIS
.B void XkbFreeGeomKeys
(
.I row,
.I first,
.I count,
.I free_all
)
.br
XkbRowPtr \fIrow\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- row
row in which keys should be freed
.TP
.I \- first
first key to be freed
.TP
.I \- count
number of keys to be freed
.TP
.I \- free_all
True => all keys are freed
.SH DESCRIPTION
.LP
If
.I free_all
is True, all keys are freed regardless of the value of
.I first
or
.I count.
Otherwise,
.I count
keys are freed beginning with the one specified by
.I first.

View file

@ -0,0 +1,74 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomOutlines __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomOutlines \- Free geometry outlines
.SH SYNOPSIS
.B void XkbFreeGeomOutlines
(
.I shape,
.I first,
.I count,
.I free_all
)
.br
XkbShapePtr \fIshape\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- shape
shape in which outlines should be freed
.TP
.I \- first
first outline to be freed
.TP
.I \- count
number of outlines to be freed
.TP
.I \- free_all
True => all outlines are freed
.SH DESCRIPTION
.LP
If
.I free_all
is True, all outlines are freed regardless of the value of
.I first
or
.I count.
Otherwise,
.I count
outlines are freed beginning with the one specified by
.I first.

View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomOverlayKeys __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomOverlayKeys \- Free keys in an overlay row
.SH SYNOPSIS
.B void XkbFreeGeomOverlayKeys
(
.I row,
.I first,
.I count,
.I free_all
)
.br
XkbRowPtr \fIrow\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- row
row in which keys should be freed
.TP
.I \- first
first key to be freed
.TP
.I \- count
number of keys to be freed
.TP
.I \- free_all
True => all keys are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all keys are freed regardless of the value of
.I first
and
.I count.
Otherwise, the number of keys specified by
.I count
are freed, beginning with the key specified by
.I first
in the specified row.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomOverlayKeys function returns Success if there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomOverlayRows __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomOverlayRows \- Free rows in an overlay
.SH SYNOPSIS
.B void XkbFreeGeomOverlayRows
(
.I overlay,
.I first,
.I count,
.I free_all
)
.br
XkbSectionPtr \fIoverlay\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- overlay
section in which rows should be freed
.TP
.I \- first
first row to be freed
.TP
.I \- count
number of rows to be freed
.TP
.I \- free_all
True => all rows are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all rows are freed regardless of the value of
.I first
and
.I count.
Otherwise, the number of rows specified by
.I count
are freed, beginning with the row specified by
.I first
in the specified overlay.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomOverlayRows function returns Success if there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomOverlays __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomOverlays \- Free rows in a section
.SH SYNOPSIS
.B void XkbFreeGeomOverlays
(
.I section,
.I first,
.I count,
.I free_all
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section in which overlays should be freed
.TP
.I \- first
first overlay to be freed
.TP
.I \- count
number of overlays to be freed
.TP
.I \- free_all
True => all overlays are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all overlays are freed regardless of the value of
.I first
and
.I count.
Otherwise, the number of overlays specified by
.I count
are freed, beginning with the overlay specified by
.I first
in the specified section.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomOverlays functions returns Success if there are no allocation or
argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomPoints __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomPoints \- Free points in a outline
.SH SYNOPSIS
.B void XkbFreeGeomPoints
(
.I outline,
.I first,
.I count,
.I free_all
)
.br
XkbOutlinePtr \fIoutline\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- outline
outline in which points should be freed
.TP
.I \- first
first point to be freed
.TP
.I \- count
number of points to be freed
.TP
.I \- free_all
True => all points are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all points are freed regardless of the value of
>i first
and
.I count.
Otherwise, the number of points specified by
.I count
are freed, beginning with the point specified by
.I first
in the specified outline.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomPoints function returns Success when there are no allocation or
argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,101 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomProperties __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomProperties \- Free geometry properties
.SH SYNOPSIS
.B void XkbFreeGeomProperties
(
.I geom,
.I first,
.I count,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool * \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry in which properties should be freed
.TP
.I \- first
first property to be freed
.TP
.I \- count
number of properties to be freed
.TP
.I \- free_all
True => all properties are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all properties are freed regardless of the value of
.I first
or
.I count.
Otherwise,
.I count
properties are freed beginning with the one specified by
.I first.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomProperties function returns Success when there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

102
man/xkb/XkbFreeGeomRows.man Normal file
View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomRows __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomRows \- Free rows in a section
.SH SYNOPSIS
.B void XkbFreeGeomRows
(
.I section,
.I first,
.I count,
.I free_all
)
.br
XkbSectionPtr \fIsection\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- section
section in which rows should be freed
.TP
.I \- first
first row to be freed
.TP
.I \- count
number of rows to be freed
.TP
.I \- free_all
True => all rows are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all rows are freed regardless of the value of
.I first
and
.I count.
Otherwise, the number of rows specified by
.I count
are freed, beginning with the row specified by
.I first
in the specified section.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomRows function returns Success when there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,102 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomSections __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomSections \- Free geometry sections
.SH SYNOPSIS
.B void XkbFreeGeomSections
(
.I geom,
.I first,
.I count,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry in which sections should be freed
.TP
.I \- first
first section to be freed
.TP
.I \- count
number of sections to be freed
.TP
.I \- free_all
True => all sections are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all sections are freed regardless of the value of
.I first
and
.I count.
Otherwise, the number of sections specified by
.I count
are freed, beginning with the section specified by
.I first
in the specified geometry.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomSections function returns Success when there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,101 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeomShapes __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeomShapes \- Free geometry shapes
.SH SYNOPSIS
.B void XkbFreeGeomShapes
(
.I geom,
.I first,
.I count,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
int \fIfirst\fP\^;
.br
int \fIcount\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry in which shapes should be freed
.TP
.I \- first
first shape to be freed
.TP
.I \- count
number of shapes to be freed
.TP
.I \- free_all
True => all shapes are freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
If
.I free_all
is True, all shapes in the geometry are freed regardless of the values of
.I first
and
.I count.
Otherwise,
.I count
shapes are freed, beginning with the shape specified by
.I first.
.SH "RETURN VALUES"
.TP 15
Success
The XkbFreeGeomShapes function returns Success when there are no allocation
or argument errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

104
man/xkb/XkbFreeGeometry.man Normal file
View file

@ -0,0 +1,104 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeGeometry __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeGeometry \- Free an entire geometry
.SH SYNOPSIS
.B void XkbFreeGeometry
(
.I geom,
.I which,
.I free_all
)
.br
XkbGeometryPtr \fIgeom\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- geom
geometry to be freed
.TP
.I \- which
mask of geometry components to be freed
.TP
.I \- free_all
True => the entire geometry is freed
.SH DESCRIPTION
.LP
Xkb provides a number of functions to allocate and free subcomponents of a
keyboard geometry. Use these functions to create or modify keyboard geometries.
Note that these functions merely allocate space for the new element(s), and it
is up to you to fill in the values explicitly in your code. These allocation
functions increase
.I sz_*
but never touch
.I num_*
(unless there is an allocation failure, in which case they reset both
.I sz_*
and
.I num_*
to zero). These functions return Success if they succeed, BadAlloc if they are
not able to allocate space, or BadValue if a parameter is not as expected.
The values of
.I which
and
.I free_all
determine how much of the specified geometry is freed. The valid values for
.I which
are:
.nf
#define XkbGeomPropertiesMask (1<<0)
#define XkbGeomColorsMask (1<<1)
#define XkbGeomShapesMask (1<<2)
#define XkbGeomSectionsMask (1<<3)
#define XkbGeomDoodadsMask (1<<4)
#define XkbGeomAllMask (0x1f)
.fi
If
.I free_all
is True, the entire geometry is freed regardless of the value of
.I which.
Otherwise, the portions of the geometry specified by
.I which
are freed.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,58 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeIndicatorMaps __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeIndicatorMaps \- Frees memory used by the
.I indicators
member of an XkbDescRec structure
.SH SYNOPSIS
.B void XkbFreeIndicatorMaps
(
.I xkb
)
.br
XkbDescPtr \fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description structure
.SH DESCRIPTION
.LP
If the
.I indicators
member of the keyboard description record pointed to by
.I xkb
is not NULL,
.I XkbFreeIndicatorMaps
frees the memory associated with the
.I indicators
member of
.I xkb.

View file

@ -0,0 +1,76 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeKeyboard __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeKeyboard \- Destroys either an entire XkbDescRec or just some of its
members
.SH SYNOPSIS
.B void XkbFreeKeyboard
(
.I xkb,
.I which,
.I free_all
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I xkb
keyboard description with components to free
.TP
.I which
mask selecting components to free
.TP
.I free_all
True => free all components and
.I xkb
.SH DESCRIPTION
.LP
.I XkbFreeKeyboard
frees the components of
.I xkb
specified by
.I which
and sets the corresponding values to NULL. If
.I
free_all
is True,
.I XkbFreeKeyboard
frees every non-NULL component of
.I xkb
and then frees the
.I xkb
structure itself.

107
man/xkb/XkbFreeNames.man Normal file
View file

@ -0,0 +1,107 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeNames __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeNames \- Free symbolic names structures
.SH SYNOPSIS
.B void XkbFreeNames
(
.I xkb,
.I which,
.I free_map
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_map\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description for which names are to be freed
.TP
.I \- which
mask of names components to be freed
.TP
.I \- free_map
True => XkbNamesRec structure itself should be freed
.SH DESCRIPTION
.LP
Do not free symbolic names structures directly using
.I free
or
.I XFree.
Use
.I XkbFreeNames
instead.
The
.I which
parameter is the bitwise inclusive OR of the valid names mask bits defined in
Table 1.
Xkb provides several functions that work with symbolic names. Each of these
functions uses a mask to specify individual fields of the structures described
above. These masks and their relationships to the fields in a keyboard
description are shown in Table 1.
.TS
c s s s
l l l l.
Table 1 Symbolic Names Masks
_
Mask Bit Value Keyboard Field
Component
_
XkbKeycodesNameMask (1<<0) Xkb->names keycodes
XkbGeometryNameMask (1<<1) Xkb->names geometry
XkbSymbolsNameMask (1<<2) Xkb->names symbols
XkbPhysSymbolsNameMask (1<<3) Xkb->names phys_symbols
XkbTypesNameMask (1<<4) Xkb->names type
XkbCompatNameMask (1<<5) Xkb->names compat
XkbKeyTypeNamesMask (1<<6) Xkb->map type[*].name
XkbKTLevelNamesMask (1<<7) Xkb->map type[*].lvl_names[*]
XkbIndicatorNamesMask (1<<8) Xkb->names indicators[*]
XkbKeyNamesMask (1<<9) Xkb->names keys[*], num_keys
XkbKeyAliasesMask (1<<10) Xkb->names key_aliases[*], num_key_aliases
XkbVirtualModNamesMask (1<<11) Xkb->names vmods[*]
XkbGroupNamesMask (1<<12) Xkb->names groups[*]
XkbRGNamesMask (1<<13) Xkb->names radio_groups[*], num_rg
XkbComponentNamesMask (0x3f) Xkb->names keycodes,
geometry,
symbols,
physical symbols,
types, and
compatibility map
XkbAllNamesMask (0x3fff) Xkb->names all name components
.TE

View file

@ -0,0 +1,201 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbFreeServerMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbFreeServerMap \- Free memory used by the server member of an XkbDescRec
structure
.SH SYNOPSIS
.B void XkbFreeServerMap
(
.I xkb,
.I which,
.I free_all
)
.br
XkbDescPtr \fIxkb\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
Bool \fIfree_all\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- xkb
keyboard description containing server map to free
.TP
.I \- which
mask identifying components of map to free
.TP
.I \- free_all
True => free all server map components and server itself
.SH DESCRIPTION
.LP
The
.I XkbFreeServerMap
function frees the specified components of server map in the XkbDescRec
structure specified by the
.I xkb
parameter and sets the corresponding structure component values to NULL. The
.I which parameter specifies a combination of the server map masks and is a
bitwise inclusive OR
of the masks listed in Table 1. If
.I free_all
is True,
.I which
is ignored and
.I XkbFreeServerMap
frees every non-NULL structure component in the server map, frees the
XkbServerMapRec structure
referenced by the
.I server
member of the
.I xkb
parameter, and sets the
.I server
member to NULL.
.TS
c s
l l
l lw(4i).
Table 1 XkbAllocServerMap Masks
_
Mask Effect
_
XkbExplicitComponentsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the explicit field of the server map.
T}
.sp
XkbKeyActionsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the key_acts
field of the server map. The count_acts parameter is used to allocate the acts
field of the
server map.
T}
.sp
XkbKeyBehaviorsMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the behaviors
field of the server map.
T}
.sp
XkbVirtualModMapMask T{
The min_key_code and max_key_code fields of the xkb parameter are used to
allocate the vmodmap
field of the server map.
T}
.TE
.SH STRUCTURES
.LP
The complete description of an Xkb keyboard is given by an XkbDescRec. The
component
structures in the XkbDescRec represent the major Xkb components.
.nf
typedef struct {
struct _XDisplay * display; /* connection to X server */
unsigned short flags; /* private to Xkb, do not modify */
unsigned short device_spec; /* device of interest */
KeyCode min_key_code; /* minimum keycode for device */
KeyCode max_key_code; /* maximum keycode for device */
XkbControlsPtr ctrls; /* controls */
XkbServerMapPtr server; /* server keymap */
XkbClientMapPtr map; /* client keymap */
XkbIndicatorPtr indicators; /* indicator map */
XkbNamesPtr names; /* names for all components */
XkbCompatMapPtr compat; /* compatibility map */
XkbGeometryPtr geom; /* physical geometry of keyboard */
} XkbDescRec, *XkbDescPtr;
.fi
The
.I display
field points to an X display structure. The
.I flags field is private to the library: modifying
.I flags
may yield unpredictable results. The
.I device_spec
field specifies the device identifier of the keyboard input device, or
XkbUseCoreKeyboard, which specifies the core keyboard device. The
.I min_key_code
and
.I max_key_code
fields specify the least and greatest keycode that can be returned by the
keyboard.
Each structure component has a corresponding mask bit that is used in function
calls to
indicate that the structure should be manipulated in some manner, such as
allocating it
or freeing it. These masks and their relationships to the fields in the
XkbDescRec are
shown in Table 2.
.TS
c s s
l l l
l l l.
Table 2 Mask Bits for XkbDescRec
_
Mask Bit XkbDescRec Field Value
_
XkbControlsMask ctrls (1L<<0)
XkbServerMapMask server (1L<<1)
XkbIClientMapMask map (1L<<2)
XkbIndicatorMapMask indicators (1L<<3)
XkbNamesMask names (1L<<4)
XkbCompatMapMask compat (1L<<5)
XkbGeometryMask geom (1L<<6)
XkbAllComponentsMask All Fields (0x7f)
.TE
The Xkb server map contains the information the server needs to interpret key
events and is of
type XkbServerMapRec:
.nf
#define XkbNumVirtualMods 16
typedef struct { /* Server Map */
unsigned short num_acts; /* # of occupied entries in acts */
unsigned short size_acts; /* # of entries in acts */
XkbAction * acts; /* linear 2d tables of key actions, 1 per keycode */
XkbBehavior * behaviors; /* key behaviors,1 per keycode */
unsigned short * key_acts; /* index into acts, 1 per keycode */
unsigned char * explicit; /* explicit overrides of core remapping, 1 per key */
unsigned char vmods[XkbNumVirtualMods]; /* real mods bound to virtual mods */
unsigned short * vmodmap; /* virtual mods bound to key, 1 per keycode*/
} XkbServerMapRec, *XkbServerMapPtr;
.fi

View file

@ -0,0 +1,162 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetAccessXTimeout __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetAccessXTimeout \- Queries the current AccessXTimeout options for a
keyboard device
.SH SYNOPSIS
.B Bool XkbGetAccessXTimeout
(
.I display,
.I device_spec,
.I timeout_rtrn,
.I ctrls_mask_rtrn,
.I ctrls_values_rtrn,
.I options_mask_rtrn,
.I options_values_rtrn
)
.br
Display *\fI display \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned short *\fI timeout_rtrn \fP\^;
.br
unsigned int *\fI ctrls_mask_rtrn \fP\^;
.br
unsigned int *\fI ctrls_values_rtrn \fP\^;
.br
unsigned short *\fI options_mask_rtrn \fP\^;
.br
unsigned short *\fI options_values_rtrn \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
unsigned short
.TP
.I \- device_spec
device to query, or XkbUseCoreKbd
.TP
.I \- timeout_rtrn
delay until AccessXTimeout, seconds
.TP
.I \- ctrls_mask_rtrn
backfilled with controls to modify
.TP
.I \- ctrls_values_rtrn
backfilled with on/off status for controls
.TP
.I \- options_mask_rtrn
backfilled with ax_options to modify
.TP
.I \- options_values_rtrn
backfilled with values for ax_options
.SH DESCRIPTION
.LP
In environments where computers are shared, features such as SlowKeys present a
problem: if
SlowKeys is on, the keyboard can appear to be unresponsive because keys are not
accepted
until they are held for a certain period of time. To help solve this problem,
Xkb provides
an AccessXTimeout control to automatically change the enabled/disabled state of
any boolean
controls and to change the value of the AccessXKeys and AccessXFeedback control
attributes
if the keyboard is idle for a specified period of time.
When a timeout as specified by AccessXTimeout occurs and a control is
consequently modified,
Xkb generates an XkbControlsNotify event.
.I XkbGetAccessXTimeout
sends a request to the X server to obtain the current values for the
AccessXTimeout attributes, waits for a reply, and backfills the values into the
appropriate arguments. The parameters
.I options_mask_rtrn
and
.I options_values_rtrn
are backfilled with the options to modify and the values for
.I ax_options,
which is a field in the XkbControlsRec structure.
.I XkbGetAccessXTimeout
returns True if successful; if a compatible version of the Xkb extension is not
available in the server,
.I XkbGetAccessXTimeout
returns False.
.SH "RETURN VALUES"
.TP 15
True
The
.I XkbGetAccessXTimeout
returns True when it successfully sends a request to the X server to obtain the
current values for the AccessXTimeout attributes, waits for a reply, and
backfills the values into the appropriate arguments.
.TP 15
False
The
.I XkbGetAccessXTimeout
funtion returns False if a compatible version of the Xkb extension is not
available in the
server.
.SH STRUCTURES
.LP
.nf
The XkbControlsRec structure is defined as follows:
#define XkbMaxLegalKeyCode 255
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
typedef struct {
unsigned char mk_dflt_btn; /* default button for keyboard driven mouse */
unsigned char num_groups; /* number of keyboard groups */
unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
XkbModsRec internal; /* defines server internal modifiers */
XkbModsRec ignore_lock; /* modifiers to ignore when checking for grab */
unsigned int enabled_ctrls; /* 1 bit => corresponding boolean control enabled */
unsigned short repeat_delay; /* ms delay until first repeat */
unsigned short repeat_interval; /* ms delay between repeats */
unsigned short slow_keys_delay; /* ms minimum time key must be down to be ok */
unsigned short debounce_delay; /* ms delay before key reactivated */
unsigned short mk_delay; /* ms delay to second mouse motion event */
unsigned short mk_interval; /* ms delay between repeat mouse events */
unsigned short mk_time_to_max; /* # intervals until constant mouse move */
unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
short mk_curve; /* determines mouse move curve type */
unsigned short ax_options; /* 1 bit => Access X option enabled */
unsigned short ax_timeout; /* seconds until Access X disabled */
unsigned short axt_opts_mask; /* 1 bit => options to reset on Access X timeout */
unsigned short axt_opts_values; /* 1 bit => turn option on, 0=> off */
unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls to modify */
unsigned int axt_ctrls_values; /* values for new bits in enabled_ctrls */
unsigned char per_key_repeat[XkbPerKeyBitArraySize]; /* per key auto repeat */
} XkbControlsRec, *XkbControlsPtr;
.fi

View file

@ -0,0 +1,100 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetAutoRepeatRate __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetAutoRepeatRate \- Gets the current attributes of the RepeatKeys control
for a keyboard device
.SH SYNOPSIS
.B Bool XkbGetAutoRepeatRate
(
.I display,
.I device_spec,
.I timeout_rtrn,
.I interval_rtrn
)
.br
Display *\fI display \fP\^;
.br
unsigned int \fI device_spec \fP\^;
.br
unsigned int *\fI timeout_rtrn \fP\^;
.br
unsigned int *\fI interval_rtrn \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to X server
.TP
.I \- device_spec
desired device ID, or XkbUseCoreKbd
.TP
.I \- timeout_rtrn
backfilled with initial repeat delay, ms
.TP
.I \- interval_rtrn
backfilled with subsequent repeat delay, ms
.SH DESCRIPTION
.LP
The core protocol allows only control over whether or not the entire keyboard or
individual keys should auto-repeat when held down. RepeatKeys is a boolean
control that extends this capability by adding control over the delay until a
key begins to repeat and the rate at which it repeats. RepeatKeys is coupled
with the core auto-repeat control: when RepeatKeys is enabled or disabled, the
core auto-repeat is enabled or disabled and vice versa.
Auto-repeating keys are controlled by two attributes. The first,
.I timeout,
is the delay after the initial press of an auto-repeating key and the first
generated repeat event. The second,
.I interval,
is the delay between all subsequent generated repeat events. As with all boolean
controls, configuring the attributes that determine how the control operates
does not automatically enable the control as a whole.
.I XkbGetAutoRepeatRate
queries the server for the current values of the RepeatControls control
attributes, backfills
.I timeout_rtrn
and
.I interval_rtrn
with them, and returns True. If a compatible version of the Xkb extension is not
available in the server
.I XkbGetAutoRepeatRate
returns False.
.SH "RETURN VALUES"
.TP 15
True
The XkbGetAutoRepeatRate function returns True if a compatible version of the
Xkb extension is available in the server.
.TP 15
False
The XkbGetAutoRepeatRate function returns False if a compatible version of the
Xkb extension is not available in the server.

View file

@ -0,0 +1,105 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetAutoResetControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetAutoResetControls \- Gets the current values of the auto-reset controls
.SH SYNOPSIS
.B Bool XkbGetAutoResetControls
(
.I dpy,
.I auto_ctrls,
.I auto_values
)
.br
Display *\fI dpy \fP\^;
.br
unsigned int *\fI auto_ctrls \fP\^;
.br
unsigned int *\fI auto_values \fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- auto_ctrls
specifies which bits in auto_values are relevant
.TP
.I \- auto_values
1 bit => corresponding control has auto-reset on
.SH DESCRIPTION
.LP
You can configure the boolean controls to automatically be enabled or
disabled when a program exits. This capability is controlled via two masks
maintained in the X server on a per-client basis. There is no client-side Xkb
data structure corresponding to these masks. Whenever the client exits for
any reason, any boolean controls specified in the
.I auto-reset mask
are set to the corresponding value from the
.I auto-reset values
mask. This makes it
possible for clients to "clean up after themselves" automatically, even if
abnormally terminated. The bits used in the masks correspond to the
EnabledControls control bits.
For example, a client that replaces the keyboard bell with some other audible
cue might want to turn off the AudibleBell control to prevent the server from
also generating a sound and avoid cacophony. If the client were to exit
without resetting the AudibleBell control, the user would be left without any
feedback at all. Setting AudibleBell in both the auto-reset mask and
auto-reset values guarantees that the audible bell will be turned back on
when the client exits.
.I XkbGetAutoResetControls
backfills
.I auto_ctrls
and
.I auto_values
with the AutoReset control attributes for this particular client. It returns
True if successful, and False otherwise.
.SH "RETURN VALUES"
.TP 15
True
The
.I XkbGetAutoResetControls
function returns True when it successfully backfills
.I auto_ctrls
and
.I auto_values
with the AutoReset control attributes for this particular client.
.TP 15
False
The
.I XkbGetAutoResetControls
function returns False when it does not successfully backfill
.I auto_ctrls
and
.I auto_values
with the AutoReset control attributes for this particular client.

View file

@ -0,0 +1,226 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetBounceKeysDelay __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetBounceKeysDelay \- Queries the current BounceKeys delay for a keyboard
device.
.SH SYNOPSIS
.B Bool XkbGetBounceKeysDelay
(
.I display,
.I device_spec,
.I delay_rtrn
)
.br
Display *\fIdisplay\fP\^;
.br
unsigned int \fIdevice_spec\fP\^;
.br
unsigned int *\fIdelay_rtrn\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to X server
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- delay_rtrn
backfilled with bounce keys delay, ms
.SH DESCRIPTION
.LP
The server can generate XkbAccessXNotify events for some of the global keyboard
controls.
The detail field describes what AccessX event just occurred and can be any of
the values in
Table 1.
.TS
c s
l l
l lw(4i).
Table 1 AccessXNotify Events
_
detail Reason
_
XkbAXN_SKPress T{
A key was pressed when SlowKeys was enabled.
T}
XkbAXN_SKAccept T{
A key was accepted (held longer than the SlowKeys delay).
T}
XkbAXN_SKRelease T{
An accepted SlowKeys key was released.
T}
XkbAXN_SKReject T{
A key was rejected (released before the SlowKeys delay expired).
T}
XkbAXN_BKAccept T{
A key was accepted by BounceKeys.
T}
XkbAXN_BKReject T{
A key was rejected (pressed before the BounceKeys delay expired).
T}
XkbAXN_AXKWarning T{
AccessXKeys is about to turn on/off StickyKeys or BounceKeys.
T}
.TE
The
.I keycode
field reports the keycode of the key for which the event occurred. If the action
is related to
.I SlowKeys,
the
.I slowKeysDelay
field contains the current SlowKeys acceptance delay. If the action is related
to BounceKeys,
the
.I debounceDelay
field contains the current BounceKeys debounce delay.
Selecting for AccessX Events
To receive XkbAccessXNotify events under all possible conditions, use
.I XkbSelectEvents
and pass XkbAccesXNotifyMask in both
.I bits_to_change
and
.I values_for_bits.
To receive XkbStateNotify events only under certain conditions, use
.I XkbSelectEventDetails
using XkbAccessXNotify as the
.I event_type
and specifying the desired state changes in
.I bits_to_change
and
.I values_for_bits
using mask bits from Table 2.
.TS
c s s
l l l
l l lw(3i).
Table 2 AccessXNotify Event Details
_
XkbAccessXNotify Event Details Value Circumstances
_
XkbAXN_SKPressMask (1<<0) T{
Slow key press notification wanted
T}
XkbAXN_SKAcceptMask (1<<1) T{
Slow key accept notification wanted
T}
XkbAXN_SKRejectMask (1<<2) T{
Slow key reject notification wanted
T}
XkbAXN_SKReleaseMask (1<<3) T{
Slow key release notification wanted
T}
XkbAXN_BKAcceptMask (1<<4) T{
Bounce key accept notification wanted
T}
XkbAXN_BKRejectMask (1<<5) T{
Bounce key reject notification wanted
T}
XkbAXN_AXKWarningMask (1<<6) T{
AccessX warning notification wanted
T}
XkbAXN_AllEventsMask (0x7f) T{
All AccessX features notifications wanted
T}
.TE
Some users may accidentally "bounce" on a key when they release it. They press
it once, then accidentally press it again after they release it. The BounceKeys
control temporarily disables a key after it has been pressed, effectively
"debouncing" the keyboard. The period of time the key is disabled after it is
released is known as the
.I BounceKeys delay.
BounceKeys is a boolean control.
When the BounceKeys control is active, the server reports acceptance or
rejection of any key to interested clients by sending an appropriate
AccessXNotify event (see STRUCTURES).
.I XkbGetBounceKeysDelay
requests the attributes of the BounceKeys control from the server, waits for a
reply, and backfills
.I delay_rtrn
with the BounceKeys delay attribute.
.I XkbGetBounceKeysDelay
returns True if successful; if a compatible version of the Xkb extension is not
available in the server
.I XkbGetSlowKeysDelay
returns False.
.SH "RETURN VALUES"
.TP 15
True
The
.I XkbGetBounceKeysDelay
function returns True when it successfully requests the attributes of the
BounceKeys control from the server, waits for a
reply, and backfills
.I delay_rtrn
with the BounceKeys delay attribute.
.TP 15
False
The
.I XkbGetBounceKeysDelay
function returns False if a compatible version of the Xkb extension is not
available in the server.
.SH STRUCTURES
.LP
The structure for the XkbAccessXNotify event type is as follows:
.nf
typedef struct {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbAccessXNotify */
int device; /* Xkb device ID, will not be XkbUseCoreKbd
*/
int detail; /* XkbAXN_* */
KeyCode keycode; /* key of event */
int slowKeysDelay; /* current SlowKeys delay */
int debounceDelay; /* current debounce delay */
} XkbAccessXNotifyEvent;
.fi
.SH "SEE ALSO"
.BR XkbGetSlowKeysDelay (__libmansuffix__)

130
man/xkb/XkbGetCompatMap.man Normal file
View file

@ -0,0 +1,130 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetCompatMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetCompatMap \- Fetch any combination of the current compatibility map
components from the server
.SH SYNOPSIS
.B Status XkbGetCompatMap
(
.I display,
.I which,
.I xkb
)
.br
Display * \fIdisplay\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
XkbDescRec * \fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to server
.TP
.I \- which
mask of compatibility map components to fetch
.TP
.I \- xkb
keyboard description where results placed
.SH DESCRIPTION
.LP
When another client modifies the compatibility map, you are notified if you have
selected for XkbCompatMapNotify events.
.I XkbGetCompatMap
is particularly useful when you receive an event of this type, as it allows you
to update your program's version of the compatibility map to match the modified
version now in the server. If your program is dealing with multiple servers and
needs to configure them all in a similar manner, the updated compatibility map
may be used to reconfigure other servers.
.I XkbGetCompatMap
fetches the components of the compatibility map specified in
.I which
from the server specified by
.I display
and places them in the
.I compat
structure of the keyboard description
.I xkb.
Valid values for
.I which
are an inclusive OR of the values shown in Table 1.
.TS
c s s
l l l
l l l.
Table 1 Compatibility Map Component Masks
_
Mask Value Affecting
_
XkbSymInterpMask (1<<0) Symbol interpretations
XkbGroupCompatMask (1<<1) Group maps
XkbAllCompatMask (0x3) All compatibility map components
.TE
If no compatibility map structure is allocated in
.I xkb
upon entry,
.I XkbGetCompatMap
allocates one. If one already exists, its contents are overwritten with the
returned results.
.I XkbGetCompatMap
fetches compatibility map information for the device specified by the
.I device_spec
field of
.I xkb.
Unless you have specifically modified this field, it is the default keyboard
device.
.I XkbGetCompatMap
returns Success if successful, BadAlloc if it is unable to obtain necessary
storage for either the return values or work space, BadMatch if the
.I dpy
field of the
.I xkb
argument is non-NULL and does not match the
.I display
argument, and BadLength under certain conditions caused by server or Xkb
implementation errors.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadLength
The length of a request is shorter or longer than that required to minimally contain the arguments
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid

176
man/xkb/XkbGetControls.man Normal file
View file

@ -0,0 +1,176 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetControls __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetControls \- Finds the current state of Xkb server controls
.SH SYNOPSIS
.B Status XkbGetControls
(
.I display,
.I which,
.I xkb
)
.br
Display *\fIdisplay\fP\^;
.br
unsigned long \fIwhich\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to X server
.TP
.I \- which
mask of controls requested
.TP
.I \- xkb
keyboard description for controls information
.SH DESCRIPTION
.LP
.I XkbGetControls
queries the server for the requested control information, waits for a reply, and
then copies the server's values for the requested information into the
.I ctrls
structure of the
.I xkb
argument. Only those components specified by the
.I which
parameter are copied. Valid values for
.I which
are any combination of the masks listed in Table 1 that have "ok" in the
.I which
column.
Table 1 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in Table 1 (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s
l l l l
l l l l
l l l l.
Table 1 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
If
.I xkb->ctrls
is NULL,
.I XkbGetControls
allocates and initializes it before obtaining the values specified by
.I which.
If
.I xkb->ctrls
is not NULL,
.I XkbGetControls
modifies only those portions of
.I xkb->ctrls
corresponding to the values specified by
.I which.
.I XkbGetControls
returns Success if successful; otherwise, it returns BadAlloc if it cannot
obtain sufficient storage, BadMatch if
.I xkb
is NULL or
.I which
is empty, or BadImplementation.
To free the
.I ctrls
member of a keyboard description, use
.I XkbFreeControls.
The
.I num_groups
field in the
.I ctrls
structure is always filled in by
.I XkbGetControls,
regardless of which bits are selected by
.I which.
.SH "RETURN VALUES"
.TP 15
Success
The
.I XkbGetControls
function returns Success if successful.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadImplementation
Invalid reply from server
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbFreeControls (__libmansuffix__)

View file

@ -0,0 +1,244 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetControlsChanges __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetControlsChanges \- Updates a local copy of a keyboard description with the
changes previously noted by one or more calls to XkbNoteControlsChanges
.SH SYNOPSIS
XkbGetControlsChanges
(
.I dpy,
.I xkb,
.I changes
)
.br
Display * \fIdpy\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbNameChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- xkb
xkb->ctrls will be updated
.TP
.I \- changes
indicates which parts of xkb->ctrls to update
.SH DESCRIPTION
.LP
Whenever a field in the controls structure changes in the server's keyboard
description, the server sends an XkbControlsNotify event to all interested
clients.To receive XkbControlsNotify events under all possible conditions, use
.I XkbSelectEvents
and pass XkbControlsNotifyMask in both
.I bits_to_change
and
.I values_for_bits.
To receive XkbControlsNotify events only under certain conditions, use
.I XkbSelectEventDetails
using XkbControlsNotify as the
.I event_type
and specifying the desired state changes in
.I bits_to_change
and
.I values_for_bits
using mask bits from Table 1.
Table 1 shows the actual values for the individual mask bits used to select
controls for
modification and to enable and disable the control. Note that the same mask bit
is used to
specify general modifications to the parameters used to configure the control
(which), and to
enable and disable the control (enabled_ctrls). The anomalies in the table (no
"ok" in column)
are for controls that have no configurable attributes; and for controls that are
not boolean
controls and therefore cannot be enabled or disabled.
.TS
c s s s
l l l l
l l l l
l l l l.
Table 1 Controls Mask Bits
_
Mask Bit which or enabled Value
changed_ctrls _ctrls
_
XkbRepeatKeysMask ok ok (1L<<0)
XkbSlowKeysMask ok ok (1L<<1)
XkbBounceKeysMask ok ok (1L<<2)
XkbStickyKeysMask ok ok (1L<<3)
XkbMouseKeysMask ok ok (1L<<4)
XkbMouseKeysAccelMask ok ok (1L<<5)
XkbAccessXKeysMask ok ok (1L<<6)
XkbAccessXTimeoutMask ok ok (1L<<7)
XkbAccessXFeedbackMask ok ok (1L<<8)
XkbAudibleBellMask ok (1L<<9)
XkbOverlay1Mask ok (1L<<10)
XkbOverlay2Mask ok (1L<<11)
XkbIgnoreGroupLockMask ok (1L<<12)
XkbGroupsWrapMask ok (1L<<27)
XkbInternalModsMask ok (1L<<28)
XkbIgnoreLockModsMask ok (1L<<29)
XkbPerKeyRepeatMask ok (1L<<30)
XkbControlsEnabledMask ok (1L<<31)
XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
XkbAccessXFeedbackMask)
XkbAllBooleanCtrlsMask ok (0x00001FFF)
XkbAllControlsMask ok (0xF8001FFF)
.TE
The
.I changed_ctrls
field specifies the controls components that have changed and consists of bits
taken from the masks defined in Table 10.7 with "ok" in the
.I changed_ctrls
column.
The controls currently enabled in the server are reported in the
.I enabled_ctrls
field. If any controls were just enabled or disabled (that is, the contents of
the
.I enabled_ctrls
field changed), they are flagged in the
.I enabled_ctrl_changes
field. The valid bits for these fields are the masks listed in Table 10.7 with
"ok" in the
.I enabled_ctrls
column. The
.I num_groups
field reports the number of groups bound to the key belonging to the most number
of groups and is automatically updated when the keyboard mapping changes.
If the change was caused by a request from a client, the
.I keycode
and
.I event_type
fields are set to zero and the
.I req_major
and
.I req_minor
fields identify the request. The
.I req_major value is the same as the major extension opcode. Otherwise,
.I event_type
is set to the type of event that caused the change (one of KeyPress, KeyRelease,
DeviceKeyPress, DeviceKeyRelease, ButtonPress or ButtonRelease), and
.I req_major
and
.I req_minor
are undefined. If
.I event_type
is KeyPress, KeyRelease, DeviceKeyPress, or DeviceKeyRelease, the
.I keycode
field is set to the key that caused the change. If
.I event_type
is ButtonPress or ButtonRelease,
.I keycode
contains the button number.
When a client receives an XkbControlsNotify event, it can note the changes in a
changes structure using
.I XkbNoteControlsChanges.
.I XkbGetControlsChanges
examines the
.I changes
parameter, queries the server for the necessary information, and copies the
results into the
.I xkb->ctrls
keyboard description. If the
.I ctrls
field of
.I xkb
is NULL,
.I XkbGetControlsChanges
allocates and initializes it. To free the
.I ctrls
field, use
XkbFreeControls.
.I XkbGetControlsChanges
returns Success if successful and can generate BadAlloc, BadImplementation, and
BadMatch errors.
.SH "RETURN VALUES"
.TP 15
Success
The
.I XkbGetControlsChanges
function returns Success if the query of the server was successful.
.SH STRUCTURES
.LP
.nf
The structure for the XkbControlsNotify event is defined as follows:
typedef struct {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* XkbCompatMapNotify */
int device; /* Xkb device ID, will not be XkbUseCoreKbd */
unsigned int changed_ctrls; /* bits indicating which controls data have
changed*/
unsigned int enabled_ctrls; /* controls currently enabled in server */
unsigned int enabled_ctrl_changes; /* bits indicating enabled/disabled
controls */
int num_groups; /* current number of keyboard groups */
KeyCode keycode; /* != 0 => keycode of key causing change */
char event_type; /* Type of event causing change */
char req_major; /* major event code of event causing change */
char req_minor; /* minor event code of event causing change */
} XkbControlsNotifyEvent;
.fi
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadImplementation
Invalid reply from server
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbFreeControls (__libmansuffix__),
.BR XkbNoteControlsChanges (__libmansuffix__),
.BR XkbSelectEventDetails (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__)

View file

@ -0,0 +1,104 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetDetectableAutorepeat __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetDetectableAutorepeat \- Determines whether or not the server supports
DetectableAutorepeat
.SH SYNOPSIS
.B Bool XkbGetDetectableAutorepeat
(
.I display,
.I supported_rtrn
)
.br
Display * \fIdisplay\fP\^;
.br
Bool * \fIsupported_rtrn\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to X server
.TP
.I \- supported_rtrn
backfilled True if DetectableAutorepeat supported
.SH DESCRIPTION
.LP
Auto-repeat is the generation of multiple key events by a keyboard when the user
presses a key and holds it down. Keyboard hardware and device-dependent X server
software often implement auto-repeat by generating multiple KeyPress events with no
intervening KeyRelease event. The standard behavior of the X server is to generate
a KeyRelease event for every KeyPress event. If the keyboard hardware and
device-dependent software of the X server implement auto-repeat by generating
multiple KeyPress events, the device-independent part of the X server by default
synthetically generates a KeyRelease event after each KeyPress event. This provides
predictable behavior for X clients, but does not allow those clients to detect the
fact that a key is auto-repeating.
Xkb allows clients to request
.I detectable auto-repeat.
If a client requests and the server supports DetectableAutorepeat, Xkb generates
KeyRelease events only when the key is physically released. If DetectableAutorepeat
is not supported or has not been requested, the server synthesizes a KeyRelease
event for each repeating KeyPress event it generates.
DetectableAutorepeat, unlike other controls, is not contained in the XkbControlsRec
structure, nor can it be enabled or disabled via the EnabledControls control.
Instead, query and set DetectableAutorepeat using
.I XkbGetDetectableAutorepeat
and
.I XkbSetDetectableAutorepeat.
DetectableAutorepeat is a condition that applies to all keyboard devices for a
client's connection to a given X server; it cannot be selectively set for some
devices and not for others. For this reason, none of the Xkb library functions
involving DetectableAutorepeat involve a device specifier.
.I XkbGetDetectableAutorepeat
queries the server for the current state of DetectableAutorepeat and waits for a
reply. If
.I supported_rtrn
is not NULL, it backfills
.I supported_rtrn
with True if the server supports DetectableAutorepeat, and False otherwise.
.I XkbGetDetectableAutorepeat
returns the current state of DetectableAutorepeat for the requesting client:
True if DetectableAutorepeat is set, and False otherwise.
.SH "RETURN VALUES"
.TP 15
True
The
.I XkbGetDetectableAutorepeat
function returns True if the server supports DetectableAutorepeat.
.TP 15
False
The
.I XkbGetDetectableAutorepeat
function returns False if the server does not support DetectableAutorepeat.

View file

@ -0,0 +1,132 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetDeviceButtonActions __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetDeviceButtonActions \- Query the button actions associated with an X Input
Extension device
.SH SYNOPSIS
.B Status XkbGetDeviceButtonActions
(
.I dpy,
.I device_info,
.I all_buttons,
.I first_button,
.I num_buttons
)
.br
Display * \fIdpy\fP\^;
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
Bool \fIall_buttons\fP\^;
.br
unsigned int \fIfirst_button\fP\^;
.br
unsigned int \fInum_buttons\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- device_info
structure to update with results
.TP
.I \- all_buttons
True => get information for all buttons
.TP
.I \- first_button
number of first button for which info is desired
.TP
.I \- num_buttons
number of buttons for which info is desired
.SH DESCRIPTION
.LP
.I XkbGetDeviceButtonActions
queries the server for the desired button information for the device indicated
by the
.I device_spec
field of
.I device_info
and waits for a reply. If successful,
.I XkbGetDeviceButtonActions
backfills the button actions
.I (btn_acts
field of
.I device_info)
for only the requested buttons, updates the
.I name, type, supported,
and
.I unsupported
fields, and returns Success.
.I all_buttons, first_button
and
.I num_buttons
specify the device buttons for which actions should be returned. Setting
.I all_buttons
to True requests actions for all device buttons; if
.I all_buttons
is False,
.I first_button
and
.I num_buttons
specify a range of buttons for which actions are requested.
If a compatible version of Xkb is not available in the server or the Xkb
extension has not been properly initialized,
.I XkbGetDeviceButtonActions
returns BadAccess. If allocation errors occur, a BadAlloc status is returned. If
the specified device
.I (device_info->device_spec)
is invalid, a BadKeyboard status is returned. If the device has no buttons, a
BadMatch status is returned. If
.I first_button
and
.I num_buttons
specify illegal buttons, a BadValue status is returned.
.SH DIAGNOSTICS
.TP 15
.B BadAccess
The Xkb extension has not been properly initialized
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadKeyboard
The device specified was not a valid core or input extension device
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,265 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetDeviceInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetDeviceInfo \- Determine whether the X server allows Xkb access to particular capabilities of input devices other than
the core X keyboard, or to determine the status of indicator maps, indicator names or button actions on a non-KeyClass
extension device
.SH SYNOPSIS
.B XkbDeviceInfoPtr XkbGetDeviceInfo
(
.I dpy,
.I which,
.I device_spec,
.I ind_class,
.I ind_id
)
.br
Display * \fIdpy\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
unsigned int \fIdevice_spec\fP\^;
.br
unsigned int \fIind_class\fP\^;
.br
unsigned int \fIind_id\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- which
mask indicating information to return
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- ind_class
feedback class for indicator requests
.TP
.I \- ind_id
feedback ID for indicator requests
.SH DESCRIPTION
.LP
To determine whether the X server allows Xkb access to particular capabilities of input devices other than the core X
keyboard, or to determine the status of indicator maps, indicator names or button actions on a non-KeyClass extension
device, use
.I XkbGetDeviceInfo.
.I XkbGetDeviceInfo
returns information about the input device specified by
.I device_spec.
Unlike the
.I device_spec
parameter of most Xkb functions,
.I device_spec
does not need to be a keyboard device. It must, however, indicate either the core keyboard or a valid X Input Extension
device.
The
.I which
parameter is a mask specifying optional information to be returned. It is an inclusive OR of one or more of the values from
Table 1 and causes the returned XkbDeviceInfoRec to contain values for the corresponding fields specified in the table.
.nf
Table 1 XkbDeviceInfoRec Mask Bits
____________________________________________________________________________________
Name XkbDeviceInfoRec Value Capability If Set
Fields Effected
____________________________________________________________________________________
XkbXI_KeyboardsMask (1L <<0) Clients can use all
Xkb requests and events
with KeyClass devices
supported by the input
device extension.
XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key
btn_acts actions to buttons
non-KeyClass input
extension devices.
XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign
names to indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign
indicator maps to
indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request
the status of indicators
on non-KeyClass input
extension devices.
XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask |
num_leds XkbXI_IndicatorMapsMask |
leds->* XkbXI_IndicatorStateMask
XkbXI_UnsupportedFeaturesMask unsupported (1L <<15)
XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask |
by Value Column XkbSI_ButtonActionsMask
masks
XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask |
by Value Column XkbSI_KeyboardsMask
masks
XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask |
by Value column XkbXI_UnsupportedFeaturesMask
masks
.fi
The XkbDeviceInfoRec returned by
.I XkbGetDeviceInfo
always has values for
.I name
(may be a null string, ""),
.I type, supported, unsupported, has_own_state, dflt_kbd_fd,
and
.I dflt_kbd_fb.
Other fields are filled in as specified by
.I which.
Upon return, the
.I supported
field will be set to the inclusive OR of zero or more bits from Table 1; each bit set indicates an optional Xkb extension
device feature supported by the server implementation, and a client may modify the associated behavior.
If the XkbButtonActionsMask bit is set in
.I which,
the XkbDeviceInfoRec returned will have the button actions
.I (btn_acts
field) filled in for all buttons.
If
.I which
includes one of the bits in XkbXI_IndicatorsMask, the feedback class of the indicators must be specified in
.I ind_class,
and the feedback ID of the indicators must be specified in
.I ind_id.
If the request does not include any of the bits in XkbXI_IndicatorsMask, the
.I ind_class
and
.I ind_id
parameters are ignored. The class and ID can be obtained via the input device extension
.I XListInputDevices
request.
If any of the XkbXI_IndicatorsMask bits are set in
.I which,
the XkbDeviceInfoRec returned will have filled in the portions of the
.I leds
structure corresponding to the indicator feedback identified by
.I ind_class
and
.I ind_id.
The
.I leds
vector of the XkbDeviceInfoRec is allocated if necessary and
.I sz_leds
and
.I num_leds
filled in. The
.I led_class, led_id
and
.I phys_indicators
fields of the
.I leds
entry corresponding to
.I ind_class
and
.I ind_id
are always filled in. If
.I which
contains XkbXI_IndicatorNamesMask, the
.I names_present
and
.I names
fields of the
.I leds
structure corresponding to
.I ind_class
and
.I ind_id
are returned. If
.I which
contains XkbXI_IndicatorStateMask, the corresponding
.I state
field is updated. If
.I which
contains XkbXI_IndicatorMapsMask, the
.I maps_present
and
.I maps
fields are updated.
Xkb provides convenience functions to request subsets of the information available via
.I XkbGetDeviceInfo.
These convenience functions mirror some of the mask bits. The functions all take an XkbDeviceInfoPtr as an input argument
and operate on the X Input Extension device specified by the
.I device_spec
field of the structure. Only the parts of the structure indicated in the function description are updated. The
XkbDeviceInfoRec structure used in the function call can be obtained by calling
.I XkbGetDeviceInfo
or can be allocated by calling
.I XkbAllocDeviceInfo.
.SH STRUCTURES
.LP
Information about X Input Extension devices is transferred between a client program and the Xkb extension in an
XkbDeviceInfoRec structure:
.nf
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
.fi
.SH "SEE ALSO"
.BR XkbAllocDeviceInfo (__libmansuffix__),
.BR XListInputDevices (3X11)

View file

@ -0,0 +1,76 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetDeviceInfoChanges __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetDeviceInfoChanges \- Query the changes that have occurred in the button
actions or indicator names and indicator maps associated with an input extension
device
.SH SYNOPSIS
.B Status XkbGetDeviceInfoChanges
(
.I dpy,
.I device_info,
.I changes
)
.br
Display * \fIdpy\fP\^;
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
XkbDeviceChangesPtr \fIchanges\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- device_info
structure to update with results
.TP
.I \- changes
contains notes of changes that have occurred
.SH DESCRIPTION
.LP
The
.I changes->changed
field indicates which attributes of the device specified in
.I changes->device
have changed. The parameters describing the changes are contained in the other
fields of
.I changes. XkbGetDeviceInfoChanges
uses that information to call
.I XkbGetDeviceInfo
to obtain the current status of those attributes that have changed. It then
updates the local description of the device in
.I device_info
with the new information.
.SH "SEE ALSO"
.BR XkbGetDeviceInfo (__libmansuffix__)

View file

@ -0,0 +1,171 @@
'\" t
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetDeviceLedInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetDeviceLedInfo \- Query the indicator names, maps, and state associated
with an LED feedback of an input extension device
.SH SYNOPSIS
.B Status XkbGetDeviceLedInfo
(
.I dpy,
.I device_info,
.I led_class,
.I led_id,
.I which
)
.br
Display * \fIdpy\fP\^;
.br
XkbDeviceInfoPtr \fIdevice_info\fP\^;
.br
unsigned int \fIled_class\fP\^;
.br
unsigned int \fIled_id\fP\^;
.br
unsigned int \fIwhich\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- device_info
structure to update with results
.TP
.I \- led_class
LED feedback class assigned by input extension
.TP
.I \- led_id
LED feedback ID assigned by input extension
.TP
.I \- which
mask indicating desired information
.SH DESCRIPTION
.LP
.I XkbGetDeviceLedInfo
queries the server for the desired LED information for the feedback specified by
.I led_class
and
.I led_id
for the X input extension device indicated by
.I device_spec->device_info
and waits for a reply. If successful,
.I XkbGetDeviceLedInfo
backfills the relevant fields of
.I device_info
as determined by
.I which
with the results and returns Success. Valid values for
.I which
are the inclusive OR of any of XkbXI_IndicatorNamesMask,
XkbXI_IndicatorMapsMask, and XkbXI_IndicatorStateMask.
The fields of
.I device_info
that are filled in when this request succeeds are
.I name, type, supported,
and
.I unsupported,
and portions of the
.I leds
structure corresponding to
.I led_class
and
.I led_id
as indicated by the bits set in
.I which.
The
.I device_info->leds
vector is allocated if necessary and
.I sz_leds
and
.I num_leds
filled in. The
.I led_class, led_id
and
.I phys_indicators
fields of the
.I device_info->leds
entry corresponding to
.I led_class
and
.I led_id
are always filled in.
If
.I which
contains XkbXI_IndicatorNamesMask, the
.I names_present
and
.I names
fields of the
.I device_info->leds
structure corresponding to
.I led_class
and
.I led_id
are updated, if
.I which
contains XkbXI_IndicatorStateMask, the corresponding
.I state
field is updated, and if
.I which
contains XkbXI_IndicatorMapsMask, the
.I maps_present
and
.I maps
fields are updated.
If a compatible version of Xkb is not available in the server or the Xkb
extension has not been properly initialized,
.I XkbGetDeviceLedInfo
returns BadAccess. If allocation errors occur, a BadAlloc status is returned. If
the device has no indicators, a BadMatch error is returned. If
.I ledClass
or
.I ledID
have illegal values, a BadValue error is returned. If they have legal values but
do not specify a feedback that contains LEDs and is associated with the
specified device, a BadMatch error is returned.
.SH DIAGNOSTICS
.TP 15
.B BadAccess
The Xkb extension has not been properly initialized
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadValue
An argument is out of range

View file

@ -0,0 +1,84 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetGeometry __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetGeometry \- Loads a keyboard geometry if you already have the keyboard
description
.SH SYNOPSIS
.B Status XkbGetGeometry
(
.I dpy,
.I xkb
)
.br
Display * \fIdpy\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to the X server
.TP
.I \- xkb
keyboard description that contains the ID for the keyboard and into which the
geometry should be loaded
.SH DESCRIPTION
.LP
You can load a keyboard geometry as part of the keyboard description returned by
.I XkbGetKeyboard.
However, if a keyboard description has been previously loaded, you can instead
obtain the geometry by calling the
.I XkbGetGeometry.
In this case, the geometry returned is the one associated with the keyboard
whose device ID is contained in the keyboard description.
.I XkbGetGeometry
can return BadValue, BadImplementation, BadName, BadAlloc, or BadLength errors
or Success if it succeeds.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadImplementation
Invalid reply from server
.TP 15
.B BadLength
The length of a request is shorter or longer than that required to minimally
contain the arguments
.TP 15
.B BadName
A font or color of the specified name does not exist
.TP 15
.B BadValue
An argument is out of range
.SH "SEE ALSO"
.BR XkbGetKeyboard (__libmansuffix__)

View file

@ -0,0 +1,169 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetIndicatorChanges __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetIndicatorChanges \- Updates a local copy of the keyboard description with
the actual values of one or more calls to XkbNoteIndicatorChanges
.SH SYNOPSIS
.B Status XkbGetIndicatorChanges
(
.I dpy,
.I xkb,
.I changes,
.I state
)
.br
Display *\fIdpy\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.br
XkbIndicatorChangesPtr \fIchanges\fP\^;
.br
unsigned int \fIstate\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to the X server
.TP
.I \- xkb
keyboard description to hold the new values
.TP
.I \- changes
indicator maps/state to be obtained from the server
.TP
.I \- state
backfilled with the state of the indicators
.SH DESCRIPTION
.LP
Whenever an indicator changes state, the server sends XkbIndicatorStateNotify events to all
interested clients. Similarly, whenever an indicator's map changes, the server sends
XkbIndicatorMapNotify events to all interested clients.
To receive XkbIndicatorStateNotify events, use
.I XkbSelectEvents
with both the
.I bits_to_change
and
.I values_for_bits
parameters containing XkbIndicatorStateNotifyMask. To receive XkbIndicatorMapNotify events,
use
.I XkbSelectEvents
with XkbIndicatorMapNotifyMask.
To receive events for only specific indicators, use
.I XkbSelectEventDetails.
Set the
.I event_type
parameter to XkbIndicatorStateNotify or XkbIndicatorMapNotify, and set both the
.I bits_to_change
and
.I values_for_bits
detail parameters to a mask where each bit specifies one indicator, turning on those bits that
specify the indicators for which you want to receive events.
Both types of indicator events use the same structure:
.nf
typedef struct _XkbIndicatorNotify {
int type; /* Xkb extension base event code */
unsigned long serial; /* X server serial number for event */
Bool send_event; /* True => synthetically generated */
Display * display; /* server connection where event generated */
Time time; /* server time when event generated */
int xkb_type; /* specifies state or map notify */
int device; /* Xkb device ID, will not be XkbUseCoreKbd */
unsigned int changed; /* mask of indicators with new state or map */
unsigned int state; /* current state of all indicators */
} XkbIndicatorNotifyEvent;
.fi
.I xkb_type
is either XkbIndicatorStateNotify or XkbIndicatorMapNotify, depending on whether the event is
a kbIndicatorStateNotify event or kbIndicatorMapNotify event.
The
.I changed
parameter is a mask that is the bitwise inclusive OR of the indicators that have changed. If
the event is of type XkbIndicatorMapNotify,
.I changed
reports the maps that changed. If the event is of type XkbIndicatorStateNotify,
.I changed
reports the indicators that have changed state.
.I state
is a mask that specifies the current state of all indicators, whether they have changed or
not, for both XkbIndicatorStateNotify and IndicatorMapNotify events.
When your client application receives either a XkbIndicatorStateNotify event or
XkbIndicatorMapNotify event, you can note the changes in a changes structure by calling
.I XkbNoteIndicatorChanges.
.I XkbGetIndicatorChanges
examines the
.I changes
parameter, pulls over the necessary information from the server, and copies the
results into the
.I xkb
keyboard description. If any bits are set in the
.I state_changes
field of
.I changes, XkbGetIndicatorChanges
also places the state of those indicators in
.I state.
If the
.I indicators
field of
.I xkb
is NULL,
.I XkbGetIndicatorChanges
allocates and initializes it. To free the
.I indicators
field, use
.I XkbFreeIndicators.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadImplementation
Invalid reply from server
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbFreeIndicators (__libmansuffix__),
.BR XkbGetIndicatorChanges (__libmansuffix__),
.BR XkbNoteIndicatorChanges (__libmansuffix__),
.BR XkbSelectEvents (__libmansuffix__),
.BR XkbSelectEventDetail (__libmansuffix__)

View file

@ -0,0 +1,101 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetIndicatorMap __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetIndicatorMap \- Gets the map for one or more indicators, using a mask to
specify the indicators
.SH SYNOPSIS
.B Status XkbGetIndicatorMap
(
.I dpy,
.I which,
.I desc
)
.br
Display *\fIdpy\fP\^;
.br
unsigned int \fIwhich\fP\^;
.br
XkbDescPtr \fIdesc\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to the X server
.TP
.I \- which
mask of indicators for which maps should be returned
.TP
.I \- desc
keyboard description to be updated
.SH DESCRIPTION
.LP
Xkb allows applications to obtain information about indicators using two
different methods. The first method, which is similar to the core X
implementation, uses a mask to specify the indicators. The second method, which
is more suitable for applications concerned with interoperability, uses
indicator names. The correspondence between the indicator name and the bit
position in masks is as follows: one of the parameters returned from
.I XkbGetNamedIndicators
is an index that is the bit position to use in any function call that requires a
mask of indicator bits, as well as the indicator's index into the
XkbIndicatorRec array of indicator maps.
.I XkbGetIndicatorMap
obtains the maps from the server for only those indicators specified by the
.I which
mask and copies the values into the keyboard description specified by
.I desc.
If the
.I indicators
field of the
.I desc
parameter is NULL,
.I XkbGetIndicatorMap
allocates and initializes it.
To free the indicator maps, use
.I XkbFreeIndicatorMaps.
.SH DIAGNOSTICS
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.TP 15
.B BadImplementation
Invalid reply from server
.SH "SEE ALSO"
.BR XkbFreeIndicatorMaps (__libmansuffix__),
.BR XkbGetNamedIndicators (__libmansuffix__)

View file

@ -0,0 +1,93 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetIndicatorState __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetIndicatorState \- Obtains the current state of the keyboard indicators
.SH SYNOPSIS
.B Status XkbGetIndicatorState
(
.I display,
.I device_spec,
.I state_return
)
.br
Display *\fIdisplay\fP\^;
.br
unsigned int \fIdevice_spec\fP\^;
.br
unsigned int \fIstate_return\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- display
connection to the X server
.TP
.I \- device_spec
device ID, or XkbUseCoreKbd
.TP
.I \- state_return
backfilled with a mask of the indicator state
.SH DESCRIPTION
.LP
Xkb allows applications to obtain information about indicators using two
different methods. The first method, which is similar to the core X
implementation, uses a mask to specify the indicators. The second method, which
is more suitable for applications concerned with interoperability, uses
indicator names. The correspondence between the indicator name and the bit
position in masks is as follows: one of the parameters returned from
.I XkbGetNamedIndicators
is an index that is the bit position to use in any function call that requires a
mask of indicator bits, as well as the indicator's index into the
XkbIndicatorRec array of indicator maps.
.I XkbGetIndicatorState
queries the
.I display
for the state of the indicators on the device specified by the
.I device_spec.
For each indicator that is "turned on" on the device, the associated bit is set
in
.I state_return.
If a compatible version of the Xkb extension is not available in the server, .I
XkbGetIndicatorState
returns a BadMatch error. Otherwise, it sends the request to the X server,
places the state of the indicators into
.I state_return,
and returns Success. Thus the value reported by
.I XkbGetIndicatorState
is identical to the value reported by the core protocol.
.SH DIAGNOSTICS
.TP 15
.B BadMatch
A compatible version of Xkb was not available in the server or an argument has
correct type and range, but is otherwise invalid
.SH "SEE ALSO"
.BR XkbGetNamedIndicators (__libmansuffix__)

View file

@ -0,0 +1,108 @@
.\" Copyright (c) 1999 - Sun Microsystems, Inc.
.\" All rights reserved.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the
.\" "Software"), to deal in the Software without restriction, including
.\" without limitation the rights to use, copy, modify, merge, publish,
.\" distribute, and/or sell copies of the Software, and to permit persons
.\" to whom the Software is furnished to do so, provided that the above
.\" copyright notice(s) and this permission notice appear in all copies of
.\" the Software and that both the above copyright notice(s) and this
.\" permission notice appear in supporting documentation.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" Except as contained in this notice, the name of a copyright holder
.\" shall not be used in advertising or otherwise to promote the sale, use
.\" or other dealings in this Software without prior written authorization
.\" of the copyright holder.
.\"
.TH XkbGetKeyActions __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
.SH NAME
XkbGetKeyActions \- Update the actions (the key_acts array) for a subset of the
keys in a keyboard description
.SH SYNOPSIS
.B Status XkbGetKeyActions
(
.I dpy,
.I first,
.I num,
.I xkb
)
.br
Display * \fIdpy\fP\^;
.br
unsigned int \fIfirst\fP\^;
.br
unsigned int \fInum\fP\^;
.br
XkbDescPtr \fIxkb\fP\^;
.if n .ti +5n
.if t .ti +.5i
.SH ARGUMENTS
.TP
.I \- dpy
connection to X server
.TP
.I \- first
keycode of first key of interest
.TP
.I \- num
number of keys desired
.TP
.I \- xkb
pointer to keyboard description where result is stored
.SH DESCRIPTION
.LP
.I XkbGetKeyActions
sends a request to the server to obtain the actions for
.I num
keys on the keyboard starting with key
.I first.
It waits for a reply and returns the actions in the
.I server->key_acts
field of
.I xkb.
If successful,
.I XkbGetKeyActions
returns Success. The
.I xkb
parameter must be a pointer to a valid Xkb keyboard description.
If the
.I server
map, in the
.I xkb
parameter, has not been allocated,
.I XkbGetKeyActions
allocates and initializes it before obtaining the actions.
If the server does not have a compatible version of Xkb, or the Xkb extension
has not been properly initialized,
.I XkbGetKeyActions
returns BadAccess. If
.I num
is less than 1 or greater than XkbMaxKeyCount,
.I XkbGetKeyActions
returns BadValue. If any allocation errors occur,
.I XkbGetKeyActions
returns BadAlloc.
.SH DIAGNOSTICS
.TP 15
.B BadAccess
The Xkb extension has not been properly initialized
.TP 15
.B BadAlloc
Unable to allocate storage
.TP 15
.B BadValue
An argument is out of range

Some files were not shown because too many files have changed in this diff Show more