spiegel-keyman/core/src/kmx/kmx_processor.hpp
Steven R. Loomis 21a783a6ca feat(core): add event_flags to process_event
- uint16_t
- defined km_kbp_event_flags to define the bitfield
- bitfield has value KM_KBP_EVENT_FLAG_TOUCH for touch events
- ignored everywhere, currently
2022-08-11 16:14:57 -05:00

79 lines
1.7 KiB
C++

/*
Copyright: © 2018 SIL International.
Description: Internal keyboard class and adaptor class for the API.
Create Date: 2 Oct 2018
Authors: Tim Eves (TSE)
History: 2 Oct 2018 - TSE - Refactored out of km_kbp_keyboard_api.cpp
*/
#pragma once
#include <string>
#include <keyman/keyboardprocessor.h>
#include "kmx/kmx_processevent.h"
#include "keyboard.hpp"
#include "processor.hpp"
namespace km {
namespace kbp
{
class kmx_processor : public abstract_processor
{
private:
bool _valid;
kmx::KMX_ProcessEvent _kmx;
km_kbp_status
internal_process_queued_actions(
km_kbp_state *state
);
public:
kmx_processor(path);
km_kbp_status
process_event(
km_kbp_state *state,
km_kbp_virtual_key vk,
uint16_t modifier_state,
uint8_t is_key_down,
uint16_t event_flags
) override;
km_kbp_attr const & attributes() const override;
km_kbp_status validate() const override;
char16_t const *
lookup_option(
km_kbp_option_scope,
std::u16string const & key
) const override;
option
update_option(
km_kbp_option_scope scope,
std::u16string const & key,
std::u16string const & value
) override;
km_kbp_status
process_queued_actions(
km_kbp_state *state
) override;
bool
queue_action(
km_kbp_state * state,
km_kbp_action_item const* action_item
) override;
km_kbp_context_item * get_intermediate_context() override;
km_kbp_keyboard_key * get_key_list() const override;
km_kbp_keyboard_imx * get_imx_list() const override;
};
} // namespace kbp
} // namespace km