libghostty
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>
15#include <ghostty/vt/terminal.h>
16#include <ghostty/vt/types.h>
17
26typedef struct GhosttyMouseEncoderImpl *GhosttyMouseEncoder;
27
33typedef enum GHOSTTY_ENUM_TYPED {
36
39
42
45
48 GHOSTTY_MOUSE_TRACKING_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
50
56typedef 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,
64
73typedef 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
94
96 uint32_t padding_right;
97
99 uint32_t padding_left;
101
110typedef enum GHOSTTY_ENUM_TYPED {
113
116
119
122
125 GHOSTTY_MOUSE_ENCODER_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
127
138 GhosttyMouseEncoder *encoder);
139
148
162 const void *value);
163
176 GhosttyTerminal terminal);
177
188
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 */
GHOSTTY_API void ghostty_mouse_encoder_setopt(GhosttyMouseEncoder encoder, GhosttyMouseEncoderOption option, const void *value)
struct GhosttyMouseEncoderImpl * GhosttyMouseEncoder
GHOSTTY_API GhosttyResult ghostty_mouse_encoder_encode(GhosttyMouseEncoder encoder, GhosttyMouseEvent event, char *out_buf, size_t out_buf_size, size_t *out_len)
GhosttyMouseFormat
struct GhosttyMouseEventImpl * GhosttyMouseEvent
Definition mouse/event.h:23
GhosttyMouseEncoderOption
GHOSTTY_API void ghostty_mouse_encoder_setopt_from_terminal(GhosttyMouseEncoder encoder, GhosttyTerminal terminal)
GhosttyMouseTrackingMode
GHOSTTY_API GhosttyResult ghostty_mouse_encoder_new(const GhosttyAllocator *allocator, GhosttyMouseEncoder *encoder)
GHOSTTY_API void ghostty_mouse_encoder_free(GhosttyMouseEncoder encoder)
GHOSTTY_API void ghostty_mouse_encoder_reset(GhosttyMouseEncoder encoder)
@ GHOSTTY_MOUSE_ENCODER_OPT_SIZE
@ GHOSTTY_MOUSE_ENCODER_OPT_FORMAT
@ GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED
@ GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL
@ GHOSTTY_MOUSE_ENCODER_OPT_EVENT
@ GHOSTTY_MOUSE_TRACKING_ANY
@ GHOSTTY_MOUSE_TRACKING_X10
@ GHOSTTY_MOUSE_TRACKING_NORMAL
@ GHOSTTY_MOUSE_TRACKING_NONE
@ GHOSTTY_MOUSE_TRACKING_BUTTON
struct GhosttyTerminalImpl * GhosttyTerminal
Definition types.h:95
GhosttyResult
Definition types.h:74
#define GHOSTTY_ENUM_TYPED
Definition types.h:67