LegendWidget.h
Go to the documentation of this file.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 LEGENDWIDGET_H
00030 #define LEGENDWIDGET_H
00031
00032 #include <QWidget>
00033 #include <qwt_plot.h>
00034 #include <qwt_text.h>
00035
00036 #include "Graph.h"
00037
00038 class LegendWidget: public QWidget
00039 {
00040 Q_OBJECT
00041
00042 public:
00043 LegendWidget(Graph *);
00044 ~LegendWidget();
00045
00046 void clone(LegendWidget* t);
00047 Graph *plot(){return d_plot;};
00048
00050 enum FrameStyle{None = 0, Line = 1, Shadow = 2};
00051
00052 QString text(){return d_text->text();};
00053 void setText(const QString& s);
00054
00056 double xValue(){return d_x;};
00058 double yValue(){return d_y;};
00060 void setOriginCoord(double x, double y);
00062 void setOrigin(int x, int y){move(QPoint(x, y));};
00063 void move(const QPoint& pos);
00064
00065 QColor textColor(){return d_text->color();};
00066 void setTextColor(const QColor& c);
00067
00068 QColor backgroundColor(){return d_text->backgroundBrush().color();};
00069 void setBackgroundColor(const QColor& c);
00070
00071 int frameStyle(){return d_frame;};
00072 void setFrameStyle(int style);
00073
00074 QFont font(){return d_text->font();};
00075 void setFont(const QFont& font);
00076
00077 int angle(){return d_angle;};
00078 void setAngle(int ang){d_angle = ang;};
00079
00080 void showTextEditor();
00081 void showTextDialog(){emit showDialog();};
00082 void showContextMenu(){emit showMenu();};
00083
00084 void print(QPainter *p, const QwtScaleMap map[QwtPlot::axisCnt]);
00085 void resetOrigin(){setOriginCoord(d_x, d_y);};
00086 void updateCoordinates();
00087
00088 private:
00090 double calculateXValue();
00092 double calculateYValue();
00093
00094 PlotCurve* getCurve(const QString& s, int &point);
00095 void drawFrame(QPainter *p, const QRect& rect);
00096 void drawVector(PlotCurve *c, QPainter *p, int x, int y, int l);
00097 void drawSymbol(PlotCurve *c, int point, QPainter *p, int x, int y, int l);
00098 void drawText(QPainter *, const QRect&, QwtArray<long>, int);
00099
00100 QwtArray<long> itemsHeight(int y, int symbolLineLength, int &width, int &height);
00101 int symbolsMaxWidth();
00102 QString parse(const QString& str);
00103
00104 virtual void paintEvent(QPaintEvent *e);
00105 void mousePressEvent(QMouseEvent *);
00106 void contextMenuEvent(QContextMenuEvent * ){emit showMenu();};
00107
00109 Graph *d_plot;
00110
00112 int d_frame;
00113
00115 int d_angle;
00116
00118 QwtText* d_text;
00119
00121 int h_space;
00122
00124 int left_margin, top_margin;
00125
00127 int line_length;
00128
00130 double d_x;
00132 double d_y;
00133
00134 signals:
00135 void showDialog();
00136 void showMenu();
00137 void enableEditor();
00138 };
00139
00140 #endif