Your IP : 216.73.216.48
| Current Path : /hdd/hdd21/main/usr/include/ |
|
|
| Current File : /hdd/hdd21/main/usr/include/KoOdfLineNumberingConfiguration.h |
/* This file is part of the KDE project
Copyright (C) 2010 KO GmbH <boud@kogmbh.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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 KOODFLINENUMBERINGCONFIGURATION_H
#define KOODFLINENUMBERINGCONFIGURATION_H
#include <QString>
#include <QPair>
#include <QMetaType>
#include <QObject>
#include "KoXmlReader.h"
#include "KoXmlWriter.h"
#include "KoOdfNumberDefinition.h"
#include "koodf_export.h"
/**
* Implement section 14.9.1: Line Numbering Configuration.
*
* A document can contain none or one line numbering configuration element
* <text:linenumbering-configuration> within the <office:styles> element. If the
* element is not present, a default line numbering configuration is used. The default line numbering
* may vary on the office application software, but every document saved by an application that
* supports line numbering should contain a line numbering configuration element.
*
* The attributes that may be associated with the <text:linenumbering-configuration>
* element are:
* <ul>
* <li> Line numbering enable
* <li> Number format
* <li> Text style
* <li> Increment
* <li> Position
* <li> Offset
* <li> Count empty lines
* <li> Count line in text boxes
* <li> Restart numbering on every page
* </ul>
* The following element may be included in the <text:linenumbering-separator> element:
* <li> Separator
*/
class KOODF_EXPORT KoOdfLineNumberingConfiguration : public QObject
{
Q_OBJECT
public:
KoOdfLineNumberingConfiguration();
~KoOdfLineNumberingConfiguration();
KoOdfLineNumberingConfiguration(const KoOdfLineNumberingConfiguration &other);
KoOdfLineNumberingConfiguration &operator=(const KoOdfLineNumberingConfiguration &other);
/**
* load the line numbering configuration element
*/
void loadOdf(const KoXmlElement &element);
/**
* save the line number configuration element
*/
void saveOdf(KoXmlWriter * writer) const;
/**
* The text:number-lines attribute controls whether or not lines are numbered.
*/
bool enabled() const;
void setEnabled(bool enabled);
/**
* See section 12.2 for detailed information on number format attributes. The attributes
* described in section 12.2 can also be associated with the <text:linenumbering-configuration>
* element.
*/
KoOdfNumberDefinition numberFormat() const;
void setNumberFormat(const KoOdfNumberDefinition &numberFormat);
/**
* The text:style-name attribute specifies the text style for all line numbers. The value
* of this attribute is the name of the text style that is applied to all line numbers.
*/
QString textStyle() const;
void setTextStyle(const QString &textStyle);
/**
* The text:increment attribute causes line numbers that are a multiple of the given increment to
* be numbered. For example, if the increment is 5, only lines number 5, 10, 15, and so on are
* numbered.
*/
int increment() const;
void setIncrement(int increment);
/**
* The text:position attribute determines whether the line numbers are printed on the left, right,
* inner, or outer margins.
*/
enum Position {
Left,
Right,
Inner,
Outer
};
Position position() const;
void setPosition(Position position);
/**
* The text:offset attribute determines the distance between the line number and the margin.
*/
int offset() const;
void setOffset(int offset);
/**
* The text:count-empty-lines attribute determines whether or not empty lines are included in
* the line count. If the value of this attribute is true, empty lines are included in the line count.
*/
bool countEmptyLines() const;
void setCountEmptyLines(bool countEmptyLines);
/**
* The text:count-in-text-boxes attribute determines whether or not text in text boxes is
* included in the line count. If the value of this attribute is true, text within text boxes is included in
* the line count.
*/
bool countLinesInTextBoxes() const;
void setCountLinesInTextBoxes(bool countLinesInTextBoxes);
/**
* The text:restart-on-page attribute determines whether or not the line count is reset to 1 at
* the start of every page.
*
* If the value of this attribute is true, the line count is reset to 1 at the beginning of every page,
* resulting in page -specific numbering of lines. The default value of this attribute is false,
* resulting in document-specific numbering of lines.
*/
bool restartNumberingOnEveryPage() const;
void setRestartNumberingOnEveryPage(bool restartNumberingOnEveryPage);
/**
* The <text:linenumbering-separator> element contains the text that is displayed as a
* separator. A separator is text that is displayed instead of a line number for lines where no number
* is displayed.
*
* This element is contained in the line numbering configuration element. If the element is not
* present, no separator is displayed.
*
* The element's text:increment attribute causes the separator to appear on lines that are a
* multiple of the given increment. For example, if the increment is 2, only lines 2, 4, 6, and so on get
* a separator, provided that no number is displayed already.
*/
QString separator() const;
void setSeparator(const QString &separator);
int separatorIncrement() const;
void setSeparatorIncrement(int separatorIncrement);
private:
class Private;
Private * const d;
};
Q_DECLARE_METATYPE(KoOdfLineNumberingConfiguration*)
#endif // KOODFLINENUMBERINGCONFIGURATION_H