implemented nmaster appearance in mode label (using %u) 1d4a24da
Anselm R. Garbe · 2007-01-08 17:33 7 file(s) · +18 −8
config.arg.h +1 −1
7 7
8 8
#define DEFMODE			dotile		/* dofloat */
9 9
#define FLOATSYMBOL		"><>"
10 -
#define TILESYMBOL		"[]="
10 +
#define TILESYMBOL		"[%u]="
11 11
12 12
#define FONT			"-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*"
13 13
#define NORMBGCOLOR		"#111111"
config.default.h +1 −1
7 7
8 8
#define DEFMODE			dotile /* dofloat */
9 9
#define FLOATSYMBOL		"><>"
10 -
#define TILESYMBOL		"[]="
10 +
#define TILESYMBOL		"[%u]="
11 11
12 12
#define FONT			"-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
13 13
#define NORMBGCOLOR		"#333366"
config.mk +1 −1
1 1
# dwm version
2 -
VERSION = 2.9
2 +
VERSION = 3.0
3 3
4 4
# Customize below to fit your system
5 5
draw.c +1 −1
120 120
		dc.x += dc.w;
121 121
	}
122 122
	dc.w = bmw;
123 -
	drawtext(arrange == dofloat ?  FLOATSYMBOL : TILESYMBOL, dc.status, False, False);
123 +
	drawtext(mtext, dc.status, False, False);
124 124
	x = dc.x + dc.w;
125 125
	dc.w = textw(stext);
126 126
	dc.x = bw - dc.w;
dwm.h +1 −0
93 93
94 94
extern const char *tags[];			/* all tags */
95 95
extern char stext[1024];			/* status text */
96 +
extern char mtext[32];				/* mode text */
96 97
extern int bx, by, bw, bh, bmw;			/* bar geometry, bar mode label width */
97 98
extern int screen, sx, sy, sw, sh;		/* screen geometry */
98 99
extern int wax, way, wah, waw;			/* windowarea geometry */
main.c +3 −2
17 17
18 18
/* extern */
19 19
20 -
char stext[1024];
20 +
char stext[1024], mtext[32];
21 21
Bool *seltag;
22 22
int bx, by, bw, bh, bmw, masterd, screen, sx, sy, sw, sh, wax, way, waw, wah;
23 23
unsigned int master, nmaster, ntags, numlockmask;
128 128
	dc.status[ColFG] = getcolor(STATUSFGCOLOR);
129 129
	setfont(FONT);
130 130
	/* geometry */
131 -
	bmw = textw(TILESYMBOL) > textw(FLOATSYMBOL) ?  textw(TILESYMBOL) : textw(FLOATSYMBOL);
132 131
	sx = sy = 0;
133 132
	sw = DisplayWidth(dpy, screen);
134 133
	sh = DisplayHeight(dpy, screen);
135 134
	master = MASTER;
136 135
	nmaster = NMASTER;
136 +
	snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
137 +
	bmw = textw(mtext);
137 138
	/* bar */
138 139
	bx = sx;
139 140
	by = sy;
view.c +10 −2
2 2
 * See LICENSE file for license details.
3 3
 */
4 4
#include "dwm.h"
5 +
#include <stdio.h>
5 6
6 7
/* static */
7 8
149 150
150 151
void
151 152
incnmaster(Arg *arg) {
152 -
	if((nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
153 +
	if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
153 154
		return;
154 155
	nmaster += arg->i;
155 -
	arrange();
156 +
	snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
157 +
	bmw = textw(mtext);
158 +
	if(sel)
159 +
		arrange();
160 +
	else
161 +
		drawstatus();
156 162
}
157 163
158 164
Bool
218 224
void
219 225
togglemode(Arg *arg) {
220 226
	arrange = (arrange == dofloat) ? dotile : dofloat;
227 +
	snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
228 +
	bmw = textw(mtext);
221 229
	if(sel)
222 230
		arrange();
223 231
	else