ユーティリティ関数

KeySym マクロ
IsCursorKeyカーソルキーか
IsFunctionKeyファンクションキーか
IsKeypadKeyテンキーか
IsPrivateKeypadKeyベンダー・プライベートのテンキーか
IsMiscFunctionKeyその他のファンクションキーか
IsModifierKey装飾キーか
IsPFKeyPF キーか
メモリ
Xpermalloc解放できないメモリを確保
ジオメトリ
XParseGeometry文字列からジオメトリを解析
XWMGeometryジオメトリ文字列とヒント情報から、ウィンドウのジオメトリを取得
Visual
struct XVisualInfoビジュアル情報
XGetVisualInfoテンプレートと一致するビジュアル構造体のリストを取得
XMatchVisualInfo深さとクラスにマッチするビジュアル構造体を返す
コンテキスト
XSaveContextリソース ID とコンテキストタイプに対応するデータ値を保存
XFindContextリソース ID とタイプに関連付けられたデータを取得する
XDeleteContextエントリを削除
XUniqueContext一意のコンテキストタイプを作成
KeySym マクロ
IsCursorKey(keysym);
カーソルキーか
IsFunctionKey(keysym);
ファンクションキーか
IsKeypadKey(keysym);
テンキーか
IsPrivateKeypadKey(keysym);
ベンダー・プライベートのテンキーか
IsMiscFunctionKey(keysym);
その他のファンクションキーか
IsModifierKey(keysym);
装飾キーか
IsPFKey(keysym);
PF キーか
メモリ
char *Xpermalloc(unsigned int size);
プログラムの存続期間中、決して解放できないストレージを割り当てます。
メモリは double のサイズにアライメントして割り当てられます。
この関数は、標準のオペレーティングシステムのメモリアロケータよりも、パフォーマンスとスペースをいくらか節約できる可能性があります。
ジオメトリ
int XParseGeometry(char *parsestring, int *x_return, int *y_return, unsigned int *width_return, unsigned int *height_return);
慣例により、X アプリケーションは標準文字列を使用してウィンドウのサイズと配置を示します。
XParseGeometry を使用すると、標準のウィンドウ ジオメトリを解析できるため、この標準への準拠が容易になります。
具体的には、この関数を使用すると、次の形式の文字列を解析できます。

[=][<幅>{xX}<高さ>][{+-}<xオフセット>{+-}<yオフセット>]

フィールドは、この関数に関連付けられた引数にマップされます。
(< > で囲まれた項目は整数、[ ] で囲まれた項目はオプション、{ } で囲まれた項目は「次から 1 つを選択する」ことを示します)
文字列がホストにない場合は、ポータブル文字エンコーディング。結果は実装に依存します。
戻り値
フラグが返る。
XValue、YValue、WidthValue、HeightValue: 文字列内に各値があるか。
XNegative、YNegative: x,y が負の値か。

フラグのない値は変更されない。
ユーザーは「右端または下端を基準にしてウィンドウを配置する」ことができる必要があるため、-0 は +0 と等しくありません。
XValue, YValue がある場合、要求された位置にウィンドウを配置する必要があります。
int XWMGeometry(Display *display, int screen, char *user_geom, char *def_geom, unsigned int bwidth,
    XSizeHints *hints, int *x_return, int *y_return, int *width_return, int *height_return, int *gravity_return);
ジオメトリ文字列 (XParseGeometry で指定されるもの) を、サイズヒント (通常は WM_NORMAL_HINTS に格納されるもの) と組み合わせて、位置、サイズ、重力 (NorthWestGravity、NorthEastGravity、SouthEastGravity、SouthWestGravity) を取得する。

basesize が XSizeHints 構造体に設定されていない場合、設定されている場合は最小サイズが使用されます。
それ以外の場合、basesize はゼロとみなされます。
ヒント構造に最小サイズが設定されていない場合は、basesize が使用されます。

無効なジオメトリ仕様により、幅または高さのゼロが返される可能性があることに注意してください。
呼び出し元は、hints->win_gravity フィールドのアドレスを gravity_return に渡して、ヒントを直接更新できます。
user_geom
ユーザー指定のジオメトリ文字列、または NULL
def_geom
アプリケーションのデフォルトのジオメトリ文字列、または NULL
bwidth
枠線の幅
戻り値
XParseGeometry の戻り値と同じフラグマスク。
Visual
typedef struct {
 Visual *visual;
 VisualID visualid;
 int screen;
 unsigned int depth;
 int class;
 unsigned long red_mask;
 unsigned long green_mask;
 unsigned long blue_mask;
 int colormap_size;
 int bits_per_rgb;
} XVisualInfo;
ビジュアル情報
XVisualInfo *XGetVisualInfo(Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return);
vinfo_template で指定された属性と等しい属性を持つ XVisualInfo のリストを返します。
vinfo_mask
構造体で使用する値のマスク。
VisualNoMask, VisualIDMask, VisualScreenMask, VisualDepthMask, VisualClassMask, VisualRedMaskMask
VisualGreenMaskMask, VisualBlueMaskMask, VisualColormapSizeMask, VisualBitsPerRGBMask, VisualAllMask
vinfo_template
一致する条件の構造体
nitems_return
一致した数
戻り値
一致する XVisualInfo の配列のポインタ。XFree() で解放する。
一致するものがない場合は NULL。
Status XMatchVisualInfo(Display *display, int screen, int depth, int class, XVisualInfo *vinfo_return);
スクリーンで、指定された深度とクラスに一致するビジュアルのビジュアル情報を返します。
指定された深さとクラスに一致するビジュアルが複数存在する可能性があるため、選択される正確なビジュアルは未定義です。
戻り値
見つかった場合、0 以外。見つからなかった場合、0。
コンテキスト
int XSaveContext(Display *display, XID rid, XContext context, XPointer data);
リソース ID とコンテキストタイプに対応するデータ値を保存。
指定されたリソース ID とタイプを持つエントリがすでに存在する場合、XSaveContext はそれを指定されたコンテキストで上書きします。
エラーが発生した場合はゼロ以外のエラーコードを返し、それ以外の場合はゼロを返します。考えられるエラーは XCNOMEM (メモリ不足) です。
int XFindContext(Display *display, XID rid, XContext context, XPointer *data_return);
リソース ID とタイプに関連付けられたデータを取得する。
エラーが発生した場合はゼロ以外のエラーコードを返し、それ以外の場合はゼロを返します。
考えられるエラーは XCNOENT (コンテキストが見つかりません) です。
int XDeleteContext(Display *display, XID rid, XContext context);
指定されたリソース ID とタイプのエントリをデータ構造から削除します。
同じ引数で呼び出された場合に XFindContext が返すのと同じエラー コードを返します。
XDeleteContext は、アドレスが保存されているデータを解放しません。
XContext XUniqueContext(void);
XSaveContext および XFindContext への後続の呼び出しで使用できる一意のコンテキストタイプを作成する。