X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/dfd84f9bf3b9d949412a73bc62a43109b340d395..6475be926bef4916ce632988a2fa408a637babc7:/bar.c?ds=sidebyside

diff --git a/bar.c b/bar.c
index f70a246..ea4b946 100644
--- a/bar.c
+++ b/bar.c
@@ -3,27 +3,52 @@
  * See LICENSE file for license details.
  */
 
-#include "wm.h"
+#include "dwm.h"
+
+void
+barclick(XButtonPressedEvent *e)
+{
+	int x = 0;
+	Arg a;
+	for(a.i = 0; a.i < TLast; a.i++) {
+		x += textw(tags[a.i]) + dc.font.height;
+		if(e->x < x) {
+			view(&a);
+			return;
+		}
+	}
+}
 
 void
 draw_bar()
 {
-	brush.x = brush.y = 0;
-	brush.w = bw;
-	brush.h = bh;
-	draw(dpy, &brush, False, NULL);
+	int i;
+	dc.x = dc.y = 0;
+	dc.w = bw;
+	drawtext(NULL, False);
 
-	if(stack) {
-		brush.w = textw(&brush.font, stack->name) + bh;
-		swap((void **)&brush.fg, (void **)&brush.bg);
-		draw(dpy, &brush, True, stack->name);
-		swap((void **)&brush.fg, (void **)&brush.bg);
-		brush.x += brush.w;
+	dc.w = 0;
+	for(i = 0; i < TLast; i++) {
+		dc.x += dc.w;
+		dc.w = textw(tags[i]) + dc.font.height;
+		if(i == tsel) {
+			swap((void **)&dc.fg, (void **)&dc.bg);
+			drawtext(tags[i], True);
+			swap((void **)&dc.fg, (void **)&dc.bg);
+		}
+		else
+			drawtext(tags[i], True);
 	}
-
-	brush.w = textw(&brush.font, statustext) + bh;
-	brush.x = bx + bw - brush.w;
-	draw(dpy, &brush, False, statustext);
-	XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, bw, bh, 0, 0);
+	if(sel) {
+		swap((void **)&dc.fg, (void **)&dc.bg);
+		dc.x += dc.w;
+		dc.w = textw(sel->name) + dc.font.height;
+		drawtext(sel->name, True);
+		swap((void **)&dc.fg, (void **)&dc.bg);
+	}
+	dc.w = textw(stext) + dc.font.height;
+	dc.x = bx + bw - dc.w;
+	drawtext(stext, False);
+	XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
 	XFlush(dpy);
 }