diff options
Diffstat (limited to 'libX11/man/xkb/XkbKeyTypesForCoreSymbols.man')
-rw-r--r-- | libX11/man/xkb/XkbKeyTypesForCoreSymbols.man | 456 |
1 files changed, 228 insertions, 228 deletions
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.
|