equal
deleted
inserted
replaced
1 /* See LICENSE file for copyright and license details. */ |
1 /* See LICENSE file for copyright and license details. */ |
2 #include "dwm.h" |
2 #include "dwm.h" |
3 #include <stdlib.h> |
3 #include <stdlib.h> |
4 |
4 |
|
5 typedef struct { |
|
6 const char *symbol; |
|
7 void (*arrange)(void); |
|
8 } Layout; |
|
9 |
5 unsigned int blw = 0; |
10 unsigned int blw = 0; |
6 Layout *lt = NULL; |
11 static Layout *lt = NULL; |
7 |
12 |
8 /* static */ |
13 /* static */ |
|
14 |
|
15 static void |
|
16 floating(void) { |
|
17 Client *c; |
|
18 |
|
19 for(c = clients; c; c = c->next) |
|
20 if(isvisible(c)) |
|
21 resize(c, c->x, c->y, c->w, c->h, True); |
|
22 } |
9 |
23 |
10 static unsigned int nlayouts = 0; |
24 static unsigned int nlayouts = 0; |
11 |
25 |
12 LAYOUTS |
26 LAYOUTS |
13 |
27 |
14 /* extern */ |
28 /* extern */ |
15 |
29 |
16 void |
30 void |
17 floating(void) { |
31 arrange(void) { |
18 Client *c; |
32 Client *c; |
19 |
33 |
20 if(lt->arrange != floating) |
|
21 return; |
|
22 |
|
23 for(c = clients; c; c = c->next) |
34 for(c = clients; c; c = c->next) |
24 if(isvisible(c)) { |
35 if(isvisible(c)) |
25 unban(c); |
36 unban(c); |
26 resize(c, c->x, c->y, c->w, c->h, True); |
|
27 } |
|
28 else |
37 else |
29 ban(c); |
38 ban(c); |
|
39 lt->arrange(); |
30 focus(NULL); |
40 focus(NULL); |
31 restack(); |
41 restack(); |
32 } |
42 } |
33 |
43 |
34 void |
44 void |
51 } |
61 } |
52 if(c) { |
62 if(c) { |
53 focus(c); |
63 focus(c); |
54 restack(); |
64 restack(); |
55 } |
65 } |
|
66 } |
|
67 |
|
68 const char * |
|
69 getsymbol(void) |
|
70 { |
|
71 return lt->symbol; |
|
72 } |
|
73 |
|
74 Bool |
|
75 isfloating(void) { |
|
76 return lt->arrange == floating; |
|
77 } |
|
78 |
|
79 Bool |
|
80 isarrange(void (*func)()) |
|
81 { |
|
82 return func == lt->arrange; |
56 } |
83 } |
57 |
84 |
58 void |
85 void |
59 initlayouts(void) { |
86 initlayouts(void) { |
60 unsigned int i, w; |
87 unsigned int i, w; |
117 if(i < 0 || i >= nlayouts) |
144 if(i < 0 || i >= nlayouts) |
118 return; |
145 return; |
119 lt = &layout[i]; |
146 lt = &layout[i]; |
120 } |
147 } |
121 if(sel) |
148 if(sel) |
122 lt->arrange(); |
149 arrange(); |
123 else |
150 else |
124 drawstatus(); |
151 drawstatus(); |
125 } |
152 } |
126 |
153 |
127 void |
154 void |
129 if(bpos == BarOff) |
156 if(bpos == BarOff) |
130 bpos = (BARPOS == BarOff) ? BarTop : BARPOS; |
157 bpos = (BARPOS == BarOff) ? BarTop : BARPOS; |
131 else |
158 else |
132 bpos = BarOff; |
159 bpos = BarOff; |
133 updatebarpos(); |
160 updatebarpos(); |
134 lt->arrange(); |
161 arrange(); |
135 } |
162 } |
136 |
163 |
137 void |
164 void |
138 togglemax(const char *arg) { |
165 togglemax(const char *arg) { |
139 XEvent ev; |
166 XEvent ev; |