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 #include "address.hxx"
25 
26 // Because some stuff needs this info, and those objects lifetimes sometimes exceeds the lifetime
27 // of the ScDocument.
29 {
30  const SCCOL mnMaxCol;
31  const SCROW mnMaxRow;
32 
33  ScSheetLimits(SCCOL nMaxCol, SCROW nMaxRow)
34  : mnMaxCol(nMaxCol)
35  , mnMaxRow(nMaxRow){}
36 
37  [[nodiscard]] bool ValidCol(SCCOL nCol) const
38  {
39  return ::ValidCol(nCol, mnMaxCol);
40  }
41  [[nodiscard]] bool ValidRow(SCROW nRow) const { return ::ValidRow(nRow, mnMaxRow); }
42  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const
43  {
44  return ::ValidColRow(nCol, nRow, mnMaxCol, mnMaxRow);
45  }
46  [[nodiscard]] bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab) const
47  {
48  return ::ValidColRowTab(nCol, nRow, nTab, mnMaxCol, mnMaxRow);
49  }
50  [[nodiscard]] bool ValidRange(const ScRange& rRange) const
51  {
52  return ::ValidRange(rRange, mnMaxCol, mnMaxRow);
53  }
54  [[nodiscard]] bool ValidAddress(const ScAddress& rAddress) const
55  {
56  return ::ValidAddress(rAddress, mnMaxCol, mnMaxRow);
57  }
58  [[nodiscard]] SCCOL SanitizeCol(SCCOL nCol) const { return ::SanitizeCol(nCol, mnMaxCol); }
59  [[nodiscard]] SCROW SanitizeRow(SCROW nRow) const { return ::SanitizeRow(nRow, mnMaxRow); }
60 
61  // equivalent of MAXROWCOUNT in address.hxx
62  SCROW GetMaxRowCount() const { return mnMaxRow + 1; }
63  // equivalent of MAXCOLCOUNT in address.hxx
64  SCCOL GetMaxColCount() const { return mnMaxCol + 1; }
65 };
66 
67 #endif
68 
69 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: sheetlimits.hxx:42
SCCOL GetMaxColCount() const
Definition: sheetlimits.hxx:64
SCROW GetMaxRowCount() const
Definition: sheetlimits.hxx:62
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:46
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:31
sal_Int16 SCCOL
Definition: types.hxx:22
bool ValidRow(SCROW nRow) const
Definition: sheetlimits.hxx:41
ScSheetLimits(SCCOL nMaxCol, SCROW nMaxRow)
Maximum addressable row.
Definition: sheetlimits.hxx:33
sal_Int32 SCROW
Definition: types.hxx:18
bool ValidCol(SCCOL nCol) const
Definition: sheetlimits.hxx:37
SCCOL SanitizeCol(SCCOL nCol) const
Definition: sheetlimits.hxx:58
const SCCOL mnMaxCol
Definition: sheetlimits.hxx:30
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:59
bool ValidAddress(const ScAddress &rAddress) const
Definition: sheetlimits.hxx:54
bool ValidRange(const ScRange &rRange) const
Definition: sheetlimits.hxx:50
sal_Int16 SCTAB
Definition: types.hxx:23
bool ValidAddress(const ScAddress &rAddress, SCCOL nMaxCol=MAXCOL, SCROW nMaxRow=MAXROW)
Definition: address.hxx:491