Line data Source code
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 : #ifndef INCLUDED_SC_INC_REFHINT_HXX
11 : #define INCLUDED_SC_INC_REFHINT_HXX
12 :
13 : #include "address.hxx"
14 : #include "simplehintids.hxx"
15 :
16 : namespace sc {
17 :
18 : struct RefUpdateContext;
19 :
20 160 : class RefHint : public SfxSimpleHint
21 : {
22 : public:
23 : enum Type {
24 : Moved,
25 : ColumnReordered,
26 : RowReordered
27 : };
28 :
29 : private:
30 : Type meType;
31 :
32 : RefHint(); // disabled
33 :
34 : protected:
35 : RefHint( Type eType );
36 :
37 : public:
38 : virtual ~RefHint() = 0;
39 :
40 : Type getType() const;
41 : };
42 :
43 : class RefMovedHint : public RefHint
44 : {
45 : ScRange maRange;
46 : ScAddress maMoveDelta;
47 : const sc::RefUpdateContext& mrCxt;
48 :
49 : public:
50 :
51 : RefMovedHint( const ScRange& rRange, const ScAddress& rMove, const sc::RefUpdateContext& rCxt );
52 : virtual ~RefMovedHint();
53 :
54 : /**
55 : * Get the source range from which the references have moved.
56 : */
57 : const ScRange& getRange() const;
58 :
59 : /**
60 : * Get the movement vector.
61 : */
62 : const ScAddress& getDelta() const;
63 :
64 : const sc::RefUpdateContext& getContext() const;
65 : };
66 :
67 28 : class RefColReorderHint : public RefHint
68 : {
69 : const sc::ColRowReorderMapType& mrColMap;
70 : SCTAB mnTab;
71 : SCROW mnRow1;
72 : SCROW mnRow2;
73 :
74 : public:
75 : RefColReorderHint( const sc::ColRowReorderMapType& rColMap, SCTAB nTab, SCROW nRow1, SCROW nRow2 );
76 : virtual ~RefColReorderHint();
77 :
78 : const sc::ColRowReorderMapType& getColMap() const;
79 :
80 : SCTAB getTab() const;
81 : SCROW getStartRow() const;
82 : SCROW getEndRow() const;
83 : };
84 :
85 132 : class RefRowReorderHint : public RefHint
86 : {
87 : const sc::ColRowReorderMapType& mrRowMap;
88 : SCTAB mnTab;
89 : SCCOL mnCol1;
90 : SCCOL mnCol2;
91 :
92 : public:
93 : RefRowReorderHint( const sc::ColRowReorderMapType& rRowMap, SCTAB nTab, SCCOL nCol1, SCCOL nCol2 );
94 : virtual ~RefRowReorderHint();
95 :
96 : const sc::ColRowReorderMapType& getRowMap() const;
97 :
98 : SCTAB getTab() const;
99 : SCCOL getStartColumn() const;
100 : SCCOL getEndColumn() const;
101 : };
102 :
103 : }
104 :
105 : #endif
106 :
107 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|