// SPDX-License-Identifier: Unlicense OR MIT //go:build ((linux && !android) || freebsd) && !nowayland // +build linux,!android freebsd // +build !nowayland #include #include "wayland_xdg_shell.h" #include "wayland_xdg_decoration.h" #include "wayland_text_input.h" #include "_cgo_export.h" const struct wl_registry_listener gio_registry_listener = { // Cast away const parameter. .global = (void (*)(void *, struct wl_registry *, uint32_t, const char *, uint32_t))gio_onRegistryGlobal, .global_remove = gio_onRegistryGlobalRemove }; const struct wl_surface_listener gio_surface_listener = { .enter = gio_onSurfaceEnter, .leave = gio_onSurfaceLeave, }; const struct xdg_surface_listener gio_xdg_surface_listener = { .configure = gio_onXdgSurfaceConfigure, }; const struct xdg_toplevel_listener gio_xdg_toplevel_listener = { .configure = gio_onToplevelConfigure, .close = gio_onToplevelClose, }; const struct zxdg_toplevel_decoration_v1_listener gio_zxdg_toplevel_decoration_v1_listener = { .configure = gio_onToplevelDecorationConfigure, }; static void xdg_wm_base_handle_ping(void *data, struct xdg_wm_base *wm, uint32_t serial) { xdg_wm_base_pong(wm, serial); } const struct xdg_wm_base_listener gio_xdg_wm_base_listener = { .ping = xdg_wm_base_handle_ping, }; const struct wl_callback_listener gio_callback_listener = { .done = gio_onFrameDone, }; const struct wl_output_listener gio_output_listener = { // Cast away const parameter. .geometry = (void (*)(void *, struct wl_output *, int32_t, int32_t, int32_t, int32_t, int32_t, const char *, const char *, int32_t))gio_onOutputGeometry, .mode = gio_onOutputMode, .done = gio_onOutputDone, .scale = gio_onOutputScale, }; const struct wl_seat_listener gio_seat_listener = { .capabilities = gio_onSeatCapabilities, // Cast away const parameter. .name = (void (*)(void *, struct wl_seat *, const char *))gio_onSeatName, }; const struct wl_pointer_listener gio_pointer_listener = { .enter = gio_onPointerEnter, .leave = gio_onPointerLeave, .motion = gio_onPointerMotion, .button = gio_onPointerButton, .axis = gio_onPointerAxis, .frame = gio_onPointerFrame, .axis_source = gio_onPointerAxisSource, .axis_stop = gio_onPointerAxisStop, .axis_discrete = gio_onPointerAxisDiscrete, }; const struct wl_touch_listener gio_touch_listener = { .down = gio_onTouchDown, .up = gio_onTouchUp, .motion = gio_onTouchMotion, .frame = gio_onTouchFrame, .cancel = gio_onTouchCancel, }; const struct wl_keyboard_listener gio_keyboard_listener = { .keymap = gio_onKeyboardKeymap, .enter = gio_onKeyboardEnter, .leave = gio_onKeyboardLeave, .key = gio_onKeyboardKey, .modifiers = gio_onKeyboardModifiers, .repeat_info = gio_onKeyboardRepeatInfo }; const struct zwp_text_input_v3_listener gio_zwp_text_input_v3_listener = { .enter = gio_onTextInputEnter, .leave = gio_onTextInputLeave, // Cast away const parameter. .preedit_string = (void (*)(void *, struct zwp_text_input_v3 *, const char *, int32_t, int32_t))gio_onTextInputPreeditString, .commit_string = (void (*)(void *, struct zwp_text_input_v3 *, const char *))gio_onTextInputCommitString, .delete_surrounding_text = gio_onTextInputDeleteSurroundingText, .done = gio_onTextInputDone }; const struct wl_data_device_listener gio_data_device_listener = { .data_offer = gio_onDataDeviceOffer, .enter = gio_onDataDeviceEnter, .leave = gio_onDataDeviceLeave, .motion = gio_onDataDeviceMotion, .drop = gio_onDataDeviceDrop, .selection = gio_onDataDeviceSelection, }; const struct wl_data_offer_listener gio_data_offer_listener = { .offer = (void (*)(void *, struct wl_data_offer *, const char *))gio_onDataOfferOffer, .source_actions = gio_onDataOfferSourceActions, .action = gio_onDataOfferAction, }; const struct wl_data_source_listener gio_data_source_listener = { .target = (void (*)(void *, struct wl_data_source *, const char *))gio_onDataSourceTarget, .send = (void (*)(void *, struct wl_data_source *, const char *, int32_t))gio_onDataSourceSend, .cancelled = gio_onDataSourceCancelled, .dnd_drop_performed = gio_onDataSourceDNDDropPerformed, .dnd_finished = gio_onDataSourceDNDFinished, .action = gio_onDataSourceAction, };