Skip to content
modkitv0.2

event.h

#include <modkit/event.h>19 functions · 9 structs · 11 enums · 23 typedefs · 5 macros

SDL-independent platform events and Unicode text boundaries.

Functions

mk_drag_event_initfunction

void mk_drag_event_init(mk_drag_event_t *event)

Initialize the drag event.

ParameterTypeDescription
eventmk_drag_event_t *Value for event.

mk_event_initfunction

void mk_event_init(mk_event_t *event, mk_event_type_t type)

Initialize the event.

ParameterTypeDescription
eventmk_event_t *Value for event.
typemk_event_type_tValue for type.

mk_event_listener_desc_initfunction

void mk_event_listener_desc_init(mk_event_listener_desc_t *desc)

Initialize the event listener desc.

ParameterTypeDescription
descmk_event_listener_desc_t *Configuration descriptor.

mk_event_postfunction

mk_result mk_event_post(const mk_event_t *event)

Queue a deep copy for dispatch from a later main-loop poll.

ParameterTypeDescription
eventconst mk_event_t *Value for event.

Returns MK_SUCCESS or an error result.

mk_event_subscribefunction

mk_result mk_event_subscribe(const mk_event_listener_desc_t *desc, mk_event_listener_t *listener)

Perform the event subscribe operation.

ParameterTypeDescription
descconst mk_event_listener_desc_t *Configuration descriptor.
listenermk_event_listener_t *Value for listener.

Returns MK_SUCCESS or an error result.

mk_event_unsubscribefunction

bool mk_event_unsubscribe(mk_event_listener_t listener)

Perform the event unsubscribe operation.

ParameterTypeDescription
listenermk_event_listener_tValue for listener.

Returns True when the operation succeeds.

mk_ime_candidates_event_initfunction

void mk_ime_candidates_event_init(mk_ime_candidates_event_t *event)

Initialize the IME candidates event.

ParameterTypeDescription
eventmk_ime_candidates_event_t *Value for event.

mk_key_event_initfunction

void mk_key_event_init(mk_key_event_t *event)

Initialize the key event.

ParameterTypeDescription
eventmk_key_event_t *Value for event.

mk_platform_window_event_initfunction

void mk_platform_window_event_init(mk_platform_window_event_t *event)

Initialize the platform window event.

ParameterTypeDescription
eventmk_platform_window_event_t *Value for event.

mk_pointer_capturefunction

mk_result mk_pointer_capture(mk_event_listener_t listener, uint64_t pointer_id)

Capture subsequent events for pointer_id to one listener.

ParameterTypeDescription
listenermk_event_listener_tValue for listener.
pointer_iduint64_tValue for pointer ID.

Returns MK_SUCCESS or an error result.

mk_pointer_event_initfunction

void mk_pointer_event_init(mk_pointer_event_t *event)

Initialize the pointer event.

ParameterTypeDescription
eventmk_pointer_event_t *Value for event.

mk_pointer_releasefunction

bool mk_pointer_release(mk_event_listener_t listener, uint64_t pointer_id)

Release pointer.

ParameterTypeDescription
listenermk_event_listener_tValue for listener.
pointer_iduint64_tValue for pointer ID.

Returns True when the operation succeeds.

mk_scroll_event_initfunction

void mk_scroll_event_init(mk_scroll_event_t *event)

Initialize the scroll event.

ParameterTypeDescription
eventmk_scroll_event_t *Value for event.

mk_text_event_initfunction

void mk_text_event_init(mk_text_event_t *event)

Initialize the text event.

ParameterTypeDescription
eventmk_text_event_t *Value for event.

mk_text_input_capabilitiesfunction

uint32_t mk_text_input_capabilities(void)

Perform the text input capabilities operation.

Returns The resulting value.

mk_utf8_boundary_clampfunction

size_t mk_utf8_boundary_clamp(const char *text, size_t text_length, size_t offset, mk_utf8_boundary_kind_t kind, mk_utf8_clamp_direction_t direction)

Perform the UTF-8 boundary clamp operation.

ParameterTypeDescription
textconst char *Value for text.
text_lengthsize_tValue for text length.
offsetsize_tValue for offset.
kindmk_utf8_boundary_kind_tValue for kind.
directionmk_utf8_clamp_direction_tValue for direction.

Returns The resulting value.

mk_utf8_boundary_isfunction

bool mk_utf8_boundary_is(const char *text, size_t text_length, size_t offset, mk_utf8_boundary_kind_t kind)

Test whether the UTF-8 boundary is active.

ParameterTypeDescription
textconst char *Value for text.
text_lengthsize_tValue for text length.
offsetsize_tValue for offset.
kindmk_utf8_boundary_kind_tValue for kind.

Returns True when the operation succeeds.

mk_utf8_boundary_nextfunction

size_t mk_utf8_boundary_next(const char *text, size_t text_length, size_t offset, mk_utf8_boundary_kind_t kind)

Boundary offsets are UTF-8 byte offsets in [0, text_length].

ParameterTypeDescription
textconst char *Value for text.
text_lengthsize_tValue for text length.
offsetsize_tValue for offset.
kindmk_utf8_boundary_kind_tValue for kind.

Returns The resulting value.

mk_utf8_boundary_previousfunction

size_t mk_utf8_boundary_previous(const char *text, size_t text_length, size_t offset, mk_utf8_boundary_kind_t kind)

Perform the UTF-8 boundary previous operation.

ParameterTypeDescription
textconst char *Value for text.
text_lengthsize_tValue for text length.
offsetsize_tValue for offset.
kindmk_utf8_boundary_kind_tValue for kind.

Returns The resulting value.

Structs

mk_drag_eventstruct

Data for drag event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
phasemk_drag_phase_tThe phase.
xfloatThe x.
yfloatThe y.
source_applicationconst char *The source application.
itemconst mk_transfer_item_t *The item.

mk_eventstruct

Data for event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
typemk_event_type_tThe type.
timestamp_nsuint64_tThe timestamp ns.
window_iduint32_tThe window ID.
dataunion mk_event::@326371272376240152046123232227203337044234027132The data.
data.keymk_key_event_tThe key.
data.textmk_text_event_tThe text.
data.ime_candidatesmk_ime_candidates_event_tThe IME candidates.
data.pointermk_pointer_event_tThe pointer.
data.scrollmk_scroll_event_tThe scroll.
data.windowmk_platform_window_event_tThe window.
data.system_preferencesmk_system_preferences_tThe system preferences.
data.dragmk_drag_event_tThe drag.

mk_event_listener_descstruct

Data for event listener desc.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
maskmk_event_mask_tThe mask.
priorityint32_tThe priority.
callbackmk_event_listener_fnThe callback.
user_datavoid *The user data.

mk_ime_candidates_eventstruct

Data for IME candidates event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
candidatesconst char *const *The candidates.
candidate_countuint32_tThe candidate count.
selected_candidateint32_tThe selected candidate.
horizontalboolThe horizontal.

mk_key_eventstruct

Data for key event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
physical_keyuint32_tThe physical key.
logical_symboluint32_tThe logical symbol.
modifiersuint32_tThe modifiers.
pressedboolThe pressed.
repeatboolThe repeat.

mk_platform_window_eventstruct

Data for platform window event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
typemk_platform_window_event_type_tThe type.
widthint32_tThe width.
heightint32_tThe height.
scalefloatThe scale.
display_iduint32_tThe display ID.

mk_pointer_eventstruct

Data for pointer event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
pointer_iduint64_tThe pointer ID.
kindmk_pointer_kind_tThe kind.
phasemk_pointer_phase_tThe phase.
xfloatThe x.
yfloatThe y.
delta_xfloatThe delta x.
delta_yfloatThe delta y.
pressurefloatThe pressure.
tilt_xfloatThe tilt x.
tilt_yfloatThe tilt y.
buttonsuint32_tThe buttons.
buttonuint8_tThe button.
clicksuint8_tThe clicks.

mk_scroll_eventstruct

Data for scroll event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
xfloatThe x.
yfloatThe y.
pointer_xfloatThe pointer x.
pointer_yfloatThe pointer y.
unitmk_scroll_unit_tThe unit.
phasemk_gesture_phase_tThe phase.
preciseboolThe precise.

mk_text_eventstruct

Data for text event.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
textconst char *The text.
text_lengthuint32_tThe text length.
selection_startint32_tThe selection start.
selection_lengthint32_tThe selection length.

Enums

mk_drag_phaseenum

Values for drag phase.

ValueDescription
MK_DRAG_BEGINSelects begin.
MK_DRAG_UPDATESelects update.
MK_DRAG_LEAVESelects leave.
MK_DRAG_ITEMSelects item.
MK_DRAG_COMPLETESelects complete.

mk_event_typeenum

Values for event type.

ValueDescription
MK_EVENT_NONESelects none.
MK_EVENT_KEYSelects key.
MK_EVENT_TEXT_COMMITSelects text commit.
MK_EVENT_IME_COMPOSITIONSelects IME composition.
MK_EVENT_IME_CANDIDATESSelects IME candidates.
MK_EVENT_POINTERSelects pointer.
MK_EVENT_SCROLLSelects scroll.
MK_EVENT_WINDOWSelects window.
MK_EVENT_SYSTEM_PREFERENCESSelects system preferences.
MK_EVENT_DRAGSelects drag.

mk_gesture_phaseenum

Values for gesture phase.

ValueDescription
MK_GESTURE_NONESelects none.
MK_GESTURE_BEGINSelects begin.
MK_GESTURE_UPDATESelects update.
MK_GESTURE_ENDSelects end.
MK_GESTURE_CANCELSelects cancel.

mk_key_modifierenum

Values for key modifier.

ValueDescription
MK_KEY_MOD_SHIFTSelects shift.
MK_KEY_MOD_CONTROLSelects control.
MK_KEY_MOD_ALTSelects alt.
MK_KEY_MOD_GUISelects gui.
MK_KEY_MOD_CAPS_LOCKSelects caps lock.
MK_KEY_MOD_NUM_LOCKSelects num lock.
MK_KEY_MOD_SCROLL_LOCKSelects scroll lock.
MK_KEY_MOD_ALT_GRSelects alt gr.

mk_platform_window_event_typeenum

Values for platform window event type.

ValueDescription
MK_PLATFORM_WINDOW_EVENT_FOCUS_GAINEDSelects focus gained.
MK_PLATFORM_WINDOW_EVENT_FOCUS_LOSTSelects focus lost.
MK_PLATFORM_WINDOW_EVENT_RESIZEDSelects resized.
MK_PLATFORM_WINDOW_EVENT_PIXEL_SIZE_CHANGEDSelects pixel size changed.
MK_PLATFORM_WINDOW_EVENT_SCALE_CHANGEDSelects scale changed.
MK_PLATFORM_WINDOW_EVENT_DISPLAY_CHANGEDSelects display changed.
MK_PLATFORM_WINDOW_EVENT_CLOSE_REQUESTEDSelects close requested.
MK_PLATFORM_WINDOW_EVENT_DESTROYEDSelects destroyed.

mk_pointer_kindenum

Values for pointer kind.

ValueDescription
MK_POINTER_MOUSESelects mouse.
MK_POINTER_TOUCHSelects touch.
MK_POINTER_PENSelects pen.
MK_POINTER_ERASERSelects eraser.

mk_pointer_phaseenum

Values for pointer phase.

ValueDescription
MK_POINTER_HOVERSelects hover.
MK_POINTER_DOWNSelects down.
MK_POINTER_MOVESelects move.
MK_POINTER_UPSelects up.
MK_POINTER_CANCELSelects cancel.
MK_POINTER_ENTERSelects enter.
MK_POINTER_LEAVESelects leave.

mk_scroll_unitenum

Values for scroll unit.

ValueDescription
MK_SCROLL_LINESSelects lines.
MK_SCROLL_PIXELSSelects pixels.

mk_text_input_capabilityenum

Values for text input capability.

ValueDescription
MK_TEXT_INPUT_CAP_COMMITSelects commit.
MK_TEXT_INPUT_CAP_COMPOSITIONSelects composition.
MK_TEXT_INPUT_CAP_CANDIDATESSelects candidates.
MK_TEXT_INPUT_CAP_SCREEN_KEYBOARDSelects screen keyboard.

mk_utf8_boundary_kindenum

Values for UTF-8 boundary kind.

ValueDescription
MK_UTF8_BOUNDARY_GRAPHEMESelects grapheme.
MK_UTF8_BOUNDARY_WORDSelects word.

mk_utf8_clamp_directionenum

Values for UTF-8 clamp direction.

ValueDescription
MK_UTF8_CLAMP_NEARESTSelects nearest.
MK_UTF8_CLAMP_BACKWARDSelects backward.
MK_UTF8_CLAMP_FORWARDSelects forward.

Typedefs

mk_drag_event_ttypedef

typedef struct mk_drag_event mk_drag_event_t

Data for drag event.

mk_drag_phase_ttypedef

typedef enum mk_drag_phase mk_drag_phase_t

Values for drag phase.

mk_event_listener_desc_ttypedef

typedef struct mk_event_listener_desc mk_event_listener_desc_t

Data for event listener desc.

mk_event_listener_fntypedef

typedef bool(*) mk_event_listener_fn(const mk_event_t *event, void *user_data)

Callback used for event listener.

mk_event_listener_ttypedef

typedef uint64_t mk_event_listener_t

Type used for event listener.

mk_event_mask_ttypedef

typedef uint64_t mk_event_mask_t

Type used for event mask.

mk_event_ttypedef

typedef struct mk_event mk_event_t

Data for event.

mk_event_type_ttypedef

typedef enum mk_event_type mk_event_type_t

Values for event type.

mk_gesture_phase_ttypedef

typedef enum mk_gesture_phase mk_gesture_phase_t

Values for gesture phase.

mk_ime_candidates_event_ttypedef

typedef struct mk_ime_candidates_event mk_ime_candidates_event_t

Data for IME candidates event.

mk_key_event_ttypedef

typedef struct mk_key_event mk_key_event_t

Data for key event.

mk_key_modifier_ttypedef

typedef enum mk_key_modifier mk_key_modifier_t

Values for key modifier.

mk_platform_window_event_ttypedef

typedef struct mk_platform_window_event mk_platform_window_event_t

Data for platform window event.

mk_platform_window_event_type_ttypedef

typedef enum mk_platform_window_event_type mk_platform_window_event_type_t

Values for platform window event type.

mk_pointer_event_ttypedef

typedef struct mk_pointer_event mk_pointer_event_t

Data for pointer event.

mk_pointer_kind_ttypedef

typedef enum mk_pointer_kind mk_pointer_kind_t

Values for pointer kind.

mk_pointer_phase_ttypedef

typedef enum mk_pointer_phase mk_pointer_phase_t

Values for pointer phase.

mk_scroll_event_ttypedef

typedef struct mk_scroll_event mk_scroll_event_t

Data for scroll event.

mk_scroll_unit_ttypedef

typedef enum mk_scroll_unit mk_scroll_unit_t

Values for scroll unit.

mk_text_event_ttypedef

typedef struct mk_text_event mk_text_event_t

Data for text event.

mk_text_input_capability_ttypedef

typedef enum mk_text_input_capability mk_text_input_capability_t

Values for text input capability.

mk_utf8_boundary_kind_ttypedef

typedef enum mk_utf8_boundary_kind mk_utf8_boundary_kind_t

Values for UTF-8 boundary kind.

mk_utf8_clamp_direction_ttypedef

typedef enum mk_utf8_clamp_direction mk_utf8_clamp_direction_t

Values for UTF-8 clamp direction.

Macros

MK_EVENT_LISTENER_DESC_VERSIONdefine

MK_EVENT_LISTENER_DESC_VERSION

ABI or format version for event listener desc.

MK_EVENT_LISTENER_INVALIDdefine

MK_EVENT_LISTENER_INVALID

Invalid sentinel for event listener.

MK_EVENT_MASKdefine

MK_EVENT_MASK(type)

Constant for event mask.

MK_EVENT_MASK_ALLdefine

MK_EVENT_MASK_ALL

Constant for event mask all.

MK_EVENT_VERSIONdefine

MK_EVENT_VERSION

ABI or format version for event.