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 QListWidget;
00039 class QPushButton;
00040 class QRadioButton;
00041 class QSpinBox;
00042 class QTabWidget;
00043 class QWidget;
00044 class QStringList;
00045 class QStackedWidget;
00046 class QDoubleSpinBox;
00047 class ColorButton;
00048
00049 using namespace Qwt3D;
00050
00052 class Plot3DDialog : public QDialog
00053 {
00054 Q_OBJECT
00055
00056 public:
00057 Plot3DDialog( QWidget* parent, Qt::WFlags fl = 0 );
00058 void setPlot(Graph3D *);
00059
00060 void showTitleTab();
00061 void showAxisTab();
00062 void showGeneralTab();
00063
00064 private slots:
00065 void accept();
00066 bool updatePlot();
00067
00068 void pickTitleFont();
00069 void viewAxisOptions(int axis);
00070 QFont axisFont(int axis);
00071 void pickAxisLabelFont();
00072 void pickNumbersFont();
00073
00074 QStringList scaleOptions(int axis, double start, double end,
00075 const QString& majors, const QString& minors);
00076 void viewScaleLimits(int axis);
00077 void disableMeshOptions();
00078 void showBarsTab(double rad);
00079 void showPointsTab(double rad, bool smooth);
00080 void showConesTab(double rad, int quality);
00081 void showCrossHairTab(double rad, double linewidth, bool smooth, bool boxed);
00082
00083 void worksheet();
00084
00085 void initPointsOptionsStack();
00086 void changeZoom(int);
00087 void changeTransparency(int val);
00088
00089 void showLowerGreek();
00090 void showUpperGreek();
00091 void addSymbol(const QString& letter);
00092 void pickDataColorMap();
00093
00094 private:
00095 void initScalesPage();
00096 void initAxesPage();
00097 void initTitlePage();
00098 void initColorsPage();
00099 void initGeneralPage();
00100
00101 Graph3D *d_plot;
00102 QFont titleFont, xAxisFont,yAxisFont,zAxisFont, numbersFont;
00103 QStringList labels, scales, tickLengths;
00104 QDoubleSpinBox *boxMeshLineWidth;
00105 QPushButton* buttonApply;
00106 QPushButton* buttonOk;
00107 QPushButton* buttonCancel, *buttonLowerGreek, *buttonUpperGreek;
00108 QPushButton *btnTitleFont, *btnLabelFont;
00109 QPushButton *btnNumbersFont, *btnTable, *btnColorMap;
00110 ColorButton *btnBackground, *btnMesh, *btnAxes, *btnTitleColor, *btnLabels;
00111 ColorButton *btnFromColor, *btnToColor, *btnNumbers, *btnGrid;
00112 QPushButton *buttonAxisLowerGreek, *buttonAxisUpperGreek;
00113 QTabWidget* generalDialog;
00114 QWidget *scale, *colors, *general, *axes, *title, *bars, *points;
00115 QLineEdit *boxTitle, *boxFrom, *boxTo, *boxLabel;
00116 QSpinBox *boxMajors, *boxMinors;
00117 QGroupBox *TicksGroupBox, *AxesColorGroupBox;
00118 QSpinBox *boxResolution, *boxDistance, *boxTransparency;
00119 QCheckBox *boxLegend, *boxSmooth, *boxBoxed, *boxCrossSmooth, *boxOrthogonal;
00120 QListWidget *axesList, *axesList2;
00121 QComboBox *boxType, *boxPointStyle;
00122 QLineEdit *boxMajorLength, *boxMinorLength, *boxConesRad;
00123 QSpinBox *boxZoom, *boxXScale, *boxYScale, *boxZScale, *boxQuality;
00124 QLineEdit *boxSize, *boxBarsRad, *boxCrossRad, *boxCrossLinewidth;
00125 QStackedWidget *optionStack;
00126 QWidget *dotsPage, *conesPage, *crossPage;
00127 };
00128
00129 #endif