LCOV - code coverage report
Current view: top level - oox/source/drawingml - shape3dproperties.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 145 262 55.3 %
Date: 2014-11-03 Functions: 12 12 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include "drawingml/shape3dproperties.hxx"
      21             : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
      22             : #include <com/sun/star/frame/XFramesSupplier.hpp>
      23             : #include <com/sun/star/beans/XPropertySet.hpp>
      24             : #include <com/sun/star/awt/Gradient.hpp>
      25             : #include <com/sun/star/awt/Size.hpp>
      26             : #include <com/sun/star/awt/XBitmap.hpp>
      27             : #include <com/sun/star/awt/XDevice.hpp>
      28             : #include <com/sun/star/drawing/BitmapMode.hpp>
      29             : #include <com/sun/star/drawing/FillStyle.hpp>
      30             : #include <com/sun/star/drawing/RectanglePoint.hpp>
      31             : #include <com/sun/star/graphic/XGraphicTransformer.hpp>
      32             : #include "oox/helper/propertymap.hxx"
      33             : #include "oox/helper/propertyset.hxx"
      34             : #include "oox/token/tokens.hxx"
      35             : 
      36             : using namespace ::com::sun::star;
      37             : using namespace ::com::sun::star::drawing;
      38             : using namespace ::com::sun::star::graphic;
      39             : 
      40             : using ::com::sun::star::uno::Reference;
      41             : using ::com::sun::star::uno::Exception;
      42             : using ::com::sun::star::uno::UNO_QUERY;
      43             : using ::com::sun::star::uno::UNO_QUERY_THROW;
      44             : using ::oox::core::XmlFilterBase;
      45             : 
      46             : namespace oox {
      47             : namespace drawingml {
      48             : 
      49         164 : OUString Shape3DProperties::getCameraPrstName( sal_Int32 nElement )
      50             : {
      51         164 :     switch( nElement )
      52             :     {
      53           0 :         case XML_legacyObliqueTopLeft:          return OUString( "legacyObliqueTopLeft" );
      54           0 :         case XML_legacyObliqueTop:              return OUString( "legacyObliqueTop" );
      55           0 :         case XML_legacyObliqueTopRight:         return OUString( "legacyObliqueTopRight" );
      56           0 :         case XML_legacyObliqueLeft:             return OUString( "legacyObliqueLeft" );
      57           0 :         case XML_legacyObliqueFront:            return OUString( "legacyObliqueFront" );
      58           0 :         case XML_legacyObliqueRight:            return OUString( "legacyObliqueRight" );
      59           0 :         case XML_legacyObliqueBottomLeft:       return OUString( "legacyObliqueBottomLeft" );
      60           0 :         case XML_legacyObliqueBottom:           return OUString( "legacyObliqueBottom" );
      61           0 :         case XML_legacyObliqueBottomRight:      return OUString( "legacyObliqueBottomRight" );
      62           0 :         case XML_legacyPerspectiveTopLeft:      return OUString( "legacyPerspectiveTopLeft" );
      63           0 :         case XML_legacyPerspectiveTop:          return OUString( "legacyPerspectiveTop" );
      64           0 :         case XML_legacyPerspectiveTopRight:     return OUString( "legacyPerspectiveTopRight" );
      65           0 :         case XML_legacyPerspectiveLeft:         return OUString( "legacyPerspectiveLeft" );
      66           0 :         case XML_legacyPerspectiveFront:        return OUString( "legacyPerspectiveFront" );
      67           0 :         case XML_legacyPerspectiveRight:        return OUString( "legacyPerspectiveRight" );
      68           0 :         case XML_legacyPerspectiveBottomLeft:   return OUString( "legacyPerspectiveBottomLeft" );
      69           0 :         case XML_legacyPerspectiveBottom:       return OUString( "legacyPerspectiveBottom" );
      70           0 :         case XML_legacyPerspectiveBottomRight:  return OUString( "legacyPerspectiveBottomRight" );
      71         146 :         case XML_orthographicFront:             return OUString( "orthographicFront" );
      72           0 :         case XML_isometricTopUp:                return OUString( "isometricTopUp" );
      73           0 :         case XML_isometricTopDown:              return OUString( "isometricTopDown" );
      74           0 :         case XML_isometricBottomUp:             return OUString( "isometricBottomUp" );
      75           0 :         case XML_isometricBottomDown:           return OUString( "isometricBottomDown" );
      76           0 :         case XML_isometricLeftUp:               return OUString( "isometricLeftUp" );
      77           6 :         case XML_isometricLeftDown:             return OUString( "isometricLeftDown" );
      78           6 :         case XML_isometricRightUp:              return OUString( "isometricRightUp" );
      79           0 :         case XML_isometricRightDown:            return OUString( "isometricRightDown" );
      80           0 :         case XML_isometricOffAxis1Left:         return OUString( "isometricOffAxis1Left" );
      81           0 :         case XML_isometricOffAxis1Right:        return OUString( "isometricOffAxis1Right" );
      82           0 :         case XML_isometricOffAxis1Top:          return OUString( "isometricOffAxis1Top" );
      83           0 :         case XML_isometricOffAxis2Left:         return OUString( "isometricOffAxis2Left" );
      84           0 :         case XML_isometricOffAxis2Right:        return OUString( "isometricOffAxis2Right" );
      85           0 :         case XML_isometricOffAxis2Top:          return OUString( "isometricOffAxis2Top" );
      86           0 :         case XML_isometricOffAxis3Left:         return OUString( "isometricOffAxis3Left" );
      87           0 :         case XML_isometricOffAxis3Right:        return OUString( "isometricOffAxis3Right" );
      88           0 :         case XML_isometricOffAxis3Bottom:       return OUString( "isometricOffAxis3Bottom" );
      89           0 :         case XML_isometricOffAxis4Left:         return OUString( "isometricOffAxis4Left" );
      90           0 :         case XML_isometricOffAxis4Right:        return OUString( "isometricOffAxis4Right" );
      91           0 :         case XML_isometricOffAxis4Bottom:       return OUString( "isometricOffAxis4Bottom" );
      92           0 :         case XML_obliqueTopLeft:                return OUString( "obliqueTopLeft" );
      93           0 :         case XML_obliqueTop:                    return OUString( "obliqueTop" );
      94           0 :         case XML_obliqueTopRight:               return OUString( "obliqueTopRight" );
      95           0 :         case XML_obliqueLeft:                   return OUString( "obliqueLeft" );
      96           0 :         case XML_obliqueRight:                  return OUString( "obliqueRight" );
      97           0 :         case XML_obliqueBottomLeft:             return OUString( "obliqueBottomLeft" );
      98           0 :         case XML_obliqueBottom:                 return OUString( "obliqueBottom" );
      99           0 :         case XML_obliqueBottomRight:            return OUString( "obliqueBottomRight" );
     100           0 :         case XML_perspectiveFront:              return OUString( "perspectiveFront" );
     101           0 :         case XML_perspectiveLeft:               return OUString( "perspectiveLeft" );
     102           0 :         case XML_perspectiveRight:              return OUString( "perspectiveRight" );
     103           0 :         case XML_perspectiveAbove:              return OUString( "perspectiveAbove" );
     104           0 :         case XML_perspectiveBelow:              return OUString( "perspectiveBelow" );
     105           0 :         case XML_perspectiveAboveLeftFacing:        return OUString( "perspectiveAboveLeftFacing" );
     106           0 :         case XML_perspectiveAboveRightFacing:       return OUString( "perspectiveAboveRightFacing" );
     107           0 :         case XML_perspectiveContrastingLeftFacing:  return OUString( "perspectiveContrastingLeftFacing" );
     108           0 :         case XML_perspectiveContrastingRightFacing: return OUString( "perspectiveContrastingRightFacing" );
     109           0 :         case XML_perspectiveHeroicLeftFacing:       return OUString( "perspectiveHeroicLeftFacing" );
     110           0 :         case XML_perspectiveHeroicRightFacing:      return OUString( "perspectiveHeroicRightFacing" );
     111           0 :         case XML_perspectiveHeroicExtremeLeftFacing:    return OUString( "perspectiveHeroicExtremeLeftFacing" );
     112           0 :         case XML_perspectiveHeroicExtremeRightFacing:   return OUString( "perspectiveHeroicExtremeRightFacing" );
     113           0 :         case XML_perspectiveRelaxed:                    return OUString( "perspectiveRelaxed" );
     114           6 :         case XML_perspectiveRelaxedModerately:          return OUString( "perspectiveRelaxedModerately" );
     115             :     }
     116             :     SAL_WARN( "oox.drawingml", "Shape3DProperties::getCameraPrstName - unexpected prst type" );
     117           0 :     return OUString();
     118             : }
     119             : 
     120         164 : OUString Shape3DProperties::getLightRigName( sal_Int32 nElement )
     121             : {
     122         164 :     switch( nElement )
     123             :     {
     124           0 :         case XML_legacyFlat1:       return OUString( "legacyFlat1" );
     125           0 :         case XML_legacyFlat2:       return OUString( "legacyFlat2" );
     126           0 :         case XML_legacyFlat3:       return OUString( "legacyFlat3" );
     127           0 :         case XML_legacyFlat4:       return OUString( "legacyFlat4" );
     128           0 :         case XML_legacyNormal1:     return OUString( "legacyNormal1" );
     129           0 :         case XML_legacyNormal2:     return OUString( "legacyNormal2" );
     130           0 :         case XML_legacyNormal3:     return OUString( "legacyNormal3" );
     131           0 :         case XML_legacyNormal4:     return OUString( "legacyNormal4" );
     132           0 :         case XML_legacyHarsh1:      return OUString( "legacyHarsh1" );
     133           0 :         case XML_legacyHarsh2:      return OUString( "legacyHarsh2" );
     134           0 :         case XML_legacyHarsh3:      return OUString( "legacyHarsh3" );
     135           0 :         case XML_legacyHarsh4:      return OUString( "legacyHarsh4" );
     136          44 :         case XML_threePt:           return OUString( "threePt" );
     137           2 :         case XML_balanced:          return OUString( "balanced" );
     138           0 :         case XML_soft:              return OUString( "soft" );
     139           0 :         case XML_harsh:             return OUString( "harsh" );
     140           0 :         case XML_flood:             return OUString( "flood" );
     141           0 :         case XML_contrasting:       return OUString( "contrasting" );
     142           0 :         case XML_morning:           return OUString( "morning" );
     143           0 :         case XML_sunrise:           return OUString( "sunrise" );
     144           0 :         case XML_sunset:            return OUString( "sunset" );
     145           0 :         case XML_chilly:            return OUString( "chilly" );
     146           0 :         case XML_freezing:          return OUString( "freezing" );
     147         112 :         case XML_flat:              return OUString( "flat" );
     148           0 :         case XML_twoPt:             return OUString( "twoPt" );
     149           0 :         case XML_glow:              return OUString( "glow" );
     150           6 :         case XML_brightRoom:        return OUString( "brightRoom" );
     151             :     }
     152             :     SAL_WARN( "oox.drawingml", "Shape3DProperties::getLightRigName - unexpected token" );
     153           0 :     return OUString();
     154             : }
     155             : 
     156         164 : OUString Shape3DProperties::getLightRigDirName( sal_Int32 nElement )
     157             : {
     158         164 :     switch( nElement )
     159             :     {
     160           0 :         case XML_tl:    return OUString( "tl" );
     161         164 :         case XML_t:     return OUString( "t" );
     162           0 :         case XML_tr:    return OUString( "tr" );
     163           0 :         case XML_l:     return OUString( "l" );
     164           0 :         case XML_r:     return OUString( "r" );
     165           0 :         case XML_bl:    return OUString( "bl" );
     166           0 :         case XML_b:     return OUString( "b" );
     167           0 :         case XML_br:    return OUString( "br" );
     168             :     }
     169             :     SAL_WARN( "oox.drawingml", "Shape3DProperties::getLightRigDirName - unexpected token" );
     170           0 :     return OUString();
     171             : }
     172             : 
     173          26 : OUString Shape3DProperties::getBevelPresetTypeString( sal_Int32 nType )
     174             : {
     175          26 :     switch (nType)
     176             :     {
     177          14 :         case XML_relaxedInset:  return OUString("relaxedInset");
     178           0 :         case XML_circle:        return OUString("circle");
     179           0 :         case XML_slope:         return OUString("slope");
     180           6 :         case XML_cross:         return OUString("cross");
     181           6 :         case XML_angle:         return OUString("angle");
     182           0 :         case XML_softRound:     return OUString("softRound");
     183           0 :         case XML_convex:        return OUString("convex");
     184           0 :         case XML_coolSlant:     return OUString("coolSlant");
     185           0 :         case XML_divot:         return OUString("divot");
     186           0 :         case XML_riblet:        return OUString("riblet");
     187           0 :         case XML_hardEdge:      return OUString("hardEdge");
     188           0 :         case XML_artDeco:       return OUString("artDeco");
     189             :     }
     190             :     SAL_WARN( "oox.drawingml", "Shape3DProperties::getBevelPresetTypeString - unexpected token" );
     191           0 :     return OUString();
     192             : }
     193             : 
     194         146 : OUString Shape3DProperties::getPresetMaterialTypeString( sal_Int32 nType )
     195             : {
     196         146 :     switch (nType)
     197             :     {
     198           0 :         case XML_legacyMatte:       return OUString("legacyMatte");
     199           0 :         case XML_legacyPlastic:     return OUString("legacyPlastic");
     200           0 :         case XML_legacyMetal:       return OUString("legacyMetal");
     201           6 :         case XML_legacyWireframe:   return OUString("legacyWireframe");
     202           0 :         case XML_matte:             return OUString("matte");
     203          10 :         case XML_plastic:           return OUString("plastic");
     204          12 :         case XML_metal:             return OUString("metal");
     205           0 :         case XML_warmMatte:         return OUString("warmMatte");
     206           0 :         case XML_translucentPowder: return OUString("translucentPowder");
     207           0 :         case XML_powder:            return OUString("powder");
     208         118 :         case XML_dkEdge:            return OUString("dkEdge");
     209           0 :         case XML_softEdge:          return OUString("softEdge");
     210           0 :         case XML_clear:             return OUString("clear");
     211           0 :         case XML_flat:              return OUString("flat");
     212           0 :         case XML_softmetal:         return OUString("softmetal");
     213           0 :         case XML_none:              return OUString("none");
     214             :     }
     215             :     SAL_WARN( "oox.drawingml", "Shape3DProperties::getPresetMaterialTypeString - unexpected token" );
     216           0 :     return OUString();
     217             : }
     218             : 
     219        4948 : css::uno::Sequence< css::beans::PropertyValue > Shape3DProperties::getCameraAttributes()
     220             : {
     221        4948 :     css::uno::Sequence<css::beans::PropertyValue> aSeq(6);
     222        4948 :     sal_Int32 nSize = 0;
     223        4948 :     if( mfFieldOfVision.has() )
     224             :     {
     225           0 :         aSeq[nSize].Name = "fov";
     226           0 :         aSeq[nSize].Value = css::uno::Any( mfFieldOfVision.use() );
     227           0 :         nSize++;
     228             :     }
     229        4948 :     if( mfZoom.has() )
     230             :     {
     231           6 :         aSeq[nSize].Name = "zoom";
     232           6 :         aSeq[nSize].Value = css::uno::Any( mfZoom.use() );
     233           6 :         nSize++;
     234             :     }
     235        4948 :     if( mnPreset.has() )
     236             :     {
     237         164 :         aSeq[nSize].Name = "prst";
     238         164 :         aSeq[nSize].Value = css::uno::Any( getCameraPrstName( mnPreset.use() ) );
     239         164 :         nSize++;
     240             :     }
     241        4948 :     if( maCameraRotation.mnLatitude.has() )
     242             :     {
     243          14 :         aSeq[nSize].Name = "rotLat";
     244          14 :         aSeq[nSize].Value = css::uno::Any( maCameraRotation.mnLatitude.use() );
     245          14 :         nSize++;
     246             :     }
     247        4948 :     if( maCameraRotation.mnLongitude.has() )
     248             :     {
     249          14 :         aSeq[nSize].Name = "rotLon";
     250          14 :         aSeq[nSize].Value = css::uno::Any( maCameraRotation.mnLongitude.use() );
     251          14 :         nSize++;
     252             :     }
     253        4948 :     if( maCameraRotation.mnRevolution.has() )
     254             :     {
     255          14 :         aSeq[nSize].Name = "rotRev";
     256          14 :         aSeq[nSize].Value = css::uno::Any( maCameraRotation.mnRevolution.use() );
     257          14 :         nSize++;
     258             :     }
     259        4948 :     aSeq.realloc( nSize );
     260        4948 :     return aSeq;
     261             : }
     262             : 
     263        4948 : css::uno::Sequence< css::beans::PropertyValue > Shape3DProperties::getLightRigAttributes()
     264             : {
     265        4948 :     css::uno::Sequence<css::beans::PropertyValue> aSeq(5);
     266        4948 :     sal_Int32 nSize = 0;
     267        4948 :     if( mnLightRigDirection.has() )
     268             :     {
     269         164 :         aSeq[nSize].Name = "dir";
     270         164 :         aSeq[nSize].Value = css::uno::Any( getLightRigDirName( mnLightRigDirection.use() ) );
     271         164 :         nSize++;
     272             :     }
     273        4948 :     if( mnLightRigType.has() )
     274             :     {
     275         164 :         aSeq[nSize].Name = "rig";
     276         164 :         aSeq[nSize].Value = css::uno::Any( getLightRigName( mnLightRigType.use() ) );
     277         164 :         nSize++;
     278             :     }
     279        4948 :     if( maLightRigRotation.mnLatitude.has() )
     280             :     {
     281          26 :         aSeq[nSize].Name = "rotLat";
     282          26 :         aSeq[nSize].Value = css::uno::Any( maLightRigRotation.mnLatitude.use() );
     283          26 :         nSize++;
     284             :     }
     285        4948 :     if( maLightRigRotation.mnLongitude.has() )
     286             :     {
     287          26 :         aSeq[nSize].Name = "rotLon";
     288          26 :         aSeq[nSize].Value = css::uno::Any( maLightRigRotation.mnLongitude.use() );
     289          26 :         nSize++;
     290             :     }
     291        4948 :     if( maLightRigRotation.mnRevolution.has() )
     292             :     {
     293          26 :         aSeq[nSize].Name = "rotRev";
     294          26 :         aSeq[nSize].Value = css::uno::Any( maLightRigRotation.mnRevolution.use() );
     295          26 :         nSize++;
     296             :     }
     297        4948 :     aSeq.realloc( nSize );
     298        4948 :     return aSeq;
     299             : }
     300             : 
     301         142 : css::uno::Sequence< css::beans::PropertyValue > Shape3DProperties::getBevelAttributes( BevelProperties rProps )
     302             : {
     303         142 :     css::uno::Sequence<css::beans::PropertyValue> aSeq(3);
     304         142 :     sal_Int32 nSize = 0;
     305         142 :     if( rProps.mnPreset.has() )
     306             :     {
     307          26 :         aSeq[nSize].Name = "prst";
     308          26 :         aSeq[nSize].Value = css::uno::Any( getBevelPresetTypeString( rProps.mnPreset.use() ) );
     309          26 :         nSize++;
     310             :     }
     311         142 :     if( rProps.mnWidth.has() )
     312             :     {
     313         134 :         aSeq[nSize].Name = "w";
     314         134 :         aSeq[nSize].Value = css::uno::Any( rProps.mnWidth.use() );
     315         134 :         nSize++;
     316             :     }
     317         142 :     if( rProps.mnHeight.has() )
     318             :     {
     319         140 :         aSeq[nSize].Name = "h";
     320         140 :         aSeq[nSize].Value = css::uno::Any( rProps.mnHeight.use() );
     321         140 :         nSize++;
     322             :     }
     323         142 :     aSeq.realloc( nSize );
     324         142 :     return aSeq;
     325             : }
     326             : 
     327          22 : css::uno::Sequence< css::beans::PropertyValue > Shape3DProperties::getColorAttributes(
     328             :         const Color& rColor, const GraphicHelper& rGraphicHelper, sal_Int32 rPhClr )
     329             : {
     330          22 :     css::uno::Sequence<css::beans::PropertyValue> aSeq(2);
     331          44 :     OUString sColorScheme = rColor.getSchemeName();
     332          22 :     if( sColorScheme.isEmpty() )
     333             :     {
     334             :         // RGB color and transparency value
     335          12 :         aSeq[0].Name = "rgbClr";
     336          12 :         aSeq[0].Value = css::uno::Any( rColor.getColor( rGraphicHelper, rPhClr ) );
     337          12 :         aSeq[1].Name = "rgbClrTransparency";
     338          12 :         aSeq[1].Value = css::uno::Any( rColor.getTransparency() );
     339             :     }
     340             :     else
     341             :     {
     342             :         // scheme color with name and transformations
     343          10 :         aSeq[0].Name = "schemeClr";
     344          10 :         aSeq[0].Value = css::uno::Any( sColorScheme );
     345          10 :         aSeq[1].Name = "schemeClrTransformations";
     346          10 :         aSeq[1].Value = css::uno::Any( rColor.getTransformations() );
     347             :     }
     348          44 :     return aSeq;
     349             : }
     350             : 
     351        4948 : css::uno::Sequence< css::beans::PropertyValue > Shape3DProperties::getShape3DAttributes(
     352             :         const GraphicHelper& rGraphicHelper, sal_Int32 rPhClr )
     353             : {
     354        4948 :     css::uno::Sequence<css::beans::PropertyValue> aSeq(8);
     355        4948 :     sal_Int32 nSize = 0;
     356        4948 :     if( mnExtrusionH.has() )
     357             :     {
     358          22 :         aSeq[nSize].Name = "extrusionH";
     359          22 :         aSeq[nSize].Value = css::uno::Any( mnExtrusionH.use() );
     360          22 :         nSize++;
     361             :     }
     362        4948 :     if( mnContourW.has() )
     363             :     {
     364           6 :         aSeq[nSize].Name = "contourW";
     365           6 :         aSeq[nSize].Value = css::uno::Any( mnContourW.use() );
     366           6 :         nSize++;
     367             :     }
     368        4948 :     if( mnShapeZ.has() )
     369             :     {
     370           6 :         aSeq[nSize].Name = "z";
     371           6 :         aSeq[nSize].Value = css::uno::Any( mnShapeZ.use() );
     372           6 :         nSize++;
     373             :     }
     374        4948 :     if( mnMaterial.has() )
     375             :     {
     376         146 :         aSeq[nSize].Name = "prstMaterial";
     377         146 :         aSeq[nSize].Value = css::uno::Any( getPresetMaterialTypeString( mnMaterial.use() ) );
     378         146 :         nSize++;
     379             :     }
     380        4948 :     if( maTopBevelProperties.has() )
     381             :     {
     382         136 :         aSeq[nSize].Name = "bevelT";
     383         136 :         aSeq[nSize].Value = css::uno::Any( getBevelAttributes( maTopBevelProperties.use() ) );
     384         136 :         nSize++;
     385             :     }
     386        4948 :     if( maBottomBevelProperties.has() )
     387             :     {
     388           6 :         aSeq[nSize].Name = "bevelB";
     389           6 :         aSeq[nSize].Value = css::uno::Any( getBevelAttributes( maBottomBevelProperties.use() ) );
     390           6 :         nSize++;
     391             :     }
     392        4948 :     if( maExtrusionColor.isUsed() )
     393             :     {
     394          12 :         aSeq[nSize].Name = "extrusionClr";
     395          12 :         aSeq[nSize].Value = css::uno::Any( getColorAttributes( maExtrusionColor, rGraphicHelper, rPhClr ) );
     396          12 :         nSize++;
     397             :     }
     398        4948 :     if( maContourColor.isUsed() )
     399             :     {
     400          10 :         aSeq[nSize].Name = "contourClr";
     401          10 :         aSeq[nSize].Value = css::uno::Any( getColorAttributes( maContourColor, rGraphicHelper, rPhClr ) );
     402          10 :         nSize++;
     403             :     }
     404        4948 :     aSeq.realloc( nSize );
     405        4948 :     return aSeq;
     406             : }
     407             : 
     408             : } // namespace drawingml
     409         408 : } // namespace oox
     410             : 
     411             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10