[comp.windows.x] How to get pointer to a converter for XtDirectConvert?

denis@vlsisj.VLSI.COM (Denis Bohm) (05/08/90)

  I have some code that gets some options using XrmGetResource.
After I get the type and value I want to convert it using the
standard converters (so I can get the standard error messages).
I see that there is a procedure XtDirectConvert that takes a
pointer to a converter, but how do I get a pointer to a converter?

  I am not installing a converter because I am not using XtInitialize(),
I'm using xtToolkitInitialize and XtOpenDisplay, and I could not figure
out how to specify that the converter be invoked.

  I looked at lib/Xt/Convert.c add didn't see any externally available
way to get a converter from the source and destination type.

  Does anyone know who to get this option converted to an int?

  This is the source with the problem:

#include <stdio.h>
#include <X11/Intrinsic.h>

main(argc, argv)
int argc;
char *argv[];
{
  static XrmOptionDescRec options[] = {
    {"-frame_delay", "*frame_delay", XrmoptionSepArg, NULL}
  };
  XtAppContext app_context;
  Display *dpy;
  char *type;
  XrmValue value;
  Bool result;

  app_context = XtCreateApplicationContext();
  XtToolkitInitialize();
  dpy = XtOpenDisplay(app_context, "", "test", "Test", options,
    XtNumber(options), &argc, argv);
  if (dpy == NULL) {
    fprintf(stderr, "can't open display...\n");
    exit(1);
  }

  result = XrmGetResource(XtDatabase(dpy), "test.frame_delay",
    "Test.Frame_delay", &type, &value);
  if (result) {
    /*
    ### how do I get a converter given the source and destination types? ###
    XtDirectConvert(converter, NULL, 0, &value, &int_value);
    if (int_value.address == NULL) {
      fprintf(stderr, "can't convert resource value to int...\n");
      exit(2);
    }
    printf("frame_delay: %d\n", (int) int_value.addr);
    */
    printf("frame_delay: %s\n", value.addr);
  }

  exit(0);
}

-- 
Denis Bohm    (usenet: decwrl!vlsisj!denis)
              (internet: vlsisj!denis@decwrl.dec.com)