INTEGRATION: CWS canvas05 (1.23.6); FILE MERGED
2008/04/21 07:50:08 thb 1.23.6.4: RESYNC: (1.23-1.24); FILE MERGED 2008/04/15 15:04:55 thb 1.23.6.3: #i66425# Fixing missing strikeout text feature in slideshow. fix courtesy liujl. 2007/12/20 16:42:53 thb 1.23.6.2: #i84784# Fixes to polygon output + enhancements for gradients kindly provided by rodo 2007/10/01 13:41:44 thb 1.23.6.1: #i79258# Merge from CWS picom
This commit is contained in:
parent
2dbf473cf6
commit
4e6375b887
@ -7,7 +7,7 @@
|
|||||||
* OpenOffice.org - a multi-platform office productivity suite
|
* OpenOffice.org - a multi-platform office productivity suite
|
||||||
*
|
*
|
||||||
* $RCSfile: implrenderer.cxx,v $
|
* $RCSfile: implrenderer.cxx,v $
|
||||||
* $Revision: 1.24 $
|
* $Revision: 1.25 $
|
||||||
*
|
*
|
||||||
* This file is part of OpenOffice.org.
|
* This file is part of OpenOffice.org.
|
||||||
*
|
*
|
||||||
@ -32,6 +32,7 @@
|
|||||||
#include "precompiled_cppcanvas.hxx"
|
#include "precompiled_cppcanvas.hxx"
|
||||||
|
|
||||||
#include <canvas/debug.hxx>
|
#include <canvas/debug.hxx>
|
||||||
|
#include <tools/diagnose_ex.h>
|
||||||
#include <canvas/verbosetrace.hxx>
|
#include <canvas/verbosetrace.hxx>
|
||||||
|
|
||||||
#include <osl/mutex.hxx>
|
#include <osl/mutex.hxx>
|
||||||
@ -126,8 +127,9 @@ namespace
|
|||||||
aColor.SetTransparency(0);
|
aColor.SetTransparency(0);
|
||||||
//aColor.SetTransparency(128);
|
//aColor.SetTransparency(128);
|
||||||
|
|
||||||
rColorSequence = ::vcl::unotools::colorToDoubleSequence( rCanvas->getUNOCanvas()->getDevice(),
|
rColorSequence = ::vcl::unotools::colorToDoubleSequence(
|
||||||
aColor );
|
aColor,
|
||||||
|
rCanvas->getUNOCanvas()->getDevice()->getDeviceColorSpace() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -501,7 +503,7 @@ namespace cppcanvas
|
|||||||
const char* pCommentString,
|
const char* pCommentString,
|
||||||
sal_Int32& io_rCurrActionIndex ) const
|
sal_Int32& io_rCurrActionIndex ) const
|
||||||
{
|
{
|
||||||
ENSURE_AND_THROW( pCommentString,
|
ENSURE_OR_THROW( pCommentString,
|
||||||
"ImplRenderer::skipContent(): NULL string given" );
|
"ImplRenderer::skipContent(): NULL string given" );
|
||||||
|
|
||||||
MetaAction* pCurrAct;
|
MetaAction* pCurrAct;
|
||||||
@ -527,7 +529,7 @@ namespace cppcanvas
|
|||||||
const char* pCommentString,
|
const char* pCommentString,
|
||||||
USHORT nType ) const
|
USHORT nType ) const
|
||||||
{
|
{
|
||||||
ENSURE_AND_THROW( pCommentString,
|
ENSURE_OR_THROW( pCommentString,
|
||||||
"ImplRenderer::isActionContained(): NULL string given" );
|
"ImplRenderer::isActionContained(): NULL string given" );
|
||||||
|
|
||||||
bool bRet( false );
|
bool bRet( false );
|
||||||
@ -623,12 +625,24 @@ namespace cppcanvas
|
|||||||
aVCLEndColor.SetGreen( (UINT8)(aVCLEndColor.GetGreen() * nEndIntensity / 100) );
|
aVCLEndColor.SetGreen( (UINT8)(aVCLEndColor.GetGreen() * nEndIntensity / 100) );
|
||||||
aVCLEndColor.SetBlue( (UINT8)(aVCLEndColor.GetBlue() * nEndIntensity / 100) );
|
aVCLEndColor.SetBlue( (UINT8)(aVCLEndColor.GetBlue() * nEndIntensity / 100) );
|
||||||
|
|
||||||
|
uno::Reference<rendering::XColorSpace> xColorSpace(
|
||||||
|
rParms.mrCanvas->getUNOCanvas()->getDevice()->getDeviceColorSpace());
|
||||||
const uno::Sequence< double > aStartColor(
|
const uno::Sequence< double > aStartColor(
|
||||||
::vcl::unotools::colorToDoubleSequence( rParms.mrCanvas->getUNOCanvas()->getDevice(),
|
::vcl::unotools::colorToDoubleSequence( aVCLStartColor,
|
||||||
aVCLStartColor ) );
|
xColorSpace ));
|
||||||
const uno::Sequence< double > aEndColor(
|
const uno::Sequence< double > aEndColor(
|
||||||
::vcl::unotools::colorToDoubleSequence( rParms.mrCanvas->getUNOCanvas()->getDevice(),
|
::vcl::unotools::colorToDoubleSequence( aVCLEndColor,
|
||||||
aVCLEndColor ) );
|
xColorSpace ));
|
||||||
|
|
||||||
|
uno::Sequence< uno::Sequence < double > > aColors(2);
|
||||||
|
uno::Sequence< double > aStops(2);
|
||||||
|
|
||||||
|
aStops[0] = 0.0;
|
||||||
|
aStops[1] = 1.0;
|
||||||
|
|
||||||
|
aColors[0] = aStartColor;
|
||||||
|
aColors[1] = aEndColor;
|
||||||
|
|
||||||
|
|
||||||
// Setup texture transformation
|
// Setup texture transformation
|
||||||
// ----------------------------
|
// ----------------------------
|
||||||
@ -679,13 +693,13 @@ namespace cppcanvas
|
|||||||
{
|
{
|
||||||
case GRADIENT_LINEAR:
|
case GRADIENT_LINEAR:
|
||||||
nOffsetX = rGradient.GetBorder() / 100.0;
|
nOffsetX = rGradient.GetBorder() / 100.0;
|
||||||
aTexture.Gradient = xFactory->createLinearHorizontalGradient( aStartColor,
|
aTexture.Gradient = xFactory->createLinearHorizontalGradient( aColors,
|
||||||
aEndColor );
|
aStops );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRADIENT_AXIAL:
|
case GRADIENT_AXIAL:
|
||||||
aTexture.Gradient = xFactory->createAxialHorizontalGradient( aStartColor,
|
aTexture.Gradient = xFactory->createAxialHorizontalGradient( aColors,
|
||||||
aEndColor );
|
aStops );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: // other cases can't happen
|
default: // other cases can't happen
|
||||||
@ -786,8 +800,8 @@ namespace cppcanvas
|
|||||||
aTextureTransformation.scale( nScale, nScale );
|
aTextureTransformation.scale( nScale, nScale );
|
||||||
aTextureTransformation.translate( 0.5, 0.5 );
|
aTextureTransformation.translate( 0.5, 0.5 );
|
||||||
|
|
||||||
aTexture.Gradient = xFactory->createEllipticalGradient( aEndColor,
|
aTexture.Gradient = xFactory->createEllipticalGradient( aColors,
|
||||||
aStartColor,
|
aStops,
|
||||||
geometry::RealRectangle2D(0.0,0.0,
|
geometry::RealRectangle2D(0.0,0.0,
|
||||||
1.0,1.0) );
|
1.0,1.0) );
|
||||||
}
|
}
|
||||||
@ -802,8 +816,8 @@ namespace cppcanvas
|
|||||||
aTextureTransformation.translate( 0.5, 0.5 );
|
aTextureTransformation.translate( 0.5, 0.5 );
|
||||||
|
|
||||||
aTexture.Gradient = xFactory->createEllipticalGradient(
|
aTexture.Gradient = xFactory->createEllipticalGradient(
|
||||||
aEndColor,
|
aColors,
|
||||||
aStartColor,
|
aStops,
|
||||||
::basegfx::unotools::rectangle2DFromB2DRectangle(
|
::basegfx::unotools::rectangle2DFromB2DRectangle(
|
||||||
aBounds ));
|
aBounds ));
|
||||||
}
|
}
|
||||||
@ -822,16 +836,16 @@ namespace cppcanvas
|
|||||||
nScaleX = nScaleY;
|
nScaleX = nScaleY;
|
||||||
}
|
}
|
||||||
|
|
||||||
aTexture.Gradient = xFactory->createRectangularGradient( aEndColor,
|
aTexture.Gradient = xFactory->createRectangularGradient( aColors,
|
||||||
aStartColor,
|
aStops,
|
||||||
geometry::RealRectangle2D(0.0,0.0,
|
geometry::RealRectangle2D(0.0,0.0,
|
||||||
1.0,1.0) );
|
1.0,1.0) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRADIENT_RECT:
|
case GRADIENT_RECT:
|
||||||
aTexture.Gradient = xFactory->createRectangularGradient(
|
aTexture.Gradient = xFactory->createRectangularGradient(
|
||||||
aEndColor,
|
aColors,
|
||||||
aStartColor,
|
aStops,
|
||||||
::basegfx::unotools::rectangle2DFromB2DRectangle(
|
::basegfx::unotools::rectangle2DFromB2DRectangle(
|
||||||
aBounds ) );
|
aBounds ) );
|
||||||
break;
|
break;
|
||||||
@ -855,7 +869,7 @@ namespace cppcanvas
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ENSURE_AND_THROW( false,
|
ENSURE_OR_THROW( false,
|
||||||
"ImplRenderer::createGradientAction(): Unexpected gradient type" );
|
"ImplRenderer::createGradientAction(): Unexpected gradient type" );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1016,7 +1030,7 @@ namespace cppcanvas
|
|||||||
const ActionFactoryParameters& rParms,
|
const ActionFactoryParameters& rParms,
|
||||||
bool bSubsettableActions )
|
bool bSubsettableActions )
|
||||||
{
|
{
|
||||||
ENSURE_AND_THROW( nIndex >= 0 && nLength <= rString.Len() + nIndex,
|
ENSURE_OR_THROW( nIndex >= 0 && nLength <= rString.Len() + nIndex,
|
||||||
"ImplRenderer::createTextWithEffectsAction(): Invalid text index" );
|
"ImplRenderer::createTextWithEffectsAction(): Invalid text index" );
|
||||||
|
|
||||||
if( !nLength )
|
if( !nLength )
|
||||||
@ -1032,6 +1046,9 @@ namespace cppcanvas
|
|||||||
::Size aShadowOffset;
|
::Size aShadowOffset;
|
||||||
::Size aReliefOffset;
|
::Size aReliefOffset;
|
||||||
|
|
||||||
|
uno::Reference<rendering::XColorSpace> xColorSpace(
|
||||||
|
rParms.mrCanvas->getUNOCanvas()->getDevice()->getDeviceColorSpace() );
|
||||||
|
|
||||||
if( rState.isTextEffectShadowSet )
|
if( rState.isTextEffectShadowSet )
|
||||||
{
|
{
|
||||||
// calculate shadow offset (similar to outdev3.cxx)
|
// calculate shadow offset (similar to outdev3.cxx)
|
||||||
@ -1044,8 +1061,8 @@ namespace cppcanvas
|
|||||||
aShadowOffset.setHeight( nShadowOffset );
|
aShadowOffset.setHeight( nShadowOffset );
|
||||||
|
|
||||||
// determine shadow color (from outdev3.cxx)
|
// determine shadow color (from outdev3.cxx)
|
||||||
::Color aTextColor = ::vcl::unotools::sequenceToColor(
|
::Color aTextColor = ::vcl::unotools::doubleSequenceToColor(
|
||||||
rParms.mrCanvas->getUNOCanvas()->getDevice(), rState.textColor );
|
rState.textColor, xColorSpace );
|
||||||
bool bIsDark = (aTextColor.GetColor() == COL_BLACK)
|
bool bIsDark = (aTextColor.GetColor() == COL_BLACK)
|
||||||
|| (aTextColor.GetLuminance() < 8);
|
|| (aTextColor.GetLuminance() < 8);
|
||||||
|
|
||||||
@ -1068,9 +1085,8 @@ namespace cppcanvas
|
|||||||
aReliefOffset.setHeight( nReliefOffset );
|
aReliefOffset.setHeight( nReliefOffset );
|
||||||
|
|
||||||
// determine relief color (from outdev3.cxx)
|
// determine relief color (from outdev3.cxx)
|
||||||
::Color aTextColor = ::vcl::unotools::sequenceToColor(
|
::Color aTextColor = ::vcl::unotools::doubleSequenceToColor(
|
||||||
rParms.mrCanvas->getUNOCanvas()->getDevice(),
|
rState.textColor, xColorSpace );
|
||||||
rState.textColor );
|
|
||||||
|
|
||||||
aReliefColor = ::Color( COL_LIGHTGRAY );
|
aReliefColor = ::Color( COL_LIGHTGRAY );
|
||||||
|
|
||||||
@ -1081,8 +1097,8 @@ namespace cppcanvas
|
|||||||
{
|
{
|
||||||
aTextColor = ::Color( COL_WHITE );
|
aTextColor = ::Color( COL_WHITE );
|
||||||
getState( rParms.mrStates ).textColor =
|
getState( rParms.mrStates ).textColor =
|
||||||
::vcl::unotools::colorToDoubleSequence( rParms.mrCanvas->getUNOCanvas()->getDevice(),
|
::vcl::unotools::colorToDoubleSequence(
|
||||||
aTextColor );
|
aTextColor, xColorSpace );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aTextColor.GetColor() == COL_WHITE )
|
if( aTextColor.GetColor() == COL_WHITE )
|
||||||
@ -1108,6 +1124,80 @@ namespace cppcanvas
|
|||||||
rParms.mrParms,
|
rParms.mrParms,
|
||||||
bSubsettableActions ) );
|
bSubsettableActions ) );
|
||||||
|
|
||||||
|
ActionSharedPtr pStrikeoutTextAction;
|
||||||
|
|
||||||
|
if ( rState.textStrikeoutStyle == STRIKEOUT_X || rState.textStrikeoutStyle == STRIKEOUT_SLASH )
|
||||||
|
{
|
||||||
|
long nWidth = rParms.mrVDev.GetTextWidth( rString,nIndex,nLength );
|
||||||
|
|
||||||
|
xub_Unicode pChars[5];
|
||||||
|
if ( rState.textStrikeoutStyle == STRIKEOUT_X )
|
||||||
|
pChars[0] = 'X';
|
||||||
|
else
|
||||||
|
pChars[0] = '/';
|
||||||
|
pChars[3]=pChars[2]=pChars[1]=pChars[0];
|
||||||
|
|
||||||
|
long nStrikeoutWidth = nWidth;
|
||||||
|
String aStrikeoutTest( pChars, 4 );
|
||||||
|
|
||||||
|
if( aStrikeoutTest.Len() )
|
||||||
|
{
|
||||||
|
nStrikeoutWidth = ( rParms.mrVDev.GetTextWidth( aStrikeoutTest ) + 2 ) / 4;
|
||||||
|
aStrikeoutTest.Erase();
|
||||||
|
|
||||||
|
if( nStrikeoutWidth <= 0 )
|
||||||
|
nStrikeoutWidth = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
long nMaxWidth = nStrikeoutWidth/2;
|
||||||
|
if ( nMaxWidth < 2 )
|
||||||
|
nMaxWidth = 2;
|
||||||
|
nMaxWidth += nWidth + 1;
|
||||||
|
|
||||||
|
long nFullStrikeoutWidth = 0;
|
||||||
|
String aStrikeoutText( pChars, 0 );
|
||||||
|
while( (nFullStrikeoutWidth+=nStrikeoutWidth ) < nMaxWidth+1 )
|
||||||
|
aStrikeoutText += pChars[0];
|
||||||
|
|
||||||
|
|
||||||
|
sal_Int32 nStartPos = 0;
|
||||||
|
xub_StrLen nLen = aStrikeoutText.Len();
|
||||||
|
|
||||||
|
if( nLen )
|
||||||
|
{
|
||||||
|
long nInterval = ( nWidth - nStrikeoutWidth * nLen ) / nLen;
|
||||||
|
nStrikeoutWidth += nInterval;
|
||||||
|
sal_Int32* pStrikeoutCharWidths = new sal_Int32[nLen];
|
||||||
|
|
||||||
|
for ( int i = 0;i<nLen; i++)
|
||||||
|
{
|
||||||
|
pStrikeoutCharWidths[i] = nStrikeoutWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( int i = 1;i< nLen; i++ )
|
||||||
|
{
|
||||||
|
pStrikeoutCharWidths[ i ] += pStrikeoutCharWidths[ i-1 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
pStrikeoutTextAction =
|
||||||
|
TextActionFactory::createTextAction(
|
||||||
|
rStartPoint,
|
||||||
|
aReliefOffset,
|
||||||
|
aReliefColor,
|
||||||
|
aShadowOffset,
|
||||||
|
aShadowColor,
|
||||||
|
aStrikeoutText,
|
||||||
|
nStartPos,
|
||||||
|
aStrikeoutText.Len(),
|
||||||
|
pStrikeoutCharWidths,
|
||||||
|
rParms.mrVDev,
|
||||||
|
rParms.mrCanvas,
|
||||||
|
rState,
|
||||||
|
rParms.mrParms,
|
||||||
|
bSubsettableActions ) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( pTextAction )
|
if( pTextAction )
|
||||||
{
|
{
|
||||||
maActions.push_back(
|
maActions.push_back(
|
||||||
@ -1115,6 +1205,14 @@ namespace cppcanvas
|
|||||||
pTextAction,
|
pTextAction,
|
||||||
rParms.mrCurrActionIndex ) );
|
rParms.mrCurrActionIndex ) );
|
||||||
|
|
||||||
|
if ( pStrikeoutTextAction )
|
||||||
|
{
|
||||||
|
maActions.push_back(
|
||||||
|
MtfAction(
|
||||||
|
pStrikeoutTextAction,
|
||||||
|
rParms.mrCurrActionIndex ) );
|
||||||
|
}
|
||||||
|
|
||||||
rParms.mrCurrActionIndex += pTextAction->getActionCount()-1;
|
rParms.mrCurrActionIndex += pTextAction->getActionCount()-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1129,7 +1227,7 @@ namespace cppcanvas
|
|||||||
const bool bEmptyClipRect( rState.clipRect.IsEmpty() );
|
const bool bEmptyClipRect( rState.clipRect.IsEmpty() );
|
||||||
const bool bEmptyClipPoly( rState.clip.count() == 0 );
|
const bool bEmptyClipPoly( rState.clip.count() == 0 );
|
||||||
|
|
||||||
ENSURE_AND_THROW( bEmptyClipPoly || bEmptyClipRect,
|
ENSURE_OR_THROW( bEmptyClipPoly || bEmptyClipRect,
|
||||||
"ImplRenderer::updateClipping(): Clip rect and polygon are both set!" );
|
"ImplRenderer::updateClipping(): Clip rect and polygon are both set!" );
|
||||||
|
|
||||||
if( !bIntersect ||
|
if( !bIntersect ||
|
||||||
@ -1212,7 +1310,7 @@ namespace cppcanvas
|
|||||||
const bool bEmptyClipRect( rState.clipRect.IsEmpty() );
|
const bool bEmptyClipRect( rState.clipRect.IsEmpty() );
|
||||||
const bool bEmptyClipPoly( rState.clip.count() == 0 );
|
const bool bEmptyClipPoly( rState.clip.count() == 0 );
|
||||||
|
|
||||||
ENSURE_AND_THROW( bEmptyClipPoly || bEmptyClipRect,
|
ENSURE_OR_THROW( bEmptyClipPoly || bEmptyClipRect,
|
||||||
"ImplRenderer::updateClipping(): Clip rect and polygon are both set!" );
|
"ImplRenderer::updateClipping(): Clip rect and polygon are both set!" );
|
||||||
|
|
||||||
if( !bIntersect ||
|
if( !bIntersect ||
|
||||||
@ -1502,8 +1600,9 @@ namespace cppcanvas
|
|||||||
aColor.SetTransparency(0);
|
aColor.SetTransparency(0);
|
||||||
|
|
||||||
getState( rStates ).textColor =
|
getState( rStates ).textColor =
|
||||||
::vcl::unotools::colorToDoubleSequence( rCanvas->getUNOCanvas()->getDevice(),
|
::vcl::unotools::colorToDoubleSequence(
|
||||||
aColor );
|
aColor,
|
||||||
|
rCanvas->getUNOCanvas()->getDevice()->getDeviceColorSpace() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2783,7 +2882,7 @@ namespace cppcanvas
|
|||||||
aSubset.mnSubsetEnd = ::std::min( aRangeBegin->mpAction->getActionCount(),
|
aSubset.mnSubsetEnd = ::std::min( aRangeBegin->mpAction->getActionCount(),
|
||||||
nEndIndex - aRangeBegin->mnOrigIndex );
|
nEndIndex - aRangeBegin->mnOrigIndex );
|
||||||
|
|
||||||
ENSURE_AND_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
ENSURE_OR_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
||||||
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
||||||
|
|
||||||
rFunctor( *aRangeBegin, aSubset );
|
rFunctor( *aRangeBegin, aSubset );
|
||||||
@ -2799,7 +2898,7 @@ namespace cppcanvas
|
|||||||
nStartIndex - aRangeBegin->mnOrigIndex );
|
nStartIndex - aRangeBegin->mnOrigIndex );
|
||||||
aSubset.mnSubsetEnd = aRangeBegin->mpAction->getActionCount();
|
aSubset.mnSubsetEnd = aRangeBegin->mpAction->getActionCount();
|
||||||
|
|
||||||
ENSURE_AND_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
ENSURE_OR_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
||||||
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
||||||
|
|
||||||
rFunctor( *aRangeBegin, aSubset );
|
rFunctor( *aRangeBegin, aSubset );
|
||||||
@ -2828,7 +2927,7 @@ namespace cppcanvas
|
|||||||
aSubset.mnSubsetBegin = 0;
|
aSubset.mnSubsetBegin = 0;
|
||||||
aSubset.mnSubsetEnd = nEndIndex - aRangeEnd->mnOrigIndex;
|
aSubset.mnSubsetEnd = nEndIndex - aRangeEnd->mnOrigIndex;
|
||||||
|
|
||||||
ENSURE_AND_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
ENSURE_OR_RETURN( aSubset.mnSubsetBegin >= 0 && aSubset.mnSubsetEnd >= 0,
|
||||||
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
"ImplRenderer::forSubsetRange(): Invalid indices" );
|
||||||
|
|
||||||
rFunctor( *aRangeEnd, aSubset );
|
rFunctor( *aRangeEnd, aSubset );
|
||||||
@ -2843,10 +2942,10 @@ namespace cppcanvas
|
|||||||
ActionVector::const_iterator& o_rRangeBegin,
|
ActionVector::const_iterator& o_rRangeBegin,
|
||||||
ActionVector::const_iterator& o_rRangeEnd ) const
|
ActionVector::const_iterator& o_rRangeEnd ) const
|
||||||
{
|
{
|
||||||
ENSURE_AND_RETURN( io_rStartIndex<=io_rEndIndex,
|
ENSURE_OR_RETURN( io_rStartIndex<=io_rEndIndex,
|
||||||
"ImplRenderer::getSubsetIndices(): invalid action range" );
|
"ImplRenderer::getSubsetIndices(): invalid action range" );
|
||||||
|
|
||||||
ENSURE_AND_RETURN( !maActions.empty(),
|
ENSURE_OR_RETURN( !maActions.empty(),
|
||||||
"ImplRenderer::getSubsetIndices(): no actions to render" );
|
"ImplRenderer::getSubsetIndices(): no actions to render" );
|
||||||
|
|
||||||
const sal_Int32 nMinActionIndex( maActions.front().mnOrigIndex );
|
const sal_Int32 nMinActionIndex( maActions.front().mnOrigIndex );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user