diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/aqua/source/gdi/atsui/salatslayout.cxx | 16 | ||||
-rw-r--r-- | vcl/coretext/ctlayout.cxx | 8 | ||||
-rw-r--r-- | vcl/inc/textlayout.hxx | 4 | ||||
-rw-r--r-- | vcl/source/edit/texteng.cxx | 4 | ||||
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 45 | ||||
-rw-r--r-- | vcl/source/gdi/sallayout.cxx | 12 | ||||
-rw-r--r-- | vcl/source/gdi/textlayout.cxx | 6 | ||||
-rw-r--r-- | vcl/source/glyphs/graphite_layout.cxx | 10 | ||||
-rw-r--r-- | vcl/win/source/gdi/winlayout.cxx | 10 |
9 files changed, 57 insertions, 58 deletions
diff --git a/vcl/aqua/source/gdi/atsui/salatslayout.cxx b/vcl/aqua/source/gdi/atsui/salatslayout.cxx index 250831cea453..801af6a55801 100644 --- a/vcl/aqua/source/gdi/atsui/salatslayout.cxx +++ b/vcl/aqua/source/gdi/atsui/salatslayout.cxx @@ -748,13 +748,13 @@ long ATSLayout::FillDXArray( sal_Int32* pDXArray ) const * * @return : string index corresponding to the suggested line break **/ -int ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const +sal_Int32 ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const { SAL_INFO("vcl.atsui.layout", "GetTextBreak(" << this << ",nMaxWidth=" << nMaxWidth << ",nCharExtra=" << nCharExtra << ",nFactor=" << nFactor << ")" ); if( !maATSULayout ) { - SAL_INFO( "vcl.atsui.layout", "GetTextBreak(): no maATSULayout, returning STRING_LEN" ); - return STRING_LEN; + SAL_INFO( "vcl.atsui.layout", "GetTextBreak(): no maATSULayout, returning -1" ); + return -1; } // the semantics of the legacy use case (nCharExtra!=0) cannot be mapped to ATSUBreakLine() @@ -762,7 +762,7 @@ int ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) cons { // prepare the measurement by layouting and measuring the un-expanded/un-condensed text if( !InitGIA() ) - return STRING_LEN; + return -1; // TODO: use a better way than by testing each the char position ATSUTextMeasurement nATSUSumWidth = 0; @@ -779,7 +779,7 @@ int ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) cons return (mnMinCharPos + i); } - return STRING_LEN; + return -1; } // get a quick overview on what could fit @@ -806,15 +806,15 @@ int ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) cons OSStatus eStatus = ATSUBreakLine( maATSULayout, mnMinCharPos, nATSUMaxWidth, false, &nBreakPos ); if( (eStatus != noErr) && (eStatus != kATSULineBreakInWord) ) - return STRING_LEN; + return -1; // the result from ATSUBreakLine() doesn't match the semantics expected by its // application layer callers from SW+SVX+I18N. Adjust the results to the expectations: // ATSU reports that everything fits even when trailing spaces would break the line - // #i89789# OOo's application layers expect STRING_LEN if everything fits + // #i89789# OOo's application layers expect -1 if everything fits if( nBreakPos >= static_cast<UniCharArrayOffset>(mnEndCharPos) ) - return STRING_LEN; + return -1; // GetTextBreak()'s callers expect it to return the "stupid visual line break". // Returning anything else result.s in subtle problems in the application layers. diff --git a/vcl/coretext/ctlayout.cxx b/vcl/coretext/ctlayout.cxx index 435c7b1b8243..b6d2c1665f27 100644 --- a/vcl/coretext/ctlayout.cxx +++ b/vcl/coretext/ctlayout.cxx @@ -397,19 +397,19 @@ long CTLayout::FillDXArray( sal_Int32* pDXArray ) const return nPixWidth; } -int CTLayout::GetTextBreak( long nMaxWidth, long /*nCharExtra*/, int nFactor ) const +sal_Int32 CTLayout::GetTextBreak( long nMaxWidth, long /*nCharExtra*/, int nFactor ) const { if( !mpCTLine ) - return STRING_LEN; + return -1; CTTypesetterRef aCTTypeSetter = CTTypesetterCreateWithAttributedString( mpAttrString ); const double fCTMaxWidth = (double)nMaxWidth / nFactor; CFIndex nIndex = CTTypesetterSuggestClusterBreak( aCTTypeSetter, 0, fCTMaxWidth ); if( nIndex >= mnCharCount ) - return STRING_LEN; + return -1; nIndex += mnMinCharPos; - return (int)nIndex; + return nIndex; } void CTLayout::GetCaretPositions( int nMaxIndex, sal_Int32* pCaretXArray ) const diff --git a/vcl/inc/textlayout.hxx b/vcl/inc/textlayout.hxx index 541fcf4587b1..d16d2499f9ff 100644 --- a/vcl/inc/textlayout.hxx +++ b/vcl/inc/textlayout.hxx @@ -42,7 +42,7 @@ namespace vcl virtual void DrawText( const Point& _rStartPoint, const OUString& _rText, sal_Int32 _nStartIndex, sal_Int32 _nLength, MetricVector* _pVector, OUString* _pDisplayText ) = 0; virtual bool GetCaretPositions( const OUString& _rText, sal_Int32* _pCaretXArray, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const = 0; - virtual xub_StrLen GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const = 0; + virtual sal_Int32 GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const = 0; virtual bool DecomposeTextRectAction() const = 0; protected: @@ -84,7 +84,7 @@ namespace vcl sal_Int32 _nStartIndex, sal_Int32 _nLength ) const; - virtual xub_StrLen GetTextBreak( + virtual sal_Int32 GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx index 3710fbf5ef52..2a4a9fca390d 100644 --- a/vcl/source/edit/texteng.cxx +++ b/vcl/source/edit/texteng.cxx @@ -1145,7 +1145,7 @@ sal_uInt16 TextEngine::GetCharPos( sal_uLong nPortion, sal_uInt16 nLine, long nX if ( IsRightToLeft() != pTextPortion->IsRightToLeft() ) nPosInPortion = pTextPortion->GetWidth() - nPosInPortion; nCurIndex = mpRefDev->GetTextBreak( pPortion->GetNode()->GetText(), nPosInPortion, nCurIndex ); - // MT: GetTextBreak should assure that we are not withing a CTL cell... + // MT: GetTextBreak should assure that we are not within a CTL cell... } return nCurIndex; } @@ -1688,7 +1688,7 @@ void TextEngine::ImpBreakLine( sal_uLong nPara, TextLine* pLine, TETextPortion*, DBG_ASSERT( nMaxBreakPos < pNode->GetText().getLength(), "ImpBreakLine: Break?!" ); - if ( nMaxBreakPos == STRING_LEN ) // GetTextBreak() != GetTextSize() + if ( nMaxBreakPos == -1 ) // GetTextBreak() != GetTextSize() nMaxBreakPos = pNode->GetText().getLength() - 1; uno::Reference < i18n::XBreakIterator > xBI = GetBreakIterator(); diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 0ad69cf43684..dc39598df9a8 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -4705,12 +4705,12 @@ long OutputDevice::ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, if ( xBI.is() ) { const com::sun::star::lang::Locale& rDefLocale(Application::GetSettings().GetUILanguageTag().getLocale()); - xub_StrLen nSoftBreak = _rLayout.GetTextBreak( rStr, nWidth, nPos, nBreakPos - nPos ); + sal_Int32 nSoftBreak = _rLayout.GetTextBreak( rStr, nWidth, nPos, nBreakPos - nPos ); DBG_ASSERT( nSoftBreak < nBreakPos, "Break?!" ); i18n::LineBreakHyphenationOptions aHyphOptions( xHyph, uno::Sequence <beans::PropertyValue>(), 1 ); i18n::LineBreakUserOptions aUserOptions; i18n::LineBreakResults aLBR = xBI->getLineBreak( rStr, nSoftBreak, rDefLocale, nPos, aHyphOptions, aUserOptions ); - nBreakPos = (xub_StrLen)aLBR.breakIndex; + nBreakPos = aLBR.breakIndex; if ( nBreakPos <= nPos ) nBreakPos = nSoftBreak; if ( bHyphenate ) @@ -4728,7 +4728,7 @@ long OutputDevice::ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, sal_Unicode cAlternateReplChar = 0; i18n::Boundary aBoundary = xBI->getWordBoundary( rStr, nBreakPos, rDefLocale, ::com::sun::star::i18n::WordType::DICTIONARY_WORD, sal_True ); sal_Int32 nWordStart = nPos; - sal_Int32 nWordEnd = (sal_Int32) aBoundary.endPos; + sal_Int32 nWordEnd = aBoundary.endPos; DBG_ASSERT( nWordEnd > nWordStart, "ImpBreakLine: Start >= End?" ); sal_Int32 nWordLen = nWordEnd - nWordStart; @@ -4737,14 +4737,14 @@ long OutputDevice::ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, // #104415# May happen, because getLineBreak may differ from getWordBoudary with DICTIONARY_WORD // DBG_ASSERT( nWordEnd >= nMaxBreakPos, "Hyph: Break?" ); OUString aWord = rStr.copy( nWordStart, nWordLen ); - sal_uInt16 nMinTrail = static_cast<sal_uInt16>(nWordEnd-nSoftBreak+1); //+1: Before the "broken off" char + sal_Int32 nMinTrail = nWordEnd-nSoftBreak+1; //+1: Before the "broken off" char uno::Reference< linguistic2::XHyphenatedWord > xHyphWord; if (xHyph.is()) xHyphWord = xHyph->hyphenate( aWord, rDefLocale, aWord.getLength() - nMinTrail, uno::Sequence< beans::PropertyValue >() ); if (xHyphWord.is()) { sal_Bool bAlternate = xHyphWord->isAlternativeSpelling(); - sal_uInt16 _nWordLen = 1 + xHyphWord->getHyphenPos(); + sal_Int32 _nWordLen = 1 + xHyphWord->getHyphenPos(); if ( ( _nWordLen >= 2 ) && ( (nWordStart+_nWordLen) >= ( 2 ) ) ) { @@ -4770,10 +4770,10 @@ long OutputDevice::ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, // index. // TODO: The whole junk will be made easier by a function in // the Hyphenator, as soon as AMA adds it. - sal_uInt16 nAltStart = _nWordLen - 1; - sal_uInt16 nTxtStart = nAltStart - (aAlt.getLength() - aWord.getLength()); - sal_uInt16 nTxtEnd = nTxtStart; - sal_uInt16 nAltEnd = nAltStart; + sal_Int32 nAltStart = _nWordLen - 1; + sal_Int32 nTxtStart = nAltStart - (aAlt.getLength() - aWord.getLength()); + sal_Int32 nTxtEnd = nTxtStart; + sal_Int32 nAltEnd = nAltStart; // The area between nStart and nEnd is the difference // between AlternativString and OriginalString @@ -5993,14 +5993,14 @@ sal_Bool OutputDevice::GetTextIsRTL( const OUString& rString, sal_Int32 nIndex, return (nCharPos != nIndex) ? sal_True : sal_False; } -xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, +sal_Int32 OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, sal_Int32 nIndex, sal_Int32 nLen, long nCharExtra ) const { DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice ); SalLayout* pSalLayout = ImplLayout( rStr, nIndex, nLen ); - xub_StrLen nRetVal = STRING_LEN; + sal_Int32 nRetVal = -1; if( pSalLayout ) { // convert logical widths into layout units @@ -6017,7 +6017,7 @@ xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, nCharExtra *= nWidthFactor * nSubPixelFactor; nExtraPixelWidth = ImplLogicWidthToDevicePixel( nCharExtra ); } - nRetVal = sal::static_int_cast<xub_StrLen>(pSalLayout->GetTextBreak( nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor )); + nRetVal = pSalLayout->GetTextBreak( nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor ); pSalLayout->Release(); } @@ -6025,18 +6025,18 @@ xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, return nRetVal; } -xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, +sal_Int32 OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, sal_Unicode nHyphenatorChar, sal_Int32& rHyphenatorPos, sal_Int32 nIndex, sal_Int32 nLen, long nCharExtra ) const { DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice ); - rHyphenatorPos = STRING_LEN; + rHyphenatorPos = -1; SalLayout* pSalLayout = ImplLayout( rStr, nIndex, nLen ); if( !pSalLayout ) - return STRING_LEN; + return -1; // convert logical widths into layout units // NOTE: be very careful to avoid rounding errors for nCharExtra case @@ -6055,7 +6055,7 @@ xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, } // calculate un-hyphenated break position - xub_StrLen nRetVal = sal::static_int_cast<xub_StrLen>(pSalLayout->GetTextBreak( nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor )); + sal_Int32 nRetVal = pSalLayout->GetTextBreak( nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor ); // calculate hyphenated break position OUString aHyphenatorStr(nHyphenatorChar); @@ -6072,14 +6072,11 @@ xub_StrLen OutputDevice::GetTextBreak( const OUString& rStr, long nTextWidth, if( nExtraPixelWidth > 0 ) nTextPixelWidth -= nExtraPixelWidth; - // why does this return "int" and use STRING_LEN for errors??? - xub_StrLen nTmp = sal::static_int_cast<xub_StrLen>( - pSalLayout->GetTextBreak(nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor)); - - nTmp = std::min(nTmp, nRetVal); + rHyphenatorPos = + pSalLayout->GetTextBreak(nTextPixelWidth, nExtraPixelWidth, nSubPixelFactor); - // TODO: remove nTmp when GetTextBreak sal_Int32 - rHyphenatorPos = (nTmp == STRING_LEN) ? -1 : nTmp; + if( rHyphenatorPos > nRetVal ) + rHyphenatorPos = nRetVal; } pSalLayout->Release(); @@ -6574,7 +6571,7 @@ OUString OutputDevice::ImplGetEllipsisString( const OutputDevice& rTargetDevice, OUString aStr = rOrigStr; sal_Int32 nIndex = _rLayout.GetTextBreak( aStr, nMaxWidth, 0, aStr.getLength() ); - if ( nIndex != STRING_LEN ) + if ( nIndex != -1 ) { if( (nStyle & TEXT_DRAW_CENTERELLIPSIS) == TEXT_DRAW_CENTERELLIPSIS ) { diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index 450ec2325731..5bd27fa6646b 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -1351,12 +1351,12 @@ void GenericSalLayout::GetCaretPositions( int nMaxIndex, sal_Int32* pCaretXArray // ----------------------------------------------------------------------- -int GenericSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const +sal_Int32 GenericSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const { int nCharCapacity = mnEndCharPos - mnMinCharPos; sal_Int32* pCharWidths = (sal_Int32*)alloca( nCharCapacity * sizeof(sal_Int32) ); if( !GetCharWidths( pCharWidths ) ) - return STRING_LEN; + return -1; long nWidth = 0; for( int i = mnMinCharPos; i < mnEndCharPos; ++i ) @@ -1367,7 +1367,7 @@ int GenericSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor nWidth += nCharExtra; } - return STRING_LEN; + return -1; } // ----------------------------------------------------------------------- @@ -2003,10 +2003,10 @@ void MultiSalLayout::DrawText( SalGraphics& rGraphics ) const // ----------------------------------------------------------------------- -int MultiSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const +sal_Int32 MultiSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const { if( mnLevel <= 0 ) - return STRING_LEN; + return -1; if( mnLevel == 1 ) return mpLayouts[0]->GetTextBreak( nMaxWidth, nCharExtra, nFactor ); @@ -2037,7 +2037,7 @@ int MultiSalLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) nWidth += nCharExtra; } - return STRING_LEN; + return -1; } // ----------------------------------------------------------------------- diff --git a/vcl/source/gdi/textlayout.cxx b/vcl/source/gdi/textlayout.cxx index ba2cfb5b89c3..5e7529900683 100644 --- a/vcl/source/gdi/textlayout.cxx +++ b/vcl/source/gdi/textlayout.cxx @@ -60,7 +60,7 @@ namespace vcl return m_rTargetDevice.GetCaretPositions( _rText, _pCaretXArray, _nStartIndex, _nLength ); } - xub_StrLen DefaultTextLayout::GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const + sal_Int32 DefaultTextLayout::GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const { return m_rTargetDevice.GetTextBreak( _rText, _nMaxTextWidth, _nStartIndex, _nLength ); } @@ -80,7 +80,7 @@ namespace vcl virtual long GetTextWidth( const OUString& rStr, sal_Int32 nIndex, sal_Int32 nLen ) const; virtual void DrawText( const Point& _rStartPoint, const OUString& _rText, sal_Int32 _nStartIndex, sal_Int32 _nLength, MetricVector* _pVector, OUString* _pDisplayText ); virtual bool GetCaretPositions( const OUString& _rText, sal_Int32* _pCaretXArray, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const; - virtual xub_StrLen GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const; + virtual sal_Int32 GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const; virtual bool DecomposeTextRectAction() const; public: @@ -243,7 +243,7 @@ namespace vcl return true; } - xub_StrLen ReferenceDeviceTextLayout::GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const + sal_Int32 ReferenceDeviceTextLayout::GetTextBreak( const OUString& _rText, long _nMaxTextWidth, sal_Int32 _nStartIndex, sal_Int32 _nLength ) const { if ( !lcl_normalizeLength( _rText, _nStartIndex, _nLength ) ) return 0; diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index 348c4e36cbcc..b4498cf1d739 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -680,7 +680,7 @@ bool GraphiteLayout::LayoutGlyphs(ImplLayoutArgs& rArgs, gr_segment * pSegment) return true; } -int GraphiteLayout::GetTextBreak(long maxmnWidth, long char_extra, int factor) const +sal_Int32 GraphiteLayout::GetTextBreak(long maxmnWidth, long char_extra, int factor) const { #ifdef GRLAYOUT_DEBUG fprintf(grLog(),"Gr::GetTextBreak c[%d-%d) maxWidth %ld char extra %ld factor %d\n", @@ -689,7 +689,7 @@ int GraphiteLayout::GetTextBreak(long maxmnWidth, long char_extra, int factor) c // return quickly if this segment is narrower than the target width if (maxmnWidth > mnWidth * factor + char_extra * (mnEndCharPos - mnMinCharPos - 1)) - return STRING_LEN; + return -1; long nWidth = mvCharDxs[0] * factor; long wLastBreak = 0; @@ -724,8 +724,10 @@ int GraphiteLayout::GetTextBreak(long maxmnWidth, long char_extra, int factor) c fprintf(grLog(), "Gr::GetTextBreak break after %d, weights(%d, %d)\n", nBreak - mnMinCharPos, mvCharBreaks[nBreak - mnMinCharPos], mvCharBreaks[nBreak - mnMinCharPos - 1]); #endif - if (nBreak > mnEndCharPos) nBreak = STRING_LEN; - else if (nBreak < mnMinCharPos) nBreak = mnMinCharPos; + if (nBreak > mnEndCharPos) + nBreak = -1; + else if (nBreak < mnMinCharPos) + nBreak = mnMinCharPos; return nBreak; } diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index f240f17e68a5..a0f1ec4660b6 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -669,12 +669,12 @@ long SimpleWinLayout::FillDXArray( long* pDXArray ) const // ----------------------------------------------------------------------- -int SimpleWinLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const +sal_Int32 SimpleWinLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const // NOTE: the nFactor is used to prevent rounding errors for small nCharExtra values { if( mnWidth ) if( (mnWidth * nFactor + mnCharCount * nCharExtra) <= nMaxWidth ) - return STRING_LEN; + return -1; long nExtraWidth = mnBaseAdv * nFactor; for( int n = 0; n < mnCharCount; ++n ) @@ -689,7 +689,7 @@ int SimpleWinLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor nExtraWidth += nCharExtra; } - return STRING_LEN; + return -1; } // ----------------------------------------------------------------------- @@ -2182,7 +2182,7 @@ long UniscribeLayout::FillDXArray( long* pDXArray ) const // ----------------------------------------------------------------------- -int UniscribeLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const +sal_Int32 UniscribeLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const { long nWidth = 0; for( int i = mnMinCharPos; i < mnEndCharPos; ++i ) @@ -2222,7 +2222,7 @@ int UniscribeLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor } // the whole layout did fit inside the nMaxWidth - return STRING_LEN; + return -1; } // ----------------------------------------------------------------------- |