X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..729e4ab9bc6618bc3d8a898e575df7f4019e29ca:/icuSources/layout/LEGlyphStorage.h
diff --git a/icuSources/layout/LEGlyphStorage.h b/icuSources/layout/LEGlyphStorage.h
index 99f82c66..8828b3f7 100644
--- a/icuSources/layout/LEGlyphStorage.h
+++ b/icuSources/layout/LEGlyphStorage.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1998-2006, International Business Machines
+ * Copyright (C) 1998-2010, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -29,7 +29,7 @@ U_NAMESPACE_BEGIN
*
* @see LEInsertionList.h
*
- * @draft ICU 3.6
+ * @stable ICU 3.6
*/
class U_LAYOUT_API LEGlyphStorage : public UObject, protected LEInsertionCallback
{
@@ -249,7 +249,7 @@ public:
*
* @return the size of the auxillary data array.
*
- * @draft ICU 3.6
+ * @stable ICU 3.6
*/
le_int32 allocateAuxData(LEErrorCode &success);
@@ -259,7 +259,7 @@ public:
* @param auxData the auxillary data array will be copied to this address
* @param success set to an error code if the data cannot be copied
*
- * @draft ICU 3.6
+ * @stable ICU 3.6
*/
void getAuxData(le_uint32 auxData[], LEErrorCode &success) const;
@@ -296,7 +296,7 @@ public:
*
* @return the auxillary data
*
- * @draft ICU 3.6
+ * @stable ICU 3.6
*/
le_uint32 getAuxData(le_int32 glyphIndex, LEErrorCode &success) const;
@@ -321,15 +321,51 @@ public:
*
* @param atIndex the index of the glyph to be replaced
* @param insertCount the number of glyphs to replace it with
+ * @param success set to an error code if the auxillary data cannot be retrieved.
+ *
+ * @return the address at which to store the replacement glyphs.
+ *
+ * @see LEInsertionList.h
+ *
+ * @stable ICU 4.2
+ */
+ LEGlyphID *insertGlyphs(le_int32 atIndex, le_int32 insertCount, LEErrorCode& success);
+
+ /**
+ * Call this method to replace a single glyph in the glyph array
+ * with multiple glyphs. This method uses the LEInsertionList
+ * to do the insertion. It returns the address of storage where the new
+ * glyph IDs can be stored. They will not actually be inserted into the
+ * glyph array until applyInsertions
is called.
+ *
+ * Note: Don't use this version, use the other version of this function which has an error code.
+ *
+ * @param atIndex the index of the glyph to be replaced
+ * @param insertCount the number of glyphs to replace it with
*
* @return the address at which to store the replacement glyphs.
*
- * @see LEInsetionList.h
+ * @see LEInsertionList.h
*
* @stable ICU 3.0
*/
LEGlyphID *insertGlyphs(le_int32 atIndex, le_int32 insertCount);
+ /**
+ * This method is used to reposition glyphs during Indic v2 processing. It moves
+ * all of the relevant glyph information ( glyph, indices, positions, and auxData ),
+ * from the source position to the target position, and also allows for a marker bit
+ * to be set in the target glyph's auxData so that it won't be reprocessed later in the
+ * cycle.
+ *
+ * @param fromPosition - position of the glyph to be moved
+ * @param toPosition - target position of the glyph
+ * @param marker marker bit
+ *
+ * @stable ICU 4.2
+ */
+ void moveGlyph(le_int32 fromPosition, le_int32 toPosition, le_uint32 marker);
+
/**
* This method causes all of the glyph insertions recorded by
* insertGlyphs
to be applied to the glyph array. The
@@ -397,7 +433,7 @@ public:
* @param auxData the new auxillary data
* @param success will be set to an error code if the auxillary data cannot be set.
*
- * @draft ICU 3.6
+ * @stable ICU 3.6
*/
void setAuxData(le_int32 glyphIndex, le_uint32 auxData, LEErrorCode &success);