view.c
changeset 773 81c5237a53b8
parent 772 a1dd3d977e25
child 774 9447a518cd85
--- a/view.c	Mon Feb 19 13:53:40 2007 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
-#include "dwm.h"
-
-/* extern */
-
-void (*arrange)(void) = DEFMODE;
-
-void
-attach(Client *c) {
-	if(clients)
-		clients->prev = c;
-	c->next = clients;
-	clients = c;
-}
-
-void
-attachstack(Client *c) {
-	c->snext = stack;
-	stack = c;
-}
-
-void
-dofloat(void) {
-	Client *c;
-
-	for(c = clients; c; c = c->next) {
-		if(isvisible(c)) {
-			if(c->isbanned)
-				XMoveWindow(dpy, c->win, c->x, c->y);
-			c->isbanned = False;
-			resize(c, c->x, c->y, c->w, c->h, True);
-		}
-		else {
-			c->isbanned = True;
-			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
-		}
-	}
-	if(!sel || !isvisible(sel)) {
-		for(c = stack; c && !isvisible(c); c = c->snext);
-		focus(c);
-	}
-	restack();
-}
-
-void
-detach(Client *c) {
-	if(c->prev)
-		c->prev->next = c->next;
-	if(c->next)
-		c->next->prev = c->prev;
-	if(c == clients)
-		clients = c->next;
-	c->next = c->prev = NULL;
-}
-
-void
-detachstack(Client *c) {
-	Client **tc;
-	for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext);
-	*tc = c->snext;
-}
-
-void
-focusnext(Arg *arg) {
-	Client *c;
-   
-	if(!sel)
-		return;
-	for(c = sel->next; c && !isvisible(c); c = c->next);
-	if(!c)
-		for(c = clients; c && !isvisible(c); c = c->next);
-	if(c) {
-		focus(c);
-		restack();
-	}
-}
-
-void
-focusprev(Arg *arg) {
-	Client *c;
-
-	if(!sel)
-		return;
-	for(c = sel->prev; c && !isvisible(c); c = c->prev);
-	if(!c) {
-		for(c = clients; c && c->next; c = c->next);
-		for(; c && !isvisible(c); c = c->prev);
-	}
-	if(c) {
-		focus(c);
-		restack();
-	}
-}
-
-Client *
-getclient(Window w) {
-	Client *c;
-
-	for(c = clients; c; c = c->next)
-		if(c->win == w)
-			return c;
-	return NULL;
-}
-
-Bool
-isvisible(Client *c) {
-	unsigned int i;
-
-	for(i = 0; i < ntags; i++)
-		if(c->tags[i] && seltag[i])
-			return True;
-	return False;
-}
-
-Client *
-nextmanaged(Client *c) {
-	for(; c && (c->isfloat || !isvisible(c)); c = c->next);
-	return c;
-}
-
-void
-restack(void) {
-	Client *c;
-	XEvent ev;
-
-	drawstatus();
-	if(!sel)
-		return;
-	if(sel->isfloat || arrange == dofloat)
-		XRaiseWindow(dpy, sel->win);
-	if(arrange != dofloat) {
-		if(!sel->isfloat)
-			XLowerWindow(dpy, sel->win);
-		for(c = nextmanaged(clients); c; c = nextmanaged(c->next)) {
-			if(c == sel)
-				continue;
-			XLowerWindow(dpy, c->win);
-		}
-	}
-	XSync(dpy, False);
-	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-}
-
-void
-togglefloat(Arg *arg) {
-	if(!sel || arrange == dofloat)
-		return;
-	sel->isfloat = !sel->isfloat;
-	arrange();
-}
-
-void
-togglemode(Arg *arg) {
-	arrange = (arrange == dofloat) ? dotile : dofloat;
-	if(sel)
-		arrange();
-	else
-		drawstatus();
-}
-
-void
-toggleview(Arg *arg) {
-	unsigned int i;
-
-	seltag[arg->i] = !seltag[arg->i];
-	for(i = 0; i < ntags && !seltag[i]; i++);
-	if(i == ntags)
-		seltag[arg->i] = True; /* cannot toggle last view */
-	arrange();
-}
-
-void
-view(Arg *arg) {
-	unsigned int i;
-
-	for(i = 0; i < ntags; i++)
-		seltag[i] = (arg->i == -1) ? True : False;
-	if(arg->i >= 0 && arg->i < ntags)
-		seltag[arg->i] = True;
-	arrange();
-}
-