InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ITextUtils.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner:
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __ITextUtils__
25 #define __ITextUtils__
26 
27 #include "IPMUnknown.h" // super class
28 
29 #include "TextID.h" // default IID
30 #include "CTextEnum.h" // for Text::GridAlignmentMetric, etc
31 #include "IScaleObject.h"
32 #include "LanguageID.h" // return from ScriptToLanguageID()
33 #include "TextAttrID.h" // for default params to RemapFontStyles()
34 #include "OwnedItemDataList.h" // for OwnedItemDataList template
35 #include "K2SmartPtr.h" // for struct TextAttrs
36 #include "AttributeBossList.h" // for K2::scoped_ptr<AttributeBossList>
37 #include "RangeData.h" // for StoryRange
38 #include "ITextOptions.h"
39 #include "ITextStoryThreadDictHier.h"
40 #include "IMultiColumnTextFrame.h"
41 #include "BravoForwardDecl.h" // for kDontKnowScript
42 #include "IDrawingStyle.h"
43 #include "ICreateMCFrameData.h"
44 
45 class AttributeBossList;
46 class CursorSpec;
47 class IBaselineGridPrefs;
48 class ICommand;
49 class IComposeScanner;
50 class IControlView;
51 class IDocument;
52 class IFontFamily;
53 class IFontGroup;
54 class IFrameList;
55 class IGeometry;
56 class IGraphicFrameData;
57 class IHierarchy;
58 class IInkResourceData;
59 class IItemStrand;
60 class ILayoutTarget;
61 class IPMFont;
62 class IParcel;
63 class IShape;
64 class ITextAttrFont;
65 class ITextAttrUID;
66 class ITextFocus;
67 class ITextFrameColumn;
68 class ITextModel;
69 class ITextParcelList;
70 class ITextStoryThread;
71 class ITextTarget;
72 class IVisitorHelper;
73 class ParcelKey;
74 class UIDList;
75 class WideString;
77 class IGraphicFrameData;
78 class IWaxLine;
79 
80 //#include "IWordCountInfoData.h"
81 //#include "TextStoryThreadHelper.h"
83 
84 #include <utility>
85 
89 typedef bool16 (*FuncIsWordChar)( const UTF32TextChar& aStart, const UTF32TextChar& aEnd );
90 
93 #define kInvalidChapterNumber -1
94 
100 class ITextUtils : public IPMUnknown
101 {
102 public:
103  enum { kDefaultIID = IID_ITEXTUTILS };
104 
105 
108 
115  virtual ICommand* QueryCopyStoryCommand(const UIDRef& source, const UIDRef& dest, const StoryRange& sourceRange, const StoryRange& destRange, const bool16 ignoreAttributes = kFalse ) = 0;
116 
123  virtual ICommand* QueryCopyStoryToEndCommand(const UIDRef& source, const UIDRef& dest, const StoryRange& sourceRange, const bool16 ignoreAttributes = kFalse ) = 0;
124 
131  virtual ICommand* QueryCopyStoryFromAllToAllCommand(const UIDRef& source, const UIDRef& dest, const bool16 ignoreAttributes = kFalse ) = 0;
132 
139  virtual ICommand* QueryCopyStoryFromAllToEndCommand(const UIDRef& source, const UIDRef& dest, const bool16 ignoreAttributes = kFalse ) = 0;
140 
148  virtual ICommand* QueryMoveStoryCommand(const UIDRef& source, const UIDRef& dest, const StoryRange& sourceRange, const StoryRange& destRange, const bool16 ignoreAttributes = kFalse ) = 0;
149 
156  virtual ICommand* QueryMoveStoryFromAllCommand(const UIDRef& source, const UIDRef& dest, const StoryRange& destRange, const bool16 ignoreAttributes = kFalse ) = 0;
157 
165  virtual ICommand* QueryMoveStoryFromAllToAllCommand(const UIDRef& source, const UIDRef& dest, const bool16 ignoreAttributes = kFalse) = 0;
166 
174  virtual ICommand* QueryMoveStoryFromAllToEndCommand(const UIDRef& source, const UIDRef& dest, const bool16 ignoreAttributes = kFalse) = 0;
175 
189  virtual ICommand* CreateNewMCFrameCommand(UIDRef parent,
190  bool16 noGraphicAttr,
191  const PMRect& boundary,
192  bool16 isHorizontal = kTrue,
193  bool16 isFrameGrid = kFalse,
194  bool16 isLeftToRight = kTrue,
195  ClassID frameItem = kFrameItemBoss,
196  bool16 isEndnoteStory = kFalse) = 0;
197 
210  virtual ICommand* CreateNewMCFrameCommand(UIDRef parent,
211  bool16 noGraphicAttr,
212  const PMPointList& opposingCorners,
213  bool16 isHorizontal = kTrue,
214  bool16 isFrameGrid = kFalse,
215  bool16 isLeftToRight = kTrue,
216  ClassID frameItem = kFrameItemBoss) = 0;
217 
232  bool16 noGraphicAttr,
233  const PMRect& boundary,
234  ITextModel* story,
235  bool16 isHorizontal = kTrue,
236  bool16 isFrameGrid = kFalse,
237  bool16 isLeftToRight = kTrue,
238  ClassID frameItem = kFrameItemBoss) = 0;
239 
253  bool16 noGraphicAttr,
254  const PMRect& boundary,
255  IFrameList * frameList,
256  bool16 atEnd = kTrue,
257  ClassID frameItem = kFrameItemBoss) = 0;
258 
273  bool16 noGraphicAttr,
274  const PMRect& boundary,
275  IMultiColumnTextFrame * mcFrame,
276  bool16 insertAfter = kTrue,
277  ClassID frameItem = kFrameItemBoss) = 0;
278 
294  bool16 noGraphicAttr,
295  const PMRect& boundary,
296  IFrameList * frameList,
297  int32 insertIndex,
298  ClassID frameItem = kFrameItemBoss) = 0;
299 
311  bool16 isHorizontal = kTrue,
312  bool16 isFrameGrid = kFalse,
313  bool16 isLeftToRight = kTrue,
314  ClassID frameItem = kFrameItemBoss) = 0;
315 
328  ITextModel* story,
329  bool16 isHorizontal = kTrue,
330  bool16 isFrameGrid = kFalse,
331  bool16 isLeftToRight = kTrue,
332  ClassID frameItem = kFrameItemBoss) = 0;
333 
344  IFrameList* frameList,
345  bool16 atEnd = kTrue,
346  ClassID frameItem = kFrameItemBoss) = 0;
347 
360  IMultiColumnTextFrame * mcFrame,
361  bool16 insertAfter = kTrue,
362  ClassID frameItem = kFrameItemBoss) = 0;
363 
377  IFrameList* frameList,
378  int32 insertIndex,
379  ClassID frameItem = kFrameItemBoss) = 0;
380 
387  virtual const WideString& ConvertTextModelText( const WideString &rText,
388  WideString *pStripped,
389  bool16 stripHardHyphens = kTrue,
390  bool16 stripDiscretionaryHyphens = kTrue,
391  bool16 convertApostrophes = kTrue,
392  bool16 stripNobreakNonspace = kTrue,
393  bool16 convertHyphens = kTrue,
394  bool16 stripLeadingSpaces = kTrue,
395  bool16 convertForGrammarCheck = kFalse) = 0;
396 
401  virtual bool16 CollectPageItemsFromFocus(const ITextFocus *pFocus, const PMIID& iid, UIDList *pList ) = 0;
402 
405  virtual bool16 FocusSpansMultiplePageItems(const ITextFocus *pFocus) = 0;
406 
412  virtual int32 GetMultiColFrameIndex( const IMultiColumnTextFrame* mcf ) = 0;
413 
424  virtual TextIndex FindSurroundingWord( const ITextModel *pModel, TextIndex nPosition, int32 *pLength, FuncIsWordChar aFunction ) = 0;
425 
436  virtual TextIndex FindSurroundingWordUsingWordCharFuncOnly( const ITextModel *pModel, TextIndex nPosition, int32 *pLength, const FuncIsWordChar aFunction ) = 0;
437 
440  virtual bool16 IsPlainStyleName( const PMString &styleName ) = 0;
441 
444  virtual bool16 IsItalicStyleName( const PMString &styleName ) = 0;
445 
448  virtual bool16 IsBoldStyleName( const PMString &styleName ) = 0;
449 
452  virtual bool16 IsBoldItalicStyleName( const PMString &styleName ) = 0;
453 
457  virtual bool16 GetFontStyleName( ITextAttrFont *fromFont, ITextAttrFont *toFont, PMString *styleName ) = 0;
458 
474  virtual bool16 RemapFontStyles( IDataBase *dataBase, const AttributeBossList &stateOverrides, const AttributeBossList &newOverrides,
475  PMString *styleName, Fixed* &axesInfo, int &numAxes, ClassID textAttrFontUIDBoss = kTextAttrFontUIDBoss, ClassID textAttrFontStyleBoss = kTextAttrFontStyleBoss,
476  bool16 remapExactFontStylesOnly = kFalse) = 0;
477 
480  virtual bool16 IsOpenTypeFont( const IPMFont *font ) = 0;
481 
484  virtual bool16 IsOpenTypeFamily( IFontFamily *fontFamily ) = 0;
485 
488  virtual bool16 IsAdobeFont (IPMFont const *font ) = 0;
489 
490  // Check the current char is a word break or not.
491  virtual bool16 IsWordBreak(const UTF32TextChar& curChar) = 0;
492 
496  {
501 
505 
509 
513  };
514 
522  virtual void GetDisplayFontNames( IFontGroup *fontGroup, IPMFont *font, PMString &familyName, PMString &styleName, DisplayNamesFlag namesFlag ) = 0;
523 
524 
533  virtual void GetDisplayFontNames( IDataBase *dataBase, const ITextAttrUID* fontUID, const ITextAttrFont* fontStyle,
534  PMString &familyName, PMString &styleName, DisplayNamesFlag namesFlag ) = 0;
535 
548  virtual void CollectOwnedItems(const ITextModel* model,
549  TextIndex start, int32 len,
550  OwnedItemDataList* resultList,
551  bool16 nested = kFalse) = 0;
552 
556  virtual void CollectVisitableItems(ITextModel* model,
557  TextIndex start, int32 len,
558  VisitableItems *resultList) = 0;
559 
563  virtual void GetUIDListOfInlines(IParcel* parcel, bool16 bWithDropCaps,
564  UIDList* resultList) = 0;
565 
589  virtual void CollectStoryRanges(const ITextModel* model,
590  TextIndex start, int32 len,
591  StoryRangeList* resultList,
592  TextIndex hIndex = kInvalidTextIndex,
593  ITextUtils::HIndexList *hIndexList = nil,
594  bool16 bIncludeAnchorSpan = kTrue) = 0;
595 
601  virtual void BuildLogicalStoryRangeList(ITextModel* model,
602  TextIndex start,
603  StoryRangeList* resultList) = 0;
604 
610  virtual PMMatrix GetWaxToFrameMatrix(const IParcel* parcel) = 0;
611 
618  virtual bool16 GetParcelContentBounds(ITextParcelList* tpl,
619  TextIndex at, PMRect *pCBounds) = 0;
620 
626  virtual bool16 IsOverset(const IFrameList* fl) = 0;
627 
630  virtual bool16 IsScriptOfText( const char *anyText, int32 writingScript ) = 0;
631 
634  virtual int32 GuessScriptOfText( const char *anyText, int32 preferredWritingScript = kDontKnowScript ) = 0;
635 
639  virtual bool16 SkipTextCharForRemapping( const UTF32TextChar& textChar ) = 0;
640 
644  virtual bool16 SkipTextCharForFontLocking( const UTF32TextChar& textChar ) = 0;
645 
648  virtual UTF32TextChar RemapCharacterValue( IPMFont *oldFont, IPMFont *newFont, const UTF32TextChar& textChar ) = 0;
649 
654  virtual UID CreateNewStory(IDataBase *db, bool16 defaults = kTrue, ClassID clsID = kTextStoryBoss) = 0;
655 
658  virtual LanguageID ScriptToLanguageID( int32 writingScript ) = 0;
659 
664  virtual ICommand* CreateRecomposeThruNthParcelCmd( const ITextParcelList* tpl, int32 parcelIndex ) = 0 ;
665 
670  virtual ICommand* CreateRecomposeThruTextIndexCmd( const ITextParcelList* tpl, TextIndex textIndex ) = 0 ;
671 
677  virtual int32 DeterminePairKern(const ITextModel* model, TextIndex index, ClassID kernService, PMReal& result) = 0;
678 
683  {
684  bool16 wantParaStyle;
685  bool16 wantCharStyle;
686  bool16 wantParaOverrides;
687  bool16 wantCharOverrides;
688 
689  WhichTextAttrs() :
690  wantCharOverrides(kFalse), wantParaOverrides(kFalse),
691  wantCharStyle(kFalse), wantParaStyle(kFalse)
692  {}
693  };
694 
698  struct TextAttrs
699  {
700  UID paraStyle;
701  UID charStyle;
702  K2::scoped_ptr<AttributeBossList> paraOverrides;
703  K2::scoped_ptr<AttributeBossList> charOverrides;
704 
705  TextAttrs() : charOverrides(nil), paraOverrides(nil),
706  charStyle(kInvalidUID), paraStyle(kInvalidUID) {}
707  };
708 
713  virtual void GetDefaultTextAttrPreferences(const WhichTextAttrs which, TextAttrs& out, IDocument* prefsFromDocument) = 0;
714 
721  virtual void AdjustForTableRange(const UIDRef& story, TextIndex* pStart, TextIndex* pEnd, TextIndex* nextLine) = 0;
722 
727  virtual bool16 AlignToBaselineGrid(IGeometry* pageItem, IParcel* parcel,
728  const IBaselineGridPrefs *gridPrefs,
729  PMReal *pYTop, PMReal *pYBottom,
730  Text::GridAlignmentMetric alignment,
731  PMReal alignmentMetricOffset) const = 0;
732 
740  virtual TextIndex FindResetOwnedItemUID(IItemStrand* itemStrand, const ClassID objectType, const UID findOldItemUID, const TextIndex start, const UID newItemUID) = 0;
741 
745  virtual int32 RemapCharacterValues( IPMFont *oldFont, IPMFont *newFont, const textchar * buffer, int32 bufferLength, WideString *replacedChars ) = 0;
746 
749  virtual int32 CountChars(const UTF16TextChar *buffer, int32 length) const = 0;
750 
754  virtual int32 CharOffsetToUTF16Offset(const UTF16TextChar *buffer, int32 length, int32 charOffset) const = 0;
755 
756 
763  virtual void GetSelectedTextItemsFromTextTarget(const ITextTarget * textTarget, UIDList * textframes, UIDList * mcfs, UIDList * splineItems) = 0;
764 
771  virtual void GetSelectedTextItemsFromLayoutTarget(const ILayoutTarget * layoutTarget, UIDList * textframes, UIDList * mcfs, UIDList * splineItems) = 0;
772 
779  virtual void GetSelectedTextItemsFromUIDList(const UIDList& pageITems, UIDList * textframes, UIDList * mcfs, UIDList * splineItems) = 0;
780 
786  virtual void GetTextFramesContaining(const ITextModel *textModel,
787  const RangeData& range,
788  int32 *pFirstFrameIndex,
789  int32 *pLastFrameIndex) = 0;
790 
791  virtual UIDList* CreateOppositeDirectionFrameList (UIDList *pStoryList,
792  ITextOptions::WritingDirection dir) = 0;
793 
798  virtual void GetUIDListOfTextFramesFromRange(const ITextModel* textModel, const RangeData& range, UIDList* resultList) = 0;
799 
809  virtual void GetUsedInks(const ITextModel* textModel, TextIndex threadEnd,
810  TextIndex start, int32 len, IInkResourceData* inkResourceData) = 0;
811 
821  virtual void NotifyOversetChanged(const IFrameList* frameList) = 0;
822 
826  virtual bool16 IsMultiColumnFrame(const IPMUnknown* obj) const
827  {
829  return (mcf != nil);
830  }
831 
836 
839  virtual const IMultiColumnTextFrame* QueryMultiColumnFrame(const ITextFrameColumn* tfc) const = 0;
840 
843  virtual UID QueryMultiColumnFrameUID(const ITextFrameColumn* tfc) const = 0;
844 
849  virtual IMultiColumnTextFrame* QueryMCFOrTOPFromSpline(const IGraphicFrameData* gfd) const = 0;
850  virtual UID GetMCFOrTOPFromSpline(const IGraphicFrameData* gfd) const = 0;
851  virtual ITextModel* QueryTextModelFromSpline(const IGraphicFrameData* gfd) const = 0;
852 
857  virtual IHierarchy* QuerySplineFromTextFrame(const IMultiColumnTextFrame* mcf) const = 0;
858 
863  virtual IHierarchy* QuerySplineFromTextFrame(const ITextFrameColumn* tfc) const = 0;
864 
867  virtual ErrorCode ProcessScaleParcelContent(const ITextParcelList* tpl,
868  ParcelKey key,
869  const PMReal& xScale,
870  const PMReal& yScale,
871  IScaleObject::ScaleContext& context) const = 0;
872 
878  virtual UID GetTextFramesPageItemUID(IGeometry* pageItem) const = 0;
879 
897  typedef enum { kUpdateAll = 0, kUpdateLine, kNoAction } WordCountUpdateAction;
898  typedef enum { kStartCounting = 0, kCustomizeStartCounting, kContinueCounting, kContinueCountingForComposedFrame, kEndCounting } WordCountUpdateState;
899 
900  virtual void GetWordCountInfo
901  (
902  const ITextModel* iTextModel,
903  const uint32& startIndex,
904  const int32& lengthToCount,
905  const ITextUtils::WordCountUpdateAction& action,
906  const ITextUtils::WordCountUpdateState& state,
907  bool16& wordStarted,
908  uint32& characters,
909  uint32& words,
910  uint32& paragraphs,
911  uint32& lines,
912  uint32& oversetCharacters,
913  uint32& oversetWords,
914  uint32& oversetParagraphs,
915  uint32& oversetLines,
916  bool16& bWordAcrossOverset,
917  TextStoryThreadHelper& helper
918  ) = 0;
919 
945  virtual void GetWordCountInfo // J version
946  (
947  const ITextModel* iTextModel,
948  const uint32& startIndex,
949  const int32& lengthToCount,
950  const ITextUtils::WordCountUpdateAction& action,
951  const ITextUtils::WordCountUpdateState& state,
952  bool16& wordStarted,
953  uint32& fullWidthChars, uint32& oversetFullWidthChars,
954  uint32& halfWidthChars, uint32& oversetHalfWidthChars,
955  uint32& japaneseChars, uint32& oversetJapaneseChars,
956  uint32& kanjis, uint32& oversetKanjis,
957  uint32& words, uint32& oversetWords,
958  uint32& lines, uint32& oversetLines,
959  uint32& paragraphs, uint32& oversetParagraphs,
960  uint32& allChars, uint32& oversetAllChars,
961  bool16& bWordAcrossOverset ,
962  TextStoryThreadHelper& helper
963  ) = 0;
964 
968  virtual int32 CountOversetLines(const UIDRef &textModelUIDRef) = 0;
969 
976  virtual bool16 IsFocusAFootnote(const ITextFocus *pFocus, UIDRef* pFootnoteUIDRef = nil) = 0;
977 
985  virtual bool16 IsFootnote(const ITextModel* model, TextIndex position, UIDRef* pFootnoteUIDRef = nil) = 0;
986 
993  virtual bool16 AnyFootnotes(const ITextModel* model, const RangeData& range) = 0;
994 
1002  virtual void GenerateListsOfAttributesThatCanBeCleared(IWorkspace * workspace, AttributeBossList * characterAttributes, AttributeBossList * paragraphAttributes) = 0;
1003 
1009  virtual void GetPrimaryStoryAnchor(UIDRef& storyRef, RangeData& range) const = 0;
1010 
1016  typedef bool16 (*StripMatchingCharactersFunction)( const UTF32TextChar& n ) ;
1017  virtual boost::shared_ptr<WideString> FilterInsertString( const WideString* data, StripMatchingCharactersFunction func ) const = 0 ;
1018 
1025  virtual void GetPrimaryThreadAnchor(const ITextModel* model, RangeData& range) const = 0;
1026 
1035  virtual ErrorCode LinkTextFrames(const IMultiColumnTextFrame* textFrameA, const IMultiColumnTextFrame *textFrameB, bool16 prepend) = 0;
1036 
1039  virtual IHierarchy* QueryForHierarchyMember(IDataBase *db, const ITextFrameColumn *textFrame) const = 0;
1040 
1044  virtual UIDRef GetPageUIDRef(const UIDRef& textFrameRef) const = 0;
1045 
1048  virtual int32 GetPageNumber(const UIDRef& textFrameRef) const = 0;
1049 
1052  virtual ClassID GetPageNumberFormatter(const UIDRef& textFrameRef) const = 0;
1053 
1056  virtual void GetFormattedPageNumberString(const UIDRef& textFrameRef, PMString* s, IDrawingStyle::PositionIndicator whichPage = IDrawingStyle::kDataPosition_ThisPage) const = 0;
1057 
1060  virtual void GetFormattedSectionNameString(const UIDRef& textFrameRef, PMString* s) const = 0;
1061 
1065  virtual int32 GetChapterNumber(IDataBase* db) const = 0;
1066 
1072  virtual void GetFormattedChapterNumberString(IDataBase* db, PMString* s, int32 v=kInvalidChapterNumber) const = 0;
1073 
1076  enum PageCountScopes { kSection = 0, kDocument };
1077 
1081  virtual int32 GetPageCount(const UIDRef& target, enum PageCountScopes scope) const = 0;
1082 
1085  virtual UIDRef GetPreviousPageNumberFrameRef(const UIDRef& textFrameRef) const = 0;
1086 
1089  virtual UIDRef GetNextPageNumberFrameRef(const UIDRef& textFrameRef) const = 0;
1090 
1093  virtual bool16 GetTargetIsInContinuedContainer(const UIDRef& target) const = 0;
1094 
1097  virtual bool16 GetTargetContainerContinues(const UIDRef& target) const = 0;
1098 
1101  virtual TextIndex GetTextIndexForTrackedParagraph(const UIDRef& paraStrandDiskPageRef,
1102  UID trackerUID,
1103  uint32 trackerData) const = 0;
1104 
1113  virtual void GetLocaleFromTextIndex(const UIDRef& modelRef, const TextIndex position, bool16 &noLang, void *locale) const = 0;
1114 
1117  virtual IDocument* GetLastDocInBook(bool16& docWasAlreadyOpen, int32& startPageNum) const = 0;
1118 
1125  virtual int32 GetSpreadTextFrameColumns(const UIDRef& spreadRef,
1126  UIDList* pList) const = 0;
1127 
1135  virtual int32 GetSpreadMultiColumnTextFrames(const UIDRef& spreadRef,
1136  UIDList* pList) const = 0;
1137 
1144  virtual void EditTargetStyle(IDataBase* targetDB, const UID& targetStyle, AttributeBossList* attributesToApply, const UIDList& uidList) const = 0;
1145 
1154  virtual void ApplySourceStyleAttrsToTargetStyle(IDataBase* sourceDB, const UID& sourceStyle, IDataBase* targetDB, const UID& targetStyle,
1155  const UIDList& uidList) const = 0;
1156 
1163  virtual bool16 IsTextValidForInsertion(WideString const& text) const = 0;
1164 
1169  virtual void RepairGenericDataLink(UIDRef oldStoryRef, UIDRef newStoryRef) = 0;
1170 
1176  virtual const WideString& GetXRefPageNumberVariableName() = 0;
1177 
1183  virtual const WideString& GetXRefChapterNumberVariableName() = 0;
1184 
1191  virtual WideString GetFullVisibleParagraphString(IComposeScanner * scanner, TextIndex textIndex, int32 &paragraphSpan) = 0;
1192 
1193 
1199  virtual bool16 IsLeftToRightRun(const IWaxLine* waxLine, TextIndex ti) const = 0;
1200 
1205  virtual UIDRef GetFirstFrameOfStory(const UIDRef & story) const = 0;
1206 
1212  virtual void ConvertSmartQuotes(ITextModel* model, TextIndex position, int32 length) const = 0;
1213 
1214 
1224  virtual void GetGlyphsForOverrides(ITextModel* model, const RangeData& range, const AttributeBossList *overrides,
1225  std::vector<std::pair<Text::GlyphID, TextIndex>> *newGlyphPoints, bool16 clearOverrides=kFalse) const = 0;
1226 
1229  virtual int32 GetPageNumberFromPageUID(const UIDRef& page) const = 0;
1230 
1237  virtual ITextStoryThreadDictHier::CompareResult CompareItemPosition(const ITextModel* txtModel, const TextIndex item1Position, const TextIndex item2Position) const = 0;
1238 
1243  virtual bool16 IsVerticalColumnRuleActive(const IPMUnknown* shape) = 0;
1244 
1245 
1261  virtual bool16 RemapFontStylesWithOPSZ(IDataBase* dataBase, const AttributeBossList& stateOverrides, const AttributeBossList& newOverrides,
1262  PMString* styleName, Fixed*& axesInfo, int& numAxes, ClassID textAttrFontUIDBoss = kTextAttrFontUIDBoss, ClassID textAttrFontStyleBoss = kTextAttrFontStyleBoss,
1263  bool16 remapExactFontStylesOnly = kFalse, PMReal pointSize = -1) = 0;
1264 };
1265 
1266 // This is the new direction
1267 namespace Text {
1268 
1269  typedef ITextUtils::VisitableItems VisitableItems;
1270  typedef ITextUtils::HIndexList HIndexList;
1271 }
1272 
1273 
1274 #endif // __ITextUtils__