aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ContractionState.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ContractionState.h')
-rw-r--r--src/ContractionState.h28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/ContractionState.h b/src/ContractionState.h
index 0d7881c7b..e15ee3bbe 100644
--- a/src/ContractionState.h
+++ b/src/ContractionState.h
@@ -13,10 +13,11 @@
class OneLine {
public:
int displayLine; ///< Position within set of visible lines
- int docLine; ///< Inverse of @a displayLine
+ //int docLine; ///< Inverse of @a displayLine
+ int height; ///< Number of display lines needed to show all of the line
bool visible;
bool expanded;
-
+
OneLine();
virtual ~OneLine() {}
};
@@ -27,33 +28,38 @@ class ContractionState {
void Grow(int sizeNew);
enum { growSize = 4000 };
int linesInDoc;
- int linesInDisplay;
+ mutable int linesInDisplay;
mutable OneLine *lines;
int size;
+ mutable int *docLines;
+ mutable int sizeDocLines;
mutable bool valid;
void MakeValid() const;
public:
ContractionState();
virtual ~ContractionState();
-
+
void Clear();
-
- int LinesInDoc() const;
- int LinesDisplayed() const;
+
+ int LinesInDoc() const;
+ int LinesDisplayed() const;
int DisplayFromDoc(int lineDoc) const;
int DocFromDisplay(int lineDisplay) const;
-
+
void InsertLines(int lineDoc, int lineCount);
void DeleteLines(int lineDoc, int lineCount);
-
+
bool GetVisible(int lineDoc) const;
bool SetVisible(int lineDocStart, int lineDocEnd, bool visible);
-
+
bool GetExpanded(int lineDoc) const;
bool SetExpanded(int lineDoc, bool expanded);
- void ShowAll();
+ int GetHeight(int lineDoc) const;
+ bool SetHeight(int lineDoc, int height);
+
+ void ShowAll();
};
#endif