jdk/src/share/native/sun/font/layout/ContextualGlyphInsertionProc2.h
changeset 16891 91e99bed64ae
parent 16889 3df90f344221
equal deleted inserted replaced
16890:36b30720a997 16891:91e99bed64ae
    51 class ContextualGlyphInsertionProcessor2 : public StateTableProcessor2
    51 class ContextualGlyphInsertionProcessor2 : public StateTableProcessor2
    52 {
    52 {
    53 public:
    53 public:
    54     virtual void beginStateTable();
    54     virtual void beginStateTable();
    55 
    55 
    56     virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index);
    56     virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage,
       
    57                                         le_int32 &currGlyph, EntryTableIndex2 index, LEErrorCode &success);
    57 
    58 
    58     virtual void endStateTable();
    59     virtual void endStateTable();
    59 
    60 
    60     ContextualGlyphInsertionProcessor2(const MorphSubtableHeader2 *morphSubtableHeader);
    61     ContextualGlyphInsertionProcessor2(const LEReferenceTo<MorphSubtableHeader2> &morphSubtableHeader, LEErrorCode &success);
    61     virtual ~ContextualGlyphInsertionProcessor2();
    62     virtual ~ContextualGlyphInsertionProcessor2();
    62 
    63 
    63     /**
    64     /**
    64      * ICU "poor man's RTTI", returns a UClassID for the actual class.
    65      * ICU "poor man's RTTI", returns a UClassID for the actual class.
    65      *
    66      *
    75     static UClassID getStaticClassID();
    76     static UClassID getStaticClassID();
    76 
    77 
    77 private:
    78 private:
    78     ContextualGlyphInsertionProcessor2();
    79     ContextualGlyphInsertionProcessor2();
    79 
    80 
       
    81     /**
       
    82      * Perform the actual insertion
       
    83      * @param atGlyph index of glyph to insert at
       
    84      * @param index index into the insertionTable (in/out)
       
    85      * @param count number of insertions
       
    86      * @param isKashidaLike Kashida like (vs Split Vowel like). No effect currently.
       
    87      * @param isBefore if true, insert extra glyphs before the marked glyph
       
    88      */
       
    89     void doInsertion(LEGlyphStorage &glyphStorage,
       
    90                               le_int16 atGlyph,
       
    91                               le_int16 &index,
       
    92                               le_int16 count,
       
    93                               le_bool isKashidaLike,
       
    94                               le_bool isBefore,
       
    95                               LEErrorCode &success);
       
    96 
       
    97 
    80 protected:
    98 protected:
    81     le_int32 markGlyph;
    99     le_int32 markGlyph;
    82     const le_uint16* insertionTable;
   100     LEReferenceToArrayOf<le_uint16> insertionTable;
    83     const ContextualGlyphInsertionStateEntry2 *entryTable;
   101     LEReferenceToArrayOf<ContextualGlyphInsertionStateEntry2> entryTable;
    84     const ContextualGlyphInsertionHeader2 *contextualGlyphHeader;
   102     LEReferenceTo<ContextualGlyphInsertionHeader2> contextualGlyphHeader;
    85 
       
    86 };
   103 };
    87 
   104 
    88 U_NAMESPACE_END
   105 U_NAMESPACE_END
    89 #endif
   106 #endif