lib
symboltable.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SYMBOLTABLE_H
00023 #define SYMBOLTABLE_H
00024
00025 #include <qfont.h>
00026 #include <qmap.h>
00027 #include <qstring.h>
00028 #include <qstringlist.h>
00029 #include <qvaluevector.h>
00030
00031 #include "kformuladefs.h"
00032
00033 class KConfig;
00034
00035 KFORMULA_NAMESPACE_BEGIN
00036
00037 class ContextStyle;
00038 struct UnicodeNameTable;
00039
00043 class SymbolFontHelper {
00044 public:
00045
00046 SymbolFontHelper();
00047
00051 QString greekLetters() const { return greek; }
00052
00056 QChar unicodeFromSymbolFont( QChar pos ) const;
00057
00058 private:
00059
00063 QMap<QChar, QChar> compatibility;
00064
00068 QString greek;
00069 };
00070
00071
00077 class KOFORMULA_EXPORT SymbolTable {
00078 public:
00079
00080 SymbolTable();
00081
00086 void init( const QFont& font );
00087
00088 bool contains( QString name ) const;
00089
00094 QChar unicode( QString name ) const;
00095 QString name( QChar symbol ) const;
00096
00097 QFont font( QChar symbol, const QFont& f ) const;
00098
00099 CharClass charClass( QChar symbol ) const;
00100
00104 QString greekLetters() const;
00105
00109 QChar unicodeFromSymbolFont( QChar pos ) const;
00110
00114 QStringList allNames() const;
00115
00116 typedef QMap<QChar, QString> NameTable;
00117 typedef QMap<QString, QChar> EntryTable;
00118
00119 private:
00120
00121 QString get_name( UnicodeNameTable entry ) const;
00122
00126 NameTable names;
00127
00131 EntryTable entries;
00132
00136 SymbolFontHelper symbolFontHelper;
00137
00143 QFont backupFont;
00144 };
00145
00146 KFORMULA_NAMESPACE_END
00147
00148 #endif // SYMBOLTABLE_H
|