Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

ArabicLayoutEngine.h

Go to the documentation of this file.
00001 
00002 /*
00003  * @(#)ArabicLayoutEngine.h     1.3 00/03/15
00004  *
00005  * (C) Copyright IBM Corp. 1998, 1999, 2000, 2001, 2002 - All Rights Reserved
00006  *
00007  */
00008 
00009 #ifndef __ARABICLAYOUTENGINE_H
00010 #define __ARABICLAYOUTENGINE_H
00011 
00012 #include "LETypes.h"
00013 #include "LEFontInstance.h"
00014 #include "LEGlyphFilter.h"
00015 #include "LayoutEngine.h"
00016 #include "OpenTypeLayoutEngine.h"
00017 
00018 #include "GlyphSubstitutionTables.h"
00019 #include "GlyphDefinitionTables.h"
00020 #include "GlyphPositioningTables.h"
00021 
00022 U_NAMESPACE_BEGIN
00023 
00032 class ArabicOpenTypeLayoutEngine : public OpenTypeLayoutEngine
00033 {
00034 public:
00052     ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
00053                             const GlyphSubstitutionTableHeader *gsubTable);
00054 
00068     ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode);
00069 
00075     virtual ~ArabicOpenTypeLayoutEngine();
00076 
00082     virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00083 
00089     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00090 
00091 protected:
00092 
00114     virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
00115             LEUnicode *&outChars, le_int32 *&charIndices, const LETag **&featureTags, LEErrorCode &success);
00116 
00134     virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphID glyphs[], le_int32 glyphCount, float positions[], LEErrorCode &success);
00135 
00136 private:
00137 
00142     static const char fgClassID;
00143 };
00144 
00157 class UnicodeArabicOpenTypeLayoutEngine : public ArabicOpenTypeLayoutEngine
00158 {
00159 public:
00173     UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode);
00174 
00180     virtual ~UnicodeArabicOpenTypeLayoutEngine();
00181 
00182 protected:
00183 
00202     virtual le_int32 glyphPostProcessing(LEGlyphID tempGlyphs[], le_int32 tempCharIndices[], le_int32 tempGlyphCount,
00203                     LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success);
00204 
00223     virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
00224         LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success);
00225 
00242     virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphID glyphs[], le_int32 glyphCount, float positions[], LEErrorCode &success);
00243 };
00244 
00245 U_NAMESPACE_END
00246 #endif
00247 

Generated on Mon Nov 24 14:35:27 2003 for ICU 2.8 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001