40 void* context_object) {
43 [context_object, handler](
auto id,
auto type,
auto value) {
44 handler(context_object,
id, type, value);
68 deployer.
RunTask(
"clean_old_log_files");
69 if (!deployer.
RunTask(
"installation_update")) {
79 if (!deployer.
RunTask(
"detect_modifications", args)) {
82 LOG(INFO) <<
"changes detected; starting maintenance.";
115 return Bool(deployer.
RunTask(
"prebuild_all_schemas"));
120 return Bool(deployer.
RunTask(
"installation_update") &&
121 deployer.
RunTask(
"workspace_update") &&
122 deployer.
RunTask(
"user_dict_upgrade") &&
123 deployer.
RunTask(
"cleanup_trash"));
132 const char* version_key) {
134 TaskInitializer args(make_pair<string, string>(file_name, version_key));
135 return Bool(deployer.
RunTask(
"config_file_update", args));
177 return Bool(session->ProcessKey(
KeyEvent(keycode, mask)));
184 return Bool(session->CommitComposition());
191 session->ClearComposition();
197 dest->
text =
new char[src->text().length() + 1];
198 std::strcpy(dest->
text, src->text().c_str());
199 string comment(src->comment());
200 if (!comment.empty()) {
201 dest->
comment =
new char[comment.length() + 1];
202 std::strcpy(dest->
comment, comment.c_str());
211 if (!context || context->data_size <= 0)
217 Context* ctx = session->context();
222 context->composition.length = preedit.
text.length();
223 context->composition.preedit =
new char[preedit.
text.length() + 1];
224 std::strcpy(context->composition.preedit, preedit.
text.c_str());
225 context->composition.cursor_pos = preedit.
caret_pos;
226 context->composition.sel_start = preedit.
sel_start;
227 context->composition.sel_end = preedit.
sel_end;
230 if (!commit_text.empty()) {
231 context->commit_text_preview =
new char[commit_text.length() + 1];
232 std::strcpy(context->commit_text_preview, commit_text.c_str());
239 Schema* schema = session->schema();
243 int page_no = selected_index / page_size;
246 context->menu.page_size = page_size;
247 context->menu.page_no = page_no;
248 context->menu.is_last_page =
Bool(page->is_last_page);
249 context->menu.highlighted_candidate_index = selected_index % page_size;
251 context->menu.num_candidates = page->candidates.size();
253 context->menu.num_candidates = 0;
256 context->menu.candidates =
new RimeCandidate[page->candidates.size()];
259 rime_candidate_copy(dest, cand);
263 if (!select_keys.empty()) {
264 context->menu.select_keys =
new char[select_keys.length() + 1];
265 std::strcpy(context->menu.select_keys, select_keys.c_str());
269 config->
GetList(
"menu/alternative_select_labels");
270 if (select_labels && (
size_t)page_size <= select_labels->size()) {
271 context->select_labels =
new char*[page_size];
272 for (
size_t i = 0; i < (size_t)page_size; ++i) {
274 string label = value->str();
275 context->select_labels[i] =
new char[label.length() + 1];
276 std::strcpy(context->select_labels[i], label.c_str());
286 if (!context || context->data_size <= 0)
288 delete[] context->composition.preedit;
289 for (
int i = 0; i < context->menu.num_candidates; ++i) {
290 delete[] context->menu.candidates[i].text;
291 delete[] context->menu.candidates[i].comment;
293 delete[] context->menu.candidates;
294 delete[] context->menu.select_keys;
296 context->select_labels) {
297 for (
int i = 0; i < context->menu.page_size; ++i) {
298 delete[] context->select_labels[i];
300 delete[] context->select_labels;
303 delete[] context->commit_text_preview;
317 const string& commit_text(session->commit_text());
318 if (!commit_text.empty()) {
319 commit->
text =
new char[commit_text.length() + 1];
320 std::strcpy(commit->
text, commit_text.c_str());
321 session->ResetCommitText();
330 delete[] commit->
text;
337 if (!status || status->data_size <= 0)
343 Schema* schema = session->schema();
344 Context* ctx = session->context();
347 status->schema_id =
new char[schema->
schema_id().length() + 1];
348 std::strcpy(status->schema_id, schema->
schema_id().c_str());
349 status->schema_name =
new char[schema->
schema_name().length() + 1];
350 std::strcpy(status->schema_name, schema->
schema_name().c_str());
362 if (!status || status->data_size <= 0)
364 delete[] status->schema_id;
365 delete[] status->schema_name;
381 Context* ctx = session->context();
386 iterator->
index = index - 1;
400 Menu* menu =
reinterpret_cast<Menu*
>(iterator->
ptr);
407 rime_candidate_copy(&iterator->
candidate, cand);
429 Context* ctx = session->context();
436 const char* option) {
440 Context* ctx = session->context();
452 Context* ctx = session->context();
461 size_t buffer_size) {
465 Context* ctx = session->context();
469 if (str_value.empty())
471 strncpy(value, str_value.c_str(), buffer_size);
485 if (!schema_list || schema_list->size() == 0)
488 for (
size_t i = 0; i < schema_list->size(); ++i) {
493 if (!schema_property)
495 const string& schema_id(schema_property->str());
497 x.
schema_id =
new char[schema_id.length() + 1];
505 if (output->
size == 0) {
506 delete[] output->
list;
516 if (schema_list->
list) {
517 for (
size_t i = 0; i < schema_list->
size; ++i) {
521 delete[] schema_list->
list;
523 schema_list->
size = 0;
524 schema_list->
list = NULL;
529 size_t buffer_size) {
533 Schema* schema = session->schema();
536 strncpy(schema_id, schema->
schema_id().c_str(), buffer_size);
541 const char* schema_id) {
547 session->ApplySchema(
new Schema(schema_id));
553static Bool open_config_in_component(
const char* config_component,
554 const char* config_id,
556 if (!config_id || !config)
561 Config* c = cc->Create(config_id);
564 config->
ptr = (
void*)c;
569 return open_config_in_component(
"schema", schema_id, config);
573 return open_config_in_component(
"config", config_id, config);
578 return open_config_in_component(
"user_config", config_id, config);
582 if (!config || !config->
ptr)
593 if (!config || !key || !value)
596 bool bool_value =
false;
597 if (c->
GetBool(key, &bool_value)) {
598 *value =
Bool(bool_value);
607 if (!config || !key || !value)
616 if (!config || !key || !value)
625 size_t buffer_size) {
626 if (!config || !key || !value)
633 std::strncpy(value, str_value.c_str(), buffer_size);
647 return v->str().c_str();
653 const char* signer) {
654 if (!config || !signer)
659 return Bool(sig.
Sign(c, &deployer));
670 :
iter(container.begin()),
end(container.
end()) {
671 if (root_path.empty() || root_path ==
"/") {
674 prefix = root_path +
"/";
682 if (!iterator || !config || !key)
684 iterator->
list = NULL;
685 iterator->
map = NULL;
686 iterator->
index = -1;
687 iterator->
key = NULL;
688 iterator->
path = NULL;
702 if (!iterator || !config || !key)
704 iterator->
list = NULL;
705 iterator->
map = NULL;
706 iterator->
index = -1;
707 iterator->
key = NULL;
708 iterator->
path = NULL;
720 if (!iterator->
list && !iterator->
map)
722 if (iterator->
list) {
727 if (++iterator->
index > 0)
731 std::ostringstream key;
732 key <<
"@" << iterator->
index;
735 iterator->
key = p->
key.c_str();
744 if (++iterator->
index > 0)
750 iterator->
key = p->
key.c_str();
769 const char* key_sequence) {
770 LOG(INFO) <<
"simulate key sequence: " << key_sequence;
775 if (!keys.
Parse(key_sequence)) {
776 LOG(ERROR) <<
"error parsing input: '" << key_sequence <<
"'";
780 session->ProcessKey(key);
794 static string string_path;
796 return string_path.c_str();
801 static string string_path;
803 return string_path.c_str();
808 static string string_path;
810 return string_path.c_str();
815 static string string_path;
817 return string_path.c_str();
822 static string string_path;
823 string_path = deployer.
sync_dir.string();
824 return string_path.c_str();
829 return deployer.
user_id.c_str();
835 strncpy(dir, string_path.c_str(), buffer_size);
839 if (!config || config->
ptr)
847 if (!config || !yaml) {
854 std::istringstream iss(yaml);
861 if (!config || !key || !value)
885 item = v->GetItem(
"");
927 if (!config || !key || !value)
976 bool (
Context::*verb)(
size_t index)) {
980 Context* ctx = session->context();
983 return (ctx->*verb)(index);
986static bool do_with_candidate_on_current_page(
989 bool (
Context::*verb)(
size_t index)) {
993 Context* ctx = session->context();
996 Schema* schema = session->schema();
999 size_t page_size = (size_t)schema->
page_size();
1000 if (index >= page_size)
1003 size_t page_start = seg.selected_index / page_size * page_size;
1004 return (ctx->*verb)(page_start + index);
1011 Context* ctx = session->context();
1014 Schema* schema = session->schema();
1017 size_t page_size = (size_t)schema->
page_size();
1019 size_t current_index = seg.selected_index;
1021 backward ? (current_index <= page_size ? 0 : current_index - page_size)
1022 : (current_index + page_size);
1023 DLOG(INFO) <<
"current selection: " << current_index <<
", flipping "
1024 << (backward ?
"backward" :
"forward") <<
", new selection "
1026 seg.tags.insert(
"paging");
1036 return (
Bool)do_with_candidate_on_current_page(session_id, index,
1047 return (
Bool)do_with_candidate_on_current_page(session_id, index,
1058 return (
Bool)do_with_candidate_on_current_page(session_id, index,
1066 Context* ctx = session->context();
1069 return ctx->
input().c_str();
1076 Context* ctx = session->context();
1087 Context* ctx = session->context();
1093static void RimeSetCaretPos(
RimeSessionId session_id,
size_t caret_pos) {
1097 Context* ctx = session->context();
1104 const char* option_name,
1109 return {
nullptr, 0};
1110 Config* config = session->schema()->config();
1112 return {
nullptr, 0};
1114 StringSlice label = switches.GetStateLabel(option_name, state, abbreviated);
1118static const char* RimeGetStateLabel(
RimeSessionId session_id,
1119 const char* option_name,
1121 return RimeGetStateLabelAbbreviated(session_id, option_name, state,
False)
1134 if (!s_api.data_size) {
1206 s_api.get_input = &RimeGetInput;
1207 s_api.get_caret_pos = &RimeGetCaretPos;
1210 s_api.set_caret_pos = &RimeSetCaretPos;
1218 s_api.commit_proto =
nullptr;
1219 s_api.context_proto =
nullptr;
1220 s_api.status_proto =
nullptr;
1221 s_api.get_state_label = &RimeGetStateLabel;
1224 s_api.get_state_label_abbreviated = &RimeGetStateLabelAbbreviated;
1231 s_api.highlight_candidate = &RimeHighlightCandidate;
1232 s_api.highlight_candidate_on_current_page =
1233 &RimeHighlightCandidateOnCurrentPage;
1234 s_api.change_page = &RimeChangePage;
struct rime_candidate_list_iterator_t RimeCandidateListIterator
#define RIME_PROVIDED(p, member)
Definition rime_api.h:74
struct rime_schema_list_item_t RimeSchemaListItem
#define False
Definition rime_api.h:50
uintptr_t RimeSessionId
Definition rime_api.h:57
#define RIME_STRUCT_INIT(Type, var)
Definition rime_api.h:60
#define RIME_DEPRECATED
Definition rime_api.h:38
struct rime_string_slice_t RimeStringSlice
struct rime_schema_list_t RimeSchemaList
struct rime_candidate_t RimeCandidate
struct rime_config_iterator_t RimeConfigIterator
struct rime_config_t RimeConfig
#define RIME_STRUCT_HAS_MEMBER(var, member)
Definition rime_api.h:62
#define Bool
Definition rime_api.h:46
void(*) RimeNotificationHandler(void *context_object, RimeSessionId session_id, const char *message_type, const char *message_value)
Definition rime_api.h:231
#define RIME_API
Definition rime_api.h:34
#define RIME_FLAVORED(name)
Definition rime_api.h:42
#define RIME_STRUCT_CLEAR(var)
Definition rime_api.h:65
struct rime_commit_t RimeCommit
Should be initialized by calling RIME_STRUCT_INIT(Type, var);.
#define True
Definition rime_api.h:54
struct rime_traits_t RimeTraits
Rime traits structure.
void RimeGetSyncDirSecure(char *dir, size_t buffer_size)
Definition rime_api.cc:70
void RimeGetSharedDataDirSecure(char *dir, size_t buffer_size)
Definition rime_api.cc:49
void rime_declare_module_dependencies()
Definition rime_api.cc:30
void RimeGetUserDataDirSecure(char *dir, size_t buffer_size)
Definition rime_api.cc:54
const char * RimeGetVersion()
Definition rime_api.cc:75
void RimeGetStagingDirSecure(char *dir, size_t buffer_size)
Definition rime_api.cc:65
RIME_API RimeModule * RimeFindModule(const char *module_name)
Definition rime_api.cc:45
void RimeGetPrebuiltDataDirSecure(char *dir, size_t buffer_size)
Definition rime_api.cc:59
RIME_API Bool RimeRegisterModule(RimeModule *module)
Definition rime_api.cc:38
RIME_DEPRECATED const char * RimeGetPrebuiltDataDir()
Definition rime_api_impl.h:806
RIME_DEPRECATED const char * RimeGetStagingDir()
Definition rime_api_impl.h:813
RIME_DEPRECATED void RimeGetUserDataSyncDir(char *dir, size_t buffer_size)
Definition rime_api_impl.h:832
#define DLOG(severity)
Definition no_logging.h:53
#define LOG(severity)
Definition no_logging.h:31
RIME_DEPRECATED Bool RimeConfigGetDouble(RimeConfig *config, const char *key, double *value)
Definition rime_api_impl.h:613
RIME_DEPRECATED Bool RimeDestroySession(RimeSessionId session_id)
Definition rime_api_impl.h:157
RIME_DEPRECATED Bool RimeFreeContext(RIME_FLAVORED(RimeContext) *context)
Definition rime_api_impl.h:285
RIME_DEPRECATED Bool RimeCommitComposition(RimeSessionId session_id)
return True if there is unread commit text
Definition rime_api_impl.h:180
RIME_DEPRECATED Bool RimeSelectCandidateOnCurrentPage(RimeSessionId session_id, size_t index)
Definition rime_api_impl.h:1045
RIME_DEPRECATED const char * RimeGetSyncDir(void)
Definition rime_api_impl.h:820
RIME_DEPRECATED Bool RimeSelectSchema(RimeSessionId session_id, const char *schema_id)
Definition rime_api_impl.h:540
RIME_DEPRECATED Bool RimeSelectCandidate(RimeSessionId session_id, size_t index)
Definition rime_api_impl.h:1040
RIME_DEPRECATED Bool RimeCandidateListBegin(RimeSessionId session_id, RimeCandidateListIterator *iterator)
Definition rime_api_impl.h:391
RIME_DEPRECATED Bool RimeGetStatus(RimeSessionId session_id, RIME_FLAVORED(RimeStatus) *status)
Definition rime_api_impl.h:335
RIME_DEPRECATED Bool RimeDeployConfigFile(const char *file_name, const char *version_key)
Definition rime_api_impl.h:131
RIME_DEPRECATED Bool RimeCandidateListNext(RimeCandidateListIterator *iterator)
Definition rime_api_impl.h:397
RIME_DEPRECATED Bool RimeSyncUserData(void)
Definition rime_api_impl.h:138
RIME_DEPRECATED void RimeDeployerInitialize(RimeTraits *traits)
Definition rime_api_impl.h:107
RIME_DEPRECATED void RimeSetup(RimeTraits *traits)
Call this function before accessing any other API.
Definition rime_api_impl.h:25
RIME_DEPRECATED Bool RimeFreeStatus(RIME_FLAVORED(RimeStatus) *status)
Definition rime_api_impl.h:361
RIME_DEPRECATED Bool RimeConfigGetItem(RimeConfig *config, const char *key, RimeConfig *value)
Definition rime_api_impl.h:858
RIME_DEPRECATED const char * RimeGetUserId(void)
Definition rime_api_impl.h:827
RIME_DEPRECATED Bool RimeConfigCreateMap(RimeConfig *config, const char *key)
Definition rime_api_impl.h:953
RIME_DEPRECATED Bool RimeFreeCommit(RimeCommit *commit)
Definition rime_api_impl.h:327
RIME_DEPRECATED Bool RimeDeploySchema(const char *schema_file)
Definition rime_api_impl.h:126
RIME_DEPRECATED Bool RimePrebuildAllSchemas(void)
Definition rime_api_impl.h:113
RIME_DEPRECATED Bool RimeDeleteCandidate(RimeSessionId session_id, size_t index)
Definition rime_api_impl.h:1051
RIME_DEPRECATED void RimeCleanupAllSessions(void)
Definition rime_api_impl.h:165
RIME_DEPRECATED Bool RimeStartMaintenanceOnWorkspaceChange(void)
Definition rime_api_impl.h:91
RIME_DEPRECATED Bool RimeConfigSetBool(RimeConfig *config, const char *key, Bool value)
Definition rime_api_impl.h:891
RIME_DEPRECATED size_t RimeConfigListSize(RimeConfig *config, const char *key)
Definition rime_api_impl.h:962
RIME_DEPRECATED Bool RimeCandidateListFromIndex(RimeSessionId session_id, RimeCandidateListIterator *iterator, int index)
Definition rime_api_impl.h:373
RIME_DEPRECATED Bool RimeConfigBeginList(RimeConfigIterator *iterator, RimeConfig *config, const char *key)
Definition rime_api_impl.h:679
RIME_DEPRECATED Bool RimeConfigInit(RimeConfig *config)
Definition rime_api_impl.h:838
RIME_DEPRECATED Bool RimeSetInput(RimeSessionId session_id, const char *input)
Definition rime_api_impl.h:1072
RIME_DEPRECATED void RimeFinalize(void)
Definition rime_api_impl.h:58
RIME_DEPRECATED Bool RimeSimulateKeySequence(RimeSessionId session_id, const char *key_sequence)
Definition rime_api_impl.h:768
RIME_DEPRECATED Bool RimeIsMaintenancing(void)
Definition rime_api_impl.h:95
RIME_DEPRECATED Bool RimeProcessKey(RimeSessionId session_id, int keycode, int mask)
Definition rime_api_impl.h:171
RIME_DEPRECATED Bool RimeGetProperty(RimeSessionId session_id, const char *prop, char *value, size_t buffer_size)
Definition rime_api_impl.h:458
RIME_DEPRECATED Bool RimeGetCommit(RimeSessionId session_id, RimeCommit *commit)
Definition rime_api_impl.h:309
RIME_DEPRECATED Bool RimeConfigUpdateSignature(RimeConfig *config, const char *signer)
Definition rime_api_impl.h:652
RIME_DEPRECATED Bool RimeDeleteCandidateOnCurrentPage(RimeSessionId session_id, size_t index)
Definition rime_api_impl.h:1056
RIME_DEPRECATED void RimeSetOption(RimeSessionId session_id, const char *option, Bool value)
Definition rime_api_impl.h:423
RIME_DEPRECATED Bool RimeConfigLoadString(RimeConfig *config, const char *yaml)
Definition rime_api_impl.h:845
RIME_DEPRECATED Bool RimeGetContext(RimeSessionId session_id, RIME_FLAVORED(RimeContext) *context)
Definition rime_api_impl.h:209
RIME_DEPRECATED Bool RimeGetSchemaList(RimeSchemaList *schema_list)
Definition rime_api_impl.h:475
RIME_DEPRECATED Bool RimeConfigBeginMap(RimeConfigIterator *iterator, RimeConfig *config, const char *key)
Definition rime_api_impl.h:699
RIME_DEPRECATED void RimeFreeSchemaList(RimeSchemaList *schema_list)
Definition rime_api_impl.h:513
RIME_DEPRECATED void RimeConfigEnd(RimeConfigIterator *iterator)
Definition rime_api_impl.h:757
RIME_DEPRECATED Bool RimeDeployWorkspace(void)
Definition rime_api_impl.h:118
RIME_DEPRECATED Bool RimeConfigGetString(RimeConfig *config, const char *key, char *value, size_t buffer_size)
Definition rime_api_impl.h:622
RIME_DEPRECATED Bool RimeSchemaOpen(const char *schema_id, RimeConfig *config)
Definition rime_api_impl.h:568
RIME_DEPRECATED Bool RimeConfigGetBool(RimeConfig *config, const char *key, Bool *value)
Definition rime_api_impl.h:590
RIME_DEPRECATED void RimeClearComposition(RimeSessionId session_id)
Definition rime_api_impl.h:187
RIME_DEPRECATED Bool RimeConfigClear(RimeConfig *config, const char *key)
Definition rime_api_impl.h:935
RIME_DEPRECATED void RimeInitialize(RimeTraits *traits)
Definition rime_api_impl.h:51
RIME_DEPRECATED void RimeCandidateListEnd(RimeCandidateListIterator *iterator)
Definition rime_api_impl.h:413
RIME_DEPRECATED const char * RimeGetUserDataDir(void)
Definition rime_api_impl.h:799
RIME_DEPRECATED void RimeJoinMaintenanceThread(void)
Definition rime_api_impl.h:100
RIME_DEPRECATED Bool RimeConfigSetInt(RimeConfig *config, const char *key, int value)
Definition rime_api_impl.h:902
RIME_DEPRECATED Bool RimeConfigOpen(const char *config_id, RimeConfig *config)
Definition rime_api_impl.h:572
RIME_DEPRECATED Bool RimeConfigGetInt(RimeConfig *config, const char *key, int *value)
Definition rime_api_impl.h:604
RIME_DEPRECATED Bool RimeConfigSetString(RimeConfig *config, const char *key, const char *value)
Definition rime_api_impl.h:924
RIME_DEPRECATED const char * RimeConfigGetCString(RimeConfig *config, const char *key)
Definition rime_api_impl.h:639
RIME_DEPRECATED RimeSessionId RimeCreateSession(void)
Definition rime_api_impl.h:149
RIME_DEPRECATED Bool RimeConfigNext(RimeConfigIterator *iterator)
Definition rime_api_impl.h:719
RIME_DEPRECATED Bool RimeStartMaintenance(Bool full_check)
Definition rime_api_impl.h:65
RIME_DEPRECATED Bool RimeConfigCreateList(RimeConfig *config, const char *key)
Definition rime_api_impl.h:944
RIME_DEPRECATED void RimeCleanupStaleSessions(void)
Definition rime_api_impl.h:161
RIME_DEPRECATED Bool RimeConfigSetDouble(RimeConfig *config, const char *key, double value)
Definition rime_api_impl.h:913
RIME_DEPRECATED Bool RimeFindSession(RimeSessionId session_id)
Definition rime_api_impl.h:153
RIME_DEPRECATED Bool RimeGetOption(RimeSessionId session_id, const char *option)
Definition rime_api_impl.h:435
RIME_DEPRECATED Bool RimeRunTask(const char *task_name)
Run a registered task.
Definition rime_api_impl.h:785
RIME_DEPRECATED Bool RimeUserConfigOpen(const char *config_id, RimeConfig *config)
Definition rime_api_impl.h:576
RIME_DEPRECATED Bool RimeConfigSetItem(RimeConfig *config, const char *key, RimeConfig *value)
Definition rime_api_impl.h:874
RIME_DEPRECATED const char * RimeGetSharedDataDir(void)
Definition rime_api_impl.h:792
RIME_DEPRECATED void RimeSetProperty(RimeSessionId session_id, const char *prop, const char *value)
Definition rime_api_impl.h:446
RIME_DEPRECATED Bool RimeGetCurrentSchema(RimeSessionId session_id, char *schema_id, size_t buffer_size)
Definition rime_api_impl.h:527
RIME_DEPRECATED void RimeSetNotificationHandler(RimeNotificationHandler handler, void *context_object)
Receive notifications.
Definition rime_api_impl.h:39
RIME_DEPRECATED Bool RimeConfigClose(RimeConfig *config)
Definition rime_api_impl.h:581
RIME_DLL void LoadModules(const char *module_names[])
Definition setup.cc:33
std::shared_ptr< T > an
Definition common.h:60
RIME_DLL const char * kDefaultModules[]
RIME_DLL const char * kDeployerModules[]
RIME_DLL void SetupLogging(const char *app_name, int min_log_level, const char *log_dir)
Definition setup.cc:68
RIME_DLL void SetupDeployer(RimeTraits *traits)
Definition setup.cc:42
an< X > As(const an< Y > &ptr)
Definition common.h:67
std::unique_ptr< T > the
Definition common.h:58
std::any TaskInitializer
Definition deployer.h:22
an< T > New(Args &&... args)
Definition common.h:77
static Component * Require(const string &name)
Definition component.h:29
Definition composition.h:14
size_t caret_pos
Definition composition.h:16
size_t sel_start
Definition composition.h:17
string text
Definition composition.h:15
size_t sel_end
Definition composition.h:18
Definition config_component.h:21
RIME_DLL bool GetString(const string &path, string *value)
Definition config_component.cc:84
RIME_DLL bool GetBool(const string &path, bool *value)
Definition config_component.cc:66
RIME_DLL an< ConfigList > GetList(const string &path)
Definition config_component.cc:106
RIME_DLL bool SetItem(const string &path, an< ConfigItem > item)
Definition config_component.cc:136
RIME_DLL bool SetString(const string &path, const char *value)
Definition config_component.cc:128
bool SetBool(const string &path, bool value)
Definition config_component.cc:116
RIME_DLL bool SetInt(const string &path, int value)
Definition config_component.cc:120
RIME_DLL an< ConfigMap > GetMap(const string &path)
Definition config_component.cc:111
bool LoadFromStream(std::istream &stream)
Definition config_component.cc:30
an< ConfigItem > GetItem(const string &path)
Definition config_component.cc:96
RIME_DLL bool GetDouble(const string &path, double *value)
Definition config_component.cc:78
bool SetDouble(const string &path, double value)
Definition config_component.cc:124
an< ConfigValue > GetValue(const string &path)
Definition config_component.cc:101
RIME_DLL bool GetInt(const string &path, int *value)
Definition config_component.cc:72
size_t caret_pos() const
Definition context.h:67
bool DeleteCandidate(size_t index)
Definition context.cc:151
const string & input() const
Definition context.h:64
void set_caret_pos(size_t caret_pos)
Definition context.cc:268
string GetCommitText() const
Definition context.cc:28
void set_option(const string &name, bool value)
Definition context.cc:286
bool HasMenu() const
Definition context.cc:52
string get_property(const string &name) const
Definition context.cc:305
bool Highlight(size_t index)
Definition context.cc:132
Composition & composition()
Definition context.h:70
Preedit GetPreedit() const
Definition context.cc:44
void set_input(const string &value)
Definition context.cc:280
bool Select(size_t index)
Definition context.cc:118
void set_property(const string &name, const string &value)
Definition context.cc:300
bool get_option(const string &name) const
Definition context.cc:292
bool IsComposing() const
Definition context.cc:48
path shared_data_dir
Definition deployer.h:35
path user_data_dir
Definition deployer.h:36
string user_id
Definition deployer.h:40
path prebuilt_data_dir
Definition deployer.h:37
bool ScheduleTask(const string &task_name, TaskInitializer arg=TaskInitializer())
Definition deployer.cc:42
bool StartMaintenance()
Definition deployer.cc:126
path user_data_sync_dir() const
Definition deployer.cc:150
bool RunTask(const string &task_name, TaskInitializer arg=TaskInitializer())
Definition deployer.cc:28
bool IsMaintenanceMode()
Definition deployer.cc:137
void JoinMaintenanceThread()
Definition deployer.cc:146
path staging_dir
Definition deployer.h:38
path sync_dir
Definition deployer.h:39
Definition key_event.h:17
Definition key_event.h:59
RIME_DLL bool Parse(const string &repr)
Definition key_event.cc:111
an< Candidate > GetCandidateAt(size_t index)
Definition menu.cc:60
void UnloadModules()
Definition module.cc:39
static ModuleManager & instance()
Definition module.cc:48
static RIME_DLL Registry & instance()
Definition registry.cc:47
void Clear()
Definition registry.cc:31
Schema()
Definition schema.cc:12
const string & select_keys() const
Definition schema.h:30
Config * config() const
Definition schema.h:25
const string & schema_id() const
Definition schema.h:22
const string & schema_name() const
Definition schema.h:23
int page_size() const
Definition schema.h:28
Definition segmentation.h:18
an< Menu > menu
Definition segmentation.h:30
size_t selected_index
Definition segmentation.h:31
static Service & instance()
Definition service.cc:196
SessionId CreateSession()
Definition service.cc:85
void StopService()
Definition service.cc:80
void SetNotificationHandler(const NotificationHandler &handler)
Definition service.cc:149
void StartService()
Definition service.cc:76
Deployer & deployer()
Definition service.h:84
void ClearNotificationHandler()
Definition service.cc:153
void CleanupAllSessions()
Definition service.cc:145
void CleanupStaleSessions()
Definition service.cc:128
Definition signature.h:15
bool Sign(Config *config, Deployer *deployer)
Definition signature.cc:15
size_t length
Definition switches.h:15
const char * str
Definition switches.h:14
const char * log_dir
Directory of log files.
Definition rime_api.h:112
int min_log_level
Minimal level of logged messages.
Definition rime_api.h:107
const char ** modules
A list of modules to load before initializing.
Definition rime_api.h:101
const char * app_name
Pass a C-string constant in the format "rime.x" where 'x' is the name of your application.
Definition rime_api.h:98
void * reserved
Definition rime_api.h:130
char * comment
Definition rime_api.h:129
char * text
Definition rime_api.h:128
char * text
Definition rime_api.h:149
int index
Definition rime_api.h:184
RimeCandidate candidate
Definition rime_api.h:185
void * ptr
Definition rime_api.h:183
void * ptr
Definition rime_api.h:189
int index
Definition rime_api.h:195
void * list
Definition rime_api.h:193
const char * path
Definition rime_api.h:197
const char * key
Definition rime_api.h:196
void * map
Definition rime_api.h:194
char * schema_id
Definition rime_api.h:201
void * reserved
Definition rime_api.h:203
char * name
Definition rime_api.h:202
RimeSchemaListItem * list
Definition rime_api.h:208
size_t size
Definition rime_api.h:207
Definition rime_api_impl.h:663
T::Iterator end
Definition rime_api_impl.h:665
T::Iterator iter
Definition rime_api_impl.h:664
RimeConfigIteratorImpl(T &container, const string &root_path)
Definition rime_api_impl.h:669
string path
Definition rime_api_impl.h:668
string key
Definition rime_api_impl.h:667
string prefix
Definition rime_api_impl.h:666