Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
renamed seltag into seltags
[dwm.git]
/
draw.c
diff --git
a/draw.c
b/draw.c
index
25b08c6
..
f7135d7
100644
(file)
--- a/
draw.c
+++ b/
draw.c
@@
-1,22
+1,9
@@
-/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
+/* See LICENSE file for copyright and license details. */
#include "dwm.h"
#include <string.h>
/* static */
#include "dwm.h"
#include <string.h>
/* static */
-static unsigned int
-textnw(const char *text, unsigned int len) {
- XRectangle r;
-
- if(dc.font.set) {
- XmbTextExtents(dc.font.set, text, len, NULL, &r);
- return r.width;
- }
- return XTextWidth(dc.font.xfont, text, len);
-}
-
static void
drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) {
int x;
static void
drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) {
int x;
@@
-48,6
+35,17
@@
isoccupied(unsigned int t) {
return False;
}
return False;
}
+static unsigned int
+textnw(const char *text, unsigned int len) {
+ XRectangle r;
+
+ if(dc.font.set) {
+ XmbTextExtents(dc.font.set, text, len, NULL, &r);
+ return r.width;
+ }
+ return XTextWidth(dc.font.xfont, text, len);
+}
+
/* extern */
void
/* extern */
void
@@
-57,7
+55,7
@@
drawstatus(void) {
dc.x = dc.y = 0;
for(i = 0; i < ntags; i++) {
dc.w = textw(tags[i]);
dc.x = dc.y = 0;
for(i = 0; i < ntags; i++) {
dc.w = textw(tags[i]);
- if(seltag[i]) {
+ if(seltag
s
[i]) {
drawtext(tags[i], dc.sel);
drawsquare(sel && sel->tags[i], isoccupied(i), dc.sel);
}
drawtext(tags[i], dc.sel);
drawsquare(sel && sel->tags[i], isoccupied(i), dc.sel);
}
@@
-68,7
+66,7
@@
drawstatus(void) {
dc.x += dc.w;
}
dc.w = blw;
dc.x += dc.w;
}
dc.w = blw;
- drawtext(
lt->symbol
, dc.norm);
+ drawtext(
getsymbol()
, dc.norm);
x = dc.x + dc.w;
dc.w = textw(stext);
dc.x = sw - dc.w;
x = dc.x + dc.w;
dc.w = textw(stext);
dc.x = sw - dc.w;
@@
-79,7
+77,12
@@
drawstatus(void) {
drawtext(stext, dc.norm);
if((dc.w = dc.x - x) > bh) {
dc.x = x;
drawtext(stext, dc.norm);
if((dc.w = dc.x - x) > bh) {
dc.x = x;
- drawtext(sel ? sel->name : NULL, sel ? dc.sel : dc.norm);
+ if(sel) {
+ drawtext(sel->name, dc.sel);
+ drawsquare(sel->ismax, sel->isfloating, dc.sel);
+ }
+ else
+ drawtext(NULL, dc.norm);
}
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0);
XSync(dpy, False);
}
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0);
XSync(dpy, False);
@@
-90,7
+93,6
@@
drawtext(const char *text, unsigned long col[ColLast]) {
int x, y, w, h;
static char buf[256];
unsigned int len, olen;
int x, y, w, h;
static char buf[256];
unsigned int len, olen;
- XGCValues gcv;
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
XSetForeground(dpy, dc.gc, col[ColBG]);
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
XSetForeground(dpy, dc.gc, col[ColBG]);
@@
-119,16
+121,11
@@
drawtext(const char *text, unsigned long col[ColLast]) {
}
if(w > dc.w)
return; /* too long */
}
if(w > dc.w)
return; /* too long */
- gcv.foreground = col[ColFG];
- if(dc.font.set) {
- XChangeGC(dpy, dc.gc, GCForeground, &gcv);
+ XSetForeground(dpy, dc.gc, col[ColFG]);
+ if(dc.font.set)
XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
- }
- else {
- gcv.font = dc.font.xfont->fid;
- XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
+ else
XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
- }
}
unsigned int
}
unsigned int