kchart

kchart_part.h
1
5#ifndef KCHART_PART_H
6#define KCHART_PART_H
7
8
9#include <tdeconfig.h>
10
11#include <koChart.h>
12#include "kchart_params.h"
13#include "koffice_export.h"
14
15class KoXmlWriter;
16class KoGenStyles;
17namespace KChart
18{
19
20class KChartParams;
21
22
23class KCHART_EXPORT KChartPart : public KoChart::Part
24{
25 TQ_OBJECT
26
27
28public:
29 KChartPart( TQWidget *parentWidget = 0, const char *widgetName = 0,
30 TQObject* parent = 0, const char* name = 0,
31 bool singleViewMode = false );
32 ~KChartPart();
33
34 // Methods inherited from KoDocument:
35
36 virtual bool initDoc(InitDocFlags flags, TQWidget* parentWidget=0);
37
38 virtual void paintContent( TQPainter& painter, const TQRect& rect,
39 bool transparent = false,
40 double zoomX = 1.0, double zoomY = 1.0 );
41
42 // Methods unique to KChart, and available in the new interface
43 // (see ../interfaces/koChart.h.)
44
45 virtual void resizeData( int rows, int columns );
46 virtual void setCellData( int row, int column, const TQVariant &);
47 virtual void analyzeHeaders( );
48 virtual void setCanChangeValue( bool b ) { m_bCanChangeValue = b; }
49
50 // ----------------------------------------------------------------
51
52 void analyzeHeaders( const KDChartTableData& data );
53 void doSetData( const KDChartTableData& data,
54 bool firstColHeader,
55 bool firstRowHeader );
56
57 bool showWizard( TQString &dataArea );
58 void initLabelAndLegend();
59 void loadConfig(TDEConfig *conf);
60 void saveConfig(TDEConfig *conf);
61 void defaultConfig();
62
63 KChartParams::ChartType chartType() const { return (KChartParams::ChartType) params()->chartType(); }
64 KDChartTableData *data() { return &m_currentData; }
65 KChartParams *params() const { return m_params; }
66
67 TQStringList &rowLabelTexts() { return m_rowLabels; }
68 TQStringList &colLabelTexts() { return m_colLabels; }
69
70 // Save and load
71 virtual TQDomDocument saveXML();
72 virtual bool loadXML( TQIODevice *, const TQDomDocument& doc );
73 virtual bool loadOasis( const TQDomDocument& doc,
74 KoOasisStyles& oasisStyles,
75 const TQDomDocument& settings,
76 KoStore *store );
77 virtual bool saveOasis( KoStore* store,
78 KoXmlWriter* manifestWriter );
79
80 bool canChangeValue() const { return m_bCanChangeValue; }
81
82 void initNullChart();
83
84 // Functions that generate templates (not used yet):
85 void generateBarChartTemplate();
86
87 virtual bool showEmbedInitDialog(TQWidget* parent);
88
89public slots:
90 void slotModified();
91 virtual void initEmpty();
92
93signals:
94 void docChanged();
95
96protected:
97 virtual KoView* createViewInstance( TQWidget* parent, const char* name );
98 bool loadOldXML( const TQDomDocument& doc );
99 bool loadAuxiliary( const TQDomDocument& doc );
100 bool loadData( const TQDomDocument& doc, KDChartTableData& currentData );
101 bool loadOasisData( const TQDomElement& tableElem );
102 void saveOasisData( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles ) const;
103 void writeAutomaticStyles( KoXmlWriter& contentWriter, KoGenStyles& mainStyles ) const;
104
105private:
106 // Helper methods for painting.
107 int createDisplayData();
108 void createLabelsAndLegend( TQStringList &longLabels,
109 TQStringList &shortLabels );
110
111
112 TQDomElement createElement(const TQString &tagName,
113 const TQFont &font,
114 TQDomDocument &doc) const;
115 TQFont toFont(TQDomElement &element) const;
116
117 void setChartDefaults();
118
119private:
120 // The chart and its contents
121 KChartParams *m_params; // Everything about the chart
122 KDChartTableData m_currentData; // The data in the chart.
123 TQStringList m_rowLabels;
124 TQStringList m_colLabels;
125 //TQString m_regionName;
126
127 // Other auxiliary values
128 bool m_bCanChangeValue;
129
130 // Graphics
131 TQWidget *m_parentWidget;
132
133 // Used when displaying.
134 KDChartTableData m_displayData;
135
136 TQPixmap m_bufferPixmap;
137};
138
139
140class WizardExt : public KoChart::WizardExtension
141{
142public:
143 WizardExt( KoChart::Part *part )
144 : KoChart::WizardExtension( part ) {};
145
146 virtual bool show( TQString &dataArea ) {
147 return static_cast<KChartPart *>( part() )->showWizard( dataArea );
148 }
149};
150
151} //KChart namespace
152
153#endif