diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-09-12 16:30:40 +0200 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-09-12 19:10:10 +0200 |
commit | 91eb279ecdbc8183c18d9b4d856ffadf0148250d (patch) | |
tree | f2308efba78d5eb9f155dc0121d177d97c50b375 | |
parent | e660e1ed73a6eea3f70fcb36a7bc950c57de80fe (diff) |
Revert "vcl: use DeviceCoordinate for GetCaretPositions in sallayout"
This reverts commit 1b42acdaeae134f94580d6e1eba89da16741d596.
-rw-r--r-- | include/vcl/outdev.hxx | 2 | ||||
-rw-r--r-- | vcl/README | 8 | ||||
-rw-r--r-- | vcl/inc/graphite_layout.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/graphite_serverfont.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/sallayout.hxx | 6 | ||||
-rw-r--r-- | vcl/quartz/ctlayout.cxx | 10 | ||||
-rw-r--r-- | vcl/source/gdi/sallayout.cxx | 12 | ||||
-rw-r--r-- | vcl/source/glyphs/graphite_layout.cxx | 4 | ||||
-rw-r--r-- | vcl/source/outdev/map.cxx | 25 | ||||
-rw-r--r-- | vcl/source/outdev/text.cxx | 117 | ||||
-rw-r--r-- | vcl/win/source/gdi/winlayout.cxx | 22 |
11 files changed, 48 insertions, 162 deletions
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index b05edab89343..df0cd270ed89 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -1722,8 +1722,6 @@ public: SAL_DLLPRIVATE DeviceCoordinate LogicWidthToDeviceCoordinate( long nWidth ) const; SAL_DLLPRIVATE DeviceCoordinate LogicHeightToDeviceCoordinate( long nHeight ) const; - SAL_DLLPRIVATE long DeviceCoordinateToLogicWidth(DeviceCoordinate width) const; - SAL_DLLPRIVATE long DeviceCoordinateToLogicHeight(DeviceCoordinate height) const; private: diff --git a/vcl/README b/vcl/README index c00a3e152488..65113a62dd5d 100644 --- a/vcl/README +++ b/vcl/README @@ -188,11 +188,3 @@ other programs, use the "pdfunzip" tool: LD_LIBRARY_PATH=$PWD/instdir/ure/lib workdir/LinkTarget/Executable/pdfunzip input.pdf output.pdf -=== DeviceCoordinate === - -The type DeviceCoordinate is meant to represent coordinate in the native Device space -The implementation is platform dependant. it is a scalar type, but can by int/long/float/double... -Originally such coordinate was represented with int or long... DeviceCoordinate -was introduced to allow for sub-point coordiante (iow float/double), which is -quite important when dealing with HiDPI devices. - diff --git a/vcl/inc/graphite_layout.hxx b/vcl/inc/graphite_layout.hxx index 11a9f6bc2369..32954680d054 100644 --- a/vcl/inc/graphite_layout.hxx +++ b/vcl/inc/graphite_layout.hxx @@ -127,7 +127,7 @@ public: virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const SAL_OVERRIDE; virtual void ApplyDXArray(ImplLayoutArgs &rArgs, std::vector<int> & rDeltaWidth); - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const SAL_OVERRIDE; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const SAL_OVERRIDE; // methods using glyph indexing virtual int GetNextGlyphs(int nLen, sal_GlyphId* pGlyphIdxAry, ::Point & rPos, int&, diff --git a/vcl/inc/graphite_serverfont.hxx b/vcl/inc/graphite_serverfont.hxx index 00ebfb2da1f7..0d533e00b7c2 100644 --- a/vcl/inc/graphite_serverfont.hxx +++ b/vcl/inc/graphite_serverfont.hxx @@ -80,7 +80,7 @@ public: { return maImpl.GetTextBreak(max_width, extra, factor); } - virtual void GetCaretPositions( int as, DeviceCoordinate* cxa ) const SAL_OVERRIDE + virtual void GetCaretPositions( int as, long* cxa ) const SAL_OVERRIDE { maImpl.GetCaretPositions(as, cxa); } diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index 0138f8a0912d..3a2061b6391c 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -174,7 +174,7 @@ public: virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra=0, int nFactor=1) const = 0; virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const = 0; virtual DeviceCoordinate GetTextWidth() const { return FillDXArray( NULL ); } - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const = 0; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const = 0; virtual bool IsKashidaPosValid ( int /*nCharPos*/ ) const { return true; } // i60594 // methods using glyph indexing @@ -231,7 +231,7 @@ public: virtual void DrawText( SalGraphics& ) const SAL_OVERRIDE; virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE; virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const SAL_OVERRIDE; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const SAL_OVERRIDE; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const SAL_OVERRIDE; virtual int GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIdxAry, Point& rPos, int&, DeviceCoordinate* pGlyphAdvAry, int* pCharPosAry, const PhysicalFontFace** pFallbackFonts ) const SAL_OVERRIDE; @@ -332,7 +332,7 @@ public: virtual DeviceCoordinate GetTextWidth() const SAL_OVERRIDE; virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const SAL_OVERRIDE; virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const SAL_OVERRIDE; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const SAL_OVERRIDE; // used by display layers virtual int GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIdxAry, Point& rPos, int&, diff --git a/vcl/quartz/ctlayout.cxx b/vcl/quartz/ctlayout.cxx index fb73b78b1b5d..cd9771a072e5 100644 --- a/vcl/quartz/ctlayout.cxx +++ b/vcl/quartz/ctlayout.cxx @@ -45,7 +45,7 @@ public: virtual DeviceCoordinate GetTextWidth() const SAL_OVERRIDE; virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const SAL_OVERRIDE; virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const SAL_OVERRIDE; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const SAL_OVERRIDE; virtual bool GetBoundRect( SalGraphics&, Rectangle& ) const SAL_OVERRIDE; virtual void InitFont( void) const SAL_OVERRIDE; @@ -840,7 +840,7 @@ sal_Int32 CTLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoordinate n return nIndex; } -void CTLayout::GetCaretPositions( int nMaxIndex, DeviceCoordinate* pCaretXArray ) const +void CTLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) const { DBG_ASSERT( ((nMaxIndex>0)&&!(nMaxIndex&1)), "CTLayout::GetCaretPositions() : invalid number of caret pairs requested"); @@ -848,7 +848,7 @@ void CTLayout::GetCaretPositions( int nMaxIndex, DeviceCoordinate* pCaretXArray // initialize the caret positions for( int i = 0; i < nMaxIndex; ++i ) { - pCaretXArray[ i ] = (DeviceCoordinate)-1; + pCaretXArray[ i ] = -1; } for( int n = 0; n <= mnCharCount; ++n ) { @@ -859,12 +859,12 @@ void CTLayout::GetCaretPositions( int nMaxIndex, DeviceCoordinate* pCaretXArray // update previous trailing position if( n > 0 ) - pCaretXArray[ 2*n-1 ] = (DeviceCoordinate) fPos1; + pCaretXArray[ 2*n-1 ] = lrint( fPos1 ); // update current leading position if( 2*n >= nMaxIndex ) break; - pCaretXArray[ 2*n+0 ] = (DeviceCoordinate) fPos1; + pCaretXArray[ 2*n+0 ] = lrint( fPos1 ); } } diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index a3124c443e37..c30a99af01fb 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -1247,7 +1247,7 @@ void GenericSalLayout::KashidaJustify( long nKashidaIndex, int nKashidaWidth ) } } -void GenericSalLayout::GetCaretPositions( int nMaxIndex, DeviceCoordinate* pCaretXArray ) const +void GenericSalLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) const { // initialize result array long nXPos = -1; @@ -1990,28 +1990,26 @@ DeviceCoordinate MultiSalLayout::FillDXArray( DeviceCoordinate* pCharWidths ) co return nMaxWidth; } -void MultiSalLayout::GetCaretPositions( int nMaxIndex, DeviceCoordinate* pCaretXArray ) const +void MultiSalLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) const { SalLayout& rLayout = *mpLayouts[ 0 ]; rLayout.GetCaretPositions( nMaxIndex, pCaretXArray ); if( mnLevel > 1 ) { - DeviceCoordinate* pTempPos = (DeviceCoordinate*)alloca( nMaxIndex * sizeof(DeviceCoordinate) ); + long* pTempPos = (long*)alloca( nMaxIndex * sizeof(long) ); for( int n = 1; n < mnLevel; ++n ) { mpLayouts[ n ]->GetCaretPositions( nMaxIndex, pTempPos ); double fUnitMul = mnUnitsPerPixel; fUnitMul /= mpLayouts[n]->GetUnitsPerPixel(); for( int i = 0; i < nMaxIndex; ++i ) - { if( pTempPos[i] >= 0 ) { - DeviceCoordinate w = pTempPos[i]; - w = (DeviceCoordinate)(w * fUnitMul + 0.5); + long w = pTempPos[i]; + w = static_cast<long>(w*fUnitMul + 0.5); pCaretXArray[i] = w; } - } } } } diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index 508a0db1d733..6f7cbb252ab0 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -1090,14 +1090,14 @@ void GraphiteLayout::kashidaJustify(std::vector<int>& rDeltaWidths, sal_GlyphId } -void GraphiteLayout::GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const +void GraphiteLayout::GetCaretPositions( int nArraySize, long* pCaretXArray ) const { // For each character except the last discover the caret positions // immediately before and after that character. // This is used for underlines in the GUI amongst other things. // It may be used from MultiSalLayout, in which case it must take into account // glyphs that have been moved. - std::fill(pCaretXArray, pCaretXArray + nArraySize, (DeviceCoordinate)-1); + std::fill(pCaretXArray, pCaretXArray + nArraySize, -1); // the layout method doesn't modify the layout even though it isn't // const in the interface bool bRtl = (mnLayoutFlags & SAL_LAYOUT_BIDI_RTL);//const_cast<GraphiteLayout*>(this)->maLayout.rightToLeft(); diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx index 2cea0d3886fa..396a2c471014 100644 --- a/vcl/source/outdev/map.cxx +++ b/vcl/source/outdev/map.cxx @@ -2142,31 +2142,6 @@ long Window::ImplLogicUnitToPixelY( long nY, MapUnit eUnit ) return nY; } -long OutputDevice::DeviceCoordinateToLogicWidth(DeviceCoordinate width) const -{ - if ( !mbMap ) - { - return (long)width; - } -#if VCL_FLOAT_DEVICE_PIXEL - return (long)(width / (maMapRes.mfScaleX * mnDPIX)); -#else - return ImplDevicePixelToLogicWidth(width); -#endif -} - -long OutputDevice::DeviceCoordinateToLogicHeight(DeviceCoordinate height) const -{ - if ( !mbMap ) - { - return (long)height; - } -#if VCL_FLOAT_DEVICE_PIXEL - return (long)(height / (maMapRes.mfScaleY * mnDPIY)); -#else - return ImplDevicePixelToLogicHeight(height); -#endif -} DeviceCoordinate OutputDevice::LogicWidthToDeviceCoordinate( long nWidth ) const { diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index 1dff2db44141..51117fe1c172 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -1014,7 +1014,6 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry, { pDXPixelArray = (DeviceCoordinate*)alloca(nLen * sizeof(DeviceCoordinate)); } - long nWidthRes; DeviceCoordinate nWidth = pSalLayout->FillDXArray( pDXPixelArray ); int nWidthFactor = pSalLayout->GetUnitsPerPixel(); pSalLayout->Release(); @@ -1027,41 +1026,36 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry, pDXPixelArray[ i ] += pDXPixelArray[ i-1 ]; } } - if( nWidthFactor > 1 ) + if( mbMap ) { if( pDXPixelArray ) { for( int i = 0; i < nLen; ++i ) { - pDXPixelArray[i] /= nWidthFactor; + pDXPixelArray[i] = ImplDevicePixelToLogicWidth( pDXPixelArray[i] ); } } - nWidth /= nWidthFactor; + nWidth = ImplDevicePixelToLogicWidth( nWidth ); } - if( mbMap ) + if( nWidthFactor > 1 ) { if( pDXPixelArray ) { for( int i = 0; i < nLen; ++i ) { - pDXAry[i] = DeviceCoordinateToLogicWidth( pDXPixelArray[i] ); + pDXPixelArray[i] /= nWidthFactor; } } - nWidthRes = DeviceCoordinateToLogicWidth( nWidth ); + nWidth /= nWidthFactor; } - else + if(pDXAry) { - if( pDXPixelArray ) + for( int i = 0; i < nLen; ++i ) { - for( int i = 0; i < nLen; ++i ) - { - pDXAry[i] = (long)pDXPixelArray[i]; - } + pDXAry[i] = basegfx::fround(pDXPixelArray[i]); } - nWidthRes = (long) nWidth; } - - return nWidth; + return basegfx::fround(nWidth); #else /* ! VCL_FLOAT_DEVICE_PIXEL */ @@ -1097,7 +1091,7 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry, bool OutputDevice::GetCaretPositions( const OUString& rStr, long* pCaretXArray, sal_Int32 nIndex, sal_Int32 nLen, long* pDXAry, long nLayoutWidth, - bool /* bCellBreaking */ ) const + bool bCellBreaking ) const { if( nIndex >= rStr.getLength() ) @@ -1111,121 +1105,50 @@ bool OutputDevice::GetCaretPositions( const OUString& rStr, long* pCaretXArray, if( !pSalLayout ) return false; -#if VCL_FLOAT_DEVICE_PIXEL - int nWidthFactor = pSalLayout->GetUnitsPerPixel(); - DeviceCoordinate* pDevCaretXArray = (DeviceCoordinate*)alloca(2 * nLen * sizeof(DeviceCoordinate)); - - pSalLayout->GetCaretPositions( 2*nLen, pDevCaretXArray ); - DeviceCoordinate nWidth = pSalLayout->GetTextWidth(); - pSalLayout->Release(); - - // fixup unknown caret positions - int i; - for( i = 0; i < 2 * nLen; ++i ) - { - if( pDevCaretXArray[ i ] >= 0 ) - { - break; - } - } - DeviceCoordinate nXPos = pCaretXArray[ i ]; - for( i = 0; i < 2 * nLen; ++i ) - { - if( pCaretXArray[ i ] >= 0 ) - { - nXPos = pCaretXArray[ i ]; - } - else - { - pCaretXArray[ i ] = nXPos; - } - } - if( nWidthFactor != 1 ) - { - for( i = 0; i < 2*nLen; ++i ) - { - pDevCaretXArray[i] /= nWidthFactor; - } - } - - // handle window mirroring - if( IsRTLEnabled() ) - { - for( i = 0; i < 2 * nLen; ++i ) - { - pDevCaretXArray[i] = nWidth - pDevCaretXArray[i] - 1; - } - } - - // convert from font units to logical units - if( mbMap ) - { - for( i = 0; i < 2*nLen; ++i ) - { - pCaretXArray[i] = DeviceCoordinateToLogicWidth( pDevCaretXArray[i] ); - } - } - else - { - for( i = 0; i < 2*nLen; ++i ) - { - pCaretXArray[i] = (long)pDevCaretXArray[i]; - } - } -#else int nWidthFactor = pSalLayout->GetUnitsPerPixel(); - pSalLayout->GetCaretPositions( 2*nLen, pCaretXArray ); - DeviceCoordinate nWidth = pSalLayout->GetTextWidth(); + long nWidth = pSalLayout->GetTextWidth(); pSalLayout->Release(); // fixup unknown caret positions int i; for( i = 0; i < 2 * nLen; ++i ) - { if( pCaretXArray[ i ] >= 0 ) - { break; - } - } - DeviceCoordinate nXPos = pCaretXArray[ i ]; + long nXPos = pCaretXArray[ i ]; for( i = 0; i < 2 * nLen; ++i ) { if( pCaretXArray[ i ] >= 0 ) - { nXPos = pCaretXArray[ i ]; - } else - { pCaretXArray[ i ] = nXPos; - } } // handle window mirroring if( IsRTLEnabled() ) { for( i = 0; i < 2 * nLen; ++i ) - { pCaretXArray[i] = nWidth - pCaretXArray[i] - 1; - } } // convert from font units to logical units if( mbMap ) { for( i = 0; i < 2*nLen; ++i ) - { pCaretXArray[i] = ImplDevicePixelToLogicWidth( pCaretXArray[i] ); - } } + if( nWidthFactor != 1 ) { for( i = 0; i < 2*nLen; ++i ) - { pCaretXArray[i] /= nWidthFactor; - } } -#endif + + // if requested move caret position to cell limits + if( bCellBreaking ) + { + ; // FIXME + } return true; } diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index 3c8f19e54bbf..eff3f9c0856a 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -147,7 +147,7 @@ public: virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const; virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const; // for glyph+font+script fallback virtual void MoveGlyph( int nStart, long nNewXPos ); @@ -667,9 +667,9 @@ sal_Int32 SimpleWinLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoord return -1; } -void SimpleWinLayout::GetCaretPositions( int nMaxIdx, DeviceCoordinate* pCaretXArray ) const +void SimpleWinLayout::GetCaretPositions( int nMaxIdx, long* pCaretXArray ) const { - DeviceCoordinate nXPos = mnBaseAdv; + long nXPos = mnBaseAdv; if( !mpGlyphs2Chars ) { @@ -684,13 +684,13 @@ void SimpleWinLayout::GetCaretPositions( int nMaxIdx, DeviceCoordinate* pCaretXA { int i; for( i = 0; i < nMaxIdx; ++i ) - pCaretXArray[ i ] = (DeviceCoordinate)-1; + pCaretXArray[ i ] = -1; // assign glyph positions to character positions for( i = 0; i < mnGlyphCount; ++i ) { int nCurrIdx = mpGlyphs2Chars[ i ] - mnMinCharPos; - DeviceCoordinate nXRight = nXPos + mpCharWidths[ nCurrIdx ]; + long nXRight = nXPos + mpCharWidths[ nCurrIdx ]; nCurrIdx *= 2; if( !(mpGlyphRTLFlags && mpGlyphRTLFlags[i]) ) { @@ -968,7 +968,7 @@ public: virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const; virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const; virtual bool IsKashidaPosValid ( int nCharPos ) const; // for glyph+font+script fallback @@ -2158,16 +2158,16 @@ sal_Int32 UniscribeLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoord return -1; } -void UniscribeLayout::GetCaretPositions( int nMaxIdx, DeviceCoordinate* pCaretXArray ) const +void UniscribeLayout::GetCaretPositions( int nMaxIdx, long* pCaretXArray ) const { int i; for( i = 0; i < nMaxIdx; ++i ) pCaretXArray[ i ] = -1; - DeviceCoordinate* const pGlyphPos = (DeviceCoordinate*)alloca( (mnGlyphCount+1) * sizeof(DeviceCoordinate) ); + long* const pGlyphPos = (long*)alloca( (mnGlyphCount+1) * sizeof(long) ); for( i = 0; i <= mnGlyphCount; ++i ) pGlyphPos[ i ] = -1; - DeviceCoordinate nXPos = 0; + long nXPos = 0; for( int nItem = 0; nItem < mnItemCount; ++nItem ) { const VisualItem& rVisualItem = mpVisualItems[ nItem ]; @@ -2643,7 +2643,7 @@ public: virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra=0, int nFactor=1) const SAL_OVERRIDE; virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const; - virtual void GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const; + virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const; // methods using glyph indexing virtual int GetNextGlyphs(int nLen, sal_GlyphId* pGlyphIdxAry, ::Point & rPos, int&, @@ -2787,7 +2787,7 @@ DeviceCoordinate GraphiteWinLayout::FillDXArray( DeviceCoordinate* pDXArray ) co return maImpl.FillDXArray(pDXArray); } -void GraphiteWinLayout::GetCaretPositions( int nArraySize, DeviceCoordinate* pCaretXArray ) const +void GraphiteWinLayout::GetCaretPositions( int nArraySize, long* pCaretXArray ) const { maImpl.GetCaretPositions(nArraySize, pCaretXArray); } |