1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_EDITENG_SOURCE_OUTLINER_OUTLUNDO_HXX
#define INCLUDED_EDITENG_SOURCE_OUTLINER_OUTLUNDO_HXX
#include <editeng/outliner.hxx>
#include <editeng/editdata.hxx>
#include <editeng/editund2.hxx>
class OutlinerUndoBase : public EditUndo
{
private:
Outliner* mpOutliner;
public:
OutlinerUndoBase( sal_uInt16 nId, Outliner* pOutliner );
Outliner* GetOutliner() const { return mpOutliner; }
};
class OutlinerUndoChangeParaFlags : public OutlinerUndoBase
{
private:
sal_Int32 mnPara;
sal_uInt16 mnOldFlags;
sal_uInt16 mnNewFlags;
void ImplChangeFlags( sal_uInt16 nFlags );
public:
OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_Int32 nPara, sal_uInt16 nOldDepth, sal_uInt16 nNewDepth );
virtual void Undo() SAL_OVERRIDE;
virtual void Redo() SAL_OVERRIDE;
};
class OutlinerUndoChangeParaNumberingRestart : public OutlinerUndoBase
{
private:
sal_Int32 mnPara;
struct ParaRestartData
{
sal_Int16 mnNumberingStartValue;
sal_Bool mbParaIsNumberingRestart;
};
ParaRestartData maUndoData;
ParaRestartData maRedoData;
void ImplApplyData( const ParaRestartData& rData );
public:
OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_Int32 nPara,
sal_Int16 nOldNumberingStartValue, sal_Int16 mnNewNumberingStartValue,
sal_Bool nOldbParaIsNumberingRestart, sal_Bool nbNewParaIsNumberingRestart );
virtual void Undo() SAL_OVERRIDE;
virtual void Redo() SAL_OVERRIDE;
};
class OutlinerUndoChangeDepth : public OutlinerUndoBase
{
using SfxUndoAction::Repeat;
private:
sal_Int32 mnPara;
sal_Int16 mnOldDepth;
sal_Int16 mnNewDepth;
public:
OutlinerUndoChangeDepth( Outliner* pOutliner, sal_Int32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth );
virtual void Undo() SAL_OVERRIDE;
virtual void Redo() SAL_OVERRIDE;
virtual void Repeat();
};
// Help-Undo: If it does not exist an OutlinerUndoAction for a certain action
// because this is handled by the EditEngine, but for example the bullet has
// to be recalculated.
class OutlinerUndoCheckPara : public OutlinerUndoBase
{
using SfxUndoAction::Repeat;
private:
sal_Int32 mnPara;
public:
OutlinerUndoCheckPara( Outliner* pOutliner, sal_Int32 nPara );
virtual void Undo() SAL_OVERRIDE;
virtual void Redo() SAL_OVERRIDE;
virtual void Repeat();
};
class OLUndoExpand : public EditUndo
{
using SfxUndoAction::Repeat;
void Restore( sal_Bool bUndo );
public:
OLUndoExpand( Outliner* pOut, sal_uInt16 nId );
~OLUndoExpand();
virtual void Undo() SAL_OVERRIDE;
virtual void Redo() SAL_OVERRIDE;
virtual void Repeat();
sal_uInt16* pParas; // 0 == nCount contains paragraph number
Outliner* pOutliner;
sal_Int32 nCount;
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|