void Insert(nsTreeRange* aRange) { if (mMin >= aRange->mMax) aRange->Connect(mPrev, this); else if (mNext) mNext->Insert(aRange); else aRange->Connect(this, nsnull); };
PRBool Contains(PRInt32 aIndex) { if (aIndex >= mMin && aIndex <= mMax) return PR_TRUE; if (mNext) return mNext->Contains(aIndex); return PR_FALSE; }
bool Contains(PRInt32 aIndex) { if (aIndex >= mMin && aIndex <= mMax) return true; if (mNext) return mNext->Contains(aIndex); return false; }
void RemoveAllBut(PRInt32 aIndex) { if (aIndex >= mMin && aIndex <= mMax) { // Invalidate everything in this list. mSelection->mFirstRange->Invalidate(); mMin = aIndex; mMax = aIndex; nsTreeRange* first = mSelection->mFirstRange; if (mPrev) mPrev->mNext = mNext; if (mNext) mNext->mPrev = mPrev; mNext = mPrev = nsnull; if (first != this) { delete mSelection->mFirstRange; mSelection->mFirstRange = this; } } else if (mNext) mNext->RemoveAllBut(aIndex); }
void Invalidate() { if (mSelection->mTree) mSelection->mTree->InvalidateRange(mMin, mMax); if (mNext) mNext->Invalidate(); }
PRInt32 Count() { PRInt32 total = mMax - mMin + 1; if (mNext) total += mNext->Count(); return total; }
int32_t Count() { int32_t total = mMax - mMin + 1; if (mNext) total += mNext->Count(); return total; }