apply last commit for even more functions
This commit is contained in:
parent
c1d36670fa
commit
05c436022c
|
@ -1,6 +1,4 @@
|
||||||
void
|
void eventloop(void) {
|
||||||
eventloop(void)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
#if USEIMAGE
|
#if USEIMAGE
|
||||||
int noimg = 0;
|
int noimg = 0;
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
void
|
void loadhistory(void) {
|
||||||
loadhistory(void)
|
|
||||||
{
|
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
static size_t cap = 0;
|
static size_t cap = 0;
|
||||||
size_t llen;
|
size_t llen;
|
||||||
|
@ -50,9 +48,7 @@ loadhistory(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void navigatehistfile(int dir) {
|
||||||
navigatehistfile(int dir)
|
|
||||||
{
|
|
||||||
static char def[BUFSIZ];
|
static char def[BUFSIZ];
|
||||||
char *p = NULL;
|
char *p = NULL;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
51
libs/img.c
51
libs/img.c
|
@ -1,7 +1,5 @@
|
||||||
#if USEIMAGE
|
#if USEIMAGE
|
||||||
void
|
void setimagesize(int width, int height) {
|
||||||
setimagesize(int width, int height)
|
|
||||||
{
|
|
||||||
int oih = 0;
|
int oih = 0;
|
||||||
int oiw = 0;
|
int oiw = 0;
|
||||||
|
|
||||||
|
@ -28,9 +26,7 @@ setimagesize(int width, int height)
|
||||||
drawmenu();
|
drawmenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void flipimage(void) {
|
||||||
flipimage(void)
|
|
||||||
{
|
|
||||||
// flip image
|
// flip image
|
||||||
switch (flip) {
|
switch (flip) {
|
||||||
case 1: // horizontal
|
case 1: // horizontal
|
||||||
|
@ -48,25 +44,19 @@ flipimage(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void rotateimage(void) {
|
||||||
rotateimage(void)
|
|
||||||
{
|
|
||||||
rotation %= 4;
|
rotation %= 4;
|
||||||
imlib_image_orientate(rotation);
|
imlib_image_orientate(rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void cleanupimage(void) {
|
||||||
cleanupimage(void)
|
|
||||||
{
|
|
||||||
if (image) { // free image using imlib2
|
if (image) { // free image using imlib2
|
||||||
imlib_free_image();
|
imlib_free_image();
|
||||||
image = NULL;
|
image = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drawimage(void) {
|
||||||
drawimage(void)
|
|
||||||
{
|
|
||||||
int width = 0, height = 0;
|
int width = 0, height = 0;
|
||||||
char *limg = NULL;
|
char *limg = NULL;
|
||||||
|
|
||||||
|
@ -132,9 +122,7 @@ drawimage(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void setimageopts(void) {
|
||||||
setimageopts(void)
|
|
||||||
{
|
|
||||||
imlib_set_cache_size(8192 * 1024);
|
imlib_set_cache_size(8192 * 1024);
|
||||||
imlib_context_set_blend(1);
|
imlib_context_set_blend(1);
|
||||||
imlib_context_set_dither(1);
|
imlib_context_set_dither(1);
|
||||||
|
@ -145,9 +133,7 @@ setimageopts(void)
|
||||||
imlib_context_set_drawable(win);
|
imlib_context_set_drawable(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void createifnexist(const char *dir) {
|
||||||
createifnexist(const char *dir)
|
|
||||||
{
|
|
||||||
// exists, so return
|
// exists, so return
|
||||||
if (access(dir, F_OK) == 0)
|
if (access(dir, F_OK) == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -161,9 +147,7 @@ createifnexist(const char *dir)
|
||||||
fprintf(stderr, "spmenu: failed to create directory: %s\n", dir);
|
fprintf(stderr, "spmenu: failed to create directory: %s\n", dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void createifnexist_rec(const char *dir) {
|
||||||
createifnexist_rec(const char *dir)
|
|
||||||
{
|
|
||||||
char *buf, *s = (char*)dir, *bs;
|
char *buf, *s = (char*)dir, *bs;
|
||||||
|
|
||||||
if(!(buf = malloc(strlen(s)+1)))
|
if(!(buf = malloc(strlen(s)+1)))
|
||||||
|
@ -181,9 +165,7 @@ createifnexist_rec(const char *dir)
|
||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void loadimage(const char *file, int *width, int *height) {
|
||||||
loadimage(const char *file, int *width, int *height)
|
|
||||||
{
|
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
|
|
||||||
image = imlib_load_image(file);
|
image = imlib_load_image(file);
|
||||||
|
@ -197,9 +179,7 @@ loadimage(const char *file, int *width, int *height)
|
||||||
*height = imlib_image_get_height();
|
*height = imlib_image_get_height();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void scaleimage(int *width, int *height) {
|
||||||
scaleimage(int *width, int *height)
|
|
||||||
{
|
|
||||||
int new_width, new_height;
|
int new_width, new_height;
|
||||||
float aspect = 1.0f;
|
float aspect = 1.0f;
|
||||||
|
|
||||||
|
@ -230,9 +210,7 @@ scaleimage(int *width, int *height)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void loadimagecache(const char *file, int *width, int *height) {
|
||||||
loadimagecache(const char *file, int *width, int *height)
|
|
||||||
{
|
|
||||||
int slen = 0, i;
|
int slen = 0, i;
|
||||||
unsigned char digest[MD5_DIGEST_LENGTH];
|
unsigned char digest[MD5_DIGEST_LENGTH];
|
||||||
char md5[MD5_DIGEST_LENGTH*2+1];
|
char md5[MD5_DIGEST_LENGTH*2+1];
|
||||||
|
@ -326,8 +304,7 @@ loadimagecache(const char *file, int *width, int *height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void jumptoindex(unsigned int index) {
|
||||||
jumptoindex(unsigned int index) {
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
sel = curr = matches;
|
sel = curr = matches;
|
||||||
|
|
||||||
|
@ -341,9 +318,7 @@ jumptoindex(unsigned int index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void resizetoimageheight(int imageheight) {
|
||||||
resizetoimageheight(int imageheight)
|
|
||||||
{
|
|
||||||
int omh = mh, olines = lines;
|
int omh = mh, olines = lines;
|
||||||
lines = reallines;
|
lines = reallines;
|
||||||
int wtr = 0;
|
int wtr = 0;
|
||||||
|
|
16
libs/key.c
16
libs/key.c
|
@ -1,6 +1,4 @@
|
||||||
void
|
void updatenumlockmask(void) {
|
||||||
updatenumlockmask(void)
|
|
||||||
{
|
|
||||||
unsigned int i, j;
|
unsigned int i, j;
|
||||||
XModifierKeymap *modmap;
|
XModifierKeymap *modmap;
|
||||||
|
|
||||||
|
@ -14,9 +12,7 @@ updatenumlockmask(void)
|
||||||
XFreeModifiermap(modmap);
|
XFreeModifiermap(modmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void keypress(XEvent *e) {
|
||||||
keypress(XEvent *e)
|
|
||||||
{
|
|
||||||
updatenumlockmask();
|
updatenumlockmask();
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -72,9 +68,7 @@ keypress(XEvent *e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void grabkeyboard(void) {
|
||||||
grabkeyboard(void)
|
|
||||||
{
|
|
||||||
struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 };
|
struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 };
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -93,9 +87,7 @@ grabkeyboard(void)
|
||||||
die("cannot grab keyboard");
|
die("cannot grab keyboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void getcapsstate(void) {
|
||||||
getcapsstate(void)
|
|
||||||
{
|
|
||||||
unsigned int cs = 0;
|
unsigned int cs = 0;
|
||||||
|
|
||||||
XkbGetIndicatorState(dpy, XkbUseCoreKbd, &cs);
|
XkbGetIndicatorState(dpy, XkbUseCoreKbd, &cs);
|
||||||
|
|
|
@ -28,18 +28,14 @@ static const unsigned char utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}
|
||||||
static const long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
|
static const long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
|
||||||
static const long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
|
static const long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
|
||||||
|
|
||||||
static long
|
static long utf8decodebyte(const char c, size_t *i) {
|
||||||
utf8decodebyte(const char c, size_t *i)
|
|
||||||
{
|
|
||||||
for (*i = 0; *i < (UTF_SIZ + 1); ++(*i))
|
for (*i = 0; *i < (UTF_SIZ + 1); ++(*i))
|
||||||
if (((unsigned char)c & utfmask[*i]) == utfbyte[*i])
|
if (((unsigned char)c & utfmask[*i]) == utfbyte[*i])
|
||||||
return (unsigned char)c & ~utfmask[*i];
|
return (unsigned char)c & ~utfmask[*i];
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t utf8validate(long *u, size_t i) {
|
||||||
utf8validate(long *u, size_t i)
|
|
||||||
{
|
|
||||||
if (!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF))
|
if (!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF))
|
||||||
*u = UTF_INVALID;
|
*u = UTF_INVALID;
|
||||||
for (i = 1; *u > utfmax[i]; ++i)
|
for (i = 1; *u > utfmax[i]; ++i)
|
||||||
|
@ -47,9 +43,7 @@ utf8validate(long *u, size_t i)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t utf8decode(const char *c, long *u, size_t clen) {
|
||||||
utf8decode(const char *c, long *u, size_t clen)
|
|
||||||
{
|
|
||||||
size_t i, j, len, type;
|
size_t i, j, len, type;
|
||||||
long udecoded;
|
long udecoded;
|
||||||
|
|
||||||
|
@ -75,9 +69,7 @@ utf8decode(const char *c, long *u, size_t clen)
|
||||||
|
|
||||||
Clr transcheme[3];
|
Clr transcheme[3];
|
||||||
|
|
||||||
Drw *
|
Drw * drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap) {
|
||||||
drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap)
|
|
||||||
{
|
|
||||||
Drw *drw = ecalloc(1, sizeof(Drw));
|
Drw *drw = ecalloc(1, sizeof(Drw));
|
||||||
|
|
||||||
drw->dpy = dpy;
|
drw->dpy = dpy;
|
||||||
|
@ -95,9 +87,7 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
|
||||||
return drw;
|
return drw;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_resize(Drw *drw, unsigned int w, unsigned int h) {
|
||||||
drw_resize(Drw *drw, unsigned int w, unsigned int h)
|
|
||||||
{
|
|
||||||
if (!drw)
|
if (!drw)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -108,9 +98,7 @@ drw_resize(Drw *drw, unsigned int w, unsigned int h)
|
||||||
drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth);
|
drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_free(Drw *drw) {
|
||||||
drw_free(Drw *drw)
|
|
||||||
{
|
|
||||||
XFreePixmap(drw->dpy, drw->drawable);
|
XFreePixmap(drw->dpy, drw->drawable);
|
||||||
XFreeGC(drw->dpy, drw->gc);
|
XFreeGC(drw->dpy, drw->gc);
|
||||||
drw_font_free(drw->font);
|
drw_font_free(drw->font);
|
||||||
|
@ -118,9 +106,7 @@ drw_free(Drw *drw)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USEPANGO
|
#if USEPANGO
|
||||||
static Fnt *
|
static Fnt * xfont_create(Drw *drw, const char *fontname) {
|
||||||
xfont_create(Drw *drw, const char *fontname)
|
|
||||||
{
|
|
||||||
Fnt *font;
|
Fnt *font;
|
||||||
PangoFontMap *fontmap;
|
PangoFontMap *fontmap;
|
||||||
PangoContext *context;
|
PangoContext *context;
|
||||||
|
@ -149,9 +135,7 @@ xfont_create(Drw *drw, const char *fontname)
|
||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void xfont_free(Fnt *font) {
|
||||||
xfont_free(Fnt *font)
|
|
||||||
{
|
|
||||||
if (!font)
|
if (!font)
|
||||||
return;
|
return;
|
||||||
if (font->layout)
|
if (font->layout)
|
||||||
|
@ -159,9 +143,7 @@ xfont_free(Fnt *font)
|
||||||
free(font);
|
free(font);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static Fnt *
|
static Fnt * xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern) {
|
||||||
xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
|
|
||||||
{
|
|
||||||
Fnt *font;
|
Fnt *font;
|
||||||
XftFont *xfont = NULL;
|
XftFont *xfont = NULL;
|
||||||
FcPattern *pattern = NULL;
|
FcPattern *pattern = NULL;
|
||||||
|
@ -205,9 +187,7 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
|
||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void xfont_free(Fnt *font) {
|
||||||
xfont_free(Fnt *font)
|
|
||||||
{
|
|
||||||
if (!font)
|
if (!font)
|
||||||
return;
|
return;
|
||||||
if (font->pattern)
|
if (font->pattern)
|
||||||
|
@ -217,9 +197,7 @@ xfont_free(Fnt *font)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Fnt*
|
Fnt* drw_font_create(Drw* drw, char *font[], size_t fontcount) {
|
||||||
drw_font_create(Drw* drw, char *font[], size_t fontcount)
|
|
||||||
{
|
|
||||||
if (!drw || !font)
|
if (!drw || !font)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -242,9 +220,7 @@ drw_font_create(Drw* drw, char *font[], size_t fontcount)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_font_free(Fnt *font) {
|
||||||
drw_font_free(Fnt *font)
|
|
||||||
{
|
|
||||||
if (font) {
|
if (font) {
|
||||||
#if !USEPANGO
|
#if !USEPANGO
|
||||||
drw_font_free(font->next);
|
drw_font_free(font->next);
|
||||||
|
@ -253,9 +229,7 @@ drw_font_free(Fnt *font)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha) {
|
||||||
drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha)
|
|
||||||
{
|
|
||||||
if (!drw || !dest || !clrname)
|
if (!drw || !dest || !clrname)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -268,9 +242,7 @@ drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha)
|
||||||
|
|
||||||
/* Wrapper to create color schemes. The caller has to call free(3) on the
|
/* Wrapper to create color schemes. The caller has to call free(3) on the
|
||||||
* returned color scheme when done using it. */
|
* returned color scheme when done using it. */
|
||||||
Clr *
|
Clr * drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcount) {
|
||||||
drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcount)
|
|
||||||
{
|
|
||||||
size_t i;
|
size_t i;
|
||||||
Clr *ret;
|
Clr *ret;
|
||||||
|
|
||||||
|
@ -283,25 +255,19 @@ drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcoun
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_setscheme(Drw *drw, Clr *scm) {
|
||||||
drw_setscheme(Drw *drw, Clr *scm)
|
|
||||||
{
|
|
||||||
if (drw)
|
if (drw)
|
||||||
drw->scheme = scm;
|
drw->scheme = scm;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_settrans(Drw *drw, Clr *psc, Clr *nsc) {
|
||||||
drw_settrans(Drw *drw, Clr *psc, Clr *nsc)
|
|
||||||
{
|
|
||||||
if (drw) {
|
if (drw) {
|
||||||
transcheme[0] = psc[ColBg]; transcheme[1] = nsc[ColBg]; transcheme[2] = psc[ColPwl];
|
transcheme[0] = psc[ColBg]; transcheme[1] = nsc[ColBg]; transcheme[2] = psc[ColPwl];
|
||||||
drw->scheme = transcheme;
|
drw->scheme = transcheme;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction, int slash) {
|
||||||
drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction, int slash)
|
|
||||||
{
|
|
||||||
if (!drw || !drw->scheme)
|
if (!drw || !drw->scheme)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -328,9 +294,7 @@ drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction,
|
||||||
XFillPolygon(drw->dpy, drw->drawable, drw->gc, points, 3, Nonconvex, CoordModeOrigin);
|
XFillPolygon(drw->dpy, drw->drawable, drw->gc, points, 3, Nonconvex, CoordModeOrigin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert) {
|
||||||
drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert)
|
|
||||||
{
|
|
||||||
if (!drw || !drw->scheme)
|
if (!drw || !drw->scheme)
|
||||||
return;
|
return;
|
||||||
XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme[ColBg].pixel : drw->scheme[ColFg].pixel);
|
XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme[ColBg].pixel : drw->scheme[ColFg].pixel);
|
||||||
|
@ -340,15 +304,11 @@ drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int
|
||||||
XDrawRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w - 1, h - 1);
|
XDrawRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w - 1, h - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int xerrordummy(Display *dpy, XErrorEvent *ee) {
|
||||||
xerrordummy(Display *dpy, XErrorEvent *ee)
|
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup) {
|
||||||
drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup)
|
|
||||||
{
|
|
||||||
XSetErrorHandler(xerrordummy);
|
XSetErrorHandler(xerrordummy);
|
||||||
|
|
||||||
#if USEPANGO // pango
|
#if USEPANGO // pango
|
||||||
|
@ -539,9 +499,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
|
||||||
XSync(drw->dpy, False);
|
XSync(drw->dpy, False);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h) {
|
||||||
drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h)
|
|
||||||
{
|
|
||||||
if (!drw)
|
if (!drw)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -549,17 +507,13 @@ drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h)
|
||||||
XSync(drw->dpy, False);
|
XSync(drw->dpy, False);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
unsigned int drw_font_getwidth(Drw *drw, const char *text, Bool markup) {
|
||||||
drw_font_getwidth(Drw *drw, const char *text, Bool markup)
|
|
||||||
{
|
|
||||||
if (!drw || !drw->font || !text)
|
if (!drw || !drw->font || !text)
|
||||||
return 0;
|
return 0;
|
||||||
return drw_text(drw, 0, 0, 0, 0, 0, text, 0, markup);
|
return drw_text(drw, 0, 0, 0, 0, 0, text, 0, markup);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h, Bool markup) {
|
||||||
drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h, Bool markup)
|
|
||||||
{
|
|
||||||
#if !USEPANGO
|
#if !USEPANGO
|
||||||
XGlyphInfo ext;
|
XGlyphInfo ext;
|
||||||
#endif
|
#endif
|
||||||
|
@ -589,9 +543,7 @@ drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w,
|
||||||
*h = font->h;
|
*h = font->h;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cur *
|
Cur * drw_cur_create(Drw *drw, int shape) {
|
||||||
drw_cur_create(Drw *drw, int shape)
|
|
||||||
{
|
|
||||||
Cur *cur;
|
Cur *cur;
|
||||||
|
|
||||||
if (!drw || !(cur = ecalloc(1, sizeof(Cur))))
|
if (!drw || !(cur = ecalloc(1, sizeof(Cur))))
|
||||||
|
@ -602,9 +554,7 @@ drw_cur_create(Drw *drw, int shape)
|
||||||
return cur;
|
return cur;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void drw_cur_free(Drw *drw, Cur *cursor) {
|
||||||
drw_cur_free(Drw *drw, Cur *cursor)
|
|
||||||
{
|
|
||||||
if (!cursor)
|
if (!cursor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -612,9 +562,7 @@ drw_cur_free(Drw *drw, Cur *cursor)
|
||||||
free(cursor);
|
free(cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n, Bool markup) {
|
||||||
drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n, Bool markup)
|
|
||||||
{
|
|
||||||
unsigned int tmp = 0;
|
unsigned int tmp = 0;
|
||||||
if (drw && drw->font && text && n)
|
if (drw && drw->font && text && n)
|
||||||
tmp = drw_text(drw, 0, 0, 0, 0, 0, text, n, markup);
|
tmp = drw_text(drw, 0, 0, 0, 0, 0, text, n, markup);
|
||||||
|
|
Loading…
Reference in a new issue