XtConvertAndStore, XtCallConverter - invoke resource converters


       #include <X11/Intrinsic.h>

       Boolean XtConvertAndStore(Widget widget, const char *from_type, XrmVal-
              uePtr from, const char *to_type, XrmValuePtr to_in_out);

       Boolean XtCallConverter(Display* dpy, XtTypeConverter converter, Xrm-
              ValuePtr args, Cardinal num_args, XrmValuePtr from, XrmValuePtr
              to_in_out, XtCacheRef* cache_ref_return);


       args      Specifies the argument list that contains the additional
                 arguments needed to perform the conversion, or NULL.

       converter Specifies the conversion procedure that is to be called.

       from      Specifies the value to be converted.

       from_type Specifies the source type.

       num_args  Specifies the number of additional arguments (often zero).

       to_type   Specifies the destination type.

       to_in_out Returns the converted value.

       widget    Specifies the widget to use for additional arguments, if any
                 are needed, and the destroy callback list.

       dpy       Specifies the display with which the conversion is to be


       The XtConvertAndStore function looks up the type converter registered
       to convert from_type to to_type, computes any additional arguments
       needed, and then calls XtCallConverter.  (or XtDirectConvert if an old-
       style converter was registered with XtAddConverter or XtAppAddCon-
       verter.  ) with the from and to_in_out arguments.

       The XtCallConverter function looks up the specified type converter in
       the application context associated with the display and, if the con-
       verter was not registered or was registered with cache type XtCacheAll
       or XtCacheByDisplay looks in the conversion cache to see if this con-
       version procedure has been called with the specified conversion argu-
       ments.  If so, it checks the success status of the prior call, and if
       the conversion failed, XtCallConverter returns False immediately; oth-
       erwise it checks the size specified in the to argument and, if it is
       greater than or equal to the size stored in the cache, copies the
       information stored in the cache into the location specified by
       to->addr, stores the cache size into to->size, and returns True.  If
       the size specified in the to argument is smaller than the size stored
       in the cache, XtCallConverter copies the cache size into the to->size
       and returns False.  If the converter was registered with cache type
       XtCacheNone or no value was found in the conversion cache, XtCall-
       Converter calls the converter and, if it was not registered with cache
       type XtCacheNone, enters the result into the cache.  XtCallConverter
       then returns what the converter returned.

       The cache_ref_return field specifies storage allocated by the caller in
       which an opaque value will be stored.  If the type converter has been
       registered with the XtCacheRefCount modifier and if the value returned
       in in cache_ref_return is non-NULL, then the call should store the
       cache_ref_return value in order to decrement the reference count when
       the converted value is no longer required.  The cache_ref_return argu-
       ment should be NULL if the caller is unwilling or unable to store the


       X Toolkit Intrinsics – C Language Interface
       Xlib - C Language X Interface

X Version 11                     libXt            XtConvertAndStore(3)