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 #ifndef INCLUDED_EDITENG_SOURCE_OUTLINER_OUTLUNDO_HXX 21 #define INCLUDED_EDITENG_SOURCE_OUTLINER_OUTLUNDO_HXX 22 23 #include <editeng/outliner.hxx> 24 #include <editeng/editdata.hxx> 25 #include <editeng/editund2.hxx> 26 27 class OutlinerUndoBase : public EditUndo 28 { 29 private: 30 Outliner* mpOutliner; 31 32 public: 33 OutlinerUndoBase( sal_uInt16 nId, Outliner* pOutliner ); 34 GetOutliner() const35 Outliner* GetOutliner() const { return mpOutliner; } 36 }; 37 38 class OutlinerUndoChangeParaFlags : public OutlinerUndoBase 39 { 40 private: 41 sal_Int32 mnPara; 42 ParaFlag mnOldFlags; 43 ParaFlag mnNewFlags; 44 45 void ImplChangeFlags( ParaFlag nFlags ); 46 47 public: 48 OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_Int32 nPara, ParaFlag nOldFlags, ParaFlag nNewFlags ); 49 50 virtual void Undo() override; 51 virtual void Redo() override; 52 }; 53 54 class OutlinerUndoChangeParaNumberingRestart : public OutlinerUndoBase 55 { 56 private: 57 sal_Int32 mnPara; 58 59 struct ParaRestartData 60 { 61 sal_Int16 mnNumberingStartValue; 62 bool mbParaIsNumberingRestart; 63 }; 64 65 ParaRestartData maUndoData; 66 ParaRestartData maRedoData; 67 68 void ImplApplyData( const ParaRestartData& rData ); 69 public: 70 OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_Int32 nPara, 71 sal_Int16 nOldNumberingStartValue, sal_Int16 mnNewNumberingStartValue, 72 bool bOldbParaIsNumberingRestart, bool bNewParaIsNumberingRestart ); 73 74 virtual void Undo() override; 75 virtual void Redo() override; 76 }; 77 78 class OutlinerUndoChangeDepth : public OutlinerUndoBase 79 { 80 private: 81 sal_Int32 mnPara; 82 sal_Int16 mnOldDepth; 83 sal_Int16 mnNewDepth; 84 85 public: 86 OutlinerUndoChangeDepth( Outliner* pOutliner, sal_Int32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth ); 87 88 virtual void Undo() override; 89 virtual void Redo() override; 90 }; 91 92 // Help-Undo: If it does not exist an OutlinerUndoAction for a certain action 93 // because this is handled by the EditEngine, but for example the bullet has 94 // to be recalculated. 95 class OutlinerUndoCheckPara : public OutlinerUndoBase 96 { 97 private: 98 sal_Int32 mnPara; 99 100 public: 101 OutlinerUndoCheckPara( Outliner* pOutliner, sal_Int32 nPara ); 102 103 virtual void Undo() override; 104 virtual void Redo() override; 105 }; 106 107 class OLUndoExpand : public EditUndo 108 { 109 void Restore( bool bUndo ); 110 public: 111 OLUndoExpand( Outliner* pOut, sal_uInt16 nId ); 112 virtual ~OLUndoExpand() override; 113 virtual void Undo() override; 114 virtual void Redo() override; 115 116 Outliner* pOutliner; 117 sal_Int32 nCount; 118 }; 119 120 #endif 121 122 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 123