mirror of git://git.suckless.org/dmenu
59 lines
1.3 KiB
C
59 lines
1.3 KiB
C
|
/*
|
||
|
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
|
||
|
* See LICENSE file for license details.
|
||
|
*/
|
||
|
|
||
|
#include "config.h"
|
||
|
#include <X11/Xlib.h>
|
||
|
#include <X11/Xlocale.h>
|
||
|
|
||
|
typedef struct Brush Brush;
|
||
|
typedef struct DC DC;
|
||
|
typedef struct Fnt Fnt;
|
||
|
|
||
|
struct Fnt {
|
||
|
XFontStruct *xfont;
|
||
|
XFontSet set;
|
||
|
int ascent;
|
||
|
int descent;
|
||
|
int height;
|
||
|
};
|
||
|
|
||
|
struct DC { /* draw context */
|
||
|
int x, y, w, h;
|
||
|
unsigned long bg;
|
||
|
unsigned long fg;
|
||
|
unsigned long border;
|
||
|
Drawable drawable;
|
||
|
Fnt font;
|
||
|
GC gc;
|
||
|
};
|
||
|
|
||
|
struct Brush {
|
||
|
GC gc;
|
||
|
Drawable drawable;
|
||
|
int x, y, w, h;
|
||
|
Fnt font;
|
||
|
unsigned long bg;
|
||
|
unsigned long fg;
|
||
|
unsigned long border;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
/* draw.c */
|
||
|
extern void draw(Display *dpy, Brush *b, Bool border, const char *text);
|
||
|
extern void loadcolors(Display *dpy, int screen, Brush *b,
|
||
|
const char *bg, const char *fg, const char *bo);
|
||
|
extern void loadfont(Display *dpy, Fnt *font, const char *fontstr);
|
||
|
extern unsigned int textnw(Fnt *font, char *text, unsigned int len);
|
||
|
extern unsigned int textw(Fnt *font, char *text);
|
||
|
extern unsigned int texth(Fnt *font);
|
||
|
|
||
|
/* util.c */
|
||
|
extern void *emalloc(unsigned int size);
|
||
|
extern void *emallocz(unsigned int size);
|
||
|
extern void eprint(const char *errstr, ...);
|
||
|
extern char *estrdup(const char *str);
|
||
|
extern void swap(void **p1, void **p2);
|