aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ViewStyle.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2013-08-08 17:59:56 +1000
committerNeil <nyamatongwe@gmail.com>2013-08-08 17:59:56 +1000
commit4120b34e5c7bd5837ded943344270b2d9e26cd90 (patch)
tree40c4169086654dcabe512fa5a694fe8c0b4ab95a /src/ViewStyle.cxx
parenta899e335183da10b9ab9dc0df35aada3dc37fc68 (diff)
downloadscintilla-mirror-4120b34e5c7bd5837ded943344270b2d9e26cd90.tar.gz
Move functionality from Editor to ViewStyle.
controlCharSymbol setting moved along with calculated fields for tab width and control symbols. Use of TextSegment simplified and variables made const where possible.
Diffstat (limited to 'src/ViewStyle.cxx')
-rw-r--r--src/ViewStyle.cxx20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index 8d2a60e14..2c2ac0e66 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -131,6 +131,8 @@ ViewStyle::ViewStyle(const ViewStyle &source) {
whitespaceForeground = source.whitespaceForeground;
whitespaceBackgroundSet = source.whitespaceBackgroundSet;
whitespaceBackground = source.whitespaceBackground;
+ controlCharSymbol = source.controlCharSymbol;
+ controlCharWidth = source.controlCharWidth;
selbar = source.selbar;
selbarlight = source.selbarlight;
caretcolour = source.caretcolour;
@@ -204,6 +206,7 @@ void ViewStyle::Init(size_t stylesSize_) {
maxDescent = 1;
aveCharWidth = 8;
spaceWidth = 8;
+ tabWidth = spaceWidth * 8;
selforeset = false;
selforeground = ColourDesired(0xff, 0, 0);
@@ -225,6 +228,8 @@ void ViewStyle::Init(size_t stylesSize_) {
whitespaceForeground = ColourDesired(0, 0, 0);
whitespaceBackgroundSet = false;
whitespaceBackground = ColourDesired(0xff, 0xff, 0xff);
+ controlCharSymbol = 0; /* Draw the control characters */
+ controlCharWidth = 0;
selbar = Platform::Chrome();
selbarlight = Platform::ChromeHighlight();
styles[STYLE_LINENUMBER].fore = ColourDesired(0, 0, 0);
@@ -286,7 +291,7 @@ void ViewStyle::Init(size_t stylesSize_) {
braceBadLightIndicator = 0;
}
-void ViewStyle::Refresh(Surface &surface) {
+void ViewStyle::Refresh(Surface &surface, int tabInChars) {
for (FontMap::iterator it = fonts.begin(); it != fonts.end(); ++it) {
delete it->second;
}
@@ -332,6 +337,12 @@ void ViewStyle::Refresh(Surface &surface) {
aveCharWidth = styles[STYLE_DEFAULT].aveCharWidth;
spaceWidth = styles[STYLE_DEFAULT].spaceWidth;
+ tabWidth = spaceWidth * tabInChars;
+
+ controlCharWidth = 0.0;
+ if (controlCharSymbol >= 32) {
+ controlCharWidth = surface.WidthChar(styles[STYLE_CONTROLCHAR].font, controlCharSymbol);
+ }
fixedColumnWidth = marginInside ? leftMarginWidth : 0;
maskInLine = 0xffffffff;
@@ -409,6 +420,13 @@ void ViewStyle::CalcLargestMarkerHeight() {
}
}
+ColourDesired ViewStyle::WrapColour() const {
+ if (whitespaceForegroundSet)
+ return whitespaceForeground;
+ else
+ return styles[STYLE_DEFAULT].fore;
+}
+
void ViewStyle::AllocStyles(size_t sizeNew) {
size_t i=styles.size();
styles.resize(sizeNew);