diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h')
-rw-r--r-- | Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h | 376 |
1 files changed, 0 insertions, 376 deletions
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h b/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h deleted file mode 100644 index 9c9e39bffe6..00000000000 --- a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h +++ /dev/null @@ -1,376 +0,0 @@ -/* - * - * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved - * - */ - -#ifndef __GLYPHPOSITIONADJUSTMENTS_H -#define __GLYPHPOSITIONADJUSTMENTS_H - -/** - * \file - * \internal - */ - -#include "LETypes.h" -#include "OpenTypeTables.h" - -U_NAMESPACE_BEGIN - -class LEGlyphStorage; -class LEFontInstance; - -class GlyphPositionAdjustments : public UMemory -{ -private: - class Adjustment : public UMemory { - public: - - inline Adjustment(); - inline Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff = -1); - inline ~Adjustment(); - - inline float getXPlacement() const; - inline float getYPlacement() const; - inline float getXAdvance() const; - inline float getYAdvance() const; - - inline le_int32 getBaseOffset() const; - - inline void setXPlacement(float newXPlacement); - inline void setYPlacement(float newYPlacement); - inline void setXAdvance(float newXAdvance); - inline void setYAdvance(float newYAdvance); - - inline void setBaseOffset(le_int32 newBaseOffset); - - inline void adjustXPlacement(float xAdjustment); - inline void adjustYPlacement(float yAdjustment); - inline void adjustXAdvance(float xAdjustment); - inline void adjustYAdvance(float yAdjustment); - - private: - float xPlacement; - float yPlacement; - float xAdvance; - float yAdvance; - - le_int32 baseOffset; - - // allow copying of this class because all of its fields are simple types - }; - - class EntryExitPoint : public UMemory - { - public: - inline EntryExitPoint(); - inline ~EntryExitPoint(); - - inline le_bool isCursiveGlyph() const; - inline le_bool baselineIsLogicalEnd() const; - - LEPoint *getEntryPoint(LEPoint &entryPoint) const; - LEPoint *getExitPoint(LEPoint &exitPoint) const; - - inline void clearEntryPoint(); - inline void clearExitPoint(); - inline void setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd); - inline void setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd); - inline void setCursiveGlyph(le_bool baselineIsLogicalEnd); - - private: - enum EntryExitFlags - { - EEF_HAS_ENTRY_POINT = 0x80000000L, - EEF_HAS_EXIT_POINT = 0x40000000L, - EEF_IS_CURSIVE_GLYPH = 0x20000000L, - EEF_BASELINE_IS_LOGICAL_END = 0x10000000L - }; - - le_uint32 fFlags; - LEPoint fEntryPoint; - LEPoint fExitPoint; - }; - - le_int32 fGlyphCount; - EntryExitPoint *fEntryExitPoints; - Adjustment *fAdjustments; - - GlyphPositionAdjustments(); - -public: - GlyphPositionAdjustments(le_int32 glyphCount); - ~GlyphPositionAdjustments(); - - inline le_bool hasCursiveGlyphs() const; - inline le_bool isCursiveGlyph(le_int32 index) const; - inline le_bool baselineIsLogicalEnd(le_int32 index) const; - - const LEPoint *getEntryPoint(le_int32 index, LEPoint &entryPoint) const; - const LEPoint *getExitPoint(le_int32 index, LEPoint &exitPoint) const; - - inline float getXPlacement(le_int32 index) const; - inline float getYPlacement(le_int32 index) const; - inline float getXAdvance(le_int32 index) const; - inline float getYAdvance(le_int32 index) const; - - inline le_int32 getBaseOffset(le_int32 index) const; - - inline void setXPlacement(le_int32 index, float newXPlacement); - inline void setYPlacement(le_int32 index, float newYPlacement); - inline void setXAdvance(le_int32 index, float newXAdvance); - inline void setYAdvance(le_int32 index, float newYAdvance); - - inline void setBaseOffset(le_int32 index, le_int32 newBaseOffset); - - inline void adjustXPlacement(le_int32 index, float xAdjustment); - inline void adjustYPlacement(le_int32 index, float yAdjustment); - inline void adjustXAdvance(le_int32 index, float xAdjustment); - inline void adjustYAdvance(le_int32 index, float yAdjustment); - - void clearEntryPoint(le_int32 index); - void clearExitPoint(le_int32 index); - void setEntryPoint(le_int32 index, LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd); - void setExitPoint(le_int32 index, LEPoint &newExitPoint, le_bool baselineIsLogicalEnd); - void setCursiveGlyph(le_int32 index, le_bool baselineIsLogicalEnd); - - void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft, const LEFontInstance *fontInstance); -}; - -inline GlyphPositionAdjustments::Adjustment::Adjustment() - : xPlacement(0), yPlacement(0), xAdvance(0), yAdvance(0), baseOffset(-1) -{ - // nothing else to do! -} - -inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff) - : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv), baseOffset(baseOff) -{ - // nothing else to do! -} - -inline GlyphPositionAdjustments::Adjustment::~Adjustment() -{ - // nothing to do! -} - -inline float GlyphPositionAdjustments::Adjustment::getXPlacement() const -{ - return xPlacement; -} - -inline float GlyphPositionAdjustments::Adjustment::getYPlacement() const -{ - return yPlacement; -} - -inline float GlyphPositionAdjustments::Adjustment::getXAdvance() const -{ - return xAdvance; -} - -inline float GlyphPositionAdjustments::Adjustment::getYAdvance() const -{ - return yAdvance; -} - -inline le_int32 GlyphPositionAdjustments::Adjustment::getBaseOffset() const -{ - return baseOffset; -} - -inline void GlyphPositionAdjustments::Adjustment::setXPlacement(float newXPlacement) -{ - xPlacement = newXPlacement; -} - -inline void GlyphPositionAdjustments::Adjustment::setYPlacement(float newYPlacement) -{ - yPlacement = newYPlacement; -} - -inline void GlyphPositionAdjustments::Adjustment::setXAdvance(float newXAdvance) -{ - xAdvance = newXAdvance; -} - -inline void GlyphPositionAdjustments::Adjustment::setYAdvance(float newYAdvance) -{ - yAdvance = newYAdvance; -} - -inline void GlyphPositionAdjustments::Adjustment::setBaseOffset(le_int32 newBaseOffset) -{ - baseOffset = newBaseOffset; -} - -inline void GlyphPositionAdjustments::Adjustment::adjustXPlacement(float xAdjustment) -{ - xPlacement += xAdjustment; -} - -inline void GlyphPositionAdjustments::Adjustment::adjustYPlacement(float yAdjustment) -{ - yPlacement += yAdjustment; -} - -inline void GlyphPositionAdjustments::Adjustment::adjustXAdvance(float xAdjustment) -{ - xAdvance += xAdjustment; -} - -inline void GlyphPositionAdjustments::Adjustment::adjustYAdvance(float yAdjustment) -{ - yAdvance += yAdjustment; -} - -inline GlyphPositionAdjustments::EntryExitPoint::EntryExitPoint() - : fFlags(0) -{ - fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fExitPoint.fY = 0; -} - -inline GlyphPositionAdjustments::EntryExitPoint::~EntryExitPoint() -{ - // nothing special to do -} - -inline le_bool GlyphPositionAdjustments::EntryExitPoint::isCursiveGlyph() const -{ - return (fFlags & EEF_IS_CURSIVE_GLYPH) != 0; -} - -inline le_bool GlyphPositionAdjustments::EntryExitPoint::baselineIsLogicalEnd() const -{ - return (fFlags & EEF_BASELINE_IS_LOGICAL_END) != 0; -} - -inline void GlyphPositionAdjustments::EntryExitPoint::clearEntryPoint() -{ - fFlags &= ~EEF_HAS_ENTRY_POINT; -} - -inline void GlyphPositionAdjustments::EntryExitPoint::clearExitPoint() -{ - fFlags &= ~EEF_HAS_EXIT_POINT; -} - -inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd) -{ - if (baselineIsLogicalEnd) { - fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END); - } else { - fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH); - } - - fEntryPoint = newEntryPoint; -} - -inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd) -{ - if (baselineIsLogicalEnd) { - fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END); - } else { - fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH); - } - - fExitPoint = newExitPoint; -} - -inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(le_bool baselineIsLogicalEnd) -{ - if (baselineIsLogicalEnd) { - fFlags |= (EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END); - } else { - fFlags |= EEF_IS_CURSIVE_GLYPH; - } -} - -inline le_bool GlyphPositionAdjustments::isCursiveGlyph(le_int32 index) const -{ - return fEntryExitPoints != NULL && fEntryExitPoints[index].isCursiveGlyph(); -} - -inline le_bool GlyphPositionAdjustments::baselineIsLogicalEnd(le_int32 index) const -{ - return fEntryExitPoints != NULL && fEntryExitPoints[index].baselineIsLogicalEnd(); -} - -inline float GlyphPositionAdjustments::getXPlacement(le_int32 index) const -{ - return fAdjustments[index].getXPlacement(); -} - -inline float GlyphPositionAdjustments::getYPlacement(le_int32 index) const -{ - return fAdjustments[index].getYPlacement(); -} - -inline float GlyphPositionAdjustments::getXAdvance(le_int32 index) const -{ - return fAdjustments[index].getXAdvance(); -} - -inline float GlyphPositionAdjustments::getYAdvance(le_int32 index) const -{ - return fAdjustments[index].getYAdvance(); -} - - -inline le_int32 GlyphPositionAdjustments::getBaseOffset(le_int32 index) const -{ - return fAdjustments[index].getBaseOffset(); -} - -inline void GlyphPositionAdjustments::setXPlacement(le_int32 index, float newXPlacement) -{ - fAdjustments[index].setXPlacement(newXPlacement); -} - -inline void GlyphPositionAdjustments::setYPlacement(le_int32 index, float newYPlacement) -{ - fAdjustments[index].setYPlacement(newYPlacement); -} - -inline void GlyphPositionAdjustments::setXAdvance(le_int32 index, float newXAdvance) -{ - fAdjustments[index].setXAdvance(newXAdvance); -} - -inline void GlyphPositionAdjustments::setYAdvance(le_int32 index, float newYAdvance) -{ - fAdjustments[index].setYAdvance(newYAdvance); -} - -inline void GlyphPositionAdjustments::setBaseOffset(le_int32 index, le_int32 newBaseOffset) -{ - fAdjustments[index].setBaseOffset(newBaseOffset); -} - -inline void GlyphPositionAdjustments::adjustXPlacement(le_int32 index, float xAdjustment) -{ - fAdjustments[index].adjustXPlacement(xAdjustment); -} - -inline void GlyphPositionAdjustments::adjustYPlacement(le_int32 index, float yAdjustment) -{ - fAdjustments[index].adjustYPlacement(yAdjustment); -} - -inline void GlyphPositionAdjustments::adjustXAdvance(le_int32 index, float xAdjustment) -{ - fAdjustments[index].adjustXAdvance(xAdjustment); -} - -inline void GlyphPositionAdjustments::adjustYAdvance(le_int32 index, float yAdjustment) -{ - fAdjustments[index].adjustYAdvance(yAdjustment); -} - -inline le_bool GlyphPositionAdjustments::hasCursiveGlyphs() const -{ - return fEntryExitPoints != NULL; -} - -U_NAMESPACE_END -#endif |