aboutsummaryrefslogtreecommitdiff
path: root/libX11/man/xkb/XkbListComponents.man
diff options
context:
space:
mode:
Diffstat (limited to 'libX11/man/xkb/XkbListComponents.man')
-rw-r--r--libX11/man/xkb/XkbListComponents.man181
1 files changed, 181 insertions, 0 deletions
diff --git a/libX11/man/xkb/XkbListComponents.man b/libX11/man/xkb/XkbListComponents.man
new file mode 100644
index 000000000..6e6855def
--- /dev/null
+++ b/libX11/man/xkb/XkbListComponents.man
@@ -0,0 +1,181 @@
+'\" 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 XkbListComponents __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
+.SH NAME
+XkbListComponents \- List of components for one or more component types
+.SH SYNOPSIS
+.B XkbComponentListPtr XkbListComponents
+(
+.I dpy,
+.I device_spec,
+.I ptrns,
+.I max_inout
+)
+.br
+ Display * \fIdpy\fP\^;
+.br
+ unsigned int \fIdevice_spec\fP\^;
+.br
+ XkbComponentNamesPtr \fIptrnst\fP\^;
+.br
+ int * \fImax_inout\fP\^;
+.if n .ti +5n
+.if t .ti +.5i
+.SH ARGUMENTS
+.TP
+.I \- dpy
+connection to X server
+.TP
+.I \- device_spec
+device ID, or XkbUseCoreKbd
+.TP
+.I \- ptrns
+namelist for components of interest
+.TP
+.I \- max_inout
+max # returned names, # left over
+.SH DESCRIPTION
+.LP
+You may ask the server for a list of components for one or more component types. The request takes the
+form of a set of patterns, one pattern for each of the component types, including a pattern for the
+complete keyboard description. To obtain this list, use
+.I XkbListComponents.
+
+.I XkbListComponents
+queries the server for a list of component names matching the patterns specified in
+.I ptrns.
+It waits for a reply and returns the matching component names in an XkbComponentListRec structure.
+When you are done using the structure, you should free it using
+.I XkbFreeComponentList. device_spec
+indicates a particular device in which the caller is interested. A server is allowed (but not
+required) to restrict its reply to portions of the database that are relevant for that particular
+device.
+
+.I ptrns
+is a pointer to an XkbComponentNamesRec. Each of the fields in
+.I ptrns
+contains a pattern naming the components of interest. Each of the patterns is composed of characters
+from the ISO Latin1 encoding, but can contain only parentheses, the wildcard characters `?' and `*',
+and characters permitted in a component class or member name. A pattern may be NULL, in which case no
+components for that type is returned. Pattern matches with component names are case sensitive. The `?'
+wildcard matches any single character, except a left or right parenthesis; the `*' wildcard matches
+any number of characters, except a left or right parenthesis. If an implementation allows additional
+characters in a component class or member name other than those required by the Xkb extension, the
+result of comparing one of the additional characters to either of the wildcard characters is
+implementation-dependent.
+
+If a pattern contains illegal characters, the illegal characters are ignored. The matching process is
+carried out as if the illegal characters were omitted from the pattern.
+
+.I max_inout
+is used to throttle the amount of data passed to and from the server. On input, it specifies the
+maximum number of names to be returned (the total number of names in all component categories). Upon
+return from
+.I XkbListComponents,
+max_inout contains the number of names that matched the request but were not returned because of the
+limit.
+
+.B Component Names
+
+Component names have the form
+.I "class(member)"
+where
+.I class
+describes a subset of the available components for a particular type and the optional
+.I member
+identifies a specific component from that subset. For example, the name "atlantis(acme)" for a symbols
+component might specify the symbols used for the atlantis national keyboard layout by the vendor
+"acme." Each class has an optional
+.I default
+member - references that specify a class but not a member refer to the default member of the class, if
+one exists. Xkb places no constraints on the interpretation of the class and member names used in
+component names.
+
+The
+.I class
+and
+.I member
+names are both specified using characters from the Latin-1 character set. Xkb implementations must
+accept all alphanumeric characters, minus (`-') and underscore (`_') in class or member names, and
+must not accept parentheses, plus, vertical bar, percent sign, asterisk, question mark, or white
+space. The use of other characters is implementation-dependent.
+.SH STRUCTURES
+.LP
+The component name patterns used to describe the request are passed to
+.I XkbListComponents
+using an XkbComponentNamesRec structure. This structure has no special allocation constraints or
+interrelationships with other structures; allocate and free this structure using standard
+.I malloc
+and
+.I free
+calls or their equivalent:
+.nf
+
+ typedef struct _XkbComponentNames {
+ char * keymap; /\(** keymap names */
+ char * keycodes; /\(** keycode names */
+ char * types; /\(** type names */
+ char * compat; /\(** compatibility map names */
+ char * symbols; /\(** symbol names */
+ char * geometry; /\(** geometry names */
+ } XkbComponentNamesRec, *XkbComponentNamesPtr;
+
+.fi
+.I XkbListComponents
+returns a pointer to an XkbComponentListRec:
+.nf
+
+ typedef struct _XkbComponentList {
+ int num_keymaps; /\(** number of entries in keymap */
+ int num_keycodes; /\(** number of entries in keycodes */
+ int num_types; /\(** number of entries in types */
+ int num_compat; /\(** number of entries in compat */
+ int num_symbols; /\(** number of entries in symbols */
+ int num_geometry; /\(** number of entries in geometry;
+ XkbComponentNamePtr keymap; /\(** keymap names */
+ XkbComponentNamePtr keycodes; /\(** keycode names */
+ XkbComponentNamePtr types; /\(** type names */
+ XkbComponentNamePtr compat; /\(** compatibility map names */
+ XkbComponentNamePtr symbols; /\(** symbol names */
+ XkbComponentNamePtr geometry; /\(** geometry names */
+ } XkbComponentListRec, *XkbComponentListPtr;
+
+ typedef struct _XkbComponentName {
+ unsigned short flags; /\(** hints regarding component name */
+ char * name; /\(** name of component */
+ } XkbComponentNameRec, *XkbComponentNamePtr;
+
+.fi
+.SH "SEE ALSO"
+.BR XkbFreeComponentList (__libmansuffix__)
+.SH NOTES
+.LP
+Note that the structure used to specify patterns on input is an XkbComponentNamesRec, and that used to
+hold the individual component names upon return is an XkbComponentNameRec (no trailing `s' in Name).