1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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/.
13 #include "sal/types.h"
15 #include <boost/intrusive_ptr.hpp>
19 typedef ::boost::intrusive_ptr
<ScMatrix
> ScMatrixRef
;
20 typedef ::boost::intrusive_ptr
<const ScMatrix
> ScConstMatrixRef
;
23 typedef ::boost::intrusive_ptr
<ScToken
> ScTokenRef
;
25 typedef sal_uInt8 ScMatValType
;
26 const ScMatValType SC_MATVAL_VALUE
= 0x00;
27 const ScMatValType SC_MATVAL_BOOLEAN
= 0x01;
28 const ScMatValType SC_MATVAL_STRING
= 0x02;
29 const ScMatValType SC_MATVAL_EMPTY
= SC_MATVAL_STRING
| 0x04; // STRING plus flag
30 const ScMatValType SC_MATVAL_EMPTYPATH
= SC_MATVAL_EMPTY
| 0x08; // EMPTY plus flag
31 const ScMatValType SC_MATVAL_NONVALUE
= SC_MATVAL_EMPTYPATH
; // mask of all non-value bits
33 struct ScFormulaCellGroup
;
34 typedef ::boost::intrusive_ptr
<ScFormulaCellGroup
> ScFormulaCellGroupRef
;
37 * When vectorization is enabled, we could potentially mass-calculate a
38 * series of formula token arrays in adjacent formula cells in one step,
39 * provided that they all contain identical set of tokens.
41 enum ScFormulaVectorState
43 FormulaVectorDisabled
= 0,
45 FormulaVectorCheckReference
,
51 const sal_uInt16 MatrixEdgeNothing
= 0;
52 const sal_uInt16 MatrixEdgeInside
= 1;
53 const sal_uInt16 MatrixEdgeBottom
= 2;
54 const sal_uInt16 MatrixEdgeLeft
= 4;
55 const sal_uInt16 MatrixEdgeTop
= 8;
56 const sal_uInt16 MatrixEdgeRight
= 16;
57 const sal_uInt16 MatrixEdgeOpen
= 32;
62 GroupCalcOpenCLKernelCompilationScheduled
,
63 GroupCalcOpenCLKernelBinaryCreated
,
80 bool isRangeValid() const;
87 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */