github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/include/X11/Xresource.h (about)

     1  
     2  /***********************************************************
     3  
     4  Copyright 1987, 1988, 1998  The Open Group
     5  
     6  Permission to use, copy, modify, distribute, and sell this software and its
     7  documentation for any purpose is hereby granted without fee, provided that
     8  the above copyright notice appear in all copies and that both that
     9  copyright notice and this permission notice appear in supporting
    10  documentation.
    11  
    12  The above copyright notice and this permission notice shall be included in
    13  all copies or substantial portions of the Software.
    14  
    15  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    18  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    19  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    20  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    21  
    22  Except as contained in this notice, the name of The Open Group shall not be
    23  used in advertising or otherwise to promote the sale, use or other dealings
    24  in this Software without prior written authorization from The Open Group.
    25  
    26  
    27  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
    28  
    29                          All Rights Reserved
    30  
    31  Permission to use, copy, modify, and distribute this software and its
    32  documentation for any purpose and without fee is hereby granted,
    33  provided that the above copyright notice appear in all copies and that
    34  both that copyright notice and this permission notice appear in
    35  supporting documentation, and that the name of Digital not be
    36  used in advertising or publicity pertaining to distribution of the
    37  software without specific, written prior permission.
    38  
    39  DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    40  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    41  DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    42  ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    43  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    44  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    45  SOFTWARE.
    46  
    47  ******************************************************************/
    48  
    49  #ifndef _X11_XRESOURCE_H_
    50  #define _X11_XRESOURCE_H_
    51  
    52  #ifndef _XP_PRINT_SERVER_
    53  #include <X11/Xlib.h>
    54  #endif
    55  
    56  /****************************************************************
    57   ****************************************************************
    58   ***                                                          ***
    59   ***                                                          ***
    60   ***          X Resource Manager Intrinsics                   ***
    61   ***                                                          ***
    62   ***                                                          ***
    63   ****************************************************************
    64   ****************************************************************/
    65  
    66  _XFUNCPROTOBEGIN
    67  
    68  /****************************************************************
    69   *
    70   * Memory Management
    71   *
    72   ****************************************************************/
    73  
    74  extern char *Xpermalloc(
    75      unsigned int	/* size */
    76  );
    77  
    78  /****************************************************************
    79   *
    80   * Quark Management
    81   *
    82   ****************************************************************/
    83  
    84  typedef int       XrmQuark, *XrmQuarkList;
    85  #define NULLQUARK ((XrmQuark) 0)
    86  
    87  typedef char *XrmString;
    88  #define NULLSTRING ((XrmString) 0)
    89  
    90  /* find quark for string, create new quark if none already exists */
    91  extern XrmQuark XrmStringToQuark(
    92      _Xconst char* 	/* string */
    93  );
    94  
    95  extern XrmQuark XrmPermStringToQuark(
    96      _Xconst char* 	/* string */
    97  );
    98  
    99  /* find string for quark */
   100  extern XrmString XrmQuarkToString(
   101      XrmQuark 		/* quark */
   102  );
   103  
   104  extern XrmQuark XrmUniqueQuark(
   105      void
   106  );
   107  
   108  #define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
   109  
   110  
   111  /****************************************************************
   112   *
   113   * Conversion of Strings to Lists
   114   *
   115   ****************************************************************/
   116  
   117  typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
   118  
   119  extern void XrmStringToQuarkList(
   120      _Xconst char*	/* string */,
   121      XrmQuarkList	/* quarks_return */
   122  );
   123  
   124  extern void XrmStringToBindingQuarkList(
   125      _Xconst char*	/* string */,
   126      XrmBindingList	/* bindings_return */,
   127      XrmQuarkList	/* quarks_return */
   128  );
   129  
   130  /****************************************************************
   131   *
   132   * Name and Class lists.
   133   *
   134   ****************************************************************/
   135  
   136  typedef XrmQuark     XrmName;
   137  typedef XrmQuarkList XrmNameList;
   138  #define XrmNameToString(name)		XrmQuarkToString(name)
   139  #define XrmStringToName(string)		XrmStringToQuark(string)
   140  #define XrmStringToNameList(str, name)	XrmStringToQuarkList(str, name)
   141  
   142  typedef XrmQuark     XrmClass;
   143  typedef XrmQuarkList XrmClassList;
   144  #define XrmClassToString(c_class)	XrmQuarkToString(c_class)
   145  #define XrmStringToClass(c_class)	XrmStringToQuark(c_class)
   146  #define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
   147  
   148  
   149  
   150  /****************************************************************
   151   *
   152   * Resource Representation Types and Values
   153   *
   154   ****************************************************************/
   155  
   156  typedef XrmQuark     XrmRepresentation;
   157  #define XrmStringToRepresentation(string)   XrmStringToQuark(string)
   158  #define	XrmRepresentationToString(type)   XrmQuarkToString(type)
   159  
   160  typedef struct {
   161      unsigned int    size;
   162      XPointer	    addr;
   163  } XrmValue, *XrmValuePtr;
   164  
   165  
   166  /****************************************************************
   167   *
   168   * Resource Manager Functions
   169   *
   170   ****************************************************************/
   171  
   172  typedef struct _XrmHashBucketRec *XrmHashBucket;
   173  typedef XrmHashBucket *XrmHashTable;
   174  typedef XrmHashTable XrmSearchList[];
   175  typedef struct _XrmHashBucketRec *XrmDatabase;
   176  
   177  
   178  extern void XrmDestroyDatabase(
   179      XrmDatabase		/* database */
   180  );
   181  
   182  extern void XrmQPutResource(
   183      XrmDatabase*	/* database */,
   184      XrmBindingList	/* bindings */,
   185      XrmQuarkList	/* quarks */,
   186      XrmRepresentation	/* type */,
   187      XrmValue*		/* value */
   188  );
   189  
   190  extern void XrmPutResource(
   191      XrmDatabase*	/* database */,
   192      _Xconst char*	/* specifier */,
   193      _Xconst char*	/* type */,
   194      XrmValue*		/* value */
   195  );
   196  
   197  extern void XrmQPutStringResource(
   198      XrmDatabase*	/* database */,
   199      XrmBindingList      /* bindings */,
   200      XrmQuarkList	/* quarks */,
   201      _Xconst char*	/* value */
   202  );
   203  
   204  extern void XrmPutStringResource(
   205      XrmDatabase*	/* database */,
   206      _Xconst char*	/* specifier */,
   207      _Xconst char*	/* value */
   208  );
   209  
   210  extern void XrmPutLineResource(
   211      XrmDatabase*	/* database */,
   212      _Xconst char*	/* line */
   213  );
   214  
   215  extern Bool XrmQGetResource(
   216      XrmDatabase		/* database */,
   217      XrmNameList		/* quark_name */,
   218      XrmClassList	/* quark_class */,
   219      XrmRepresentation*	/* quark_type_return */,
   220      XrmValue*		/* value_return */
   221  );
   222  
   223  extern Bool XrmGetResource(
   224      XrmDatabase		/* database */,
   225      _Xconst char*	/* str_name */,
   226      _Xconst char*	/* str_class */,
   227      char**		/* str_type_return */,
   228      XrmValue*		/* value_return */
   229  );
   230  
   231  extern Bool XrmQGetSearchList(
   232      XrmDatabase		/* database */,
   233      XrmNameList		/* names */,
   234      XrmClassList	/* classes */,
   235      XrmSearchList	/* list_return */,
   236      int			/* list_length */
   237  );
   238  
   239  extern Bool XrmQGetSearchResource(
   240      XrmSearchList	/* list */,
   241      XrmName		/* name */,
   242      XrmClass		/* class */,
   243      XrmRepresentation*	/* type_return */,
   244      XrmValue*		/* value_return */
   245  );
   246  
   247  /****************************************************************
   248   *
   249   * Resource Database Management
   250   *
   251   ****************************************************************/
   252  
   253  #ifndef _XP_PRINT_SERVER_
   254  
   255  extern void XrmSetDatabase(
   256      Display*		/* display */,
   257      XrmDatabase		/* database */
   258  );
   259  
   260  extern XrmDatabase XrmGetDatabase(
   261      Display*		/* display */
   262  );
   263  
   264  #endif /* !_XP_PRINT_SERVER_ */
   265  
   266  extern XrmDatabase XrmGetFileDatabase(
   267      _Xconst char*	/* filename */
   268  );
   269  
   270  extern Status XrmCombineFileDatabase(
   271      _Xconst char* 	/* filename */,
   272      XrmDatabase*	/* target */,
   273      Bool		/* override */
   274  );
   275  
   276  extern XrmDatabase XrmGetStringDatabase(
   277      _Xconst char*	/* data */  /*  null terminated string */
   278  );
   279  
   280  extern void XrmPutFileDatabase(
   281      XrmDatabase		/* database */,
   282      _Xconst char*	/* filename */
   283  );
   284  
   285  extern void XrmMergeDatabases(
   286      XrmDatabase		/* source_db */,
   287      XrmDatabase*	/* target_db */
   288  );
   289  
   290  extern void XrmCombineDatabase(
   291      XrmDatabase		/* source_db */,
   292      XrmDatabase*	/* target_db */,
   293      Bool		/* override */
   294  );
   295  
   296  #define XrmEnumAllLevels 0
   297  #define XrmEnumOneLevel  1
   298  
   299  extern Bool XrmEnumerateDatabase(
   300      XrmDatabase		/* db */,
   301      XrmNameList		/* name_prefix */,
   302      XrmClassList	/* class_prefix */,
   303      int			/* mode */,
   304      Bool (*)(
   305  	     XrmDatabase*	/* db */,
   306  	     XrmBindingList	/* bindings */,
   307  	     XrmQuarkList	/* quarks */,
   308  	     XrmRepresentation*	/* type */,
   309  	     XrmValue*		/* value */,
   310  	     XPointer		/* closure */
   311  	     )		/* proc */,
   312      XPointer		/* closure */
   313  );
   314  
   315  extern const char *XrmLocaleOfDatabase(
   316      XrmDatabase 	/* database */
   317  );
   318  
   319  
   320  /****************************************************************
   321   *
   322   * Command line option mapping to resource entries
   323   *
   324   ****************************************************************/
   325  
   326  typedef enum {
   327      XrmoptionNoArg,	/* Value is specified in OptionDescRec.value	    */
   328      XrmoptionIsArg,     /* Value is the option string itself		    */
   329      XrmoptionStickyArg, /* Value is characters immediately following option */
   330      XrmoptionSepArg,    /* Value is next argument in argv		    */
   331      XrmoptionResArg,	/* Resource and value in next argument in argv      */
   332      XrmoptionSkipArg,   /* Ignore this option and the next argument in argv */
   333      XrmoptionSkipLine,  /* Ignore this option and the rest of argv	    */
   334      XrmoptionSkipNArgs	/* Ignore this option and the next
   335  			   OptionDescRes.value arguments in argv */
   336  } XrmOptionKind;
   337  
   338  typedef struct {
   339      char	    *option;	    /* Option abbreviation in argv	    */
   340      char	    *specifier;     /* Resource specifier		    */
   341      XrmOptionKind   argKind;	    /* Which style of option it is	    */
   342      XPointer	    value;	    /* Value to provide if XrmoptionNoArg   */
   343  } XrmOptionDescRec, *XrmOptionDescList;
   344  
   345  
   346  extern void XrmParseCommand(
   347      XrmDatabase*	/* database */,
   348      XrmOptionDescList	/* table */,
   349      int			/* table_count */,
   350      _Xconst char*	/* name */,
   351      int*		/* argc_in_out */,
   352      char**		/* argv_in_out */
   353  );
   354  
   355  _XFUNCPROTOEND
   356  
   357  #endif /* _X11_XRESOURCE_H_ */
   358  /* DON'T ADD STUFF AFTER THIS #endif */