about summary refs log tree commit diff stats
path: root/draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'draw.c')
-rw-r--r--draw.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/draw.c b/draw.c
index 85ff41b..cf7f14e 100644
--- a/draw.c
+++ b/draw.c
@@ -14,7 +14,7 @@ drawborder(Display *dpy, Brush *b)
 {
 	XPoint points[5];
 	XSetLineAttributes(dpy, b->gc, 1, LineSolid, CapButt, JoinMiter);
-	XSetForeground(dpy, b->gc, b->color.border);
+	XSetForeground(dpy, b->gc, b->border);
 	points[0].x = b->rect.x;
 	points[0].y = b->rect.y;
 	points[1].x = b->rect.width - 1;
@@ -29,54 +29,54 @@ drawborder(Display *dpy, Brush *b)
 }
 
 void
-draw(Display *dpy, Brush *b)
+draw(Display *dpy, Brush *b, Bool border, const char *text)
 {
 	unsigned int x, y, w, h, len;
 	static char buf[256];
 	XGCValues gcv;
 
-	XSetForeground(dpy, b->gc, b->color.bg);
+	XSetForeground(dpy, b->gc, b->bg);
 	XFillRectangles(dpy, b->drawable, b->gc, &b->rect, 1);
 
-	if(b->border)
+	if(border)
 		drawborder(dpy, b);
 
-	if(!b->text)
+	if(!text)
 		return;
 
-	len = strlen(b->text);
+	len = strlen(text);
 	if(len >= sizeof(buf))
 		len = sizeof(buf) - 1;
-	memcpy(buf, b->text, len);
+	memcpy(buf, text, len);
 	buf[len] = 0;
 
-	h = b->font->ascent + b->font->descent;
-	y = b->rect.y + (b->rect.height / 2) - (h / 2) + b->font->ascent;
+	h = b->font.ascent + b->font.descent;
+	y = b->rect.y + (b->rect.height / 2) - (h / 2) + b->font.ascent;
 	x = b->rect.x + (h / 2);
 
 	/* shorten text if necessary */
-	while(len && (w = textwidth_l(b->font, buf, len)) > b->rect.width - h)
+	while(len && (w = textwidth_l(&b->font, buf, len)) > b->rect.width - h)
 		buf[--len] = 0;
 
 	if(w > b->rect.width)
 		return; /* too long */
 
-	gcv.foreground = b->color.fg;
-	gcv.background = b->color.bg;
-	if(b->font->set) {
+	gcv.foreground = b->fg;
+	gcv.background = b->bg;
+	if(b->font.set) {
 		XChangeGC(dpy, b->gc, GCForeground | GCBackground, &gcv);
-		XmbDrawImageString(dpy, b->drawable, b->font->set, b->gc,
+		XmbDrawImageString(dpy, b->drawable, b->font.set, b->gc,
 				x, y, buf, len);
 	}
 	else {
-		gcv.font = b->font->xfont->fid;
+		gcv.font = b->font.xfont->fid;
 		XChangeGC(dpy, b->gc, GCForeground | GCBackground | GCFont, &gcv);
 		XDrawImageString(dpy, b->drawable, b->gc, x, y, buf, len);
 	}
 }
 
 static unsigned long
-xloadcolor(Display *dpy, Colormap cmap, const char *colstr)
+xloadcolors(Display *dpy, Colormap cmap, const char *colstr)
 {
 	XColor color;
 	XAllocNamedColor(dpy, cmap, colstr, &color, &color);
@@ -84,13 +84,13 @@ xloadcolor(Display *dpy, Colormap cmap, const char *colstr)
 }
 
 void
-loadcolor(Display *dpy, int screen, Color *c,
+loadcolors(Display *dpy, int screen, Brush *b,
 		const char *bg, const char *fg, const char *border)
 {
 	Colormap cmap = DefaultColormap(dpy, screen);
-	c->bg = xloadcolor(dpy, cmap, bg);
-	c->fg = xloadcolor(dpy, cmap, fg);
-	c->border = xloadcolor(dpy, cmap, border);
+	b->bg = xloadcolors(dpy, cmap, bg);
+	b->fg = xloadcolors(dpy, cmap, fg);
+	b->border = xloadcolors(dpy, cmap, border);
 }
 
 unsigned int
@@ -160,4 +160,5 @@ loadfont(Display *dpy, Fnt *font, const char *fontstr)
 		font->ascent = font->xfont->ascent;
 		font->descent = font->xfont->descent;
 	}
+	font->height = font->ascent + font->descent;
 }
d=acd07c4abfbc15252d28c884c2bea6d67910a465'>^
277ecc9e ^
9983328c ^
33cb688a ^
a1274aba ^
b42eb058 ^
b13518af ^
316ff5a9 ^
fc486c60 ^
b4934e42 ^
2c1d2db0 ^
291ca616 ^
50845f37 ^
039c03ef ^
af6658b3 ^
efe2d7a3 ^
f0df3fa5 ^
a986e2bd ^

3fe38754 ^

6a8d5d23 ^
aad61455 ^
7a268c8b ^

efdc7b16 ^
636f69d3 ^
d3c262a9 ^
4be8b401 ^



d955e3f0 ^
75013dc7 ^
67bb838c ^
a808a661 ^
bba8d293 ^
2a64495f ^
5e449699 ^
8895b130 ^

7b04e507 ^
87db0130 ^
dd4a4145 ^
8f2f1767 ^
db1721dd ^
aea5cf92 ^
b624bd94 ^
69d1220f ^
6099d9a3 ^
9207e83c ^
f7db061b ^
6099d9a3 ^
6f43de0a ^




fca1fc4f ^
f70ee6b2 ^
0db4c9b2 ^
b2d63ef5 ^
6908d0cc ^
d994d0d6 ^
01c89bb5 ^
c776804d ^
dab4db44 ^
cc4210ff ^
34c131ef ^
66c5bb93 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93