small update to list selection code.
[wmaker-crm.git] / WINGs / fontmanager.c
blobb71904e70bec9d1a50da4e65bb37e309a8b7eab4
2 #include "WINGsP.h"
5 static void
6 changeFontProp(char *fname, char *newprop, int which)
8 char before[128], prop[128], after[128];
9 char *ptr, *bptr;
10 int part=0;
12 if(!fname || !prop)
13 return;
15 ptr = fname;
16 bptr = before;
17 while (*ptr) {
18 if(*ptr == '-') {
19 *bptr = 0;
20 if(part==which) bptr = prop;
21 else if(part==which+1) bptr = after;
22 *bptr++ = *ptr;
23 part++;
24 } else {
25 *bptr++ = *ptr;
26 } ptr++;
27 }*bptr = 0;
28 snprintf(fname, 255, "%s-%s%s", before, newprop, after);
32 WMFont *
33 WMConvertFontToPlain(WMScreen *scr, WMFont *font)
35 if(!scr || !font)
36 return font;
38 return font;
41 WMFont *
42 WMConvertFontToBold(WMScreen *scr, WMFont *font)
44 WMFont *newfont=NULL;
45 char fname[256];
47 if(!scr || !font)
48 return font;
50 snprintf(fname, 255, font->name);
51 changeFontProp(fname, "bold", 2);
52 newfont = WMCreateNormalFont(scr, fname);
54 if(!newfont)
55 newfont = font;
57 return newfont;
60 WMFont *
61 WMConvertFontToItalic(WMScreen *scr, WMFont *font)
63 WMFont *newfont=NULL;
64 char fname[256];
66 if(!scr || !font)
67 return font;
69 snprintf(fname, 255, font->name);
70 changeFontProp(fname, "o", 3);
71 newfont = WMCreateNormalFont(scr, fname);
73 if(!newfont)
74 newfont = font;
76 return newfont;
79 WMFont *
80 WMGetFontOfSize(WMScreen *scr, WMFont *font, int size)
82 if(!scr || !font || size<1)
83 return font;
85 return font;