File: RowColumnFormat.h

package info (click to toggle)
calligra 1%3A3.2.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 260,432 kB
  • sloc: cpp: 650,911; xml: 27,662; python: 6,044; perl: 2,724; yacc: 1,817; ansic: 1,325; sh: 1,277; lex: 1,107; ruby: 1,010; javascript: 495; makefile: 24
file content (212 lines) | stat: -rw-r--r-- 5,289 bytes parent folder | download | duplicates (3)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
/* This file is part of the KDE project
   Copyright (C) 1998, 1999  Torben Weis <weis@kde.org>
   Copyright (C) 2000 - 2003 The KSpread Team <calligra-devel@kde.org>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
*/

#ifndef CALLIGRA_SHEETS_ROW_COLUMN_FORMAT
#define CALLIGRA_SHEETS_ROW_COLUMN_FORMAT

#include <QBrush>

#include <KoXmlReader.h>

#include "sheets_odf_export.h"
#include "Global.h"
#include "Style.h"

class QDomElement;
class QDomDocument;

namespace Calligra
{
namespace Sheets
{
class Sheet;
class RowFormatStorage;

/**
 * A row style.
 */
class CALLIGRA_SHEETS_ODF_EXPORT RowFormat
{
public:
    RowFormat();
    RowFormat(const RowFormat& other);
    RowFormat(const RowFormatStorage* rows, int row);
    ~RowFormat();

    void setSheet(Sheet* sheet);

    QDomElement save(QDomDocument&, int yshift = 0) const;
    bool load(const KoXmlElement& row, int yshift = 0, Paste::Mode mode = Paste::Normal);

    /**
     * \return the row's height
     */
    double height() const;

    /**
     * The visible row height, respecting hiding and filtering attributes.
     * \return the visible row height
     */
    double visibleHeight() const;

    /**
     * Sets the height to _h zoomed pixels.
     *
     * @param _h is calculated in display pixels as double value. The function cares for zooming.
     * Use this function when setting the height, to not get rounding problems.
     */
    void setHeight(double _h);

    /**
     * @reimp
     */
    bool isDefault() const;

    /**
     * @return the row for this RowFormat. May be 0 if this is the default format.
     */
    int row() const;
    void setRow(int row);

    RowFormat* next() const;
    RowFormat* previous() const;
    void setNext(RowFormat* c);
    void setPrevious(RowFormat* c);

    /**
     * Sets the hide flag
     */
    void setHidden(bool _hide, bool repaint = true);
    bool isHidden() const;

    void setFiltered(bool filtered);
    bool isFiltered() const;

    bool isHiddenOrFiltered() const;

    /**
     * Sets a page break before this row, if \p enable is \c true.
     */
    void setPageBreak(bool enable);

    /**
     * \return \c true, if there's a page break set before this row.
     */
    bool hasPageBreak() const;

    bool operator==(const RowFormat& other) const;
    inline bool operator!=(const RowFormat& other) const {
        return !operator==(other);
    }

private:
    // do not allow assignment
    RowFormat& operator=(const RowFormat&);

    class Private;
    Private * const d;
};

/**
 * A column style.
 */
class CALLIGRA_SHEETS_ODF_EXPORT ColumnFormat
{
public:
    ColumnFormat();
    ColumnFormat(const ColumnFormat& other);
    ~ColumnFormat();

    void setSheet(Sheet* sheet);

    QDomElement save(QDomDocument&, int xshift = 0) const;
    bool load(const KoXmlElement& row, int xshift = 0, Paste::Mode mode = Paste::Normal);

    /**
     * \return the column's width
     */
    double width() const;

    /**
     * The visible column width, respecting hiding and filtering attributes.
     * \return the visible column width
     */
    double visibleWidth() const;

    /**
     * Sets the width to _w zoomed pixels as double value.
     * Use this function to set the width without getting rounding problems.
     *
     * @param _w is calculated in display pixels. The function cares for
     *           zooming.
     */
    void setWidth(double _w);

    /**
     * @reimp
     */
    bool isDefault() const;

    /**
     * @return the column of this ColumnFormat. May be 0 if this is the default format.
     */
    int column() const;
    void setColumn(int column);

    ColumnFormat* next() const;
    ColumnFormat* previous() const;
    void setNext(ColumnFormat* c);
    void setPrevious(ColumnFormat* c);

    void setHidden(bool _hide);
    bool isHidden() const;

    void setFiltered(bool filtered);
    bool isFiltered() const;

    bool isHiddenOrFiltered() const;

    /**
     * Sets a page break before this row, if \p enable is \c true.
     */
    void setPageBreak(bool enable);

    /**
     * \return \c true, if there's a page break set before this row.
     */
    bool hasPageBreak() const;

    bool operator==(const ColumnFormat& other) const;
    inline bool operator!=(const ColumnFormat& other) const {
        return !operator==(other);
    }

private:
    // do not allow assignment
    ColumnFormat& operator=(const ColumnFormat&);

    class Private;
    Private * const d;
};

} // namespace Sheets
} // namespace Calligra

#endif // CALLIGRA_SHEETS_ROW_COLUMN_FORMAT