Fix action icons in the log dialog being clipped on High-DPI displays
[TortoiseGit.git] / ext / scintilla / src / ContractionState.h
blobfe6886f8447783913828210f04234ee7cd2d9861
1 // Scintilla source code edit control
2 /** @file ContractionState.h
3 ** Manages visibility of lines for folding and wrapping.
4 **/
5 // Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
8 #ifndef CONTRACTIONSTATE_H
9 #define CONTRACTIONSTATE_H
11 #ifdef SCI_NAMESPACE
12 namespace Scintilla {
13 #endif
15 template<class T>
16 class SparseVector;
18 /**
20 class ContractionState {
21 // These contain 1 element for every document line.
22 RunStyles *visible;
23 RunStyles *expanded;
24 RunStyles *heights;
25 SparseVector<const char *> *foldDisplayTexts;
26 Partitioning *displayLines;
27 int linesInDocument;
29 void EnsureData();
31 bool OneToOne() const {
32 // True when each document line is exactly one display line so need for
33 // complex data structures.
34 return visible == 0;
37 public:
38 ContractionState();
39 virtual ~ContractionState();
41 void Clear();
43 int LinesInDoc() const;
44 int LinesDisplayed() const;
45 int DisplayFromDoc(int lineDoc) const;
46 int DisplayLastFromDoc(int lineDoc) const;
47 int DocFromDisplay(int lineDisplay) const;
49 void InsertLine(int lineDoc);
50 void InsertLines(int lineDoc, int lineCount);
51 void DeleteLine(int lineDoc);
52 void DeleteLines(int lineDoc, int lineCount);
54 bool GetVisible(int lineDoc) const;
55 bool SetVisible(int lineDocStart, int lineDocEnd, bool isVisible);
56 bool HiddenLines() const;
58 const char *GetFoldDisplayText(int lineDoc) const;
59 bool SetFoldDisplayText(int lineDoc, const char *text);
61 bool GetExpanded(int lineDoc) const;
62 bool SetExpanded(int lineDoc, bool isExpanded);
63 bool GetFoldDisplayTextShown(int lineDoc) const;
64 int ContractedNext(int lineDocStart) const;
66 int GetHeight(int lineDoc) const;
67 bool SetHeight(int lineDoc, int height);
69 void ShowAll();
70 void Check() const;
73 #ifdef SCI_NAMESPACE
75 #endif
77 #endif