~ctwm/ctwm/trunk

304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
1
/*
554.1.4 by Matthew Fuller
Collapse away license details in ctwm.h.
2
 *       Copyright 1988 by Evans & Sutherland Computer Corporation,
3
 *                          Salt Lake City, Utah
4
 *  Portions Copyright 1989 by the Massachusetts Institute of Technology
5
 *                        Cambridge, Massachusetts
1 by Claude Lecommandeur
CTWM version 1.1
6
 *
7
 * $XConsortium: twm.h,v 1.74 91/05/31 17:38:30 dave Exp $
8
 *
9
 * twm include file
10
 *
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
11
 * 28-Oct-87 Thomas E. LaStrange        File created
1 by Claude Lecommandeur
CTWM version 1.1
12
 * 10-Oct-90 David M. Sternlicht        Storeing saved colors on root
554.1.4 by Matthew Fuller
Collapse away license details in ctwm.h.
13
 *
14
 * Copyright 1992 Claude Lecommandeur.
15
 */
484 by Matthew Fuller
Consistently rename all the include guards so they match the filename,
16
#ifndef _CTWM_CTWM_H
17
#define _CTWM_CTWM_H
1 by Claude Lecommandeur
CTWM version 1.1
18
395.1.3 by Matthew Fuller
Pull in ctwm_config.h at the top of ctwm.h. Which is at the top of
19
/*
20
 * Include config first, before anything else.  Including ctwm.h should
21
 * be the first action of any of our files, so this happens before
22
 * ANYthing else, anywhere.
23
 */
24
#include "ctwm_config.h"
25
19 by Claude Lecommandeur
CTWM version 3.5.2c
26
#ifdef DMALLOC
27
#include <dmalloc.h>
28
#endif
29
492.2.48 by Matthew Fuller
Some more Bool->bool conversions.
30
#include <stdbool.h>
31
492.2.18 by Matthew Fuller
Expand comment a bit, and comment out (but leave for doc/emergency
32
/*
33
 * Intrinsic.h is needed for at least the Pixel type, which we use in
34
 * this file.  And Intrinsic.h (always?) implicitly brings in Xlib.h
35
 * anyway.
36
 */
37
//#include <X11/Xlib.h>
38
#include <X11/Intrinsic.h>
338.1.6 by Matthew Fuller
Pull in generated config file.
39
93 by Richard Levitte
- Convert all functions to use proper prototypes.
40
#include "types.h"
353 by Matthew Fuller
Conditionalize #include'ing ewmh.h on EWMH.
41
#ifdef EWMH
302.1.39 by Olaf 'Rhialto' Seibert
Add some support for NET_WM_WINDOW_TYPE : NET_WM_WINDOW_TYPE_DESKTOP
42
#include "ewmh.h"
353 by Matthew Fuller
Conditionalize #include'ing ewmh.h on EWMH.
43
#endif
2 by Claude Lecommandeur
CTWM version 1.2
44
311.1.1 by Matthew Fuller
Use __attribute__ to tell the compiler that Done never returns.
45
/*
46
 * This appears to be the standard way of testing this for portability,
47
 * though calling it GNUC is sorta non-portable portability   :)
48
 */
49
#ifndef __GNUC__
50
#define  __attribute__(x)  /*NOTHING*/
51
#endif
52
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
53
#define BW 2                    /* border width */
54
#define BW2 4                   /* border width  * 2 */
1 by Claude Lecommandeur
CTWM version 1.1
55
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
56
#define MAX_BUTTONS     11      /* max mouse buttons supported */
1 by Claude Lecommandeur
CTWM version 1.1
57
667.1.8 by Matthew Fuller
Comment this set of defs to note how it's coloring a little outside
58
59
/*
60
 * Contexts for button presses.
61
 * n.b.: These go alongside the ModXMask X11 defs, so better stay above
62
 * them!
63
 */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
64
#define Alt1Mask        (1<<8)
65
#define Alt2Mask        (1<<9)
66
#define Alt3Mask        (1<<10)
67
#define Alt4Mask        (1<<11)
68
#define Alt5Mask        (1<<12)
12 by Claude Lecommandeur
CTWM version 3.3
69
667.1.21 by Matthew Fuller
Add some x-ref comments to warn of future collisions.
70
// X-ref the Over_Mask's used for testing in mk_twmkeys_entry() if we
71
// grow more here, to avoid collision.
72
667.1.8 by Matthew Fuller
Comment this set of defs to note how it's coloring a little outside
73
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
74
#define C_NO_CONTEXT    -1
75
#define C_WINDOW        0
76
#define C_TITLE         1
77
#define C_ICON          2
78
#define C_ROOT          3
79
#define C_FRAME         4
80
#define C_ICONMGR       5
81
#define C_NAME          6
1 by Claude Lecommandeur
CTWM version 1.1
82
#define C_IDENTIFY      7
12 by Claude Lecommandeur
CTWM version 3.3
83
#define C_ALTERNATE     8
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
84
#define C_WORKSPACE     9
85
#define NUM_CONTEXTS    10
86
87
#define C_WINDOW_BIT    (1 << C_WINDOW)
88
#define C_TITLE_BIT     (1 << C_TITLE)
89
#define C_ICON_BIT      (1 << C_ICON)
90
#define C_ROOT_BIT      (1 << C_ROOT)
91
#define C_FRAME_BIT     (1 << C_FRAME)
92
#define C_ICONMGR_BIT   (1 << C_ICONMGR)
93
#define C_NAME_BIT      (1 << C_NAME)
94
#define C_ALTER_BIT     (1 << C_ALTERNATE)
95
#define C_WORKSPACE_BIT (1 << C_WORKSPACE)
96
97
#define C_ALL_BITS      (C_WINDOW_BIT | C_TITLE_BIT | C_ICON_BIT |\
98
                         C_ROOT_BIT | C_FRAME_BIT | C_ICONMGR_BIT |\
99
                         C_WORKSPACE_BIT)
1 by Claude Lecommandeur
CTWM version 1.1
100
101
/* modifiers for button presses */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
102
#define MOD_SIZE        ((ShiftMask | ControlMask | Mod1Mask \
103
                          | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask) + 1)
1 by Claude Lecommandeur
CTWM version 1.1
104
497.1.8 by Matthew Fuller
More verbose comment for ZOOM_NONE.
105
/*
106
 * Used for TwmWindow.zoomed.  Var holds the number of the function that
107
 * caused zooming, if one has, else ZOOM_NONE.  This mirror F_NOP
108
 * currently, but that's OK, because f.nop doesn't do anything, so it
109
 * can't be a real cause of zooming.
110
 */
1 by Claude Lecommandeur
CTWM version 1.1
111
#define ZOOM_NONE 0
112
113
#define FBF(fix_fore, fix_back, fix_font)\
114
    Gcv.foreground = fix_fore;\
115
    Gcv.background = fix_back;\
116
    Gcv.font = fix_font;\
117
    XChangeGC(dpy, Scr->NormalGC, GCFont|GCForeground|GCBackground,&Gcv)
118
119
#define FB(fix_fore, fix_back)\
120
    Gcv.foreground = fix_fore;\
121
    Gcv.background = fix_back;\
122
    XChangeGC(dpy, Scr->NormalGC, GCForeground|GCBackground,&Gcv)
123
17 by Claude Lecommandeur
CTWM version 3.5
124
#define MaxSize(a, b)  (((a) < (b)) ? (b) : (a))
125
#define MinSize(a, b)  (((a) > (b)) ? (b) : (a))
126
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
127
struct MyFont {
128
	char       *basename;       /* name of the font */
129
	XFontSet    font_set;
130
	int         ascent;
131
	int         descent;
132
	int         height;         /* height of the font */
133
	int         y;              /* Y coordinate to draw characters */
134
	/* Average height, maintained using the extra two auxiliary fields.  */
135
	unsigned int avg_height;
136
	float       avg_fheight;
137
	unsigned int avg_count;
93 by Richard Levitte
- Convert all functions to use proper prototypes.
138
};
1 by Claude Lecommandeur
CTWM version 1.1
139
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
140
struct ColorPair {
141
	Pixel fore, back, shadc, shadd;
93 by Richard Levitte
- Convert all functions to use proper prototypes.
142
};
1 by Claude Lecommandeur
CTWM version 1.1
143
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
144
struct TitleButtonFunc {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
145
	struct TitleButtonFunc *next;  /* next in the list of function buttons */
146
	int num;                       /* button number */
147
	int mods;                      /* modifiers */
148
	int func;                      /* function to execute */
149
	char *action;                  /* optional action arg */
150
	struct MenuRoot *menuroot;     /* menu to pop on F_MENU */
93 by Richard Levitte
- Convert all functions to use proper prototypes.
151
};
11 by Claude Lecommandeur
CTWM version 3.2p1
152
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
153
struct TitleButton {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
154
	struct TitleButton *next;           /* next link in chain */
155
	char *name;                         /* bitmap name in case of deferal */
156
	Image *image;                       /* image to display in button */
157
	int srcx, srcy;                     /* from where to start copying */
158
	unsigned int width, height;         /* size of pixmap */
159
	int dstx, dsty;                     /* to where to start copying */
492.2.73 by Matthew Fuller
Trivial bool-ification of this struct member.
160
	bool rightside;                     /* t: on right, f: on left */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
161
	TitleButtonFunc *funs;              /* funcs assoc'd to each button */
93 by Richard Levitte
- Convert all functions to use proper prototypes.
162
};
1 by Claude Lecommandeur
CTWM version 1.1
163
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
164
struct TBWindow {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
165
	Window window;                      /* which window in this frame */
166
	Image *image;                       /* image to display in button */
167
	TitleButton *info;                  /* description of this window */
93 by Richard Levitte
- Convert all functions to use proper prototypes.
168
};
1 by Claude Lecommandeur
CTWM version 1.1
169
496.1.20 by Matthew Fuller
Create and use an enum type for SqueezeInfo.justify.
170
171
typedef enum {
172
	SIJ_LEFT,
173
	SIJ_CENTER,
174
	SIJ_RIGHT,
175
} SIJust;
176
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
177
struct SqueezeInfo {
496.1.20 by Matthew Fuller
Create and use an enum type for SqueezeInfo.justify.
178
	SIJust justify;
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
179
	int num;                            /* signed pixel count or numerator */
180
	int denom;                          /* 0 for pix count or denominator */
93 by Richard Levitte
- Convert all functions to use proper prototypes.
181
};
1 by Claude Lecommandeur
CTWM version 1.1
182
496.1.14 by Matthew Fuller
Create an enum for the IconRegion Alignement (misspelling preserved
183
184
/*
185
 * Type for IconRegion alignment and config entries relating
186
 *
187
 * Misspeelt for hysterical raisins
188
 */
189
typedef enum {
190
	IRA_UNDEF,
191
	IRA_TOP,
192
	IRA_CENTER,
193
	IRA_BOTTOM,
194
	IRA_BORDER,
496.1.29 by Matthew Fuller
make indent
195
} IRAlignement;
496.1.14 by Matthew Fuller
Create an enum for the IconRegion Alignement (misspelling preserved
196
496.1.16 by Matthew Fuller
Convert TitleJustification elements to their own enum type, and fixup
197
/*
198
 * Justification for title stuff.  Window titles (TitleJustification),
199
 * icon titles (IconJustification).  _Not_ the same as for
200
 * IconRegionJustification.
201
 */
202
typedef enum {
203
	TJ_UNDEF,
204
	TJ_LEFT,
205
	TJ_CENTER,
206
	TJ_RIGHT,
207
} TitleJust;
208
496.1.17 by Matthew Fuller
Convert IconRegion Justification to its own enum type too. This is
209
/*
210
 * And IconRegion Justification's.
211
 */
212
typedef enum {
213
	IRJ_UNDEF,
214
	IRJ_LEFT,
215
	IRJ_CENTER,
216
	IRJ_RIGHT,
217
	IRJ_BORDER,
218
} IRJust;
219
1 by Claude Lecommandeur
CTWM version 1.1
220
513.1.14 by Matthew Fuller
Comment a little on why this is combined and why it should be split.
221
/*
222
 * Gravity used by IconRegion and WindowRegion.  Strictly, there should
223
 * probably be separate vertical/horizontal types, but it'll take some
224
 * nontrivial code reshuffling to make that possible because of how the
225
 * values are used in the split* functions.
226
 */
513.1.7 by Matthew Fuller
Add a RegGravity enum to hold the gravity values.
227
typedef enum {
228
	GRAV_NORTH,
229
	GRAV_EAST,
230
	GRAV_SOUTH,
231
	GRAV_WEST,
232
} RegGravity;
233
234
497.1.1 by Matthew Fuller
enum-ify Screen->RandomPlacement.
235
/* RandomPlacement bits */
236
typedef enum {
237
	RP_OFF,
238
	RP_ALL,
239
	RP_UNMAPPED,
240
} RandPlac;
241
497.1.2 by Matthew Fuller
enum-ise Screen->UsePPosition.
242
/* UsePPosition */
243
typedef enum {
244
	PPOS_OFF,
245
	PPOS_ON,
246
	PPOS_NON_ZERO,
247
	/*
248
	 * may eventually want an option for having the PPosition be the
249
	 * initial location for the drag lines.
250
	 */
251
} UsePPoss;
252
497.1.1 by Matthew Fuller
enum-ify Screen->RandomPlacement.
253
1 by Claude Lecommandeur
CTWM version 1.1
254
/* Colormap window entry for each window in WM_COLORMAP_WINDOWS
255
 * ICCCM property.
256
 */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
257
struct TwmColormap {
258
	Colormap c;                 /* Colormap id */
259
	int state;                  /* install(ability) state */
260
	unsigned long install_req;  /* request number which installed it */
261
	Window w;                   /* window causing load of color table */
262
	int refcnt;
263
};
264
497.1.6 by Matthew Fuller
Comment.
265
/* TwmColormap.state bit definitions */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
266
#define CM_INSTALLABLE          1
267
#define CM_INSTALLED            2
268
#define CM_INSTALL              4
269
497.1.6 by Matthew Fuller
Comment.
270
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
271
struct ColormapWindow {
272
	Window w;                   /* Window id */
273
	TwmColormap *colormap;      /* Colormap for this window */
274
	int visibility;             /* Visibility of this window */
275
	int refcnt;
276
};
277
278
struct Colormaps {
279
	ColormapWindow **cwins;     /* current list of colormap windows */
280
	int number_cwins;           /* number of elements in current list */
281
	char *scoreboard;           /* conflicts between installable colortables */
93 by Richard Levitte
- Convert all functions to use proper prototypes.
282
};
1 by Claude Lecommandeur
CTWM version 1.1
283
284
#define ColormapsScoreboardLength(cm) ((cm)->number_cwins * \
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
285
                                       ((cm)->number_cwins - 1) / 2)
1 by Claude Lecommandeur
CTWM version 1.1
286
93 by Richard Levitte
- Convert all functions to use proper prototypes.
287
struct WindowRegion {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
288
	struct WindowRegion *next;
289
	int                 x, y, w, h;
513.1.8 by Matthew Fuller
Swap to the new enum for these gravity values, and retire the old
290
	RegGravity          grav1, grav2;
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
291
	name_list           *clientlist;
292
	struct WindowEntry  *entries;
93 by Richard Levitte
- Convert all functions to use proper prototypes.
293
};
6 by Claude Lecommandeur
CTWM version 2.2
294
93 by Richard Levitte
- Convert all functions to use proper prototypes.
295
struct WindowEntry {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
296
	struct WindowEntry  *next;
297
	int                 x, y, w, h;
298
	struct TwmWindow    *twm_win;
492.2.81 by Matthew Fuller
short->bool these 'used' elements.
299
	bool                used;
93 by Richard Levitte
- Convert all functions to use proper prototypes.
300
};
6 by Claude Lecommandeur
CTWM version 2.2
301
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
302
struct WindowBox {
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
303
	struct WindowBox    *next;
304
	char                *name;
305
	char                *geometry;
306
	name_list           *winlist;
307
	Window              window;
308
	struct TwmWindow    *twmwin;
93 by Richard Levitte
- Convert all functions to use proper prototypes.
309
};
20 by Claude Lecommandeur
CTWM version 3.6
310
612.3.1 by Matthew Fuller
Extract struct TwmWindow from ctwm.h and off into its own file. We
311
312
/*
313
 * Pull in struct TwmWindow.  Moved to a separate file to ease scanning
314
 * through both it and the other stuff in here.
1 by Claude Lecommandeur
CTWM version 1.1
315
 */
612.3.1 by Matthew Fuller
Extract struct TwmWindow from ctwm.h and off into its own file. We
316
#include "twm_window_struct.h"
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
317
611.1.2 by Matthew Fuller
Doc what these are for.
318
319
/* Flags for TwmWindow.protocols */
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
320
#define DoesWmTakeFocus         (1L << 0)
321
#define DoesWmSaveYourself      (1L << 1)
322
#define DoesWmDeleteWindow      (1L << 2)
323
8 by Claude Lecommandeur
CTWM version 3.0
324
1 by Claude Lecommandeur
CTWM version 1.1
325
extern char *ProgramName;
647.1.7 by Matthew Fuller
Start splitting out signal handlers and their setup into their own
326
extern size_t ProgramNameLen;
1 by Claude Lecommandeur
CTWM version 1.1
327
extern Display *dpy;
207.1.10 by Richard Levitte
Clean out USE_SESSION, X11R6 and the remainders of I18N
328
extern XtAppContext appContext;
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
329
extern Window ResizeWindow;     /* the window we are resizing */
492.2.94 by Matthew Fuller
boolify these globals.
330
extern bool HasShape;           /* this server supports Shape extension */
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
331
extern int ShapeEventBase, ShapeErrorBase;
1 by Claude Lecommandeur
CTWM version 1.1
332
333
extern int PreviousScreen;
334
335
extern Cursor UpperLeftCursor;
336
extern Cursor RightButt;
337
extern Cursor MiddleButt;
338
extern Cursor LeftButt;
339
340
extern XClassHint NoClass;
341
342
extern XContext TwmContext;
343
extern XContext MenuContext;
344
extern XContext ScreenContext;
345
extern XContext ColormapContext;
346
347
extern char *Home;
348
extern int HomeLen;
349
492.2.94 by Matthew Fuller
boolify these globals.
350
extern bool HandlingEvents;
240.1.2 by Rhialto
3 - Selected a number of cleanups from Stefan Monnier
351
extern Cursor TopCursor, TopLeftCursor, LeftCursor, BottomLeftCursor,
304.1.2 by Matthew Fuller
Run 'make indent' to reindent the world.
352
       BottomCursor, BottomRightCursor, RightCursor, TopRightCursor;
1 by Claude Lecommandeur
CTWM version 1.1
353
502.1.18 by Matthew Fuller
Add comments about the usage of Junk vars, and collapse their
354
/* Junk vars; see comment in ctwm.c about usage */
355
extern Window JunkRoot, JunkChild;
356
extern int JunkX, JunkY;
1 by Claude Lecommandeur
CTWM version 1.1
357
extern unsigned int JunkWidth, JunkHeight, JunkBW, JunkDepth, JunkMask;
502.1.18 by Matthew Fuller
Add comments about the usage of Junk vars, and collapse their
358
1 by Claude Lecommandeur
CTWM version 1.1
359
extern XGCValues Gcv;
360
extern int Argc;
361
extern char **Argv;
362
492.2.48 by Matthew Fuller
Some more Bool->bool conversions.
363
extern bool RestartPreviousState;
1 by Claude Lecommandeur
CTWM version 1.1
364
647.1.8 by Matthew Fuller
Use a more general "signal recvd" flag in place of the specific
365
extern bool SignalFlag;    ///< Some signal flag has been set
120 by Richard Levitte
- Move the restarting code from Restart() to DoRestart().
366
1 by Claude Lecommandeur
CTWM version 1.1
367
#define OCCUPY(w, b) ((b == NULL) ? 1 : (w->occupation & (1 << b->number)))
17 by Claude Lecommandeur
CTWM version 3.5
368
389.1.30 by Matthew Fuller
Create a structure to stick command-line args into, starting with some
369
370
/*
371
 * Command-line arg handling bits
372
 */
373
typedef struct _ctwm_cl_args {
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
374
	bool   MultiScreen;        // ! --single, grab multiple screens
375
	bool   Monochrome;         // --mono, force monochrome
376
	bool   cfgchk;             // --cfgchk, check config and exit
389.1.43 by Matthew Fuller
Convert --file over to CLarg.
377
	char  *InitFile;           // --file, config filename
389.1.45 by Matthew Fuller
Convert --display to CLarg.
378
	char  *display_name;       // --display, X server display
389.1.38 by Matthew Fuller
Add a little whitespace for readability.
379
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
380
	bool   PrintErrorMessages; // --verbose, show more debug output
492.2.70 by Matthew Fuller
Convert WelcomeWindow conditionals (in multiple structs) to bool.
381
	bool   ShowWelcomeWindow;  // ! --nowelcome, show splash screen
389.1.39 by Matthew Fuller
Switch --verbose/--quiet flag over to CLarg.
382
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
383
	bool   is_captive;         // --window (flag), running captive
389.1.48 by Matthew Fuller
Move --window's optional argument value into CLarg.
384
	Window capwin;             // --window (arg), existing window to capture
389.1.47 by Matthew Fuller
Add captivename to CLarg, but don't use it yet; there's a place
385
	char  *captivename;        // --name, captive name
389.1.46 by Matthew Fuller
Convert the 'captive' flag to is_captive and move it into CLarg.
386
389.1.30 by Matthew Fuller
Create a structure to stick command-line args into, starting with some
387
#ifdef USEM4
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
388
	bool   KeepTmpFile;        // --keep-defs, keep generated m4 defs
389.1.30 by Matthew Fuller
Create a structure to stick command-line args into, starting with some
389
	char  *keepM4_filename;    // --keep, keep m4 post-processed output
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
390
	bool   GoThroughM4;        // ! --nom4, do m4 processing
389.1.30 by Matthew Fuller
Create a structure to stick command-line args into, starting with some
391
#endif
389.1.38 by Matthew Fuller
Add a little whitespace for readability.
392
389.1.37 by Matthew Fuller
Convert --replace flag to CLarg.
393
#ifdef EWMH
492.2.71 by Matthew Fuller
bool-ify these boolean flags in command-line args, instead of them
394
	bool   ewmh_replace;       // --replace, replacing running WM
389.1.37 by Matthew Fuller
Convert --replace flag to CLarg.
395
#endif
389.1.49 by Matthew Fuller
Convert --clientId to CLarg.
396
397
	char  *client_id;          // --clientId, session client id
389.1.50 by Matthew Fuller
Convert --restore arg to CLarg.
398
	char  *restore_filename;   // --restore, session filename
389.1.30 by Matthew Fuller
Create a structure to stick command-line args into, starting with some
399
} ctwm_cl_args;
400
extern ctwm_cl_args CLarg;
401
402
484 by Matthew Fuller
Consistently rename all the include guards so they match the filename,
403
#endif /* _CTWM_CTWM_H */