about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--view.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/view.c b/view.c
index 21e7bbd..5c65148 100644
--- a/view.c
+++ b/view.c
@@ -91,7 +91,7 @@ dotile(void) {
 				c->h = wah - 2 * BORDERPX;
 			}
 			else if(i == 0) { /* master window */
-				c->w = waw - stackw - 2 * BORDERPX;
+				c->w = mpx - 2 * BORDERPX;
 				c->h = wah - 2 * BORDERPX;
 				th = wah / (n - 1);
 			}
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>

#include "draw.h"
#include "util.h"

Draw *
draw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h) {
	Draw *draw = (Draw *)calloc(1, sizeof(Draw));
	draw->dpy = dpy;
	draw->screen = screen;
	draw->win = win;
	draw->w = w;
	draw->h = h;
	draw->drawable = XCreatePixmap(dpy, win, w, h, DefaultDepth(dpy, screen));
	draw->gc = XCreateGC(dpy, win, 0, NULL);
	XSetLineAttributes(dpy, draw->gc, 1, LineSolid, CapButt, JoinMiter);
	return draw;
}

void
draw_resize(Draw *draw, unsigned int w, unsigned int h) {
	if(!draw)
		return;
	draw->w = w;
	draw->h = h;
	XFreePixmap(draw->dpy, draw->drawable);
	draw->drawable = XCreatePixmap(draw->dpy, draw->win, w, h, DefaultDepth(draw->dpy, draw->screen));
}

void
draw_free(Draw *draw) {
	XFreePixmap(draw->dpy, draw->drawable);
	XFreeGC(draw->dpy, draw->gc);
	free(draw);
}

Fnt *
draw_font_create(Draw *draw, const char *fontname) {
	Fnt *font;
	char *def, **missing;
	int n;

	if(!draw)
		return NULL;
	font = (Fnt *)calloc(1, sizeof(Fnt));
	font->set = XCreateFontSet(draw->dpy, fontname, &missing, &n, &def);
	if(missing) {
		while(n--)
			fprintf(stderr, "draw: missing fontset: %s\n", missing[n]);
		XFreeStringList(missing);
	}
	if(font->set) {
		XFontStruct **xfonts;
		char **font_names;

		XExtentsOfFontSet(font->set);
		n = XFontsOfFontSet(font->set, &xfonts, &font_names);
		while(n--) {
			font->ascent = MAX(font->ascent, (*xfonts)->ascent);
			font->descent = MAX(font->descent,(*xfonts)->descent);
			xfonts++;
		}
	}
	else {
		if(!(font->xfont = XLoadQueryFont(draw->dpy, fontname))
		&& !(font->xfont = XLoadQueryFont(draw->dpy, "fixed")))
			die("error, cannot load font: '%s'\n", fontname);
		font->ascent = font->xfont->ascent;
		font->descent = font->xfont->descent;
	}
	font->h = font->ascent + font->descent;
	return font;
}

void
draw_font_free(Draw *draw, Fnt *font) {
	if(!draw || !font)
		return;
	if(font->set)
		XFreeFontSet(draw->dpy, font->set);
	else
		XFreeFont(draw->dpy, font->xfont);
	free(font);
}

Col *
draw_col_create(Draw *draw, const char *colname) {
	Col *col = (Col *)calloc(1, sizeof(Col));
	Colormap cmap = DefaultColormap(draw->dpy, draw->screen);
	XColor color;

	if(!XAllocNamedColor(draw->dpy, cmap, colname, &color, &color))
		die("error, cannot allocate color '%s'\n", colname);
	col->rgb = color.pixel;
	return col;
}

void
draw_col_free(Draw *draw, Col *col) {
	if(!col)
		return;
	free(col);
}

void
draw_setfont(Draw *draw, Fnt *font) {
	if(!draw || !font)
		return;
	draw->font = font;
}

void
draw_setfg(Draw *draw, Col *col) {
	if(!draw || !col) 
		return;
	draw->fg = col;
}

void
draw_setbg(Draw *draw, Col *col) {
	if(!draw || !col)
		return;
	draw->bg = col;
}

void
draw_rect(Draw *draw, int x, int y, unsigned int w, unsigned int h) {
	if(!draw)
		return;
	/* TODO: draw the rectangle */
}

void
draw_text(Draw *draw, int x, int y, const char *text) {
	if(!draw)
		return;
	/* TODO: draw the text */
}

void
draw_map(Draw *draw, int x, int y, unsigned int w, unsigned int h) {
	if(!draw)
		return;
	/* TODO: map the draw contents in the region */
}

void
draw_getextents(Draw *draw, const char *text, TextExtents *extents) {
	if(!draw || !extents)
		return;
	/* TODO: get extents */
}