用語集
用語集
- アクセス制御リスト(access control list)
- X はクライアントプログラムを実行可能なホストのリストを管理している。
デフォルトでは、ローカルホストとサーバが読む初期化リストで明示されている
ホスト上にあるプログラムだけがディスプレイを使用できる。
このアクセス制御はローカルホスト上のクライアントから変更できる。
サーバの実装によってはこの機構に加えて、あるいはこの機構の代わりに他の
認証機構を実装することもできる。
この機構の動作は、接続時にサーバが受け取る認証プロトコルの名前とデータ
に基づく条件判定にできる。
- アクティブグラブ/能動的グラブ(active grab)
- ポインタあるいはキーボードを実際に所有しているのが単一のグラブしている
クライアントであるとき、そのグラブはアクティブである。
- 祖先(上位階層の)ウィンドウ(ancestors)
- W が A の 子孫(下位階層の)ウィンドウならば、
A は W の祖先(上位階層の)ウィンドウである。
- アトム(atom)
- アトムは文字列名に対応する固有の識別子である。
アトムを使ってプロパティ、型、セレクションを識別する。
- 背景(background)
- InputOutputウィンドウは背景を持つことができる。
これはピックスマップとして定義される。
あるウィンドウの領域の内容を失われる無効になった時、サーバは
背景を使ってこれらの領域を自動的にタイリングする。
- バッキングストア(backing store)
- サーバがウィンドウの内容を管理している時、オフスクリーンに保存された
ピクセルがバッキングストアと呼ばれる。
- ベースフォント名(base font name)
- フォントのファミリの選択に使われるフォント名。
このフォントのメンバは様々な文字集合でエンコードされている場合がある。
XLFD 名の
CharSetRegistryと
CharSetEncodingフィールドはフォントの文字集合を識別する。
ベースフォント名は、14 個の区切り文字 '-' をすべて持つ完全な XLFD 名で
もよいし、短縮形の XLFD 名でもよいし、XLFD では名前でもよい。
短縮形の XLFD 名は、
CharSetRegistryまで(このフィールド自身は含まない)の最初の 12 個のフィールドだけを含み、
13 個目の '-' はあってもなくてもよい。
どの XLFD フィールドにもワイルドカードを含めてよい。
- XFontSetを作る時、 Xlib は一つ以上のフォントファミリーを選ぶための一つ以上の
ベースフォント名のリストをクライアントから受け付ける。
これらはロケールのエンコーディングから得た文字集合の名前と組み合わせて、
テキストの描画に必要なフォントをロードするために使われる。
- ビットグラビティ(bit gravity)
- ウィンドウがリサイズされる時、ウィンドウの内容は必ずしも破棄されない。
サーバがウィンドウのある領域に前の内容を移す事を要求する事ができる(それが行なわれると言う保証はないが)。
このウィンドウの何らかの配置によるウィンドウの内容の挙動がビットグラビティと言われる。
- ビットプレーン(bit plane)
- ピックスマップやウィンドウがビットマップの積み重ねとして考えられる時に、
それぞれのビットマップはビットプレーンあるいはプレーンと呼ばれる。
- ビットマップ(bitmap)
- ビットマップは深さが 1 のピックスマップである。
- ボーダー(border)
- InputOutputウィンドウはウィンドウの四辺すべてに等しい厚みのボーダーを持つ事ができる。
ボーダーの内容はピックスマップによって定義される、そしてサーバは自動的にボーダーの内容を維持する。
Exposure イベントはボーダー領域には絶対に発生させられない。
- ボタングラビング(button grabbing)
- ポインタのボタンはクライアントによってパッシブにグラブする事ができる。
ボタンが押された時、ポインタはクライアントによってアクティブにグラブされている。
- バイトオーダー(byte order)
- イメージデータ(ピックスマップ/ビットマップ)については、
サーバはバイトオーダーを定義している、
そして異なった本来のバイトオーダーをもつクライアントはバイトを入れ換える必要がある。
プロトコルの他のすべての部分では、
クライアントがバイトオーダーを定義する、
そしてサーバがバイトを入れ換える必要がある。
- 文字(character)
- テキストの構成、制御あるいは表現のために使われる要素の集まりの一部分(ISO2022, XPG3 によって変更された)。
ISO2022 規約では、キャラクタは符号化された文字集合の一部として認められない限り符号化された値に結び付けられない点に注意すること。
- 文字グリフ(character glyph)
- キャラクタのための抽象的な図形の象徴。
キャラクタグリフはフォントグリフと1対1でマップされるかも知れない、されないかも知れない、
そして隣の文字を変えるような状況依存かも知れない。
複数のキャラクタが単一のキャラクタグリフにマップするかも知れない。
- 文字集合(character set)
- 文字を集めたもの。
- 文字集合(charset)
- 揃ったエンコーディング、キャラクタからコードポイントへの状態非依存なマッピング。
符号化された文字集合。
- X のディスプレイでは、
文字集合のすべてのキャラクタの幅が1あるいは2バイトのどちらか一方なら、それらは文字集合から一つのフォントへの直接のマッピングになれる。
Shift-JIS といったエンコーディングで符号化されたテキスト文字列は X サーバに直接渡す事ができない。
なぜなら、テキスト表示要求は単一幅(8あるいは16ビットのどちらか)の文字集合だけを受け付けるからである。
これらの制限を満たす文字集合はフォント文字集合として提供できる。
フォント文字集合は厳密に言えばフォントインデックスからフォントグリフへのマップであって、キャラクタからキャラクタグリフへでは無い。
- 単一のフォント文字集合がロケールのエンコーディングとして使われることも時々ある点に注意すること(例えば ISO8859-1)。
- 子ウィンドウ(children)
- あるウィンドウの子とは、そのウィンドウの 1 レベル目のサブウィンドウである。
- クラス(class)
- ウィンドウは異なるクラスあるいは型にできる。
有効なウィンドウ型についての詳しい情報については
InputOnlyと
InputOutputの項目を見ること。
- クライアント(client)
- アプリケーション・プログラムは、TCP 接続、あるいは共有メモリ・バッファーといった、何らかのプロセッサ間通信 (IPC) の経路によってウィンドウシステムサーバに接続する。
このプログラムはウィンドウシステムサーバのクライアントとして参照される。
より正確に言えば、クライアントは IPC 経路そのものである。
複数の経路をサーバに開いているプログラムはプロトコルによって複数のクライアントとして見られる。
リソースの生存時間は接続の生存時間によって制御される、プログラムの生存時間によってではない。
- クリッピング領域(clipping region)
- グラフィックスコンテクストにおいて、
出力をウィンドウの特定の領域に制限するために
ビットマップあるいはレクタングルのリストを示す事ができる。
そのイメージはビットマップあるいはレクタングルによって定義され、クリッピング領域と呼ばれる。
- 符号化文字(coded character)
- 文字はコードポイントに結びつけられる。
- 符号化文字集合(coded character set)
- 文字の集合を確立し、また集合の各文字とそのビット表現の一対一の関係を確立する明確な規則の集合。
(ISO2022, XPG3 によって変更された)
文字の集合をコードポイントに一対一に写像する定義。
- コードポイント(codepoint)
- 符号化された文字集合における、ひとつの文字の符号化された表現。
- カラーマップ(colormap)
- カラーマップは色の値を定義したエントリの集合で成り立っている。
ウィンドウに関連付けられたカラーマップは、ウィンドウの内容を表示するた
めに使われる。つまり、各ピクセル値はモニタの電子銃を動かすための
RGB 値を作り出すためにカラーマップのインデックスを指示する。
ハードウェアの制限によっては、一つ以上のカラーマップを同時に
インストールできるので、これらのカラーマップに関連づけられたウィンドウ
はトゥルーカラー表示を行える。
- 接続(connection)
- サーバとクライアント・プログラムの間での IPC 経路は接続と呼ばれる。
クライアントプログラムは一般的に(しかし必ずではない)リクエストやイベン
トを送るために接続を一つ持つ。
- 包容(containment)
- ウィンドウが表示可能(viewable)でカーソルのホットスポットがウィンドウの
可視(visible)な領域あるいはその子孫ウィンドウの可視(visible)な領域の中
にあるのなら、ウィンドウはポインタを含む。
ウィンドウの境界は囲い込むためにウィンドウの一部として含まれる。
ウィンドウがポインタを含み、子孫ウィンドウがポインタを含まなければ
ポインタはウィンドウに含まれている。
- 座標系(coordinate system)
- 座標系は X 水平面と Y 垂直面をもっている、左上を以って原点 [0, 0] とする。
座標は整数で、ピクセル中心に一致する。
それぞれのウィンドウとピックスマップはそれ自身の座標系を持っている。
ウィンドウでは、左上角の内側である境界の内側が原点である。
- カーソル(cursor)
- カーソルはスクリーン上でポインタを見えるようにしたものである。
カーソルを構成するのは、指している場所(ホットスポット)、元となる
ビットマップ、形を表すビットマップ、対になる 2 つの色である。
あるウィンドウに対して定義されたカーソルは、そのウィンドウ内にポインタ
があるときのカーソルの見え方を制御する。
- 深さ/デプス(depth)
- ウィンドウあるいはピックスマップの深さは、それらが持っているピクセルの
ビット数である。グラフィックスコンテクストの深さは、
グラフィックス出力と組み合わせて使えるドロウアブルの深さである。
- デバイス(device)
- キーボード、マウス、タブレット、トラックボール、ボタンボックスなどは、
ひとまとめにして入力デバイスと呼ばれる。
ポインタは一つ以上のボタンを持つことができる(普通は 3 個)。
コアプロトコルは 2 つのデバイス(キーボードとポインタ)のみを扱う。
- DirectColor
- DirectColorは示すためにピクセル値が三つのサブフィールドに分けられているカラーマップのクラスである。
最初のサブフィールドは赤の強度値を示す配列を示す。
最初のサブフィールドは青の強度値を示す配列を示す。
最初のサブフィールドは緑の強度値を示す配列を示す。
カラーマップエントリーの RGB値(赤、緑、青)は動的に変更される。
- ディスプレイ(display)
- サーバは、そのスクリーンそして入力デバイスと組み合わせるとディスプレイと呼ばれる。
Xlib の
Display構造体は Xlib が特定のコネクション上でディスプレイと通信するために必要な情報のみならず特定のディスプレイとそのスクリーンについてのすべての情報を含んでいる。
- ドロウアブル(drawable)
- ウィンドウとピックスマップはグラフィックス操作において入力元と出力先の
どちらにも使える。
これらのウィンドウとピックスマップはひとまとめにドロウアブルと言われる。
しかし、
InputOnly ウィンドウはグラフィックス操作において入力元や出力先として使うことができない。
- エンコーディング/符号化(encoding)
- 文字集合および文字とその表現の関係を確立する、明確な規則の集合。
文字集合は、予め定義された有限の文字の集まりとして固定される必要はない。
文字の表現は長さが揃っている必要はない。
例としては ISO2022 図形集合、状態非依存あるいは状態依存の図形集合の
組合せである。制御文字集合や X コンパウンドテキストエンコーディングも
おそらく含まれる。
- X では、エンコーディングは以下のように現れる文字列によって識別される:XLFD 名の
CharSetRegistryと
CharSetEncodingコンポーネント;フォントを見つけることができないロケールの文字集合の名前;
テキストプロパティのエンコーディングまたはテキストセレクションの対象の
型のエンコーディングを示すアトム。
エンコーディング名は X ポータブル文字集合に含まれる文字で構成されるべ
きである。
- 送り幅(escapement)
- 文字列の送り幅とは、描画の原点から次に描かれる文字(つまり、指定された
文字列の後に続く文字)の原点への主描画方向の距離である。
- イベント(event)
- クライアントはイベントを使って非同期に情報を通知される。
このようなイベントは、デバイスによって非同期に生成されるか、
クライアントのリクエストの副作用として生成される。イベントは
いくつかの型に分類される。ある型のイベントの通知を受ける
ことをクライアントが明示的に要求しない限り、サーバがそのイベ
ントをクライアントに送ることはない。しかし、クライアントは他
のクライアントに強制的にイベントを送ることができる。イベント
は通常、ウィンドウに関して報告される。
- イベントマスク(event mask)
- イベントはウィンドウについてリクエストされる。
クライアントがウィンドウについてリクエストするイベント型の集合は
イベントマスクを使って記述される。
- イベント伝播(event propagation)
- デバイスに関連するイベントは、いずれかのウィンドウがその型を処理すると
宣言するか、明確に破棄されない限り、元のウィンドウから祖先ウィンドウへ
伝播する。
- イベント発生源(source)
- ポインタが内部に存在している中で最も階層が深い表示可能ウィンドウは、
デバイス関連イベントの発生源と呼ばれる。
- イベント同期(event synchronization)
- クライアントへのデバイスイベントを非多重化した時(特に、ウィンドウ管理
操作の途中でポインタイベントやキーボードイベントを送る先を決める時)に
起こり得る、ある競合状態が存在する。
イベント同期機構を使うと、このようなデバイスイベントを同期処理できる。
- Exposure イベント(exposure event)
- X サーバは、ウィンドウが隠蔽されたり構成が変化した時にウィンドウの内容
を保持することを保証してしない。
Exposure イベントはウィンドウの領域の内容が失われそうな時にそれを知ら
せるためにクライアントに送られる。
- 機能拡張(extension)
- コアプロトコルへの名前つき機能拡張を定義してシステムを拡張することができる。
出力リクエスト、リソース、イベント型への機能拡張は可能であり、かつ行う
ことが期待されている。
- フォント(font)
- フォントはグリフ(普通は文字)の配列である。
プロトコルは文字集合のいかなる変換あるいは解釈もしない。
クライアントはただ単純にグリフの配列を指し示す値を指示する。
フォントは文字間隔と行間隔を決めるための付加的な寸法情報を含む。
- フォントグリフ(font glyph)
- フォントにおいて示される抽象的な図形記号。
- イベント凍結(frozen events)
- クライアントは、キーボードとポインタをグラブしている間、イベント処理を
凍結することができる。
- GC
- GC はグラフィックスコンテクスト(graphics context)の略である。
グラフィックスコンテクストの項を参照すること。
- グリフ(glyph)
- どんな現実のイメージにも依存しない抽象的な図形記号に定義する。
(ISO/IEC/DIS 9541-1)
図形キャラクタの抽象的な目に見える表現、コードポイントに結び付けられない。
- グリフイメージ(glyph image)
- グリフのイメージ、グリフの表現を提示面に表示したもの。
(ISO/IEC/DIS 9541-1)
- グラブ(grab)
- キーボードのキー、キーボード、ポインタのボタン、ポインタそしてサーバはクライアントによって排他的に使用のためにグラブする事ができる。
通常、
これらの機能は普通のアプリケーションから使われる事を意図していない、
しかし、
多様な入力とユーザインターフェイスのさまざまな形の実装するウィンドウマネージャのためには意図されている。
- グラフィックスコンテクスト(graphics context)
- グラフィックス出力のためのさまざまな情報がグラフィックスコンテクスト(GC)に
保存されている。
例えば、前景ピクセル、背景ピクセル、線の幅、クリッピング領域などである。
グラフィックスコンテクストは、自分と同じルートウィンドウと深さを持つ
ドロウアブルとしか組み合わせて使えない。
- グラビティ(gravity)
- ウィンドウの内容とウィンドウそれ自身にはグラビティ値がある、ウィンドウがリサイズされた時にその内容がどうやって移動するか決定する。
ビットグラビティとウィンドウグラビティの項目を参照すること。
- GrayScale
- GrayScale は
PseudoColor が退化させた形として捉えられる。
つまり、あるカラーマップエントリの R, G, B の値は全て同じであり、
したがって灰色の濃淡が得られる。
gray 値は動的に変更できる。
- ホストポータブル文字エンコーディング(Host Portable Character Encoding)
- ホスト上の X ポータブル文字集合のエンコーディング。
エンコーディング自身はこの規格では定義されないが、ホスト上で Xlib が
対応している全てのロケールにおいてエンコーディングは同じでなければなら
ない。
文字列がホストポータブル文字エンコーディングであると言われるのであれば、
このエンコーディングはホストのエンコーディングの文字列であり、かつ
X ポータブル文字集合の文字だけを含んでいる。
- ホットスポット(hotspot)
- カーソルにはホットスポットが関連づけられている。
ホットスポットは、ポインタに報告される座標に対応するカーソル上の点を定義する。
- 識別子(identifier)
- 識別子はクライアントがリソースを指定するために使う、リソースに関連づけ
られた固有の値である。
識別子はリソースを指定するため何らかの接続上で使うことができる。
- 子孫(下位階層の)ウィンドウ(inferior)
- ウィンドウの子孫(下位階層のウィンドウ)は、あるウィンドウの下に入れ子に
なっている全てのサブウィンドウである。つまり子ウィンドウ、子ウィンドウ
の子ウィンドウ等である。
- 入力フォーカス(input focus)
- 入力フォーカスは普通、キーボード入力の処理のスコープを定義する
ウィンドウである。
発生したキーボードイベントがこのウィンドウかその子孫ウィンドウに普通に
報告されれば、イベントは通常通りに報告される。
そうでない時は、そのイベントはフォーカスウィンドウについて報告される。
また、入力フォーカスは、全てのキーボードイベントが破棄されるようにも
設定できるし、フォーカスウィンドウを動的に設定して各キーボードイベント
が起きた際にポインタがあるスクリーンのルートウィンドウになるようにも
設定できる。
- 入力マネージャ(input manager)
- キーボード入力の制御は一般的に入力マネージャクライアントが提供する。
入力マネージャクライアントは普通はウィンドウマネージャの一部である。
- InputOnly ウィンドウ(InputOnly window)
- InputOnlyウィンドウはグラフィックスリクエストのために使えないウィンドウである。
InputOnly ウィンドウは不可視であり、カーソル、入力イベントの発生、グラブなどを
制御するために使われる。
InputOnly ウィンドウは子孫ウィンドウに
InputOutput ウィンドウを持つことができない。
- InputOutputウィンドウ(InputOutput window)
- InputOutputウィンドウは、入力と出力の両方に使われる普通の種類のウィンドウである。
InputOutput ウィンドウは、子孫ウィンドウに
InputOutput と
InputOnly ウィンドウを持つことができる。
- 国際化(internationalization, I18N)
- 母国語の違い、現地の習慣、文字列のエンコーディングの要件に適応できる
ソフトウェアを作成するプロセス。プログラムソースの変更や再構築なしで
異なるロケールに適応できるコンピュータプログラムを作ること。
- ISO2022
- 7 ビットと 8 ビットコードの文字集合のためのコード拡張技術についての
ISO 規格。
- キーグラビング(key grabbing)
- キーボードのキーはクライアントによってパッシブにグラブすることができる。
キーが押された時、キーボードはクライアントによってアクティブにグラブされている。
- キーボードグラビング(keyboard grabbing)
- クライアントはキーボードの制御をアクティブにグラブできる。
この場合、キーイベントは通常送られるはずのクライアントではなく、
グラブを行ったクライアントに送られる。
- キーシンボル(keysym)
- キーボードのそれぞれのキーに書かれている記号のエンコーディング。
- Latin-1
- ISO8859-1 規格によって定義されている、体系化された文字集合。
- ラテンポータブル文字エンコーディング(Latin Portable Character Encoding)
- Latin-1 コードポイントに ASCII 制御文字追加したものを使っている
X ポータブル文字集合のエンコーディング。
もし文字列がラテンポータブル文字エンコーディングならば、このエンコーディングは
X ポータブル文字集合の文字だけを含み、Latin-1 の全ての文字を含んでいる
とは限らない。
- ロケール(locale)
- プログラムの「地域化」された動作を実行時に定義する
コンピュータプログラムの国際化環境。
この情報は一つ以上の地域化情報から構築できる。
ANSI C では C のシステムライブラリコールによるロケール固有の処理を定義
している。
詳しくは ANSI C と X/Open Portability Guide 仕様を参照すること。
この仕様においては、ANSI C ライブラリに準拠した実装では
「現在のロケール(current locale)」が
setlocaleの LC_CTYPE カテゴリの現在の設定である。
テキストのエンコーディングは各ロケールに対応づけられている。
テキストがロケールのコンテクストにおいて処理される時、このテキストは
そのロケールのエンコーディングでなければならない。
現在のロケールは Xlib に次のような影響を与える:
- 入力メソッドのテキストのエンコーディングと処理
- リソースファイルとリソース値のエンコーディング
- 画像文字列とテキスト文字列のエンコーディング
- クライアント間テキスト通信における符号化処理と復号化処理
- ロケール名(locale name)
- ホストの C ライブラリ関数と X ライブラリ関数に対して望ましいロケールの
選択に使われる識別子。
ANSI C ライブラリ準拠のシステムでは
setlocale関数へのロケール引き数である。
- 地域化(localization, L10N)
- 特定の母国語、現地の習慣、符号化された文字集合の操作に特化して、
コンピュータシステム内に情報を組み立てる作業。
(XPG3)
- マップされた(mapped)
- ウィンドウ上でマップ呼出しが行なわれたならば、そのウィンドウはマップさ
れたと言われる。
アンマップされているウィンドウとそれらの子孫ウィンドウは、絶対に
表示可能でも可視でもない。
- モディファイアキー/修飾キー(modifier key)
- Shift、Controlt、Metat、Supert、Hypert、Altt、Composet、Applet、CapsLockt、
ShiftLockt、そして同様のキーはモディファイアキーと呼ばれる。
- Monochrome
- Monochrome は
StaticGrayの特殊な形であり、
カラーマップのエントリを 2 つだけ持つ。
- マルチバイト/複数バイト(multibyte)
- コードポイントが 1 バイト以上で格納される文字。
マルチバイト文字を含むことができる任意のエンコーディング。
マルチバイトエンコーディングであるテキスト。
ANSI C ではヌル文字で終了する ``char *'' 型の文字列データ型。
この文書でマルチバイト文字列と書く場合には、
マルチバイト文字を含んでいるかもしれない文字列だけを示す。
- 隠蔽(obscure)
- あるウィンドウが他のウィンドウに覆い隠されている場合、そのウィンドウは
隠蔽されている。
ウィンドウは部分的に隠蔽されて、可視領域がまだ残っていることもある。
ウィンドウ A が ウィンドウ B を隠蔽する条件は、A と B はどちらも表示可能な
InputOutput ウィンドウであり、全体のスタック順において A が B よりも上位にあり、
さらに A の外縁によって定義される長方形が B の外縁によって定義される
長方形に重なっていることである。
「隠蔽」と「封鎖」は異なるものである点に注意すること。
また、ウィンドウの境界も計算に含まれる点に注意すること。
- 封鎖(occlude)
- あるウィンドウが他のウィンドウに封鎖されている場合、そのウィンドウは
封鎖されている。
ウィンドウ A がウィンドウ B を封鎖する条件は、A と B がどちらもマップ
されており、全体のスタック順において A が B よりも上位にあり、
さらに A の外縁によって定義される長方形が B の外縁によって定義される
長方形に重なっていることである。
「隠蔽」と「封鎖」は異なるものである点に注意すること。
また、ウィンドウの境界は計算に含まれる点と、
InputOnlyウィンドウは他のウィンドウの隠蔽はできないが封鎖はできる点に注意すること。
- パディング(padding)
- プロトコルリクエストの配置を自然な境界上に合わせるため、
いくつかのパディングバイトがデータストリーム上で挿入される。
これはいくつかのマシンアーキテクチャへの移植性を高くする。
- 親ウィンドウ(parent window)
- C が P の子ウィンドウなら、P は C の親ウィンドウである。
- パッシブグラブ/受動的グラブ(passive grab)
- キーやボタンをグラブするのはパッシブグラブである。
キーやボタンが実際に押された時にグラブがアクティブになる。
- ピクセル値(pixel value)
- ピクセルは N 個のビットを持つ値である。
N は ある特定のウィンドウやピックスマップにおいて使われている
ビットプレーンの数である
(すなわち、ウィンドウやピックスマップの深さである)。
- ピックスマップ(pixmap)
- ピックスマップは 3 次元のビットの配列である。
ピックスマップは通常二次元の行列と考えられるが、それぞれのピクセルは 0 から %2 sup N %-1 までの値を取ることができる、そして N はピックスマップの深さ(z 軸)である
ピックスマップはまた N 個のビットマップの重なりと考えることもできる。
ピックスマップはそれを生成したスクリーン上においてのみ使うことができる。
- プレーン(plane)
- ピックスマップあるいはウィンドウをビットマップの重なりと考える時、
それらのビットマップはプレーンあるいはビットプレーンと呼ばれる。
- プレーンマスク(plane mask)
- グラフィックス操作は対象となるビットプレーンのサブセットのみにその影響を限定することができる。
プレーンマスクは変更対象のプレーンのビットマスクの記述である。
プレーンマスクはグラフィックスコンテクストに保持される。
- ポインタ(pointer)
- ポインタとは、現在はカーソルに割り当てられており、画面上で位置を追跡さ
れるポインティングデバイスのことである。
- ポインタグラビング(pointer grabbing)
- クライアントは自らポインタの制御をグラブできる。
そうすると、ボタンと動きのイベントは本来そのイベントが送られるはずのクライアントに、ではなくそのクライアントに送られるだろう。
- ポインティングデバイス(pointing device)
- ポインティングデバイスは、マウス、タブレット、あるいは
事実上 2 次元的な動きをする他のデバイスである。
コアプロトコルでは可視的なカーソルが一つだけ定義されている。
これはポインタとして割り当てられた任意のポインティングデバイスを追跡する。
- POSIX
- Portable Operating System Interface, ISO/IEC 9945-1 (IEEE Std 1003.1)
- POSIX ポータブルファイル名文字集合(POSIX Portable Filename Character Set)
- POSIX 準拠のホストでファイルの名前付けに使うことができ、全てのロケール
で正しく処理される 65 個の文字の集合。
この集合は以下の通りである:
a..z A..Z 0..9 ._-
- プロパティ(property)
- ウィンドウには、プロパティを対応付けて持つことができる。
プロパティは名前、型、データフォーマット、そして何らかのデータからなる。
プロトコルはプロパティを一切解釈しない。
プロパティの目的は、クライアントが使える汎用の名前付け機構である。
例えばライアントはサイズ変更のヒント、プログラム名、アイコンの形式など
の情報を共有するためにプロパティを使える。
- プロパティリスト(property list)
- ウィンドウのプロパティリストはウィンドウのために定義されたプロパティの
一覧表である。
- PseudoColor
- PseudoColorはカラーマップのクラスである。このクラスにおいては、
ピクセル値は
独立した RGB 値を生成するカラーマップエントリのインデックスである。
つまり、カラーマップは 3 つの値の組み合わせ(RGB 値)の配列と捉えること
ができる。
RGB 値は動的に変更できる。
- レクタングル(rectangle)
- [x,y,w,h] によって表現されるレクタングルは、
隅が [x,y], [x+w,y], [x+w,y+h], [x, y+h] であり、輪郭線は幅を持たない。
レクタングルが塗り潰される時には下と右の辺は描画されない。
例えば、w=h=0 では何も描かれないが、w=h=1 なら一つのピクセルが描かれる。
- リダイレクト制御(redirecting control)
- ウィンドウマネージャ(あるいはクライアントプログラム)はいろいろな方法
でウィンドウの配置方針を強制するかもしれない。
クライアントがウィンドウの大きさや位置を変えようとする時に
その操作は実際には実行されず指定されたクライアントにリダイレクトされるかもしれない。
- 応答(reply)
- クライアントが X プロトコルを使って要求した情報は、応答を使って
クライアントに送り返される。
同じ接続上ではイベントと応答はどちらも多重化される。
ほとんどのリクエストでは応答は発生しないが、リクエストによっては複数の
応答を発生するものがある。
- リクエスト(request)
- サーバに送る命令はリクエストと呼ばれる。
これは接続上で送られるひとかたまりのデータである。
- リソース(resource)
- ウィンドウ、ピックスマップ、カーソル、フォント、
グラフィックスコンテクスト、カラーマップはリソースと呼ばれる。
それらはすべて自身を指定するための、それらに関係のある固有の識別子を持っている。
リソースの生存時間は普通、リソースが作られた接続の生存時間によって制限される。
- RGB 値(RGB value)
- RGB 値は色を定義するのに使われる赤、緑、青の強度の値である。
それらの値は必ず
最小強度が 0、最大強度が 65535 の 16-bit で表現される無符合の数値である。
X サーバはそれらの値をディスプレイ装置に合うようにスケール変換する。
- ルート(root)
- ピックスマップやグラフィックスコンテクストのルートは、
ピックスマップや GC が作られた時にドロウアブルのルートと同じになる。
ウィンドウのルートは、作成されたウィンドウの上位にあるルートウィンドウ
である。
- ルートウィンドウ(root window)
- それぞれのスクリーンにはそれを覆うルートウィンドウがある。
ルートウィンドウは、再構成あるいはアンマップできない、
しかしながら、それはれっきとしたウィンドウの振舞をする。
ルートウィンドウは親ウィンドウを持たない。
- セーブセット(save set)
- クライアントのセーブセットとは、他のクライアントのウィンドウのリストで
ある。このリストが持つウィンドウは、接続のクローズ時にこれらのウィンドウが
セーブセットを持つクライアントのウィンドウのいずれかの子孫ウィンドウで
あれば、破棄すべきでないものと、現在アンマップされていたら再マップすべ
きものである。
セーブセットは通常、ウィンドウマネージャが異常終了した時にウィンドウを
失うのを避けるためにウィンドウマネージャが使用する。
- スキャンライン(scanline)
- スキャンラインはイメージの水平列(全ての値が同じ y 座標値を持つ)のよう
に見えるピクセルあるいはビット値のリストであり、その値は x 座標値の
昇順で並べられる。
- スキャンライン順(scanline order)
- スキャンライン順に表現されるイメージは、y 座標値の昇順で並べられた
スキャンラインで構成される。
- スクリーン(screen)
- Screen サーバは、いくつもの独立したスクリーンを提供することができ、通常、それらは独立したモニタを持つ。
それぞれのスクリーンの間でただ一つのキーボードとポインタが共有されると言う
構成が予想された。
構造体はそのスクリーンに関する情報を含み
Display構造体に関係させられている。
- セレクション(selection)
- セレクションは、動的な型を持つ間接的なプロパティと考えられる。
つまり、プロパティは X サーバ内に格納されるのではなく、
何らかのクライアント(所有者)によって管理される。
セレクションは大域的な値であり、ユーザに所属し、クライアントが管理する
ものと考えられる。
特定のウィンドウ階層や特定のクライアント群のプライベートな値ではない。
クライアントがセレクションの内容を要求する時には、クライアントは
セレクションの対象型を指定する。これを使うと内容を送る時の表現を制御で
きる。
例えばセレクションが「ユーザが最後にクリックしたもの」であり、それが
画像である場合、画像の内容を XY フォーマットと Z フォーマットのどちら
で送るのかを対象型を使って指定できる。
- また、対象型を使うと送られる内容のクラスを制御できる。例えばパラグラフ
セレクションについて、パラグラフのテキストではなく「見栄え指定」
(フォント、行間隔、インデント幅など)を要求できる。
対象型は他の目的にも使うことができる。
プロトコルは対象型の意味には制限を与えていない。
- サーバ(server)
- サーバは(X サーバとも呼ばれる)は、基本的なウィンドウ機構を提供する。
サーバはクライアントからの IPC 接続を処理し、
画面に対するグラフィックスリクエストを多重化し、
入力を非多重化して適切なクライアントに返す。
- サーバグラビング(server grabbing)
- 単一のクライアントが排他的に使うためにサーバをグラブすることができる。
これにより、グラブが終了するまでは、他のクライアント接続からの全ての
リクエストの処理は止められる。
グラブは通常、ラバーバンド表示、ポップアップメニューや
分割できないリクエストの実行などのための一時的な状態にしかすぎない。
- シフトシーケンス(shift sequence)
- ISO-2022 では制御文字とエスケープシーケンスを定義している。
これは一時的(シングルシフト)あるいは恒久的に(ロッキングシフト)に
別の文字集合を有効にする(文字集合の「呼び出し」)。
- 兄弟ウィンドウ(sibling)
- 同じ親ウィンドウの子ウィンドウは兄弟ウィンドウと呼ばれる。
- スタッキング順(stacking order)
- 兄弟ウィンドウは、机の上に置いた複数の紙に似ており、お互いの上に積み重
ねることができる。
上にあるウィンドウは下のウィンドウの表示を隠し、入力を塞ぐ。
兄弟ウィンドウの関係はスタッキングオーダーと呼ばれる。
- 状態依存型エンコーディング(state-dependent encoding)
- 文字集合の呼び出しが複数の連続した文字に適用される文字集合。
状態依存型エンコーディングは「初期状態」で始まり、
バイト列に含まれる特定の「シフトシーケンス」に出会った時に
別の「シフト状態」に入る。
ISO-2022 の用語では、これはロッキングシフトの使用を意味し、
シングルシフトの使用は意味しない。
- 状態非依存型エンコーディング(state-independent encoding)
- 文字集合の呼び出しが固定されているか、ひとつの文字についてしか有効でな
い全てのエンコーディング。
ISO-2022 の用語では、これはせいぜいシングルシフトの使用を意味し、
ロッキングシフトの使用は意味しない。
- StaticColor
- StaticColor は
PseudoColorの退化した形として捉えられる。
つまり RGB 値が予め定義されており、読み取り専用である。
- StaticGray
- StaticGrayは
GrayScaleの退化した形として捉えられる。
つまりグレースケールの値は予め定義されており、読み取り専用である。
この値は普通は線形または線形に近い傾斜で増える。
- ステータス(status)
- Xlib 関数の多くは成功ステータスを返す。
しかし、関数が成功しなかったら、関数に与えた引き数は変更されない。
- スティプル(stipple)
- スティプルパターンとは、領域をタイルする際に前景色での塗り潰し(fill)
操作に対する追加のクリップマスクとして与えられるビットマップである。
- STRING エンコーディング(STRING encoding)
- Latin-1 にタブと改行を追加したもの。
- 文字列の同一性(string equivalence)
- 2 つの ISO Latin-1 STRING8 値が同一と考えられるのは、両者の長さが同じ
であり、かつ対応するバイト値が同じであるか、以下のように対応する場合
である。すなわち、
65 から 90 までの 10 進値(文字 ``A'' から ``Z'')は
97 から 122 までの 10 進値(文字 ``a'' から ``z'')と順に対応する。
192 から 214 までの 10 進値(文字 ``A grave'' から ``O diaeresis'')は
224 から 246 までの 10 進値(文字 ``a'' から ``o diaeresis'')と順に対応する。
216 から 222 までの 10 進値(文字 ``O oblique'' から ``THORN'')は
246 から 254 までの 10 進値(文字 ``o oblique'' から ``thorn'')と順に対応する。
- タイル(tile)
- ピックスマップを 2 次元的に並べて複製し、ある領域をタイル処理できる。
このピックスマップ自身もタイルと呼ばれる。
- タイムスタンプ(timestamp)
- タイムスタンプはミリ秒で表される時刻である。
これは普通、最後にサーバがリセットされてからの時間である。
タイムスタンプは周期的な値を持つ(49.7 日周期)
タイムスタンプ T で表される現在時刻をサーバが持っている場合、
クライアントから受け取ったタイムスタンプのサーバによる解釈では常に、
タイムスタンプ空間の半分は T より前の時刻として扱われ、
タイムスタンプ空間の半分は T より後の時刻として扱われる。
定数
CurrentTimeで表されるタイムスタンプ値をサーバが生成することはない。
この値はリクエスト内部で現在のサーバ時刻を表すために予約されている。
- TrueColor
- TrueColorは
DirectColorの退化した形であり、ピクセル値が持つサブフィールドが色に対応する RGB
を直接エンコードしているものとして捉えられる。
つまり、カラーマップは予め定義された読み取り専用の RGB 値を持っている。
この値は普通は線形または線形に近い傾斜で増える。
- 型(type)
- 型はプロパティデータの解釈を一意に決めるために使われる任意のアトムである。
サーバは型の解釈は全く行わない。
型はクライアントのためだけのものである。
X はよく使われる型の多くは型アトムとして予め定義しており、
クライアントも新しい型を定義できる。
- 表示可能(viewable)
- あるウィンドウとその祖先ウィンドウの全てマップされているならば、その
ウィンドウは表示可能である。
これはウィンドウの何らかの部分が実際に可視(visible)であることを意味しない。
ウィンドウが表示可能でなくてもグラフィックスリクエストを実行できるが、
サーバがバッキングストアを管理していない限り出力が保存されることはない。
- 可視(visible)
- ウィンドウの領域は、スクリーン上で実際に見ることができるなら可視
である。これは、ウィンドウが表示可能であり、かつその領域が他の
ウィンドウの陰になっていないということである。
- 空白文字(whitespace)
- 間隔を空けるための全ての文字。
ANSI C ライブラリに準拠した実装上では、空白文字は
isspaceが真を返す全ての文字である。
- ウィンドウグラビティ(window gravity)
- ウィンドウのサイズを変更した時、このウィンドウのどこかの位置を基準に
サブウィンドウの自動的な再配置が行われる。
このようにサブウィンドウが親ウィンドウのどこかの部分に引き寄せられるこ
とウィンドウのグラビティ(引力)と呼ぶ。
- ウィンドウマネージャ(window manager)
- スクリーン上のウィンドウの操作とユーザインターフェース(のポリシー)は、
通常はウィンドウマネージャクライアントが提供する。
- X ポータブル文字集合(Portable Character Set)
- X が対応している全てのロケールに存在すると思われる 97 個の文字からなる
基本的な文字集合。この集合は以下の文字を含む:
a..z A..Z 0..9
!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~
<space>, <tab>, and <newline>
- これは ISO8859-1 のグラフィックスキャラクタ集合の左下(また G0 集合と呼
ばれた)に <space>、<tab>、そして <newline> を加えたものである。
それは 7-bit ASCII のグラフィックスキャラクタの集合に同じ3つの制御文字
を加えたものでもある。
ホストにおけるこれらのキャラクタの実際のエンコーディングはシステムに依存する。
ホストポータブル文字エンコーディングの項を参照すること。
- XLFD
- X 論理フォント記述規約(X Logical Font Description Conventions)は、
構造化されたフォント名のための標準構文である。
- XY フォーマット(XY format)
- ピックスマップのデータが最上位ビットから最下位ビットへの順になった
プレーンを使って個々のビットプレーンを表したビットマップの集合として
構成されている場合、このピックスマップは XY フォーマットであると言われる。
- Z フォーマット(Z format)
- ピックスマップのデータがスキャンライン順に並んだピクセル値の集合によっ
て構成されている場合、このピックスマップは Z フォーマットであると言われる。
参考文献
ANSI Programming Language - C: ANSI X3.159-1989, December 14, 1989.
Draft Proposed Multibyte Extension of ANSI C, Draft 1.1, November 30,
1989, SC22/C WG/SWG IPSJ/ITSCJ Japan.
ISO2022: Information processing - ISO 7-bit and 8-bit coded character
sets - Code extension techniques.
ISO8859-1: Information processing - 8-bit single-byte coded graphic
character sets - Part 1: Latin alphabet No. 1.
POSIX: Information Technology - Portable Operating System Interface (POSIX) -
Part 1: System Application Program Interface (API) [C Language],
ISO/IEC 9945-1.
Text of ISO/IEC/DIS 9541-1, Information Processing - Font Information
Interchange - Part 1: Architecture.
X/Open Portability Guide, Issue 3, December 1988 (XPG3), X/Open Company,
Ltd, Prentice-Hall, Inc. 1989. ISBN 0-13-685835-8.
(See especially Volume 3: XSI Supplementary Definitions.)
目次に戻る