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

Generated by: LCOV version 1.11