summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2014-07-15 13:34:40 +0200
committerNorbert Thiebaud <nthiebaud@gmail.com>2014-07-15 13:34:40 +0200
commit3123ac2fcf6bf0d4e11e536b3987b454e514f6aa (patch)
treec541931ff26285d3fe0978a8ca8c74a9ab68cba8 /vcl
parent3a4e6c4673a4e4dde774d1f6267256d8d8c48e59 (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.hxx16
-rw-r--r--vcl/quartz/ctlayout.cxx56
-rw-r--r--vcl/source/outdev/text.cxx24
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 );