XWindowAttributes(3) ウィンドウの現在の属性とジオメトリを取得する関数、現在のウィンドウ属性の構造体

Other Alias

XGetWindowAttributes, XGetGeometry

書式

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_returnborder_width_returndepth_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
境界の幅のピクセル数が返される。
d
ドロウアブルを指定する。 これはウィンドウかピックスマップである。
depth_return
ドロウアブルの深さが返される(オブジェクトのピクセルごとのビット数)。
display
X サーバへの接続を指定する。
root_return
ルートウィンドウを指定する。
w
現在の属性値を取得する対象のウィンドウを指定する。
width_return

height_return
ドロウアブルのディメンジョン(幅と高さ)が返される。
window_attributes_return
XWindowAttributes 構造体の指定したウィンドウ属性値が返される。
x_return

y_return
ドロウアブルの位置を定義する x, y 座標が返される。 ウィンドウの場合、この座標は親ウィンドウの原点に対する相対座標であり、 左上外側の隅を示す。 ピックスマップの場合は、x, y 座標は常に 0 である。

説明

関数 XGetWindowAttributes は指定したウィンドウの現在の属性値を XWindowAttributes 構造体に返す。

XGetWindowAttributes はエラー BadDrawable, BadWindow を起こすことがある。

関数 XGetGeometry はドロウアブルの現在のジオメトリとルートウィンドウを返す。 ドロウアブルのジオメトリは、x, y 座標、幅と高さ、境界の幅、深さを持つ。 これらは引き数リストに記述される。 この関数にクラスが InputOnly であるウィンドウを渡すことは正しい指定である。

構造体

XWindowAttributes 構造体の内容を示す。

typedef struct {
     int x, y;                
     int width, height;       
     int border_width;        
     int depth;               
     Visual *visual;          
     Window root;             
     int class;               
     int bit_gravity;         
     int win_gravity;         
     int backing_store;       
     unsigned long backing_planes;
     unsigned long backing_pixel;
     Bool save_under;         
     Colormap colormap;       
     Bool map_installed;      
     int map_state;           
     long all_event_masks;    
     long your_event_mask;    
     long do_not_propagate_mask;
     Bool override_redirect;  
     Screen *screen;          
} XWindowAttributes;

x, y メンバには、ウィンドウの左上外側の隅の座標が、原点に対する 相対座標で設定される。 width, height メンバには、境界を含まないウィンドウ内部のサイズが設定 される。 border_width メンバには、ウィンドウの幅のピクセル数が設定される。 depth メンバにはウィンドウの深さ(つまり、オブジェクトのピクセルごとの ビット数)が設定される。 visual メンバはスクリーンの対応する Visual 構造体へのポインタである。 root メンバには、このウィンドウがあるスクリーンのルートウィンドウがセッ トされる。 class メンバにはウィンドウのクラスが設定される。 これは InputOutputInputOnly のいずれかである。

bit_gravity メンバにはウィンドウの bit gravity 値が設定される。 これは以下のいずれかである:

ForgetGravity EastGravity
NorthWestGravity SouthWestGravity
NorthGravity SouthGravity
NorthEastGravity SouthEastGravity
WestGravity StaticGravity

win_gravity メンバにはウィンドウの window gravity 値が設定される。 これは以下のいずれかである:

UnmapGravity EastGravity
NorthWestGravity SouthWestGravity
NorthGravity SouthGravity
NorthEastGravity SouthEastGravity
WestGravity StaticGravity

For additional information on gravity, see section 3.3.

backing_store メンバは、ウィンドウの内容をどのように保持すべきか指定す る。この値は、 WhenMapped, Always, NotUseful のいずれかである。 backing_planes メンバは、バッキングストアやセーブアンダーで保存しなけ ればならない動的なデータを、ウィンドウのどのビットプレーンが保持するの かを指示する(ビットに 1 が設定される)。 backing_pixel メンバは、backing_planes に設定されていないプレーンに 対して、どの値を使用するのかを示す。

save_under メンバには TrueFalse が設定される。 colormap メンバには指定したウィンドウのカラーマップが設定される。 このメンバの取る値はカラーマップの ID か None である。 map_installed メンバはカラーマップが現在インストールされているかどうか を示す。このメンバの取る値は、 TrueFalse である。 map_state メンバはウィンドウの状態を示し、 IsUnmapped, IsUnviewable, IsViewable のいずれかの値を取る。 IsUnviewable は、そのウィンドウ自体はマップされているが祖先ウィンドウにマップされて いないものがある場合に使用される。

all_event_masks メンバは、そのウィンドウ上で選択しているイベントマスク を全てのクライアントについてビットごとの論理和を取ったものである。 your_event_mask メンバは問い合わせをしたクライアントが選択している全て のイベントマスクの論理和を取ったものである。 do_not_propagate_mask メンバは、伝播してはならないイベントの集合につい てビットごとの論理和を取ったものである。

override_redirect メンバは、このウィンドウがウィンドウ構成の制御を無視 するかどうかを指定する。このメンバの取る値は TrueFalse である。 このメンバが True ならば、ウィンドウマネージャはそのウィンドウを無視すべきである。

screen メンバには、正しいスクリーンを指すバックポインタを与える スクリーンへのポインタが設定される。 これにより、ルートウィンドウのフィールドを使ったループでマッチする フィールドを探すことなく、容易にスクリーン情報を取得することができる。

返り値

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