XAllocSizeHints(3X11)

名前
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;

引き数

display
    X サーバへの接続を指定。

hints
    通常の状態におけるウィンドウのサイズヒントを指定。

hints
    使用される 構造体を指定。

hints_return
    通常の状態でのウィンドウのサイズヒントが返される。

property
    プロパティ名を指定。

supplied_return
    ユーザが与えたヒントが返される。

w   ウィンドウを指定。

説明
関数 は 構造体をアロケートし、そのポインタを返す。 構造体の全てのフィールドはゼロで初期化される点に注意すること。 十分なメモリが確保できない場合、 は NULL を返す。 この構造体にアロケートされたメモリを解放するには を使うこと。

関数 は指定したウィンドウの WM_NORMAL_HINTS プロパティのサイズヒントを置き 換える。 このプロパティがまだ存在しない場合、 は指定したウィンドウの WM_NORMAL_HINTS プロパティにサイズヒントをセッ トする。 このプロパティは タイプ WM_SIZE_HINTS、フォーマット 32 で格納される。

はエラー を起こすことがある。

関数 は指定したウィンドウの WM_NORMAL_HINTS プロパティに格納されているサイ ズのヒントを返す。 このプロパティがタイプ WM_SIZE_HINTS, フォーマット32 であり、新旧いず れのサイズヒント構造体(古いものは ICCCM 以前の形式)をも格納できる十分 な長さを持つ場合、 は の各フィールドをセットし、ユーザが与えたフィールドのリストを(既に定義 されている値を含んでいるかどうかに関わらず)引き数 supplied_return にセッ トする。 長さが十分でない場合は、この関数はゼロのステータスを返す。

が成功し、ICCCM 以前のサイズヒントプロパティが取得された場合、引き数 supplied_return には次のビットが含まれる。

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

プロパティが十分大きく、プロパティがベースサイズとウィンドウの gravity 値も含むことができた場合、引き数 supplied_return には次のビットが含まれ る。

PBaseSize|PWinGravity

はエラー を起こすことがある。

関数 は指定したウィンドウの指定したプロパティのサイズヒントを置き換える。 そのプロパティがまだ存在しない場合、 は指定したウィンドウのプロパティにサイズヒントをセットする。 このプロパティは タイプ WM_SIZE_HINTS、フォーマット 32 で格納される。 ウィンドウの通常のサイズヒントをセットするには、 関数 を使うことができる。

はエラー を起こすことがある。

関数 は は指定したウィンドウの指定したプロパティに格納されているサイズヒントを 返す。 このプロパティがタイプ WM_SIZE_HINTS, フォーマット32 であり、新旧いず れのサイズヒント構造体(古いものは ICCCM 以前の形式)も格納できる十分な 長さを持つ場合、 は の各フィールドをセットし、ユーザが与えたフィールドのリストを(既に定義 されている値を含んでいるかどうかに関わらず)引き数 supplied_return にセッ トする。 長さが十分でない場合は、この関数はゼロのステータスを返す。 ウィンドウの通常のサイズヒントを取得するには関数 を利用することができる。

が成功し、ICCCM 以前のサイズヒントプロパティが取得された場合、引き数 supplied_return は次のビットを含む。

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

プロパティが十分大きく、プロパティがベースサイズとウィンドウの gravity 値も含むことができた場合、引き数 supplied_return には次のビットが含まれ る。

PBaseSize|PWinGravity

はエラー を起こすことがある。

プロパティ

WM_NORMAL_HINTS
    通常の状態のウィンドウのサイズヒント。 このプロパティのC言語における型は である。

構造体
構造体の内容を示す。

/* サイズヒントのマスクビット値 */
#define |  | (1L << 0) | /* ユーザが指定した x, y */
#define |  | (1L << 1) | /* ユーザが指定した幅と高さ */
#define |  | (1L << 2) | /* プログラムが指定した位置 */
#define |  | (1L << 3) | /* プログラムが指定したサイズ */
#define |  | (1L << 4) | /* プログラムが指定した最小サイズ */
#define |  | (1L << 5) | /* プログラムが指定した最大サイズ */
#define |  | (1L << 6) | /* プログラムが指定したサイズ変更の増分 */
#define |  | (1L << 7) | /* プログラムが指定したアスペクト比の最小値と最大値 */
#define |  | (1L << 8)
#define |  | (1L << 9)
#define |  | (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 メ ンバで指定されたウィンドウ全体の外側の長方形の点にウィンドウを配置する。 ウィンドウの外側の長方形には、境界とウィンドウマネージャが付けた修飾部 分も含められる。 つまり、ウィンドウマネージャが、そのウィンドウをクライアントが要求した 位置に配置すると決めたならば、win_gravity で指定される親ウィンドウの境 界の上での位置は、ウィンドウマネージャがなければ本来クライアントのウィ ンドウとなっていた場所になる。

マクロ の利用は極めて好ましくない点に注意すること。

返り値

サーバが、要求されたリソースやサーバメモリのアロケートに失敗した。

引き数 Atom の値が、定義されている Atom を指していない。

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

関連項目
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