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