libghostty
Toggle main menu visibility
Loading...
Searching...
No Matches
mouse/encoder.h
Go to the documentation of this file.
1
6
7
#ifndef GHOSTTY_VT_MOUSE_ENCODER_H
8
#define GHOSTTY_VT_MOUSE_ENCODER_H
9
10
#include <stdbool.h>
11
#include <stddef.h>
12
#include <stdint.h>
13
#include <
ghostty/vt/allocator.h
>
14
#include <
ghostty/vt/mouse/event.h
>
15
#include <
ghostty/vt/terminal.h
>
16
#include <
ghostty/vt/types.h
>
17
26
typedef
struct
GhosttyMouseEncoderImpl *
GhosttyMouseEncoder
;
27
33
typedef
enum
GHOSTTY_ENUM_TYPED
{
35
GHOSTTY_MOUSE_TRACKING_NONE
= 0,
36
38
GHOSTTY_MOUSE_TRACKING_X10
= 1,
39
41
GHOSTTY_MOUSE_TRACKING_NORMAL
= 2,
42
44
GHOSTTY_MOUSE_TRACKING_BUTTON
= 3,
45
47
GHOSTTY_MOUSE_TRACKING_ANY
= 4,
48
GHOSTTY_MOUSE_TRACKING_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
49
}
GhosttyMouseTrackingMode
;
50
56
typedef
enum
GHOSTTY_ENUM_TYPED
{
57
GHOSTTY_MOUSE_FORMAT_X10 = 0,
58
GHOSTTY_MOUSE_FORMAT_UTF8 = 1,
59
GHOSTTY_MOUSE_FORMAT_SGR = 2,
60
GHOSTTY_MOUSE_FORMAT_URXVT = 3,
61
GHOSTTY_MOUSE_FORMAT_SGR_PIXELS = 4,
62
GHOSTTY_MOUSE_FORMAT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
63
}
GhosttyMouseFormat
;
64
73
typedef
struct
{
75
size_t
size
;
76
78
uint32_t
screen_width
;
79
81
uint32_t
screen_height
;
82
84
uint32_t
cell_width
;
85
87
uint32_t
cell_height
;
88
90
uint32_t
padding_top
;
91
93
uint32_t
padding_bottom
;
94
96
uint32_t
padding_right
;
97
99
uint32_t
padding_left
;
100
}
GhosttyMouseEncoderSize
;
101
110
typedef
enum
GHOSTTY_ENUM_TYPED
{
112
GHOSTTY_MOUSE_ENCODER_OPT_EVENT
= 0,
113
115
GHOSTTY_MOUSE_ENCODER_OPT_FORMAT
= 1,
116
118
GHOSTTY_MOUSE_ENCODER_OPT_SIZE
= 2,
119
121
GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED
= 3,
122
124
GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL
= 4,
125
GHOSTTY_MOUSE_ENCODER_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
126
}
GhosttyMouseEncoderOption
;
127
137
GHOSTTY_API
GhosttyResult
ghostty_mouse_encoder_new
(
const
GhosttyAllocator
*allocator,
138
GhosttyMouseEncoder
*encoder);
139
147
GHOSTTY_API
void
ghostty_mouse_encoder_free
(
GhosttyMouseEncoder
encoder);
148
160
GHOSTTY_API
void
ghostty_mouse_encoder_setopt
(
GhosttyMouseEncoder
encoder,
161
GhosttyMouseEncoderOption
option,
162
const
void
*value);
163
175
GHOSTTY_API
void
ghostty_mouse_encoder_setopt_from_terminal
(
GhosttyMouseEncoder
encoder,
176
GhosttyTerminal
terminal);
177
187
GHOSTTY_API
void
ghostty_mouse_encoder_reset
(
GhosttyMouseEncoder
encoder);
188
208
GHOSTTY_API
GhosttyResult
ghostty_mouse_encoder_encode
(
GhosttyMouseEncoder
encoder,
209
GhosttyMouseEvent
event,
210
char
*out_buf,
211
size_t
out_buf_size,
212
size_t
*out_len);
213
214
#endif
/* GHOSTTY_VT_MOUSE_ENCODER_H */
allocator.h
ghostty_mouse_encoder_setopt
GHOSTTY_API void ghostty_mouse_encoder_setopt(GhosttyMouseEncoder encoder, GhosttyMouseEncoderOption option, const void *value)
GhosttyMouseEncoder
struct GhosttyMouseEncoderImpl * GhosttyMouseEncoder
Definition
mouse/encoder.h:26
ghostty_mouse_encoder_encode
GHOSTTY_API GhosttyResult ghostty_mouse_encoder_encode(GhosttyMouseEncoder encoder, GhosttyMouseEvent event, char *out_buf, size_t out_buf_size, size_t *out_len)
GhosttyMouseFormat
GhosttyMouseFormat
Definition
mouse/encoder.h:56
GhosttyMouseEvent
struct GhosttyMouseEventImpl * GhosttyMouseEvent
Definition
mouse/event.h:23
GhosttyMouseEncoderOption
GhosttyMouseEncoderOption
Definition
mouse/encoder.h:110
ghostty_mouse_encoder_setopt_from_terminal
GHOSTTY_API void ghostty_mouse_encoder_setopt_from_terminal(GhosttyMouseEncoder encoder, GhosttyTerminal terminal)
GhosttyMouseTrackingMode
GhosttyMouseTrackingMode
Definition
mouse/encoder.h:33
ghostty_mouse_encoder_new
GHOSTTY_API GhosttyResult ghostty_mouse_encoder_new(const GhosttyAllocator *allocator, GhosttyMouseEncoder *encoder)
ghostty_mouse_encoder_free
GHOSTTY_API void ghostty_mouse_encoder_free(GhosttyMouseEncoder encoder)
ghostty_mouse_encoder_reset
GHOSTTY_API void ghostty_mouse_encoder_reset(GhosttyMouseEncoder encoder)
GHOSTTY_MOUSE_ENCODER_OPT_SIZE
@ GHOSTTY_MOUSE_ENCODER_OPT_SIZE
Definition
mouse/encoder.h:118
GHOSTTY_MOUSE_ENCODER_OPT_FORMAT
@ GHOSTTY_MOUSE_ENCODER_OPT_FORMAT
Definition
mouse/encoder.h:115
GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED
@ GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED
Definition
mouse/encoder.h:121
GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL
@ GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL
Definition
mouse/encoder.h:124
GHOSTTY_MOUSE_ENCODER_OPT_EVENT
@ GHOSTTY_MOUSE_ENCODER_OPT_EVENT
Definition
mouse/encoder.h:112
GHOSTTY_MOUSE_TRACKING_ANY
@ GHOSTTY_MOUSE_TRACKING_ANY
Definition
mouse/encoder.h:47
GHOSTTY_MOUSE_TRACKING_X10
@ GHOSTTY_MOUSE_TRACKING_X10
Definition
mouse/encoder.h:38
GHOSTTY_MOUSE_TRACKING_NORMAL
@ GHOSTTY_MOUSE_TRACKING_NORMAL
Definition
mouse/encoder.h:41
GHOSTTY_MOUSE_TRACKING_NONE
@ GHOSTTY_MOUSE_TRACKING_NONE
Definition
mouse/encoder.h:35
GHOSTTY_MOUSE_TRACKING_BUTTON
@ GHOSTTY_MOUSE_TRACKING_BUTTON
Definition
mouse/encoder.h:44
GhosttyTerminal
struct GhosttyTerminalImpl * GhosttyTerminal
Definition
types.h:119
event.h
GhosttyAllocator
Definition
allocator.h:203
GhosttyMouseEncoderSize
Definition
mouse/encoder.h:73
GhosttyMouseEncoderSize::cell_width
uint32_t cell_width
Definition
mouse/encoder.h:84
GhosttyMouseEncoderSize::screen_width
uint32_t screen_width
Definition
mouse/encoder.h:78
GhosttyMouseEncoderSize::padding_top
uint32_t padding_top
Definition
mouse/encoder.h:90
GhosttyMouseEncoderSize::padding_bottom
uint32_t padding_bottom
Definition
mouse/encoder.h:93
GhosttyMouseEncoderSize::cell_height
uint32_t cell_height
Definition
mouse/encoder.h:87
GhosttyMouseEncoderSize::padding_right
uint32_t padding_right
Definition
mouse/encoder.h:96
GhosttyMouseEncoderSize::size
size_t size
Definition
mouse/encoder.h:75
GhosttyMouseEncoderSize::screen_height
uint32_t screen_height
Definition
mouse/encoder.h:81
GhosttyMouseEncoderSize::padding_left
uint32_t padding_left
Definition
mouse/encoder.h:99
terminal.h
types.h
GhosttyResult
GhosttyResult
Definition
types.h:88
GHOSTTY_ENUM_TYPED
#define GHOSTTY_ENUM_TYPED
Definition
types.h:81
include
ghostty
vt
mouse
encoder.h
Generated by
1.18.0