summaryrefslogtreecommitdiff
path: root/src/font.cc
diff options
context:
space:
mode:
authorMarius Nita <marius@cs.pdx.edu>2002-11-01 03:30:18 +0000
committerMarius Nita <marius@cs.pdx.edu>2002-11-01 03:30:18 +0000
commit110a1eeed9b5d0deb127a02364cf6c6fe29a9de8 (patch)
tree93f4bbe6f757ec830988e1aa7de80a4447b99962 /src/font.cc
parent9247a7a616809e45bd26774d5aed7d24c618e6f2 (diff)
moved files into otk
Diffstat (limited to 'src/font.cc')
-rw-r--r--src/font.cc128
1 files changed, 0 insertions, 128 deletions
diff --git a/src/font.cc b/src/font.cc
deleted file mode 100644
index 91f8ffb6..00000000
--- a/src/font.cc
+++ /dev/null
@@ -1,128 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-
-#ifdef HAVE_CONFIG_H
-# include "../config.h"
-#endif // HAVE_CONFIG_H
-
-extern "C" {
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif // HAVE_STDLIB_H
-}
-
-#include <iostream>
-#include <algorithm>
-
-using std::string;
-using std::cerr;
-using std::endl;
-
-#include "font.hh"
-#include "util.hh"
-#include "gccache.hh"
-#include "color.hh"
-
-string BFont::_fallback_font = "fixed";
-
-BFont::BFont(Display *d, BScreen *screen, const string &family, int size,
- bool bold, bool italic, bool shadow, unsigned char offset,
- unsigned char tint, bool antialias) :
- _display(d),
- _screen(screen),
- _family(family),
- _simplename(False),
- _size(size),
- _bold(bold),
- _italic(italic),
- _antialias(antialias),
- _shadow(shadow),
- _offset(offset),
- _tint(tint),
- _xftfont(0) {
- _valid = False;
-
- _xftfont = XftFontOpen(_display, _screen->getScreenNumber(),
- XFT_FAMILY, XftTypeString, _family.c_str(),
- XFT_SIZE, XftTypeInteger, _size,
- XFT_WEIGHT, XftTypeInteger, (_bold ?
- XFT_WEIGHT_BOLD :
- XFT_WEIGHT_MEDIUM),
- XFT_SLANT, XftTypeInteger, (_italic ?
- XFT_SLANT_ITALIC :
- XFT_SLANT_ROMAN),
- XFT_ANTIALIAS, XftTypeBool, _antialias,
- 0);
- if (! _xftfont)
- return; // failure
-
- _valid = True;
-}
-
-
-BFont::~BFont(void) {
- if (_xftfont)
- XftFontClose(_display, _xftfont);
-}
-
-
-void BFont::drawString(Drawable d, int x, int y, const BColor &color,
- const string &string) const {
- assert(_valid);
-
- XftDraw *draw = XftDrawCreate(_display, d, _screen->getVisual(),
- _screen->getColormap());
- assert(draw);
-
- if (_shadow) {
- XftColor c;
- c.color.red = 0;
- c.color.green = 0;
- c.color.blue = 0;
- c.color.alpha = _tint | _tint << 8; // transparent shadow
- c.pixel = BlackPixel(_display, _screen->getScreenNumber());
-
- XftDrawStringUtf8(draw, &c, _xftfont, x + _offset,
- _xftfont->ascent + y + _offset,
- (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.pixel = color.pixel();
- 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());
-
- XftDrawDestroy(draw);
- return;
-}
-
-
-unsigned int BFont::measureString(const string &string) const {
- assert(_valid);
-
- XGlyphInfo info;
-
- XftTextExtentsUtf8(_display, _xftfont, (XftChar8 *) string.c_str(),
- string.size(), &info);
-
- return info.xOff + (_shadow ? _offset : 0);
-}
-
-
-unsigned int BFont::height(void) const {
- assert(_valid);
-
- return _xftfont->height + (_shadow ? _offset : 0);
-}
-
-
-unsigned int BFont::maxCharWidth(void) const {
- assert(_valid);
-
- return _xftfont->max_advance_width;
-}