00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef PLOT3DDIALOG_H
00030 #define PLOT3DDIALOG_H
00031
00032 #include "Graph3D.h"
00033 #include <QCheckBox>
00034
00035 class QComboBox;
00036 class QLabel;
00037 class QLineEdit;
00038 class QTextEdit;
00039 class QListWidget;
00040 class QPushButton;
00041 class QRadioButton;
00042 class QSpinBox;
00043 class QTabWidget;
00044 class QWidget;
00045 class QStringList;
00046 class QStackedWidget;
00047 class QDoubleSpinBox;
00048 class ColorButton;
00049 class TextFormatButtons;
00050
00051 using namespace Qwt3D;
00052
00054 class Plot3DDialog : public QDialog
00055 {
00056 Q_OBJECT
00057
00058 public:
00059 Plot3DDialog( QWidget* parent, Qt::WFlags fl = 0 );
00060 void setPlot(Graph3D *);
00061
00062 void showTitleTab();
00063 void showAxisTab();
00064 void showGeneralTab();
00065
00066 private slots:
00067 void accept();
00068 bool updatePlot();
00069
00070 void pickTitleFont();
00071 void viewAxisOptions(int axis);
00072 QFont axisFont(int axis);
00073 void pickAxisLabelFont();
00074 void pickNumbersFont();
00075
00076 QStringList scaleOptions(int axis, double start, double end,
00077 const QString& majors, const QString& minors);
00078 void viewScaleLimits(int axis);
00079 void disableMeshOptions();
00080 void showBarsTab(double rad);
00081 void showPointsTab(double rad, bool smooth);
00082 void showConesTab(double rad, int quality);
00083 void showCrossHairTab(double rad, double linewidth, bool smooth, bool boxed);
00084
00085 void worksheet();
00086
00087 void initPointsOptionsStack();
00088 void changeZoom(int);
00089 void changeTransparency(int val);
00090 void pickDataColorMap();
00091
00092 private:
00093 void initScalesPage();
00094 void initAxesPage();
00095 void initTitlePage();
00096 void initColorsPage();
00097 void initGeneralPage();
00098
00099 Graph3D *d_plot;
00100 QFont titleFont, xAxisFont,yAxisFont,zAxisFont, numbersFont;
00101 QStringList labels, scales, tickLengths;
00102 QDoubleSpinBox *boxMeshLineWidth;
00103 QPushButton* buttonApply;
00104 QPushButton* buttonOk;
00105 QPushButton* buttonCancel;
00106 QPushButton *btnTitleFont, *btnLabelFont;
00107 QPushButton *btnNumbersFont, *btnTable, *btnColorMap;
00108 ColorButton *btnBackground, *btnMesh, *btnAxes, *btnTitleColor, *btnLabels;
00109 ColorButton *btnFromColor, *btnToColor, *btnNumbers, *btnGrid;
00110 QTabWidget* generalDialog;
00111 QWidget *scale, *colors, *general, *axes, *title, *bars, *points;
00112 QLineEdit *boxFrom, *boxTo;
00113 QTextEdit *boxTitle, *boxLabel;
00114 QSpinBox *boxMajors, *boxMinors;
00115 QGroupBox *TicksGroupBox, *AxesColorGroupBox;
00116 QSpinBox *boxResolution, *boxDistance, *boxTransparency;
00117 QCheckBox *boxLegend, *boxSmooth, *boxBoxed, *boxCrossSmooth, *boxOrthogonal;
00118 QListWidget *axesList, *axesList2;
00119 QComboBox *boxType, *boxPointStyle;
00120 QLineEdit *boxMajorLength, *boxMinorLength, *boxConesRad;
00121 QSpinBox *boxZoom, *boxXScale, *boxYScale, *boxZScale, *boxQuality;
00122 QLineEdit *boxSize, *boxBarsRad, *boxCrossRad, *boxCrossLinewidth;
00123 QStackedWidget *optionStack;
00124 QWidget *dotsPage, *conesPage, *crossPage;
00125 TextFormatButtons *titleFormatButtons, *axisTitleFormatButtons;
00126 };
00127
00128 #endif