os/textandloc/fontservices/textshaperplugin/IcuSource/layout/ContextualGlyphSubstProc.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2  *
     3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
     4  *
     5  */
     6 
     7 #ifndef __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
     8 #define __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
     9 
    10 /**
    11  * \file
    12  * \internal
    13  */
    14 
    15 #include "LETypes.h"
    16 #include "MorphTables.h"
    17 #include "SubtableProcessor.h"
    18 #include "StateTableProcessor.h"
    19 #include "ContextualGlyphSubstitution.h"
    20 
    21 U_NAMESPACE_BEGIN
    22 
    23 class LEGlyphStorage;
    24 
    25 class ContextualGlyphSubstitutionProcessor : public StateTableProcessor
    26 {
    27 public:
    28     virtual void beginStateTable();
    29 
    30     virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index);
    31 
    32     virtual void endStateTable();
    33 
    34     ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
    35     virtual ~ContextualGlyphSubstitutionProcessor();
    36 
    37     /**
    38      * ICU "poor man's RTTI", returns a UClassID for the actual class.
    39      *
    40      * @stable ICU 2.8
    41      */
    42     virtual UClassID getDynamicClassID() const;
    43 
    44     /**
    45      * ICU "poor man's RTTI", returns a UClassID for this class.
    46      *
    47      * @stable ICU 2.8
    48      */
    49     static UClassID getStaticClassID();
    50 
    51 private:
    52     ContextualGlyphSubstitutionProcessor();
    53 
    54 protected:
    55     ByteOffset substitutionTableOffset;
    56     const ContextualGlyphSubstitutionStateEntry *entryTable;
    57 
    58     le_int32 markGlyph;
    59 
    60     const ContextualGlyphSubstitutionHeader *contextualGlyphSubstitutionHeader;
    61 
    62 };
    63 
    64 U_NAMESPACE_END
    65 #endif