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 
10 #pragma once
11 
12 #include "scdllapi.h"
13 
14 class ScDocument;
15 class ScColumn;
16 namespace vcl
17 {
18 class Window;
19 }
20 
21 namespace sc
22 {
23 /**
24  * Temporarily switch on/off auto calculation mode.
25  */
26 class SC_DLLPUBLIC AutoCalcSwitch
27 {
28     ScDocument& mrDoc;
29     bool mbOldValue;
30 
31     AutoCalcSwitch(AutoCalcSwitch const&) = delete;
32     AutoCalcSwitch(AutoCalcSwitch&&) = delete;
33     AutoCalcSwitch& operator=(AutoCalcSwitch const&) = delete;
34     AutoCalcSwitch& operator=(AutoCalcSwitch&&) = delete;
35 
36 public:
37     AutoCalcSwitch(ScDocument& rDoc, bool bAutoCalc);
38     ~AutoCalcSwitch();
39 };
40 
41 class ExpandRefsSwitch
42 {
43     ScDocument& mrDoc;
44     bool mbOldValue;
45 
46 public:
47     ExpandRefsSwitch(ScDocument& rDoc, bool bExpandRefs);
48     ~ExpandRefsSwitch();
49 };
50 
51 class SC_DLLPUBLIC UndoSwitch
52 {
53     ScDocument& mrDoc;
54     bool mbOldValue;
55 
56 public:
57     UndoSwitch(ScDocument& rDoc, bool bUndo);
58     ~UndoSwitch();
59 };
60 
61 class IdleSwitch
62 {
63     ScDocument& mrDoc;
64     bool mbOldValue;
65 
66 public:
67     IdleSwitch(ScDocument& rDoc, bool bEnableIdle);
68     ~IdleSwitch();
69 };
70 
71 /// Wrapper for ScDocument::DelayFormulaGrouping()
72 class DelayFormulaGroupingSwitch
73 {
74     ScDocument& mrDoc;
75     bool const mbOldValue;
76 
77 public:
78     DelayFormulaGroupingSwitch(ScDocument& rDoc, bool delay);
79     ~DelayFormulaGroupingSwitch() COVERITY_NOEXCEPT_FALSE;
80     void reset();
81 };
82 
83 /// Wrapper for ScDocument::EnableDelayStartListeningFormulaCells()
84 class DelayStartListeningFormulaCells
85 {
86     ScColumn& mColumn;
87     bool const mbOldValue;
88 
89 public:
90     DelayStartListeningFormulaCells(ScColumn& column, bool delay);
91     DelayStartListeningFormulaCells(ScColumn& column);
92     DelayStartListeningFormulaCells(const DelayStartListeningFormulaCells&) = delete;
93     ~DelayStartListeningFormulaCells();
94     void set();
95 };
96 }
97 
98 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
99