You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
// Scintilla source code edit control |
|
/** @file WindowAccessor.h |
|
** Implementation of BufferAccess and StylingAccess on a Scintilla |
|
** rapid easy access to contents of a Scintilla. |
|
**/ |
|
// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org> |
|
// The License.txt file describes the conditions under which this software may be distributed. |
|
|
|
/** |
|
*/ |
|
class WindowAccessor : public Accessor { |
|
// Private so WindowAccessor objects can not be copied |
|
WindowAccessor(const WindowAccessor &source) : Accessor(), props(source.props) {} |
|
WindowAccessor &operator=(const WindowAccessor &) { return *this; } |
|
protected: |
|
WindowID id; |
|
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: |
|
WindowAccessor(WindowID id_, PropSet &props_) : |
|
Accessor(), id(id_), props(props_), |
|
lenDoc(-1), validLen(0), chFlags(0), chWhile(0) { |
|
} |
|
~WindowAccessor(); |
|
bool Match(int pos, const char *s); |
|
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); |
|
int GetPropertyInt(const char *key, int defaultValue=0) { |
|
return props.GetInt(key, defaultValue); |
|
} |
|
char *GetProperties() { |
|
return props.ToString(); |
|
} |
|
|
|
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); |
|
};
|
|
|