summaryrefslogtreecommitdiff
path: root/src/Font.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-09-06 16:14:55 +0000
committerDana Jansens <danakj@orodu.net>2002-09-06 16:14:55 +0000
commit02c028d8ae0a80206eeb97c662cd3ceebf900977 (patch)
tree5f412544ec53dabd98f693f2a113e01ae6e807dc /src/Font.cc
parenta0537f89e71118a7e6a777ccdc38587170efc345 (diff)
(optional) drop shadows for fonts
Diffstat (limited to 'src/Font.cc')
-rw-r--r--src/Font.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/Font.cc b/src/Font.cc
index bc4f6440..d4a6950d 100644
--- a/src/Font.cc
+++ b/src/Font.cc
@@ -48,7 +48,7 @@ string BFont::_fallback_font = "fixed";
#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),
@@ -57,6 +57,7 @@ BFont::BFont(Display *d, BScreen *screen, const string &family, int size,
_bold(bold),
_italic(italic),
_antialias(antialias),
+ _shadow(shadow),
_xftfont(0),
_font(0),
_fontset(0),
@@ -91,6 +92,7 @@ BFont::BFont(Display *d, BScreen *screen, const string &xlfd) :
_screen(screen),
#ifdef XFT
_antialias(False),
+ _shadow(False),
_xftfont(0),
#endif // XFT
_font(0),
@@ -260,6 +262,19 @@ void BFont::drawString(Drawable d, int x, int y, const BColor &color,
_screen->getColormap());
assert(draw);
+ if (_shadow) {
+ XftColor c;
+ c.color.red = 0;
+ c.color.green = 0;
+ c.color.blue = 0;
+ c.color.alpha = 0x55 | 0x55 << 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;