[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3293] Re: キーバインド.



Hidemi KAWAI さん、こんにちは。I.Tak. です。

Sat, 23 Feb 2002 09:32:22 -0000 の
[OSASK 3289] Re: キーバインド.
に返信です。

>  ええと、まず、[OSASK 1661](の後半部分)をご覧ください。そこに
>書いてあることですが、そもそもlib_definesignal1p0()という関数の
>存在が「えせ」なのです。

 しかし今はえせを使ってアプリを作っているわけでして、えせでの
使い勝手なんです。えせでも破綻しにくい方法が欲しい……とは高望み
でしょうか。

>  それで、キートップの文字でキーを指定するのは、おそらくlib_defi
>nesignal1p0()を無視するようになった後も引き継がれると思います。
>そしてこの方法は、ご指摘の通り、機種の壁を越えられないような指定
>方法でもあります。

 文字入力としては機種の壁を越えています。しかし、スイッチの行列
としては越えていません、というより、その視点がありません。

>  でもこれはしょうがないんじゃないでしょうか。そもそもキー配置は
>機種ごとに異なっていますし、キースキャン値を直接指定するというの
>はわかりにくいことこの上なしです。

 スキャン値でもなんでもいいんですが、キー(ボタンと言う方がいい
かも)とシグナルを一対一にしてもらえるような、そんな要求がしにくい
んです。ASCIIコードはボタンの倍も文字があって冗長です。ボタン入力
を要求する手段としてスマートだとは思えません。
 そしてMOSALIkeyboardのようなことをしようとするとき、文字指定を
使う今の仕様はエミュができない限り非常に混乱しますが、文字指定で
なければ、えせ仕様でももう少しなんとかなる気がします。

>  もしI.Tak.さんがこれに代わる良いアイデアをお持ちなら教えていた
>だきたいのですが・・・。大いに参考にしたいです。

 代替というわけではなく、両立です。文字入力としては今のままで十分
ですから。
 ボードの隣り合うボタンが隣り合う番号を与えられるような体系なら、
えせでも多少救われると思います。ボタン数が違うなどやはり機種依存を
免れませんが、それでもえせなりに使えるはずです。これがキーをスイッチ
として見る視点です。

とりあえずの図:OADG篇
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e
20  21 22 23 24 25 26 27 28 29 2a 2b 2c   2d
30   31 32 33 34 35 36 37 38 39 3a 3b 3c
40    41 42 43 44 45 46 47 48 49 4a 4b    4c
50  51  52  53    54   55  56  57 58  59  5a
左を基準に振ったが、右を基準にする要求もできると便利だろう。

>  それでMOSALIkeyboardに話を戻しますが、これは破綻するようにみえ
>て、何とかこの問題を乗り越えられるのです。というのは、タグが使え
>るようになったら、このアプリに、想定しているキーボードがAT互換機
>用の日本語キーボードだという意味のタグをつけておきます。そしてシ
>ェルが起動時にそのタグを認識して、しかるべきキーに割り振ってしま
>えばいい訳です(シェルはAPIコールをモニターできますから)。

 TOWNSのJISキーボードみたいでしたよ(^^;
 私だって、エミュレーションをしても破綻するとは思いません。でも、
エミュレーションできるようになっても↑の設定ができると便利です。

>  lib_definesignal1p0()は、指定されたキーにシグナルを割り振ると
>いう保証はしません。シェルが勝手に違うキーでそのシグナルを送るよ
>うにオーバーライドしてしまうことはありうる訳です。・・・これは、
>キー入力であるという保証もありません。マウスのクリックかもしれま
>せんし、ネットワークからのシグナルかもしれないわけです。

 そういえば、これって「ネットワーク透過性」ですね。

>  これを踏まえると、[OSASK 3270]で僕が書いた、
>>くありません。たとえば、ウィンドウをまだオープンしていないのに、
>>キー入力シグナルが来るなどです。・・・まあ、でも、これも程度問題
>という可能性がより正確に理解できるかもしれません。

 やっぱりそういうことだったんですか。将来はコマンドを待つまでも
なくシグナル定義ができてしまうわけですね。
 でもよく考えると、その場合は定義コマンドが受信レディコマンドに
変わるのが自然じゃありませんか? 「シェルはこのコマンドでアプリが
そのシグナルを処理可能であると認識します」みたいな説明だったと
思います。

------------------------------------------------------------
I.Tak. <msy !Atmark! catvmics.ne.jp>
http://home1.catvmics.ne.jp/~msy/takhome.htm