--- /dev/null
+/** @file RunStyles.h\r
+ ** Data structure used to store sparse styles.\r
+ **/\r
+// Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>\r
+// The License.txt file describes the conditions under which this software may be distributed.\r
+\r
+/// Styling buffer using one element for each run rather than using\r
+/// a filled buffer.\r
+\r
+#ifndef RUNSTYLES_H\r
+#define RUNSTYLES_H\r
+\r
+#ifdef SCI_NAMESPACE\r
+namespace Scintilla {\r
+#endif\r
+\r
+class RunStyles {\r
+public:\r
+ Partitioning *starts;\r
+ SplitVector<int> *styles;\r
+ int RunFromPosition(int position);\r
+ int SplitRun(int position);\r
+ void RemoveRun(int run);\r
+ void RemoveRunIfEmpty(int run);\r
+ void RemoveRunIfSameAsPrevious(int run);\r
+public:\r
+ RunStyles();\r
+ ~RunStyles();\r
+ int Length() const;\r
+ int ValueAt(int position) const;\r
+ int FindNextChange(int position, int end);\r
+ int StartRun(int position);\r
+ int EndRun(int position);\r
+ // Returns true if some values may have changed\r
+ bool FillRange(int &position, int value, int &fillLength);\r
+ void SetValueAt(int position, int value);\r
+ void InsertSpace(int position, int insertLength);\r
+ void DeleteAll();\r
+ void DeleteRange(int position, int deleteLength);\r
+};\r
+\r
+#ifdef SCI_NAMESPACE\r
+}\r
+#endif\r
+\r
+#endif\r