13 const char* config_id,
14 const char* generator_id) {
35 auto custom_settings =
reinterpret_cast<CustomSettings*
>(settings);
36 return custom_settings->
Customize(key, item);
43 auto custom_settings =
reinterpret_cast<CustomSettings*
>(settings);
44 return custom_settings->
Customize(key, item);
51 auto custom_settings =
reinterpret_cast<CustomSettings*
>(settings);
52 return custom_settings->
Customize(key, item);
59 auto custom_settings =
reinterpret_cast<CustomSettings*
>(settings);
60 return custom_settings->
Customize(key, item);
69 item = v->GetItem(
"");
72 auto custom_settings =
reinterpret_cast<CustomSettings*
>(settings);
73 return custom_settings->
Customize(key, item);
97static Bool rime_levers_get_available_schema_list(
103 if (ss->available().empty()) {
107 for (
const auto& info : ss->available()) {
108 auto& item(list->list[list->size]);
109 item.schema_id =
const_cast<char*
>(info.schema_id.c_str());
110 item.name =
const_cast<char*
>(info.name.c_str());
111 item.reserved =
const_cast<SchemaInfo*
>(&info);
122 if (ss->selection().empty()) {
126 for (
const string& schema_id : ss->selection()) {
127 auto& item(list->list[list->size]);
128 item.schema_id =
const_cast<char*
>(schema_id.c_str());
130 item.reserved = NULL;
136static void rime_levers_schema_list_destroy(
RimeSchemaList* list) {
142static const char* rime_levers_get_schema_id(
RimeSchemaInfo* info) {
143 auto si =
reinterpret_cast<SchemaInfo*
>(info);
144 return si && !si->
schema_id.empty() ? si->schema_id.c_str() : NULL;
147static const char* rime_levers_get_schema_name(
RimeSchemaInfo* info) {
148 auto si =
reinterpret_cast<SchemaInfo*
>(info);
149 return si && !si->
name.empty() ? si->name.c_str() : NULL;
152static const char* rime_levers_get_schema_version(
RimeSchemaInfo* info) {
153 auto si =
reinterpret_cast<SchemaInfo*
>(info);
154 return si && !si->
version.empty() ? si->version.c_str() : NULL;
156static const char* rime_levers_get_schema_author(
RimeSchemaInfo* info) {
157 auto si =
reinterpret_cast<SchemaInfo*
>(info);
158 return si && !si->
author.empty() ? si->author.c_str() : NULL;
161static const char* rime_levers_get_schema_description(
RimeSchemaInfo* info) {
162 auto si =
reinterpret_cast<SchemaInfo*
>(info);
163 return si && !si->
description.empty() ? si->description.c_str() : NULL;
166static const char* rime_levers_get_schema_file_path(
RimeSchemaInfo* info) {
167 auto si =
reinterpret_cast<SchemaInfo*
>(info);
168 return si && !si->
file_path.empty() ? si->file_path.c_str() : NULL;
172 const char* schema_id_list[],
176 for (
int i = 0; i < count; ++i) {
177 selection.push_back(schema_id_list[i]);
179 return ss->
Select(selection);
184 return !ss->
hotkeys().empty() ? ss->hotkeys().c_str() : NULL;
188 const char* hotkeys) {
190 return Bool(ss->SetHotkeys(hotkeys));
196 mgr.GetUserDictList(list);
214 if (!list || iter->
i >= list->size()) {
217 return (*list)[iter->
i++].c_str();
220static Bool rime_levers_backup_user_dict(
const char* dict_name) {
222 return Bool(mgr.Backup(dict_name));
225static Bool rime_levers_restore_user_dict(
const char* snapshot_file) {
227 return Bool(mgr.Restore(
path(snapshot_file)));
230static int rime_levers_export_user_dict(
const char* dict_name,
231 const char* text_file) {
233 return mgr.Export(dict_name,
path(text_file));
236static int rime_levers_import_user_dict(
const char* dict_name,
237 const char* text_file) {
239 return mgr.Import(dict_name,
path(text_file));
244 if (!s_api.data_size) {
246 s_api.custom_settings_init = rime_levers_custom_settings_init;
247 s_api.custom_settings_destroy = rime_levers_custom_settings_destroy;
248 s_api.load_settings = rime_levers_load_settings;
249 s_api.save_settings = rime_levers_save_settings;
250 s_api.customize_bool = rime_levers_customize_bool;
251 s_api.customize_int = rime_levers_customize_int;
252 s_api.customize_double = rime_levers_customize_double;
253 s_api.customize_string = rime_levers_customize_string;
254 s_api.is_first_run = rime_levers_is_first_run;
255 s_api.settings_is_modified = rime_levers_settings_is_modified;
256 s_api.settings_get_config = rime_levers_settings_get_config;
257 s_api.switcher_settings_init = rime_levers_switcher_settings_init;
258 s_api.get_available_schema_list = rime_levers_get_available_schema_list;
259 s_api.get_selected_schema_list = rime_levers_get_selected_schema_list;
260 s_api.schema_list_destroy = rime_levers_schema_list_destroy;
261 s_api.get_schema_id = rime_levers_get_schema_id;
262 s_api.get_schema_name = rime_levers_get_schema_name;
263 s_api.get_schema_version = rime_levers_get_schema_version;
264 s_api.get_schema_author = rime_levers_get_schema_author;
265 s_api.get_schema_description = rime_levers_get_schema_description;
266 s_api.get_schema_file_path = rime_levers_get_schema_file_path;
267 s_api.select_schemas = rime_levers_select_schemas;
268 s_api.get_hotkeys = rime_levers_get_hotkeys;
269 s_api.set_hotkeys = rime_levers_set_hotkeys;
270 s_api.user_dict_iterator_init = rime_levers_user_dict_iterator_init;
271 s_api.user_dict_iterator_destroy = rime_levers_user_dict_iterator_destroy;
272 s_api.next_user_dict = rime_levers_next_user_dict;
273 s_api.backup_user_dict = rime_levers_backup_user_dict;
274 s_api.restore_user_dict = rime_levers_restore_user_dict;
275 s_api.export_user_dict = rime_levers_export_user_dict;
276 s_api.import_user_dict = rime_levers_import_user_dict;
277 s_api.customize_item = rime_levers_customize_item;
struct rime_schema_list_item_t RimeSchemaListItem
#define False
Definition rime_api.h:50
#define RIME_STRUCT_INIT(Type, var)
Definition rime_api.h:60
struct rime_custom_api_t RimeCustomApi
Extend the structure to publish custom data/functions in your specific module.
struct rime_schema_list_t RimeSchemaList
struct rime_config_t RimeConfig
#define Bool
Definition rime_api.h:46
#define RIME_FLAVORED(name)
Definition rime_api.h:42
#define True
Definition rime_api.h:54
std::shared_ptr< T > an
Definition common.h:60
vector< string > UserDictList
Definition user_dict_manager.h:17
an< T > New(Args &&... args)
Definition common.h:77
path()
Definition common.h:88
Definition config_component.h:21
Definition custom_settings.h:16
CustomSettings(Deployer *deployer, const string &config_id, const string &generator_id)
Definition custom_settings.cc:25
bool Customize(const string &key, const an< ConfigItem > &item)
Definition custom_settings.cc:73
Definition switcher_settings.h:15
string file_path
Definition switcher_settings.h:21
string name
Definition switcher_settings.h:17
string description
Definition switcher_settings.h:20
string schema_id
Definition switcher_settings.h:16
string author
Definition switcher_settings.h:19
string version
Definition switcher_settings.h:18
Definition switcher_settings.h:24
bool Select(Selection selection)
Definition switcher_settings.cc:33
vector< string > Selection
Definition switcher_settings.h:28
const string & hotkeys() const
Definition switcher_settings.h:37
SwitcherSettings(Deployer *deployer)
Definition switcher_settings.cc:18
Definition user_dict_manager.h:19
static Service & instance()
Definition service.cc:196
void * ptr
Definition rime_api.h:189
Definition rime_levers_api.h:16
Definition rime_levers_api.h:20
Definition rime_levers_api.h:24
Definition rime_levers_api.h:28
void * ptr
Definition rime_levers_api.h:29
size_t i
Definition rime_levers_api.h:30