XParseGeometry(3X11) — NEWS-OS Programmer’s Manual
名称
XParseGeometry, XWMGeometry − ウィンドウジオメトリをパースする
形式
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_return, height_return, gravity_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
ジオメトリ指定を指定します。
displayX サーバへの接続を指定します。
fheight
fwidthフォントの高さと幅をピクセル値 (増えるサイズ) で指定します。
parsestringパースしたい文字列を指定します。
screenスクリーンを指定します。
width_return
height_return
決定した幅と高さを返します。
xadder
yadderウィンドウに必要な、内部的追加のパディングを指定します。
x_return
y_returnx と y のオフセットを返します。
bwidth枠の幅を指定します。
hints通常時のウィンドウのサイズヒントを指定します。
def_geomアプリケーションのデフォルトジオメトリ、あるいはナルを指定します。
gravity_return
ウィンドウのグラビティを返します。
user_geomユーザ定義のジオメトリ、あるいはナルを指定します。
解説
通例、X のアプリケーションは、ウィンドウのサイズおよび場所を表すのに 標準文字列を使用します。 XParseGeometry は標準ウィンドウグラビティをパースできるため、 これを使用することで、この標準に準拠しやすくなります。 特に、この関数は、以下の形式の文字列をパースすることもできます。
[=][<width>{xX}<height>][{+−}<xoffset>{+−}<yoffset>]
フィールドは、この関数に関連した引数にマップします。 (<> で囲まれた項目は整数で、 [] で囲まれた項目はオプショナルで、 {} で囲まれた項目は、それらの中から 1 つ選ぶことを意味します。 実際の文字列にはカッコが使用できないので、ご注意ください。) 文字列がホストポータブル文字コード (Host Portable Character Encoding) にない場合は、 結果は、インプリメンテーションにより異なります。 XParseGeometry 関数は、以下の 4 つの値 (width、height、xoffset、yoffset) の内、 実際どれが文字列に存在するか、 そして x と y が負の数かどうかを表すビットマスクを返します。 通例、−0 は +0 とは等しくありません。 これにより、ユーザは “右あるいは下の端から相対的な位置にウィンドウを位置づける ” ことができます。 各値が見つかった場合、対応する引数がアップデートされます。 対応する値がない場合は、引数は変更されず、そのままです。 ビットは、 XValue、 YValue、 WidthValue、 HeightValue、 XNegative、 または YNegative で表され、 <X11/Xutil.h> に定義されています。 どれか 1 つでも値が定義された場合、 またはどれか 1 つでも符合が設定された場合に、 これらは設定されます。 関数が、 XValue または YValue フラグを返した場合、 ウィンドウを、要求された場所に置かなければいけません。 XWMGeometry 関数は、ユーザが指定した任意のジオメトリ情報 ( XParseGeometry で使用される形式で与えられたもの) と プログラムにサイズヒントを渡して指定したジオメトリ情報 (通常、WM_NORMAL_HINTS に格納されているもの) を結合し、ウィンドウを表す、位置、サイズ、およびグラビティ (NorthWestGravity、 NorthEastGravity、 SouthEastGravity、 または SouthWestGravity) を返します。 基本のサイズが XSizeHints 構造体に設定されていない場合は、 設定可能な最小サイズが使用されます。 そうでない場合は、基本サイズはゼロとみなされます。 ヒント構造体に最小サイズが設定されていない場合は、 基本サイズが使用されます。 どの値がユーザが指定したものか、また、 位置を表す座標値が右下の端からの相対位置かどうかを表すマスク ( XParseGeometry が返す形式のもの) を返します。 これらの座標値は、x_return と y_return 値ですでに設定されているので ご注意ください。 不法なジオメトリを指定した場合、 width または height がゼロになることがあるのでご注意ください。 ヒントを直接アップデートするのに、 ヒントの win_gravity フィールドのアドレスを gravity_return として 渡しても構いません。
関連事項
XSetWMProperties(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 4.2.1R