X11 プログラミングに関する一般的な問題について以下に説明します。
Xlib の OpenWindows のバージョンは、XLookupString の呼び出しによる Compose キー処理をサポートしています。
IA キーボード上では、Ctrl-Shift-F1 キーを使用して Compose キーの機能を実行できます。
Xlib の OpenWindows バージョンは、XLookupString の呼び出しによる NumLock キー処理をサポートしています。この変更は、XView、OLIT、Motif、X アプリケーション内の NumLock 処理には影響しません。
IA キーボードの場合、NumLock キーはキーボードのキーパット部分の最上部にあります。
ASCII カラー名と RGB カラー値との対応関係がカラー名データベースによって与えられます。このデータベースは、カラー表示プログラムの移植性を向上させ、プログラミング作業を容易にする効果があります。ただし、この対応関係は主観的に決定したもので、科学的な客観性に基づいたものではないということに注意してください。
このデータベースのソースは /usr/openwin/lib/X11/rgb.txt です。このファイルは、X コンソーシアムの X11R6 で提供されるファイルと同じものです。rgb.txt をコンパイルすることによって、dbm(3) データベースファイル rgb.dir および rgb.pag が作成されます。サーバーは、最初にスタートアップされた時点で、それらのファイルの内部表現を生成します。この内部表現を参照することによって、カラー名からカラー値へのマッピングが実行されます。
X11 クライアントは、カラー名からカラー値へのマッピングに XLookupColor または XAllocNamedColor を使用します。これらのルーチンに渡されるカラー名文字列は、それがデータベース中で検索される前に、小文字に変換されます。
Solaris X サーバーのカラーサポート機能を使用するプログラマは以下の点について考慮する必要があります。プログラムの移植性および色の共有を最大限可能にするためのヒントを以下に示します。
デフォルト PseudoColor カラーマップ中の白と黒が特定の位置にあると仮定することはできません。必ず XAllocColor を用いて描画のためのピクセルを割り当てます。
白と黒が特定のピクセル位置にあると仮定しないことが、プログラミングの上で重要です。Solaris X サーバーの今後のバージョンや他ベンダのサーバーでは、これらの色の位置が現在のサーバーと異なることも考えられます。移植性と互換性をできるだけ高くするために、X11 クライアントは常に XAllocColor 関数で描画用の色を割り当てるようにしてください。
ビジュアルを使用する前に、サポートされているビジュアルの種類をすべて確認しなければなりません。これには XGetVisualInfo または XMatchVisualInfo を使用できますが、XGetVisualInfo はクラスおよびデプスが同じビジュアルを区別できるため、その使用を推奨します。
カラーマップフラッシングを減少させるため、最初にデフォルトカラーマップから色を割り当てる方法が一般に有効とされます。専用カラーマップを作成するのは、この割り当てに失敗した場合だけに限ってください。
ポータブルな X11 カラー表示クライアントの作成方法については 「ビジュアルに関するプログラミング上のヒント」の節を参照してください。