comparison view.c @ 508:ede48935f2b3

added the new dotile as described on ml
author Anselm R. Garbe <arg@10kloc.org>
date Fri, 29 Sep 2006 16:22:20 +0200
parents 2824b5d0f0f0
children 0dfa6b752aed
comparison
equal deleted inserted replaced
507:2824b5d0f0f0 508:ede48935f2b3
146 c->y = sy + bh; 146 c->y = sy + bh;
147 c->w = sw - 2 * BORDERPX; 147 c->w = sw - 2 * BORDERPX;
148 c->h = sh - 2 * BORDERPX - bh; 148 c->h = sh - 2 * BORDERPX - bh;
149 } 149 }
150 else if(i == 0) { /* master window */ 150 else if(i == 0) { /* master window */
151 c->x = sx; 151 switch(stackpos) {
152 if(stackpos == StackLeft) 152 case StackLeft:
153 c->x += master; 153 c->x = sx + stackw;
154 c->y = sy + bh; 154 c->y = sy + bh;
155 if(isvertical) {
156 c->w = master - 2 * BORDERPX; 155 c->w = master - 2 * BORDERPX;
157 c->h = sh - 2 * BORDERPX - bh; 156 c->h = sh - bh - 2 * BORDERPX;
158 } 157 break;
159 else { 158 case StackBottom:
160 c->w = sw; 159 c->x = sx;
160 c->y = sy + bh;
161 c->w = sw - 2 * BORDERPX;
161 c->h = master - 2 * BORDERPX; 162 c->h = master - 2 * BORDERPX;
163 break;
164 case StackRight:
165 c->x = sx;
166 c->y = sy + bh;
167 c->w = master - 2 * BORDERPX;
168 c->h = sh - bh - 2 * BORDERPX;
169 break;
162 } 170 }
163 } 171 }
164 else if((isvertical && th > bh) || (!isvertical && tw > MINW)) { 172 else if((isvertical && th > bh) || (!isvertical && tw > MINW)) {
165 /* tile window */ 173 /* tile window */
166 c->x = sx;
167 if(isvertical)
168 c->y = sy + (i - 1) * th + bh;
169 else
170 c->y = sy + bh;
171 if(stackpos == StackRight)
172 c->x += master;
173 else if(stackpos == StackBottom)
174 c->y += master;
175 c->w = tw - 2 * BORDERPX; 174 c->w = tw - 2 * BORDERPX;
176 c->h = th - 2 * BORDERPX; 175 c->h = th - 2 * BORDERPX;
177 if(i + 1 == n) { /* fixes for last tile to take up rest space */ 176 switch(stackpos) {
178 if(isvertical) 177 case StackLeft:
179 c->h = sh - c->y - 2 * BORDERPX; 178 if(isvertical) {
179 c->x = sx;
180 c->y = sy + (i - 1) * th + bh;
181 if(i + 1 == n)
182 c->h = sh - c->y - 2 * BORDERPX;
183 }
180 else { 184 else {
181 if(stackpos == StackLeft) 185 c->x = sx + (i - 1) * tw;
182 c->w = master - c->x - 2 * BORDERPX; 186 c->y = sy + bh;
183 else 187 if(i + 1 == n)
188 c->w = sx + stackw - c->x - 2 * BORDERPX;
189 }
190 break;
191 case StackBottom:
192 if(isvertical) {
193 c->x = sx;
194 c->y = sy + master + (i - 1) * th + bh;
195 if(i + 1 == n)
196 c->h = sh - c->y - 2 * BORDERPX;
197 }
198 else {
199 c->x = sx + (i - 1) * tw;
200 c->y = sy + bh + master;
201 if(i + 1 == n)
184 c->w = sw - c->x - 2 * BORDERPX; 202 c->w = sw - c->x - 2 * BORDERPX;
185 } 203 }
204 break;
205 case StackRight:
206 if(isvertical) {
207 c->x = sx + master;
208 c->y = sy + (i - 1) * th + bh;
209 if(i + 1 == n)
210 c->h = sh - c->y - 2 * BORDERPX;
211 }
212 else {
213 c->x = sx + master + (i - 1) * tw;
214 c->y = sy + bh;
215 if(i + 1 == n)
216 c->w = sx + stackw - c->x - 2 * BORDERPX;
217 }
218 break;
186 } 219 }
187 } 220 }
188 else { /* fallback if th < bh resp. tw < MINW */ 221 else { /* fallback if th < bh resp. tw < MINW */
189 c->x = sx;
190 c->y = sy + bh;
191 if(stackpos == StackRight)
192 c->x += master;
193 else if(stackpos == StackBottom)
194 c->y += master;
195 c->w = stackw - 2 * BORDERPX; 222 c->w = stackw - 2 * BORDERPX;
196 c->h = stackh - 2 * BORDERPX; 223 c->h = stackh - 2 * BORDERPX;
224 switch(stackpos) {
225 case StackLeft:
226 c->x = sx;
227 c->y = sy + bh;
228 break;
229 case StackBottom:
230 c->x = sx;
231 c->y = sy + master;
232 break;
233 case StackRight:
234 c->x = sx + master;
235 c->y = sy + bh;
236 break;
237 }
197 } 238 }
198 resize(c, False, TopLeft); 239 resize(c, False, TopLeft);
199 i++; 240 i++;
200 } 241 }
201 else 242 else
317 reorder(); 358 reorder();
318 arrange(NULL); 359 arrange(NULL);
319 } 360 }
320 361
321 void 362 void
363 togglestackdir(Arg *arg) {
364 if(arrange == dofloat)
365 return;
366 isvertical = !isvertical;
367 arrange(NULL);
368 }
369
370 void
371 togglestackpos(Arg *arg) {
372 if(arrange == dofloat)
373 return;
374 if(stackpos == StackBottom)
375 stackpos = STACKPOS;
376 else
377 stackpos = StackBottom;
378 updatemaster();
379 arrange(NULL);
380 }
381
382 void
383 updatemaster(void) {
384 master = ((stackpos == StackBottom ? sh - bh : sw) * MASTER) / 100;
385 }
386
387 void
322 view(Arg *arg) { 388 view(Arg *arg) {
323 unsigned int i; 389 unsigned int i;
324 390
325 for(i = 0; i < ntags; i++) 391 for(i = 0; i < ntags; i++)
326 seltag[i] = False; 392 seltag[i] = False;
336 for(i = 0; i < ntags; i++) 402 for(i = 0; i < ntags; i++)
337 seltag[i] = True; 403 seltag[i] = True;
338 reorder(); 404 reorder();
339 arrange(NULL); 405 arrange(NULL);
340 } 406 }
407
408
341 409
342 void 410 void
343 zoom(Arg *arg) { 411 zoom(Arg *arg) {
344 unsigned int n; 412 unsigned int n;
345 Client *c; 413 Client *c;