LCOV - code coverage report
Current view: top level - sc/source/core/tool - viewopti.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 190 326 58.3 %
Date: 2014-11-03 Functions: 15 36 41.7 %
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 <vcl/svapp.hxx>
      21             : 
      22             : #include <com/sun/star/uno/Any.hxx>
      23             : #include <com/sun/star/uno/Sequence.hxx>
      24             : 
      25             : #include "global.hxx"
      26             : #include "globstr.hrc"
      27             : #include "cfgids.hxx"
      28             : #include "viewopti.hxx"
      29             : #include "rechead.hxx"
      30             : #include "scresid.hxx"
      31             : #include "sc.hrc"
      32             : #include "miscuno.hxx"
      33             : 
      34             : using namespace utl;
      35             : using namespace com::sun::star::uno;
      36             : 
      37           0 : TYPEINIT1(ScTpViewItem, SfxPoolItem);
      38             : 
      39             : // class ScGridOptions
      40             : 
      41        4870 : void ScGridOptions::SetDefaults()
      42             : {
      43        4870 :     *this = ScGridOptions();
      44             : 
      45             :     //  Raster-Defaults sind jetzt zwischen den Apps unterschiedlich
      46             :     //  darum hier selber eintragen (alles in 1/100mm)
      47             : 
      48        4870 :     if ( ScOptionsUtil::IsMetricSystem() )
      49             :     {
      50           0 :         nFldDrawX = 1000;   // 1cm
      51           0 :         nFldDrawY = 1000;
      52           0 :         nFldSnapX = 1000;
      53           0 :         nFldSnapY = 1000;
      54             :     }
      55             :     else
      56             :     {
      57        4870 :         nFldDrawX = 1270;   // 0,5"
      58        4870 :         nFldDrawY = 1270;
      59        4870 :         nFldSnapX = 1270;
      60        4870 :         nFldSnapY = 1270;
      61             :     }
      62        4870 :     nFldDivisionX = 1;
      63        4870 :     nFldDivisionY = 1;
      64        4870 : }
      65             : 
      66       30060 : const ScGridOptions& ScGridOptions::operator=( const ScGridOptions& rCpy )
      67             : {
      68       30060 :     nFldDrawX       = rCpy.nFldDrawX;       // UINT32
      69       30060 :     nFldDivisionX   = rCpy.nFldDivisionX;
      70       30060 :     nFldDrawY       = rCpy.nFldDrawY;
      71       30060 :     nFldDivisionY   = rCpy.nFldDivisionY;
      72       30060 :     nFldSnapX       = rCpy.nFldSnapX;
      73       30060 :     nFldSnapY       = rCpy.nFldSnapY;
      74       30060 :     bUseGridsnap    = rCpy.bUseGridsnap;    // BitBool
      75       30060 :     bSynchronize    = rCpy.bSynchronize;
      76       30060 :     bGridVisible    = rCpy.bGridVisible;
      77       30060 :     bEqualGrid      = rCpy.bEqualGrid;
      78             : 
      79       30060 :     return *this;
      80             : }
      81             : 
      82           0 : bool ScGridOptions::operator==( const ScGridOptions& rCpy ) const
      83             : {
      84           0 :     return (   nFldDrawX        == rCpy.nFldDrawX
      85           0 :             && nFldDivisionX    == rCpy.nFldDivisionX
      86           0 :             && nFldDrawY        == rCpy.nFldDrawY
      87           0 :             && nFldDivisionY    == rCpy.nFldDivisionY
      88           0 :             && nFldSnapX        == rCpy.nFldSnapX
      89           0 :             && nFldSnapY        == rCpy.nFldSnapY
      90           0 :             && bUseGridsnap     == rCpy.bUseGridsnap
      91           0 :             && bSynchronize     == rCpy.bSynchronize
      92           0 :             && bGridVisible     == rCpy.bGridVisible
      93           0 :             && bEqualGrid       == rCpy.bEqualGrid );
      94             : }
      95             : 
      96             : // class ScViewOptions
      97             : 
      98        4870 : ScViewOptions::ScViewOptions()
      99             : {
     100        4870 :     SetDefaults();
     101        4870 : }
     102             : 
     103        8858 : ScViewOptions::ScViewOptions( const ScViewOptions& rCpy )
     104             : {
     105        8858 :     *this = rCpy;
     106        8858 : }
     107             : 
     108       13628 : ScViewOptions::~ScViewOptions()
     109             : {
     110       13628 : }
     111             : 
     112        4870 : void ScViewOptions::SetDefaults()
     113             : {
     114        4870 :     aOptArr[ VOPT_FORMULAS    ] = false;
     115        4870 :     aOptArr[ VOPT_SYNTAX      ] = false;
     116        4870 :     aOptArr[ VOPT_HELPLINES   ] = false;
     117        4870 :     aOptArr[ VOPT_GRID_ONTOP  ] = false;
     118        4870 :     aOptArr[ VOPT_NOTES       ] = true;
     119        4870 :     aOptArr[ VOPT_NULLVALS    ] = true;
     120        4870 :     aOptArr[ VOPT_VSCROLL     ] = true;
     121        4870 :     aOptArr[ VOPT_HSCROLL     ] = true;
     122        4870 :     aOptArr[ VOPT_TABCONTROLS ] = true;
     123        4870 :     aOptArr[ VOPT_OUTLINER    ] = true;
     124        4870 :     aOptArr[ VOPT_HEADER      ] = true;
     125        4870 :     aOptArr[ VOPT_GRID        ] = true;
     126        4870 :     aOptArr[ VOPT_ANCHOR      ] = true;
     127        4870 :     aOptArr[ VOPT_PAGEBREAKS  ] = true;
     128        4870 :     aOptArr[ VOPT_CLIPMARKS   ] = true;
     129             : 
     130        4870 :     aModeArr[VOBJ_TYPE_OLE ]  = VOBJ_MODE_SHOW;
     131        4870 :     aModeArr[VOBJ_TYPE_CHART] = VOBJ_MODE_SHOW;
     132        4870 :     aModeArr[VOBJ_TYPE_DRAW ] = VOBJ_MODE_SHOW;
     133             : 
     134        4870 :     aGridCol     = Color( SC_STD_GRIDCOLOR );
     135        4870 :     aGridColName = ScGlobal::GetRscString( STR_GRIDCOLOR );
     136             : 
     137        4870 :     aGridOpt.SetDefaults();
     138        4870 : }
     139             : 
     140        2010 : Color ScViewOptions::GetGridColor( OUString* pStrName ) const
     141             : {
     142        2010 :     if ( pStrName )
     143         520 :         *pStrName = aGridColName;
     144             : 
     145        2010 :     return aGridCol;
     146             : }
     147             : 
     148       18998 : const ScViewOptions& ScViewOptions::operator=( const ScViewOptions& rCpy )
     149             : {
     150             :     sal_uInt16 i;
     151             : 
     152       18998 :     for ( i=0; i<MAX_OPT; i++ )  aOptArr [i] = rCpy.aOptArr[i];
     153       18998 :     for ( i=0; i<MAX_TYPE; i++ ) aModeArr[i] = rCpy.aModeArr[i];
     154             : 
     155       18998 :     aGridCol        = rCpy.aGridCol;
     156       18998 :     aGridColName    = rCpy.aGridColName;
     157       18998 :     aGridOpt        = rCpy.aGridOpt;
     158             : 
     159       18998 :     return *this;
     160             : }
     161             : 
     162          32 : bool ScViewOptions::operator==( const ScViewOptions& rOpt ) const
     163             : {
     164          32 :     bool bEqual = true;
     165             :     sal_uInt16  i;
     166             : 
     167          32 :     for ( i=0; i<MAX_OPT && bEqual; i++ )  bEqual = (aOptArr [i] == rOpt.aOptArr[i]);
     168          32 :     for ( i=0; i<MAX_TYPE && bEqual; i++ ) bEqual = (aModeArr[i] == rOpt.aModeArr[i]);
     169             : 
     170          32 :     bEqual = bEqual && (aGridCol       == rOpt.aGridCol);
     171          32 :     bEqual = bEqual && (aGridColName   == rOpt.aGridColName);
     172          32 :     bEqual = bEqual && (aGridOpt       == rOpt.aGridOpt);
     173             : 
     174          32 :     return bEqual;
     175             : }
     176             : 
     177           0 : SvxGridItem* ScViewOptions::CreateGridItem( sal_uInt16 nId /* = SID_ATTR_GRID_OPTIONS */ ) const
     178             : {
     179           0 :     SvxGridItem* pItem = new SvxGridItem( nId );
     180             : 
     181           0 :     pItem->SetFldDrawX      ( aGridOpt.GetFldDrawX() );
     182           0 :     pItem->SetFldDivisionX  ( aGridOpt.GetFldDivisionX() );
     183           0 :     pItem->SetFldDrawY      ( aGridOpt.GetFldDrawY() );
     184           0 :     pItem->SetFldDivisionY  ( aGridOpt.GetFldDivisionY() );
     185           0 :     pItem->SetFldSnapX      ( aGridOpt.GetFldSnapX() );
     186           0 :     pItem->SetFldSnapY      ( aGridOpt.GetFldSnapY() );
     187           0 :     pItem->SetUseGridSnap   ( aGridOpt.GetUseGridSnap() );
     188           0 :     pItem->SetSynchronize   ( aGridOpt.GetSynchronize() );
     189           0 :     pItem->SetGridVisible   ( aGridOpt.GetGridVisible() );
     190           0 :     pItem->SetEqualGrid     ( aGridOpt.GetEqualGrid() );
     191             : 
     192           0 :     return pItem;
     193             : }
     194             : 
     195             : //      ScTpViewItem - Daten fuer die ViewOptions-TabPage
     196             : 
     197           0 : ScTpViewItem::ScTpViewItem( sal_uInt16 nWhichP, const ScViewOptions& rOpt )
     198             :     :   SfxPoolItem ( nWhichP ),
     199           0 :         theOptions  ( rOpt )
     200             : {
     201           0 : }
     202             : 
     203           0 : ScTpViewItem::ScTpViewItem( const ScTpViewItem& rItem )
     204             :     :   SfxPoolItem ( rItem ),
     205           0 :         theOptions  ( rItem.theOptions )
     206             : {
     207           0 : }
     208             : 
     209           0 : ScTpViewItem::~ScTpViewItem()
     210             : {
     211           0 : }
     212             : 
     213           0 : OUString ScTpViewItem::GetValueText() const
     214             : {
     215           0 :     return OUString("ScTpViewItem");
     216             : }
     217             : 
     218           0 : bool ScTpViewItem::operator==( const SfxPoolItem& rItem ) const
     219             : {
     220             :     assert(SfxPoolItem::operator==(rItem));
     221             : 
     222           0 :     const ScTpViewItem& rPItem = static_cast<const ScTpViewItem&>(rItem);
     223             : 
     224           0 :     return ( theOptions == rPItem.theOptions );
     225             : }
     226             : 
     227           0 : SfxPoolItem* ScTpViewItem::Clone( SfxItemPool * ) const
     228             : {
     229           0 :     return new ScTpViewItem( *this );
     230             : }
     231             : 
     232             : //  Config Item containing view options
     233             : 
     234             : #define CFGPATH_LAYOUT      "Office.Calc/Layout"
     235             : 
     236             : #define SCLAYOUTOPT_GRIDLINES       0
     237             : #define SCLAYOUTOPT_GRIDCOLOR       1
     238             : #define SCLAYOUTOPT_PAGEBREAK       2
     239             : #define SCLAYOUTOPT_GUIDE           3
     240             : #define SCLAYOUTOPT_COLROWHDR       4
     241             : #define SCLAYOUTOPT_HORISCROLL      5
     242             : #define SCLAYOUTOPT_VERTSCROLL      6
     243             : #define SCLAYOUTOPT_SHEETTAB        7
     244             : #define SCLAYOUTOPT_OUTLINE         8
     245             : #define SCLAYOUTOPT_GRID_ONCOLOR    9
     246             : #define SCLAYOUTOPT_COUNT           10
     247             : 
     248             : #define CFGPATH_DISPLAY     "Office.Calc/Content/Display"
     249             : 
     250             : #define SCDISPLAYOPT_FORMULA        0
     251             : #define SCDISPLAYOPT_ZEROVALUE      1
     252             : #define SCDISPLAYOPT_NOTETAG        2
     253             : #define SCDISPLAYOPT_VALUEHI        3
     254             : #define SCDISPLAYOPT_ANCHOR         4
     255             : #define SCDISPLAYOPT_TEXTOVER       5
     256             : #define SCDISPLAYOPT_OBJECTGRA      6
     257             : #define SCDISPLAYOPT_CHART          7
     258             : #define SCDISPLAYOPT_DRAWING        8
     259             : #define SCDISPLAYOPT_COUNT          9
     260             : 
     261             : #define CFGPATH_GRID        "Office.Calc/Grid"
     262             : 
     263             : #define SCGRIDOPT_RESOLU_X          0
     264             : #define SCGRIDOPT_RESOLU_Y          1
     265             : #define SCGRIDOPT_SUBDIV_X          2
     266             : #define SCGRIDOPT_SUBDIV_Y          3
     267             : #define SCGRIDOPT_OPTION_X          4
     268             : #define SCGRIDOPT_OPTION_Y          5
     269             : #define SCGRIDOPT_SNAPTOGRID        6
     270             : #define SCGRIDOPT_SYNCHRON          7
     271             : #define SCGRIDOPT_VISIBLE           8
     272             : #define SCGRIDOPT_SIZETOGRID        9
     273             : #define SCGRIDOPT_COUNT             10
     274             : 
     275          70 : Sequence<OUString> ScViewCfg::GetLayoutPropertyNames()
     276             : {
     277             :     static const char* aPropNames[] =
     278             :     {
     279             :         "Line/GridLine",            // SCLAYOUTOPT_GRIDLINES
     280             :         "Line/GridLineColor",       // SCLAYOUTOPT_GRIDCOLOR
     281             :         "Line/PageBreak",           // SCLAYOUTOPT_PAGEBREAK
     282             :         "Line/Guide",               // SCLAYOUTOPT_GUIDE
     283             :         "Window/ColumnRowHeader",   // SCLAYOUTOPT_COLROWHDR
     284             :         "Window/HorizontalScroll",  // SCLAYOUTOPT_HORISCROLL
     285             :         "Window/VerticalScroll",    // SCLAYOUTOPT_VERTSCROLL
     286             :         "Window/SheetTab",          // SCLAYOUTOPT_SHEETTAB
     287             :         "Window/OutlineSymbol",     // SCLAYOUTOPT_OUTLINE
     288             :         "Line/GridOnColoredCells"   // SCLAYOUTOPT_GRID_ONCOLOR
     289             :     };
     290          70 :     Sequence<OUString> aNames(SCLAYOUTOPT_COUNT);
     291          70 :     OUString* pNames = aNames.getArray();
     292         770 :     for(int i = 0; i < SCLAYOUTOPT_COUNT; i++)
     293         700 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     294             : 
     295          70 :     return aNames;
     296             : }
     297             : 
     298          70 : Sequence<OUString> ScViewCfg::GetDisplayPropertyNames()
     299             : {
     300             :     static const char* aPropNames[] =
     301             :     {
     302             :         "Formula",                  // SCDISPLAYOPT_FORMULA
     303             :         "ZeroValue",                // SCDISPLAYOPT_ZEROVALUE
     304             :         "NoteTag",                  // SCDISPLAYOPT_NOTETAG
     305             :         "ValueHighlighting",        // SCDISPLAYOPT_VALUEHI
     306             :         "Anchor",                   // SCDISPLAYOPT_ANCHOR
     307             :         "TextOverflow",             // SCDISPLAYOPT_TEXTOVER
     308             :         "ObjectGraphic",            // SCDISPLAYOPT_OBJECTGRA
     309             :         "Chart",                    // SCDISPLAYOPT_CHART
     310             :         "DrawingObject"             // SCDISPLAYOPT_DRAWING
     311             :     };
     312          70 :     Sequence<OUString> aNames(SCDISPLAYOPT_COUNT);
     313          70 :     OUString* pNames = aNames.getArray();
     314         700 :     for(int i = 0; i < SCDISPLAYOPT_COUNT; i++)
     315         630 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     316             : 
     317          70 :     return aNames;
     318             : }
     319             : 
     320          70 : Sequence<OUString> ScViewCfg::GetGridPropertyNames()
     321             : {
     322             :     static const char* aPropNames[] =
     323             :     {
     324             :         "Resolution/XAxis/NonMetric",   // SCGRIDOPT_RESOLU_X
     325             :         "Resolution/YAxis/NonMetric",   // SCGRIDOPT_RESOLU_Y
     326             :         "Subdivision/XAxis",            // SCGRIDOPT_SUBDIV_X
     327             :         "Subdivision/YAxis",            // SCGRIDOPT_SUBDIV_Y
     328             :         "Option/XAxis/NonMetric",       // SCGRIDOPT_OPTION_X
     329             :         "Option/YAxis/NonMetric",       // SCGRIDOPT_OPTION_Y
     330             :         "Option/SnapToGrid",            // SCGRIDOPT_SNAPTOGRID
     331             :         "Option/Synchronize",           // SCGRIDOPT_SYNCHRON
     332             :         "Option/VisibleGrid",           // SCGRIDOPT_VISIBLE
     333             :         "Option/SizeToGrid"             // SCGRIDOPT_SIZETOGRID
     334             :     };
     335          70 :     Sequence<OUString> aNames(SCGRIDOPT_COUNT);
     336          70 :     OUString* pNames = aNames.getArray();
     337         770 :     for(int i = 0; i < SCGRIDOPT_COUNT; i++)
     338         700 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     339             : 
     340             :     //  adjust for metric system
     341          70 :     if (ScOptionsUtil::IsMetricSystem())
     342             :     {
     343           0 :         pNames[SCGRIDOPT_RESOLU_X] = "Resolution/XAxis/Metric";
     344           0 :         pNames[SCGRIDOPT_RESOLU_Y] = "Resolution/YAxis/Metric";
     345           0 :         pNames[SCGRIDOPT_OPTION_X] = "Option/XAxis/Metric";
     346           0 :         pNames[SCGRIDOPT_OPTION_Y] = "Option/YAxis/Metric";
     347             :     }
     348             : 
     349          70 :     return aNames;
     350             : }
     351             : 
     352          70 : ScViewCfg::ScViewCfg() :
     353             :     aLayoutItem( OUString( CFGPATH_LAYOUT ) ),
     354             :     aDisplayItem( OUString( CFGPATH_DISPLAY ) ),
     355          70 :     aGridItem( OUString( CFGPATH_GRID ) )
     356             : {
     357          70 :     sal_Int32 nIntVal = 0;
     358             : 
     359          70 :     Sequence<OUString> aNames = GetLayoutPropertyNames();
     360         140 :     Sequence<Any> aValues = aLayoutItem.GetProperties(aNames);
     361          70 :     aLayoutItem.EnableNotification(aNames);
     362          70 :     const Any* pValues = aValues.getConstArray();
     363             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     364          70 :     if(aValues.getLength() == aNames.getLength())
     365             :     {
     366         770 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     367             :         {
     368             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     369         700 :             if(pValues[nProp].hasValue())
     370             :             {
     371         700 :                 switch(nProp)
     372             :                 {
     373             :                     case SCLAYOUTOPT_GRIDCOLOR:
     374          70 :                         if ( pValues[nProp] >>= nIntVal )
     375          70 :                             SetGridColor( Color(nIntVal), EMPTY_OUSTRING );
     376          70 :                         break;
     377             :                     case SCLAYOUTOPT_GRIDLINES:
     378          70 :                         SetOption( VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     379          70 :                         break;
     380             :                     case SCLAYOUTOPT_GRID_ONCOLOR:
     381          70 :                         SetOption( VOPT_GRID_ONTOP, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     382          70 :                         break;
     383             :                     case SCLAYOUTOPT_PAGEBREAK:
     384          70 :                         SetOption( VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     385          70 :                         break;
     386             :                     case SCLAYOUTOPT_GUIDE:
     387          70 :                         SetOption( VOPT_HELPLINES, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     388          70 :                         break;
     389             :                     case SCLAYOUTOPT_COLROWHDR:
     390          70 :                         SetOption( VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     391          70 :                         break;
     392             :                     case SCLAYOUTOPT_HORISCROLL:
     393          70 :                         SetOption( VOPT_HSCROLL, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     394          70 :                         break;
     395             :                     case SCLAYOUTOPT_VERTSCROLL:
     396          70 :                         SetOption( VOPT_VSCROLL, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     397          70 :                         break;
     398             :                     case SCLAYOUTOPT_SHEETTAB:
     399          70 :                         SetOption( VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     400          70 :                         break;
     401             :                     case SCLAYOUTOPT_OUTLINE:
     402          70 :                         SetOption( VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     403          70 :                         break;
     404             :                 }
     405             :             }
     406             :         }
     407             :     }
     408          70 :     aLayoutItem.SetCommitLink( LINK( this, ScViewCfg, LayoutCommitHdl ) );
     409             : 
     410          70 :     aNames = GetDisplayPropertyNames();
     411          70 :     aValues = aDisplayItem.GetProperties(aNames);
     412          70 :     aDisplayItem.EnableNotification(aNames);
     413          70 :     pValues = aValues.getConstArray();
     414             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     415          70 :     if(aValues.getLength() == aNames.getLength())
     416             :     {
     417         700 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     418             :         {
     419             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     420         630 :             if(pValues[nProp].hasValue())
     421             :             {
     422         630 :                 switch(nProp)
     423             :                 {
     424             :                     case SCDISPLAYOPT_FORMULA:
     425          70 :                         SetOption( VOPT_FORMULAS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     426          70 :                         break;
     427             :                     case SCDISPLAYOPT_ZEROVALUE:
     428          70 :                         SetOption( VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     429          70 :                         break;
     430             :                     case SCDISPLAYOPT_NOTETAG:
     431          70 :                         SetOption( VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     432          70 :                         break;
     433             :                     case SCDISPLAYOPT_VALUEHI:
     434          70 :                         SetOption( VOPT_SYNTAX, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     435          70 :                         break;
     436             :                     case SCDISPLAYOPT_ANCHOR:
     437          70 :                         SetOption( VOPT_ANCHOR, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     438          70 :                         break;
     439             :                     case SCDISPLAYOPT_TEXTOVER:
     440          70 :                         SetOption( VOPT_CLIPMARKS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     441          70 :                         break;
     442             :                     case SCDISPLAYOPT_OBJECTGRA:
     443          70 :                         if ( pValues[nProp] >>= nIntVal )
     444             :                         {
     445             :                             //#i80528# adapt to new range eventually
     446          70 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     447             : 
     448          70 :                             SetObjMode( VOBJ_TYPE_OLE, (ScVObjMode)nIntVal);
     449             :                         }
     450          70 :                         break;
     451             :                     case SCDISPLAYOPT_CHART:
     452          70 :                         if ( pValues[nProp] >>= nIntVal )
     453             :                         {
     454             :                             //#i80528# adapt to new range eventually
     455          70 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     456             : 
     457          70 :                             SetObjMode( VOBJ_TYPE_CHART, (ScVObjMode)nIntVal);
     458             :                         }
     459          70 :                         break;
     460             :                     case SCDISPLAYOPT_DRAWING:
     461          70 :                         if ( pValues[nProp] >>= nIntVal )
     462             :                         {
     463             :                             //#i80528# adapt to new range eventually
     464          70 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     465             : 
     466          70 :                             SetObjMode( VOBJ_TYPE_DRAW, (ScVObjMode)nIntVal);
     467             :                         }
     468          70 :                         break;
     469             :                 }
     470             :             }
     471             :         }
     472             :     }
     473          70 :     aDisplayItem.SetCommitLink( LINK( this, ScViewCfg, DisplayCommitHdl ) );
     474             : 
     475          70 :     ScGridOptions aGrid = GetGridOptions();     //! initialization necessary?
     476          70 :     aNames = GetGridPropertyNames();
     477          70 :     aValues = aGridItem.GetProperties(aNames);
     478          70 :     aGridItem.EnableNotification(aNames);
     479          70 :     pValues = aValues.getConstArray();
     480             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     481          70 :     if(aValues.getLength() == aNames.getLength())
     482             :     {
     483         770 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     484             :         {
     485             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     486         700 :             if(pValues[nProp].hasValue())
     487             :             {
     488         700 :                 switch(nProp)
     489             :                 {
     490             :                     case SCGRIDOPT_RESOLU_X:
     491          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDrawX( nIntVal );
     492          70 :                         break;
     493             :                     case SCGRIDOPT_RESOLU_Y:
     494          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDrawY( nIntVal );
     495          70 :                         break;
     496             :                     case SCGRIDOPT_SUBDIV_X:
     497          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDivisionX( nIntVal );
     498          70 :                         break;
     499             :                     case SCGRIDOPT_SUBDIV_Y:
     500          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDivisionY( nIntVal );
     501          70 :                         break;
     502             :                     case SCGRIDOPT_OPTION_X:
     503          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldSnapX( nIntVal );
     504          70 :                         break;
     505             :                     case SCGRIDOPT_OPTION_Y:
     506          70 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldSnapY( nIntVal );
     507          70 :                         break;
     508             :                     case SCGRIDOPT_SNAPTOGRID:
     509          70 :                         aGrid.SetUseGridSnap( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     510          70 :                         break;
     511             :                     case SCGRIDOPT_SYNCHRON:
     512          70 :                         aGrid.SetSynchronize( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     513          70 :                         break;
     514             :                     case SCGRIDOPT_VISIBLE:
     515          70 :                         aGrid.SetGridVisible( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     516          70 :                         break;
     517             :                     case SCGRIDOPT_SIZETOGRID:
     518          70 :                         aGrid.SetEqualGrid( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     519          70 :                         break;
     520             :                 }
     521             :             }
     522             :         }
     523             :     }
     524          70 :     SetGridOptions( aGrid );
     525         140 :     aGridItem.SetCommitLink( LINK( this, ScViewCfg, GridCommitHdl ) );
     526          70 : }
     527             : 
     528           0 : IMPL_LINK_NOARG(ScViewCfg, LayoutCommitHdl)
     529             : {
     530           0 :     Sequence<OUString> aNames = GetLayoutPropertyNames();
     531           0 :     Sequence<Any> aValues(aNames.getLength());
     532           0 :     Any* pValues = aValues.getArray();
     533             : 
     534           0 :     for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     535             :     {
     536           0 :         switch(nProp)
     537             :         {
     538             :             case SCLAYOUTOPT_GRIDCOLOR:
     539           0 :                 pValues[nProp] <<= (sal_Int32) GetGridColor().GetColor();
     540           0 :                 break;
     541             :             case SCLAYOUTOPT_GRIDLINES:
     542           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_GRID ) );
     543           0 :                 break;
     544             :             case SCLAYOUTOPT_GRID_ONCOLOR:
     545           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_GRID_ONTOP ) );
     546           0 :                 break;
     547             :             case SCLAYOUTOPT_PAGEBREAK:
     548           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_PAGEBREAKS ) );
     549           0 :                 break;
     550             :             case SCLAYOUTOPT_GUIDE:
     551           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_HELPLINES ) );
     552           0 :                 break;
     553             :             case SCLAYOUTOPT_COLROWHDR:
     554           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_HEADER ) );
     555           0 :                 break;
     556             :             case SCLAYOUTOPT_HORISCROLL:
     557           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_HSCROLL ) );
     558           0 :                 break;
     559             :             case SCLAYOUTOPT_VERTSCROLL:
     560           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_VSCROLL ) );
     561           0 :                 break;
     562             :             case SCLAYOUTOPT_SHEETTAB:
     563           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_TABCONTROLS ) );
     564           0 :                 break;
     565             :             case SCLAYOUTOPT_OUTLINE:
     566           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_OUTLINER ) );
     567           0 :                 break;
     568             :         }
     569             :     }
     570           0 :     aLayoutItem.PutProperties(aNames, aValues);
     571             : 
     572           0 :     return 0;
     573             : }
     574             : 
     575           0 : IMPL_LINK_NOARG(ScViewCfg, DisplayCommitHdl)
     576             : {
     577           0 :     Sequence<OUString> aNames = GetDisplayPropertyNames();
     578           0 :     Sequence<Any> aValues(aNames.getLength());
     579           0 :     Any* pValues = aValues.getArray();
     580             : 
     581           0 :     for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     582             :     {
     583           0 :         switch(nProp)
     584             :         {
     585             :             case SCDISPLAYOPT_FORMULA:
     586           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_FORMULAS ) );
     587           0 :                 break;
     588             :             case SCDISPLAYOPT_ZEROVALUE:
     589           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_NULLVALS ) );
     590           0 :                 break;
     591             :             case SCDISPLAYOPT_NOTETAG:
     592           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_NOTES ) );
     593           0 :                 break;
     594             :             case SCDISPLAYOPT_VALUEHI:
     595           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_SYNTAX ) );
     596           0 :                 break;
     597             :             case SCDISPLAYOPT_ANCHOR:
     598           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_ANCHOR ) );
     599           0 :                 break;
     600             :             case SCDISPLAYOPT_TEXTOVER:
     601           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], GetOption( VOPT_CLIPMARKS ) );
     602           0 :                 break;
     603             :             case SCDISPLAYOPT_OBJECTGRA:
     604           0 :                 pValues[nProp] <<= (sal_Int32) GetObjMode( VOBJ_TYPE_OLE );
     605           0 :                 break;
     606             :             case SCDISPLAYOPT_CHART:
     607           0 :                 pValues[nProp] <<= (sal_Int32) GetObjMode( VOBJ_TYPE_CHART );
     608           0 :                 break;
     609             :             case SCDISPLAYOPT_DRAWING:
     610           0 :                 pValues[nProp] <<= (sal_Int32) GetObjMode( VOBJ_TYPE_DRAW );
     611           0 :                 break;
     612             :         }
     613             :     }
     614           0 :     aDisplayItem.PutProperties(aNames, aValues);
     615             : 
     616           0 :     return 0;
     617             : }
     618             : 
     619           0 : IMPL_LINK_NOARG(ScViewCfg, GridCommitHdl)
     620             : {
     621           0 :     const ScGridOptions& rGrid = GetGridOptions();
     622             : 
     623           0 :     Sequence<OUString> aNames = GetGridPropertyNames();
     624           0 :     Sequence<Any> aValues(aNames.getLength());
     625           0 :     Any* pValues = aValues.getArray();
     626             : 
     627           0 :     for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     628             :     {
     629           0 :         switch(nProp)
     630             :         {
     631             :             case SCGRIDOPT_RESOLU_X:
     632           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldDrawX();
     633           0 :                 break;
     634             :             case SCGRIDOPT_RESOLU_Y:
     635           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldDrawY();
     636           0 :                 break;
     637             :             case SCGRIDOPT_SUBDIV_X:
     638           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldDivisionX();
     639           0 :                 break;
     640             :             case SCGRIDOPT_SUBDIV_Y:
     641           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldDivisionY();
     642           0 :                 break;
     643             :             case SCGRIDOPT_OPTION_X:
     644           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldSnapX();
     645           0 :                 break;
     646             :             case SCGRIDOPT_OPTION_Y:
     647           0 :                 pValues[nProp] <<= (sal_Int32) rGrid.GetFldSnapY();
     648           0 :                 break;
     649             :             case SCGRIDOPT_SNAPTOGRID:
     650           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], rGrid.GetUseGridSnap() );
     651           0 :                 break;
     652             :             case SCGRIDOPT_SYNCHRON:
     653           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], rGrid.GetSynchronize() );
     654           0 :                 break;
     655             :             case SCGRIDOPT_VISIBLE:
     656           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], rGrid.GetGridVisible() );
     657           0 :                 break;
     658             :             case SCGRIDOPT_SIZETOGRID:
     659           0 :                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], rGrid.GetEqualGrid() );
     660           0 :                 break;
     661             :         }
     662             :     }
     663           0 :     aGridItem.PutProperties(aNames, aValues);
     664             : 
     665           0 :     return 0;
     666             : }
     667             : 
     668           0 : void ScViewCfg::SetOptions( const ScViewOptions& rNew )
     669             : {
     670           0 :     *(ScViewOptions*)this = rNew;
     671           0 :     aLayoutItem.SetModified();
     672           0 :     aDisplayItem.SetModified();
     673           0 :     aGridItem.SetModified();
     674         228 : }
     675             : 
     676             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10