Avoid potential negative array index access to cached text.
[LibreOffice.git] / sc / inc / scopetools.hxx
blobdb76c8651633ca2bda371226240427e0f1a5ca3d
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/.
8 */
10 #pragma once
12 #include "scdllapi.h"
14 class ScDocument;
15 class ScColumn;
16 namespace vcl
18 class Window;
21 namespace sc
23 /**
24 * Temporarily switch on/off auto calculation mode.
26 class SC_DLLPUBLIC AutoCalcSwitch
28 ScDocument& mrDoc;
29 bool mbOldValue;
31 AutoCalcSwitch(AutoCalcSwitch const&) = delete;
32 AutoCalcSwitch(AutoCalcSwitch&&) = delete;
33 AutoCalcSwitch& operator=(AutoCalcSwitch const&) = delete;
34 AutoCalcSwitch& operator=(AutoCalcSwitch&&) = delete;
36 public:
37 AutoCalcSwitch(ScDocument& rDoc, bool bAutoCalc);
38 ~AutoCalcSwitch();
41 class ExpandRefsSwitch
43 ScDocument& mrDoc;
44 bool mbOldValue;
46 public:
47 ExpandRefsSwitch(ScDocument& rDoc, bool bExpandRefs);
48 ~ExpandRefsSwitch();
51 class SC_DLLPUBLIC UndoSwitch
53 ScDocument& mrDoc;
54 bool mbOldValue;
56 public:
57 UndoSwitch(ScDocument& rDoc, bool bUndo);
58 ~UndoSwitch();
61 class IdleSwitch
63 ScDocument& mrDoc;
64 bool mbOldValue;
66 public:
67 IdleSwitch(ScDocument& rDoc, bool bEnableIdle);
68 ~IdleSwitch();
71 /// Wrapper for ScDocument::DelayFormulaGrouping()
72 class DelayFormulaGroupingSwitch
74 ScDocument& mrDoc;
75 bool const mbOldValue;
77 public:
78 DelayFormulaGroupingSwitch(ScDocument& rDoc, bool delay);
79 ~DelayFormulaGroupingSwitch() COVERITY_NOEXCEPT_FALSE;
80 void reset();
83 /// Wrapper for ScDocument::EnableDelayStartListeningFormulaCells()
84 class DelayStartListeningFormulaCells
86 ScColumn& mColumn;
87 bool const mbOldValue;
89 public:
90 DelayStartListeningFormulaCells(ScColumn& column, bool delay);
91 DelayStartListeningFormulaCells(ScColumn& column);
92 DelayStartListeningFormulaCells(const DelayStartListeningFormulaCells&) = delete;
93 ~DelayStartListeningFormulaCells();
94 void set();
97 /// Wrapper for ScDocument::EnableDelayDeletingBroadcasters()
98 class DelayDeletingBroadcasters
100 ScDocument& mDoc;
101 const bool mOldValue;
103 public:
104 DelayDeletingBroadcasters(ScDocument& doc);
105 ~DelayDeletingBroadcasters();
109 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */