mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								#ifndef W_F_PALETTE_HPP__
							 | 
						||
| 
								 | 
							
								#define W_F_PALETTE_HPP__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <QList>
							 | 
						||
| 
								 | 
							
								#include <QVector>
							 | 
						||
| 
								 | 
							
								#include <QColor>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class QString;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Class WFPalette
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//	Encapulates  a waterfall palette  description.  A  colour gradient
							 | 
						||
| 
								 | 
							
								//	over 256 intervals is described  by a list of RGB colour triplets.
							 | 
						||
| 
								 | 
							
								//	The list of  colours are use to interpolate  the full 256 interval
							 | 
						||
| 
								 | 
							
								//	waterfall colour gradient.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Responsibilities
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//	Construction from  a string which is  a path to  a file containing
							 | 
						||
| 
								 | 
							
								//	colour  descriptions  in  the   form  rrr;ggg;bbb  on  up  to  256
							 | 
						||
| 
								 | 
							
								//	consecutive lines, where rrr, ggg and, bbb are integral numbers in
							 | 
						||
| 
								 | 
							
								//	the range 0<=n<256.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//	Construction from a list of QColor instances.  Up to the first 256
							 | 
						||
| 
								 | 
							
								//	list elements are used.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//	Includes a design GUI to create or adjust a WFPalette.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								class WFPalette
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  using Colours = QList<QColor>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  WFPalette () = default;
							 | 
						||
| 
								 | 
							
								  explicit WFPalette (Colours const&);
							 | 
						||
| 
								 | 
							
								  explicit WFPalette (QString const& file_path);
							 | 
						||
| 
								 | 
							
								  WFPalette (WFPalette const&) = default;
							 | 
						||
| 
								 | 
							
								  WFPalette& operator = (WFPalette const&) = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Colours colours () const {return colours_;}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // interpolate a gradient over 256 steps
							 | 
						||
| 
								 | 
							
								  QVector<QColor> interpolate () const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // returns true if colours have been modified
							 | 
						||
| 
								 | 
							
								  bool design ();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  Colours colours_;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Q_DECLARE_METATYPE (WFPalette::Colours);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |