From a0fa440dee24b4b39d30c1b04579691d42efba65 Mon Sep 17 00:00:00 2001 From: marha Date: Sat, 4 Sep 2010 16:22:11 +0000 Subject: libx11 git update 4/9/2010 --- libX11/man/xkb/XkbKeyTypesForCoreSymbols.man | 456 +++++++++++++-------------- 1 file changed, 228 insertions(+), 228 deletions(-) (limited to 'libX11/man/xkb/XkbKeyTypesForCoreSymbols.man') diff --git a/libX11/man/xkb/XkbKeyTypesForCoreSymbols.man b/libX11/man/xkb/XkbKeyTypesForCoreSymbols.man index 5ce2526b5..502d8bed3 100644 --- a/libX11/man/xkb/XkbKeyTypesForCoreSymbols.man +++ b/libX11/man/xkb/XkbKeyTypesForCoreSymbols.man @@ -1,228 +1,228 @@ -'\" t -.\" Copyright 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, sublicense, -.\" and/or sell copies of the Software, and to permit persons to whom the -.\" Software is furnished to do so, subject to the following conditions: -.\" -.\" The above copyright notice and this permission notice (including the next -.\" paragraph) shall be included in all copies or substantial portions of the -.\" Software. -.\" -.\" 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. IN NO EVENT SHALL -.\" THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -.\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -.\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -.\" DEALINGS IN THE SOFTWARE. -.\" -.TH XkbKeyTypesForCoreSymbols __libmansuffix__ __xorgversion__ "XKB FUNCTIONS" -.SH NAME -XkbKeyTypesForCoreSymbols \- Determine the Xkb key types appropriate for the -symbols bound to a key in a core keyboard mapping -.SH SYNOPSIS -.HP -.B int XkbKeyTypesForCoreSymbols -.BI "(\^XkbDescPtr " "xkb" "\^," -.BI "int " "map_width" "\^," -.BI "KeySym *" "core_syms" "\^," -.BI "unsigned int " "protected" "\^," -.BI "int *" "types_inout" "\^," -.BI "KeySym *" "xkb_syms_rtrn" "\^);" -.if n .ti +5n -.if t .ti +.5i -.SH ARGUMENTS -.TP -.I \- xkb -keyboard description in which to place symbols -.TP -.I \- map_width -width of core protocol keymap in xkb_syms_rtrn -.TP -.I \- core_syms -core protocol format array of KeySyms -.TP -.I \- protected -explicit key types -.TP -.I \- types_inout -backfilled with the canonical types bound to groups one and two for the key -.TP -.I \- xkb_syms_rtrn -backfilled with symbols bound to the key in the Xkb mapping -.SH DESCRIPTION -.LP -.I XkbKeyTypesForCoreSymbols -expands the symbols in -.I core_syms -and types in -.I types_inout, -then chooses canonical key types (canonical key types are -defined The Canonical Key Types) for groups 1 and 2 using the rules specified by -the Xkb protocol and places them in xkb_syms_rtrn, which will be non-NULL. - -.B The Canonical Key Types - -Xkb allows up to XkbMaxKeyTypes (255) key types to be defined, but requires at -least XkbNumRequiredTypes (4) predefined types to be in a key map. These -predefined key types are referred to as the canonical key types and describe the -types of keys available on most keyboards. The definitions for the canonical key -types are held in the first XkbNumRequiredTypes entries of the -.I types -field of the client map and are indexed using the following constants: -.nf - - XkbOneLevelIndex - XkbTwoLevelIndex - XkbAlphabeticIndex - XkbKeypadIndex - -.fi - -ONE_LEVEL - -The ONE_LEVEL key type describes groups that have only one symbol. The default -ONE_LEVEL key type has no map entries and does not pay attention to any -modifiers. A symbolic representation of this key type could look like the -following: -.nf - - type "ONE_LEVEL" { - modifiers = None; - map[None]= Level1; - level_name[Level1]= "Any"; - }; - -.fi -The description of the ONE_LEVEL key type is stored in the -types[XkbOneLevelIndex] entry of the client key map. - -TWO_LEVEL - -The TWO_LEVEL key type describes groups that consist of two symbols but are -neither alphabetic nor numeric keypad keys. The default TWO_LEVEL type uses only -the Shift modifier. It returns shift level two if Shift is set, and level one if -it is not. A symbolic representation of this key type could look like the -following: -.nf - - type "TWO_LEVEL" { - modifiers = Shift; - map[Shift]= Level2; - level_name[Level1]= "Base"; - level_name[Level2]= "Shift"; - }; - -.fi - -The description of the TWO_LEVEL key type is stored in the -types[XkbTwoLevelIndex] entry of the client key map. - -ALPHABETIC - -The ALPHABETIC key type describes groups consisting of two symbols: the -lowercase form of a symbol followed by the uppercase form of the same symbol. -The default ALPHABETIC type implements locale-sensitive "Shift cancels CapsLock" -behavior using both the Shift and Lock modifiers as follows: - -.IP \(bu 5 -If Shift and Lock are both set, the default ALPHABETIC type yields level one. -.IP \(bu 5 -If Shift alone is set, it yields level two. -.IP \(bu 5 -If Lock alone is set, it yields level one, but preserves the Lock modifier so -Xlib notices and applies the appropriate capitalization rules. The Xlib -functions are locale-sensitive and apply different capitalization rules for -different locales. -.IP \(bu 5 -If neither Shift nor Lock is set, it yields level one. - -A symbolic representation of this key type could look like the following: -.nf - - type "ALPHABETIC" { - modifiers = Shift+Lock; - map[Shift]= Level2; - preserve[Lock]= Lock; - level_name[Level1]= "Base"; - level_name[Level2]= "Caps"; - }; - -.fi -The description of the ALPHABETIC key type is stored in the -types[XkbAlphabeticIndex] entry of the client key map. - -KEYPAD - -The KEYPAD key type describes groups that consist of two symbols, at least one -of which is a numeric keypad symbol. The numeric keypad symbol is assumed to -reside at level two. The default KEYPAD key type implements "Shift cancels -NumLock" behavior using the Shift modifier and the real modifier bound to the -virtual modifier named "NumLock," known as the NumLock modifier, as follows: - -.IP \(bu 5 -If Shift and NumLock are both set, the default KEYPAD type yields level one. -.IP \(bu 5 -If Shift alone is set, it yields level two. -.IP \(bu 5 -If NumLock alone is set, it yields level two. -.IP \(bu 5 -If neither Shift nor NumLock is set, it yields level one. - -A symbolic representation of this key type could look like the following: -.nf - - type "KEYPAD" { - modifiers = Shift+NumLock; - map[None]= Level1; - map[Shift]= Level2; - map[NumLock]= Level2; - map[Shift+NumLock]= Level1; - level_name[Level1]= "Base"; - level_name[Level2]= "Caps"; - }; - -.fi -The description of the KEYPAD key type is stored in the types[XkbKeypadIndex] -entry of the client key map. - -A core keymap is a two-dimensional array of keysyms. It has -.I map_width -columns and -.I max_key_code -rows. -.I XkbKeyTypesForCoreSymbols -takes a single row from a core keymap, determines the number of groups -associated with it, the type of each group, and the symbols bound to each group. -The return value is the number of groups, -.I types_inout -has the types for each group, and -.I xkb_syms_rtrn -has the symbols in Xkb order (that is, groups are contiguous, regardless of -size). - -.I protected -contains the explicitly protected key types. There is one explicit override -control associated with each of the four possible groups for each Xkb key, -ExplicitKeyType1 through ExplicitKeyType4; -.I protected -is an inclusive OR of these controls. -.I map_width -is the width of the core keymap and is not dependent on any Xkb definitions. -.I types_inout -is an array of four type indices. On input, -.I types_inout -contains the indices of any types already assigned to the key, in case they are -explicitly protected from change. - -Upon return, -.I types_inout -contains any automatically selected (that is, canonical) types plus any -protected types. Canonical types are assigned to all four groups if there are -enough symbols to do so. The four entries in -.I types_inout -correspond to the four groups for the key in question. +'\" t +.\" Copyright 1999 Oracle and/or its affiliates. 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, sublicense, +.\" and/or sell copies of the Software, and to permit persons to whom the +.\" Software is furnished to do so, subject to the following conditions: +.\" +.\" The above copyright notice and this permission notice (including the next +.\" paragraph) shall be included in all copies or substantial portions of the +.\" Software. +.\" +.\" 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. IN NO EVENT SHALL +.\" THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +.\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +.\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +.\" DEALINGS IN THE SOFTWARE. +.\" +.TH XkbKeyTypesForCoreSymbols __libmansuffix__ __xorgversion__ "XKB FUNCTIONS" +.SH NAME +XkbKeyTypesForCoreSymbols \- Determine the Xkb key types appropriate for the +symbols bound to a key in a core keyboard mapping +.SH SYNOPSIS +.HP +.B int XkbKeyTypesForCoreSymbols +.BI "(\^XkbDescPtr " "xkb" "\^," +.BI "int " "map_width" "\^," +.BI "KeySym *" "core_syms" "\^," +.BI "unsigned int " "protected" "\^," +.BI "int *" "types_inout" "\^," +.BI "KeySym *" "xkb_syms_rtrn" "\^);" +.if n .ti +5n +.if t .ti +.5i +.SH ARGUMENTS +.TP +.I \- xkb +keyboard description in which to place symbols +.TP +.I \- map_width +width of core protocol keymap in xkb_syms_rtrn +.TP +.I \- core_syms +core protocol format array of KeySyms +.TP +.I \- protected +explicit key types +.TP +.I \- types_inout +backfilled with the canonical types bound to groups one and two for the key +.TP +.I \- xkb_syms_rtrn +backfilled with symbols bound to the key in the Xkb mapping +.SH DESCRIPTION +.LP +.I XkbKeyTypesForCoreSymbols +expands the symbols in +.I core_syms +and types in +.I types_inout, +then chooses canonical key types (canonical key types are +defined The Canonical Key Types) for groups 1 and 2 using the rules specified by +the Xkb protocol and places them in xkb_syms_rtrn, which will be non-NULL. + +.B The Canonical Key Types + +Xkb allows up to XkbMaxKeyTypes (255) key types to be defined, but requires at +least XkbNumRequiredTypes (4) predefined types to be in a key map. These +predefined key types are referred to as the canonical key types and describe the +types of keys available on most keyboards. The definitions for the canonical key +types are held in the first XkbNumRequiredTypes entries of the +.I types +field of the client map and are indexed using the following constants: +.nf + + XkbOneLevelIndex + XkbTwoLevelIndex + XkbAlphabeticIndex + XkbKeypadIndex + +.fi + +ONE_LEVEL + +The ONE_LEVEL key type describes groups that have only one symbol. The default +ONE_LEVEL key type has no map entries and does not pay attention to any +modifiers. A symbolic representation of this key type could look like the +following: +.nf + + type "ONE_LEVEL" { + modifiers = None; + map[None]= Level1; + level_name[Level1]= "Any"; + }; + +.fi +The description of the ONE_LEVEL key type is stored in the +types[XkbOneLevelIndex] entry of the client key map. + +TWO_LEVEL + +The TWO_LEVEL key type describes groups that consist of two symbols but are +neither alphabetic nor numeric keypad keys. The default TWO_LEVEL type uses only +the Shift modifier. It returns shift level two if Shift is set, and level one if +it is not. A symbolic representation of this key type could look like the +following: +.nf + + type "TWO_LEVEL" { + modifiers = Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + +.fi + +The description of the TWO_LEVEL key type is stored in the +types[XkbTwoLevelIndex] entry of the client key map. + +ALPHABETIC + +The ALPHABETIC key type describes groups consisting of two symbols: the +lowercase form of a symbol followed by the uppercase form of the same symbol. +The default ALPHABETIC type implements locale-sensitive "Shift cancels CapsLock" +behavior using both the Shift and Lock modifiers as follows: + +.IP \(bu 5 +If Shift and Lock are both set, the default ALPHABETIC type yields level one. +.IP \(bu 5 +If Shift alone is set, it yields level two. +.IP \(bu 5 +If Lock alone is set, it yields level one, but preserves the Lock modifier so +Xlib notices and applies the appropriate capitalization rules. The Xlib +functions are locale-sensitive and apply different capitalization rules for +different locales. +.IP \(bu 5 +If neither Shift nor Lock is set, it yields level one. + +A symbolic representation of this key type could look like the following: +.nf + + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift]= Level2; + preserve[Lock]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + +.fi +The description of the ALPHABETIC key type is stored in the +types[XkbAlphabeticIndex] entry of the client key map. + +KEYPAD + +The KEYPAD key type describes groups that consist of two symbols, at least one +of which is a numeric keypad symbol. The numeric keypad symbol is assumed to +reside at level two. The default KEYPAD key type implements "Shift cancels +NumLock" behavior using the Shift modifier and the real modifier bound to the +virtual modifier named "NumLock," known as the NumLock modifier, as follows: + +.IP \(bu 5 +If Shift and NumLock are both set, the default KEYPAD type yields level one. +.IP \(bu 5 +If Shift alone is set, it yields level two. +.IP \(bu 5 +If NumLock alone is set, it yields level two. +.IP \(bu 5 +If neither Shift nor NumLock is set, it yields level one. + +A symbolic representation of this key type could look like the following: +.nf + + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None]= Level1; + map[Shift]= Level2; + map[NumLock]= Level2; + map[Shift+NumLock]= Level1; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + +.fi +The description of the KEYPAD key type is stored in the types[XkbKeypadIndex] +entry of the client key map. + +A core keymap is a two-dimensional array of keysyms. It has +.I map_width +columns and +.I max_key_code +rows. +.I XkbKeyTypesForCoreSymbols +takes a single row from a core keymap, determines the number of groups +associated with it, the type of each group, and the symbols bound to each group. +The return value is the number of groups, +.I types_inout +has the types for each group, and +.I xkb_syms_rtrn +has the symbols in Xkb order (that is, groups are contiguous, regardless of +size). + +.I protected +contains the explicitly protected key types. There is one explicit override +control associated with each of the four possible groups for each Xkb key, +ExplicitKeyType1 through ExplicitKeyType4; +.I protected +is an inclusive OR of these controls. +.I map_width +is the width of the core keymap and is not dependent on any Xkb definitions. +.I types_inout +is an array of four type indices. On input, +.I types_inout +contains the indices of any types already assigned to the key, in case they are +explicitly protected from change. + +Upon return, +.I types_inout +contains any automatically selected (that is, canonical) types plus any +protected types. Canonical types are assigned to all four groups if there are +enough symbols to do so. The four entries in +.I types_inout +correspond to the four groups for the key in question. -- cgit v1.2.3