LCOV - code coverage report
Current view: top level - sc/source/core/tool - viewopti.cxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 326 0.0 %
Date: 2014-04-14 Functions: 0 36 0.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 <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           0 : void ScGridOptions::SetDefaults()
      42             : {
      43           0 :     *this = ScGridOptions();
      44             : 
      45             :     //  Raster-Defaults sind jetzt zwischen den Apps unterschiedlich
      46             :     //  darum hier selber eintragen (alles in 1/100mm)
      47             : 
      48           0 :     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           0 :         nFldDrawX = 1270;   // 0,5"
      58           0 :         nFldDrawY = 1270;
      59           0 :         nFldSnapX = 1270;
      60           0 :         nFldSnapY = 1270;
      61             :     }
      62           0 :     nFldDivisionX = 1;
      63           0 :     nFldDivisionY = 1;
      64           0 : }
      65             : 
      66           0 : const ScGridOptions& ScGridOptions::operator=( const ScGridOptions& rCpy )
      67             : {
      68           0 :     nFldDrawX       = rCpy.nFldDrawX;       // UINT32
      69           0 :     nFldDivisionX   = rCpy.nFldDivisionX;
      70           0 :     nFldDrawY       = rCpy.nFldDrawY;
      71           0 :     nFldDivisionY   = rCpy.nFldDivisionY;
      72           0 :     nFldSnapX       = rCpy.nFldSnapX;
      73           0 :     nFldSnapY       = rCpy.nFldSnapY;
      74           0 :     bUseGridsnap    = rCpy.bUseGridsnap;    // BitBool
      75           0 :     bSynchronize    = rCpy.bSynchronize;
      76           0 :     bGridVisible    = rCpy.bGridVisible;
      77           0 :     bEqualGrid      = rCpy.bEqualGrid;
      78             : 
      79           0 :     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           0 : ScViewOptions::ScViewOptions()
      99             : {
     100           0 :     SetDefaults();
     101           0 : }
     102             : 
     103           0 : ScViewOptions::ScViewOptions( const ScViewOptions& rCpy )
     104             : {
     105           0 :     *this = rCpy;
     106           0 : }
     107             : 
     108           0 : ScViewOptions::~ScViewOptions()
     109             : {
     110           0 : }
     111             : 
     112           0 : void ScViewOptions::SetDefaults()
     113             : {
     114           0 :     aOptArr[ VOPT_FORMULAS    ] = false;
     115           0 :     aOptArr[ VOPT_SYNTAX      ] = false;
     116           0 :     aOptArr[ VOPT_HELPLINES   ] = false;
     117           0 :     aOptArr[ VOPT_GRID_ONTOP  ] = false;
     118           0 :     aOptArr[ VOPT_NOTES       ] = true;
     119           0 :     aOptArr[ VOPT_NULLVALS    ] = true;
     120           0 :     aOptArr[ VOPT_VSCROLL     ] = true;
     121           0 :     aOptArr[ VOPT_HSCROLL     ] = true;
     122           0 :     aOptArr[ VOPT_TABCONTROLS ] = true;
     123           0 :     aOptArr[ VOPT_OUTLINER    ] = true;
     124           0 :     aOptArr[ VOPT_HEADER      ] = true;
     125           0 :     aOptArr[ VOPT_GRID        ] = true;
     126           0 :     aOptArr[ VOPT_ANCHOR      ] = true;
     127           0 :     aOptArr[ VOPT_PAGEBREAKS  ] = true;
     128           0 :     aOptArr[ VOPT_CLIPMARKS   ] = true;
     129             : 
     130           0 :     aModeArr[VOBJ_TYPE_OLE ]  = VOBJ_MODE_SHOW;
     131           0 :     aModeArr[VOBJ_TYPE_CHART] = VOBJ_MODE_SHOW;
     132           0 :     aModeArr[VOBJ_TYPE_DRAW ] = VOBJ_MODE_SHOW;
     133             : 
     134           0 :     aGridCol     = Color( SC_STD_GRIDCOLOR );
     135           0 :     aGridColName = ScGlobal::GetRscString( STR_GRIDCOLOR );
     136             : 
     137           0 :     aGridOpt.SetDefaults();
     138           0 : }
     139             : 
     140           0 : Color ScViewOptions::GetGridColor( OUString* pStrName ) const
     141             : {
     142           0 :     if ( pStrName )
     143           0 :         *pStrName = aGridColName;
     144             : 
     145           0 :     return aGridCol;
     146             : }
     147             : 
     148           0 : const ScViewOptions& ScViewOptions::operator=( const ScViewOptions& rCpy )
     149             : {
     150             :     sal_uInt16 i;
     151             : 
     152           0 :     for ( i=0; i<MAX_OPT; i++ )  aOptArr [i] = rCpy.aOptArr[i];
     153           0 :     for ( i=0; i<MAX_TYPE; i++ ) aModeArr[i] = rCpy.aModeArr[i];
     154             : 
     155           0 :     aGridCol        = rCpy.aGridCol;
     156           0 :     aGridColName    = rCpy.aGridColName;
     157           0 :     aGridOpt        = rCpy.aGridOpt;
     158             : 
     159           0 :     return *this;
     160             : }
     161             : 
     162           0 : bool ScViewOptions::operator==( const ScViewOptions& rOpt ) const
     163             : {
     164           0 :     bool bEqual = true;
     165             :     sal_uInt16  i;
     166             : 
     167           0 :     for ( i=0; i<MAX_OPT && bEqual; i++ )  bEqual = (aOptArr [i] == rOpt.aOptArr[i]);
     168           0 :     for ( i=0; i<MAX_TYPE && bEqual; i++ ) bEqual = (aModeArr[i] == rOpt.aModeArr[i]);
     169             : 
     170           0 :     bEqual = bEqual && (aGridCol       == rOpt.aGridCol);
     171           0 :     bEqual = bEqual && (aGridColName   == rOpt.aGridColName);
     172           0 :     bEqual = bEqual && (aGridOpt       == rOpt.aGridOpt);
     173             : 
     174           0 :     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             :     OSL_ENSURE( SfxPoolItem::operator==( rItem ), "unequal Which or Type" );
     221             : 
     222           0 :     const ScTpViewItem& rPItem = (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           0 : 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           0 :     Sequence<OUString> aNames(SCLAYOUTOPT_COUNT);
     291           0 :     OUString* pNames = aNames.getArray();
     292           0 :     for(int i = 0; i < SCLAYOUTOPT_COUNT; i++)
     293           0 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     294             : 
     295           0 :     return aNames;
     296             : }
     297             : 
     298           0 : 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           0 :     Sequence<OUString> aNames(SCDISPLAYOPT_COUNT);
     313           0 :     OUString* pNames = aNames.getArray();
     314           0 :     for(int i = 0; i < SCDISPLAYOPT_COUNT; i++)
     315           0 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     316             : 
     317           0 :     return aNames;
     318             : }
     319             : 
     320           0 : 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           0 :     Sequence<OUString> aNames(SCGRIDOPT_COUNT);
     336           0 :     OUString* pNames = aNames.getArray();
     337           0 :     for(int i = 0; i < SCGRIDOPT_COUNT; i++)
     338           0 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     339             : 
     340             :     //  adjust for metric system
     341           0 :     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           0 :     return aNames;
     350             : }
     351             : 
     352           0 : ScViewCfg::ScViewCfg() :
     353             :     aLayoutItem( OUString( CFGPATH_LAYOUT ) ),
     354             :     aDisplayItem( OUString( CFGPATH_DISPLAY ) ),
     355           0 :     aGridItem( OUString( CFGPATH_GRID ) )
     356             : {
     357           0 :     sal_Int32 nIntVal = 0;
     358             : 
     359           0 :     Sequence<OUString> aNames = GetLayoutPropertyNames();
     360           0 :     Sequence<Any> aValues = aLayoutItem.GetProperties(aNames);
     361           0 :     aLayoutItem.EnableNotification(aNames);
     362           0 :     const Any* pValues = aValues.getConstArray();
     363             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     364           0 :     if(aValues.getLength() == aNames.getLength())
     365             :     {
     366           0 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     367             :         {
     368             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     369           0 :             if(pValues[nProp].hasValue())
     370             :             {
     371           0 :                 switch(nProp)
     372             :                 {
     373             :                     case SCLAYOUTOPT_GRIDCOLOR:
     374           0 :                         if ( pValues[nProp] >>= nIntVal )
     375           0 :                             SetGridColor( Color(nIntVal), EMPTY_OUSTRING );
     376           0 :                         break;
     377             :                     case SCLAYOUTOPT_GRIDLINES:
     378           0 :                         SetOption( VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     379           0 :                         break;
     380             :                     case SCLAYOUTOPT_GRID_ONCOLOR:
     381           0 :                         SetOption( VOPT_GRID_ONTOP, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     382           0 :                         break;
     383             :                     case SCLAYOUTOPT_PAGEBREAK:
     384           0 :                         SetOption( VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     385           0 :                         break;
     386             :                     case SCLAYOUTOPT_GUIDE:
     387           0 :                         SetOption( VOPT_HELPLINES, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     388           0 :                         break;
     389             :                     case SCLAYOUTOPT_COLROWHDR:
     390           0 :                         SetOption( VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     391           0 :                         break;
     392             :                     case SCLAYOUTOPT_HORISCROLL:
     393           0 :                         SetOption( VOPT_HSCROLL, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     394           0 :                         break;
     395             :                     case SCLAYOUTOPT_VERTSCROLL:
     396           0 :                         SetOption( VOPT_VSCROLL, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     397           0 :                         break;
     398             :                     case SCLAYOUTOPT_SHEETTAB:
     399           0 :                         SetOption( VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     400           0 :                         break;
     401             :                     case SCLAYOUTOPT_OUTLINE:
     402           0 :                         SetOption( VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     403           0 :                         break;
     404             :                 }
     405             :             }
     406             :         }
     407             :     }
     408           0 :     aLayoutItem.SetCommitLink( LINK( this, ScViewCfg, LayoutCommitHdl ) );
     409             : 
     410           0 :     aNames = GetDisplayPropertyNames();
     411           0 :     aValues = aDisplayItem.GetProperties(aNames);
     412           0 :     aDisplayItem.EnableNotification(aNames);
     413           0 :     pValues = aValues.getConstArray();
     414             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     415           0 :     if(aValues.getLength() == aNames.getLength())
     416             :     {
     417           0 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     418             :         {
     419             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     420           0 :             if(pValues[nProp].hasValue())
     421             :             {
     422           0 :                 switch(nProp)
     423             :                 {
     424             :                     case SCDISPLAYOPT_FORMULA:
     425           0 :                         SetOption( VOPT_FORMULAS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     426           0 :                         break;
     427             :                     case SCDISPLAYOPT_ZEROVALUE:
     428           0 :                         SetOption( VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     429           0 :                         break;
     430             :                     case SCDISPLAYOPT_NOTETAG:
     431           0 :                         SetOption( VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     432           0 :                         break;
     433             :                     case SCDISPLAYOPT_VALUEHI:
     434           0 :                         SetOption( VOPT_SYNTAX, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     435           0 :                         break;
     436             :                     case SCDISPLAYOPT_ANCHOR:
     437           0 :                         SetOption( VOPT_ANCHOR, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     438           0 :                         break;
     439             :                     case SCDISPLAYOPT_TEXTOVER:
     440           0 :                         SetOption( VOPT_CLIPMARKS, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     441           0 :                         break;
     442             :                     case SCDISPLAYOPT_OBJECTGRA:
     443           0 :                         if ( pValues[nProp] >>= nIntVal )
     444             :                         {
     445             :                             //#i80528# adapt to new range eventually
     446           0 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     447             : 
     448           0 :                             SetObjMode( VOBJ_TYPE_OLE, (ScVObjMode)nIntVal);
     449             :                         }
     450           0 :                         break;
     451             :                     case SCDISPLAYOPT_CHART:
     452           0 :                         if ( pValues[nProp] >>= nIntVal )
     453             :                         {
     454             :                             //#i80528# adapt to new range eventually
     455           0 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     456             : 
     457           0 :                             SetObjMode( VOBJ_TYPE_CHART, (ScVObjMode)nIntVal);
     458             :                         }
     459           0 :                         break;
     460             :                     case SCDISPLAYOPT_DRAWING:
     461           0 :                         if ( pValues[nProp] >>= nIntVal )
     462             :                         {
     463             :                             //#i80528# adapt to new range eventually
     464           0 :                             if((sal_Int32)VOBJ_MODE_HIDE < nIntVal) nIntVal = (sal_Int32)VOBJ_MODE_SHOW;
     465             : 
     466           0 :                             SetObjMode( VOBJ_TYPE_DRAW, (ScVObjMode)nIntVal);
     467             :                         }
     468           0 :                         break;
     469             :                 }
     470             :             }
     471             :         }
     472             :     }
     473           0 :     aDisplayItem.SetCommitLink( LINK( this, ScViewCfg, DisplayCommitHdl ) );
     474             : 
     475           0 :     ScGridOptions aGrid = GetGridOptions();     //! initialization necessary?
     476           0 :     aNames = GetGridPropertyNames();
     477           0 :     aValues = aGridItem.GetProperties(aNames);
     478           0 :     aGridItem.EnableNotification(aNames);
     479           0 :     pValues = aValues.getConstArray();
     480             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     481           0 :     if(aValues.getLength() == aNames.getLength())
     482             :     {
     483           0 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     484             :         {
     485             :             OSL_ENSURE(pValues[nProp].hasValue(), "property value missing");
     486           0 :             if(pValues[nProp].hasValue())
     487             :             {
     488           0 :                 switch(nProp)
     489             :                 {
     490             :                     case SCGRIDOPT_RESOLU_X:
     491           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDrawX( nIntVal );
     492           0 :                         break;
     493             :                     case SCGRIDOPT_RESOLU_Y:
     494           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDrawY( nIntVal );
     495           0 :                         break;
     496             :                     case SCGRIDOPT_SUBDIV_X:
     497           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDivisionX( nIntVal );
     498           0 :                         break;
     499             :                     case SCGRIDOPT_SUBDIV_Y:
     500           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldDivisionY( nIntVal );
     501           0 :                         break;
     502             :                     case SCGRIDOPT_OPTION_X:
     503           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldSnapX( nIntVal );
     504           0 :                         break;
     505             :                     case SCGRIDOPT_OPTION_Y:
     506           0 :                         if (pValues[nProp] >>= nIntVal) aGrid.SetFldSnapY( nIntVal );
     507           0 :                         break;
     508             :                     case SCGRIDOPT_SNAPTOGRID:
     509           0 :                         aGrid.SetUseGridSnap( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     510           0 :                         break;
     511             :                     case SCGRIDOPT_SYNCHRON:
     512           0 :                         aGrid.SetSynchronize( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     513           0 :                         break;
     514             :                     case SCGRIDOPT_VISIBLE:
     515           0 :                         aGrid.SetGridVisible( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     516           0 :                         break;
     517             :                     case SCGRIDOPT_SIZETOGRID:
     518           0 :                         aGrid.SetEqualGrid( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
     519           0 :                         break;
     520             :                 }
     521             :             }
     522             :         }
     523             :     }
     524           0 :     SetGridOptions( aGrid );
     525           0 :     aGridItem.SetCommitLink( LINK( this, ScViewCfg, GridCommitHdl ) );
     526           0 : }
     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           0 : }
     675             : 
     676             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10