summaryrefslogtreecommitdiffstats
path: root/examples/chart/chartform.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/chart/chartform.h')
-rw-r--r--examples/chart/chartform.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/examples/chart/chartform.h b/examples/chart/chartform.h
new file mode 100644
index 000000000..7fdeea641
--- /dev/null
+++ b/examples/chart/chartform.h
@@ -0,0 +1,90 @@
+#ifndef CHARTFORM_H
+#define CHARTFORM_H
+
+#include "element.h"
+
+#include <qmainwindow.h>
+#include <qstringlist.h>
+
+
+class CanvasView;
+
+class TQAction;
+class TQCanvas;
+class TQFont;
+class TQPrinter;
+class TQString;
+
+
+class ChartForm: public TQMainWindow
+{
+ Q_OBJECT
+public:
+ enum { MAX_ELEMENTS = 100 };
+ enum { MAX_RECENTFILES = 9 }; // Must not exceed 9
+ enum ChartType { PIE, VERTICAL_BAR, HORIZONTAL_BAR };
+ enum AddValuesType { NO, YES, AS_PERCENTAGE };
+
+ ChartForm( const TQString& filename );
+ ~ChartForm();
+
+ int chartType() { return m_chartType; }
+ void setChanged( bool changed = TRUE ) { m_changed = changed; }
+ void drawElements();
+
+ TQPopupMenu *optionsMenu; // Why public? See canvasview.cpp
+
+protected:
+ virtual void closeEvent( TQCloseEvent * );
+
+private slots:
+ void fileNew();
+ void fileOpen();
+ void fileOpenRecent( int index );
+ void fileSave();
+ void fileSaveAs();
+ void fileSaveAsPixmap();
+ void filePrint();
+ void fileQuit();
+ void optionsSetData();
+ void updateChartType( TQAction *action );
+ void optionsSetFont();
+ void optionsSetOptions();
+ void helpHelp();
+ void helpAbout();
+ void helpAboutTQt();
+ void saveOptions();
+
+private:
+ void init();
+ void load( const TQString& filename );
+ bool okToClear();
+ void drawPieChart( const double scales[], double total, int count );
+ void drawVerticalBarChart( const double scales[], double total, int count );
+ void drawHorizontalBarChart( const double scales[], double total, int count );
+
+ TQString valueLabel( const TQString& label, double value, double total );
+ void updateRecentFiles( const TQString& filename );
+ void updateRecentFilesMenu();
+ void setChartType( ChartType chartType );
+
+ TQPopupMenu *fileMenu;
+ TQAction *optionsPieChartAction;
+ TQAction *optionsHorizontalBarChartAction;
+ TQAction *optionsVerticalBarChartAction;
+
+
+ TQString m_filename;
+ TQStringList m_recentFiles;
+ TQCanvas *m_canvas;
+ CanvasView *m_canvasView;
+ bool m_changed;
+ ElementVector m_elements;
+ TQPrinter *m_printer;
+ ChartType m_chartType;
+ AddValuesType m_addValues;
+ int m_decimalPlaces;
+ TQFont m_font;
+};
+
+#endif