]> git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/src/ViewStyle.h
Make SaveFile and LoadFile virtual so they can be overridden
[wxWidgets.git] / src / stc / scintilla / src / ViewStyle.h
1 // Scintilla source code edit control
2 /** @file ViewStyle.h
3 ** Store information on how the document is to be viewed.
4 **/
5 // Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
7
8 #ifndef VIEWSTYLE_H
9 #define VIEWSTYLE_H
10
11 /**
12 */
13 class MarginStyle {
14 public:
15 int style;
16 int width;
17 int mask;
18 bool sensitive;
19 MarginStyle();
20 };
21
22 /**
23 */
24 class FontNames {
25 private:
26 char *names[STYLE_MAX + 1];
27 int max;
28
29 public:
30 FontNames();
31 ~FontNames();
32 void Clear();
33 const char *Save(const char *name);
34 };
35
36 enum WhiteSpaceVisibility {wsInvisible=0, wsVisibleAlways=1, wsVisibleAfterIndent=2};
37
38 /**
39 */
40 class ViewStyle {
41 public:
42 FontNames fontNames;
43 Style styles[STYLE_MAX + 1];
44 LineMarker markers[MARKER_MAX + 1];
45 Indicator indicators[INDIC_MAX + 1];
46 int lineHeight;
47 unsigned int maxAscent;
48 unsigned int maxDescent;
49 unsigned int aveCharWidth;
50 unsigned int spaceWidth;
51 bool selforeset;
52 ColourPair selforeground;
53 bool selbackset;
54 ColourPair selbackground;
55 ColourPair selbackground2;
56 int selAlpha;
57 bool whitespaceForegroundSet;
58 ColourPair whitespaceForeground;
59 bool whitespaceBackgroundSet;
60 ColourPair whitespaceBackground;
61 ColourPair selbar;
62 ColourPair selbarlight;
63 bool foldmarginColourSet;
64 ColourPair foldmarginColour;
65 bool foldmarginHighlightColourSet;
66 ColourPair foldmarginHighlightColour;
67 bool hotspotForegroundSet;
68 ColourPair hotspotForeground;
69 bool hotspotBackgroundSet;
70 ColourPair hotspotBackground;
71 bool hotspotUnderline;
72 bool hotspotSingleLine;
73 /// Margins are ordered: Line Numbers, Selection Margin, Spacing Margin
74 enum { margins=5 };
75 int leftMarginWidth; ///< Spacing margin on left of text
76 int rightMarginWidth; ///< Spacing margin on left of text
77 bool symbolMargin;
78 int maskInLine; ///< Mask for markers to be put into text because there is nowhere for them to go in margin
79 MarginStyle ms[margins];
80 int fixedColumnWidth;
81 int zoomLevel;
82 WhiteSpaceVisibility viewWhitespace;
83 bool viewIndentationGuides;
84 bool viewEOL;
85 bool showMarkedLines;
86 ColourPair caretcolour;
87 bool showCaretLineBackground;
88 ColourPair caretLineBackground;
89 int caretLineAlpha;
90 ColourPair edgecolour;
91 int edgeState;
92 int caretWidth;
93 bool someStylesProtected;
94 bool extraFontFlag;
95
96 ViewStyle();
97 ViewStyle(const ViewStyle &source);
98 ~ViewStyle();
99 void Init();
100 void RefreshColourPalette(Palette &pal, bool want);
101 void Refresh(Surface &surface);
102 void ResetDefaultStyle();
103 void ClearStyles();
104 void SetStyleFontName(int styleIndex, const char *name);
105 bool ProtectionActive() const;
106 };
107
108 #endif