Tim Eves
2ca2fceb79
Make the API header use C++ native char16_t for km_kbp_cp when in C++
2018-10-19 15:55:50 +07:00
Tim Eves
4677d3d8b1
Fix bugs in context_api utf16 handling
...
It did not read the input string due an error in
utfcodec:_utf_sentinal_iterator and did not include the null terminator
in calculated size from context_to_utf16.
2018-10-19 15:54:55 +07:00
Tim Eves
b3ac445959
Python API context item fixes
2018-10-18 15:02:11 +07:00
Tim Eves
a20251395a
Fix Python status code to exception translation.
2018-10-18 15:01:49 +07:00
Tim Eves
f8f7280aad
Move the python API modules into a python subdir and module heirachy
2018-10-18 14:44:32 +07:00
Tim Eves
4807594c43
Add envar PYKMNKBP_LIBRARY_PATH to allow ctypes load a particular SO/DLL
...
Also fix up a number of types in fucntion names and the KM_API macros to
mark functions as exportable.
2018-10-18 14:42:06 +07:00
Tim Eves
e0ad390983
Harmonise spell of options collections to options_set consistently.
...
The type was called km_knp_option_set but the functions we called
km_kbp_options_set_*
2018-10-18 14:38:11 +07:00
Tim Eves
f78216a698
Add DLL/SO export controls
2018-10-18 09:35:20 +07:00
Tim Eves
6fa6c94e42
Basic Python ctypes module mirror C API
2018-10-17 10:03:49 +07:00
Tim Eves
e9203e9cf4
Fix FTBFS errors with shadowing: Use qualified names where aproopriate.
2018-10-17 10:01:55 +07:00
Tim Eves
64d3263a8b
Fix typos in vkeys header
2018-10-17 10:00:49 +07:00
Tim Eves
c848236a09
Implement get_engine_attrs call
2018-10-17 09:24:45 +07:00
Tim Eves
5d1c2fe6ea
Add some very basic documentation on building
2018-10-17 08:46:57 +07:00
Tim Eves
4542897685
Implement simple dumb keyboard for testing.
2018-10-17 08:46:23 +07:00
Tim Eves
d19a1d5aea
Fix internal headers to add missing multiple include guards.
2018-10-17 08:45:29 +07:00
Tim Eves
8d14bbb76a
Pull very long vkeys definitions out of api header for readability
2018-10-17 08:44:33 +07:00
Tim Eves
9acd2ddd19
Add keyboard virtualkey enums to the API mirroring windows codes.
2018-10-17 02:22:32 +07:00
Tim Eves
df64e54cbd
Add json schema for km_kbp_state_to_json call generated document
2018-10-05 11:34:11 +07:00
Tim Eves
1d4208d17f
Add prototype documentation generation
2018-10-05 11:33:06 +07:00
Tim Eves
21dfe57be6
Document the process_event call and attributes call on the processor
2018-10-05 11:31:43 +07:00
Tim Eves
6b298118b9
Fully document and implement the kbp_state API
...
Export of action items still todo.
2018-10-05 11:30:53 +07:00
Tim Eves
bb99d60d07
Implement json << operators for all the exportable types
...
These will be needed by the state_to_json API call.
2018-10-05 11:29:36 +07:00
Tim Eves
abf7e63986
Refactor kbp_option_set into adaptor class for internal representation
...
Also pull trivial adaptors for keyboard an context into the internal
data structres header files.
2018-10-05 11:26:20 +07:00
Tim Eves
74efbbd517
Minor typos and fixes
2018-10-05 11:15:45 +07:00
Tim Eves
9a3e839907
Refactor out internal class backing opaque API objects
...
Move classes to separate compilation units so the can be used in the
state object
2018-10-02 14:40:31 +07:00
Tim Eves
9aa6e7a70d
Add meson.build scripts
...
This is a temporary set of build scripts for the keyboard processor
work, until a cross platform build system is settled on for the whole
keyman project.
2018-10-02 11:48:57 +07:00
Tim Eves
0fd8a7d18b
API changes
...
Move VKEY action types to end of enumeration as these will go away
Kill the km_kb_state_flag as these are un-needed.
Add the dump state json function for debug and ide.
Turn engine attrs into a struct instead of an array.
2018-10-02 11:37:42 +07:00
Tim Eves
525d142acb
Implement scoping on kn_kbp_options and remove redundant calls on state
2018-10-02 11:35:00 +07:00
Tim Eves
ad3a6971dc
Documentation edits and C++14 compatibility fix
2018-10-02 11:29:39 +07:00
Tim Eves
982aa834ce
Implement km_kbp_keyboard API and re-organise documentation.
2018-10-01 17:27:48 +07:00
Tim Eves
ee01de937d
Update documentation for km_kbp_options API
...
And a couple of minior tidy ups for the union data structures and fixes
to bring implementation and docs into alignment.
2018-10-01 14:32:41 +07:00
Tim Eves
ec54b76542
Implement km_kbp_option_set API
...
Add json export function
2018-09-28 19:05:41 +07:00
Tim Eves
df896e11a3
Add json pretty printer for json export functions in km_kbp API
2018-09-28 19:04:11 +07:00
Tim Eves
e9046d9d4d
Add unit test from graphite for utfcodec.hpp
2018-09-28 18:33:57 +07:00
Tim Eves
121e5a5370
Constness fixes for kbp_context API
2018-09-28 09:24:18 +07:00
Tim Eves
0b5c365d1c
Change signature of km_kbp_option_set_to_json to return status
...
Also minor constness fixes.
2018-09-28 09:21:41 +07:00
Tim Eves
7ac2bb5afc
Initial commit of keyboardprocessor API
...
Header's and start of null keyboard processor for testing.
2018-09-27 15:35:16 +07:00