Bump version to 4.3-4
[LibreOffice.git] / sc / inc / docoptio.hxx
blob9e06437fb65c1e9925008c8d25ace4ee7ef6a2ce
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SC_INC_DOCOPTIO_HXX
21 #define INCLUDED_SC_INC_DOCOPTIO_HXX
23 #include <unotools/configitem.hxx>
24 #include <svl/poolitem.hxx>
25 #include <svl/itemprop.hxx>
26 #include "scdllapi.h"
27 #include "scmod.hxx"
28 #include "optutil.hxx"
30 #include <formula/grammar.hxx>
32 class SC_DLLPUBLIC ScDocOptions
34 double fIterEps; // epsilon value dazu
35 sal_uInt16 nIterCount; ///< number
36 sal_uInt16 nPrecStandardFormat; ///< precision for standard format
37 sal_uInt16 nDay; ///< Null date:
38 sal_uInt16 nMonth;
39 sal_uInt16 nYear;
40 sal_uInt16 nYear2000; ///< earlier 19YY is assumed, 20YY otherwise (if only YY of year is given)
41 sal_uInt16 nTabDistance; ///< distance of standard tabs
42 bool bIsIgnoreCase; ///< ignore case for comparisons?
43 bool bIsIter; ///< iterations for circular refs
44 bool bCalcAsShown; ///< calculate as shown (wrt precision)
45 bool bMatchWholeCell; ///< search criteria must match the whole cell
46 bool bDoAutoSpell; ///< auto-spelling
47 bool bLookUpColRowNames; ///< determine column-/row titles automagically
48 bool bFormulaRegexEnabled; ///< regular expressions in formulas enabled
49 public:
50 ScDocOptions();
51 ScDocOptions( const ScDocOptions& rCpy );
52 ~ScDocOptions();
54 bool IsLookUpColRowNames() const { return bLookUpColRowNames; }
55 void SetLookUpColRowNames( bool bVal ) { bLookUpColRowNames = bVal; }
56 bool IsAutoSpell() const { return bDoAutoSpell; }
57 void SetAutoSpell( bool bVal ) { bDoAutoSpell = bVal; }
58 bool IsMatchWholeCell() const { return bMatchWholeCell; }
59 void SetMatchWholeCell( bool bVal ) { bMatchWholeCell = bVal; }
60 bool IsIgnoreCase() const { return bIsIgnoreCase; }
61 void SetIgnoreCase( bool bVal ) { bIsIgnoreCase = bVal; }
62 bool IsIter() const { return bIsIter; }
63 void SetIter( bool bVal ) { bIsIter = bVal; }
64 sal_uInt16 GetIterCount() const { return nIterCount; }
65 void SetIterCount( sal_uInt16 nCount) { nIterCount = nCount; }
66 double GetIterEps() const { return fIterEps; }
67 void SetIterEps( double fEps ) { fIterEps = fEps; }
69 void GetDate( sal_uInt16& rD, sal_uInt16& rM, sal_uInt16& rY ) const
70 { rD = nDay; rM = nMonth; rY = nYear;}
71 void SetDate (sal_uInt16 nD, sal_uInt16 nM, sal_uInt16 nY)
72 { nDay = nD; nMonth = nM; nYear = nY; }
73 sal_uInt16 GetTabDistance() const { return nTabDistance;}
74 void SetTabDistance( sal_uInt16 nTabDist ) {nTabDistance = nTabDist;}
76 void ResetDocOptions();
78 inline const ScDocOptions& operator=( const ScDocOptions& rOpt );
79 inline bool operator==( const ScDocOptions& rOpt ) const;
80 inline bool operator!=( const ScDocOptions& rOpt ) const;
82 sal_uInt16 GetStdPrecision() const { return nPrecStandardFormat; }
83 void SetStdPrecision( sal_uInt16 n ) { nPrecStandardFormat = n; }
85 bool IsCalcAsShown() const { return bCalcAsShown; }
86 void SetCalcAsShown( bool bVal ) { bCalcAsShown = bVal; }
88 void SetYear2000( sal_uInt16 nVal ) { nYear2000 = nVal; }
89 sal_uInt16 GetYear2000() const { return nYear2000; }
91 void SetFormulaRegexEnabled( bool bVal ) { bFormulaRegexEnabled = bVal; }
92 bool IsFormulaRegexEnabled() const { return bFormulaRegexEnabled; }
96 inline const ScDocOptions& ScDocOptions::operator=( const ScDocOptions& rCpy )
98 bIsIgnoreCase = rCpy.bIsIgnoreCase;
99 bIsIter = rCpy.bIsIter;
100 nIterCount = rCpy.nIterCount;
101 fIterEps = rCpy.fIterEps;
102 nPrecStandardFormat = rCpy.nPrecStandardFormat;
103 nDay = rCpy.nDay;
104 nMonth = rCpy.nMonth;
105 nYear = rCpy.nYear;
106 nYear2000 = rCpy.nYear2000;
107 nTabDistance = rCpy.nTabDistance;
108 bCalcAsShown = rCpy.bCalcAsShown;
109 bMatchWholeCell = rCpy.bMatchWholeCell;
110 bDoAutoSpell = rCpy.bDoAutoSpell;
111 bLookUpColRowNames = rCpy.bLookUpColRowNames;
112 bFormulaRegexEnabled= rCpy.bFormulaRegexEnabled;
114 return *this;
117 inline bool ScDocOptions::operator==( const ScDocOptions& rOpt ) const
119 return (
120 rOpt.bIsIgnoreCase == bIsIgnoreCase
121 && rOpt.bIsIter == bIsIter
122 && rOpt.nIterCount == nIterCount
123 && rOpt.fIterEps == fIterEps
124 && rOpt.nPrecStandardFormat == nPrecStandardFormat
125 && rOpt.nDay == nDay
126 && rOpt.nMonth == nMonth
127 && rOpt.nYear == nYear
128 && rOpt.nYear2000 == nYear2000
129 && rOpt.nTabDistance == nTabDistance
130 && rOpt.bCalcAsShown == bCalcAsShown
131 && rOpt.bMatchWholeCell == bMatchWholeCell
132 && rOpt.bDoAutoSpell == bDoAutoSpell
133 && rOpt.bLookUpColRowNames == bLookUpColRowNames
134 && rOpt.bFormulaRegexEnabled == bFormulaRegexEnabled
138 inline bool ScDocOptions::operator!=( const ScDocOptions& rOpt ) const
140 return !(operator==(rOpt));
143 // Item for preferences dialog - calculation
145 class SC_DLLPUBLIC ScTpCalcItem : public SfxPoolItem
147 public:
148 TYPEINFO_OVERRIDE();
149 ScTpCalcItem( sal_uInt16 nWhich,
150 const ScDocOptions& rOpt );
151 ScTpCalcItem( const ScTpCalcItem& rItem );
152 virtual ~ScTpCalcItem();
154 virtual OUString GetValueText() const;
155 virtual bool operator==( const SfxPoolItem& ) const SAL_OVERRIDE;
156 virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const SAL_OVERRIDE;
158 const ScDocOptions& GetDocOptions() const { return theOptions; }
160 private:
161 ScDocOptions theOptions;
164 // Config Item containing document options
166 class ScDocCfg : public ScDocOptions
168 ScLinkConfigItem aCalcItem;
169 ScLinkConfigItem aLayoutItem;
171 DECL_LINK( CalcCommitHdl, void* );
172 DECL_LINK( LayoutCommitHdl, void* );
174 com::sun::star::uno::Sequence<OUString> GetCalcPropertyNames();
175 com::sun::star::uno::Sequence<OUString> GetLayoutPropertyNames();
177 public:
178 ScDocCfg();
180 void SetOptions( const ScDocOptions& rNew );
183 #endif
185 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */