XGetWindowAttributes(3X11) — NEWS-OS Programmer’s Manual
− get current window attribute or geometry and current window attributes structure
名称
XGetWindowAttributes, XGetGeometry, XWindowAttributes − ウィンドウの属性およびジオメトリを問合わせる また、ウィンドウのジオメトリ、特性、および属性を含む構造体
形式
Status XGetWindowAttributes(display, w, window_attributes_return)
Display ∗display;
Window w;
XWindowAttributes ∗window_attributes_return; Status XGetGeometry(display, d, root_return, x_return, y_return, width_return,
height_return, border_width_return, depth_return)
Display ∗display;
Drawable d;
Window ∗root_return;
int ∗x_return, ∗y_return;
unsigned int ∗width_return, ∗height_return;
unsigned int ∗border_width_return;
unsigned int ∗depth_return;
引数
border_width_return
ボーダ幅をピクセル単位で返します。
ddrawable を指定します。これは、ウィンドウであるかまたはピクスマップであることがあります。
depth_returndrawable のデプスを返します ( オブジェクトの 1 ピクセルについての ビット ) 。
displayX サーバへのコネクションを指定します。
root_returnルートウィンドウを返します。
w属性を得たいウィンドウを指定します。 whose current attributes you want to obtain.
width_return
height_return
drawable のサイズ ( 幅と高さ ) を返します。
window_attributes_return
指定されたウィンドウの属性を XWindowAttributes 構造体に返します。
x_return
y_returndrawable の位置を定義する x - y 座標を返します。 ウィンドウの場合、 これらの座標は、親の原点に対する左上外側コーナを指定します。 ピックスマップの場合、これらの座標は必ず 0 です。
解説
XGetWindowAttributes 関数は、 XWindowAttributes 構造体に、指定されたウィンドウの現在の属性を返します。 XGetWindowAttributes 関数は、 BadDrawable および BadWindow エラーを生じることがあります。 XGetGeometry 関数は、 drawable の現在のジオメトリ、およびルートウィンドウを返します。 drawable のジオメトリには、 x - y 座標、幅と高さ、ボーダ幅および デプスが含まれます。 これらについては、引数リストで説明しています。 この関数に、クラスが InputOnly であるウィンドウを渡すのは適正です。
構造体
XWindowAttributes 構造体は次のように定義されています。
typedef struct {
int x, y;/∗ ウィンドウの位置 ∗/
int width, height;/∗ ウィンドウの幅と高さ ∗/
int border_width;/∗ ウィンドウのボーダ幅 ∗/
int depth;/∗ ウィンドウのデプス ∗/
Visual ∗visual;/∗ 関連するビジュアル構造体 ∗/
Window root;/∗ ウィンドウを含む画面のルート ∗/
int class;/∗ InputOutput, InputOnly∗/
int bit_gravity;/∗ ビットグラビティ ∗/
int win_gravity;/∗ ウィンドウグラビティ ∗/
int backing_store;/∗ NotUseful, WhenMapped, Always ∗/
unsigned long backing_planes;/∗ 可能なら保存すべきプレーン ∗/
unsigned long backing_pixel;/∗ プレーンを復元するとき使う値 ∗/
Bool save_under;/∗ セーブアンダーするべきかを表す論理値 ∗/
Colormap colormap;/∗ ウィンドウに対応するカラーマップ ∗/
Bool map_installed;/∗ カラーマップが現在インストールされているか ∗/
int map_state;/∗ IsUnmapped, IsUnviewable, IsViewable ∗/
long all_event_masks;/∗ 全てのアプリケーションで指定されているイベントの集合 ∗/
long your_event_mask;/∗ このアプリケーション自身のイベントマスク ∗/
long do_not_propagate_mask;/∗ 伝播すべきでないイベントの集合 ∗/
Bool override_redirect;/∗ override-redirect 用の論理値 ∗/
Screen ∗screen;/∗ 正しい画面へのバックポインタ ∗/
} XWindowAttributes;
x および y には、左上外側のかどの親ウィンドウの原点に対する相対座標 が入ります。 width および height には、ボーダを含まない、ウィンドウの内側のサイズ が入ります。 border_width は、ウィンドウのボーダのピクセル幅です。 depth はウィンドウのデプス(オブジェクトのピクセル当たりのビット数) です。 visual は、スクリーンに対応する Visual 構造体へのポインタです。 root は、そのウィンドウを含むスクリーンの ルートウィンドウへのポインタです。 class はウィンドウのクラスであり、 InputOutput あるいは InputOnly のどちらかです。 bit_gravity はウィンドウのビットグラビティであり、次のうちのいずれか になります。
| ForgetGravity | EastGravity |
| NorthWestGravity | SouthWestGravity |
| NorthGravity | SouthGravity |
| NorthEastGravity | SouthEastGravity |
| WestGravity | StaticGravity CenterGravity |
win_gravity はウィンドウのウィンドウグラビティであり、次のうちの いずれかになります。
| UnmapGravity | EastGravity |
| NorthWestGravity | SouthWestGravity |
| NorthGravity | SouthGravity |
| NorthEastGravity | SouthEastGravity |
| WestGravity | StaticGravity CenterGravity |
グラビティについての詳細は section 3.3 を参照してください。 backing_store は X サーバがウィンドウの内容をどう扱えばよいかを示し、 WhenMapped、 Always、または NotUseful のいずれかになります。 backing_planes は、ウィンドウのどのビットプレーンが、save_under が 真で backing_store で指示されているときに 保存すべきダイナミックデータを保持しているかを、ビットを1にすることで 表します。 backing_pixel は、backing_planes で指示されていないプレーンに対して 用いる値を表します。 save_under は、 True あるいは False になります。 colormap は指定したウィンドウのカラーマップであり、 カラーマップ ID か、 None となります。 map_installed はカラーマップが現在インストールされているかどうかを True または False で示します。 map_state はウィンドウの状態を、 IsUnmapped、 IsUnviewable、 または IsViewable で表します。 IsUnviewableは、そのウィンドウはマップされているが、 マップされていない祖先がある場合に用いられます。 all_event_mask は、すべてのクライアントによってそのウィンドウに ついて指定されている一連のイベントマスクのビット論理和です。 your_event_mask は、そのクライアント自身によって設定されているすべての イベントマスクのビット論理和です。 do_not_propagete_mask は、伝播してはならないイベントの集合の ビット論理和です。 override_redirect は、このウィンドウが structure control facilities を無効とするかを、 True または False で表します。ウィンドウマネージャクライアントは、このメンバが True の場合、このウィンドウを無視します。 screen は正しい画面へのバックポインタです。 これを使えば、ルートウィンドウのどのフィールドが一致するか、 片っ端から探すことなく、容易に画面情報が得られます。
診断
BadDrawable
Drawable 引数の値が定義された Window または Pixmap を指さない。
BadWindow
Window 引数の値が、定義された Window を指さない。
関連事項
XQueryPointer(3X11), XQueryTree(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 4.1C