Browse Source

changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum)

master
arg@10ksloc.org 19 years ago
parent
commit
8cc7f3bace
6 changed files with 18 additions and 17 deletions
  1. +1
    -1
      client.c
  2. +2
    -2
      config.arg.h
  3. +2
    -2
      config.default.h
  4. +4
    -4
      draw.c
  5. +4
    -3
      dwm.h
  6. +5
    -5
      tag.c

+ 1
- 1
client.c View File

@ -18,7 +18,7 @@ resizetitle(Client *c)
c->tw = 0; c->tw = 0;
for(i = 0; i < TLast; i++) for(i = 0; i < TLast; i++)
if(c->tags[i]) if(c->tags[i])
c->tw += textw(c->tags[i]);
c->tw += textw(tags[i]);
c->tw += textw(c->name); c->tw += textw(c->name);
if(c->tw > c->w) if(c->tw > c->w)
c->tw = c->w + 2; c->tw = c->w + 2;


+ 2
- 2
config.arg.h View File

@ -5,7 +5,7 @@
enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
#define TAGS \ #define TAGS \
char *tags[TLast] = { \
const char *tags[TLast] = { \
[Tfnord] = "fnord", \ [Tfnord] = "fnord", \
[Tdev] = "dev", \ [Tdev] = "dev", \
[Tnet] = "net", \ [Tnet] = "net", \
@ -66,7 +66,7 @@ static Key key[] = { \
#define RULES \ #define RULES \
static Rule rule[] = { \ static Rule rule[] = { \
/* class:instance tags isfloat */ \ /* class:instance tags isfloat */ \
{ "Firefox.*", { [Tnet] = "net" }, False }, \
{ "Firefox.*", { [Tnet] = True }, False }, \
{ "Gimp.*", { 0 }, True}, \ { "Gimp.*", { 0 }, True}, \
{ "MPlayer.*", { 0 }, True}, \ { "MPlayer.*", { 0 }, True}, \
{ "Acroread.*", { 0 }, True}, \ { "Acroread.*", { 0 }, True}, \


+ 2
- 2
config.default.h View File

@ -5,7 +5,7 @@
enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
#define TAGS \ #define TAGS \
char *tags[TLast] = { \
const char *tags[TLast] = { \
[Tfnord] = "fnord", \ [Tfnord] = "fnord", \
[Tdev] = "dev", \ [Tdev] = "dev", \
[Tnet] = "net", \ [Tnet] = "net", \
@ -57,6 +57,6 @@ static Key key[] = { \
#define RULES \ #define RULES \
static Rule rule[] = { \ static Rule rule[] = { \
/* class:instance tags isfloat */ \ /* class:instance tags isfloat */ \
{ "Firefox.*", { [Tnet] = "net" }, False }, \
{ "Firefox.*", { [Tnet] = True }, False }, \
{ "Gimp.*", { 0 }, True}, \ { "Gimp.*", { 0 }, True}, \
}; };

+ 4
- 4
draw.c View File

@ -30,7 +30,7 @@ drawborder(void)
} }
static unsigned int static unsigned int
textnw(char *text, unsigned int len)
textnw(const char *text, unsigned int len)
{ {
XRectangle r; XRectangle r;
@ -156,8 +156,8 @@ drawtitle(Client *c)
for(i = 0; i < TLast; i++) { for(i = 0; i < TLast; i++) {
if(c->tags[i]) { if(c->tags[i]) {
dc.x += dc.w; dc.x += dc.w;
dc.w = textw(c->tags[i]);
drawtext(c->tags[i], !istile, True);
dc.w = textw(tags[i]);
drawtext(tags[i], !istile, True);
} }
} }
dc.x += dc.w; dc.x += dc.w;
@ -229,7 +229,7 @@ setfont(const char *fontstr)
} }
unsigned int unsigned int
textw(char *text)
textw(const char *text)
{ {
return textnw(text, strlen(text)) + dc.font.height; return textnw(text, strlen(text)) + dc.font.height;
} }

+ 4
- 3
dwm.h View File

@ -51,7 +51,6 @@ struct DC { /* draw context */
struct Client { struct Client {
char name[256]; char name[256];
char *tags[TLast];
int proto; int proto;
int x, y, w, h; int x, y, w, h;
int tx, ty, tw, th; /* title */ int tx, ty, tw, th; /* title */
@ -61,13 +60,15 @@ struct Client {
unsigned int border; unsigned int border;
Bool isfloat; Bool isfloat;
Bool ismax; Bool ismax;
Bool tags[TLast];
Client *next; Client *next;
Client *prev; Client *prev;
Window win; Window win;
Window title; Window title;
}; };
extern char *tags[TLast], stext[1024];
extern const char *tags[TLast];
extern char stext[1024];
extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw; extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
extern void (*handler[LASTEvent])(XEvent *); extern void (*handler[LASTEvent])(XEvent *);
extern void (*arrange)(Arg *); extern void (*arrange)(Arg *);
@ -104,7 +105,7 @@ extern void drawstatus();
extern void drawtitle(Client *c); extern void drawtitle(Client *c);
extern unsigned long getcolor(const char *colstr); extern unsigned long getcolor(const char *colstr);
extern void setfont(const char *fontstr); extern void setfont(const char *fontstr);
extern unsigned int textw(char *text);
extern unsigned int textw(const char *text);
/* event.c */ /* event.c */
extern void grabkeys(); extern void grabkeys();


+ 5
- 5
tag.c View File

@ -13,7 +13,7 @@
typedef struct { typedef struct {
const char *pattern; const char *pattern;
char *tags[TLast];
Bool tags[TLast];
Bool isfloat; Bool isfloat;
} Rule; } Rule;
@ -30,7 +30,7 @@ appendtag(Arg *arg)
if(!sel) if(!sel)
return; return;
sel->tags[arg->i] = tags[arg->i];
sel->tags[arg->i] = True;
arrange(NULL); arrange(NULL);
} }
@ -146,7 +146,7 @@ replacetag(Arg *arg)
return; return;
for(i = 0; i < TLast; i++) for(i = 0; i < TLast; i++)
sel->tags[i] = NULL;
sel->tags[i] = False;
appendtag(arg); appendtag(arg);
} }
@ -171,7 +171,7 @@ settags(Client *c)
for(j = 0; j < TLast; j++) { for(j = 0; j < TLast; j++) {
if(rule[i].tags[j]) if(rule[i].tags[j])
matched = True; matched = True;
c->tags[j] = rule[i].tags[j];
c->tags[j] = True;
} }
c->isfloat = rule[i].isfloat; c->isfloat = rule[i].isfloat;
} }
@ -184,7 +184,7 @@ settags(Client *c)
XFree(ch.res_name); XFree(ch.res_name);
} }
if(!matched) if(!matched)
c->tags[tsel] = tags[tsel];
c->tags[tsel] = True;
} }
void void


Loading…
Cancel
Save