Blame


1 038e9089 2004-03-21 devnull /* Copyright (c) 1994-1996 David Hogan, see README for licence details */
2 038e9089 2004-03-21 devnull
3 038e9089 2004-03-21 devnull #define BORDER _border
4 1cb3fa80 2004-03-29 devnull #define CORNER _corner
5 038e9089 2004-03-21 devnull #define INSET _inset
6 aa808685 2004-04-19 devnull #define MAXHIDDEN 128
7 038e9089 2004-03-21 devnull #define B3FIXED 5
8 038e9089 2004-03-21 devnull
9 038e9089 2004-03-21 devnull #define AllButtonMask (Button1Mask|Button2Mask|Button3Mask \
10 038e9089 2004-03-21 devnull |Button4Mask|Button5Mask)
11 038e9089 2004-03-21 devnull #define ButtonMask (ButtonPressMask|ButtonReleaseMask)
12 038e9089 2004-03-21 devnull #define MenuMask (ButtonMask|ButtonMotionMask|ExposureMask)
13 038e9089 2004-03-21 devnull #define MenuGrabMask (ButtonMask|ButtonMotionMask|StructureNotifyMask)
14 038e9089 2004-03-21 devnull
15 038e9089 2004-03-21 devnull #ifdef Plan9
16 038e9089 2004-03-21 devnull #define DEFSHELL "/bin/rc"
17 038e9089 2004-03-21 devnull #else
18 038e9089 2004-03-21 devnull #define DEFSHELL "/bin/sh"
19 038e9089 2004-03-21 devnull #endif
20 038e9089 2004-03-21 devnull
21 038e9089 2004-03-21 devnull typedef struct Client Client;
22 038e9089 2004-03-21 devnull typedef struct Menu Menu;
23 038e9089 2004-03-21 devnull typedef struct ScreenInfo ScreenInfo;
24 c005568a 2004-03-30 devnull typedef enum BorderOrient BorderOrient;
25 038e9089 2004-03-21 devnull
26 038e9089 2004-03-21 devnull struct Client {
27 038e9089 2004-03-21 devnull Window window;
28 038e9089 2004-03-21 devnull Window parent;
29 038e9089 2004-03-21 devnull Window trans;
30 038e9089 2004-03-21 devnull Client *next;
31 038e9089 2004-03-21 devnull Client *revert;
32 038e9089 2004-03-21 devnull
33 038e9089 2004-03-21 devnull int x;
34 038e9089 2004-03-21 devnull int y;
35 038e9089 2004-03-21 devnull int dx;
36 038e9089 2004-03-21 devnull int dy;
37 038e9089 2004-03-21 devnull int border;
38 038e9089 2004-03-21 devnull
39 038e9089 2004-03-21 devnull XSizeHints size;
40 038e9089 2004-03-21 devnull int min_dx;
41 038e9089 2004-03-21 devnull int min_dy;
42 038e9089 2004-03-21 devnull
43 038e9089 2004-03-21 devnull int state;
44 038e9089 2004-03-21 devnull int init;
45 038e9089 2004-03-21 devnull int reparenting;
46 038e9089 2004-03-21 devnull int is9term;
47 038e9089 2004-03-21 devnull int hold;
48 038e9089 2004-03-21 devnull int proto;
49 038e9089 2004-03-21 devnull
50 038e9089 2004-03-21 devnull char *label;
51 038e9089 2004-03-21 devnull char *instance;
52 038e9089 2004-03-21 devnull char *class;
53 038e9089 2004-03-21 devnull char *name;
54 038e9089 2004-03-21 devnull char *iconname;
55 038e9089 2004-03-21 devnull
56 038e9089 2004-03-21 devnull Colormap cmap;
57 038e9089 2004-03-21 devnull int ncmapwins;
58 038e9089 2004-03-21 devnull Window *cmapwins;
59 038e9089 2004-03-21 devnull Colormap *wmcmaps;
60 038e9089 2004-03-21 devnull ScreenInfo *screen;
61 038e9089 2004-03-21 devnull };
62 038e9089 2004-03-21 devnull
63 038e9089 2004-03-21 devnull #define hidden(c) ((c)->state == IconicState)
64 038e9089 2004-03-21 devnull #define withdrawn(c) ((c)->state == WithdrawnState)
65 038e9089 2004-03-21 devnull #define normal(c) ((c)->state == NormalState)
66 038e9089 2004-03-21 devnull
67 038e9089 2004-03-21 devnull /* c->proto */
68 038e9089 2004-03-21 devnull #define Pdelete 1
69 038e9089 2004-03-21 devnull #define Ptakefocus 2
70 c005568a 2004-03-30 devnull #define Plosefocus 4
71 038e9089 2004-03-21 devnull
72 038e9089 2004-03-21 devnull struct Menu {
73 038e9089 2004-03-21 devnull char **item;
74 038e9089 2004-03-21 devnull char *(*gen)();
75 038e9089 2004-03-21 devnull int lasthit;
76 038e9089 2004-03-21 devnull };
77 038e9089 2004-03-21 devnull
78 c005568a 2004-03-30 devnull enum BorderOrient {
79 c005568a 2004-03-30 devnull BorderUnknown = 0, /* we depend on this!*/
80 1cb3fa80 2004-03-29 devnull BorderN,
81 c005568a 2004-03-30 devnull BorderNNE,
82 c005568a 2004-03-30 devnull BorderENE,
83 1cb3fa80 2004-03-29 devnull BorderE,
84 c005568a 2004-03-30 devnull BorderESE,
85 c005568a 2004-03-30 devnull BorderSSE,
86 1cb3fa80 2004-03-29 devnull BorderS,
87 c005568a 2004-03-30 devnull BorderSSW,
88 c005568a 2004-03-30 devnull BorderWSW,
89 1cb3fa80 2004-03-29 devnull BorderW,
90 c005568a 2004-03-30 devnull BorderWNW,
91 c005568a 2004-03-30 devnull BorderNNW,
92 1cb3fa80 2004-03-29 devnull NBorder,
93 1cb3fa80 2004-03-29 devnull };
94 1cb3fa80 2004-03-29 devnull
95 038e9089 2004-03-21 devnull struct ScreenInfo {
96 038e9089 2004-03-21 devnull int num;
97 038e9089 2004-03-21 devnull int depth;
98 c005568a 2004-03-30 devnull Visual *vis;
99 038e9089 2004-03-21 devnull int width;
100 038e9089 2004-03-21 devnull int height;
101 038e9089 2004-03-21 devnull Window root;
102 038e9089 2004-03-21 devnull Window menuwin;
103 038e9089 2004-03-21 devnull Window sweepwin;
104 038e9089 2004-03-21 devnull Colormap def_cmap;
105 038e9089 2004-03-21 devnull GC gc;
106 038e9089 2004-03-21 devnull GC gccopy;
107 038e9089 2004-03-21 devnull GC gcred;
108 038e9089 2004-03-21 devnull GC gcsweep;
109 038e9089 2004-03-21 devnull GC gcmenubg;
110 038e9089 2004-03-21 devnull GC gcmenubgs;
111 038e9089 2004-03-21 devnull GC gcmenufg;
112 038e9089 2004-03-21 devnull GC gcmenufgs;
113 038e9089 2004-03-21 devnull unsigned long black;
114 038e9089 2004-03-21 devnull unsigned long white;
115 038e9089 2004-03-21 devnull unsigned long activeholdborder;
116 038e9089 2004-03-21 devnull unsigned long inactiveholdborder;
117 038e9089 2004-03-21 devnull unsigned long activeborder;
118 038e9089 2004-03-21 devnull unsigned long inactiveborder;
119 038e9089 2004-03-21 devnull unsigned long red;
120 038e9089 2004-03-21 devnull Pixmap bkup[2];
121 038e9089 2004-03-21 devnull int min_cmaps;
122 038e9089 2004-03-21 devnull Cursor target;
123 038e9089 2004-03-21 devnull Cursor sweep0;
124 038e9089 2004-03-21 devnull Cursor boxcurs;
125 038e9089 2004-03-21 devnull Cursor arrow;
126 1cb3fa80 2004-03-29 devnull Cursor bordcurs[NBorder];
127 038e9089 2004-03-21 devnull Pixmap root_pixmap;
128 038e9089 2004-03-21 devnull char display[256]; /* arbitrary limit */
129 038e9089 2004-03-21 devnull };
130 038e9089 2004-03-21 devnull
131 038e9089 2004-03-21 devnull /* main.c */
132 038e9089 2004-03-21 devnull extern Display *dpy;
133 038e9089 2004-03-21 devnull extern ScreenInfo *screens;
134 038e9089 2004-03-21 devnull extern int num_screens;
135 038e9089 2004-03-21 devnull extern int initting;
136 038e9089 2004-03-21 devnull extern XFontStruct *font;
137 038e9089 2004-03-21 devnull extern int nostalgia;
138 038e9089 2004-03-21 devnull extern char **myargv;
139 038e9089 2004-03-21 devnull extern Bool shape;
140 038e9089 2004-03-21 devnull extern char *termprog;
141 038e9089 2004-03-21 devnull extern char *shell;
142 038e9089 2004-03-21 devnull extern char *version[];
143 038e9089 2004-03-21 devnull extern int _border;
144 1cb3fa80 2004-03-29 devnull extern int _corner;
145 038e9089 2004-03-21 devnull extern int _inset;
146 038e9089 2004-03-21 devnull extern int curtime;
147 038e9089 2004-03-21 devnull extern int debug;
148 038e9089 2004-03-21 devnull extern int solidsweep;
149 038e9089 2004-03-21 devnull
150 aa808685 2004-04-19 devnull extern Atom exit_rio;
151 aa808685 2004-04-19 devnull extern Atom restart_rio;
152 038e9089 2004-03-21 devnull extern Atom wm_state;
153 038e9089 2004-03-21 devnull extern Atom wm_change_state;
154 aa808685 2004-04-19 devnull extern Atom _rio_hold_mode;
155 038e9089 2004-03-21 devnull extern Atom wm_protocols;
156 038e9089 2004-03-21 devnull extern Atom wm_delete;
157 038e9089 2004-03-21 devnull extern Atom wm_take_focus;
158 c005568a 2004-03-30 devnull extern Atom wm_lose_focus;
159 038e9089 2004-03-21 devnull extern Atom wm_colormaps;
160 038e9089 2004-03-21 devnull
161 038e9089 2004-03-21 devnull /* client.c */
162 038e9089 2004-03-21 devnull extern Client *clients;
163 038e9089 2004-03-21 devnull extern Client *current;
164 038e9089 2004-03-21 devnull
165 038e9089 2004-03-21 devnull /* menu.c */
166 038e9089 2004-03-21 devnull extern Client *hiddenc[];
167 038e9089 2004-03-21 devnull extern int numhidden;
168 038e9089 2004-03-21 devnull extern char *b3items[];
169 038e9089 2004-03-21 devnull extern Menu b3menu;
170 038e9089 2004-03-21 devnull
171 e62ba5ec 2004-03-21 devnull /* manage.c */
172 e62ba5ec 2004-03-21 devnull extern int isNew;
173 e62ba5ec 2004-03-21 devnull
174 038e9089 2004-03-21 devnull /* error.c */
175 038e9089 2004-03-21 devnull extern int ignore_badwindow;