Solaris X Window System 開発ガイド

複数の条件集合

このルーチンでは、優先順位の高い順に条件集合を指定することができます。すなわち、単一の呼び出しで複数の条件集合が指定できます。まず、最初の条件集合に合致するビジュアルの探索がルーチンにより行われ、最初の条件集合のすべてのハード条件を満たすビジュアルが見つかると、そのビジュアルが選択されます。そのようなビジュアルが見つからない場合は、2 番目の条件集合を使用して探索が続けられます。このような手続きは、特定の条件集合のすべてのハード条件を満たすビジュアルが見つかるか、すべての条件集合のテストが終了するまで続けられます。すなわち、この優先順位の仕組みでは、もっとも望ましいビジュアルを最初の条件集合として指定し、それより優先度の低いビジュアルについては 2 番目以降の条件集合として指定すればよいわけです。この仕組みにより、単一のサブルーチン呼び出しで、ビジュアルに関するユーザーの要求を優先順位の高い順に探索することができます。

特定の条件集合では、任意の条件をハード条件またはソフト条件として指定することができます。特定の条件の hardCriteriaMask は、探索時にハード条件として指定する条件ビットマスクの論理和です。同様に、softCriteriaMask はソフト条件ビットマスクの論理和です。

条件の中には特定の値を取るものがあります。これらの値は、XSolarisOvlVisualCriteria 構造体の他のデータメンバによって提供されます。以下の条件の説明では、これらのデータメンバを必要に応じて取り上げます。

条件集合の hardCriteriaMask をゼロに設定すると、任意のビジュアルがその条件集合のハード条件を満たすことになります。同様に、条件集合の softCriteriaMaskゼロに設定すると、その条件集合のソフト条件は必ず満たされることになります。