00001
00002
00003 #ifndef AXIS_H
00004 #define AXIS_H
00005
00006 #include <qstring.h>
00007 #include <qfont.h>
00008 #include <qcolor.h>
00009 #include "Label.h"
00010 #include "scale.h"
00011 #include "tickformat.h"
00012
00013 class Axis {
00014 public:
00015 Axis();
00016 ~Axis();
00017 QDomElement saveXML(QDomDocument doc, int id);
00018 void openXML(QDomNode node);
00019 void Enable(bool b=true) { enabled = b; }
00020 bool Enabled() { return enabled; }
00021 void setScale(TScale s) { scale=s; }
00022 TScale Scale() { return scale; }
00023 void setLabel(Label *l);
00024 Label *getLabel() { return label; }
00025 void setScaling(double s) { scaling=s; }
00026 double Scaling() { return scaling; }
00027 void setShift(double s) { shift=s; }
00028 double Shift() { return shift; }
00029 void setPosition(int p) { position = p; }
00030 int Position() { return position; }
00031 void centerX(int plotsize, double center);
00032 void centerY(int plotsize, double center);
00033
00034 bool tickType() { return ticktype; }
00035 void setTickType(bool t) { ticktype = t; }
00036 bool tickLabelEnabled() { return ticklabel_enabled; }
00037 void enableTickLabel(bool e=true) { ticklabel_enabled = e; }
00038 void setTickLabelRotation(double r) { ticklabelrotation = r; }
00039 double TickLabelRotation() { return ticklabelrotation; }
00040 void setTickLabelPrefix(QString p) { ticklabelprefix=p; }
00041 QString TickLabelPrefix() { return ticklabelprefix; }
00042 void setTickLabelSuffix(QString s) { ticklabelsuffix=s; }
00043 QString TickLabelSuffix() { return ticklabelsuffix; }
00044 void setTickLabelFont(QFont a) { tickfont = a; }
00045 QFont TickLabelFont() { return tickfont; }
00046 void setTickColor(QColor col) { tickcolor = col; }
00047 QColor TickColor() { return tickcolor; }
00048 void setTickLabelColor(QColor col) { ticklabelcolor = col; }
00049 QColor TickLabelColor() { return ticklabelcolor; }
00050 void setTickLabelFormat(TFormat t) { ticklabelformat = t; }
00051 TFormat TickLabelFormat() { return ticklabelformat; }
00052 void setDateTimeFormat(QString f) { datetimeformat = f; }
00053 QString DateTimeFormat() { return datetimeformat; }
00054 void setTickLabelPrecision(int p) { ticklabelprecision = p; }
00055 int TickLabelPrecision() { return ticklabelprecision; }
00056 void setTickLabelPosition(int g) { gap=g; }
00057 int TickLabelPosition() { return gap; }
00058
00059 void setMajorTicks(double t) { majorticks = t; }
00060 double MajorTicks() { return majorticks; }
00061 void setMinorTicks(int t) { minorticks = t; }
00062 int MinorTicks() { return minorticks; }
00063 void enableMajorTicks(bool b=true) { majorticks_enabled = b; }
00064 void enableMinorTicks(bool b=true) { minorticks_enabled = b; }
00065 bool MajorTicksEnabled() { return majorticks_enabled; }
00066 bool MinorTicksEnabled() { return minorticks_enabled; }
00067 void setTickPos(int tp) { tickpos = tp; }
00068 int TickPos() { return tickpos; }
00069 void setMajorTickWidth(int w) { majortickwidth = w; }
00070 int majorTickWidth() { return majortickwidth; }
00071 void setMinorTickWidth(int w) { minortickwidth = w; }
00072 int minorTickWidth() { return minortickwidth; }
00073 double majorTickLength() { return majorticklength; }
00074 void setMajorTickLength(double v) {majorticklength=v; }
00075 double minorTickLength() { return minorticklength; }
00076 void setMinorTickLength(double v) {minorticklength=v; }
00077
00078 bool BorderEnabled() { return border_enabled; }
00079 void enableBorder(bool b=true) { border_enabled=b; }
00080 void setBorderColor(QColor c) { bordercolor = c; }
00081 QColor BorderColor() { return bordercolor; }
00082 void setBorderWidth(int b) { borderwidth = b; }
00083 int borderWidth() { return borderwidth; }
00084
00085 bool MajorGridEnabled() { return majorgrid_enabled; }
00086 void enableMajorGrid(bool b=true) { majorgrid_enabled=b; }
00087 bool MinorGridEnabled() { return minorgrid_enabled; }
00088 void enableMinorGrid(bool b=true) { minorgrid_enabled=b; }
00089 void setMajorGridColor(QColor c) { majorgridcolor = c; }
00090 QColor majorGridColor() { return majorgridcolor; }
00091 void setMinorGridColor(QColor c) { minorgridcolor = c; }
00092 QColor minorGridColor() { return minorgridcolor; }
00093 void setMajorGridType(Qt::PenStyle t) { majorgridtype = t; }
00094 Qt::PenStyle MajorGridType() { return majorgridtype; }
00095 void setMinorGridType(Qt::PenStyle t) { minorgridtype = t; }
00096 Qt::PenStyle MinorGridType() { return minorgridtype; }
00097 void setMajorGridWidth(int w) { majorgridwidth = w; }
00098 int majorGridWidth() { return majorgridwidth; }
00099 void setMinorGridWidth(int w) { minorgridwidth = w; }
00100 int minorGridWidth() { return minorgridwidth; }
00101 private:
00102 bool enabled;
00103 Label *label;
00104 int position;
00105 TScale scale;
00106 double scaling, shift;
00107 int ticktype;
00108 bool ticklabel_enabled;
00109 double ticklabelrotation;
00110 QString ticklabelprefix, ticklabelsuffix;
00111 QFont tickfont;
00112 QColor tickcolor, ticklabelcolor;
00113 TFormat ticklabelformat;
00114 QString datetimeformat;
00115 int ticklabelprecision;
00116 int tickpos;
00117 double majorticks;
00118 int minorticks;
00119 bool majorticks_enabled;
00120 bool minorticks_enabled;
00121 int gap;
00122 bool border_enabled;
00123 QColor bordercolor;
00124 int borderwidth;
00125 bool majorgrid_enabled, minorgrid_enabled;
00126 QColor majorgridcolor, minorgridcolor;
00127 Qt::PenStyle majorgridtype;
00128 Qt::PenStyle minorgridtype;
00129 int majortickwidth, minortickwidth;
00130 int majorgridwidth, minorgridwidth;
00131 double majorticklength, minorticklength;
00132 };
00133
00134 #endif //AXIS_H