sl@0: /*
sl@0:  * %W% %E%
sl@0:  *
sl@0:  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
sl@0:  *
sl@0:  */
sl@0: 
sl@0: #ifndef __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
sl@0: #define __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
sl@0: 
sl@0: /**
sl@0:  * \file
sl@0:  * \internal
sl@0:  */
sl@0: 
sl@0: #include "LETypes.h"
sl@0: #include "LEGlyphFilter.h"
sl@0: #include "LEFontInstance.h"
sl@0: #include "OpenTypeTables.h"
sl@0: #include "Lookups.h"
sl@0: #include "Features.h"
sl@0: #include "GlyphDefinitionTables.h"
sl@0: #include "GlyphSubstitutionTables.h"
sl@0: #include "GlyphIterator.h"
sl@0: #include "LookupProcessor.h"
sl@0: 
sl@0: U_NAMESPACE_BEGIN
sl@0: 
sl@0: class GlyphSubstitutionLookupProcessor : public LookupProcessor
sl@0: {
sl@0: public:
sl@0:     GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
sl@0:         LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter = NULL, const LETag *featureOrder = NULL);
sl@0: 
sl@0:     virtual ~GlyphSubstitutionLookupProcessor();
sl@0: 
sl@0:     virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType, GlyphIterator *glyphIterator,
sl@0:         const LEFontInstance *fontInstance, LEErrorCode& success) const;
sl@0: 
sl@0: protected:
sl@0:     GlyphSubstitutionLookupProcessor();
sl@0: 
sl@0: private:
sl@0:     const LEGlyphFilter *fFilter;
sl@0: 
sl@0:     GlyphSubstitutionLookupProcessor(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
sl@0:     GlyphSubstitutionLookupProcessor &operator=(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
sl@0: };
sl@0: 
sl@0: U_NAMESPACE_END
sl@0: #endif