spiegel-keyman/common/engine/keyboardprocessor/src/keyboard.hpp
Tim Eves ca150e099f Add add path::native() to get system native character type
Also normalise path separators from '/' to '\\' on windows and correct 
path separator.
2018-12-14 01:59:51 +07:00

52 lines
1.3 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 "option.hpp"
#include "processor.hpp"
#include "path.hpp"
// Forward declarations
class json;
namespace km {
namespace kbp
{
class keyboard : public km_kbp_keyboard_attrs
{
std::u16string const _keyboard_id;
std::u16string const _version_string;
km::kbp::path const _folder_path;
std::vector<km_kbp_option_item> _default_opts;
abstract_processor *_processor;
public:
keyboard(km::kbp::path const &);
~keyboard() {
delete _processor;
}
friend json & operator << (json &, km::kbp::keyboard const &);
std::vector<km_kbp_option_item> *default_opts() { return & _default_opts; }
kbp::abstract_processor const & processor() const noexcept { return *_processor; }
};
json & operator << (json &, km::kbp::keyboard const &);
} // namespace kbp
} // namespace km
struct km_kbp_keyboard : public km::kbp::keyboard {};