diff options
author | Neil <nyamatongwe@gmail.com> | 2018-05-30 13:49:50 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2018-05-30 13:49:50 +1000 |
commit | d5deb0bf992e06645983ed7e081e2646fc304b86 (patch) | |
tree | f4a86002cceb5a02cc61fb907153ee135a07d3c8 /src | |
parent | 5d4ab626a50baab56084cbc61510280ddae174a6 (diff) | |
download | scintilla-mirror-d5deb0bf992e06645983ed7e081e2646fc304b86.tar.gz |
Add TabPositionAfter method to IScreenLine as this calculation is needed on each
platform and it allows extension to custom tab stops.
Diffstat (limited to 'src')
-rw-r--r-- | src/PositionCache.cxx | 4 | ||||
-rw-r--r-- | src/PositionCache.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index 44f9caa0c..599a697db 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -346,6 +346,10 @@ XYPOSITION ScreenLine::RepresentationWidth(size_t position) const { return ll->bidiData->widthReprs[start + position]; } +XYPOSITION ScreenLine::TabPositionAfter(XYPOSITION xPosition) const { + return (floor((xPosition + TabWidthMinimumPixels()) / TabWidth()) + 1) * TabWidth(); +} + LineLayoutCache::LineLayoutCache() : level(0), allInvalidated(false), styleClock(-1), useCount(0) { diff --git a/src/PositionCache.h b/src/PositionCache.h index 5657b667c..1723e0b2f 100644 --- a/src/PositionCache.h +++ b/src/PositionCache.h @@ -142,6 +142,7 @@ struct ScreenLine : public IScreenLine { XYPOSITION TabWidthMinimumPixels() const override; const Font *FontOfPosition(size_t position) const override; XYPOSITION RepresentationWidth(size_t position) const override; + XYPOSITION TabPositionAfter(XYPOSITION xPosition) const override; }; /** |