[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xmgl



神木です。食中毒でダウン中。
哲学レイヤなのでこっち。
実装レイヤは DM で。

   >From: suz@hpc.bs1.fc.nec.co.jp
   >X-Ml-Count: 3484
   >	    o X での RAW モードの互換性をあげる。
   >	    o MGL_SK_EXTRANSLATED を実装するための keymap は、
   >	      X で使える程度の機能を持たせるけれども 
   >	      MGL_SK_EXTRANSLATED の API 自体は 拡張しない
   >というので手を打てませんか?

おっけーですが、...

   >  | # ついでに言や、MGL_SK_RAW は on X と on PDA でまだ互換性皆無なので
   >  | # 出来るだけ使いたくない ...。
   >X の MGL_SK_RAW は、あまりにアバウトかも知れません。

MGL_SK_RAW の互換性をあげるのは、結局は機能をどう揃えるかという問題と
不可分なのではないかなあ。

mgl2 の MGL_SK_RAW, MGL_SK_EXTRANSLATED 周囲でこれからやる実装は X や SVGAlib 
ですでに行なわれて来たことなわけです。MicroWindows でもやってるはずですね。
X の Xserver/hw/xfree86/os_support/ 以下や linux kernel の keyboard.c を
mgl2/ 以下にコピーして適当に使えないかと見てたりするんですが、そうすると
良く似た subset つくるより「そのまんま全部」のほうがよっぽど自然だったり
するわけです。
# ラクかどうかは微妙かもしれん。

   >全ての KeySym や モデファイヤ を 全部定義してみせるのは、
   >行きすぎではないかと思うのです。

いまからぜんぶ定義「しなおす」のは確かにヘンですけど、

   >>># mgl2.h の互換性を放棄して X11/keysymdef.h を include したやつで libmgl2
   >>># を make しなおしたほうが話が簡単かもしれん。

といっちゃん最初に書いたように、目の前に定義の列があるんなら、それを使っては
いけない理由がないところで subset を用意するものもなんだかなと。
s/XK_/MK_/ 程度で定義は簡単に増やすことができるので ... ってゆうか DM の
ほうではほとんど s/XK_/MK_/ に近いことしてるけども。
キーの定義はどちらも 2 バイトで表現できる範囲で定義してるし。

MGL_SK_EXTRANSLATED 使って Xserver 書きかけたところでシフトキーの範囲が狭くて
定義拡大してたわけですが、ま、確かに PDA 基準にしてものごと考えてると PDA の
シフトキーのバリエーションの共通集合で定義つくりたくなるんですが、X 基準にして
X のシフトキーに足りない分はそれぞれの PDA でどーにかしなさい、という考え方も
あるわけですよね。実際どうやっても 1 ボタンマウスモデルにしかならない PDA で
むりやり 3 ボタン定義してみせてる訳ですし。
アプリのプロトタイプは常に mgl2 on X の上なので、ものごと考える時は mgl2 も
on X 基準になってるほうが何かと楽ではないかと。

... という思想レベルの提言なので実装や API 的に詰めるのは、だから X 書いてから、
と思ってたんですが... mgl-019-k1 (まだ obsulute にしてねーな) では
臨時にだからってんで平然と mgl2 の内部をフックできるようにしてたりするし。
# mgl2 内のシフトキー状態を外から取れるようにした。これはおそらく API としても
# 必要になるものの一つだと思う。

-- 
神木一也@クロス用の xmkmf/imake の書き方が分からへん