home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / osi / isode / vmsisode / vmsisode80_tar.Z / vmsisode80_tar / sockit / gccinclude / x11 / xresource.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-24  |  9.3 KB  |  300 lines

  1. /*
  2. *****************************************************************************
  3. **                                                                          *
  4. **                         COPYRIGHT (c) 1988 BY                            *
  5. **             DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.                *
  6. **               ALL RIGHTS RESERVED                              *
  7. **                                                                          *
  8. **  THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED  *
  9. **  ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE  *
  10. **  INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER  *
  11. **  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY  *
  12. **  OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY  *
  13. **  TRANSFERRED.                                                            *
  14. **                                                                          *
  15. **  THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE  *
  16. **  AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT  *
  17. **  CORPORATION.                                                            *
  18. **                                                                          *
  19. **  DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS  *
  20. **  SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.                 *
  21. **                                                                          *
  22. *****************************************************************************
  23. **++
  24. **  FACILITY:
  25. **
  26. **    < to be supplied >
  27. **
  28. **  ABSTRACT:
  29. **
  30. **    < to be supplied >
  31. **
  32. **  ENVIRONMENT:
  33. **
  34. **    < to be supplied >
  35. **
  36. **  MODIFICATION HISTORY:
  37. **
  38. **    < to be supplied >
  39. **
  40. **--
  41. **/
  42. /* $Header: Xresource.h,v 1.1 87/09/12 12:27:11 toddb Exp $ */
  43. /* $Header: Xresource.h,v 1.1 87/09/12 12:27:11 toddb Exp $ */
  44. /*
  45.  *    sccsid:    %W%    %G%
  46.  */
  47.  
  48. #ifndef _Xresource_h
  49. #define _Xresource_h
  50.  
  51. /****************************************************************
  52.  ****************************************************************
  53.  ***                                                          ***
  54.  ***                                                          ***
  55.  ***          X Resource Manager Intrinsics                   ***
  56.  ***                                                          ***
  57.  ***                                                          ***
  58.  ****************************************************************
  59.  ****************************************************************/
  60.  
  61.  
  62.  
  63. /****************************************************************
  64.  *
  65.  * Miscellaneous definitions
  66.  *
  67.  ****************************************************************/
  68.  
  69. #ifdef VMS
  70. #include    <types.h>
  71. #else
  72. #include    <sys/types.h>
  73. #define CADDR_T
  74. #endif
  75.  
  76. #ifndef CADDR_T
  77. typedef char * caddr_t;
  78. #define CADDR_T
  79. #endif
  80.  
  81. #ifndef NULL
  82. #define NULL 0
  83. #endif
  84.  
  85. /****************************************************************
  86.  *
  87.  * ||| Memory Management (move out of here!)
  88.  *
  89.  ****************************************************************/
  90.  
  91. extern char *Xpermalloc();
  92.     /* unsigned int size;   */
  93.  
  94. /****************************************************************
  95.  *
  96.  * Quark Management
  97.  *
  98.  ****************************************************************/
  99.  
  100. typedef int     XrmQuark, *XrmQuarkList;
  101. #define NULLQUARK ((XrmQuark) 0)
  102.  
  103. typedef char *XrmAtom;
  104. #define NULLATOM ((XrmAtom) 0)
  105.  
  106. /* find quark for atom, create new quark if none already exists */
  107. extern XrmQuark XrmAtomToQuark(); /* name */
  108.     /* XrmAtom name; */
  109.  
  110. /* find atom for quark */
  111. extern XrmAtom XrmQuarkToAtom(); /* quark */
  112.     /* XrmQuark name; */
  113.  
  114. extern XrmQuark XrmUniqueQuark();
  115.  
  116. #define XrmAtomsEqual(a1, a2) (strcmp(a1, a2) == 0)
  117.  
  118.  
  119. /****************************************************************
  120.  *
  121.  * Conversion of Strings to Lists
  122.  *
  123.  ****************************************************************/
  124.  
  125. extern void XrmStringToQuarkList();
  126.     /* char        *name;  */
  127.     /* XrmQuarkList     quarks; */  /* RETURN */
  128.  
  129. extern void XrmStringToBindingQuarkList();
  130.     /* char        *name;      */
  131.     /* XrmBindingList   bindings;   */  /* RETURN */
  132.     /* XrmQuarkList     quarks;     */  /* RETURN */
  133.  
  134.  
  135. /****************************************************************
  136.  *
  137.  * Name and Class lists.
  138.  *
  139.  ****************************************************************/
  140.  
  141. typedef XrmQuark     XrmName;
  142. typedef XrmQuarkList XrmNameList;
  143. #define XrmNameToAtom(name)        XrmQuarkToAtom(name)
  144. #define XrmAtomToName(atom)        XrmAtomToQuark(atom)
  145. #define XrmStringToNameList(str, name)    XrmStringToQuarkList(str, name)
  146.  
  147. typedef XrmQuark     XrmClass;
  148. typedef XrmQuarkList XrmClassList;
  149. #define XrmClassToAtom(class)        XrmQuarkToAtom(class)
  150. #define XrmAtomToClass(class)        XrmAtomToQuark(class)
  151. #define XrmStringToClassList(str,class)    XrmStringToQuarkList(str, class)
  152.  
  153.  
  154.  
  155. /****************************************************************
  156.  *
  157.  * Resource Representation Types and Values
  158.  *
  159.  ****************************************************************/
  160.  
  161. typedef XrmQuark     XrmRepresentation;
  162. #define XrmAtomToRepresentation(atom)   XrmAtomToQuark(atom)
  163. #define    XrmRepresentationToAtom(type)   XrmQuarkToAtom(type)
  164.  
  165. typedef struct {
  166.     unsigned int    size;
  167.     caddr_t        addr;
  168. } XrmValue, *XrmValuePtr;
  169.  
  170.  
  171. /****************************************************************
  172.  *
  173.  * Resource Manager Functions
  174.  *
  175.  ****************************************************************/
  176.  
  177. typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
  178.  
  179. typedef struct _XrmHashBucketRec *XrmHashBucket;
  180. typedef XrmHashBucket *XrmHashTable;
  181. typedef XrmHashTable XrmSearchList[];
  182. typedef struct _XrmHashBucketRec *XrmDatabase;
  183.  
  184.  
  185. extern void XrmInitialize();
  186.  
  187. extern void XrmQPutResource();
  188.     /* XrmDatabase        *pdb;    */
  189.     /* XrmBindingList       bindings;   */
  190.     /* XrmQuarkList        quarks;     */
  191.     /* XrmRepresentation    type;       */
  192.     /* XrmValue            *value;    */
  193.  
  194. extern void XrmPutResource();
  195.     /* XrmDatabase        *pdb;       */
  196.     /* char            *specifier; */
  197.     /* char            *type;      */
  198.     /* XrmValue            *value;     */
  199.  
  200. extern void XrmQPutStringResource();
  201.     /* XrmDatabase        *pdb;       */
  202.     /* XrmBindingList       bindings;   */
  203.     /* XrmQuarkList        quarks;     */
  204.     /* char            *str;       */
  205.  
  206. extern void XrmPutStringResource();
  207.     /* XrmDatabase        *pdb;       */
  208.     /* char            *specifier; */
  209.     /* char            *str;       */
  210.  
  211. extern void XrmPutLineResource();
  212.     /* XrmDatabase        *pdb;       */
  213.     /* char            *line;    */
  214.  
  215. extern  XrmQGetResource();
  216.     /* XrmDatabase        db;        */
  217.     /* XrmNameList        names;      */
  218.     /* XrmClassList        classes;    */
  219.     /* XrmRepresentation    *type;      */  /* RETURN */
  220.     /* XrmValue            *value;     */  /* RETURN */
  221.  
  222. extern Bool XrmGetResource();
  223.     /* XrmDatabase        db;        */
  224.     /* char            *name_str;  */
  225.     /* char            *class_str; */
  226.     /* char            *type;      */  /* RETURN */
  227.     /* XrmValue            *value;     */  /* RETURN */
  228.  
  229. extern void XrmQGetSearchList();
  230.     /* XrmDatabase        db;        */
  231.     /* XrmNameList        names;      */
  232.     /* XrmClassList        classes;    */
  233.     /* XrmSearchList        searchList; */  /* RETURN */
  234.  
  235. extern Bool XrmQGetSearchResource();
  236.     /* SearchList        searchList; */
  237.     /* XrmName            name;       */
  238.     /* XrmClass            class;      */
  239.     /* XrmRepresentation    *type;      */  /* RETURN */
  240.     /* XrmValue            *value;     */  /* RETURN */
  241.  
  242. /****************************************************************
  243.  *
  244.  * Resource Database Management
  245.  *
  246.  ****************************************************************/
  247.  
  248. extern XrmDatabase XrmGetFileDatabase();
  249.     /* char        *filename;  */
  250.  
  251. extern XrmDatabase XrmGetStringDatabase();
  252.     /* char        *data;      */  /*  null terminated string */
  253.  
  254. extern void XrmPutFileDatabase();
  255.     /* XrmDatabase  db;        */
  256.     /* char        *filename   */
  257.  
  258. extern void XrmMergeDatabases();
  259.     /* XrmDatabase  new;    */
  260.     /* XrmDatabase  *into;      */  /* RETURN */
  261.  
  262.  
  263.  
  264.  
  265. /****************************************************************
  266.  *
  267.  * Command line option mapping to resource entries
  268.  *
  269.  ****************************************************************/
  270.  
  271. typedef enum {
  272.     XrmoptionNoArg,    /* Value is specified in OptionDescRec.value        */
  273.     XrmoptionIsArg,     /* Value is the option string itself            */
  274.     XrmoptionStickyArg, /* Value is characters immediately following option */
  275.     XrmoptionSepArg,    /* Value is next argument in argv            */
  276.     XrmoptionResArg,    /* Resource and value in next argument in argv      */
  277.     XrmoptionSkipArg,   /* Ignore this option and the next argument in argv */
  278.     XrmoptionSkipLine   /* Ignore this option and the rest of argv        */
  279. } XrmOptionKind;
  280.  
  281. typedef struct {
  282.     char        *option;        /* Option abbreviation in argv        */
  283.     char        *specifier;     /* Resource specifier            */
  284.     XrmOptionKind   argKind;        /* Which style of option it is        */
  285.     caddr_t        value;        /* Value to provide if XrmoptionNoArg   */
  286. } XrmOptionDescRec, *XrmOptionDescList;
  287.  
  288. extern void XrmParseCommand();
  289.     /* XrmDatabase        *pdb;        */
  290.     /* XrmOptionDescList    options;        */
  291.     /* int            num_options;    */
  292.     /* char            *prefix;        */
  293.     /* int            *argc;        */
  294.     /* char            **argv;        */
  295.  
  296.  
  297.  
  298. #endif /* _Xresource_h */
  299. /* DON'T ADD STUFF AFTER THIS #endif */
  300.