libghostty
Toggle main menu visibility
Loading...
Searching...
No Matches
key/encoder.h
Go to the documentation of this file.
1
6
7
#ifndef GHOSTTY_VT_KEY_ENCODER_H
8
#define GHOSTTY_VT_KEY_ENCODER_H
9
10
#include <stddef.h>
11
#include <stdint.h>
12
#include <
ghostty/vt/types.h
>
13
#include <
ghostty/vt/allocator.h
>
14
#include <
ghostty/vt/terminal.h
>
15
#include <
ghostty/vt/key/event.h
>
16
25
typedef
struct
GhosttyKeyEncoderImpl *
GhosttyKeyEncoder
;
26
36
typedef
uint8_t
GhosttyKittyKeyFlags
;
37
39
#define GHOSTTY_KITTY_KEY_DISABLED 0
40
42
#define GHOSTTY_KITTY_KEY_DISAMBIGUATE (1 << 0)
43
45
#define GHOSTTY_KITTY_KEY_REPORT_EVENTS (1 << 1)
46
48
#define GHOSTTY_KITTY_KEY_REPORT_ALTERNATES (1 << 2)
49
51
#define GHOSTTY_KITTY_KEY_REPORT_ALL (1 << 3)
52
54
#define GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED (1 << 4)
55
57
#define GHOSTTY_KITTY_KEY_ALL (GHOSTTY_KITTY_KEY_DISAMBIGUATE | GHOSTTY_KITTY_KEY_REPORT_EVENTS | GHOSTTY_KITTY_KEY_REPORT_ALTERNATES | GHOSTTY_KITTY_KEY_REPORT_ALL | GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED)
58
67
typedef
enum
GHOSTTY_ENUM_TYPED
{
69
GHOSTTY_OPTION_AS_ALT_FALSE
= 0,
71
GHOSTTY_OPTION_AS_ALT_TRUE
= 1,
73
GHOSTTY_OPTION_AS_ALT_LEFT
= 2,
75
GHOSTTY_OPTION_AS_ALT_RIGHT
= 3,
76
GHOSTTY_OPTION_AS_ALT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
77
}
GhosttyOptionAsAlt
;
78
87
typedef
enum
GHOSTTY_ENUM_TYPED
{
89
GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION
= 0,
90
92
GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION
= 1,
93
95
GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK
= 2,
96
98
GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX
= 3,
99
101
GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2
= 4,
102
104
GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS
= 5,
105
107
GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT
= 6,
108
114
GHOSTTY_KEY_ENCODER_OPT_BACKARROW_KEY_MODE
= 7,
115
116
GHOSTTY_KEY_ENCODER_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
117
}
GhosttyKeyEncoderOption
;
118
132
GHOSTTY_API
GhosttyResult
ghostty_key_encoder_new
(
const
GhosttyAllocator
*allocator,
GhosttyKeyEncoder
*encoder);
133
144
GHOSTTY_API
void
ghostty_key_encoder_free
(
GhosttyKeyEncoder
encoder);
145
167
GHOSTTY_API
void
ghostty_key_encoder_setopt
(
GhosttyKeyEncoder
encoder,
GhosttyKeyEncoderOption
option,
const
void
*value);
168
186
GHOSTTY_API
void
ghostty_key_encoder_setopt_from_terminal
(
GhosttyKeyEncoder
encoder,
GhosttyTerminal
terminal);
187
253
GHOSTTY_API
GhosttyResult
ghostty_key_encoder_encode
(
GhosttyKeyEncoder
encoder,
GhosttyKeyEvent
event,
char
*out_buf,
size_t
out_buf_size,
size_t
*out_len);
254
255
#endif
/* GHOSTTY_VT_KEY_ENCODER_H */
allocator.h
GhosttyKeyEncoder
struct GhosttyKeyEncoderImpl * GhosttyKeyEncoder
Definition
key/encoder.h:25
GhosttyKittyKeyFlags
uint8_t GhosttyKittyKeyFlags
Definition
key/encoder.h:36
ghostty_key_encoder_encode
GHOSTTY_API GhosttyResult ghostty_key_encoder_encode(GhosttyKeyEncoder encoder, GhosttyKeyEvent event, char *out_buf, size_t out_buf_size, size_t *out_len)
ghostty_key_encoder_setopt_from_terminal
GHOSTTY_API void ghostty_key_encoder_setopt_from_terminal(GhosttyKeyEncoder encoder, GhosttyTerminal terminal)
ghostty_key_encoder_setopt
GHOSTTY_API void ghostty_key_encoder_setopt(GhosttyKeyEncoder encoder, GhosttyKeyEncoderOption option, const void *value)
GhosttyKeyEncoderOption
GhosttyKeyEncoderOption
Definition
key/encoder.h:87
GhosttyKeyEvent
struct GhosttyKeyEventImpl * GhosttyKeyEvent
Definition
key/event.h:24
GhosttyOptionAsAlt
GhosttyOptionAsAlt
Definition
key/encoder.h:67
ghostty_key_encoder_new
GHOSTTY_API GhosttyResult ghostty_key_encoder_new(const GhosttyAllocator *allocator, GhosttyKeyEncoder *encoder)
ghostty_key_encoder_free
GHOSTTY_API void ghostty_key_encoder_free(GhosttyKeyEncoder encoder)
GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK
@ GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK
Definition
key/encoder.h:95
GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS
@ GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS
Definition
key/encoder.h:104
GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION
@ GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION
Definition
key/encoder.h:89
GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX
@ GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX
Definition
key/encoder.h:98
GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION
@ GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION
Definition
key/encoder.h:92
GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2
@ GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2
Definition
key/encoder.h:101
GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT
@ GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT
Definition
key/encoder.h:107
GHOSTTY_KEY_ENCODER_OPT_BACKARROW_KEY_MODE
@ GHOSTTY_KEY_ENCODER_OPT_BACKARROW_KEY_MODE
Definition
key/encoder.h:114
GHOSTTY_OPTION_AS_ALT_FALSE
@ GHOSTTY_OPTION_AS_ALT_FALSE
Definition
key/encoder.h:69
GHOSTTY_OPTION_AS_ALT_TRUE
@ GHOSTTY_OPTION_AS_ALT_TRUE
Definition
key/encoder.h:71
GHOSTTY_OPTION_AS_ALT_LEFT
@ GHOSTTY_OPTION_AS_ALT_LEFT
Definition
key/encoder.h:73
GHOSTTY_OPTION_AS_ALT_RIGHT
@ GHOSTTY_OPTION_AS_ALT_RIGHT
Definition
key/encoder.h:75
GhosttyTerminal
struct GhosttyTerminalImpl * GhosttyTerminal
Definition
types.h:119
event.h
GhosttyAllocator
Definition
allocator.h:203
terminal.h
types.h
GhosttyResult
GhosttyResult
Definition
types.h:88
GHOSTTY_ENUM_TYPED
#define GHOSTTY_ENUM_TYPED
Definition
types.h:81
include
ghostty
vt
key
encoder.h
Generated by
1.18.0