All Manuals > LispWorks User Guide and Reference Manual > 49 The SYSTEM Package

NextPrevUpTopContentsIndex

make-gesture-spec

Function
Summary

Create a Gesture Spec object.

Package

system

Signature

make-gesture-spec data modifiers &optional can-shift-both-case-p => gspec

Arguments

data

A non-negative integer less than cl:char-code-limit, or a Gesture Spec keyword, or nil.

modifiers

A non-negative integer less than 64, or nil.

can-shift-both-case-p

A generalized boolean.

Values

gspec

A Gesture Spec object

Description

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:

:f1

:f2

:f3

:f4

:f5

:f6

:f7

:f8

:f9

:f10

:f11

:f12

:f13

:f14

:f15

:f16

:f17

:f18

:f19

:f20

:f21

:f22

:f23

:f24

:f25

:f26

:f27

:f28

:f29

:f30

:f31

:f32

:f33

:f34

:f35

:help

:left

:right

:up

:down

:home

:prior

:next

:end

:begin

:select

:print

:execute

:insert

:undo

:redo

:menu

:find

:cancel

:break

:clear

:pause

:kp-f1

:kp-f2

:kp-f3

:kp-f4

:kp-enter

:applications-menu

:print-screen

:scroll-lock

:sys-req

:reset

:stop

:user

:system

:clear-line

:clear-display

:insert-line

:delete-line

:insert-char

:delete-char

:prev-item

:next-item

Not all of these Gesture Spec keywords will be generated by all platforms and/or keyboards.

If modifiers is an integer, it represents modifier 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 unmodified 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.

Example
(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)

Instead you should use:

(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))
See also

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


LispWorks User Guide and Reference Manual - 20 Sep 2017

NextPrevUpTopContentsIndex