XtAllocateGC(3) 変更可能なフィールドを持ち、共有可能な GC を取得する

書式

GC XtAllocateGC(w, depth, value_mask, values, dynamic_mask, unused_mask)

      Widget w;

      Cardinal depth;

      XtGCMask value_mask;

      XGCValues *values;

      XtGCMask dynamic_mask;

      XtGCMask unused_mask;

引き数

values
GC に設定する実際の値を指定。
value_mask
GCのどのフィールドを設定するかのマスクを指定。
w
ウィジェットを指定。
depth
返される GC が有効である深さを指定するか、0 を指定する。
dynamic_mask
呼び出し側によって変更される GC のフィールドを指定。
unused_mask
呼び出し側が必要としない GC のフィールドを指定。

説明

関数 XtAllocateGC は、クライアントが変更することができる共有可能な GC を返す。 指定されたウィジェットまたは指定されたオブジェクトに最も近い祖先ウィジェッ トと、指定された引き数 depth は、その GC が有効であるようなルート ウィンドウとドロウアブルの深さを与える。depth が 0 ならば、この 深さには、指定されたウィジェットまたは指定されたオブジェクトに最も近い 祖先ウィジェットの depth フィールドが使われる。

引き数 value_mask には、values 構造体の各メンバで初期化する GC のフィールドを指定する。 引き数 dynamic_mask は、呼び出し側がプログラム実行中に変更するつも りのフィールドを指定する。呼び出し側は、GC を使う前にマスク値に対応す るフィールドがセットされることを保証しなければならない。引き数 unused_mask は、呼び出し側が使わない GC のフィールドを指定する。 呼び出し側は、unused_mask で指定したフィールドの内容を想定するこ とはできない。dynamic_mask でも unused_mask でも指定されて いない全てのフィールドは、常にデフォルト値を持っていることを仮定するこ とができる。ただし、value_maskvalues の値が指定されて いる場合はこの限りではない。 value_mask と dynamic_mask との両方で指定されているフィー ルドがある場合の関数の実行結果は、dynamic_mask だけが指定され、 そのすぐ後に values の値がセットされた場合と同じである。 unused_mask で指定されているフィールドが、value_mask また は dynamic_mask でも指定されている場合には、unused_mask で の指定は無視される。

XtAllocateGC は、以前の呼び出しの際の引き数と今回の引き数との比較を行い、これが干渉しな い場合には既存の GC を返すことにより、単体で割り当てられる GC の数を最 小にする。 0 でない値を持つ unused_mask に対して GC が割り当てられている場合、 XtAllocateGC はこの GC を変更して返すことがある。