XSetClassHint(3) クラスヒント構造体の割り当てとウィンドウの WM_CLASS プロパティの設定・取得

Other Alias

XAllocClassHint, XGetClassHint, XClassHint

書式

XClassHint *XAllocClassHint()

XSetClassHint(display, w, class_hints)

      Display *display;

      Window w;

      XClassHint *class_hints;

Status XGetClassHint(display, w, class_hints_return)

      Display *display;

      Window w;

      XClassHint *class_hints_return;

引き数

display
X サーバへの接続を指定する。
class_hints
使用される XClassHint 構造体を指定する。
class_hints_return
XClassHint 構造体が返される。
w
ウィンドウを指定する。

説明

関数 XAllocClassHintXClassHint 構造体を割り当て、この構造体へのポインタを返す。 XClassHint 構造体の pointer フィールドは NULL で初期化される点に注意すること。 十分なメモリが確保できない場合、 XAllocClassHint は NULL を返す。 この構造体に対して割り当てられたメモリを解放するには、 XFree を使用すること。

The 関数 XSetClassHint は指定したウィンドウのクラスヒントを設定する。 文字列のエンコーディングがホストポータブル文字エンコーディングでない場 合、結果は実装依存である。

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

関数 XGetClassHint は、指定したウィンドウのクラスヒントを、与えられた構造体のメンバに返す。 サーバが返すデータのエンコーディングが Latin ポータブル文字エンコーディ ングならば、関数が返す文字列のエンコーディングはホストポータブル文字エ ンコーディングである。 そうでない場合の結果は実装依存である。 この関数は成功した場合には 0 でないステータスを返し、失敗した場合には ステータスとして 0 を返す。 文字列 res_name と res_class を使い終った後に解放するには、それぞれに 対して XFree を行なうこと。

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

プロパティ

WM_CLASS
アプリケーションプログラムによってセットされ、ウィンドウマネージャやセッ ションマネージャがリソースデータベースからアプリケーションのリソースを 取得できるようにする。

構造体

XClassHint 構造体の内容を示す。

typedef struct {
     char *res_name;
     char *res_class;
} XClassHint;

res_name メンバはアプリケーションの名前であり、 res_class はアプリケーションのクラスである。 このプロパティに設定されている名前は、WM_NAME として設定されている 名前とは異なる場合がある点に注意すること。 つまり、WM_NAME はタイトルバーに表示すべきものであり、したがって一時 的な情報を持つことがある(例えば、エディタのバッファの現在のファイル名)。 一方、WM_CLASS の一部として指定される名前は、リソースデータベースから アプリケーションのリソースを取り出す時に使われるアプリケーションの正 式な名前である。

返り値

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