summaryrefslogtreecommitdiff
path: root/anthy/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'anthy/input.h')
-rw-r--r--anthy/input.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/anthy/input.h b/anthy/input.h
new file mode 100644
index 0000000..6c2583d
--- /dev/null
+++ b/anthy/input.h
@@ -0,0 +1,136 @@
+/*
+ * Some comments are written in Japanese.
+ *
+ * Funded by IPA未踏ソフトウェア創造事業 2001
+ *
+ * Comments are in Japanese(EUC-JP)
+ * doc/ILIB 参照
+ */
+
+#ifndef INPUT_H_INCLUDE
+#define INPUT_H_INCLUDE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct anthy_input_context;
+
+extern int anthy_input_errno;
+#define AIE_NOMEM 1
+#define AIE_INVAL 2
+#define AIE_NOIMPL 3
+
+#define ANTHY_INPUT_ST_OFF 0 /* 無効状態 */ /* anthy agent does not use this state */
+#define ANTHY_INPUT_ST_NONE 1 /* 待機状態 */
+#define ANTHY_INPUT_ST_EDIT 2 /* 編集状態 */
+#define ANTHY_INPUT_ST_CONV 3 /* 変換状態 */
+#define ANTHY_INPUT_ST_CSEG 4 /* 文節伸縮状態 */
+
+#define ANTHY_INPUT_MAP_ALPHABET 0
+#define ANTHY_INPUT_MAP_WALPHABET 1
+#define ANTHY_INPUT_MAP_HIRAGANA 2
+#define ANTHY_INPUT_MAP_KATAKANA 3
+#define ANTHY_INPUT_MAP_HANKAKU_KANA 4
+
+#define ANTHY_INPUT_SF_NONE 0x00000000
+#define ANTHY_INPUT_SF_CURSOR 0x00000001
+#define ANTHY_INPUT_SF_ENUM 0x00000002
+#define ANTHY_INPUT_SF_ENUM_REVERSE 0x00000004
+#define ANTHY_INPUT_SF_EDITING 0x00000008
+#define ANTHY_INPUT_SF_PENDING 0x00000010
+#define ANTHY_INPUT_SF_FOLLOWING 0x00000020
+ /* This have been in public API!*/
+#define ANTHY_INPUT_SF_EDITTING 0x00000008
+
+struct anthy_input_config;
+struct anthy_input_context;
+
+/*
+ * anthy_input_get_preedit();
+ * anthy_input_free_preedit();
+ */
+struct anthy_input_preedit {
+ int state;
+
+ char* commit;
+ char* cut_buf;
+
+ struct anthy_input_segment* segment;
+ struct anthy_input_segment* cur_segment;
+};
+
+/*
+ * anthy_input_get_candidate();
+ * anthy_input_free_segment();
+ */
+struct anthy_input_segment {
+ char* str;
+ int cand_no;
+ int noconv_len;
+ int nr_cand;
+ int flag;
+
+ struct anthy_input_segment* next;
+};
+
+/* initialize ... */
+int anthy_input_init(void);
+
+/* context management*/
+void anthy_input_set_personality(const char *);
+struct anthy_input_context*
+anthy_input_create_context(struct anthy_input_config* cfg);
+void anthy_input_free_context(struct anthy_input_context* ictx);
+
+/* pure function command */
+void anthy_input_str(struct anthy_input_context* ictx, const char* str);
+void anthy_input_next_candidate(struct anthy_input_context* ictx);
+void anthy_input_prev_candidate(struct anthy_input_context* ictx);
+void anthy_input_quit(struct anthy_input_context* ictx);
+void anthy_input_erase_prev(struct anthy_input_context* ictx);
+void anthy_input_erase_next(struct anthy_input_context* ictx);
+void anthy_input_commit(struct anthy_input_context* ictx);
+void anthy_input_move(struct anthy_input_context* ictx, int lr);
+void anthy_input_resize(struct anthy_input_context* ictx, int lr);
+void anthy_input_beginning_of_line(struct anthy_input_context* ictx);
+void anthy_input_end_of_line(struct anthy_input_context* ictx);
+void anthy_input_cut(struct anthy_input_context* ictx);
+
+/* key oriented command */
+void anthy_input_key(struct anthy_input_context* ictx, int c);
+void anthy_input_space(struct anthy_input_context* ictx);
+
+/* meta command */
+int anthy_input_get_state(struct anthy_input_context* ictx);
+struct anthy_input_preedit*
+anthy_input_get_preedit(struct anthy_input_context* ictx);
+void anthy_input_free_preedit(struct anthy_input_preedit* pedit);
+int anthy_input_map_select(struct anthy_input_context* ictx, int map);
+int anthy_input_get_selected_map(struct anthy_input_context* ictx);
+struct anthy_input_segment*
+anthy_input_get_candidate(struct anthy_input_context* ictx, int cand_no);
+void anthy_input_free_segment(struct anthy_input_segment* cand);
+int anthy_input_select_candidate(struct anthy_input_context* ictx, int cand);
+
+/* config */
+struct anthy_input_config* anthy_input_create_config(void);
+void anthy_input_free_config(struct anthy_input_config* cfg);
+int anthy_input_edit_toggle_config(struct anthy_input_config *cfg, char tg);
+int anthy_input_edit_rk_config(struct anthy_input_config *cfg, int map,
+ const char *from, const char *to, const char *follow);
+int anthy_input_clear_rk_config(struct anthy_input_config *cfg,
+ int use_default);
+int anthy_input_break_into_roman_config(struct anthy_input_config* cfg, int f);
+int anthy_input_preedit_mode_config(struct anthy_input_config* cfg, int f);
+void anthy_input_change_config(struct anthy_input_config* cfg);
+
+/* DEBUG API */
+anthy_context_t
+anthy_input_get_anthy_context(struct anthy_input_context *ictx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INPUT_H_INCLUDE */