diff options
| author | nyamatongwe <unknown> | 2011-08-02 11:24:48 +1000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2011-08-02 11:24:48 +1000 | 
| commit | d689117719f2cec9c74aec96cfc59700e1421957 (patch) | |
| tree | b754cde255f0e8b18d577a656d48bd00b0ad7424 /src/PositionCache.cxx | |
| parent | 39493b4121ff1eb9c723363f3c94ee6daaeeaaae (diff) | |
| download | scintilla-mirror-d689117719f2cec9c74aec96cfc59700e1421957.tar.gz | |
Allow floating point text positioning.
Diffstat (limited to 'src/PositionCache.cxx')
| -rw-r--r-- | src/PositionCache.cxx | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index 2105c292f..614e6b8bf 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -86,7 +86,7 @@ void LineLayout::Resize(int maxLineLength_) {  		indicators = new char[maxLineLength_ + 1];  		// Extra position allocated as sometimes the Windows  		// GetTextExtentExPoint API writes an extra element. -		positions = new int[maxLineLength_ + 1 + 1]; +		positions = new XYPOSITION[maxLineLength_ + 1 + 1];  		maxLineLength = maxLineLength_;  	}  } @@ -503,15 +503,15 @@ PositionCacheEntry::PositionCacheEntry() :  }  void PositionCacheEntry::Set(unsigned int styleNumber_, const char *s_, -	unsigned int len_, int *positions_, unsigned int clock_) { +	unsigned int len_, XYPOSITION *positions_, unsigned int clock_) {  	Clear();  	styleNumber = styleNumber_;  	len = len_;  	clock = clock_;  	if (s_ && positions_) { -		positions = new short[len + (len + 1) / 2]; +		positions = new XYPOSITION[len + (len + 1) / 2];  		for (unsigned int i=0; i<len; i++) { -			positions[i] = static_cast<short>(positions_[i]); +			positions[i] = static_cast<XYPOSITION>(positions_[i]);  		}  		memcpy(reinterpret_cast<char *>(positions + len), s_, len);  	} @@ -530,7 +530,7 @@ void PositionCacheEntry::Clear() {  }  bool PositionCacheEntry::Retrieve(unsigned int styleNumber_, const char *s_, -	unsigned int len_, int *positions_) const { +	unsigned int len_, XYPOSITION *positions_) const {  	if ((styleNumber == styleNumber_) && (len == len_) &&  		(memcmp(reinterpret_cast<char *>(positions + len), s_, len)== 0)) {  		for (unsigned int i=0; i<len; i++) { @@ -595,7 +595,7 @@ void PositionCache::SetSize(size_t size_) {  }  void PositionCache::MeasureWidths(Surface *surface, ViewStyle &vstyle, unsigned int styleNumber, -	const char *s, unsigned int len, int *positions, Document *pdoc) { +	const char *s, unsigned int len, XYPOSITION *positions, Document *pdoc) {  	allClear = false;  	int probe = -1; @@ -621,7 +621,7 @@ void PositionCache::MeasureWidths(Surface *surface, ViewStyle &vstyle, unsigned  	if (len > BreakFinder::lengthStartSubdivision) {  		// Break up into segments  		unsigned int startSegment = 0; -		int xStartSegment = 0; +		XYPOSITION xStartSegment = 0;  		while (startSegment < len) {  			unsigned int lenSegment = pdoc->SafeSegment(s + startSegment, len - startSegment, BreakFinder::lengthEachSubdivision);  			surface->MeasureWidths(vstyle.styles[styleNumber].font, s + startSegment, lenSegment, positions + startSegment);  | 
