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 : class ColRowReorderMapType;
20 :
21 162 : class RefHint : public SfxSimpleHint
22 : {
23 : public:
24 : enum Type {
25 : Moved,
26 : ColumnReordered,
27 : RowReordered,
28 : StartListening,
29 : StopListening
30 : };
31 :
32 : private:
33 : Type meType;
34 :
35 : RefHint(); // disabled
36 :
37 : protected:
38 : RefHint( Type eType );
39 :
40 : public:
41 : virtual ~RefHint() = 0;
42 :
43 : Type getType() const;
44 : };
45 :
46 : class RefMovedHint : public RefHint
47 : {
48 : ScRange maRange;
49 : ScAddress maMoveDelta;
50 : const sc::RefUpdateContext& mrCxt;
51 :
52 : public:
53 :
54 : RefMovedHint( const ScRange& rRange, const ScAddress& rMove, const sc::RefUpdateContext& rCxt );
55 : virtual ~RefMovedHint();
56 :
57 : /**
58 : * Get the source range from which the references have moved.
59 : */
60 : const ScRange& getRange() const;
61 :
62 : /**
63 : * Get the movement vector.
64 : */
65 : const ScAddress& getDelta() const;
66 :
67 : const sc::RefUpdateContext& getContext() const;
68 : };
69 :
70 2 : class RefColReorderHint : public RefHint
71 : {
72 : const sc::ColRowReorderMapType& mrColMap;
73 : SCTAB mnTab;
74 : SCROW mnRow1;
75 : SCROW mnRow2;
76 :
77 : public:
78 : RefColReorderHint( const sc::ColRowReorderMapType& rColMap, SCTAB nTab, SCROW nRow1, SCROW nRow2 );
79 : virtual ~RefColReorderHint();
80 :
81 : const sc::ColRowReorderMapType& getColMap() const;
82 :
83 : SCTAB getTab() const;
84 : SCROW getStartRow() const;
85 : SCROW getEndRow() const;
86 : };
87 :
88 56 : class RefRowReorderHint : public RefHint
89 : {
90 : const sc::ColRowReorderMapType& mrRowMap;
91 : SCTAB mnTab;
92 : SCCOL mnCol1;
93 : SCCOL mnCol2;
94 :
95 : public:
96 : RefRowReorderHint( const sc::ColRowReorderMapType& rRowMap, SCTAB nTab, SCCOL nCol1, SCCOL nCol2 );
97 : virtual ~RefRowReorderHint();
98 :
99 : const sc::ColRowReorderMapType& getRowMap() const;
100 :
101 : SCTAB getTab() const;
102 : SCCOL getStartColumn() const;
103 : SCCOL getEndColumn() const;
104 : };
105 :
106 52 : class RefStartListeningHint : public RefHint
107 : {
108 : public:
109 : RefStartListeningHint();
110 : virtual ~RefStartListeningHint();
111 : };
112 :
113 52 : class RefStopListeningHint : public RefHint
114 : {
115 : public:
116 : RefStopListeningHint();
117 : virtual ~RefStopListeningHint();
118 : };
119 :
120 : }
121 :
122 : #endif
123 :
124 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|