comparison draw.c @ 73:c2ddb9dbbd10

rearranged
author Anselm R. Garbe <garbeam@wmii.de>
date Fri, 14 Jul 2006 22:33:38 +0200
parents 50450aa24a46
children 5370ef170cc9
comparison
equal deleted inserted replaced
72:d0eb0bb63c40 73:c2ddb9dbbd10
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <X11/Xlocale.h> 9 #include <X11/Xlocale.h>
10 10
11 #include "dwm.h" 11 #include "dwm.h"
12
13 void
14 draw_bar()
15 {
16 int i;
17
18 dc.x = dc.y = 0;
19 dc.w = bw;
20 drawtext(NULL, False, False);
21
22 if(arrange == floating) {
23 dc.w = textw("~");
24 drawtext("~", False, False);
25 }
26 else
27 dc.w = 0;
28 for(i = 0; i < TLast; i++) {
29 dc.x += dc.w;
30 dc.w = textw(tags[i]);
31 drawtext(tags[i], i == tsel, True);
32 }
33 if(sel) {
34 dc.x += dc.w;
35 dc.w = textw(sel->name);
36 drawtext(sel->name, True, True);
37 }
38 dc.w = textw(stext);
39 dc.x = bx + bw - dc.w;
40 drawtext(stext, False, False);
41
42 XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
43 XFlush(dpy);
44 }
45
46 void
47 draw_client(Client *c)
48 {
49 int i;
50 if(c == sel) {
51 draw_bar();
52 XUnmapWindow(dpy, c->title);
53 XSetWindowBorder(dpy, c->win, dc.fg);
54 return;
55 }
56
57 XSetWindowBorder(dpy, c->win, dc.bg);
58 XMapWindow(dpy, c->title);
59
60 dc.x = dc.y = 0;
61
62 dc.w = 0;
63 for(i = 0; i < TLast; i++) {
64 if(c->tags[i]) {
65 dc.x += dc.w;
66 dc.w = textw(c->tags[i]);
67 drawtext(c->tags[i], False, True);
68 }
69 }
70 dc.x += dc.w;
71 dc.w = textw(c->name);
72 drawtext(c->name, False, True);
73 XCopyArea(dpy, dc.drawable, c->title, dc.gc,
74 0, 0, c->tw, c->th, 0, 0);
75 XFlush(dpy);
76 }
12 77
13 static void 78 static void
14 drawborder(void) 79 drawborder(void)
15 { 80 {
16 XPoint points[5]; 81 XPoint points[5];
101 } 166 }
102 167
103 unsigned int 168 unsigned int
104 textw(char *text) 169 textw(char *text)
105 { 170 {
106 return textnw(text, strlen(text)); 171 return textnw(text, strlen(text)) + dc.font.height;
107 } 172 }
108 173
109 void 174 void
110 initfont(const char *fontstr) 175 initfont(const char *fontstr)
111 { 176 {