r5116 | eht16 | 2010-08-05 22:13:47 +0100 (Thu, 05 Aug 2010) | 3 lines
[geany-mirror.git] / scintilla / RunStyles.h
blob0a333ca2aa39dc854bfc68655859f4caa8ae564a
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.
7 /// Styling buffer using one element for each run rather than using
8 /// a filled buffer.
10 #ifndef RUNSTYLES_H
11 #define RUNSTYLES_H
13 #ifdef SCI_NAMESPACE
14 namespace Scintilla {
15 #endif
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);
42 #ifdef SCI_NAMESPACE
44 #endif
46 #endif