00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __HANLAYOUTENGINE_H
00011 #define __HANLAYOUTENGINE_H
00012
00013 #include "LETypes.h"
00014 #include "LEFontInstance.h"
00015 #include "LayoutEngine.h"
00016 #include "OpenTypeLayoutEngine.h"
00017
00018 #include "GlyphSubstitutionTables.h"
00019
00020 U_NAMESPACE_BEGIN
00021
00029 class HanOpenTypeLayoutEngine : public OpenTypeLayoutEngine
00030 {
00031 public:
00049 HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
00050 const GlyphSubstitutionTableHeader *gsubTable);
00051
00052
00058 virtual ~HanOpenTypeLayoutEngine();
00059
00065 virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00066
00072 static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00073
00074 protected:
00075
00097 virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
00098 LEUnicode *&outChars, le_int32 *&charIndices, const LETag **&featureTags, LEErrorCode &success);
00099
00100
00101 private:
00102
00107 static const char fgClassID;
00108 };
00109
00110 U_NAMESPACE_END
00111 #endif