Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XGetWMSizeHints(3X11) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XAllocClassHint(3X11)

XAllocIconSize(3X11)

XAllocWMHints(3X11)

XFree(3X11)

XSetCommand(3X11)

XSetTransientForHint(3X11)

XSetTextProperty(3X11)

XSetWMClientMachine(3X11)

XSetWMColormapWindows(3X11)

XSetWMIconName(3X11)

XSetWMName(3X11)

XSetWMProperties(3X11)

XSetWMProtocols(3X11)

XStringListToTextProperty(3X11)

XAllocSizeHints(3X11)  —  NEWS-OS Programmer’s Manual

関数

XAllocSizeHints, XSetWMNormalHints, XGetWMNormalHints, XSetWMSizeHints, XGetWMSizeHints, XSizeHints − サイズヒント構造体を割り当て、 ウィンドウのWM_NORMAL_HINTS属性を設定または読む。

シンタックス

XSizeHints ∗XAllocSizeHints() void XSetWMNormalHints(display, w, hints)
      Display ∗display;
      Window w;
      XSizeHints ∗hints; Status XGetWMNormalHints(display, w, hints_return, supplied_return)
      Display ∗display;
      Window w;
      XSizeHints ∗hints_return;
      long ∗supplied_return; void XSetWMSizeHints(display, w, hints, property)
      Display ∗display;
      Window w;
      XSizeHints ∗hints;
      Atom property; Status XGetWMSizeHints(display, w, hints_return, supplied_return, property)
      Display ∗display;
      Window w;
      XSizeHints ∗hints_return;
      long ∗supplied_return;
      Atom property;

引き数

displayXサーバへの接続を指定します。

hints通常時のウィンドウのサイズヒントを指定します。

hintsXSizeHints 構造体を指定します。

hints_return通常時のウィンドウのサイズヒントを返します。

property属性名を指定します。

supplied_return
ユーザから提供されたヒントを返します。

wウィンドウを指定します。

解説

XAllocSizeHints 関数は XSizeHints 構造体へのポインターを割り当て、返します。 なお、 XSizeHints 構造体の全てのフィールドがゼロに初期設定されていること。 メモリに必要な領域が不足する場合、 XAllocSizeHints はナルを返します。 この構造体に割り当てられるメモリを開放する為に、 XFree を使います。 XSetWMNormalHints 関数は、 指定したウィンドウ上のWM_NORMAL_HINTS属性のサイズヒントを交換します。 その属性が存在しない場合、 XSetWMNormalHints は指定ウィンドウ上のWM_NORMAL_HINTS属性のサイズヒントを設定します。 その属性は、 タイプがWM_SIZE_HINTS、 フォーマットが32で格納されます。 XSetWMNormalHints で発生するエラーには、 BadAlloc および BadWindow エラーがあります。 XGetWMNormalHints 関数は、 指定ウィンドウ上のWM_NORMAL_HINTS属性で格納されたサイズヒントを返します。 もし、 その属性がWM_SIZE_HINTSタイプの32フォーマットであり、 旧型(ICCCM以前)または新型のサイズヒント構造体のどちらかを保持出来る程の長さであれば、 XGetWMNormalHints は XSizeHints 構造体の各フィールドを設定し、 ユーザが提供したフィールド(フィールドに値が定義されているかどうかは別として)のリストへの引数supplied_returnを設定します。 そしてゼロ以外のステータスを返します。 上記以外の場合には、ステータスのゼロを返します。 XGetWMNormalHints が正常に返り、 そしてICCCM以前のサイズヒント属性が読まれた場合、 引数supplied_returnは下記の様なビット構成となります。

(USPosition|USSize|PPosition|PSize|PMinSize|
 PMaxSize|PResizeInc|PAspect)

同様にその属性がベースサイズとウィンドウグラビティーフィールドを保持出来る程大きい場合、 引数supplied_returnも下記の様なビット構成となります。

PBaseSize|PWinGravity

XGetWMNormalHints で発生するエラーには PN BadWindow エラーがあります。 XSetWMSizeHints 関数は、 指定されたウィンドウの属性のサイズヒントを交換します。 もし、 指定した属性が存在しない場合、 XSetWMSizeHints はウィンドウに指定した属性のサイズヒントを設定します。 その属性は、 WM_SIZE_HINTSタイプの32フォーマットで格納されます。 ウィンドウの通常のサイズヒントを設定する為には、 XSetWMNormalHints 関数を使います。 XSetWMSizeHints で発生するエラーには BadAlloc、 BadAtom、 および BadWindow エラーがあります。 XGetWMSizeHints 関数は指定されたウィンドウの属性のサイズヒントを交換します。 もし、 その属性がWM_SIZE_HINTSタイプの32フォーマットであり、 旧型(ICCCM以前)または新型のサイズヒント構造体の内どちらかを保持出来る程の長さであれば、 XGetWMSizeHints は XSizeHints 構造体の各フィールドを設定し、 ユーザが提供したフィールド(フィールドに値が定義されているかは別として)のリストへの引数supplied_returnを設定、 そしてゼロ以外のステータスを返します。 そうでなければ、ゼロのステータスを返します。 ウィンドウの通常のサイズヒントを得る為には、 XGetWMNormalHints 関数を使います。 XGetWMSizeHints が正常返り、 そしてICCCM以前のサイズヒント属性が読まれた場合、 引数supplied_returnは下記の様なビット構成となります。

(USPosition|USSize|PPosition|PSize|PMinSize|
 PMaxSize|PResizeInc|PAspect)

同様に、その属性がベースサイズとウィンドウグラビティーフィールドを保持出来る程大きい場合、 引数supplied_returnも下記の様なビット構成となります。

PBaseSize|PWinGravity

XGetWMSizeHints で発生するエラーには、 BadAtom および BadWindow エラーがあります。

属性

WM_NORMAL_HINTS
通常の場合のウィンドウのサイズヒント。 この属性のC言語のタイプは XSizeHints です。

構造体

XSizeHints 構造体は、 以下の様になります。 /∗ サイズヒントマスクビット ∗/

#define USPosition (1L << 0) /∗ ユーザ定義のxおよびy ∗/
#define USSize (1L << 1) /∗ ユーザ定義の幅および高さ ∗/
#define PPosition (1L << 2) /∗ 位置指定のプログラム ∗/
#define PSize (1L << 3) /∗ サイズ指定のプログラム ∗/
#define PMinSize (1L << 4) /∗ 最小サイズ指定のプログラム ∗/
#define PMaxSize (1L << 5) /∗ 最大サイズ指定のプログラム ∗/
#define PResizeInc (1L << 6) /∗ サイズ変更値指定のプログラム ∗/
#define PAspect (1L << 7) /∗ 最小および最大の縦横比指定のプログラム ∗/
#define PBaseSize (1L << 8)
#define PWinGravity (1L << 9)
#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|
PResizeInc|PAspect)

/∗ Values ∗/
 typedef struct {
long flags;/∗ 属性のどのフィールドが定義されているかを示す。 ∗/
int x, y;/∗ 旧式 ∗/
int width, height;/∗ 旧式 ∗/
int min_width, min_height;
int max_width, max_height;
int width_inc, height_inc;
struct {
       int x;/∗ 分子 ∗/
       int y;/∗ 文母 ∗/
} min_aspect, max_aspect;
int base_width, base_height;
int win_gravity;
} XSizeHints;

メンバーのx,y,width(幅)、 そしてheight(高さ)など、 今では使われませんが、 単に互換性を保つ為に残されています。 メンバーのmin_widthやmin_heightが、 これまで通りアプリケーションに有効な最小ウィンドウサイズを指定します。 メンバーのmax_widthとmax_heightは最大ウィンドウサイズを指定します。 ウィンドウのサイズ変更の場合、 メンバーのwidth_incとheight_incはサイズ(最小から最大)の計算処理を定義します。また、 メンバーのmin_aspectとmax_aspectはxとyの比率を示すものとして表現され、 アプリケーションで縦横比の範囲を指定出来ます。 メンバーのbase_widthとbase_heightは希望のウィンドウサイズを定義出来ます。 メンバーのwin_gravityは、 サイズ変更の際にウィンドウを保持する領域を定義します。 PAllHints マクロの使用は、ご遠慮下さい。

診断

BadAlloc サーバはリクエストされたリソースまたはサーバメモリの割り当てに失敗した。

BadAtom Atom引数の値が定義されたAtomに一致しない。

BadWindow
ウィンドウ引数の値が定義されたウィンドウに一致しない。

”関連事項"

XAllocClassHint(3X11), XAllocIconSize(3X11), XAllocWMHints(3X11), XFree(3X11), XSetCommand(3X11), XSetTransientForHint(3X11), XSetTextProperty(3X11), XSetWMClientMachine(3X11), XSetWMColormapWindows(3X11), XSetWMIconName(3X11), XSetWMName(3X11), XSetWMProperties(3X11), XSetWMProtocols(3X11), XStringListToTextProperty(3X11)
Xlib − C Language X Interface

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026