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
 |