/* SPDX-License-Identifier: GPL-3.0-only */ /* * Modifier key callbacks. * * Copyright (c) 2024, Richard Acayan. All rights reserved. */ #ifndef UFKBD_MODIFIER_H #define UFKBD_MODIFIER_H #include "ufkbd.h" struct ufkbd_ctx; struct ufkbd_press; bool ufkbd_is_modifier(struct ufkbd_press *press); enum ufkbd_mod_state ufkbd_modifier_get_state(const struct ufkbd_ctx *ctx, const struct ufkbd_key *key, int part); void ufkbd_modifier_press(struct ufkbd_ctx *ctx, struct ufkbd_press *press); void ufkbd_modifier_cancel(struct ufkbd_ctx *ctx, struct ufkbd_press *press); void ufkbd_modifier_release(struct ufkbd_ctx *ctx, struct ufkbd_press *press); void ufkbd_modifier_unlatch_all(struct ufkbd_ctx *ctx); #endif /* UFKBD_MODIFIER_H */