LCOV - code coverage report
Current view: top level - sc/source/core/data - attrib.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 201 520 38.7 %
Date: 2014-11-03 Functions: 86 141 61.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 <com/sun/star/util/CellProtection.hpp>
      21             : #include <com/sun/star/util/XProtectable.hpp>
      22             : #include <com/sun/star/text/XText.hpp>
      23             : #include <com/sun/star/beans/XPropertySet.hpp>
      24             : 
      25             : #include "scitems.hxx"
      26             : #include <editeng/eeitem.hxx>
      27             : 
      28             : #include <editeng/boxitem.hxx>
      29             : #include <editeng/editdata.hxx>
      30             : #include <editeng/editeng.hxx>
      31             : #include <editeng/editobj.hxx>
      32             : #include <editeng/flditem.hxx>
      33             : 
      34             : #include "attrib.hxx"
      35             : #include "global.hxx"
      36             : #include "editutil.hxx"
      37             : #include "sc.hrc"
      38             : #include "globstr.hrc"
      39             : 
      40             : #include "textuno.hxx"
      41             : 
      42             : using namespace com::sun::star;
      43             : 
      44        7116 : TYPEINIT1(ScMergeAttr,          SfxPoolItem);
      45        7500 : TYPEINIT1_AUTOFACTORY(ScProtectionAttr,     SfxPoolItem);
      46       20070 : TYPEINIT1(ScRangeItem,          SfxPoolItem);
      47        6690 : TYPEINIT1(ScTableListItem,      SfxPoolItem);
      48       33812 : TYPEINIT1(ScPageHFItem,         SfxPoolItem);
      49       20076 : TYPEINIT1(ScViewObjectModeItem, SfxEnumItem);
      50          76 : TYPEINIT1(ScDoubleItem,         SfxPoolItem);
      51        6690 : TYPEINIT1(ScPageScaleToItem,    SfxPoolItem);
      52       26528 : TYPEINIT1(ScCondFormatItem,    SfxPoolItem);
      53             : 
      54             : /**
      55             :  * General Help Function
      56             :  */
      57        1854 : bool ScHasPriority( const ::editeng::SvxBorderLine* pThis, const ::editeng::SvxBorderLine* pOther )
      58             : {
      59             : 
      60        1854 :     if (!pThis)
      61        1718 :         return false;
      62         136 :     if (!pOther)
      63         136 :         return true;
      64             : 
      65           0 :     sal_uInt16 nThisSize = pThis->GetScaledWidth();
      66           0 :     sal_uInt16 nOtherSize = pOther->GetScaledWidth();
      67             : 
      68           0 :     if (nThisSize > nOtherSize)
      69           0 :         return true;
      70           0 :     else if (nThisSize < nOtherSize)
      71           0 :         return false;
      72             :     else
      73             :     {
      74           0 :         if ( pOther->GetInWidth() && !pThis->GetInWidth() )
      75           0 :             return true;
      76           0 :         else if ( pThis->GetInWidth() && !pOther->GetInWidth() )
      77           0 :             return false;
      78             :         else
      79             :         {
      80           0 :             return true; // FIXME: What is this?
      81             :         }
      82             :     }
      83             : }
      84             : 
      85             : /** Item - Implementations */
      86             : 
      87             : /**
      88             :  * Merge
      89             :  */
      90        2336 : ScMergeAttr::ScMergeAttr():
      91             :     SfxPoolItem(ATTR_MERGE),
      92             :     nColMerge(0),
      93        2336 :     nRowMerge(0)
      94        2336 : {}
      95             : 
      96        1476 : ScMergeAttr::ScMergeAttr( SCsCOL nCol, SCsROW nRow):
      97             :     SfxPoolItem(ATTR_MERGE),
      98             :     nColMerge(nCol),
      99        1476 :     nRowMerge(nRow)
     100        1476 : {}
     101             : 
     102          96 : ScMergeAttr::ScMergeAttr(const ScMergeAttr& rItem):
     103          96 :     SfxPoolItem(ATTR_MERGE)
     104             : {
     105          96 :     nColMerge = rItem.nColMerge;
     106          96 :     nRowMerge = rItem.nRowMerge;
     107          96 : }
     108             : 
     109        6128 : ScMergeAttr::~ScMergeAttr()
     110             : {
     111        6128 : }
     112             : 
     113           0 : OUString ScMergeAttr::GetValueText() const
     114             : {
     115             :     OUString aRet = "("
     116           0 :         + OUString::number(static_cast<sal_Int32>(nColMerge))
     117           0 :         + ","
     118           0 :         + OUString::number(static_cast<sal_Int32>(nRowMerge))
     119           0 :         + ")";
     120           0 :     return aRet;
     121             : }
     122             : 
     123        4312 : bool ScMergeAttr::operator==( const SfxPoolItem& rItem ) const
     124             : {
     125             :     OSL_ENSURE( Which() != rItem.Which() || Type() == rItem.Type(), "which ==, type !=" );
     126        4312 :     return (Which() == rItem.Which())
     127        4312 :              && (nColMerge == static_cast<const ScMergeAttr&>(rItem).nColMerge)
     128        7689 :              && (nRowMerge == static_cast<const ScMergeAttr&>(rItem).nRowMerge);
     129             : }
     130             : 
     131          96 : SfxPoolItem* ScMergeAttr::Clone( SfxItemPool * ) const
     132             : {
     133          96 :     return new ScMergeAttr(*this);
     134             : }
     135             : 
     136           0 : SfxPoolItem* ScMergeAttr::Create( SvStream& rStream, sal_uInt16 /* nVer */ ) const
     137             : {
     138             :     sal_Int16   nCol;
     139             :     sal_Int16   nRow;
     140           0 :     rStream.ReadInt16( nCol );
     141           0 :     rStream.ReadInt16( nRow );
     142           0 :     return new ScMergeAttr(static_cast<SCCOL>(nCol),static_cast<SCROW>(nRow));
     143             : }
     144             : 
     145             : /**
     146             :  * MergeFlag
     147             :  */
     148        2336 : ScMergeFlagAttr::ScMergeFlagAttr():
     149        2336 :     SfxInt16Item(ATTR_MERGE_FLAG, 0)
     150             : {
     151        2336 : }
     152             : 
     153       16110 : ScMergeFlagAttr::ScMergeFlagAttr(sal_Int16 nFlags):
     154       16110 :     SfxInt16Item(ATTR_MERGE_FLAG, nFlags)
     155             : {
     156       16110 : }
     157             : 
     158       20570 : ScMergeFlagAttr::~ScMergeFlagAttr()
     159             : {
     160       20570 : }
     161             : 
     162          40 : bool ScMergeFlagAttr::HasPivotButton() const
     163             : {
     164          40 :     return (GetValue() & SC_MF_BUTTON) != 0;
     165             : }
     166             : 
     167           0 : bool ScMergeFlagAttr::HasPivotPopupButton() const
     168             : {
     169           0 :     return (GetValue() & SC_MF_BUTTON_POPUP) != 0;
     170             : }
     171             : 
     172             : /**
     173             :  * Protection
     174             :  */
     175        2350 : ScProtectionAttr::ScProtectionAttr():
     176             :     SfxPoolItem(ATTR_PROTECTION),
     177             :     bProtection(true),
     178             :     bHideFormula(false),
     179             :     bHideCell(false),
     180        2350 :     bHidePrint(false)
     181             : {
     182        2350 : }
     183             : 
     184         450 : ScProtectionAttr::ScProtectionAttr( bool bProtect, bool bHFormula,
     185             :                                     bool bHCell, bool bHPrint):
     186             :     SfxPoolItem(ATTR_PROTECTION),
     187             :     bProtection(bProtect),
     188             :     bHideFormula(bHFormula),
     189             :     bHideCell(bHCell),
     190         450 :     bHidePrint(bHPrint)
     191             : {
     192         450 : }
     193             : 
     194          80 : ScProtectionAttr::ScProtectionAttr(const ScProtectionAttr& rItem):
     195          80 :     SfxPoolItem(ATTR_PROTECTION)
     196             : {
     197          80 :     bProtection  = rItem.bProtection;
     198          80 :     bHideFormula = rItem.bHideFormula;
     199          80 :     bHideCell    = rItem.bHideCell;
     200          80 :     bHidePrint   = rItem.bHidePrint;
     201          80 : }
     202             : 
     203        5088 : ScProtectionAttr::~ScProtectionAttr()
     204             : {
     205        5088 : }
     206             : 
     207          40 : bool ScProtectionAttr::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
     208             : {
     209          40 :     nMemberId &= ~CONVERT_TWIPS;
     210          40 :     switch ( nMemberId  )
     211             :     {
     212             :         case 0 :
     213             :         {
     214          40 :             util::CellProtection aProtection;
     215          40 :             aProtection.IsLocked        = bProtection;
     216          40 :             aProtection.IsFormulaHidden = bHideFormula;
     217          40 :             aProtection.IsHidden        = bHideCell;
     218          40 :             aProtection.IsPrintHidden   = bHidePrint;
     219          40 :             rVal <<= aProtection;
     220          40 :             break;
     221             :         }
     222             :         case MID_1 :
     223           0 :             rVal <<= bProtection; break;
     224             :         case MID_2 :
     225           0 :             rVal <<= bHideFormula; break;
     226             :         case MID_3 :
     227           0 :             rVal <<= bHideCell; break;
     228             :         case MID_4 :
     229           0 :             rVal <<= bHidePrint; break;
     230             :         default:
     231             :             OSL_FAIL("Wrong MemberID!");
     232           0 :             return false;
     233             :     }
     234             : 
     235          40 :     return true;
     236             : }
     237             : 
     238          20 : bool ScProtectionAttr::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
     239             : {
     240          20 :     bool bRet = false;
     241          20 :     bool bVal = false;
     242          20 :     nMemberId &= ~CONVERT_TWIPS;
     243          20 :     switch ( nMemberId )
     244             :     {
     245             :         case 0 :
     246             :         {
     247          20 :             util::CellProtection aProtection;
     248          20 :             if ( rVal >>= aProtection )
     249             :             {
     250          20 :                 bProtection  = aProtection.IsLocked;
     251          20 :                 bHideFormula = aProtection.IsFormulaHidden;
     252          20 :                 bHideCell    = aProtection.IsHidden;
     253          20 :                 bHidePrint   = aProtection.IsPrintHidden;
     254          20 :                 bRet = true;
     255             :             }
     256             :             else
     257             :             {
     258             :                 OSL_FAIL("exception - wrong argument");
     259             :             }
     260          20 :             break;
     261             :         }
     262             :         case MID_1 :
     263           0 :             bRet = (rVal >>= bVal); if (bRet) bProtection=bVal; break;
     264             :         case MID_2 :
     265           0 :             bRet = (rVal >>= bVal); if (bRet) bHideFormula=bVal; break;
     266             :         case MID_3 :
     267           0 :             bRet = (rVal >>= bVal); if (bRet) bHideCell=bVal; break;
     268             :         case MID_4 :
     269           0 :             bRet = (rVal >>= bVal); if (bRet) bHidePrint=bVal; break;
     270             :         default:
     271             :             OSL_FAIL("Wrong MemberID!");
     272             :     }
     273             : 
     274          20 :     return bRet;
     275             : }
     276             : 
     277           0 : OUString ScProtectionAttr::GetValueText() const
     278             : {
     279           0 :     const OUString aStrYes ( ScGlobal::GetRscString(STR_YES) );
     280           0 :     const OUString aStrNo  ( ScGlobal::GetRscString(STR_NO) );
     281             : 
     282             :     const OUString aValue  = "("
     283           0 :         + (bProtection ? aStrYes : aStrNo)
     284           0 :         + ","
     285           0 :         + (bHideFormula ? aStrYes : aStrNo)
     286           0 :         + ","
     287           0 :         + (bHideCell ? aStrYes : aStrNo)
     288           0 :         + ","
     289           0 :         + (bHidePrint ? aStrYes : aStrNo)
     290           0 :         + ")";
     291             : 
     292           0 :     return aValue;
     293             : }
     294             : 
     295           0 : bool ScProtectionAttr::GetPresentation
     296             :     (
     297             :         SfxItemPresentation ePres,
     298             :         SfxMapUnit /* eCoreMetric */,
     299             :         SfxMapUnit /* ePresMetric */,
     300             :         OUString& rText,
     301             :         const IntlWrapper* /* pIntl */
     302             :     ) const
     303             : {
     304           0 :     const OUString aStrYes ( ScGlobal::GetRscString(STR_YES) );
     305           0 :     const OUString aStrNo  ( ScGlobal::GetRscString(STR_NO) );
     306             : 
     307           0 :     switch ( ePres )
     308             :     {
     309             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     310           0 :             rText = GetValueText();
     311           0 :             break;
     312             : 
     313             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     314           0 :             rText  = ScGlobal::GetRscString(STR_PROTECTION)
     315           0 :                 + ": "
     316           0 :                 + (bProtection ? aStrYes : aStrNo)
     317           0 :                 + ", "
     318           0 :                 + ScGlobal::GetRscString(STR_FORMULAS)
     319           0 :                 + ": "
     320           0 :                 + (!bHideFormula ? aStrYes : aStrNo)
     321           0 :                 + ", "
     322           0 :                 + ScGlobal::GetRscString(STR_HIDE)
     323           0 :                 + ": "
     324           0 :                 + (bHideCell ? aStrYes : aStrNo)
     325           0 :                 + ", "
     326           0 :                 + ScGlobal::GetRscString(STR_PRINT)
     327           0 :                 + ": "
     328           0 :                 + (!bHidePrint ? aStrYes : aStrNo);
     329           0 :             break;
     330             : 
     331           0 :         default: break;
     332             :     }
     333             : 
     334           0 :     return true;
     335             : }
     336             : 
     337         442 : bool ScProtectionAttr::operator==( const SfxPoolItem& rItem ) const
     338             : {
     339             :     OSL_ENSURE( Which() != rItem.Which() || Type() == rItem.Type(), "which ==, type !=" );
     340         442 :     return (Which() == rItem.Which())
     341         442 :              && (bProtection == static_cast<const ScProtectionAttr&>(rItem).bProtection)
     342         416 :              && (bHideFormula == static_cast<const ScProtectionAttr&>(rItem).bHideFormula)
     343         416 :              && (bHideCell == static_cast<const ScProtectionAttr&>(rItem).bHideCell)
     344         858 :              && (bHidePrint == static_cast<const ScProtectionAttr&>(rItem).bHidePrint);
     345             : }
     346             : 
     347          80 : SfxPoolItem* ScProtectionAttr::Clone( SfxItemPool * ) const
     348             : {
     349          80 :     return new ScProtectionAttr(*this);
     350             : }
     351             : 
     352           0 : SfxPoolItem* ScProtectionAttr::Create( SvStream& rStream, sal_uInt16 /* n */ ) const
     353             : {
     354             :     bool bProtect;
     355             :     bool bHFormula;
     356             :     bool bHCell;
     357             :     bool bHPrint;
     358             : 
     359           0 :     rStream.ReadCharAsBool( bProtect );
     360           0 :     rStream.ReadCharAsBool( bHFormula );
     361           0 :     rStream.ReadCharAsBool( bHCell );
     362           0 :     rStream.ReadCharAsBool( bHPrint );
     363             : 
     364           0 :     return new ScProtectionAttr(bProtect,bHFormula,bHCell,bHPrint);
     365             : }
     366             : 
     367          14 : bool ScProtectionAttr::SetProtection( bool bProtect)
     368             : {
     369          14 :     bProtection =  bProtect;
     370          14 :     return true;
     371             : }
     372             : 
     373           0 : bool ScProtectionAttr::SetHideFormula( bool bHFormula)
     374             : {
     375           0 :     bHideFormula = bHFormula;
     376           0 :     return true;
     377             : }
     378             : 
     379           0 : bool ScProtectionAttr::SetHideCell( bool bHCell)
     380             : {
     381           0 :     bHideCell = bHCell;
     382           0 :     return true;
     383             : }
     384             : 
     385           0 : bool ScProtectionAttr::SetHidePrint( bool bHPrint)
     386             : {
     387           0 :     bHidePrint = bHPrint;
     388           0 :     return true;
     389             : }
     390             : 
     391             : /**
     392             :  * ScRangeItem - Table range
     393             :  */
     394           0 : bool ScRangeItem::operator==( const SfxPoolItem& rAttr ) const
     395             : {
     396             :     assert(SfxPoolItem::operator==(rAttr));
     397             : 
     398           0 :     return aRange == static_cast<const ScRangeItem&>(rAttr).aRange;
     399             : }
     400             : 
     401           0 : SfxPoolItem* ScRangeItem::Clone( SfxItemPool* ) const
     402             : {
     403           0 :     return new ScRangeItem( *this );
     404             : }
     405             : 
     406           0 : bool ScRangeItem::GetPresentation
     407             :     (
     408             :         SfxItemPresentation ePres,
     409             :         SfxMapUnit          /* eCoreUnit */,
     410             :         SfxMapUnit          /* ePresUnit */,
     411             :         OUString&           rText,
     412             :         const IntlWrapper*  /* pIntl */
     413             :     ) const
     414             : {
     415           0 :     rText = OUString();
     416             : 
     417           0 :     switch ( ePres )
     418             :     {
     419             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     420           0 :         rText = ScGlobal::GetRscString(STR_AREA) + ": ";
     421             :         /* !!! fall-through !!! */
     422             : 
     423             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     424             :         {
     425             :             /* Always use OOo:A1 format */
     426           0 :             rText += aRange.Format();
     427             :         }
     428           0 :         break;
     429             : 
     430             :         default:
     431             :         {
     432             :             // added to avoid warnings
     433             :         }
     434             :     }
     435             : 
     436           0 :     return true;
     437             : }
     438             : 
     439             : /**
     440             :  * ScTableListItem - List from Tables (-numbers)
     441             :  */
     442           0 : ScTableListItem::ScTableListItem( const ScTableListItem& rCpy )
     443           0 :     :   SfxPoolItem ( rCpy.Which() ),
     444           0 :         nCount      ( rCpy.nCount )
     445             : {
     446           0 :     if ( nCount > 0 )
     447             :     {
     448           0 :         pTabArr = new SCTAB [nCount];
     449             : 
     450           0 :         for ( sal_uInt16 i=0; i<nCount; i++ )
     451           0 :             pTabArr[i] = rCpy.pTabArr[i];
     452             :     }
     453             :     else
     454           0 :         pTabArr = NULL;
     455           0 : }
     456             : 
     457        6690 : ScTableListItem::~ScTableListItem()
     458             : {
     459        2230 :     delete [] pTabArr;
     460        4460 : }
     461             : 
     462           0 : ScTableListItem& ScTableListItem::operator=( const ScTableListItem& rCpy )
     463             : {
     464           0 :     delete [] pTabArr;
     465             : 
     466           0 :     if ( rCpy.nCount > 0 )
     467             :     {
     468           0 :         pTabArr = new SCTAB [rCpy.nCount];
     469           0 :         for ( sal_uInt16 i=0; i<rCpy.nCount; i++ )
     470           0 :             pTabArr[i] = rCpy.pTabArr[i];
     471             :     }
     472             :     else
     473           0 :         pTabArr = NULL;
     474             : 
     475           0 :     nCount = rCpy.nCount;
     476             : 
     477           0 :     return *this;
     478             : }
     479             : 
     480           0 : bool ScTableListItem::operator==( const SfxPoolItem& rAttr ) const
     481             : {
     482             :     assert(SfxPoolItem::operator==(rAttr));
     483             : 
     484           0 :     const ScTableListItem& rCmp   = static_cast<const ScTableListItem&>(rAttr);
     485           0 :     bool                   bEqual = (nCount == rCmp.nCount);
     486             : 
     487           0 :     if ( nCount > 0 )
     488             :     {
     489           0 :         sal_uInt16  i=0;
     490             : 
     491           0 :         bEqual = ( pTabArr && rCmp.pTabArr );
     492             : 
     493           0 :         while ( bEqual && i<nCount )
     494             :         {
     495           0 :             bEqual = ( pTabArr[i] == rCmp.pTabArr[i] );
     496           0 :             i++;
     497             :         }
     498             :     }
     499           0 :     return bEqual;
     500             : }
     501             : 
     502           0 : SfxPoolItem* ScTableListItem::Clone( SfxItemPool* ) const
     503             : {
     504           0 :     return new ScTableListItem( *this );
     505             : }
     506             : 
     507           0 : bool ScTableListItem::GetPresentation
     508             :     (
     509             :         SfxItemPresentation ePres,
     510             :         SfxMapUnit          /* eCoreUnit */,
     511             :         SfxMapUnit          /* ePresUnit */,
     512             :         OUString&           rText,
     513             :         const IntlWrapper* /* pIntl */
     514             :     ) const
     515             : {
     516           0 :     switch ( ePres )
     517             :     {
     518             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     519             :             {
     520           0 :             rText  = "(";
     521           0 :             if ( nCount>0 && pTabArr )
     522           0 :                 for ( sal_uInt16 i=0; i<nCount; i++ )
     523             :                 {
     524           0 :                     rText += OUString::number( pTabArr[i] );
     525           0 :                     if ( i<(nCount-1) )
     526           0 :                         rText += ",";
     527             :                 }
     528           0 :             rText += ")";
     529             :             }
     530           0 :             return true;
     531             : 
     532             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     533           0 :             rText = OUString();
     534           0 :             return false;
     535             : 
     536             :         default:
     537             :         {
     538             :             // added to avoid warnings
     539             :         }
     540             :     }
     541             : 
     542           0 :     return false;
     543             : }
     544             : 
     545             : /**
     546             :  * ScPageHFItem - Dates from the Head and Foot lines
     547             :  */
     548       11440 : ScPageHFItem::ScPageHFItem( sal_uInt16 nWhichP )
     549             :     :   SfxPoolItem ( nWhichP ),
     550             :         pLeftArea   ( NULL ),
     551             :         pCenterArea ( NULL ),
     552       11440 :         pRightArea  ( NULL )
     553             : {
     554       11440 : }
     555             : 
     556       14034 : ScPageHFItem::ScPageHFItem( const ScPageHFItem& rItem )
     557             :     :   SfxPoolItem ( rItem ),
     558             :         pLeftArea   ( NULL ),
     559             :         pCenterArea ( NULL ),
     560       14034 :         pRightArea  ( NULL )
     561             : {
     562       14034 :     if ( rItem.pLeftArea )
     563        5742 :         pLeftArea = rItem.pLeftArea->Clone();
     564       14034 :     if ( rItem.pCenterArea )
     565        5846 :         pCenterArea = rItem.pCenterArea->Clone();
     566       14034 :     if ( rItem.pRightArea )
     567        5742 :         pRightArea = rItem.pRightArea->Clone();
     568       14034 : }
     569             : 
     570       74934 : ScPageHFItem::~ScPageHFItem()
     571             : {
     572       25042 :     delete pLeftArea;
     573       25042 :     delete pCenterArea;
     574       25042 :     delete pRightArea;
     575       49892 : }
     576             : 
     577        3550 : bool ScPageHFItem::QueryValue( uno::Any& rVal, sal_uInt8 /* nMemberId */ ) const
     578             : {
     579             :     uno::Reference<sheet::XHeaderFooterContent> xContent =
     580        3550 :         new ScHeaderFooterContentObj( pLeftArea, pCenterArea, pRightArea );
     581             : 
     582        3550 :     rVal <<= xContent;
     583        3550 :     return true;
     584             : }
     585             : 
     586        2724 : bool ScPageHFItem::PutValue( const uno::Any& rVal, sal_uInt8 /* nMemberId */ )
     587             : {
     588        2724 :     bool bRet = false;
     589        2724 :     uno::Reference<sheet::XHeaderFooterContent> xContent;
     590        2724 :     if ( rVal >>= xContent )
     591             :     {
     592        2724 :         if ( xContent.is() )
     593             :         {
     594             :             ScHeaderFooterContentObj* pImp =
     595        2724 :                     ScHeaderFooterContentObj::getImplementation( xContent );
     596        2724 :             if (pImp)
     597             :             {
     598        2724 :                 const EditTextObject* pImpLeft = pImp->GetLeftEditObject();
     599        2724 :                 delete pLeftArea;
     600        2724 :                 pLeftArea = pImpLeft ? pImpLeft->Clone() : NULL;
     601             : 
     602        2724 :                 const EditTextObject* pImpCenter = pImp->GetCenterEditObject();
     603        2724 :                 delete pCenterArea;
     604        2724 :                 pCenterArea = pImpCenter ? pImpCenter->Clone() : NULL;
     605             : 
     606        2724 :                 const EditTextObject* pImpRight = pImp->GetRightEditObject();
     607        2724 :                 delete pRightArea;
     608        2724 :                 pRightArea = pImpRight ? pImpRight->Clone() : NULL;
     609             : 
     610        2724 :                 if ( !pLeftArea || !pCenterArea || !pRightArea )
     611             :                 {
     612             :                     // no Text with Null are left
     613         132 :                     ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     614         132 :                     if (!pLeftArea)
     615         132 :                         pLeftArea = aEngine.CreateTextObject();
     616         132 :                     if (!pCenterArea)
     617           0 :                         pCenterArea = aEngine.CreateTextObject();
     618         132 :                     if (!pRightArea)
     619         132 :                         pRightArea = aEngine.CreateTextObject();
     620             :                 }
     621             : 
     622        2724 :                 bRet = true;
     623             :             }
     624             :         }
     625             :     }
     626             : 
     627        2724 :     if (!bRet)
     628             :     {
     629             :         OSL_FAIL("exception - wrong argument");
     630             :     }
     631             : 
     632        2724 :     return true;
     633             : }
     634             : 
     635           0 : OUString ScPageHFItem::GetValueText() const
     636             : {
     637           0 :     return OUString("ScPageHFItem");
     638             : }
     639             : 
     640       17022 : bool ScPageHFItem::operator==( const SfxPoolItem& rItem ) const
     641             : {
     642             :     assert(SfxPoolItem::operator==(rItem));
     643             : 
     644       17022 :     const ScPageHFItem& r = static_cast<const ScPageHFItem&>(rItem);
     645             : 
     646       17022 :     return    ScGlobal::EETextObjEqual(pLeftArea,   r.pLeftArea)
     647        3344 :            && ScGlobal::EETextObjEqual(pCenterArea, r.pCenterArea)
     648       17972 :            && ScGlobal::EETextObjEqual(pRightArea,  r.pRightArea);
     649             : }
     650             : 
     651       14034 : SfxPoolItem* ScPageHFItem::Clone( SfxItemPool* ) const
     652             : {
     653       14034 :     return new ScPageHFItem( *this );
     654             : }
     655             : 
     656           0 : static void lcl_SetSpace( OUString& rStr, const ESelection& rSel )
     657             : {
     658             :     // Text replaced by a space to ensure they are positions:
     659           0 :     sal_Int32 nLen = rSel.nEndPos-rSel.nStartPos;
     660           0 :     rStr = rStr.replaceAt( rSel.nStartPos, nLen, " " );
     661           0 : }
     662             : 
     663           0 : static bool lcl_ConvertFields(EditEngine& rEng, const OUString* pCommands)
     664             : {
     665           0 :     bool bChange = false;
     666           0 :     sal_Int32 nParCnt = rEng.GetParagraphCount();
     667           0 :     for (sal_Int32 nPar = 0; nPar<nParCnt; nPar++)
     668             :     {
     669           0 :         OUString aStr = rEng.GetText( nPar );
     670             :         sal_Int32 nPos;
     671             : 
     672           0 :         while ((nPos = aStr.indexOf(pCommands[0])) != -1)
     673             :         {
     674           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[0].getLength() );
     675           0 :             rEng.QuickInsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), aSel );
     676           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     677             :         }
     678           0 :         while ((nPos = aStr.indexOf(pCommands[1])) != -1)
     679             :         {
     680           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[1].getLength() );
     681           0 :             rEng.QuickInsertField( SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD), aSel );
     682           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     683             :         }
     684           0 :         while ((nPos = aStr.indexOf(pCommands[2])) != -1)
     685             :         {
     686           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[2].getLength() );
     687           0 :             rEng.QuickInsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SVXDATETYPE_VAR), EE_FEATURE_FIELD), aSel );
     688           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     689             :         }
     690           0 :         while ((nPos = aStr.indexOf(pCommands[3])) != -1)
     691             :         {
     692           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[3].getLength() );
     693           0 :             rEng.QuickInsertField( SvxFieldItem(SvxTimeField(), EE_FEATURE_FIELD ), aSel );
     694           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     695             :         }
     696           0 :         while ((nPos = aStr.indexOf(pCommands[4])) != -1)
     697             :         {
     698           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[4].getLength() );
     699           0 :             rEng.QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), aSel );
     700           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     701             :         }
     702           0 :         while ((nPos = aStr.indexOf(pCommands[5])) != -1)
     703             :         {
     704           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[5].getLength() );
     705           0 :             rEng.QuickInsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), aSel );
     706           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     707             :         }
     708           0 :     }
     709           0 :     return bChange;
     710             : }
     711             : 
     712             : #define SC_FIELD_COUNT  6
     713             : 
     714           0 : SfxPoolItem* ScPageHFItem::Create( SvStream& rStream, sal_uInt16 nVer ) const
     715             : {
     716           0 :     EditTextObject* pLeft   = EditTextObject::Create(rStream);
     717           0 :     EditTextObject* pCenter = EditTextObject::Create(rStream);
     718           0 :     EditTextObject* pRight  = EditTextObject::Create(rStream);
     719             : 
     720             :     OSL_ENSURE( pLeft && pCenter && pRight, "Error reading ScPageHFItem" );
     721             : 
     722           0 :     if ( pLeft == NULL   || pLeft->GetParagraphCount() == 0 ||
     723           0 :          pCenter == NULL || pCenter->GetParagraphCount() == 0 ||
     724           0 :          pRight == NULL  || pRight->GetParagraphCount() == 0 )
     725             :     {
     726             :         // If successfully loaded, each object contains at least one paragraph.
     727             :         // Excel import in 5.1 created broken TextObjects (#67442#) that are
     728             :         // corrected here to avoid saving wrong files again (#90487#).
     729           0 :         ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     730           0 :         if ( pLeft == NULL || pLeft->GetParagraphCount() == 0 )
     731             :         {
     732           0 :             delete pLeft;
     733           0 :             pLeft = aEngine.CreateTextObject();
     734             :         }
     735           0 :         if ( pCenter == NULL || pCenter->GetParagraphCount() == 0 )
     736             :         {
     737           0 :             delete pCenter;
     738           0 :             pCenter = aEngine.CreateTextObject();
     739             :         }
     740           0 :         if ( pRight == NULL || pRight->GetParagraphCount() == 0 )
     741             :         {
     742           0 :             delete pRight;
     743           0 :             pRight = aEngine.CreateTextObject();
     744           0 :         }
     745             :     }
     746             : 
     747           0 :     if ( nVer < 1 ) // old field command conversions
     748             :     {
     749             :         sal_uInt16 i;
     750           0 :         const OUString& rDel = ScGlobal::GetRscString( STR_HFCMD_DELIMITER );
     751           0 :         OUString aCommands[SC_FIELD_COUNT];
     752           0 :         for (i=0; i<SC_FIELD_COUNT; i++)
     753           0 :             aCommands[i] = rDel;
     754           0 :         aCommands[0] += ScGlobal::GetRscString(STR_HFCMD_PAGE);
     755           0 :         aCommands[1] += ScGlobal::GetRscString(STR_HFCMD_PAGES);
     756           0 :         aCommands[2] += ScGlobal::GetRscString(STR_HFCMD_DATE);
     757           0 :         aCommands[3] += ScGlobal::GetRscString(STR_HFCMD_TIME);
     758           0 :         aCommands[4] += ScGlobal::GetRscString(STR_HFCMD_FILE);
     759           0 :         aCommands[5] += ScGlobal::GetRscString(STR_HFCMD_TABLE);
     760           0 :         for (i=0; i<SC_FIELD_COUNT; i++)
     761           0 :             aCommands[i] += rDel;
     762             : 
     763           0 :         ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     764           0 :         aEngine.SetText(*pLeft);
     765           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     766             :         {
     767           0 :             delete pLeft;
     768           0 :             pLeft = aEngine.CreateTextObject();
     769             :         }
     770           0 :         aEngine.SetText(*pCenter);
     771           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     772             :         {
     773           0 :             delete pCenter;
     774           0 :             pCenter = aEngine.CreateTextObject();
     775             :         }
     776           0 :         aEngine.SetText(*pRight);
     777           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     778             :         {
     779           0 :             delete pRight;
     780           0 :             pRight = aEngine.CreateTextObject();
     781           0 :         }
     782             :     }
     783             :     else if ( nVer < 2 ) {} // nothing to do: SvxFileField is not exchanged for SvxExtFileField
     784             : 
     785           0 :     ScPageHFItem* pItem = new ScPageHFItem( Which() );
     786           0 :     pItem->SetArea( pLeft,    SC_HF_LEFTAREA   );
     787           0 :     pItem->SetArea( pCenter, SC_HF_CENTERAREA );
     788           0 :     pItem->SetArea( pRight,  SC_HF_RIGHTAREA  );
     789             : 
     790           0 :     return pItem;
     791             : }
     792             : 
     793        3832 : void ScPageHFItem::SetLeftArea( const EditTextObject& rNew )
     794             : {
     795        3832 :     delete pLeftArea;
     796        3832 :     pLeftArea = rNew.Clone();
     797        3832 : }
     798             : 
     799        4000 : void ScPageHFItem::SetCenterArea( const EditTextObject& rNew )
     800             : {
     801        4000 :     delete pCenterArea;
     802        4000 :     pCenterArea = rNew.Clone();
     803        4000 : }
     804             : 
     805        3832 : void ScPageHFItem::SetRightArea( const EditTextObject& rNew )
     806             : {
     807        3832 :     delete pRightArea;
     808        3832 :     pRightArea = rNew.Clone();
     809        3832 : }
     810             : 
     811           0 : void ScPageHFItem::SetArea( EditTextObject *pNew, int nArea )
     812             : {
     813           0 :     switch ( nArea )
     814             :     {
     815           0 :         case SC_HF_LEFTAREA:    delete pLeftArea;   pLeftArea   = pNew; break;
     816           0 :         case SC_HF_CENTERAREA:  delete pCenterArea; pCenterArea = pNew; break;
     817           0 :         case SC_HF_RIGHTAREA:   delete pRightArea;  pRightArea  = pNew; break;
     818             :         default:
     819             :             OSL_FAIL( "New Area?" );
     820             :     }
     821           0 : }
     822             : 
     823             : /**
     824             :  * ScViewObjectModeItem - Display Mode of View Objects
     825             :  */
     826        7008 : ScViewObjectModeItem::ScViewObjectModeItem( sal_uInt16 nWhichP )
     827        7008 :     : SfxEnumItem( nWhichP, VOBJ_MODE_SHOW )
     828             : {
     829        7008 : }
     830             : 
     831          48 : ScViewObjectModeItem::ScViewObjectModeItem( sal_uInt16 nWhichP, ScVObjMode eMode )
     832          48 :     : SfxEnumItem( nWhichP, sal::static_int_cast<sal_uInt16>(eMode) )
     833             : {
     834          48 : }
     835             : 
     836       13524 : ScViewObjectModeItem::~ScViewObjectModeItem()
     837             : {
     838       13524 : }
     839             : 
     840           0 : bool ScViewObjectModeItem::GetPresentation
     841             : (
     842             :     SfxItemPresentation ePres,
     843             :     SfxMapUnit          /* eCoreUnit */,
     844             :     SfxMapUnit          /* ePresUnit */,
     845             :     OUString&           rText,
     846             :     const IntlWrapper* /* pIntl */
     847             : )   const
     848             : {
     849           0 :     OUString aDel(": ");
     850           0 :     rText = OUString();
     851             : 
     852           0 :     switch ( ePres )
     853             :     {
     854             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     855           0 :         switch( Which() )
     856             :         {
     857             :             case SID_SCATTR_PAGE_CHARTS:
     858           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_CHART) + aDel;
     859           0 :             break;
     860             : 
     861             :             case SID_SCATTR_PAGE_OBJECTS:
     862           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_OBJECT) + aDel;
     863           0 :             break;
     864             : 
     865             :             case SID_SCATTR_PAGE_DRAWINGS:
     866           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_DRAWINGS) + aDel;
     867           0 :             break;
     868             : 
     869             :             default:
     870           0 :             ePres = SFX_ITEM_PRESENTATION_NAMELESS; // Default setting!
     871           0 :             break;
     872             :         }
     873             :         /* !!! fall-through !!! */
     874             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     875           0 :         rText += ScGlobal::GetRscString(STR_VOBJ_MODE_SHOW+GetValue());
     876           0 :         return true;
     877             :         break;
     878             : 
     879           0 :         default: break;
     880             :             // added to avoid warnings
     881             :     }
     882             : 
     883           0 :     return false;
     884             : }
     885             : 
     886           0 : OUString ScViewObjectModeItem::GetValueText( sal_uInt16 nVal ) const
     887             : {
     888             :     OSL_ENSURE( nVal <= VOBJ_MODE_HIDE, "enum overflow!" );
     889             : 
     890           0 :     return ScGlobal::GetRscString( STR_VOBJ_MODE_SHOW + (nVal % 2));
     891             : }
     892             : 
     893           0 : sal_uInt16 ScViewObjectModeItem::GetValueCount() const
     894             : {
     895           0 :     return 2;
     896             : }
     897             : 
     898          48 : SfxPoolItem* ScViewObjectModeItem::Clone( SfxItemPool* ) const
     899             : {
     900          48 :     return new ScViewObjectModeItem( *this );
     901             : }
     902             : 
     903           0 : sal_uInt16 ScViewObjectModeItem::GetVersion( sal_uInt16 /* nFileVersion */ ) const
     904             : {
     905           0 :     return 1;
     906             : }
     907             : 
     908           0 : SfxPoolItem* ScViewObjectModeItem::Create(
     909             :                                     SvStream&   rStream,
     910             :                                     sal_uInt16      nVersion ) const
     911             : {
     912           0 :     if ( nVersion == 0 )
     913             :     {
     914             :         // Old Version with AllEnuItem -> produce with Mode "Show"
     915           0 :         return new ScViewObjectModeItem( Which() );
     916             :     }
     917             :     else
     918             :     {
     919             :         sal_uInt16 nVal;
     920           0 :         rStream.ReadUInt16( nVal );
     921             : 
     922             :         //#i80528# adapt to new range eventually
     923           0 :         if((sal_uInt16)VOBJ_MODE_HIDE < nVal) nVal = (sal_uInt16)VOBJ_MODE_SHOW;
     924             : 
     925           0 :         return new ScViewObjectModeItem( Which(), (ScVObjMode)nVal);
     926             :     }
     927             : }
     928             : 
     929             : /**
     930             :  * Double
     931             :  */
     932           0 : ScDoubleItem::ScDoubleItem( sal_uInt16 nWhichP, double nVal )
     933             :     :   SfxPoolItem ( nWhichP ),
     934           0 :         nValue  ( nVal )
     935             : {
     936           0 : }
     937             : 
     938           0 : ScDoubleItem::ScDoubleItem( const ScDoubleItem& rItem )
     939           0 :     :   SfxPoolItem ( rItem )
     940             : {
     941           0 :         nValue = rItem.nValue;
     942           0 : }
     943             : 
     944           0 : OUString ScDoubleItem::GetValueText() const
     945             : {
     946           0 :     return OUString("ScDoubleItem");
     947             : }
     948             : 
     949           0 : bool ScDoubleItem::operator==( const SfxPoolItem& rItem ) const
     950             : {
     951             :     assert(SfxPoolItem::operator==(rItem));
     952           0 :     const ScDoubleItem& _rItem = static_cast<const ScDoubleItem&>(rItem);
     953           0 :     return nValue == _rItem.nValue;
     954             : }
     955             : 
     956           0 : SfxPoolItem* ScDoubleItem::Clone( SfxItemPool* ) const
     957             : {
     958           0 :     return new ScDoubleItem( *this );
     959             : }
     960             : 
     961           0 : SfxPoolItem* ScDoubleItem::Create( SvStream& rStream, sal_uInt16 /* nVer */ ) const
     962             : {
     963           0 :     double nTmp=0;
     964           0 :     rStream.ReadDouble( nTmp );
     965             : 
     966           0 :     ScDoubleItem* pItem = new ScDoubleItem( Which(), nTmp );
     967             : 
     968           0 :     return pItem;
     969             : }
     970             : 
     971           0 : ScDoubleItem::~ScDoubleItem()
     972             : {
     973           0 : }
     974             : 
     975        2782 : ScPageScaleToItem::ScPageScaleToItem() :
     976             :     SfxPoolItem( ATTR_PAGE_SCALETO ),
     977             :     mnWidth( 0 ),
     978        2782 :     mnHeight( 0 )
     979             : {
     980        2782 : }
     981             : 
     982        2338 : ScPageScaleToItem::ScPageScaleToItem( sal_uInt16 nWidth, sal_uInt16 nHeight ) :
     983             :     SfxPoolItem( ATTR_PAGE_SCALETO ),
     984             :     mnWidth( nWidth ),
     985        2338 :     mnHeight( nHeight )
     986             : {
     987        2338 : }
     988             : 
     989       12892 : ScPageScaleToItem::~ScPageScaleToItem()
     990             : {
     991       12892 : }
     992             : 
     993        2804 : ScPageScaleToItem* ScPageScaleToItem::Clone( SfxItemPool* ) const
     994             : {
     995        2804 :     return new ScPageScaleToItem( *this );
     996             : }
     997             : 
     998          34 : bool ScPageScaleToItem::operator==( const SfxPoolItem& rCmp ) const
     999             : {
    1000             :     assert(SfxPoolItem::operator==(rCmp));
    1001          34 :     const ScPageScaleToItem& rPageCmp = static_cast< const ScPageScaleToItem& >( rCmp );
    1002          34 :     return ((mnWidth == rPageCmp.mnWidth) && (mnHeight == rPageCmp.mnHeight)) ? 1 : 0;
    1003             : }
    1004             : 
    1005             : namespace {
    1006           0 : void lclAppendScalePageCount( OUString& rText, sal_uInt16 nPages )
    1007             : {
    1008           0 :     rText += ": ";
    1009           0 :     if( nPages )
    1010             :     {
    1011           0 :         OUString aPages( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_PAGES ) );
    1012           0 :         rText += aPages.replaceFirst( "%1", OUString::number( nPages ) );
    1013             :     }
    1014             :     else
    1015           0 :         rText += ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_AUTO );
    1016           0 : }
    1017             : } // namespace
    1018             : 
    1019           0 : bool ScPageScaleToItem::GetPresentation(
    1020             :         SfxItemPresentation ePres, SfxMapUnit, SfxMapUnit, OUString& rText, const IntlWrapper* ) const
    1021             : {
    1022           0 :     rText = OUString();
    1023           0 :     if( !IsValid())
    1024           0 :         return false;
    1025             : 
    1026           0 :     OUString aName( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALETO ) );
    1027           0 :     OUString aValue( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_WIDTH ) );
    1028           0 :     lclAppendScalePageCount( aValue, mnWidth );
    1029           0 :     aValue = aValue + ", " + ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_HEIGHT );
    1030           0 :     lclAppendScalePageCount( aValue, mnHeight );
    1031             : 
    1032           0 :     switch( ePres )
    1033             :     {
    1034             :         case SFX_ITEM_PRESENTATION_NAMELESS:
    1035           0 :             rText = aValue;
    1036           0 :             return true;
    1037             :         break;
    1038             : 
    1039             :         case SFX_ITEM_PRESENTATION_COMPLETE:
    1040           0 :             rText = aName + " (" + aValue + ")";
    1041           0 :             return true;
    1042             :         break;
    1043             : 
    1044             :         default:
    1045             :             OSL_FAIL( "ScPageScaleToItem::GetPresentation - unknown presentation mode" );
    1046             :     }
    1047           0 :     return false;
    1048             : }
    1049             : 
    1050           0 : bool ScPageScaleToItem::QueryValue( uno::Any& rAny, sal_uInt8 nMemberId ) const
    1051             : {
    1052           0 :     bool bRet = true;
    1053           0 :     switch( nMemberId )
    1054             :     {
    1055           0 :         case SC_MID_PAGE_SCALETO_WIDTH:     rAny <<= mnWidth;   break;
    1056           0 :         case SC_MID_PAGE_SCALETO_HEIGHT:    rAny <<= mnHeight;  break;
    1057             :         default:
    1058             :             OSL_FAIL( "ScPageScaleToItem::QueryValue - unknown member ID" );
    1059           0 :             bRet = false;
    1060             :     }
    1061           0 :     return bRet;
    1062             : }
    1063             : 
    1064           0 : bool ScPageScaleToItem::PutValue( const uno::Any& rAny, sal_uInt8 nMemberId )
    1065             : {
    1066           0 :     bool bRet = false;
    1067           0 :     switch( nMemberId )
    1068             :     {
    1069           0 :         case SC_MID_PAGE_SCALETO_WIDTH:     bRet = rAny >>= mnWidth;    break;
    1070           0 :         case SC_MID_PAGE_SCALETO_HEIGHT:    bRet = rAny >>= mnHeight;   break;
    1071             :         default:
    1072             :             OSL_FAIL( "ScPageScaleToItem::PutValue - unknown member ID" );
    1073             :     }
    1074           0 :     return bRet;
    1075             : }
    1076             : 
    1077       15372 : ScCondFormatItem::ScCondFormatItem():
    1078       15372 :     SfxPoolItem( ATTR_CONDITIONAL )
    1079             : {
    1080       15372 : }
    1081             : 
    1082        1024 : ScCondFormatItem::ScCondFormatItem( const std::vector<sal_uInt32>& rIndex ):
    1083             :     SfxPoolItem( ATTR_CONDITIONAL ),
    1084        1024 :     maIndex( rIndex )
    1085             : {
    1086        1024 : }
    1087             : 
    1088       19544 : ScCondFormatItem::~ScCondFormatItem()
    1089             : {
    1090       19544 : }
    1091             : 
    1092       37772 : bool ScCondFormatItem::operator==( const SfxPoolItem& rCmp ) const
    1093             : {
    1094       37772 :     return maIndex == static_cast<const ScCondFormatItem&>(rCmp).maIndex;
    1095             : }
    1096             : 
    1097        1024 : ScCondFormatItem* ScCondFormatItem::Clone(SfxItemPool*) const
    1098             : {
    1099        1024 :     return new ScCondFormatItem(maIndex);
    1100             : }
    1101             : 
    1102           0 : void ScCondFormatItem::AddCondFormatData( sal_uInt32 nIndex )
    1103             : {
    1104           0 :     maIndex.push_back(nIndex);
    1105           0 : }
    1106             : 
    1107       13036 : void ScCondFormatItem::SetCondFormatData( const std::vector<sal_uInt32>& rIndex )
    1108             : {
    1109       13036 :     maIndex = rIndex;
    1110       13264 : }
    1111             : 
    1112             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10