fontservices/textshaperplugin/IcuSource/layout/LigatureSubstProc.h
changeset 0 1fb32624e06b
equal deleted inserted replaced
-1:000000000000 0:1fb32624e06b
       
     1 /*
       
     2  *
       
     3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
       
     4  *
       
     5  */
       
     6 
       
     7 #ifndef __LIGATURESUBSTITUTIONPROCESSOR_H
       
     8 #define __LIGATURESUBSTITUTIONPROCESSOR_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 "LigatureSubstitution.h"
       
    20 
       
    21 U_NAMESPACE_BEGIN
       
    22 
       
    23 class LEGlyphStorage;
       
    24 
       
    25 #define nComponents 16
       
    26 
       
    27 class LigatureSubstitutionProcessor : public StateTableProcessor
       
    28 {
       
    29 public:
       
    30     virtual void beginStateTable();
       
    31 
       
    32     virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index);
       
    33 
       
    34     virtual void endStateTable();
       
    35 
       
    36     LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
       
    37     virtual ~LigatureSubstitutionProcessor();
       
    38 
       
    39     /**
       
    40      * ICU "poor man's RTTI", returns a UClassID for the actual class.
       
    41      *
       
    42      * @stable ICU 2.8
       
    43      */
       
    44     virtual UClassID getDynamicClassID() const;
       
    45 
       
    46     /**
       
    47      * ICU "poor man's RTTI", returns a UClassID for this class.
       
    48      *
       
    49      * @stable ICU 2.8
       
    50      */
       
    51     static UClassID getStaticClassID();
       
    52 
       
    53 private:
       
    54     LigatureSubstitutionProcessor();
       
    55 
       
    56 protected:
       
    57     ByteOffset ligatureActionTableOffset;
       
    58     ByteOffset componentTableOffset;
       
    59     ByteOffset ligatureTableOffset;
       
    60 
       
    61     const LigatureSubstitutionStateEntry *entryTable;
       
    62 
       
    63     le_int32 componentStack[nComponents];
       
    64     le_int16 m;
       
    65 
       
    66     const LigatureSubstitutionHeader *ligatureSubstitutionHeader;
       
    67 
       
    68 };
       
    69 
       
    70 U_NAMESPACE_END
       
    71 #endif