00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef UFONTMETRICS_HPP
00029
#define UFONTMETRICS_HPP
00030
00031
#include "../uobject.hpp"
00032
00033
namespace ufo {
00034
00035
class UFontRenderer;
00036
00047 class UFO_EXPORT UFontMetrics :
public UObject {
00048 UFO_DECLARE_ABSTRACT_CLASS(UFontMetrics)
00049
public:
00050
virtual UFontRenderer * getFontRenderer()
const = 0;
00054
virtual int getAscent()
const = 0;
00058
virtual int getDescent()
const = 0;
00059
00063
virtual int getLineskip()
const = 0;
00067
virtual int getHeight()
const = 0;
00068
00069
virtual int getMaxAscent()
const = 0;
00070
virtual int getMaxDescent()
const = 0;
00071
virtual int getMaxCharWidth()
const = 0;
00072
00074
virtual int getUnderlinePosition()
const = 0;
00076
virtual int getUnderlineThickness()
const = 0;
00077
00082 virtual int getStringWidth(
const std::string & text)
const {
00083
return getStringWidth(text.data(), text.length());
00084 }
00088
virtual int getStringWidth(
const char * text,
unsigned int nChar)
const = 0;
00089
00091
virtual int getCharWidth(
const wchar_t chA)
const = 0;
00092
00095
virtual unsigned int
00096 viewToModel(
const std::string & text,
unsigned int w)
const {
00097
return viewToModel(text.data(), text.length(), w);
00098 }
00108
virtual unsigned int
00109 viewToModel(
const char * text,
unsigned int nChar,
unsigned int w)
const = 0;
00110 };
00111
00112 }
00113
00114
#endif // UFONTMETRICS_HPP