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