kzkの日記: reorganizing helper-API 2
日記 by
kzk
GdkInput, QSocketNotifier的な機能をuimに内包させたらもっとシンプルになりそう。と今思い付いた。
uim_init内でuim_helper_init_clientを実行して接続。
んで、次の用にコマンドに応じてコールバックを設定
uim_set_helper_cb(uc,
"focus_in", helper_focus_in_cb,
"focus_out", helper_focus_out_cb,
....
);
static void helper_focus_in_cb(void *ptr, const char *msg);
static void helper_focus_out_cb(void *ptr, const char *msg);
これだと晒す関数はuim_set_helper_cbだけになりそう。
コマンドの追加なんかも簡単だしね。
commit_stringコマンドを作って外部アプリから文字列を入力したりも出来るようになるし。(現状のままだとucへの参照を得ようとするとスマートじゃなくなる)
とにかく現状では、gtk-immodule + uim-qt + uim-ximのhelper部分のコードが被り過ぎてる。
init, close, disconnect, コマンドのパース部分など。
ーーーーー
selectするためにmain_loopみたいなのがいるのか。
それはちょっとなぁ。。。
uim-ximみたいにアプリケーションだったら良いけど、プラグインだしなぁ。
uim_init内でuim_helper_init_clientを実行して接続。
んで、次の用にコマンドに応じてコールバックを設定
uim_set_helper_cb(uc,
"focus_in", helper_focus_in_cb,
"focus_out", helper_focus_out_cb,
....
);
static void helper_focus_in_cb(void *ptr, const char *msg);
static void helper_focus_out_cb(void *ptr, const char *msg);
これだと晒す関数はuim_set_helper_cbだけになりそう。
コマンドの追加なんかも簡単だしね。
commit_stringコマンドを作って外部アプリから文字列を入力したりも出来るようになるし。(現状のままだとucへの参照を得ようとするとスマートじゃなくなる)
とにかく現状では、gtk-immodule + uim-qt + uim-ximのhelper部分のコードが被り過ぎてる。
init, close, disconnect, コマンドのパース部分など。
ーーーーー
selectするためにmain_loopみたいなのがいるのか。
それはちょっとなぁ。。。
uim-ximみたいにアプリケーションだったら良いけど、プラグインだしなぁ。
helper APIとcore API (スコア:1)
抽象化のレイヤ (スコア:1)
異なるツールキット間でコードが被るのは,ある程度は仕方ないかと
思います.
あまりやり過ぎると,究極的には,wxWidgetsとかVLCみたいな事を
やらざるを得なくなるので.