mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-10-31 15:47:10 -04:00
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
|
#ifndef HINTED_SPIN_BOX_HPP_
|
||
|
#define HINTED_SPIN_BOX_HPP_
|
||
|
|
||
|
#include <vector>
|
||
|
|
||
|
#include <QSpinBox>
|
||
|
|
||
|
//
|
||
|
// HintedSpinBox - QSpinBox refinement with an optional sequence of
|
||
|
// discrete hints
|
||
|
//
|
||
|
// The hint sequence values are used as step values and can
|
||
|
// optionally define the minimum and maximum value. Intermediate
|
||
|
// values are allowed but the step up/down arrows and accelerator
|
||
|
// keys will only use the hints.
|
||
|
//
|
||
|
// Ensure that the default minimum and maximum values are sufficient
|
||
|
// to allow initial initialization if done before the hints are set.
|
||
|
//
|
||
|
class HintedSpinBox
|
||
|
: public QSpinBox
|
||
|
{
|
||
|
public:
|
||
|
typedef std::vector<int> values_type;
|
||
|
|
||
|
HintedSpinBox (QWidget * parent = nullptr)
|
||
|
: QSpinBox {parent}
|
||
|
{
|
||
|
}
|
||
|
|
||
|
// Initialize sequence of values allowed.
|
||
|
//
|
||
|
// This spin box behaves exactly as a standard QSpinBox if the
|
||
|
// sequence of values is empty.
|
||
|
//
|
||
|
// The minimum and maximum are automatically set to the lowest and
|
||
|
// highest value provided if required.
|
||
|
//
|
||
|
// Returns the previous sequence.
|
||
|
values_type values (values_type values, bool set_min_max = true);
|
||
|
|
||
|
// Read access to the values.
|
||
|
values_type const& values () const {return values_;}
|
||
|
|
||
|
protected:
|
||
|
// override the QSpinBox stepping
|
||
|
void stepBy (int steps) override;
|
||
|
|
||
|
private:
|
||
|
std::vector<int> values_;
|
||
|
};
|
||
|
|
||
|
#endif
|