XmbSetWMProperties(3) 標準のウィンドウプロパティを設定する

Other Alias

XSetWMProperties, Xutf8SetWMProperties

書式

void XSetWMProperties(display, w, window_name, icon_name, argv, argc, normal_hints, wm_hints, class_hints)

      Display *display

      Window w;

      XTextProperty *window_name;

      XTextProperty *icon_name;

      char **argv;

      int argc;

      XSizeHints *normal_hints;

      XWMHints *wm_hints;

      XClassHint *class_hints;

void XmbSetWMProperties(display, w, window_name, icon_name, argv, argc,

                      normal_hintswm_hintsclass_hints)

      Display *display;

      Window w;

      char *window_name;

      char *icon_name;

      char *argv[];

      int argc;

      XSizeHints *normal_hints;

      XWMHints *wm_hints;

      XClassHint *class_hints;

void Xutf8SetWMProperties(display, w, window_name, icon_name, argv, argc,

                      normal_hintswm_hintsclass_hints)

      Display *display;

      Window w;

      char *window_name;

      char *icon_name;

      char *argv[];

      int argc;

      XSizeHints *normal_hints;

      XWMHints *wm_hints;

      XClassHint *class_hints;

引き数

argc
引き数の数を指定する。
argv
アプリケーションの引き数リストを指定する。
class_hints
使用する XClassHint 構造体を指定する。
display
X サーバへの接続を指定する。
icon_name
アイコン名を指定する。 これは NULL で終わる文字列でなければならない。
normal_hints
ウィンドウの通常の状態でのサイズヒントを指定する。
w
ウィンドウを指定する。
window_name
ウィンドウ名を指定する。 これは NULL で終わる文字列でなければならない。
wm_hints
使用する XWMHints 構造体を指定する。

説明

簡易関数 XSetWMProperties は、他のクライアント(特にウィンドウマネージャやセッションマネージャ)との通 信に使われる重要なウィンドウプロパティを設定するための単一のプログラミ ングインタフェースを提供する。

引き数 window_name が NULL でなければ、 XSetWMPropertiesXSetWMName を呼び出して WM_NAME プロパティを設定する(14.1.4 節を参照)。 引き数 icon_name が NULL でなければ、 XSetWMPropertiesXSetWMIconName を呼び出して WM_ICON_NAME プロパティを設定する(14.1.5 節を参照)。 引き数 argv が NULL でなければ、 XSetWMPropertiesXSetCommand を呼び出して 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 でなければ、 XSetWMPropertiesXSetWMHints を呼び出して WM_HINTS プロパティを設定する(14.1.6 節を参照)。

引き数 class_hints が NULL でなければ、 XSetWMPropertiesXSetClassHint を呼び出して WM_CLASS プロパティを設定する(14.1.8 節を参照)。 XClassHint 構造体の res_name メンバに NULL ポインタが設定されており、かつ RESOURCE_NAME 環境変数が設定されていれば、環境変数の値が res_name に 代入される。 もし res_name メンバが NULL であり、環境変数が設定されておらず、argv と argv[0] が設定されている場合には argv[0] の値からディレクトリのプレフィックスを取り除いたものが res_name に代入される。

簡易関数 XmbSetWMProperties および Xutf8SetWMProperties は他のクライアント(特にウィンドウマネージャとセッションマネージャ)との 通信に用いられる重要なウィンドウプロパティを設定するための、簡単な プログラミングインタフェースを提供する。

もし引き数 window_name が NULL でなければ、これらの関数 は WM_NAME プロパティを設定する。 もし引き数 icon_name が NULL でなければ、これらの関数 は WM_ICON_NAME プロパティを設定する。 window_name と icon_name の引き数はどちらも NULL で終わる文字列であり、 XmbSetWMProperties の場合は現在のロケールのエンコーディング、 Xutf8SetWMProperties の場合は UTF-8 エンコーディングである。 もし引き数が完全に STRING エンコーディングに変換できる場合、プロパティは ``STRING'' 型で生成される。 そうでない場合、引き数はコンパウンドテキスト(compound text)に変換され、 プロパティは ``COMPOUND_TEXT'' 型で生成される。

引き数 normal_hints が NULL でない場合、 XmbSetWMPropertiesXutf8SetWMPropertiesXSetWMNormalHints を呼び出す。 この関数は WM_NORMAL_HINTS プロパティを設定する(14.1.7 節を参照)。 引き数 wm_hints が NULL でない場合、 XmbSetWMPropertiesXutf8SetWMPropertiesXSetWMHints を呼び出す。 この関数は WM_HINTS プロパティを設定する(14.1.6 節参照)。

引き数 argv が NULL でない場合、 XmbSetWMPropertiesXutf8SetWMProperties は argv と argc の値を使って WM_COMMAND プロパティを設定する。 argc が 0 の場合は、コマンドの長さが 0 であるという意味になる。

マシンのホスト名は XSetWMClientMachine を使って格納される(14.2.2 節を参照)。

引き数 class_hints が NULL でない場合、 XmbSetWMPropertiesXutf8SetWMProperties は 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, マシン のホスト名のエンコーディングは、現在のロケールのエンコーディング であるものと仮定される。 対応する WM_CLASS, WM_COMMAND, WM_CLIENT_MACHINE プロパティはローカル ホストのロケールアナウンサに従って型付けされる。 これらの文字列について、プロパティへの格納の前にはエンコーディングの 変換は行われない。

ロケールに従ってプロパティテキストを扱う必要があるクライアントのために、 XmbSetWMPropertiesXutf8SetWMProperties は WM_LOCALE_NAME プロパティに現在のロケールの名前を設定する。 この名前はエンコーディングがホストポータブル文字エンコーディングであり、 STRING に変換されてプロパティに格納されるものと仮定される。

XSetWMProperties, Xutf8SetWMProperties, XmbSetWMProperties はエラー BadAlloc, BadWindow を起こすことがある。

関数 Xutf8SetWMProperties は XFree86 4.0.2 から導入された XFree86 独自の拡張である。この関数が あるかどうかはマクロ X_HAVE_UTF8_STRING で判定できる。

プロパティ

WM_CLASS
ウィンドウマネージャやセッションマネージャがリソースデータベースから アプリケーションのリソースを取得できるように、アプリケーションプログラム によって設定される。
WM_CLIENT_MACHINE
クライアントが動作しているマシンの名前を表す文字列。
WM_COMMAND
アプリケーションの起動に使われたコマンドと引き数。 NULL で区切られている。
WM_HINTS
ウィンドウマネージャに使われるようにクライアントが設定する、追加の ヒントのセット。 このプロパティの C 言語における型は XWMHints である。
WM_ICON_NAME
アイコンで使用される名前。
WM_NAME
アプリケーションの名前。
WM_NORMAL_HINTS
通常の状態のウィンドウに対するサイズヒント。 このプロパティの C 言語での型は XSizeHints である。

返り値

BadAlloc
要求されたリソースやサーバメモリの割り当てにサーバが失敗した。
BadWindow
引き数 Window の値が、定義されたウィンドウを指していない。