LibreOffice Module sc (master)  1
sheetlimits.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
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 #ifndef INCLUDED_SC_INC_SHEETLIMITS_HXX
21 #define INCLUDED_SC_INC_SHEETLIMITS_HXX
22 
24 
25 // Because some stuff needs this info, and those objects lifetimes sometimes exceeds the lifetime
26 // of the ScDocument.
28 {
29  const SCCOL mnMaxCol;
30  const SCROW mnMaxRow;
31 
32  ScSheetLimits(SCCOL nMaxCol, SCROW nMaxRow)
33  : mnMaxCol(nMaxCol)
34  , mnMaxRow(nMaxRow){}
35 
36  [[nodiscard]] bool ValidCol(SCCOL nCol) const
37  {
38  return ::ValidCol(nCol, mnMaxCol);
39  }
40  [[nodiscard]] bool ValidRow(SCROW nRow) const { return ::ValidRow(nRow, mnMaxRow); }
41  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const
42  {
43  return ::ValidColRow(nCol, nRow, mnMaxCol, mnMaxRow);
44  }
45  [[nodiscard]] bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab) const
46  {
47  return ::ValidColRowTab(nCol, nRow, nTab, mnMaxCol, mnMaxRow);
48  }
49  [[nodiscard]] bool ValidRange(const ScRange& rRange) const
50  {
51  return ::ValidRange(rRange, mnMaxCol, mnMaxRow);
52  }
53  [[nodiscard]] bool ValidAddress(const ScAddress& rAddress) const
54  {
55  return ::ValidAddress(rAddress, mnMaxCol, mnMaxRow);
56  }
57  [[nodiscard]] SCCOL SanitizeCol(SCCOL nCol) const { return ::SanitizeCol(nCol, mnMaxCol); }
58  [[nodiscard]] SCROW SanitizeRow(SCROW nRow) const { return ::SanitizeRow(nRow, mnMaxRow); }
59 
60  // equivalent of MAXROWCOUNT in address.hxx
61  SCROW GetMaxRowCount() const { return mnMaxRow + 1; }
62  // equivalent of MAXCOLCOUNT in address.hxx
63  SCCOL GetMaxColCount() const { return mnMaxCol + 1; }
64 };
65 
66 #endif
67 
68 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: sheetlimits.hxx:41
SCCOL GetMaxColCount() const
Definition: sheetlimits.hxx:63
SCROW GetMaxRowCount() const
Definition: sheetlimits.hxx:61
bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:121
bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: sheetlimits.hxx:45
bool ValidRange(const ScRange &rRange, SCCOL nMaxCol=MAXCOL, SCROW nMaxRow=MAXROW)
Definition: address.hxx:793
SCROW SanitizeRow(SCROW nRow, SCROW nMaxRow)
Definition: address.hxx:133
SCCOL SanitizeCol(SCCOL nCol, SCCOL nMaxCol)
Definition: address.hxx:127
bool ValidCol(SCCOL nCol, SCCOL nMaxCol)
Definition: address.hxx:93
const SCROW mnMaxRow
Maximum addressable column.
Definition: sheetlimits.hxx:30
sal_Int16 SCCOL
Definition: types.hxx:22
bool ValidRow(SCROW nRow) const
Definition: sheetlimits.hxx:40
ScSheetLimits(SCCOL nMaxCol, SCROW nMaxRow)
Maximum addressable row.
Definition: sheetlimits.hxx:32
sal_Int32 SCROW
Definition: types.hxx:18
bool ValidCol(SCCOL nCol) const
Definition: sheetlimits.hxx:36
SCCOL SanitizeCol(SCCOL nCol) const
Definition: sheetlimits.hxx:57
const SCCOL mnMaxCol
Definition: sheetlimits.hxx:29
bool ValidColRow(SCCOL nCol, SCROW nRow, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:115
bool ValidRow(SCROW nRow, SCROW nMaxRow)
Definition: address.hxx:99
SCROW SanitizeRow(SCROW nRow) const
Definition: sheetlimits.hxx:58
bool ValidAddress(const ScAddress &rAddress) const
Definition: sheetlimits.hxx:53
bool ValidRange(const ScRange &rRange) const
Definition: sheetlimits.hxx:49
sal_Int16 SCTAB
Definition: types.hxx:23
bool ValidAddress(const ScAddress &rAddress, SCCOL nMaxCol=MAXCOL, SCROW nMaxRow=MAXROW)
Definition: address.hxx:491