#ifndef QFONTMETRICS_H_
#define QFONTMETRICS_H_
#include "KWQRect.h"
#include "KWQSize.h"
#include "KWQString.h"
#include "KWQFont.h"
#include "KWQFontInfo.h"
class QFontMetricsPrivate;
class QFontMetrics {
public:
QFontMetrics();
QFontMetrics(const QFont &);
~QFontMetrics();
QFontMetrics(const QFontMetrics &);
QFontMetrics &operator=(const QFontMetrics &);
const QFont &font() const;
void setFont(const QFont &);
int ascent() const;
int descent() const;
int height() const;
int lineSpacing() const;
float xHeight() const;
int width(QChar) const;
int width(char) const;
int width(const QString &, int len=-1) const;
int charWidth(const QString &, int pos) const;
int width(const QChar *, int len) const;
float floatWidth(const QChar *, int slen, int pos, int len,
int letterSpacing, int wordSpacing, bool smallCaps) const;
float floatCharacterWidths(const QChar *, int slen, int pos, int len, int toAdd, float *buffer,
int letterSpacing, int wordSpacing, bool smallCaps) const;
int checkSelectionPoint (QChar *s, int slen, int pos, int len, int toAdd, int letterSpacing, int wordSpacing, bool smallCaps, int x, bool reversed) const;
QRect boundingRect(const QString &, int len=-1) const;
QRect boundingRect(int, int, int, int, int, const QString &) const;
QSize size(int, const QString &) const;
int rightBearing(QChar) const;
int leftBearing(QChar) const;
int baselineOffset() const { return ascent(); }
private:
KWQRefPtr<QFontMetricsPrivate> data;
};
#endif