diff options
Diffstat (limited to 'examples/chart/chartform.h')
-rw-r--r-- | examples/chart/chartform.h | 90 |
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 |