mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-05 00:41:19 -05:00
31ebdc9618
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
|