You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/kchart/kchart_params.h

165 lines
4.7 KiB

/* This file is part of the KDE project
Copyright (C) 2001,2002,2003,2004 Laurent Montel <montel@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 KCHART_PARAMS_H
#define KCHART_PARAMS_H
class KoXmlWriter;
class KoGenStyles;
class KoOasisLoadingContext;
class KoStore;
class KDChartParams;
class DCOPObject;
#include "kdchart/KDChartParams.h"
namespace KChart
{
class KChartPart;
class KChartParams : public KDChartParams
{
public:
typedef enum {
// From KDChart
NoType = KDChartParams::NoType,
Bar = KDChartParams::Bar,
Line = KDChartParams::Line,
Area = KDChartParams::Area,
Pie = KDChartParams::Pie,
HiLo = KDChartParams::HiLo,
Ring = KDChartParams::Ring,
Polar = KDChartParams::Polar,
BoxWhisker = KDChartParams::BoxWhisker
} ChartType;
// Data direction
typedef enum {
DataRows = 0,
DataColumns = 1
} DataDirection;
KChartParams( KChartPart *_part );
~KChartParams();
KChartPart * part() const { return m_part; }
// ----------------------------------------------------------------
// Reimplementation of selected KDChartParams methods
ChartType chartType() const { return m_chartType; }
void setChartType( ChartType _type ) {
m_chartType = _type;
KDChartParams::setChartType( (KDChartParams::ChartType) _type );
}
// Data in rows or columns.
DataDirection dataDirection() const { return m_dataDirection; }
void setDataDirection( DataDirection _dir ) {
m_dataDirection = _dir;
}
QString chartTypeToString( ChartType _type) const;
ChartType stringToChartType( const QString& string );
bool firstRowAsLabel() const { return m_firstRowAsLabel; }
void setFirstRowAsLabel( bool _val );
bool firstColAsLabel() const { return m_firstColAsLabel; }
void setFirstColAsLabel( bool _val );
// Data area
QString dataArea() const { return m_dataArea; }
void setDataArea( QString dataArea ) {
m_dataArea = dataArea;
}
// ----------------------------------------------------------------
// BAR CHART EXTENSIONS TO SUPPORT OPENDOCUMENT
public slots:
void setBarNumLines( int _numLines ) {
m_barNumLines = _numLines;
emit changed();
}
int barNumLines() const {
return m_barNumLines;
}
// ----------------------------------------------------------------
public:
DCOPObject *dcopObject();
bool loadOasis( const QDomElement &chartElem,
KoOasisLoadingContext &loadingContext,
QString &errorMessage,
KoStore *store );
void saveOasis( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles ) const;
private:
bool loadOasisPlotarea( const QDomElement &plotareaElem,
KoOasisLoadingContext &loadingContext,
QString &errorMessage );
bool loadOasisAxis( const QDomElement &axisElem,
KoOasisLoadingContext &loadingContext,
QString &errorMessage,
KDChartAxisParams::AxisPos axisPos );
void loadOasisFont( KoOasisLoadingContext& context, QFont& font, QColor& color );
void saveOasisPlotArea( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles ) const;
void saveOasisAxis( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles,
KDChartAxisParams::AxisPos axisPos,
const char* axisName ) const;
QString saveOasisFont( KoGenStyles& mainStyles, const QFont& font,
const QColor& color ) const;
private:
KChartPart *m_part;
// Info about the chart itself.
ChartType m_chartType;
// Info about the data.
DataDirection m_dataDirection; // Rows or Columns
bool m_firstRowAsLabel;
bool m_firstColAsLabel;
QString m_dataArea;
// Extensions to support OpenDocument
int m_barNumLines; // Number of lines in a bar chart.
DCOPObject *m_dcop;
};
} //KChart namespace
#endif