]> git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/src/RunStyles.h
0a333ca2aa39dc854bfc68655859f4caa8ae564a
[wxWidgets.git] / src / stc / scintilla / src / RunStyles.h
1 /** @file RunStyles.h
2 ** Data structure used to store sparse styles.
3 **/
4 // Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>
5 // The License.txt file describes the conditions under which this software may be distributed.
6
7 /// Styling buffer using one element for each run rather than using
8 /// a filled buffer.
9
10 #ifndef RUNSTYLES_H
11 #define RUNSTYLES_H
12
13 #ifdef SCI_NAMESPACE
14 namespace Scintilla {
15 #endif
16
17 class RunStyles {
18 public:
19 Partitioning *starts;
20 SplitVector<int> *styles;
21 int RunFromPosition(int position);
22 int SplitRun(int position);
23 void RemoveRun(int run);
24 void RemoveRunIfEmpty(int run);
25 void RemoveRunIfSameAsPrevious(int run);
26 public:
27 RunStyles();
28 ~RunStyles();
29 int Length() const;
30 int ValueAt(int position) const;
31 int FindNextChange(int position, int end);
32 int StartRun(int position);
33 int EndRun(int position);
34 // Returns true if some values may have changed
35 bool FillRange(int &position, int value, int &fillLength);
36 void SetValueAt(int position, int value);
37 void InsertSpace(int position, int insertLength);
38 void DeleteAll();
39 void DeleteRange(int position, int deleteLength);
40 };
41
42 #ifdef SCI_NAMESPACE
43 }
44 #endif
45
46 #endif