24 #ifndef __ITEXTRANGENODE__ 25 #define __ITEXTRANGENODE__ 27 #include "IPMUnknown.h" 29 #include "SBOSReference.h" 45 enum { kDefaultIID = IID_ITEXTRANGENODE };
49 _TextRange(TextIndex start, int32 length) : startIndex(start), rangeLength(length) {}
65 virtual UIDRef GetBaseUIDRef()
const = 0;
69 virtual uint32 GetSubKey()
const = 0;
73 virtual UIDRef GetOwningStoryUIDRef()
const = 0;
78 virtual void SetObjectID(
UIDRef baseUIDRef, uint32 subItemKey = 0) = 0;
83 virtual TextIndex GetKey()
const = 0;
84 virtual TextIndex GetStartIndex()
const = 0;
88 virtual void SetStartIndexOffset(TextIndex newOffset) = 0;
92 virtual void SetRangeLength(int32 length) = 0;
96 virtual int32 GetRangeLength()
const = 0;
100 virtual TextRange GetTextRange()
const = 0;
105 virtual TextIndex GetParentOffset()
const = 0;
109 virtual TextIndex GetAbsoluteParentOffset()
const = 0;
124 virtual bool IsRed()
const = 0;
127 virtual bool RightIsRed()
const = 0;
130 virtual bool LeftIsRed()
const = 0;
133 virtual bool IsThreeNode()
const = 0;
136 virtual void MakeRed() = 0;
139 virtual void MakeBlack() = 0;
149 #endif // __ITEXTRANGENODE__