A ColorPalette links a color palette with a vector of values. More...
#include <ColorPalette.h>
Public Member Functions | |
void | allocate (int n=10) |
const QColor & | color (int i) const |
const QColor & | color (double val) const |
void | colorHSVInterpole (int imin, int imax) |
ColorPalette () | |
void | colorRGBInterpole (int imin, int imax) |
int | count () const |
void | defaultBW (int n=10, int transparency=255) |
void | defaultColors (int n=10, int transparency=255) |
void | defaultHSVColors (int sat, int value, int n=10, int transparency=255) |
void | defaultRGBColors (int n=10, int transparency=255) |
int | index (double val) const |
double | lowerValue (int i) const |
bool | operator!= (const ColorPalette &o) const |
bool | operator== (const ColorPalette &o) const |
void | setColor (int i, const QColor &c) const |
void | setUpperValue (int i, double v) |
void | setVLinear (double min, double max) |
void | setVLinear (int imin, int imax, double min, double max) |
void | setVLog (double min, double max) |
void | setVLog (int imin, int imax, double min, double max) |
double | upperValue (int i) const |
virtual const QString & | xml_tagName () const |
Static Public Attributes | |
static const QString | xmlColorPaletteTag = "ColorPalette" |
Protected Member Functions | |
virtual XMLMember | xml_member (XML_MEMBER_ARGS) |
virtual bool | xml_setProperty (XML_SETPROPERTY_ARGS) |
virtual void | xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const |
A ColorPalette links a color palette with a vector of values.
ColorPalette are defined by a QColor vector of n elements and a vector of double of n-1 elements. Each value at i corresponds to the interface between the two colors at positions i and i+1.
QGpGuiTools::ColorPalette::ColorPalette | ( | ) | [inline] |
{_d=new ColorPaletteData;}
void QGpGuiTools::ColorPalette::allocate | ( | int | n = 10 | ) | [inline] |
Referenced by QGpGuiTools::operator>>(), SciFigs::PaletteTable::palette(), SciFigs::ColorPaletteWidget::setNumColor(), and xml_setProperty().
{_d->allocate(n);}
const QColor& QGpGuiTools::ColorPalette::color | ( | int | i | ) | const [inline] |
Referenced by SciFigs::ColorPaletteLayer::coordinateTipInfo(), createBands(), SciFigs::GridPlot::drawGrid2DBlock(), SciFigs::GridPlot::drawGrid2DSmooth(), SciFigs::GridPlot::drawGrid2DYSmooth(), SciFigs::ColorPaletteLayer::paintData(), SciFigs::XYValuePlot::paintData(), SciFigs::XYValueLines::paintData(), NAModelsPlot::paintData(), SciFigs::PaletteTable::setColors(), SciFigs::PaletteInterpole::setColors(), MonoStation::AbstractStation::setWindowColors(), and xml_writeProperties().
{return _d->color(i);}
const QColor& QGpGuiTools::ColorPalette::color | ( | double | val | ) | const [inline] |
{return _d->color(val);}
void QGpGuiTools::ColorPalette::colorHSVInterpole | ( | int | imin, |
int | imax | ||
) | [inline] |
Referenced by SciFigs::ColorPaletteWidget::colorInterpole().
{ _d->colorHSVInterpole(imin, imax); }
void QGpGuiTools::ColorPalette::colorRGBInterpole | ( | int | imin, |
int | imax | ||
) | [inline] |
{ _d->colorRGBInterpole(imin, imax); }
int QGpGuiTools::ColorPalette::count | ( | ) | const [inline] |
Referenced by SciFigs::ColorPaletteLayer::boundingRect(), SciFigs::ColorPaletteLayer::coordinateTipInfo(), SciFigs::GridPlot::drawGrid2DSmooth(), SciFigs::ColorPaletteLayer::paintData(), SciFigs::PaletteTable::setColors(), SciFigs::PaletteInterpole::setColors(), SciFigs::PaletteProperties::setPalette(), SciFigs::PaletteTable::setValues(), SciFigs::PaletteInterpole::setValues(), xml_setProperty(), and xml_writeProperties().
{return _d->count();}
void QGpGuiTools::ColorPalette::defaultBW | ( | int | n = 10 , |
int | transparency = 255 |
||
) | [inline] |
Referenced by SciFigs::ColorPaletteWidget::defaultBW().
{ _d->defaultBW(n, transparency); }
void QGpGuiTools::ColorPalette::defaultColors | ( | int | n = 10 , |
int | transparency = 255 |
||
) | [inline] |
Referenced by SciFigs::ColorPaletteWidget::ColorPaletteWidget(), createBands(), createDots(), createGrid(), createManyCurves(), SciFigs::ColorPaletteWidget::defaultColors(), SpacSelector::inverse(), and SciFigs::XYValuePlot::XYValuePlot().
{defaultHSVColors(255, 255, n, transparency);}
void QGpGuiTools::ColorPalette::defaultHSVColors | ( | int | sat, |
int | value, | ||
int | n = 10 , |
||
int | transparency = 255 |
||
) | [inline] |
Referenced by SciFigs::ColorPaletteWidget::defaultHSVColors(), SciFigs::GridPlot::GridPlot(), and MonoStation::AbstractStation::setWindowColors().
{ _d->defaultHSVColors(sat, value, n, transparency); }
void QGpGuiTools::ColorPalette::defaultRGBColors | ( | int | n = 10 , |
int | transparency = 255 |
||
) | [inline] |
{ _d->defaultRGBColors(n, transparency); }
int QGpGuiTools::ColorPalette::index | ( | double | val | ) | const [inline] |
Referenced by SciFigs::GridPlot::drawGrid2DSmooth(), SciFigs::GridPlot::drawGrid2DYSmooth(), and SciFigs::ColorPaletteLayer::paintData().
{return _d->index(val);}
double QGpGuiTools::ColorPalette::lowerValue | ( | int | i | ) | const [inline] |
Referenced by SciFigs::GridPlot::drawGrid2DSmooth(), and SciFigs::ColorPaletteLayer::paintData().
{return _d->lowerValue(i);}
bool QGpGuiTools::ColorPalette::operator!= | ( | const ColorPalette & | o | ) | const [inline] |
{return _d->operator!=(*o._d);}
bool QGpGuiTools::ColorPalette::operator== | ( | const ColorPalette & | o | ) | const [inline] |
{return _d->operator==(*o._d);}
void QGpGuiTools::ColorPalette::setColor | ( | int | i, |
const QColor & | c | ||
) | const [inline] |
Referenced by SpacSelector::inverse(), QGpGuiTools::operator>>(), SciFigs::PaletteTable::palette(), HistogramWidget::select(), SciFigs::PaletteTable::setConstant(), and xml_setProperty().
{return _d->setColor(i, c);}
void QGpGuiTools::ColorPalette::setUpperValue | ( | int | i, |
double | v | ||
) | [inline] |
Referenced by QGpGuiTools::operator>>(), SciFigs::PaletteTable::palette(), and xml_setProperty().
{_d->setUpperValue(i, v);}
void QGpGuiTools::ColorPalette::setVLinear | ( | double | min, |
double | max | ||
) | [inline] |
Referenced by SciFigs::ColorPaletteWidget::ColorPaletteWidget(), SpacSelector::inverse(), GeopsyGui::SignalsProperties::on_defaultPaletteValues_clicked(), HistogramWidget::select(), HistogramWidget::setHistogram(), SciFigs::XYValuePlot::setLinearPalette(), SciFigs::XYValueLines::setLinearPalette(), SciFigs::GridPlot::setLinearPalette(), and SciFigs::ColorPaletteWidget::setVLinear().
{ _d->setVLinear(min, max); }
void QGpGuiTools::ColorPalette::setVLinear | ( | int | imin, |
int | imax, | ||
double | min, | ||
double | max | ||
) | [inline] |
{ _d->setVLinear(imin, imax, min, max); }
void QGpGuiTools::ColorPalette::setVLog | ( | double | min, |
double | max | ||
) | [inline] |
Referenced by SciFigs::XYValuePlot::setLogPalette(), and SciFigs::ColorPaletteWidget::setVLog().
{ _d->setVLog(min, max); }
void QGpGuiTools::ColorPalette::setVLog | ( | int | imin, |
int | imax, | ||
double | min, | ||
double | max | ||
) | [inline] |
{ _d->setVLog(imin, imax, min, max); }
double QGpGuiTools::ColorPalette::upperValue | ( | int | i | ) | const [inline] |
Referenced by SciFigs::ColorPaletteLayer::boundingRect(), SciFigs::GridPlot::drawGrid2DSmooth(), SciFigs::GridPlot::drawGrid2DYSmooth(), SciFigs::ColorPaletteLayer::paintData(), SciFigs::PaletteTable::setValues(), SciFigs::PaletteInterpole::setValues(), and xml_writeProperties().
{return _d->upperValue(i);}
XMLMember QGpGuiTools::ColorPalette::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore (children and properties) support to your class.
From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:
Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):
static const QString tmp("childrenName"); XMLRestoreAttributeIterator it=map.find(tmp); if(it!=map.end()) { // found attribute "childrenName" }
If the map of attributes is not used:
Q_UNUSED(attributes); if(tag=="x1") return XMLMember(0); else if(tag=="y1") return XMLMember(1); else if(tag=="x2") return XMLMember(2); else if(tag=="y2") return XMLMember(3); else return XMLMember(XMLMember::Unknown);
Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.
if(tag=="anInteger") return XMLMember(0); else if(tag=="aString") return XMLMember(1); else if(tag=="aDouble") return XMLMember(2); return AbstractLine::xml_member(tag, attributes, context)+3;
For the arguments of this function use Macro XML_MEMBER_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
References TRACE.
{ TRACE; Q_UNUSED(attributes) Q_UNUSED(context); if(tag=="nColors" ) return XMLMember(0); else if(tag=="numberType" ) return XMLMember(1); // Compatibility else if(tag=="numberPrecision" ) return XMLMember(2); // Compatibility else if(tag=="palette" ) return XMLMember(3); else if(tag=="numType" ) return XMLMember(1); // Compatibility else if(tag=="numPrec" ) return XMLMember(2); // Compatibility else return XMLMember(XMLMember::Unknown); }
bool QGpGuiTools::ColorPalette::xml_setProperty | ( | XML_SETPROPERTY_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore properties support to your class.
From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).
For a general case:
Q_UNUSED(attributes); double val=content.toDouble(); switch (memberID) { case 0: _x1=val; return true; case 1: _y1=val; return true; case 2: _x2=val; return true; case 3: _y2=val; return true; default: return false; }
For classes inheriting other classes (see also xml_member())
switch (memberID) { case 0: _anInteger=content.toString(); return true; case 1: _aString=content.toInt(); return true; case 2: _aDouble=content.toDouble(); return true; default: return AbstractLine::xml_setProperty(memberID-3, map, content);
For the arguments of this function use Macro XML_SETPROPERTY_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
References allocate(), count(), QGpCoreTools::endl(), QGpCoreTools::StringSection::isValid(), QGpCoreTools::StringSection::nextField(), setColor(), setUpperValue(), QGpCoreTools::StringSection::toDouble(), QGpCoreTools::StringSection::toString(), QGpCoreTools::tr(), and TRACE.
{ TRACE; Q_UNUSED(tag); Q_UNUSED(attributes) Q_UNUSED(context); switch (memberID) { case 0: { int n=content.toInt(); if(n > 0) { allocate(n); return true; } else return false; } case 1: case 2: return true; case 3: { if(count()==0) return false; const QChar * ptr=0; content.nextLine(ptr); StringSection f; int i; QColor c; for(i=0;i < count();i++ ) { f=content.nextField(ptr); c.setNamedColor(f.toString()); if(f.isValid()) setColor(i, c); else break; if(i < count() - 1) { f=content.nextField(ptr); if(f.isValid()) setUpperValue(i, f.toDouble()); else break; } content.nextLine(ptr); } if(i==count()) return true; else { App::stream() << tr( "Error parsing color %1, incomplete line" ).arg(i) << endl; return false; } } default: break; } return false; }
virtual const QString& QGpGuiTools::ColorPalette::xml_tagName | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLClass.
{return xmlColorPaletteTag;}
void QGpGuiTools::ColorPalette::xml_writeProperties | ( | XML_WRITEPROPERTIES_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References color(), count(), TRACE, upperValue(), and QGpCoreTools::XMLClass::writeProperty().
{ TRACE; Q_UNUSED(context); writeProperty(s, "nColors", count()); QString tmp; tmp += s.indent(); tmp += "<palette>\n"; for(int i=0; i < count(); i++ ) { tmp += s.indent(); tmp += color(i).name(); if(i < count() - 1) { tmp += " "; tmp += QString::number(upperValue( i) ); } tmp += "\n"; } tmp += s.indent(); tmp += "</palette>\n"; s << tmp; }
const QString QGpGuiTools::ColorPalette::xmlColorPaletteTag = "ColorPalette" [static] |