Window XCreateSimpleWindow(display, parent, x, y, width, height, border_width,
border, background)
Display *display;
Window parent;
int x, y;
unsigned int width, height;
unsigned int border_width;
unsigned long border;
unsigned long background;
座標系はX軸が水平方向、Y軸が垂直方向であり、左上隅が原点[0, 0]である。 座標は整数で、ピクセルが基準であり、ピクセルの中心と一致する。 各ウィンドウとピックスマップは自分自身の座標系を持つ。 ウィンドウについては、原点は左上隅の境界の内側である。
InputOnly のウィンドウの場合は border_width は 0 でなければならない。 そうでない場合、エラー BadMatch となる。 InputOutput クラスの場合、スクリーンに対してビジュアル型と深さの組み合わせが サポートされていなければならない。そうでない場合には、エラー BadMatch となる。 深さは親ウィンドウと同じである必要は無いが、親ウィンドウのクラスは InputOnly であってはならない。そうでない場合、エラー BadMatch となる。 InputOnly のウィンドウは深さが 0 でなければならず、スクリーンがサポートしている ビジュアルでなければならいない。 いずれかの条件が満たされない場合、エラー BadMatch となる。 しかし、親ウィンドウは任意の深さとクラスを持つことが考えられる。 ウィンドウに対して不正なウィンドウ属性を指定した場合、エラー BadMatch となる。
生成されたウィンドウは、その時点ではディスプレイに表示(マップ)されない。 ウィンドウを表示するには、 XMapWindow を呼び出す。 新しいウィンドウは初期状態では親ウィンドウと同じカーソルを使用する。 新しいウィンドウに新しいカーソルを定義する時は、 XDefineCursor を使う。 生成されたウィンドウは全ての祖先ウィンドウがマップされ、自身が祖先ウィ ンドウの陰に隠されないようになるまではスクリーンに表示されない。
XCreateWindow はエラー BadAlloc, BadColor, BadCursor, BadMatch, BadPixmap, BadValue, BadWindow を起こすことがある。
関数 XCreateSimpleWindow は指定した親ウィンドウに対して、マップされていない InputOutput のサブウィンドウを作り、そのウィンドウIDを返す。また、X サーバに CreateNotify イベントを生成させる。 生成されたウィンドウは兄弟ウィンドウに対してスタックの最も上に配置され る。 親ウィンドウの外にはみ出る部分は全てクリップされる。 InputOnly のウィンドウの border_width は 0 でなければならない。そうでない場合に は、エラー BadMatch となる。 XCreateSimpleWindow は親ウィンドウより深さ、クラス、ビジュアルを継承する。 これ以外のウィンドウ属性は、背景色を除いて全てデフォルト値になる。
XCreateSimpleWindow はエラー BadAlloc, BadMatch, BadValue, BadWindow を起こすことがある。
/* ウィンドウ属性値のマスクビット */
#define | CWBackPixmap |
(1L<<0)
|
#define | CWBackPixel |
(1L<<1)
|
#define | CWBorderPixmap |
(1L<<2)
|
#define | CWBorderPixel |
(1L<<3)
|
#define | CWBitGravity |
(1L<<4)
|
#define | CWWinGravity |
(1L<<5)
|
#define | CWBackingStore |
(1L<<6)
|
#define | CWBackingPlanes |
(1L<<7)
|
#define | CWBackingPixel |
(1L<<8)
|
#define | CWOverrideRedirect |
(1L<<9)
|
#define | CWSaveUnder |
(1L<<10)
|
#define | CWEventMask |
(1L<<11)
|
#define | CWDontPropagate |
(1L<<12)
|
#define | CWColormap |
(1L<<13)
|
#define | CWCursor |
(1L<<14)
|
/* 値 */ typedef struct { Pixmap background_pixmap;/* 背景ピクスマップ、None, ParentRelative のいずれか */ unsigned long background_pixel;/* 背景のピクセル */ Pixmap border_pixmap; /* ウィンドウの境界か CopyFromParent */ unsigned long border_pixel;/* 境界のピクセル値 */ int bit_gravity; /* bit gravity 値の 1 つ */ int win_gravity; /* window gravity 値の 1 つ */ int backing_store; /* NotUseful, WhenMapped, Always */ unsigned long backing_planes;/* 可能ならば保存されるプレーン */ unsigned long backing_pixel;/* プレーンの格納に使う値 */ Bool save_under; /* ビットを保存すべきかどうか(ポップアップ) */ long event_mask; /* 保存されるべきイベントの集合 */ long do_not_propagate_mask;/* 伝播させないイベントの集合 */ Bool override_redirect; /* override_redirect を示す真偽値 */ Colormap colormap; /* ウィンドウに対応するカラーマップ */ Cursor cursor; /* 表示されるカーソル(あるいは None) */ } XSetWindowAttributes;
この構造体のメンバの詳しい説明については Xlib - C Language X Interface を参照すること。