とりあえず、現行の進行計画から,(以前の案から若干変更)
正式版: Version 1.0.0 β−2版のバグFIX版
さて、いきなりで申し訳ないのだが、β−1は、すっ飛ばして、β−2になってしまった。β−1にて、コンソールウインドウのドロップアウト機能は入れたのだが、そのバグ取りと、仮実装だった、CwccGetch辺りの本実装をやっていたら、結構な版数になっていたので、β−2に変えたのだ。
β−2版ライブラリのダウンロード
ライブラリの版数は、0.7.43
※サンプル入(ソースは、暗号化されているので、メールにて、デコーダを入手して下さい)
- 実装した機能及び関数
コンソールウインドウのドロップアウト機能を追加した。一応、現行は、問題無く動作しているが、ドロップアウトを入れた部分が妥当かどうかについては、これからの課題となる。あまり入れすぎても、動作が遅くなるだけだし、適当な場所で判断を入れないといけないのだが…。他に、メールボックスの容量を、16kbyteに増量している。
追加した関数は以下の通り,
- int CwccGetch(void) ;
これは、追加ではなくて改版なのだが、元のCwccGetchは、CwccGetcbに名前を変えたので、この関数は、新規追加になっている。
- int CwccGetcb(void) ;
上述の通り、機能は残した。
- int CwccGetchar(void) ;
機能は、CwccGetchと同等であるが、入力された文字は、エコーバックしてコンソールに表示される。
- void CwccGetStr(char *str) ;
CwccGetsで充分だよという声も聞こえそうだが、一応、コンソール上で編集するバージョンと思ってほしい。入力された文字列を、strに返す関数である。これ、Ver0.7.11までは、漢字が上手く使えないバグ付きの関数だったので、かなりの修正を行った。実は、漢字コードの渡され方が、フレームウインドウの場合と、エディットコントロールの場合で違う様なのだ。フレームウインドウでは、char型の配列に格納する際と同様に、1バイトずつで渡されてくるのだ。いつもながら、この辺の仕様の違いには、びっくりさせられる。
- void CwccEditor(char *guid,char *str,int len) ;
複数行エディタ付きのダイヤログを起動して、エディットした文字列を、lenで指定する文字数以内で、strに返す関数である。メールボックスの容量の関係で、16kbyteまでの制限は有るが、編集が複数行に渡る場合は利用出来るだろう。
- unsigned CwccKeySense(int sw) ;
キーボードセンス関数,C言語のkbhit()の類と思ってもらえれば良い。
sw==1の場合、押されているキーが有れば、0以外のキーコードを返す
sw==0の場合は、センスを終了する。CwccKeySense(0)については、行わなくても大した支障は無いが、余分なロジックが走ってしまうので、行った方が無難と言っておこう。
- void CwccAddSelectItem(char *str) ;
CwccSelectを使う為の前準備を行う。CwccSelectにて、選択肢として表示するアイテムを、順に登録する。アイテムは、1アイテムにつき、63バイトまでとし、128アイテムまで登録出来る。登録順に、0,1,2の番号となる。尚、CwccSelectを一度行うと、アイテムは全てクリアされる。
- int CwccSelect(char *guid,int defnumb,char *buff) ;
選択肢として登録された内容をコンボボックスにて表示し、選択可能とする。defnumbにて指定された番号の選択肢がデフォルトで選択されているものとして現れる。guidに記載された内容は、ガイダンスとして表示される。選択,若しくは入力された文字列が、buffに返り、戻り値として、選択された番号が返される。戻り値が−1の場合は、選択以外(ユーザによる直接入力),−2の場合は、キャンセルされた事を示す。
- 今後??
何でもかんでも取り込む訳にはいかないので、機能の整備はこの辺で終わり!後は、バグ修正等を施して、正式版をめざそう!
|