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