Introduction
Introduction Statistics Contact Development Disclaimer Help
drw: fixup color schemes - sent - simple plaintext presentation tool
git clone git://git.suckless.org/sent
Log
Files
Refs
README
LICENSE
---
commit bd3cfd17e30397c9cca297c5ac065e4f85e86dce
parent de1dc79944848f4f27537df3600f6adf35f4e76a
Author: Markus Teich <[email protected]>
Date: Fri, 10 Apr 2015 23:12:50 +0200
drw: fixup color schemes
Diffstat:
M drw.c | 41 ++++++++++++++++-------------…
M drw.h | 24 ++++++++++--------------
2 files changed, 31 insertions(+), 34 deletions(-)
---
diff --git a/drw.c b/drw.c
@@ -171,35 +171,36 @@ drw_font_free(Fnt *font) {
free(font);
}
-Clr *
-drw_clr_create(Drw *drw, const char *clrname) {
- Clr *clr;
+Scm *
+drw_scm_create(Drw *drw, const char *fgname, const char *bgname) {
+ Scm *scm;
Colormap cmap;
Visual *vis;
- if(!drw)
- return NULL;
- clr = (Clr *)calloc(1, sizeof(Clr));
- if(!clr)
+ if (!drw || !(scm = (Scm *)calloc(1, sizeof(Scm))))
return NULL;
+
cmap = DefaultColormap(drw->dpy, drw->screen);
vis = DefaultVisual(drw->dpy, drw->screen);
- if(!XftColorAllocName(drw->dpy, vis, cmap, clrname, &clr->rgb))
- die("error, cannot allocate color '%s'\n", clrname);
- clr->pix = clr->rgb.pixel;
- return clr;
+ if (!XftColorAllocName(drw->dpy, vis, cmap, fgname, &scm->fg.rgb))
+ die("error, cannot allocate color '%s'\n", fgname);
+ if (!XftColorAllocName(drw->dpy, vis, cmap, bgname, &scm->bg.rgb))
+ die("error, cannot allocate color '%s'\n", bgname);
+ scm->fg.pix = scm->fg.rgb.pixel;
+ scm->bg.pix = scm->bg.rgb.pixel;
+ return scm;
}
void
-drw_clr_free(Clr *clr) {
- if(clr)
- free(clr);
+drw_scm_free(Scm *scm) {
+ if (scm)
+ free(scm);
}
void
-drw_setscheme(Drw *drw, ClrScheme *scheme) {
- if(drw && scheme)
- drw->scheme = scheme;
+drw_setscheme(Drw *drw, Scm *scm) {
+ if (drw && scm)
+ drw->scheme = scm;
}
void
@@ -208,7 +209,7 @@ drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned i…
if(!drw || !drw->fontcount || !drw->scheme)
return;
- XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->pix : drw-…
+ XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg.pix : drw->…
dx = (drw->fonts[0]->ascent + drw->fonts[0]->descent + 2) / 4;
if(filled)
XFillRectangle(drw->dpy, drw->drawable, drw->gc, x+1, y+1, dx+…
@@ -242,7 +243,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned i…
if (!drw || !drw->scheme) {
return 0;
} else if (render) {
- XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->fg->pi…
+ XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->fg.pix…
XFillRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w, h);
}
@@ -297,7 +298,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned i…
th = curfont->ascent + curfont->descen…
ty = y + (h / 2) - (th / 2) + curfont-…
tx = x + (h / 2);
- XftDrawStringUtf8(d, invert ? &drw->sc…
+ XftDrawStringUtf8(d, invert ? &drw->sc…
}
x += ew;
diff --git a/drw.h b/drw.h
@@ -2,11 +2,6 @@
#define DRW_FONT_CACHE_SIZE 32
typedef struct {
- unsigned long pix;
- XftColor rgb;
-} Clr;
-
-typedef struct {
Cursor cursor;
} Cur;
@@ -20,10 +15,11 @@ typedef struct {
} Fnt;
typedef struct {
- Clr *fg;
- Clr *bg;
- Clr *border;
-} ClrScheme;
+ struct {
+ unsigned long pix;
+ XftColor rgb;
+ } fg, bg;
+} Scm;
typedef struct {
unsigned int w, h;
@@ -32,7 +28,7 @@ typedef struct {
Window root;
Drawable drawable;
GC gc;
- ClrScheme *scheme;
+ Scm *scheme;
size_t fontcount;
Fnt *fonts[DRW_FONT_CACHE_SIZE];
} Drw;
@@ -48,9 +44,9 @@ void drw_load_fonts(Drw* drw, const char *fonts[], size_t fon…
void drw_font_free(Fnt *font);
void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned …
-/* Colour abstraction */
-Clr *drw_clr_create(Drw *drw, const char *clrname);
-void drw_clr_free(Clr *clr);
+/* Colorscheme abstraction */
+Scm *drw_scm_create(Drw *drw, const char *fgname, const char *bgname);
+void drw_scm_free(Scm *scm);
/* Cursor abstraction */
Cur *drw_cur_create(Drw *drw, int shape);
@@ -58,7 +54,7 @@ void drw_cur_free(Drw *drw, Cur *cursor);
/* Drawing context manipulation */
void drw_setfont(Drw *drw, Fnt *font);
-void drw_setscheme(Drw *drw, ClrScheme *scheme);
+void drw_setscheme(Drw *drw, Scm *scm);
/* Drawing functions */
void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int fill…
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.