All Manuals > CAPI User Guide and Reference Manual > 21 CAPI Reference Entries

interface-keys-style Generic Function

Summary

Determines the emulation for an interface.

Package

capi

Signature

interface-keys-style interface => keys-style

Arguments
interface
An instance of a subclass of interface.
Values
keys-style
A keyword, :pc, :emacs or :mac.
Description

The generic function interface-keys-style returns a keyword indicating a keys style, or emulation. It is called when interface starts running in a new process, and keys-style determines how user input is interpreted by output panes (including editor-pane) in interface.

The editor (that is, instances of editor-pane and its subclasses) responds to user input gestures according to one of three basic models.

When keys-style is :emacs, the editor emulates GNU Emacs. This value is allowed on all platforms.

When keys-style is :pc, the editor emulates standard Microsoft Windows keys on Windows, and KDE/Gnome keys on GTK+ and Motif. This value is allowed in the Windows, GTK+ and X11/Motif implementations.

When keys-style is :mac, the editor emulates macOS editor keys. This value is allowed only in the macOS Cocoa implementation.

The most important differences between the styles are in the handling of the Alt key on Microsoft Windows, selected text, and accelerators:

:emacs

Alt is interpreted on Microsoft Windows as the Meta key (used to access many Emacs commands).

The modifier :meta is used in an output-pane input-model gesture specification.

Control characters such as Ctrl+S are not interpreted as accelerators.

The selection is not deleted on input.

:pc

Alt is interpreted as Alt on Microsoft Windows and can be used for shortcuts.

The modifier :meta is not used in an output-pane input-model gesture specification.

Control keystrokes are interpreted as accelerators. Standard accelerators are added for standard menu commands, for example Ctrl+S for File > Save. For the full set of standard accelerators see 8.7.1 Standard default accelerators.

The selection is deleted on input, and movement keys behave like a typical Microsoft Windows or KDE/Gnome editor.

:mac

Emacs Control keys are available, since they do not clash with the Macintosh Command key.

The selection is deleted on input, and movement keys behave like a typical macOS editor.

By default keys-style is :pc on Microsoft Windows platforms and :emacs on other platforms. You can supply methods for interface-keys-style on your own interface classes that override the default methods.

In the Cocoa implementation, Command keystrokes such as Command+X are available if there is a suitable Edit menu, regardless of the Editor emulation.

See the chapter "Emulation" in the Editor User Guide for more detail about the different styles.

Notes

On Motif the code to implement accelerators and mnemonics clashes with the LispWorks meta key support. Therefore the keyboard must be configured so that none of the keysyms connected to mod1 (see xmodmap) are listed in the variable capi-motif-library:*meta-keysym-search-list*, which must be also be non-nil. Note also that Motif requires Alt to be on mod1.

See also

editor-pane


CAPI User Guide and Reference Manual (Windows version) - 01 Dec 2021 19:33:57