long CharacterDataImpl::minOffset() const { RenderText *r = static_cast<RenderText *>(renderer()); if (!r || !r->isText()) return 0; // take :first-letter into consideration #ifdef __GNUC__ #warning FIXME #endif #if 0 if (r->forcedMinOffset()) { RenderFlow *firstLetter = static_cast<RenderFlow *>(r->previousSibling()); if (firstLetter && firstLetter->isFlow() && firstLetter->isFirstLetter()) { RenderText *letterText = static_cast<RenderText *>(firstLetter->firstChild()); return letterText->minOffset(); } } #endif return r->minOffset(); }
int CharacterData::caretMaxOffset() const { RenderText *r = static_cast<RenderText *>(renderer()); return r && r->isText() ? r->caretMaxOffset() : (int)length(); }
int CharacterData::caretMinOffset() const { RenderText *r = static_cast<RenderText *>(renderer()); return r && r->isText() ? r->caretMinOffset() : 0; }
long CharacterDataImpl::caretMaxOffset() const { RenderText *r = static_cast<RenderText *>(renderer()); return r && r->isText() ? r->convertToDOMPosition(r->caretMaxOffset()) : (long)length(); }
long CharacterDataImpl::maxOffset() const { RenderText *r = static_cast<RenderText *>(renderer()); if (!r || !r->isText()) return 0; return (long)length(); }