void XmbSetWMProperties(display, w, window_name, icon_name, argv, argc,
normal_hints, wm_hints, class_hints)
Display *display;
Window w;
char *window_name;
char *icon_name;
char *argv[];
int argc;
XSizeHints *normal_hints;
XWMHints *wm_hints;
XClassHint *class_hints;
引き数 window_name が NULL でなければ、 XSetWMProperties は XSetWMName を呼び出して WM_NAME プロパティを設定する(14.1.4 節を参照)。 引き数 icon_name が NULL でなければ、 XSetWMProperties は XSetWMIconName を呼び出して WM_ICON_NAME プロパティを設定する(14.1.5 節を参照)。 引き数 argv が NULL でなければ、 XSetWMProperties は XSetCommand を呼び出して WM_COMMAND プロパティを設定する(14.2.1節を参照)。 argc を 0 にして長さが 0 のコマンドを指示してもよい点に注意すること。 また、このマシンのホスト名は XSetWMClientMachine を使って保存されている点にも注意すること(14.2.2 節を参照)。
引き数 normal_hints が NULL でなければ、 XSetWMProperties は .ZN XSetWMNormalHints を呼び出し、この関数が WM_NORMAL_HINTS を設定する(14.1.7 節を参照)。 引き数 wm_hints が NULL でなければ、 XSetWMProperties は XSetWMHints を呼び出して WM_HINTS プロパティを設定する(14.1.6 節を参照)。
引き数 class_hints が NULL でなければ、 XSetWMProperties は XSetClassHint を呼び出して WM_CLASS プロパティを設定する(14.1.8 節を参照)。 XClassHint 構造体の res_name メンバに NULL ポインタが設定されており、かつ RESOURCE_NAME 環境変数が設定されていれば、環境変数の値が res_name に 代入される。 もし res_name メンバが NULL であり、環境変数が設定されておらず、argv と argv[0] が設定されている場合には argv[0] の値からディレクトリのプレフィックスを取り除いたものが res_name に代入される。
簡易関数 XmbSetWMProperties は他のクライアント(特にウィンドウマネージャとセッションマネージャ)との 通信に用いられる重要なウィンドウプロパティを設定するための、単一の プログラミングインタフェースを提供する。
もし引き数 window_name が NULL でなければ、 XmbSetWMProperties は WM_NAME プロパティを設定する。 もし引き数 icon_name が NULL でなければ、 XmbSetWMProperties は WM_ICON_NAME プロパティを設定する。 window_name と icon_name の各引き数は、現在のロケールのエンコーディング であり、かつ NULL で終わる文字列である。 もし引き数が完全に STRING エンコーディングに変換できる場合、プロパティは ``STRING'' 型で生成される。 そうでない場合、引き数はコンパウンドテキスト(compound text)に変換され、 プロパティは ``COMPOUND_TEXT'' 型で生成される。
引き数 normal_hints が NULL でない場合、 XmbSetWMProperties は XSetWMNormalHints を呼び出して WM_NORMAL_HINTS プロパティを設定する(14.1.7 節を参照)。 引き数 wm_hints が NULL でない場合、 XmbSetWMProperties は XSetWMHints を呼び出して WM_HINTS プロパティを設定する(14.1.6 節参照)。
引き数 argv が NULL でない場合、 XmbSetWMProperties は argv と argc の値を使って WM_COMMAND プロパティを設定する。 argc が 0 の場合は、コマンドの長さが 0 であるという意味になる。
マシンのホスト名は XSetWMClientMachine を使って格納される(14.2.2 節を参照)。
引き数 class_hints が NULL でない場合、 XmbSetWMProperties は WM_CLASS プロパティを設定する。 XClassHint 構造体の res_name メンバに NULL ポインタが設定されていて、かつ環境変数 RESOURCE_NAME が設定されている場合、環境変数の値が res_name に代入され る。 res_name メンバが NULL で、環境変数の値も設定されておらず、argv と argv[0] が設定されている場合には、argv[0]の値からディレクトリの プレフィックスを取り除いたものが res_name に代入される。
与えられる class_hints.res_name, argv, 環境変数 RESOURCE_NAME, マシン のホスト名のエンコーディングは、LC_CTYPE カテゴリに対してアナウンスさ れたロケールのエンコーディングであるものと仮定される(POSIX 準拠のシス テムでは環境変数 LC_CTYPE、そうでなければ 環境変数 LANG)。 対応する WM_CLASS, WM_COMMAND, WM_CLIENT_MACHINE プロパティはローカル ホストのロケールアナウンサに従って型付けされる。 プロパティへの格納の前にはエンコーディングの変換は行われない。
ロケールに従ってプロパティテキストを扱う必要があるクライアントのために、 XmbSetWMProperties は WM_LOCALE_NAME プロパティに現在のロケールの名前を設定する。 この名前はエンコーディングがホストポータブル文字エンコーディングであり、 STRING に変換されてプロパティに格納されるものと仮定される。
XSetWMProperties および XmbSetWMProperties はエラー BadAlloc, BadWindow を起こすことがある。