All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Public Attributes | Protected Member Functions
SciFigs::HistogramLayer Class Reference

Brief description of class still missing. More...

#include <HistogramLayer.h>

Inheritance diagram for SciFigs::HistogramLayer:
SciFigs::GraphContentLayer QGpGuiTools::PropertyItem QGpCoreTools::XMLClass

List of all members.

Public Member Functions

virtual Rect boundingRect () const
 HistogramLayer (AxisWindow *parent=0)
virtual void paintData (const LayerPainterRequest &lp, QPainter &p, double dotpercm) const
void set (const Histogram &h)
virtual const QString & xml_tagName () const
 ~HistogramLayer ()

Static Public Attributes

static const QString xmlHistogramLayerTag = "HistogramLayer"

Protected Member Functions

XMLMember xml_member (XML_MEMBER_ARGS)
bool xml_setProperty (XML_SETPROPERTY_ARGS)
void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References TRACE.

    : GraphContentLayer(parent)
  {
    TRACE;
  }

Description of destructor still missing

References TRACE.

  {
    TRACE;
  }

Member Function Documentation

Implements SciFigs::GraphContentLayer.

References QGpCoreTools::Histogram::limits(), and TRACE.

  {
    TRACE;
    return _histogram.limits();
  }
void SciFigs::HistogramLayer::paintData ( const LayerPainterRequest lp,
QPainter &  p,
double  dotpercm 
) const [virtual]

Implements SciFigs::GraphContentLayer.

References QGpCoreTools::Histogram::boxes(), SciFigs::LayerPainterRequest::options(), SciFigs::GraphContentOptions::r2s(), TRACE, QGpCoreTools::Rect::x1(), QGpCoreTools::Rect::x2(), SciFigs::GraphContentOptions::xVisMax(), SciFigs::GraphContentOptions::xVisMin(), QGpCoreTools::Rect::y1(), and QGpCoreTools::Rect::y2().

  {
    TRACE;
    const GraphContentOptions& gc=lp.options();
    QVector<Rect> rects=_histogram.boxes();
    int n=rects.count()-1;
    if(n>0) {
      p.save();
      p.setPen(Qt::NoPen);
      p.setBrush(QBrush(Qt::black, Qt::SolidPattern));
      const Rect& r1=rects.first();
      p.drawRect(QRect(gc.r2s(gc.xVisMin(), 0), gc.r2s(r1.x2(), r1.y2())));
      for(int i=1; i<n; i++) {
         const Rect& r=rects.at(i);
         p.drawRect(QRect(gc.r2s(r.x1(), r.y1()), gc.r2s(r.x2(), r.y2())));
      }
      const Rect& r2=rects.last();
      p.drawRect(QRect(gc.r2s(r2.x1(), r2.y2()), gc.r2s(gc.xVisMax(), 0)));
      p.restore();
    }
  }
Todo:
Add support for multiple histograms with the same sampling

References TRACE.

Referenced by Results::Results().

  {
    TRACE;
    LayerLocker ll(this);
    _histogram=h;
  }

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:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

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 SciFigs::GraphContentLayer.

  {

  }

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 SciFigs::GraphContentLayer.

  {

  }
virtual const QString& SciFigs::HistogramLayer::xml_tagName ( ) const [inline, virtual]

Reimplemented from SciFigs::GraphContentLayer.

Reimplemented from SciFigs::GraphContentLayer.

  {

  }

Member Data Documentation

const QString SciFigs::HistogramLayer::xmlHistogramLayerTag = "HistogramLayer" [static]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines