tdf#125181 maxY is 50000 in prstGeom for star24 and star32
[LibreOffice.git] / sc / inc / grouparealistener.hxx
blob283bc3124637361564881c1bad7ae84dfc02ceee
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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 */
10 #ifndef INCLUDED_SC_GROUPAREALISTENER_HXX
11 #define INCLUDED_SC_GROUPAREALISTENER_HXX
13 #include "address.hxx"
15 #include <svl/listener.hxx>
17 #include <vector>
19 class ScFormulaCell;
20 class ScDocument;
21 class ScColumn;
23 namespace sc {
25 class BulkDataHint;
27 class FormulaGroupAreaListener : public SvtListener
29 ScRange maRange;
30 const ScColumn* mpColumn;
31 SCROW mnTopCellRow;
32 SCROW mnGroupLen;
33 bool const mbStartFixed;
34 bool const mbEndFixed;
36 public:
38 FormulaGroupAreaListener() = delete;
39 FormulaGroupAreaListener( const ScRange& rRange, const ScDocument& rDocument,
40 const ScAddress& rTopCellPos, SCROW nGroupLen, bool bStartFixed, bool bEndFixed );
42 virtual ~FormulaGroupAreaListener() override;
44 ScRange getListeningRange() const;
46 virtual void Notify( const SfxHint& rHint ) override;
47 virtual void Query( QueryBase& rQuery ) const override;
49 /**
50 * Given the row span of changed cells within a single column, collect all
51 * formula cells that need to be notified of the change.
53 * @param nTab sheet position of the changed cell span.
54 * @param nCol column position of the changed cell span.
55 * @param nRow1 top row position of the changed cell span.
56 * @param nRow2 bottom row position of the changed cell span.
57 * @param rCells all formula cells that need to be notified are put into
58 * this container.
60 void collectFormulaCells( SCTAB nTab, SCCOL nCol, SCROW nRow1, SCROW nRow2, std::vector<ScFormulaCell*>& rCells ) const;
61 void collectFormulaCells( SCROW nRow1, SCROW nRow2, std::vector<ScFormulaCell*>& rCells ) const;
63 private:
64 void notifyCellChange( const SfxHint& rHint, const ScAddress& rPos );
65 void notifyBulkChange( const BulkDataHint& rHint );
66 const ScFormulaCell* getTopCell() const;
71 #endif
73 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */