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;
stack_mode 無しで siblng が指定されているか、そのウィンドウが実際には 兄弟ウィンドウでない場合には、エラー BadMatch となる。 BottomIf, TopIf, Opposite の計算は、ウィンドウの最初のジオメトリではなく、( XConfigureWindow に渡された他の引き数に制御された)最終的なジオメトリに関して実行される。 ウィンドウ、下位ウィンドウ、新しく可視状態になったウィンドウのバッキン グストアの内容やは破棄されるか、スクリーンの最新の内容を反映するように 変更される(これは実装による)。
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 を起こすことがある。
/* ウィンドウ設定のマスクビット値 */
#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 メンバはウィンドウの x, y 座標をセットするために用いる。 これは親ウィンドウの原点に対する相対座標で、ウィンドウの左上外側の隅の 位置を示す。 width, height メンバはウィンドウの内側の大きさをセットするために用いる。 これは境界は含まない 0 以外の値でなければならず、そうでない場合にはエ ラー BadValue となる。 ルートウィンドウを設定しようとしても何も起こらない。
border_width メンバでは、ウィンドウ境界の幅をピクセル単位で指定する。 境界幅だけをセットすると、ウィンドウ左上外側の隅の位置は変わらないが、 ウィンドウの原点の絶対位置が移動する。 InputOnly のウィンドウの border-width 属性値に 0 でない値をセットしようとした場 合には、エラー BadMatch となる。
sibling メンバには、スタック操作につかう兄弟ウィンドウをセットする。 stack_mode メンバでは、ウィンドウがどのように再スタックされるかを指定 する。指定できる値は Above, Below, TopIf, BottomIf, Opposite. のいずれかである。