A non-negative integer less than
char-code-limit
, or a Gesture Spec keyword, or
nil
.
A non-negative integer less than 64, or
nil
.
The function
make-gesture-spec
returns a new Gesture Spec object
gspec.
This can be used to represent a keystroke consisting of the key indicated by
data
, modified by the modifier keys indicated by
modifiers
.
If
data
is an integer, it represents the key
(code-char
data
)
. If
data
is a keyword, it must be one of the known Gesture Spec keywords and represents the key with the same name. If
data
is
nil
, then
gspec
has a wild data component.
These are the Gesture Spec keywords:
Not all of these Gesture Spec keywords will be generated by all platforms and/or keyboards.
If
modifers
is an integer, it represents modifer keys according to the values gesture-spec-accelerator-bit, gesture-spec-control-bit, gesture-spec-hyper-bit, gesture-spec-meta-bit, gesture-spec-shift-bit, and gesture-spec-super-bit. If
modifiers
is
nil
, then
gspec
has a wild modifiers component.
The gesture
Shift+X
could potentially be represented by the unmodifed uppercase character
X
, or lowercase
x
with the
Shift
modifier. In order to ensure a consistent representation the latter form is not supported by Gesture Specs by default. That is, a
both-case-p
character may not be combined with the single modifier
Shift
in the accelerator argument. This can be overridden by passing a true value for
can-shift-both-case-p
.
A
both-case-p
character is allowed with
Shift
if there are other modifiers. See the below for examples.
Wild Gesture Specs can be useful when specifying an input model for a
capi:output-pane
.
(sys:make-gesture-spec
97
(logior sys:gesture-spec-control-bit
sys:gesture-spec-meta-bit))
A
both-case-p
character may not be combined with the single modifier
Shift
in the accelerator argument, so code like this signals an error:
(sys:make-gesture-spec
(char-code #\x)
sys:gesture-spec-shift-bit)
(sys:make-gesture-spec (char-code #\X) 0)
A
both-case-p
character is allowed with
Shift
if there are other modifiers:
(sys:make-gesture-spec
(char-code #\x)
(logior sys:gesture-spec-shift-bit
sys:gesture-spec-meta-bit))
gesture-spec-accelerator-bit
gesture-spec-control-bit
gesture-spec-data
gesture-spec-hyper-bit
gesture-spec-meta-bit
gesture-spec-modifiers
gesture-spec-p
gesture-spec-shift-bit
gesture-spec-super-bit
print-pretty-gesture-spec