XAllocWMHints(3X11)

名前
XAllocWMHints, XSetWMHints, XGetWMHints, XWMHints - ウィンドウマネージャのヒント構造体のアロケートする関数とウィンドウの WM_HINTS プロパティの設定、取得の関数群

書式
XWMHints *XAllocWMHints()

XSetWMHints(display, w, wmhints)
      Display *display;
      Window w;
      XWMHints *wmhints;

XWMHints *XGetWMHints(display, w)
      Display *display;
      Window w;

引き数

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

w   ウィンドウを指定。

wmhints
    使用する 構造体を指定。

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

関数 はウィンドウマネージャへのヒントを設定する。 これには、アイコンの情報や位置、ウィンドウの初期状態、アプリケーションはウィンドウマネージャ経由でキーボード入力を取得するかどうかなどの情報が含まれる。

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

関数 はウィンドウマネージャへのヒントを読み、ウィンドウに WM_HINTS プロパティが設定されていなければ NULL を返し、成功すれば 構造体へのポインタを返す。 データを使い終った後は、 を呼んでメモリを解放すること。

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

プロパティ

WM_HINTS
    ウィンドウマネージャの使用のためにクライアントによってセットされる追加 のヒント。 このプロパティの C 言語での型は である。

構造体
構造体の内容は以下である。

/* ウィンドウマネージャへのヒントのマスクビット */
#define |  | (1L << 0)
#define |  | (1L << 1)
#define |  | (1L << 2)
#define |  | (1L << 3)
#define |  | (1L << 4)
#define |  | (1L << 5)
#define |  | (1L << 6)
#define |  | (1L << 8)
#define |  | (InputHint|StateHint|IconPixmapHint| IconWindowHint|IconPositionHint| IconMaskHint|WindowGroupHint)
/* 値 */ typedef struct {
    long flags;    /* 構造体のどのフィールドが設定されているかを示すマーク */
    Bool input;    /* このアプリケーションはウィンドウマネージャ経由でキーボード入力を取得するかどうか /*
    int initial_state;    /* 後述 */
    Pixmap icon_pixmap;    /* アイコンとして使用されるピックスマップ */
    Window icon_window;    /* アイコンとして使用されるウィンドウ */
    int icon_x, icon_y;    /* アイコンの初期位置 */
    Pixmap icon_mask;    /* icon_pixmap のマスクとして使われるピックスマップ */
    XID window_group;    /* 関連するウィンドウグループの ID */
    /* この構造体は将来拡張されるかもしれない */ } XWMHints;

input メンバは、アプリケーションが使う入力フォーカスモデルをウィンド ウマネージャに伝えるために用いられる。 リアルエステートドリブンフォーカス(real-estate driven focus)を使う X バージョン 10 スタイルのアプリケーションのように、入力を期待するが明示 的にサブウィンドウにフォーカスをセットしない(つまり、フォーカス管理の プッシュモデルを使っている)アプリケーションでは、このメンバを にする。 同様に、ウィンドウマネージャによってトップレベルウィンドウにフォーカス が与えられた時だけに入力フォーカスがサブウィンドウにセットされるアプリ ケーションでも、このメンバを にする。 キーボードの入力が必要なときには明示的にフォーカスをサブウィンドウに設 定することによって自分自身で入力を管理するような(つまり、フォーカス管 理のプルモデルを使っている)アプリケーションでは、このメンバを にセットする。 キーボードの入力を全く使わないアプリケーションでは、このメンバを にする。

プルモデルのウィンドウマネージャは、input メンバが であるアプリケーションのトップレベルウィンドウに入力フォーカスをセット することによって、プッシュモデルのアプリケーションが入力を取得できるよ うにしなければならない。 プッシュモデルのウィンドウマネージャは、然るべきタイミング(例えば、 input メンバが であるアプリケーションが入力フォーカスをサブウィンドウにセットしたとき) に入力フォーカスを にリセットすることによって、プルモデルのアプリケーションがウィンドウマ ネージャを破壊してしまわないように注意しなければならない。

initial_state フラグの定義は以下である。
#define |  | 0 |
#define |  | 1 | /* ほとんどのアプリケーションはこれで起動する */
#define |  | 3 | /* アプリケーションをアイコンとして起動させたい */
icon_mask は icon_pixmap のどのピクセルがアイコンとして使用されるかを 指定する。 これによって、非矩形のアイコンが利用可能になる。 icon_pixmap と icon_mask はいずれもビットマップでなければならない。 icon_window は、与えたウィンドウをアイコンとして使うことができるウィン ドウマネージャのために、アプリケーションにウィンドウを提供させる。 window_group は、このウィンドウが他のウィンドウのグループに属している ことを示す。 例えばある単独のアプリケーションが複数のトップレベルウィンドウを操作す る場合、 window_group を使えば、ウィンドウマネージャが1つのウィンドウ だけでなく全てのウィンドウを同時にアイコン化させるために十分な情報を与 えることができる。

フラグが flags フィールドにセットされていれば、クライアントはウィンド ウの内容が緊急事項で、ユーザの適時な応答を必要とすることを示す。 ウィンドウマネージャはこのフラグがセットされている間、ユーザの注意を引 くために何らかの動作をする。 クライアントは、ユーザがこの urgency フラグをクリアするための何らかの 手段(ウィンドウの urgent フラグの条件を緩和するか、単にアラームを止め る)か、ウィンドウが消されるための手段を用意しなければならない。

返り値

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

引き数 Window の値が、定義されたウィンドウを指していない。

関連項目
XAllocClassHint(3X11), XAllocIconSize(3X11), XAllocSizeHints(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