Manpage of 'XkbListComponents' on UHLU - BSD System Documentation,
Programming Reference, Manual Pages and Source Code
All manual pages         All RFC pages
Common page
for XkbListComponents
Other pages
for XkbListComponents
More pages
containing XkbListComponents

Section 3 manual page or howto for 'XkbListComponents'  

XkbListComponents(3)		 XKB FUNCTIONS		  XkbListComponents(3)



NAME
       XkbListComponents - List of components for one or more component types

SYNOPSIS
       XkbComponentListPtr   XkbListComponents	 (  dpy,  device_spec,	ptrns,
       max_inout )

	     Display * dpy;
	     unsigned int device_spec;
	     XkbComponentNamesPtr ptrnst;
	     int * max_inout;

ARGUMENTS
       - dpy  connection to X server

       - device_spec
	      device ID, or XkbUseCoreKbd

       - ptrns
	      namelist for components of interest

       - max_inout
	      max # returned names, # left over

DESCRIPTION
       You may ask the server for a list of components for one or more	compo-
       nent  types.  The request takes the form of a set of patterns, one pat-
       tern for each of the component types, including a pattern for the  com-
       plete keyboard description. To obtain this list, use XkbListComponents.

       XkbListComponents queries the server for  a  list  of  component  names
       matching  the  patterns	specified  in ptrns.  It waits for a reply and
       returns the matching component names in an  XkbComponentListRec	struc-
       ture.   When you are done using the structure, you should free it using
       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.

       ptrns  is  a  pointer to an XkbComponentNamesRec. Each of the fields in
       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  charac-
       ters were omitted from the pattern.

       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 XkbListComponents, max_inout contains the number  of  names
       that matched the request but were not returned because of the limit.

       Component Names

       Component  names  have  the  form class(member) where class describes a
       subset of the available	components  for  a  particular	type  and  the
       optional  member  identifies a specific component from that subset. For
       example, the name "atlantis(acme)" for a symbols component might  spec-
       ify  the  symbols used for the atlantis national keyboard layout by the
       vendor "acme." Each class has an optional 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  interpreta-
       tion of the class and member names used in component names.

       The class and 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.

STRUCTURES
       The component name patterns used to describe the request are passed  to
       XkbListComponents  using an XkbComponentNamesRec structure. This struc-
       ture has no special allocation constraints or  interrelationships  with
       other  structures; allocate and free this structure using standard mal-
       loc and free calls or their equivalent:

	   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;

       XkbListComponents returns a pointer to an XkbComponentListRec:

	   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;


SEE ALSO
       XkbFreeComponentList(3)

NOTES
       Note that the structure used to specify patterns on input is an XkbCom-
       ponentNamesRec,	and  that  used to hold the individual component names
       upon return is an XkbComponentNameRec (no trailing `s' in Name).



X Version 11			 libX11 1.2.1		  XkbListComponents(3)

NAME - SYNOPSIS - ARGUMENTS - DESCRIPTION - STRUCTURES - SEE ALSO - 
NOTES -  
All manual pages         All RFC pages
Common page
for XkbListComponents
Other pages
for XkbListComponents
More pages
containing XkbListComponents
A random manual page         All manual pages        All RFC pages