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.
91 lines
2.2 KiB
91 lines
2.2 KiB
#ifndef CHARTFORM_H
|
|
#define CHARTFORM_H
|
|
|
|
#include "element.h"
|
|
|
|
#include <tqmainwindow.h>
|
|
#include <tqstringlist.h>
|
|
|
|
|
|
class CanvasView;
|
|
|
|
class TQAction;
|
|
class TQCanvas;
|
|
class TQFont;
|
|
class TQPrinter;
|
|
class TQString;
|
|
|
|
|
|
class ChartForm: public TQMainWindow
|
|
{
|
|
TQ_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
|