1 // Scintilla source code edit control 
   2 /** @file WindowAccessor.h 
   3  ** Implementation of BufferAccess and StylingAccess on a Scintilla 
   4  ** rapid easy access to contents of a Scintilla. 
   6 // Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org> 
   7 // The License.txt file describes the conditions under which this software may be distributed. 
  15 class WindowAccessor 
: public Accessor 
{ 
  16         // Private so WindowAccessor objects can not be copied 
  17         WindowAccessor(const WindowAccessor 
&source
) : Accessor(), props(source
.props
) {} 
  18         WindowAccessor 
&operator=(const WindowAccessor 
&) { return *this; } 
  24         char styleBuf
[bufferSize
]; 
  28         unsigned int startSeg
; 
  30         bool InternalIsLeadByte(char ch
); 
  31         void Fill(int position
); 
  33         WindowAccessor(WindowID id_
, PropSet 
&props_
) :  
  34                 Accessor(), id(id_
), props(props_
),  
  35                 lenDoc(-1), validLen(0), chFlags(0), chWhile(0) { 
  38         bool Match(int pos
, const char *s
); 
  39         char StyleAt(int position
); 
  40         int GetLine(int position
); 
  41         int LineStart(int line
); 
  42         int LevelAt(int line
); 
  45         int GetLineState(int line
); 
  46         int SetLineState(int line
, int state
); 
  47         int GetPropertyInt(const char *key
, int defaultValue
=0) {  
  48                 return props
.GetInt(key
, defaultValue
);  
  50         char *GetProperties() { 
  51                 return props
.ToString(); 
  54         void StartAt(unsigned int start
, char chMask
=31); 
  55         void SetFlags(char chFlags_
, char chWhile_
) {chFlags 
= chFlags_
; chWhile 
= chWhile_
; }; 
  56         unsigned int GetStartSegment() { return startSeg
; } 
  57         void StartSegment(unsigned int pos
); 
  58         void ColourTo(unsigned int pos
, int chAttr
); 
  59         void SetLevel(int line
, int level
); 
  60         int IndentAmount(int line
, int *flags
, PFNIsCommentLeader pfnIsCommentLeader 
= 0); 
  61         void IndicatorFill(int start
, int end
, int indicator
, int value
);