LibreOffice Module sc (master) 1
refupdat.hxx
Go to the documentation of this file.
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 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <global.hxx>
23
24class ScDocument;
25class ScBigRange;
26struct ScComplexRefData;
27class ScAddress;
28class ScRange;
29
34 UR_STICKY = 3
39};
40
42{
43public:
44
46 ( const ScDocument* pDoc, UpdateRefMode eUpdateRefMode,
47 SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
48 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
49 SCCOL nDx, SCROW nDy, SCTAB nDz,
50 SCCOL& theCol1, SCROW& theRow1, SCTAB& theTab1,
51 SCCOL& theCol2, SCROW& theRow2, SCTAB& theTab2 );
52
53 static ScRefUpdateRes Update( UpdateRefMode eUpdateRefMode,
54 const ScBigRange& rWhere,
55 sal_Int32 nDx, sal_Int32 nDy, sal_Int32 nDz,
56 ScBigRange& rWhat );
57
58 static void MoveRelWrap( const ScDocument& rDoc, const ScAddress& rPos,
59 SCCOL nMaxCol, SCROW nMaxRow, ScComplexRefData& rRef );
60
62 const ScDocument& rDoc, const ScRange& rSource, const ScAddress& rDest, ScRange& rRef );
63
64 static void DoTranspose( SCCOL& rCol, SCROW& rRow, SCTAB& rTab, const ScDocument& rDoc,
65 const ScRange& rSource, const ScAddress& rDest );
66
68 const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY, ScRange& rRef );
69};
70
71/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
static ScRefUpdateRes UpdateTranspose(const ScDocument &rDoc, const ScRange &rSource, const ScAddress &rDest, ScRange &rRef)
Definition: refupdat.cxx:531
static ScRefUpdateRes Update(const ScDocument *pDoc, UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, SCCOL nDx, SCROW nDy, SCTAB nDz, SCCOL &theCol1, SCROW &theRow1, SCTAB &theTab1, SCCOL &theCol2, SCROW &theRow2, SCTAB &theTab2)
Definition: refupdat.cxx:188
static void DoTranspose(SCCOL &rCol, SCROW &rRow, SCTAB &rTab, const ScDocument &rDoc, const ScRange &rSource, const ScAddress &rDest)
Definition: refupdat.cxx:507
static void MoveRelWrap(const ScDocument &rDoc, const ScAddress &rPos, SCCOL nMaxCol, SCROW nMaxRow, ScComplexRefData &rRef)
Definition: refupdat.cxx:461
static ScRefUpdateRes UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY, ScRange &rRef)
Definition: refupdat.cxx:555
UpdateRefMode
Definition: global.hxx:301
ScRefUpdateRes
Definition: refupdat.hxx:30
@ UR_INVALID
Some part of the reference became invalid.
Definition: refupdat.hxx:33
@ UR_STICKY
Not updated because the reference is sticky, but would had been updated if it wasn't.
Definition: refupdat.hxx:34
@ UR_NOTHING
Reference not affected, no change at all.
Definition: refupdat.hxx:31
@ UR_UPDATED
Reference was adjusted/updated.
Definition: refupdat.hxx:32
Complex reference (a range) into the sheet.
Definition: refdata.hxx:123
sal_Int16 SCTAB
Definition: types.hxx:22
sal_Int16 SCCOL
Definition: types.hxx:21
sal_Int32 SCROW
Definition: types.hxx:17