XtConvertAndStore(3Xt)

名前
XtConvertAndStore, XtCallConverter - リソースコンバータを呼び出す

書式
Boolean XtConvertAndStore(widget, from_type, from, to_type, to_in_out)
    Widget widget;
    String from_type;
    XrmValuePtr from;
    String to_type;
    XrmValuePtr to_in_out;

void XtCallConverter(dpy, converter, args, num_args, from, to_in_out, cache_ref_return)
    Display* dpy;
    XtConverter converter;
    XrmValuePtr args;
    Cardinal num_args;
    XrmValuePtr from;
    XrmValuePtr to_in_out;
    XtCacheRef* cache_ref_return;

引き数

args
    変換を実行するために必要な追加的な引き数を含む引き数リストを指定する。 または NULL を指定する。

converter
    呼び出される変換手続きを指定する。

from
    変換される値を指定する。

from_type
    変換前の型を指定する。

num_args
    追加的な引き数の数を指定する(0のことが多い)。

to_type
    変換後の型を指定する。

to_in_out
    変換された値が返される。

widget
    必要ならば、追加的な引き数として使うウィジェットと破棄コールバックリスト を指定する。

dpy 変換が関連づけられるディスプレイを指定する。

説明
関数 は、from_type から to_type への変換を行うために登録されている 型コンバータを見つけ、必要な追加的な引き数を求め、そして引き数 from と to_in_out を使って を呼び出す。( や を使って古い形式のコンバータが登録されている場合には を呼び出す。 )

関数 は、ディスプレイに関連づけられているアプリケーションコンテクストから 指定された型コンバータを見つける。 そして、コンバータが登録されていないかキャッシュ型 または で登録されている場合には、変換のキャッシュを検索してこの変換手続きが指 定された変換の引き数を使って呼び出されているかどうか調べる。 この変換手続きが呼び出されている場合には、前の呼び出しの成功ステータス を調べ、その変換が失敗していれば は即座に を返す。成功している場合には引き数 to で指定されたサイズを調べ、こ れがキャッシュに格納されているデータのサイズ以上であれば、キャッシュに 格納されている情報を to->addr で指定した位置にコピーし、キャッシュ のサイズを to->size に格納し、最後に を返す。 引き数 to で指定したサイズがキャッシュに格納されているデータのサイ ズよりも小さい場合には、 はキャッシュのサイズを to->size にコピーしてから を返す。 コンバータがキャッシュ型 で登録されているか、変換キャッシュにデータが見つからない場合には、 はコンバータを呼び出す。コンバータがキャッシュ型 で登録されていない場合には、変換結果はキャッシュに格納される。 それから、 はコンバータが返したデータを返す。

cache_ref_return フィールドは呼び出し側が割り当てた、可読形 式でない値が格納される領域を指定する。型コンバータが モディファイア付きで登録されており、cache_ref_return に返された 値が NULL でない場合、この呼び出しは変換された値が必要でなくなったとき に参照数を減らすために cache_ref_return の値を格納する。呼び出し 側が値を格納したくない場合や格納できない場合には、引き数 cache_ref_return は NULL でなければならない。

関連項目
XtAppReleaseCacheRefs(3Xt)
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface