| René Nyffenegger's collection of things on the web | |
|
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
|
Font [Ming wrapper class] | ||
The sourceFont.h
#ifndef FONT_H
#define FONT_H
#include <string>
#include "ming.h"
class Font {
friend class Text;
friend class TextField;
public:
Font(std::string const& fdb);
float Width (std::string const& t, int size) const;
float Ascent (int size) const;
float Leading (int size) const;
float Descent (int size) const;
float LineHeight(int size) const;
private:
SWFFont font_;
};
#endif
Font.cpp
#include "Font.h"
Font::Font(std::string const& fdb) :
font_(0)
{
font_ = loadSWFFontFromFile(fopen(fdb.c_str(), "rb"));
}
float Font::Width (std::string const& t, int size) const {
return SWFFont_getStringWidth(font_, reinterpret_cast<const unsigned char*>(t.c_str())) / 1024.0 * size * Ming_getScale();
}
float Font::Ascent (int size) const {
return SWFFont_getAscent(font_) /1024.0 * size*Ming_getScale();
}
float Font::Leading(int size) const {
return SWFFont_getLeading(font_) /1024.0 * size*Ming_getScale();
}
float Font::Descent(int size) const {
return SWFFont_getDescent(font_) /1024.0 * size*Ming_getScale();
}
float Font::LineHeight(int size) const {
return Ascent(size) + Descent(size);
}
//float TextHeight(std::string const& t, int size) {
//}
Examples
The following examples demonstrate this class:
|