add font size support

This commit is contained in:
iatll 2014-07-24 11:43:57 -04:00 committed by Bram Wasti
parent a6c37d1f6d
commit 29bef03c5c
2 changed files with 25 additions and 3 deletions

View File

@ -34,7 +34,7 @@ Force docking without asking the window manager. This is needed if the window ma
=item B<-f> I<font> =item B<-f> I<font>
Comma separated list of fonts, bar supports a maximum of two fonts. Font face. Size can be specified as <font>:<size>
=item B<-p> =item B<-p>

26
bar.c
View File

@ -81,6 +81,7 @@ static bool topbar = true;
static int bw = -1, bh = -1, bx = 0, by = 0; static int bw = -1, bh = -1, bx = 0, by = 0;
static int bu = 1; /* Underline height */ static int bu = 1; /* Underline height */
static char *mfont = NULL; static char *mfont = NULL;
static double mfont_size = 10.0;
static uint32_t fgc, bgc; static uint32_t fgc, bgc;
static area_stack_t astack; static area_stack_t astack;
static image_t imgs[MAX_IMAGES]; static image_t imgs[MAX_IMAGES];
@ -601,6 +602,7 @@ monitor_new (int x, int y, int width, int height)
ret->cr = cairo_create(ret->surface); ret->cr = cairo_create(ret->surface);
cairo_select_font_face (ret->cr, mfont? mfont: "fixed", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_select_font_face (ret->cr, mfont? mfont: "fixed", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size(ret->cr, mfont_size);
return ret; return ret;
} }
@ -1019,8 +1021,28 @@ parse_font_list (char *str)
return; return;
tok = strtok(str, ","); tok = strtok(str, ",");
if (tok) if (tok) {
mfont = tok; mfont = tok; // font face
// if a colon is found
tok = strtok(mfont, ":");
if(tok) {
// treat the string before the colon as the font face
mfont = tok; // font face
// if characters exist after the colon
tok = strtok(NULL, ":");
if(tok) {
double candidate_size;
candidate_size = atof(tok);
// and the size is non-zero
if(candidate_size != 0) {
// treat the rest of the string as the font size
mfont_size = candidate_size; // font size
}
}
}
}
return; return;
} }