// // C++ Interface: fmfontstrings // // Description: // // // Author: Pierre Marchand , (C) 2008 // // Copyright: See COPYING file that comes with this distribution // // #ifndef FMFONTSTRINGS_H #define FMFONTSTRINGS_H #include "fontitem.h" #include "fmfontdb.h" #include class FontStrings : public QObject { Q_OBJECT FontStrings(); ~FontStrings() {} static FontStrings* instance; static FontStrings* getInstance(); public: enum PanoseKey { FamilyType = 0, SerifStyle, Weight, Proportion, Contrast, StrokeVariation, ArmStyle, Letterform, Midline, XHeight, InvalidPK = 9999999 }; static PanoseKey firstPanoseKey(); static PanoseKey nextPanoseKey(PanoseKey pk); static const QMap& Names(); static const QMap< PanoseKey, QMap >& Panose(); static const QString PanoseKeyName(PanoseKey pk); static const QString PanoseKeyInfo(PanoseKey pk); static const QString Encoding(FT_Encoding enc); static const QMap& Tables(); static QString FsType(int fstype_part, bool shortString = true); static QString UnicodeCategory(QChar::Category); static QString scriptTagName(const QString& script); private: QMap m_name; void fillNamesMeaning(); void fillCharsetMap(); void fillPanoseMap(); void panoseFromFile(const QString& path); void fillTTTableList(); void fillFSftypeMap(); void fillUniCat(); void fillScriptTagNames(); QMap< PanoseKey, QMap > m_panoseMap; QMap< PanoseKey, QString > m_panoseKeyName; QMap< PanoseKey, QString > m_panoseKeyInfo; QMap charsetMap; QMap tttableList;// QMap< int, QString > m_FsType; QMap unicodeCategory; QMap scriptTagNames; }; #endif