summaryrefslogtreecommitdiff
path: root/vcl/source/edit/textund2.hxx
blob: 89151854f777d30486cd9fb8a99cb827fefb768e (plain)
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
135
/* -*- 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_VCL_SOURCE_EDIT_TEXTUND2_HXX
#define INCLUDED_VCL_SOURCE_EDIT_TEXTUND2_HXX

#include "textundo.hxx"
#include <vcl/textdata.hxx>


class TextUndoDelPara : public TextUndo
{
private:
    bool            mbDelObject;
    sal_uLong       mnPara;
    TextNode*       mpNode; // points at the valid not-destroyed object

public:
                    TYPEINFO();
                    TextUndoDelPara( TextEngine* pTextEngine, TextNode* pNode, sal_uLong nPara );
                    ~TextUndoDelPara();

    virtual void    Undo();
    virtual void    Redo();

    virtual OUString GetComment () const;
};


class TextUndoConnectParas : public TextUndo
{
private:
    sal_uLong           mnPara;
    sal_uInt16          mnSepPos;

public:
                    TYPEINFO();
                    TextUndoConnectParas( TextEngine* pTextEngine, sal_uLong nPara, sal_uInt16 nSepPos );
                    ~TextUndoConnectParas();

    virtual void    Undo();
    virtual void    Redo();

    virtual OUString GetComment () const;
};


class TextUndoSplitPara : public TextUndo
{
private:
    sal_uLong           mnPara;
    sal_uInt16          mnSepPos;

public:
                    TYPEINFO();
                    TextUndoSplitPara( TextEngine* pTextEngine, sal_uLong nPara, sal_uInt16 nSepPos );
                    ~TextUndoSplitPara();

    virtual void    Undo();
    virtual void    Redo();

    virtual OUString GetComment () const;
};


class TextUndoInsertChars : public TextUndo
{
private:
    TextPaM         maTextPaM;
    OUString        maText;

public:
                    TYPEINFO();
                    TextUndoInsertChars( TextEngine* pTextEngine, const TextPaM& rTextPaM, const OUString& rStr );

    virtual void    Undo();
    virtual void    Redo();

    virtual bool    Merge( SfxUndoAction *pNextAction );

    virtual OUString GetComment () const;
};


class TextUndoRemoveChars : public TextUndo
{
private:
    TextPaM         maTextPaM;
    OUString        maText;

public:
                    TYPEINFO();
                    TextUndoRemoveChars( TextEngine* pTextEngine, const TextPaM& rTextPaM, const OUString& rStr );

    virtual void    Undo();
    virtual void    Redo();

    virtual OUString GetComment () const;
};


class TextUndoSetAttribs: public TextUndo
{
private:
    TextSelection       maSelection;

public:
                        TYPEINFO();
                        TextUndoSetAttribs( TextEngine* pTextEngine, const TextSelection& rESel );
                        ~TextUndoSetAttribs();

    virtual void        Undo();
    virtual void        Redo();

    virtual OUString GetComment () const;
};

#endif // INCLUDED_VCL_SOURCE_EDIT_TEXTUND2_HXX

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */