XWMGeometry(3) ウィンドウのジオメトリの解析

Other Alias

XParseGeometry

書式

int XParseGeometry(parsestring, x_return, y_return, width_return, height_return)

      char *parsestring;

      int *x_return, *y_return

      unsigned int *width_return, *height_return;

int XWMGeometry(display, screen, user_geom, def_geom, bwidth, hints, x_return, y_return,

                width_returnheight_returngravity_return)

      Display *display;

      int screen;

      char *user_geom;

      char *def_geom;

      unsigned int bwidth;

      XSizeHints *hints;

      int *x_return, *y_return

      int *width_return;

      int *height_return;

      int *gravity_return;

引き数

position

default_position
ジオメトリ指定を与える。
display
X サーバへの接続を指定する。
fheight

fwidth
フォントの高さと幅をピクセル単位で指定する(増加サイズ量)。
parsestring
解析する文字列を指定する。
screen
スクリーンを指定する。
width_return

height_return
決定された幅と高さが返される。
xadder

yadder
ウィンドウに必要とされる追加的な内側のパディングを指定する。
x_return

y_return
x, y のオフセットが返される。
bwidth
境界幅を指定する。
hints
通常の状態での、ウィンドウのサイズのヒントを指定する。
def_geom
アプリケーションのデフォルトのジオメトリか NULL を指定する。
gravity_return
ウィンドウの gravity 値が返される。
user_geom
ユーザ指定のジオメトリか NULL を指定する。

説明

伝統的に X のアプリケーションでは、標準の文字列を使って ウィンドウのサイズや位置を指定する。 XParseGeometry を使うと標準のウィンドウのジオメトリを解析することができるので、 アプリケーションをこの標準に準拠させることが簡単に行える。 具体的には、この関数は次の形式の文字列を解析する。

[=][<width>{xX}<height>][{+-}<xoffset>{+-}<yoffset>] 

各フィールドはこの関数の引き数に対応する。 (<> で囲んだものは整数、[] で囲んだものは省略可能、{} で囲んだも のは「どれか1つの選択」を意味する。 実際の文字列には括弧が現われてはならないので注意すること。) 文字列のエンコーディングがホストポータブル文字エンコーディングでない場合の 結果は実装依存である。

関数 XParseGeometry は、4 つの値(width, height, xoffset, yoffset)のうち実際に文字列中で 設定されているものと、x, y の値が負でないかどうかを示すビットマスク を返す。 伝統的には、-0 と +0 は異なる値である。ユーザは「画面の右端あるいは下 端からの相対座標」を指定する必要があるからである。 見つかったそれぞれの値に対して、対応する引き数が更新される。 見つからなかった値については、引き数は変更されないままである。 ビットは XValue, YValue, WidthValue, HeightValue, XNegative, YNegative で表現される。これは <X11/Xutil.h> で定義されている。 値のうちのいずれかか符号のうちのいずれかが文字列中に現われていれば、このビットは 必ず設定される。

この関数が XValue フラグか YValue フラグを返した場合、クライアントは要求された位置にウィンドウを配置すべ きである。

The 関数 XWMGeometry は、ユーザやこの関数を呼び出したプログラムが指定した何らかのジオメトリ 情報( XParseGeometry で使用されるフォーマット)をサイズヒント(普通は WM_NORMAL_HINTS に格納 されているヒント)と結びつけ、ウィンドウを記述する位置、サイズ、gravity 値 (NorthWestGravity, NorthEastGravity, SouthEastGravity, SouthWestGravity のいずれか)を返す。 XSizeHints 構造体に基本サイズが設定されていない場合には、最小サイズが設定されてい ればこれを使用する。 そうでない場合には、基本サイズは 0 とされる。 ヒント構造体に最小サイズが設定されていない場合は、基本サイズが使用され る。 この関数は( XParseGeometry が返す形式の)マスク値を返す。 この値は、どの値がユーザ指定であるか、ウィンドウの位置は画面右端や下端か らの相対座標であるかどうかを示す。 これらの座標は既に、x_return, y_return の値として処理されている点に注 意すること。

また、不正なジオメトリを指定すると高さや幅として 0 が返される場合が ある点に注意すること。 関数を呼ぶ時には、ヒントを直接更新するためにヒントの win_gravity フィールドのアドレスを渡してもよい。