1 /*
2  * Motif Tools Library, Version 3.1
3  * $Id: Symbols.h,v 1.1.1.1 2001/02/10 13:50:55 motiftools Exp $
4  *
5  * Written by David Flanagan.
6  * Copyright (c) 1992-2001 by David Flanagan.
7  * All Rights Reserved.  See the file COPYRIGHT for details.
8  * This is open source software.  See the file LICENSE for details.
9  * There is no warranty for this software.  See NO_WARRANTY for details.
10  *
11  * $Log: Symbols.h,v $
12  * Revision 1.1.1.1  2001/02/10 13:50:55  motiftools
13  * Initial import of Xmt310 to CVS
14  *
15  *
16  */
17 
18 #ifndef _XmtSymbols_h
19 #define _XmtSymbols_h
20 
21 #include <Xmt/Hash.h>
22 
23 typedef struct _XmtSymbolRec *XmtSymbol;
24 
25 typedef void (*XmtSymbolCallbackProc)(
26 #if NeedFunctionPrototypes
27 				      XmtSymbol, XtPointer, XtArgVal
28 #endif
29 				      );
30 
31 typedef struct _XmtSymbolCallbackRec {
32     XmtSymbolCallbackProc proc;
33     XtPointer closure;
34     struct _XmtSymbolCallbackRec *next;
35 } XmtSymbolCallbackRec;
36 
37 typedef struct _XmtSymbolRec {       /* app programmer declares these */
38     String name;
39     String type;
40     Cardinal size;
41     XtPointer addr;
42     String resource_name;
43     short num_values;
44     XtPointer *values;
45     /* private, don't initialize */
46     unsigned char mode;
47     XmtSymbolCallbackRec *callbacks;
48     unsigned short index;
49 } XmtSymbolRec;
50 
51 _XFUNCPROTOBEGIN
52 #if NeedFunctionPrototypes
53 extern void XmtRegisterSymbol(XmtSymbol);
54 extern void XmtRegisterSymbols(XmtSymbolRec *, Cardinal);
55 extern void XmtRegisterResourceList(XtPointer, XtResourceList, Cardinal);
56 extern void XmtRegisterWidgetResource(StringConst, Widget, StringConst);
57 extern XmtSymbol XmtLookupSymbol(StringConst);
58 extern void XmtSymbolSetValue(XmtSymbol, XtArgVal);
59 extern void XmtSymbolGetValue(XmtSymbol, XtArgVal *);
60 extern Boolean XmtSymbolSetTypedValue(Widget, XmtSymbol, String,
61 				      XtArgVal, Cardinal);
62 extern String XmtSymbolName(XmtSymbol);
63 extern int XmtSymbolSize(XmtSymbol);
64 extern XrmQuark XmtSymbolTypeQuark(XmtSymbol);
65 extern String XmtSymbolType(XmtSymbol);
66 extern Boolean XmtSymbolIsEnumerated(XmtSymbol);
67 extern void XmtSymbolAddCallback(XmtSymbol, XmtSymbolCallbackProc, XtPointer);
68 extern void XmtSymbolRemoveCallback(XmtSymbol,XmtSymbolCallbackProc,XtPointer);
69 #else
70 extern void XmtRegisterSymbol();
71 extern void XmtRegisterSymbols();
72 extern void XmtRegisterResourceList();
73 extern void XmtRegisterWidgetResource();
74 extern XmtSymbol XmtLookupSymbol();
75 extern void XmtSymbolSetValue();
76 extern void XmtSymbolGetValue();
77 extern Boolean XmtSymbolSetTypedValue();
78 extern String XmtSymbolName();
79 extern int XmtSymbolSize();
80 extern XrmQuark XmtSymbolTypeQuark();
81 extern String XmtSymbolType();
82 extern Boolean XmtSymbolIsEnumerated();
83 extern void XmtSymbolAddCallback();
84 extern void XmtSymbolRemoveCallback();
85 #endif
86 
87 #if NeedVarargsPrototypes
88 extern void XmtVaRegisterSymbols(StringConst, ...);
89 #else
90 extern void XmtVaRegisterSymbols();
91 #endif
92 _XFUNCPROTOEND
93 
94 #endif /* _XmtSymbols_h */
95