#ifdef XFT
BFont::BFont(Display *d, BScreen *screen, const string &family, int size,
- bool bold, bool italic, bool antialias) :
+ bool bold, bool italic, bool shadow, bool antialias) :
_display(d),
_screen(screen),
_family(family),
_bold(bold),
_italic(italic),
_antialias(antialias),
+ _shadow(shadow),
_xftfont(0),
_font(0),
_fontset(0),
_screen(screen),
#ifdef XFT
_antialias(False),
+ _shadow(False),
_xftfont(0),
#endif // XFT
_font(0),
_screen->getColormap());
assert(draw);
+/* if (_shadow) {
+ XftColor c;
+ c.color.red = 0;
+ c.color.green = 0;
+ c.color.blue = 0;
+ c.color.alpha = 0x49 | 0x49 << 8; // transparent shadow
+ c.pixel = BlackPixel(_display, _screen->getScreenNumber());
+
+
+ XftDrawStringUtf8(draw, &c, _xftfont, x + 1, _xftfont->ascent + y + 1,
+ (XftChar8 *) string.c_str(), string.size());
+ }
+*/
+
XftColor c;
c.color.red = color.red() | color.red() << 8;
c.color.green = color.green() | color.green() << 8;
c.color.blue = color.blue() | color.blue() << 8;
- c.color.alpha = 0xff | 0xff << 8; // no transparency in BColor yet
c.pixel = color.pixel();
+
+ if (_shadow) {
+ c.color.alpha = 0x66 | 0x66 << 8; // transparent shadow
+ XftDrawStringUtf8(draw, &c, _xftfont, x + 1, _xftfont->ascent + y + 1,
+ (XftChar8 *) string.c_str(), string.size());
+ }
+ c.color.alpha = 0xff | 0xff << 8; // no transparency in BColor yet
XftDrawStringUtf8(draw, &c, _xftfont, x, _xftfont->ascent + y,
(XftChar8 *) string.c_str(), string.size());