diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-07-15 13:34:40 +0200 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-07-15 13:34:40 +0200 |
commit | 3123ac2fcf6bf0d4e11e536b3987b454e514f6aa (patch) | |
tree | c541931ff26285d3fe0978a8ca8c74a9ab68cba8 /vcl | |
parent | 3a4e6c4673a4e4dde774d1f6267256d8d8c48e59 (diff) |
Revert "fdo#79673 quartz: draw 'bullet' for 'space' directly in one pass"
This reverts commit 36ff78d83b6a012d2a2c8ef2c6d8f0db62ecffc9.
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/sallayout.hxx | 16 | ||||
-rw-r--r-- | vcl/quartz/ctlayout.cxx | 56 | ||||
-rw-r--r-- | vcl/source/outdev/text.cxx | 24 |
3 files changed, 25 insertions, 71 deletions
diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index d191a38417cf..03f314fe1c87 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -40,6 +40,19 @@ typedef unsigned short LanguageType; class SalGraphics; class PhysicalFontFace; +// Layout options +#define SAL_LAYOUT_BIDI_RTL 0x0001 +#define SAL_LAYOUT_BIDI_STRONG 0x0002 +#define SAL_LAYOUT_RIGHT_ALIGN 0x0004 +#define SAL_LAYOUT_KERNING_PAIRS 0x0010 +#define SAL_LAYOUT_KERNING_ASIAN 0x0020 +#define SAL_LAYOUT_VERTICAL 0x0040 +#define SAL_LAYOUT_COMPLEX_DISABLED 0x0100 +#define SAL_LAYOUT_ENABLE_LIGATURES 0x0200 +#define SAL_LAYOUT_SUBSTITUTE_DIGITS 0x0400 +#define SAL_LAYOUT_KASHIDA_JUSTIFICATON 0x0800 +#define SAL_LAYOUT_DISABLE_GLYPH_PROCESSING 0x1000 +#define SAL_LAYOUT_FOR_FALLBACK 0x2000 // used for managing runs e.g. for BiDi, glyph and script fallback class VCL_PLUGIN_PUBLIC ImplLayoutRuns @@ -86,8 +99,7 @@ public: public: ImplLayoutArgs( const sal_Unicode* pStr, int nLength, - int nMinCharPos, int nEndCharPos, int nFlags, - const LanguageTag& rLanguageTag ); + int nMinCharPos, int nEndCharPos, int nFlags, const LanguageTag& rLanguageTag ); void SetLayoutWidth( long nWidth ) { mnLayoutWidth = nWidth; } void SetDXArray( const sal_Int32* pDXArray ) { mpDXArray = pDXArray; } diff --git a/vcl/quartz/ctlayout.cxx b/vcl/quartz/ctlayout.cxx index 91af578ab2eb..f0cdc8a0b64a 100644 --- a/vcl/quartz/ctlayout.cxx +++ b/vcl/quartz/ctlayout.cxx @@ -361,62 +361,6 @@ void CTLayout::drawCTLine(AquaSalGraphics& rAquaGraphics, CTLineRef ctline, cons // draw the text CTLineDraw( ctline, rAquaGraphics.mrContext ); - if(mnLayoutFlags & SAL_LAYOUT_DRAW_BULLET) - { - CFArrayRef runArray = CTLineGetGlyphRuns(ctline); - CFIndex runCount = CFArrayGetCount(runArray); - - CFIndex runIndex = 0; - CTLineRef ctlinebullet = 0; - OUString sBullet((sal_Unicode)0xb7); // centered bullet - - for (; runIndex < runCount; runIndex++) - { - - CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runArray, runIndex); - CFIndex runGlyphCount = CTRunGetGlyphCount(run); - - CGPoint position; - CFIndex runGlyphIndex = 0; - CFIndex stringIndice = 0; - - for (; runGlyphIndex < runGlyphCount; runGlyphIndex++) - { - CFRange glyphRange = CFRangeMake(runGlyphIndex, 1); - - CTRunGetStringIndices( run, glyphRange, &stringIndice ); - UniChar curChar = CFStringGetCharacterAtIndex (CFAttributedStringGetString(mpAttrString), stringIndice); - if(curChar == ' ') - { - CTRunGetPositions(run, glyphRange, &position); - // print a dot - if(!ctlinebullet) - { - CFStringRef aCFText = CFStringCreateWithCharactersNoCopy( NULL, - sBullet.getStr(), - 1, - kCFAllocatorNull ); - // CFAttributedStringCreate copies the attribues parameter - CFAttributedStringRef bulletAttrString = CFAttributedStringCreate( NULL, aCFText, mpTextStyle->GetStyleDict() ); - ctlinebullet = CTLineCreateWithAttributedString( bulletAttrString ); - CFRelease( aCFText); - CFRelease( bulletAttrString); - RGBAColor bulletColor(MAKE_SALCOLOR(0x6A, 0xBE, 0xD3 )); // NON_PRINTING_CHARACTER_COLOR - CGContextSetFillColor( rAquaGraphics.mrContext, bulletColor.AsArray() ); - } - CGContextSetTextPosition( rAquaGraphics.mrContext, aTextPos.x + position.x, position.y + aTextPos.y ); - CTLineDraw(ctlinebullet, rAquaGraphics.mrContext); - } - } - } - if(ctlinebullet) - { - CFRelease(ctlinebullet); - } - } - -//#endif - // restore the original graphic context transformations CGContextRestoreGState( rAquaGraphics.mrContext ); } diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index a492d3a0ddb9..b7bb028d2963 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -280,8 +280,6 @@ bool OutputDevice::ImplDrawRotateText( SalLayout& rSalLayout ) } bool OutputDevice::ImplDrawTextDirect( SalLayout& rSalLayout, bool bTextLines, sal_uInt32 flags ) - bool bTextLines, - sal_uInt32 flags ) { if( mpFontEntry->mnOwnOrientation ) if( ImplDrawRotateText( rSalLayout ) ) @@ -940,7 +938,7 @@ float OutputDevice::approximate_char_width() const void OutputDevice::DrawTextArray( const Point& rStartPt, const OUString& rStr, const sal_Int32* pDXAry, - sal_Int32 nIndex, sal_Int32 nLen, int flags ) + sal_Int32 nIndex, sal_Int32 nLen ) { if(nLen == 0x0FFFF) { @@ -963,7 +961,7 @@ void OutputDevice::DrawTextArray( const Point& rStartPt, const OUString& rStr, if( mbOutputClipped ) return; - SalLayout* pSalLayout = ImplLayout(rStr, nIndex, nLen, rStartPt, 0, pDXAry, flags); + SalLayout* pSalLayout = ImplLayout(rStr, nIndex, nLen, rStartPt, 0, pDXAry); if( pSalLayout ) { ImplDrawText( *pSalLayout ); @@ -971,7 +969,7 @@ void OutputDevice::DrawTextArray( const Point& rStartPt, const OUString& rStr, } if( mpAlphaVDev ) - mpAlphaVDev->DrawTextArray( rStartPt, rStr, pDXAry, nIndex, nLen, flags ); + mpAlphaVDev->DrawTextArray( rStartPt, rStr, pDXAry, nIndex, nLen ); } long OutputDevice::GetTextArray( const OUString& rStr, sal_Int32* pDXAry, @@ -1091,7 +1089,7 @@ bool OutputDevice::GetCaretPositions( const OUString& rStr, sal_Int32* pCaretXAr void OutputDevice::DrawStretchText( const Point& rStartPt, sal_uLong nWidth, const OUString& rStr, - sal_Int32 nIndex, sal_Int32 nLen) + sal_Int32 nIndex, sal_Int32 nLen ) { if(nIndex < 0 || nIndex == 0x0FFFF || nLen == 0x0FFFF) { @@ -1121,9 +1119,8 @@ void OutputDevice::DrawStretchText( const Point& rStartPt, sal_uLong nWidth, } ImplLayoutArgs OutputDevice::ImplPrepareLayoutArgs( OUString& rStr, - const sal_Int32 nMinIndex, const sal_Int32 nLen, - long nPixelWidth, const sal_Int32* pDXArray, - int nLayoutFlags ) const + const sal_Int32 nMinIndex, const sal_Int32 nLen, + long nPixelWidth, const sal_Int32* pDXArray ) const { assert(nMinIndex >= 0); assert(nLen >= 0); @@ -1137,6 +1134,7 @@ ImplLayoutArgs OutputDevice::ImplPrepareLayoutArgs( OUString& rStr, if( nEndIndex < nMinIndex ) nEndIndex = nMinIndex; + int nLayoutFlags = 0; if( mnTextLayoutMode & TEXT_LAYOUT_BIDI_RTL ) nLayoutFlags |= SAL_LAYOUT_BIDI_RTL; if( mnTextLayoutMode & TEXT_LAYOUT_BIDI_STRONG ) @@ -1234,9 +1232,9 @@ ImplLayoutArgs OutputDevice::ImplPrepareLayoutArgs( OUString& rStr, } SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr, - sal_Int32 nMinIndex, sal_Int32 nLen, - const Point& rLogicalPos, long nLogicalWidth, - const sal_Int32* pDXArray, int flags) const + sal_Int32 nMinIndex, sal_Int32 nLen, + const Point& rLogicalPos, long nLogicalWidth, + const sal_Int32* pDXArray) const { // we need a graphics if( !mpGraphics ) @@ -1282,7 +1280,7 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr, pDXArray = pTempDXAry; } - ImplLayoutArgs aLayoutArgs = ImplPrepareLayoutArgs( aStr, nMinIndex, nLen, nPixelWidth, pDXArray, flags); + ImplLayoutArgs aLayoutArgs = ImplPrepareLayoutArgs( aStr, nMinIndex, nLen, nPixelWidth, pDXArray ); // get matching layout object for base font SalLayout* pSalLayout = mpGraphics->GetTextLayout( aLayoutArgs, 0 ); |