~ctwm/ctwm/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
/*****************************************************************************/
/**       Copyright 1988 by Evans & Sutherland Computer Corporation,        **/
/**                          Salt Lake City, Utah                           **/
/**  Portions Copyright 1989 by the Massachusetts Institute of Technology   **/
/**                        Cambridge, Massachusetts                         **/
/**                                                                         **/
/**                           All Rights Reserved                           **/
/**                                                                         **/
/**    Permission to use, copy, modify, and distribute this software and    **/
/**    its documentation  for  any  purpose  and  without  fee is hereby    **/
/**    granted, provided that the above copyright notice appear  in  all    **/
/**    copies and that both  that  copyright  notice  and  this  permis-    **/
/**    sion  notice appear in supporting  documentation,  and  that  the    **/
/**    names of Evans & Sutherland and M.I.T. not be used in advertising    **/
/**    in publicity pertaining to distribution of the  software  without    **/
/**    specific, written prior permission.                                  **/
/**                                                                         **/
/**    EVANS & SUTHERLAND AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD    **/
/**    TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES  OF  MERCHANT-    **/
/**    ABILITY  AND  FITNESS,  IN  NO  EVENT SHALL EVANS & SUTHERLAND OR    **/
/**    M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  DAM-    **/
/**    AGES OR  ANY DAMAGES WHATSOEVER  RESULTING FROM LOSS OF USE, DATA    **/
/**    OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER    **/
/**    TORTIOUS ACTION, ARISING OUT OF OR IN  CONNECTION  WITH  THE  USE    **/
/**    OR PERFORMANCE OF THIS SOFTWARE.                                     **/
/*****************************************************************************/
/*
 *  [ ctwm ]
 *
 *  Copyright 1992 Claude Lecommandeur.
 *
 * Permission to use, copy, modify  and distribute this software  [ctwm] and
 * its documentation for any purpose is hereby granted without fee, provided
 * that the above  copyright notice appear  in all copies and that both that
 * copyright notice and this permission notice appear in supporting documen-
 * tation, and that the name of  Claude Lecommandeur not be used in adverti-
 * sing or  publicity  pertaining to  distribution of  the software  without
 * specific, written prior permission. Claude Lecommandeur make no represen-
 * tations  about the suitability  of this software  for any purpose.  It is
 * provided "as is" without express or implied warranty.
 *
 * Claude Lecommandeur DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL  IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS.  IN NO
 * EVENT SHALL  Claude Lecommandeur  BE LIABLE FOR ANY SPECIAL,  INDIRECT OR
 * CONSEQUENTIAL  DAMAGES OR ANY  DAMAGES WHATSOEVER  RESULTING FROM LOSS OF
 * USE, DATA  OR PROFITS,  WHETHER IN AN ACTION  OF CONTRACT,  NEGLIGENCE OR
 * OTHER  TORTIOUS ACTION,  ARISING OUT OF OR IN  CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 *
 * Author:  Claude Lecommandeur [ lecom@sic.epfl.ch ][ April 1992 ]
 */


/**********************************************************************
 *
 * $XConsortium: parse.h,v 1.14 89/12/14 14:51:25 jim Exp $
 *
 * .twmrc parsing externs
 *
 *  8-Apr-88 Tom LaStrange        Initial Version.
 *
 **********************************************************************/

#ifndef _CTWM_PARSE_H
#define _CTWM_PARSE_H

extern unsigned int mods_used;
extern int ConstrainedMoveTime;
extern int RaiseDelay;
extern bool ParseError;    /* error parsing the .twmrc file */

/* Needed in the lexer */
extern int (*twmInputFunc)(void);

bool ParseTwmrc(char *filename);
void twmrc_error_prefix(void);

/*
 * Funcs in parse_be.c but used elsewhere in the codebase; these should
 * be looked at, because I think it probably means either they're
 * misused, misnamed, or the code calling them should be in parse_be
 * itself anyway.
 */
int ParseIRJustification(const char *s);
int ParseTitleJustification(const char *s);
int ParseAlignement(const char *s);
void assign_var_savecolor(void);

/*
 * This is in parse_be.c because it needs to look at keytable, but put
 * here because it's only built to be used early in main() as a sanity
 * test, to hopefully be seen by devs as soon as they mess up.
 */
void chk_keytable_order(void);

/*
 * Historical support for non-flex lex's is presumed no longer necessary.
 * Remnants kept for the moment just in case.
 */
#undef NON_FLEX_LEX
#ifdef NON_FLEX_LEX
void twmUnput(int c);
void TwmOutput(int c);
#endif /* NON_FLEX_LEX */


/*
 * Various defined numbers for functions and gravity directions.  These
 * are strictly speaking more config-y than parse-y, but we don't
 * currently make such a distinction in the codebase.
 */
#define F_NOP                   0
#define F_BEEP                  1
#define F_RESTART               2
#define F_QUIT                  3
#define F_FOCUS                 4
#define F_REFRESH               5
#define F_WINREFRESH            6
#define F_DELTASTOP             7
#define F_MOVE                  8
#define F_POPUP                 9
#define F_FORCEMOVE             10
#define F_AUTORAISE             11
#define F_IDENTIFY              12
#define F_ICONIFY               13
#define F_DEICONIFY             14
#define F_UNFOCUS               15
#define F_RESIZE                16
#define F_VERTZOOM              17
#define F_LEFTZOOM              18
#define F_RIGHTZOOM             19
#define F_TOPZOOM               20
#define F_BOTTOMZOOM            21
#define F_HORIZOOM              22
#define F_FULLZOOM              23
#define F_RAISE                 24
#define F_RAISELOWER            25
#define F_LOWER                 26
#define F_DESTROY               27
#define F_DELETE                28
#define F_SAVEYOURSELF          29
#define F_VERSION               30
#define F_TITLE                 31
#define F_RIGHTICONMGR          32
#define F_LEFTICONMGR           33
#define F_UPICONMGR             34
#define F_DOWNICONMGR           35
#define F_FORWICONMGR           36
#define F_BACKICONMGR           37
#define F_NEXTICONMGR           38
#define F_PREVICONMGR           39
#define F_SORTICONMGR           40
#define F_CIRCLEUP              41
#define F_CIRCLEDOWN            42
//#define F_CUTFILE             43
#define F_SHOWLIST              44
#define F_HIDELIST              45
#define F_OCCUPY                46
#define F_OCCUPYALL             47
#define F_SHOWWORKMGR           48
#define F_HIDEWORKMGR           49
#define F_SETBUTTONSTATE        50
#define F_SETMAPSTATE           51
#define F_TOGGLESTATE           52
#define F_PIN                   53
#define F_MOVEMENU              54
#define F_VANISH                55
#define F_NEXTWORKSPACE         56
#define F_PREVWORKSPACE         57
#define F_SEPARATOR             58
#define F_ADOPTWINDOW           59
#define F_STARTANIMATION        60
#define F_STOPANIMATION         61
#define F_SPEEDUPANIMATION      62
#define F_SLOWDOWNANIMATION     63
#ifdef SOUNDS
#define F_TOGGLESOUND           64
#define F_REREADSOUNDS          65
#endif
#define F_TRACE                 66
#define F_WINWARP               67
#define F_ALTCONTEXT            68
#define F_LEFTWORKSPACE         69
#define F_RIGHTWORKSPACE        70
#define F_UPWORKSPACE           71
#define F_DOWNWORKSPACE         72
#define F_RAISEICONS            73
#define F_MOVEPACK              74
#define F_MOVEPUSH              75
#define F_DELETEORDESTROY       76
#define F_SQUEEZE               77
#define F_FORWMAPICONMGR        78
#define F_BACKMAPICONMGR        79
#define F_SAVEGEOMETRY          80
#define F_RESTOREGEOMETRY       81
#define F_TOGGLEWORKMGR         82
#define F_HYPERMOVE             83
#define F_INITSIZE              84
#define F_RING                  85
#define F_AUTOLOWER             86
#define F_FITTOCONTENT          87
#define F_SHOWBGRD              88
#define F_FULLSCREENZOOM        89


#define F_MENU                  101     /* string */
#define F_WARPTO                102     /* string */
#define F_WARPTOICONMGR         103     /* string */
#define F_WARPRING              104     /* string */
//#define F_FILE                105     /* string */
#define F_EXEC                  106     /* string */
//#define F_CUT                 107     /* string */
#define F_FUNCTION              108     /* string */
#define F_WARPTOSCREEN          109     /* string */
#define F_COLORMAP              110     /* string */
#define F_GOTOWORKSPACE         111     /* string */
#define F_WARPHERE              112     /* string */
#define F_ALTKEYMAP             113     /* string */
#define F_ADDTOWORKSPACE        114     /* string */
#define F_REMOVEFROMWORKSPACE   115     /* string */
#define F_TOGGLEOCCUPATION      116     /* string */
#define F_PACK                  117     /* string */
#define F_FILL                  118     /* string */
#define F_JUMPRIGHT             119     /* string */
#define F_JUMPLEFT              120     /* string */
#define F_JUMPUP                121     /* string */
#define F_JUMPDOWN              122     /* string */
#define F_MOVERESIZE            123     /* string */
#define F_MOVETONEXTWORKSPACE   124
#define F_MOVETOPREVWORKSPACE   125
#define F_MOVETONEXTWORKSPACEANDFOLLOW   126
#define F_MOVETOPREVWORKSPACEANDFOLLOW   127
#define F_CHANGESIZE            128     /* string */
#define F_MOVETITLEBAR          129

#define F_SETPRIORITY           150     /* string (but should be number) */
#define F_CHANGEPRIORITY        151     /* string (but should be number) */
#define F_SWITCHPRIORITY        152
#define F_PRIORITYSWITCHING     153
#define F_TINYRAISE             154
#define F_TINYLOWER             155
#define F_UNSQUEEZE             156
#define F_RAISEORSQUEEZE        157
#define F_RESCUE_WINDOWS        158

#endif /* _CTWM_PARSE_H */