XConfigureWindow(3X11)

名前
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;

引き数

display
    X サーバへの接続を指定する。

value_mask
    構造体の値を使って設定する対象の値を指定する。 このマスクは有効なウィンドウ設定値ビットの論理和である。

values
    構造体を指定する。

w   再設定、移動、サイズ変更を行なうウィンドウを指定する。

width
    ウィンドウ境界の幅を指定する。

width

height
    ウィンドウの幅と高さを指定する。 これはウィンドウの内側の大きさである。

x

y   x, y 座標を指定する。 これらの値はウィンドウの境界の左上の新しい位置を定義するが、 境界を持たないウィンドウの場合はウィンドウ自身の左上の位置を示す。 新しい値は親ウィンドウに対する相対座標で表される。

説明
関数 は 構造体で指定された値を用いて、ウィンドウの大きさ、位置、境界、スタック 順を再設定する。 指定されていない値は、そのウィンドウの現在のジオメトリから求める。

stack_mode でないのに兄弟ウィンドウが指定されている場合と、 指定したウィンドウが実際には兄弟ウィンドウでない場合には、エラー となる。 の計算は、ウィンドウの最初のジオメトリではなく、( に渡された他の引き数によって操作された)最終的なジオメトリに関して実行される。 ウィンドウ、下位ウィンドウ、新しく可視状態になったウィンドウの バッキングストアの内容は破棄されるか、スクリーンの最新の内容を 反映するように変更される(実際にどうなるかは実装による)。

はエラー を起こすことがある。

関数 は指定したウィンドウを指定した x, y 座標へ移動させる。 ただし、ウィンドウの大きさやマッピングの状態を変更したり、 ウィンドウを前面に移動させたりはしない。 マップされたウィンドウを動かすと、ウィンドウの表示内容が失われることが あるし、そうでないこともある。 これは動かしたウィンドウが子でないウィンドウに隠されているかどうか、 あるいはバッキングストアが存在するかどうかによる。 ウィンドウの表示内容が失われた場合、X サーバは イベントを生成する。 マップされているウィンドウを動かすと、それまでそのウィンドウに隠されて いたウィンドウで イベントが生じる。

ウィンドウの override-redirect フラグが であり、かつ親ウィンドウで を選択している他のウィンドウがある場合、X サーバは を生成し、それ以上の処理は行わない。 それ以外の場合は、ウィンドウの移動が起こる。

はエラー を起こすことがある。

関数 は指定したウィンドウの、境界を含まない内部の大きさを変更する。 この関数は、ウィンドウの左上の座標や原点を変更しないし、ウィンドウの 再スタックも行わない。 マップされているウィンドウのサイズを変えると表示内容が失われて イベントが生成されることがある。 マップされているウィンドウのサイズを小さくすると、それまでその ウィンドウに隠されていた他のウィンドウで イベントが生成される。

ウィンドウの override-redirect フラグが であり、かつ親ウィンドウ上で を選択している他のクライアントがある場合、X サーバは を生成し、それ以上の処理は行わない。 幅と高さのいずれかが 0 の場合、エラー となる。

はエラー を起こすことがある。

関数 は指定したウィンドウの大きさと位置を変える。 ウィンドウの前面への移動は行わない。 マップされているウィンドウの移動やサイズ変更を行った場合、 そのウィンドウで イベントが起こることがある。 ウィンドウの移動の際のサイズと位置のパラメータによっては、 それまでそのウィンドウに隠されていたウィンドウで イベントが起こることがある。

ウィンドウの override-redirect フラグが であり、かつ親ウィンドウ上で を選択している他のクライアントがある場合、X サーバは を生成し、それ以上の処理は行わない。 そうでない場合、ウィンドウのサイズや位置は変更される。

はエラー を起こすことがある。

関数 は指定したウィンドウの境界の幅を指定したサイズにする。

はエラー を起こすことがある。

構造体
構造体の内容を示す:

#define |  | (1<<0)
#define |  | (1<<1)
#define |  | (1<<2)
#define |  | (1<<3)
#define |  | (1<<4)
#define |  | (1<<5)
#define |  | (1<<6)
typedef struct {
    int x, y;
    int width, height;
    int border_width;
    Window sibling;
    int stack_mode; } XWindowChanges;

x, y メンバはウィンドウの x, y 座標をセットするために用いる。 これは親ウィンドウの原点に対する相対座標で、ウィンドウの左上外側の隅の 位置を示す。 width, height メンバはウィンドウの内側の大きさをセットするために用いる。 これは境界は含まない 0 以外の値でなければならず、そうでない場合にはエ ラー となる。 ルートウィンドウを設定しようとしても何も起こらない。

border_width メンバでは、ウィンドウ境界の幅をピクセル単位で指定する。 境界幅だけをセットすると、ウィンドウ左上外側の隅の位置は変わらないが、 ウィンドウの原点の絶対位置が移動する。 のウィンドウの border-width 属性値に 0 でない値をセットしようとした場 合には、エラー となる。

sibling メンバには、スタック操作につかう兄弟ウィンドウをセットする。 stack_mode メンバでは、ウィンドウがどのように再スタックされるかを指定 する。指定できる値は のいずれかである。

返り値

のウィンドウをドロウアブルとして用いた。

引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する
    他の条件に適合できなかった。

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

引き数 Window の値が、定義されている Window を指していない。

関連項目
XChangeWindowAttributes(3X11), XCreateWindow(3X11), XDestroyWindow(3X11), XMapWindow(3X11), XRaiseWindow(3X11), XUnmapWindow(3X11)
Xlib - C Language X Interface