summaryrefslogtreecommitdiffstats
path: root/sc/inc/subtotalparam.hxx
blob: 8e36dad83987cd0c558e7f5cb441eff36cc5e386 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

#pragma once

#include "global.hxx"
#include <memory>

struct SC_DLLPUBLIC ScSubTotalParam
{
    SCCOL           nCol1;                      ///< selected area
    SCROW           nRow1;
    SCCOL           nCol2;
    SCROW           nRow2;
    sal_uInt16      nUserIndex;                 ///< index into list
    bool            bRemoveOnly:1;
    bool            bReplace:1;                 ///< replace existing results
    bool            bPagebreak:1;               ///< page break at change of group
    bool            bCaseSens:1;
    bool            bDoSort:1;                  ///< presort
    bool            bAscending:1;               ///< sort ascending
    bool            bUserDef:1;                 ///< sort user defined
    bool            bIncludePattern:1;          ///< sort formats
    bool            bGroupActive[MAXSUBTOTAL];  ///< active groups
    SCCOL           nField[MAXSUBTOTAL];        ///< associated field
    SCCOL           nSubTotals[MAXSUBTOTAL];    ///< number of SubTotals
    std::unique_ptr<SCCOL[]> pSubTotals[MAXSUBTOTAL];    ///< array of columns to be calculated
    std::unique_ptr<ScSubTotalFunc[]> pFunctions[MAXSUBTOTAL];    ///< array of associated functions

    ScSubTotalParam();
    ScSubTotalParam( const ScSubTotalParam& r );

    ScSubTotalParam& operator= ( const ScSubTotalParam& r );
    bool operator== ( const ScSubTotalParam& r ) const;
    void Clear();
    void SetSubTotals( sal_uInt16 nGroup,
                       const SCCOL* ptrSubTotals,
                       const ScSubTotalFunc* ptrFunctions,
                       sal_uInt16 nCount );
};

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */