blob: eaebbf313e4c4948ddb8cbafda88ee973d1e1325 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/* -*- c++ -*- */
/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef DISPLAY_FORM_H
#define DISPLAY_FORM_H
#include <gnuradio/qtgui/api.h>
#include <gnuradio/qtgui/spectrumUpdateEvents.h>
#include <QtGui/QtGui>
#include <vector>
#include <qwt_plot_grid.h>
#include <qwt_plot_layout.h>
#include <gnuradio/qtgui/DisplayPlot.h>
#include <gnuradio/qtgui/form_menus.h>
/*!
* \brief Base class for setting up and managing QTGUI plot forms.
* \ingroup qtgui_blk
*/
class QTGUI_API DisplayForm : public QWidget
{
Q_OBJECT
public:
DisplayForm(int nplots = 1, QWidget* parent = 0);
~DisplayForm() override;
virtual DisplayPlot* getPlot() = 0;
void Reset();
bool isClosed() const;
void enableMenu(bool en = true);
public slots:
void mousePressEvent(QMouseEvent* e) override;
void customEvent(QEvent* e) override = 0;
void closeEvent(QCloseEvent* e) override;
void setUpdateTime(double t);
void setTitle(const QString& title);
void setLineLabel(unsigned int which, const QString& label);
void setLineColor(unsigned int which, const QString& color);
void setLineWidth(unsigned int which, unsigned int width);
void setLineStyle(unsigned int which, Qt::PenStyle style);
void setLineMarker(unsigned int which, QwtSymbol::Style style);
void setMarkerAlpha(unsigned int which, unsigned int alpha);
QString title();
QString lineLabel(unsigned int which);
QString lineColor(unsigned int which);
int lineWidth(unsigned int which);
Qt::PenStyle lineStyle(unsigned int which);
QwtSymbol::Style lineMarker(unsigned int which);
int markerAlpha(unsigned int which);
virtual void setSampleRate(const QString& rate);
void setStop(bool on);
void setStop();
void setGrid(bool on);
void setAxisLabels(bool en);
void saveFigure();
void disableLegend();
private slots:
virtual void newData(const QEvent*) = 0;
virtual void autoScale(bool) = 0;
void updateGuiTimer();
virtual void onPlotPointSelected(const QPointF p);
signals:
void plotPointSelected(const QPointF p, int type);
void toggleGrid(bool en);
protected:
bool d_isclosed;
unsigned int d_nplots;
QGridLayout* d_layout;
DisplayPlot* d_display_plot;
bool d_system_specified_flag;
QwtPlotGrid* d_grid;
bool d_menu_on;
QMenu* d_menu;
QAction* d_stop_act;
bool d_stop_state;
QAction* d_grid_act;
bool d_grid_state;
QAction* d_axislabelsmenu;
bool d_axislabels;
QAction* d_autoscale_act;
bool d_autoscale_state;
QList<QMenu*> d_lines_menu;
QList<LineTitleAction*> d_line_title_act;
QList<LineColorMenu*> d_line_color_menu;
QList<LineWidthMenu*> d_line_width_menu;
QList<LineStyleMenu*> d_line_style_menu;
QList<LineMarkerMenu*> d_line_marker_menu;
QList<MarkerAlphaMenu*> d_marker_alpha_menu;
PopupMenu* d_samp_rate_act;
QAction* d_save_act;
double d_update_time;
};
#endif /* DISPLAY_FORM_H */
|