]> sigrok.org Git - pulseview.git/blame_incremental - pv/widgets/sweeptimingwidget.hpp
Update property widgets before showing device config popup
[pulseview.git] / pv / widgets / sweeptimingwidget.hpp
... / ...
CommitLineData
1/*
2 * This file is part of the PulseView project.
3 *
4 * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP
21#define PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP
22
23#include <libsigrok/libsigrok.h>
24
25#include <QComboBox>
26#include <QDoubleSpinBox>
27#include <QHBoxLayout>
28#include <QLineEdit>
29#include <QWidget>
30
31namespace pv {
32namespace widgets {
33
34class SweepTimingWidget : public QWidget
35{
36 Q_OBJECT
37
38private:
39 enum ValueType
40 {
41 None,
42 MinMaxStep,
43 List
44 };
45
46public:
47 SweepTimingWidget(const char *suffix, QWidget *parent = nullptr);
48
49 void show_none();
50 void show_min_max_step(uint64_t min, uint64_t max, uint64_t step);
51 void show_list(const uint64_t *vals, size_t count);
52 void show_125_list(uint64_t min, uint64_t max);
53
54 uint64_t value() const;
55 void set_value(uint64_t value);
56
57Q_SIGNALS:
58 void value_changed();
59
60private:
61 const char *const suffix_;
62
63 QHBoxLayout layout_;
64
65 QDoubleSpinBox value_;
66 QComboBox list_;
67
68 ValueType value_type_;
69};
70
71} // namespace widgets
72} // namespace pv
73
74#endif // PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP