File indexing completed on 2024-05-12 16:29:17

0001 /*
0002  *  Copyright (c) 2010 Carlos Licea <carlos@kdab.com>
0003  *
0004  *  This library is free software; you can redistribute it and/or modify
0005  *  it under the terms of the GNU Lesser General Public License as published
0006  *  by the Free Software Foundation; either version 2.1 of the License, or
0007  *  (at your option) any later version.
0008  *
0009  *  This library is distributed in the hope that it will be useful,
0010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0012  *  GNU Lesser General Public License for more details.
0013  *
0014  *  You should have received a copy of the GNU Lesser General Public License
0015  *  along with this program; if not, write to the Free Software
0016  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0017  */
0018 
0019 #ifndef KOROWSTYLE_H
0020 #define KOROWSTYLE_H
0021 
0022 #include "KoStyle.h"
0023 #include "koodf2_export.h"
0024 
0025 #include <QColor>
0026 
0027 /**
0028  * \class KoRowStyle
0029  * \brief This class represents a style of a row to be applied to one or more rows.
0030  * 
0031  * As all the styles it can be shared
0032  */
0033 
0034 class KOODF2_EXPORT KoRowStyle : public KoStyle
0035 {
0036     KoRowStyle();
0037 
0038 public:
0039     KOSTYLE_DECLARE_SHARED_POINTER(KoRowStyle)
0040     ~KoRowStyle() override;
0041 
0042     void setBackgroundColor(const QColor& color);
0043     QColor backgroundColor() const;
0044 
0045     enum HeightType{
0046         MinimumHeight,
0047         ExactHeight,
0048         OptimalHeight
0049     };
0050     void setHeight(qreal height);
0051     void setHeightType(HeightType type);
0052     qreal height() const;
0053 
0054     enum BreakType {
0055         NoBreak,
0056         AutoBreak,
0057         ColumnBreak,
0058         PageBreak
0059     };
0060     void setBreakBefore(BreakType breakBefore);
0061     BreakType breakBefore() const;
0062 
0063     void setBreakAfter(BreakType breakAfter);
0064     BreakType breakAfter() const;
0065 
0066     enum KeepTogetherType {
0067         DontKeepTogether,
0068         AutoKeepTogether,
0069         AlwaysKeeptogether
0070     };
0071     void setKeepTogether(KeepTogetherType keepTogether);
0072     KeepTogetherType keepTogether() const;
0073 
0074 //     void setBackgroundImage(Image image);
0075 //     Image backgroundImage() const;
0076 
0077 protected:
0078     KoGenStyle::Type automaticstyleType() const override;
0079     QString defaultPrefix() const override;
0080     void prepareStyle(KoGenStyle& style) const override;
0081     const char* styleFamilyName() const override;
0082     KoGenStyle::Type styleType() const override;
0083 
0084 private:
0085     QColor m_backgroundColor;
0086 //     Image* m_image;
0087 
0088     qreal m_height;
0089     HeightType m_heightType;
0090     BreakType m_breakAfter;
0091     BreakType m_breakBefore;
0092     KeepTogetherType m_keepTogether;
0093 };
0094 
0095 #endif