spiegel-keyman/linux/mcompile/keymap/mc_import_rules.h
Markus Greiner f309d90252
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
incorporating review results for adding unit tests
- adding header files
- renaming files and methods
- restructuring meson build
2026-05-05 22:54:02 +02:00

52 lines
1.1 KiB
C++

/*
* Keyman is copyright (C) 2004 - 2026 SIL International. MIT License.
*
* Mnemonic layout support for Linux
*/
#pragma once
#ifndef MC_IMPORT_RULES_H
#define MC_IMPORT_RULES_H
#include <vector>
#include "km_types.h"
/** @brief Base class for Deadkey*/
class DeadKey {
private:
KMX_WCHAR m_deadchar;
std::vector<KMX_WCHAR> m_rgbasechar;
std::vector<KMX_WCHAR> m_rgcombchar;
public:
/** @brief Constructor */
DeadKey(KMX_WCHAR deadCharacter);
/** @brief return dead character */
KMX_WCHAR KMX_DeadCharacter();
/** @brief set Deadkey with values */
void KMX_AddDeadKeyRow(KMX_WCHAR baseCharacter, KMX_WCHAR combinedCharacter);
int KMX_Count() {
return this->m_rgbasechar.size();
}
KMX_WCHAR KMX_GetDeadCharacter() {
return this->m_deadchar;
}
KMX_WCHAR KMX_GetBaseCharacter(int index) {
return this->m_rgbasechar[index];
}
KMX_WCHAR KMX_GetCombinedCharacter(int index) {
return this->m_rgcombchar[index];
}
/** @brief check if character exists in DeadKey */
bool KMX_ContainsBaseCharacter(KMX_WCHAR baseCharacter);
};
#endif /*MC_IMPORT_RULES_H*/