commit ec1db9e2df68d142b1ec14c33d97999ce7b1bc2c
parent 4c8870dda37c19d1b7518c307415937d09b06a36
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Wed, 21 Jun 2006 17:28:33 +0200
I think of only a BlitzBrush structure in the future, instead of all this crappy Widget/Color/Font stuff...
Diffstat:
6 files changed, 53 insertions(+), 59 deletions(-)
diff --git a/cmd/wm/bar.c b/cmd/wm/bar.c
@@ -95,8 +95,8 @@ draw_bar()
{
unsigned int i = 0, w = 0, nb, size = 0;
Bar *b = nil, *prev = nil;
+ blitz_draw_tile(bartile);
- bartile->draw(bartile);
if(!lbar && !rbar)
goto MapBar;
@@ -136,7 +136,7 @@ draw_bar()
for(; b; b=b->next) {
if(b == rbar)
b->bar->align = EAST;
- b->bar->draw(b->bar);
+ blitz_draw_input(b->bar);
}
MapBar:
XCopyArea(dpy, barpmap, barwin, bargc, 0, 0, brect.width, brect.height, 0, 0);
diff --git a/cmd/wm/frame.c b/cmd/wm/frame.c
@@ -187,10 +187,10 @@ resize_frame(Frame *f)
void
draw_frame(Frame *f)
{
- f->tile->draw(f->tile);
- f->tagbar->draw(f->tagbar);
- f->titlebar->draw(f->titlebar);
- f->posbar->draw(f->posbar);
+ blitz_draw_input(f->tile);
+ blitz_draw_input(f->tagbar);
+ blitz_draw_input(f->titlebar);
+ blitz_draw_input(f->posbar);
}
void
diff --git a/cmd/wmiimenu.c b/cmd/wmiimenu.c
@@ -40,7 +40,7 @@ static unsigned int curroff = 0;
static unsigned int cmdw = 0;
static unsigned int twidth = 0;
static unsigned int cwidth = 0;
-static BlitzWidget *draw = nil;
+static BlitzWidget *menu = nil;
static const int seek = 30; /* 30px */
static void draw_menu(void);
@@ -71,7 +71,7 @@ update_offsets()
return;
for(i = curroff; i < item.size; i++) {
- tw = blitz_textwidth(draw->font, item.data[i]);
+ tw = blitz_textwidth(menu->font, item.data[i]);
if(tw > irect.width / 3)
tw = irect.width / 3;
w += tw + irect.height;
@@ -82,7 +82,7 @@ update_offsets()
w = cmdw + 2 * seek;
for(i = curroff; i > 0; i--) {
- tw = blitz_textwidth(draw->font, item.data[i]);
+ tw = blitz_textwidth(menu->font, item.data[i]);
if(tw > irect.width / 3)
tw = irect.width / 3;
w += tw + irect.height;
@@ -123,73 +123,70 @@ update_items(char *pattern)
return item.size;
}
-/* creates draw structs for menu mode drawing */
+/* creates menu structs for menu mode drawing */
static void
draw_menu()
{
unsigned int i, offx = 0;
- draw->align = WEST;
+ menu->align = WEST;
- draw->rect = irect;
- draw->rect.x = 0;
- draw->rect.y = 0;
- draw->color = normcolor;
- draw->text = nil;
- draw->draw(draw);
+ menu->rect = irect;
+ menu->rect.x = 0;
+ menu->rect.y = 0;
+ menu->color = normcolor;
+ menu->text = nil;
+ blitz_draw_tile(menu);
/* print command */
if(!title || text[0]) {
- draw->text = text;
- draw->color = normcolor;
+ menu->text = text;
+ menu->color = normcolor;
cmdw = cwidth;
if(cmdw && item.size)
- draw->rect.width = cmdw;
- draw->draw(draw);
+ menu->rect.width = cmdw;
}
else {
cmdw = twidth;
- draw->text = title;
- draw->color = selcolor;
- draw->rect.width = cmdw;
- draw->draw(draw);
+ menu->text = title;
+ menu->color = selcolor;
+ menu->rect.width = cmdw;
}
- offx += draw->rect.width;
+ blitz_draw_input(menu);
+ offx += menu->rect.width;
- draw->align = CENTER;
+ menu->align = CENTER;
if(item.size) {
- draw->color = normcolor;
- draw->text = prevoff < curroff ? "<" : nil;
- draw->rect.x = offx;
- draw->rect.width = seek;
- offx += draw->rect.width;
- draw->draw(draw);
+ menu->color = normcolor;
+ menu->text = prevoff < curroff ? "<" : nil;
+ menu->rect.x = offx;
+ menu->rect.width = seek;
+ offx += menu->rect.width;
+ blitz_draw_input(menu);
/* determine maximum items */
for(i = curroff; i < nextoff; i++) {
- draw->text = item.data[i];
- draw->rect.x = offx;
- draw->rect.width = blitz_textwidth(draw->font, draw->text);
- if(draw->rect.width > irect.width / 3)
- draw->rect.width = irect.width / 3;
- draw->rect.width += irect.height;
- if(sel == i) {
- draw->color = selcolor;
- draw->draw(draw);
- } else {
- draw->color = normcolor;
- draw->draw(draw);
- }
- offx += draw->rect.width;
+ menu->text = item.data[i];
+ menu->rect.x = offx;
+ menu->rect.width = blitz_textwidth(menu->font, menu->text);
+ if(menu->rect.width > irect.width / 3)
+ menu->rect.width = irect.width / 3;
+ menu->rect.width += irect.height;
+ if(sel == i)
+ menu->color = selcolor;
+ else
+ menu->color = normcolor;
+ blitz_draw_input(menu);
+ offx += menu->rect.width;
}
- draw->color = normcolor;
- draw->text = item.size > nextoff ? ">" : nil;
- draw->rect.x = irect.width - seek;
- draw->rect.width = seek;
- draw->draw(draw);
+ menu->color = normcolor;
+ menu->text = item.size > nextoff ? ">" : nil;
+ menu->rect.x = irect.width - seek;
+ menu->rect.width = seek;
+ blitz_draw_input(menu);
}
- XCopyArea(dpy, draw->drawable, win, draw->gc, 0, 0, irect.width,
+ XCopyArea(dpy, menu->drawable, win, menu->gc, 0, 0, irect.width,
irect.height, 0, 0);
XSync(dpy, False);
}
@@ -430,14 +427,14 @@ main(int argc, char *argv[])
XSync(dpy, False);
- draw = blitz_create_input(pmap, gc, &font);
+ menu = blitz_create_input(pmap, gc, &font);
if(maxname)
- cwidth = blitz_textwidth(draw->font, maxname) + irect.height;
+ cwidth = blitz_textwidth(menu->font, maxname) + irect.height;
if(cwidth > irect.width / 3)
cwidth = irect.width / 3;
if(title) {
- twidth = blitz_textwidth(draw->font, title) + irect.height;
+ twidth = blitz_textwidth(menu->font, title) + irect.height;
if(twidth > irect.width / 3)
twidth = irect.width / 3;
}
diff --git a/liblitz/blitz.h b/liblitz/blitz.h
@@ -58,7 +58,6 @@ struct BlitzWidget {
XRectangle rect; /* relative rect */
XRectangle *notch; /* relative notch rect */
char *text;
- void (*draw)(BlitzWidget *);
};
Blitz __blitz;
diff --git a/liblitz/input.c b/liblitz/input.c
@@ -15,7 +15,6 @@ blitz_create_input(Drawable drawable, GC gc, BlitzFont *font)
i->drawable = drawable;
i->gc = gc;
i->font = font;
- i->draw = blitz_draw_input;
return i;
}
diff --git a/liblitz/tile.c b/liblitz/tile.c
@@ -13,7 +13,6 @@ blitz_create_tile(Drawable drawable, GC gc)
BlitzWidget *t = cext_emallocz(sizeof(BlitzWidget));
t->drawable = drawable;
t->gc = gc;
- t->draw = blitz_draw_tile;
return t;
}