// -*- C++ -*- #define USE_WITHDRAWN #ifndef _jmode_h_included_ #define _jmode_h_included_ #include #include #include void read_conf_file(); char *my_getenv(char *); bool pretrans_register(); int pretrans_setup(); int connection_setup(); void sock_proc(int fd, int event); // event is READ_OK or WRITE_OK // fd dispatch #define READ_OK 1 #define WRITE_OK 2 class Dispatcher { public: virtual void addFDWatch(int fd, int mask, void (*f)(int, int)) = 0; virtual void removeFDWatch(int fd) = 0; virtual void mainLoop() = 0; }; Dispatcher *get_dispatcher(); //変換のサポート // jstring は文節 // preeditの修飾 #define PE_NORMAL 0 #define PE_REVERSE 1 #define PE_UNDERLINE 2 #define PE_HILIGHT 4 typedef int cchar; typedef std::list jstring_t; struct pe_jstring{ jstring_t s; int stat; }; struct Candidates; class KKContext; // 生成と破棄はKKContextのコンストラクタ、デストラクタで行なわれる class pe_stat{ public: pe_stat(KKContext *); void clear(); void new_segment(int s); void push_cchar(cchar ); int get_char_count(); std::list jstrings; //文節に切られたもの。 Candidates *cands; KKContext *cont; }; void print_jstring(jstring_t *s); void erase_jstring(jstring_t *s); void append_jstring(jstring_t *d,jstring_t *s); void str_to_jstring(jstring_t *d,char *s);// JIS or EUC char *jstring_to_str(jstring_t *s);// EUCとして返ってくる。 // global cut buffer void paste_from_global_buffer(jstring_t *s); void copy_to_global_buffer(jstring_t *s); // class KKConv; void init_preconf_kkconv(); KKConv *init_kkconv(); void free_kkconv(); void global_finalize(int ); // ユーザーインターフェースとか、 void init_toolkit(int *argc,char ***argv); void init_ui(KKConv *); void show_issue(char *); void init_convdisp(); void ui_update_ic_stat(); void ui_update_input_mode(int ); // Control Command void init_ctrl(); void ui_ctrl_command(char *); void kk_ctrl_command(char *); // misc int pad4(int ); // key bindとかのやつ class CAtom; typedef CAtom *atom_t; void init_default_atoms(); void add_conf_hook(char *, void (*fn)(char *)); atom_t get_atom_by_name(char *name); void bind_atom(atom_t from,atom_t to); void bind_str_to_atom(char *s,atom_t); bool is_bind_to(atom_t from,atom_t to); char *get_atom_name(atom_t ); atom_t get_bound_atoms(atom_t to,atom_t c); int nr_bound_atoms(atom_t to); // debug functions void hex_dump(unsigned char *buf,int len); // 動作オプション、主に起動時のコマンドラインオプションで決まる。 // クライアントとのやり取りを追跡する #define OPT_TRACE 1 // XIMの通信も追跡する #define OPT_TRACE_XIM 2 #define OPT_POPUP 8 #define OPT_ISSUE 16 #define OPT_TOOLBAR 32 #ifdef USE_WITHDRAWN #define OPT_WITHDRAWN 64 #endif // byte order #define BYTEORDER_UNKNOWN 0 #define LSB_FIRST 1 #define MSB_FIRST 2 // extern int host_byte_order; extern int g_option_mask; extern int uid; extern char *homedir; extern int scr_width,scr_height; extern int ctrl_fd_r, ctrl_fd_w; extern FILE *ctrl_in,*ctrl_out; #endif /* * Local variables: * c-indent-level: 4 * c-basic-offset: 4 * End: */