QSint Library  0.2.2
axisbase.h
1 #ifndef AXISBASE_H
2 #define AXISBASE_H
3 
4 
5 #include "plotterbase.h"
6 
7 
8 namespace QSint
9 {
10 
11 
12 class PlotterBase;
13 
14 
22 class AxisBase : public QObject
23 {
24  Q_OBJECT
25 public:
26  explicit AxisBase(Qt::Orientation orient, PlotterBase *parent);
27 
28 
29  enum AxisType { AxisData, AxisTime, AxisModel };
30 
31  void setType(AxisType type);
32  inline AxisType type() const { return m_type; }
33 
34 
35  void setRanges(double min, double max);
36  inline double rangeMininum() const { return m_min; }
37  inline double rangeMaximum() const { return m_max; }
38 
39  void setTicks(double minor, double major);
40  inline double minorTicks() const { return m_minor; }
41  inline double majorTicks() const { return m_major; }
42 
43  void setOffset(int offset);
44  inline int offset() const { return m_offset; }
45 
46 
47  void setFont(const QFont &font);
48  inline const QFont& font() const { return m_font; }
49 
50  void setTextColor(const QColor &color);
51  inline const QColor& textColor() const { return m_textColor; }
52 
53  void setPen(const QPen &pen);
54  inline const QPen& pen() const { return m_pen; }
55 
56  void setMinorTicksPen(const QPen &pen);
57  inline const QPen& minorTicksPen() const { return m_minorPen; }
58 
59  void setMajorTicksPen(const QPen &pen);
60  inline const QPen& majorTicksPen() const { return m_majorPen; }
61 
62  void setMinorGridPen(const QPen &pen);
63  inline const QPen& minorGridPen() const { return m_minorGridPen; }
64 
65  void setMajorGridPen(const QPen &pen);
66  inline const QPen& majorGridPen() const { return m_majorGridPen; }
67 
68 
69  void setModel(QAbstractItemModel *model);
70  inline QAbstractItemModel* model() const { return m_model; }
71 
72 
73  virtual void calculatePoints(int &p_start, int &p_end);
74 
75  virtual int toView(double value);
76 
77 
78  virtual void draw(QPainter &p);
79 
80 protected:
81  virtual void drawAxisData(QPainter &p);
82  virtual void drawAxisModel(QPainter &p);
83 
84  Qt::Orientation m_orient;
85 
86  QAbstractItemModel *m_model;
87 
88  double m_min, m_max;
89  double m_minor, m_major;
90  int m_offset;
91 
92  QFont m_font;
93 
94  QPen m_pen, m_minorPen, m_majorPen, m_minorGridPen, m_majorGridPen;
95  QColor m_textColor;
96 
97  AxisType m_type;
98 };
99 
100 
101 } // namespace
102 
103 #endif // AXISBASE_H
Class representing single vertical or horizontal plotter axis.
Definition: axisbase.h:22
Base class for 2-dimensional plotter widgets.
Definition: plotterbase.h:36

© Sintegrial Technologies 2011-2014
http://www.sintegrial.com