mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	The new class WFPalette encapsulates waterfall palettes including exporting and importing to disk files and interpolation for use in the waterfall plotter. A special entry in the palette list "User Defined" is now available along with a button to invoke a colour palette designer. The user defined palette definition is persistent across runs as it is saved in the application settings file. Palettes can now have any number of colours up to 256. The export function may be used to save user designed palettes; to be added to the built in resource palettes that are shipped with the application. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3964 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			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
 |