This example demonstrates how to use the mouse encoder to convert mouse events into terminal escape sequences using the SGR mouse format.
#include <assert.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
int main() {
.screen_width = 800, .screen_height = 600,
.cell_width = 10, .cell_height = 20,
});
char buf[128];
size_t written = 0;
buf, sizeof(buf), &written);
fwrite(buf, 1, written, stdout);
return 0;
}
GhosttyResult ghostty_mouse_event_new(const GhosttyAllocator *allocator, GhosttyMouseEvent *event)
void ghostty_mouse_event_free(GhosttyMouseEvent event)
void ghostty_mouse_event_set_action(GhosttyMouseEvent event, GhosttyMouseAction action)
void ghostty_mouse_encoder_setopt(GhosttyMouseEncoder encoder, GhosttyMouseEncoderOption option, const void *value)
GhosttyResult ghostty_mouse_encoder_new(const GhosttyAllocator *allocator, GhosttyMouseEncoder *encoder)
void ghostty_mouse_encoder_free(GhosttyMouseEncoder encoder)
GhosttyResult ghostty_mouse_encoder_encode(GhosttyMouseEncoder encoder, GhosttyMouseEvent event, char *out_buf, size_t out_buf_size, size_t *out_len)
struct GhosttyMouseEvent * GhosttyMouseEvent
void ghostty_mouse_event_set_position(GhosttyMouseEvent event, GhosttyMousePosition position)
void ghostty_mouse_event_set_button(GhosttyMouseEvent event, GhosttyMouseButton button)
struct GhosttyMouseEncoder * GhosttyMouseEncoder
@ GHOSTTY_MOUSE_ENCODER_OPT_SIZE
@ GHOSTTY_MOUSE_ENCODER_OPT_FORMAT
@ GHOSTTY_MOUSE_ENCODER_OPT_EVENT
@ GHOSTTY_MOUSE_TRACKING_NORMAL
@ GHOSTTY_MOUSE_ACTION_PRESS