// DocumentAccessor.h - implementation of BufferAccess and StylingAccess on a Scintilla rapid easy access to contents of a Scintilla // Copyright 1998-2000 by Neil Hodgson // The License.txt file describes the conditions under which this software may be distributed. class Document; class DocumentAccessor : public Accessor { protected: Document *pdoc; PropSet &props; int lenDoc; char styleBuf[bufferSize]; int validLen; char chFlags; char chWhile; unsigned int startSeg; bool InternalIsLeadByte(char ch); void Fill(int position); public: DocumentAccessor(Document *pdoc_, PropSet &props_) : pdoc(pdoc_), props(props_), lenDoc(-1), validLen(0), chFlags(0) { } ~DocumentAccessor(); char StyleAt(int position); int GetLine(int position); int LineStart(int line); int LevelAt(int line); int Length(); void Flush(); int GetLineState(int line); int SetLineState(int line, int state); PropSet &GetPropSet() { return props; } void StartAt(unsigned int start, char chMask=31); void SetFlags(char chFlags_, char chWhile_) {chFlags = chFlags_; chWhile = chWhile_; }; unsigned int GetStartSegment() { return startSeg; } void StartSegment(unsigned int pos); void ColourTo(unsigned int pos, int chAttr); void SetLevel(int line, int level); int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0); };