Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp.  and others 2013 - All Rights Reserved
      4  *
      5  */
      6 
      7 #ifndef __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H
      8 #define __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H
      9 
     10 /**
     11  * \file
     12  * \internal
     13  */
     14 
     15 #include "LETypes.h"
     16 #include "MorphTables.h"
     17 #include "SubtableProcessor2.h"
     18 #include "StateTableProcessor2.h"
     19 #include "ContextualGlyphInsertionProc2.h"
     20 #include "ContextualGlyphInsertion.h"
     21 
     22 U_NAMESPACE_BEGIN
     23 
     24 class LEGlyphStorage;
     25 
     26 class ContextualGlyphInsertionProcessor2 : public StateTableProcessor2
     27 {
     28 public:
     29     virtual void beginStateTable();
     30 
     31     virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index);
     32 
     33     virtual void endStateTable();
     34 
     35     ContextualGlyphInsertionProcessor2(const MorphSubtableHeader2 *morphSubtableHeader);
     36     virtual ~ContextualGlyphInsertionProcessor2();
     37 
     38     /**
     39      * ICU "poor man's RTTI", returns a UClassID for the actual class.
     40      *
     41      * @stable ICU 2.8
     42      */
     43     virtual UClassID getDynamicClassID() const;
     44 
     45     /**
     46      * ICU "poor man's RTTI", returns a UClassID for this class.
     47      *
     48      * @stable ICU 2.8
     49      */
     50     static UClassID getStaticClassID();
     51 
     52 private:
     53     ContextualGlyphInsertionProcessor2();
     54 
     55 protected:
     56     le_int32 markGlyph;
     57     const le_uint16* insertionTable;
     58     const ContextualGlyphInsertionStateEntry2 *entryTable;
     59     const ContextualGlyphInsertionHeader2 *contextualGlyphHeader;
     60 
     61 };
     62 
     63 U_NAMESPACE_END
     64 #endif
     65