XConfigureWindow(3X11) — NEWS-OS Programmer’s Manual
名称
XConfigureWindow, XMoveWindow, XResizeWindow, XMoveResizeWindow, XSetWindowBorderWidth, XWindowChanges − ウィンドウを構成する、および構成を変更する
形式
XConfigureWindow(display, w, value_mask, values)
Display ∗display;
Window w;
unsigned int value_mask;
XWindowChanges ∗values; XMoveWindow(display, w, x, y)
Display ∗display;
Window w;
int x, y; XResizeWindow(display, w, width, height)
Display ∗display;
Window w;
unsigned int width, height; XMoveResizeWindow(display, w, x, y, width, height)
Display ∗display;
Window w;
int x, y;
unsigned int width, height; XSetWindowBorderWidth(display, w, width)
Display ∗display;
Window w;
unsigned int width;
引数
displayX サーバへのコネクションを指定します。
value_mask値構造の情報を使用して、どの値を設定するか指定します。 このマスクは、有効な構成ウィンドウ値のビットの、ビット単位の論理和です。
valuesXWindowChanges 構造体を指定します。
w再構成、移動、またはサイズ変更するウィンドウを指定します。
widthウィンドウボーダの幅と高さを指定します。
width
heightウィンドウの内部寸法である幅と高さを指定します 。
x
yx 座標、および y 座標を指定し、ウィンドウのボーダ、またはボーダがなければウィンドウそれ自体の上部左側のピクセルの新しい位置を定義するか、または親に対して相対的なウィンドウの新しい位置を定義します。
解説
XConfigureWindow 関数は、 XWindowChanges 構造体で指定した値を使用し、ウィンドウのサイズ、位置、およびスタック 順序を再構成します。 指定されなかった値は、ウィンドウの既存のジオメトリからとります。 stack_mode なしに同位ウィンドウを指定するか、またはウィンドウが実際に 同位でなければ、 BadMatch エラーが生じます。 なお、ウィンドウの最初のジオメトリではなく ( XConfigureWindow に渡される他の引数により制御される) 最終のジオメトリに関して、 BottomIf、 TopIf および Opposite の計算が行われることに注意してください。 そのウィンドウとその下に隠れるものと、新たに見るようになる他のウィン ドウのバッキングストアの内容は、現在のスクリーンの内容を反映するため に捨てられるか、または変更されます (インプリメンテーションに依存しま す)。 XConfigureWindow は、 BadMatch エラー、 BadValue エラー、 BadWindow エラーを生じることがあります。 XMoveWindow 関数は、指定されたウィンドウを、指定された x および y 座標に移動しま すが、ウィンドウのサイズを変更したり、ウィンドウをもち上げたり、ウィ ンドウのマッピング状態を変更したりすることはありません。マッピングさ れたウィンドウを移動すると、ウィンドウが子供でないものによって隠され た場合や、バッキングストアが存在しない場合に応じて、ウィンドウの内容 が失われることも、失われないこともあります。ウィンドウの内容が失われ ると、X サーバは Expose イベントを発生します。 マッピングされたウィンドウを移動すると、前に隠されていたウィンドウに Expose イベントを生成します。 ウィンドウの override-redirect フラグが False で、他のあるクライアントが親に SubstructureRedirectMask を選んでいる場合、X サーバは ConfigureRequest イベントを発生し、それ以上の処理は行われません。 さもなければ、ウィンドウは移動されます。 XMoveWindow は、 BadWindow エラーを生じることがあります。 XResizeWindow 関数は、指定されたウィンドウの内部寸法(ボーダを含まない) を変更し ます。 この関数は、ウィンドウの上部左側の座標、すなわち原点を変更しません し、ウィンドウを再スタックしません。 マッピングされたウィンドウのサイズを変更すると、内容が失われ Expose イベントを発生します。 マッピングされたウィンドウが小さくなった場合、サイズを変更するとマッ ピングされたウィンドウによって、前に隠されていたウィンドウに Expose イベントが生成されます。 ウィンドウの override-redirect が False で、他のあるクライアントが親に SubstructureRedirectMask を選んでいる場合、X サーバは ConfigureRequest イベントを発生し、その後の処理は行われません。 幅、または高さが 0 であれば、 BadValue エラーが生じます。 XResizeWindow は、 BadValue エラーと BadWindow エラーを生じることがあります。 XMoveResizeWindow 関数は、指定されたウィンドウをもち上げずに、そのサイズと 位置を変更します。 マッピングされたウィンドウを移動し、サイズを変更すると、そのウィンド ウに Expose イベントが生成されることがあります。 新しいサイズ、およびパラメータに応じて、そのウィンドウ を移動し、サイズを変更すると、そのウィンドウによって前に隠 されていたウィンドウに、 Expose イベントが生成されることがあります。 ウィンドウの override-redirect が False で、他のあるクライアントが親に SubstructureRedirectMask を選んでいる場合、X サーバは ConfigureRequest イベントを発生し、その後の処理は行われません。 さもなければ、ウィンドウのサイズ、および位置は変更されます。 XMoveResizeWindow は、 BadValue エラーと BadWindow エラーを生じることがあります。 XSetWindowBorderWidth 関数は、指定されたウィンドウのボーダ幅を、指定された幅に設定します。 XSetWindowBorderWidth は、 BadWindow エラーを生じることがあります。
構造体
XWindowChanges 構造体には、以下のものが含まれます。 /∗ Configure window value mask bits ∗/
| #define | CWX | (1<<0) |
| #define | CWY | (1<<1) |
| #define | CWWidth | (1<<2) |
| #define | CWHeight | (1<<3) |
| #define | CWBorderWidth | (1<<4) |
| #define | CWSibling | (1<<5) |
| #define | CWStackMode | (1<<6) |
/∗ Values ∗/
typedef struct {
int x, y;
int width, height;
int border_width;
Window sibling;
int stack_mode;
} XWindowChanges;
メンバ x、y は、ウィンドウの xy 座標を設定するのに使用されます。 これは、親の原点から相対的な座標で、 ウィンドウの外の左上の点の位置を示します。 width と height メンバは、ウィンドウの内側のサイズを設定するのに使用されます。 これには、枠は含まれません。 これらの値は、ゼロ以外でなければいけません。 ゼロの場合は、 BadValue エラーとなります。 ルートウィンドウの構成は、無視されます。 border_width メンバは、枠をピクセル値で指定するのに使用されます。 枠の幅だけを設定すると、 ウィンドウの外側の左の角の位置は固定ですが、 ウィンドウの原点の絶対位置は移動します。 InputOnly ウィンドウの border-width 属性を ゼロ以外の値に設定した場合は、 BadMatch エラーとなります。 sibling メンバは、兄弟のウィンドウをスタッキング操作に設定するのに 使用されます。 stack_mode メンバは、ウィンドウをどのようにスタック仕直すかを 指定するのに使用され、 Above、 Below、 TopIf、 BottomIf、 または Opposite のいずれかに設定できます。
診断
BadMatch InputOnly ウィンドウが Drawable として使用された。
BadMatch ある引数または、一組の引数の型と範囲は正しいが、 リクエストにより要求されたその他のなにかが一致しない。
BadValue ある数値が許容範囲を超えた。引数の値の範囲が明示されない限り、引数の 型によって決まる最大の範囲まで指定可能です。 オルタネイト選択形式の引数も、このエラーを生じることがあります。
BadWindow
Window 引数の値が、定義された Window を指さない。
関連事項
XChangeWindowAttributes(3X11), XCreateWindow(3X11), XDestroyWindow(3X11), XMapWindow(3X11), XRaiseWindow(3X11), XUnmapWindow(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 4.2.1R