qwt_plot_marker.h 2.7 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
5
 *
pixhawk's avatar
pixhawk committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the Qwt License, Version 1.0
 *****************************************************************************/

// vim: expandtab

#ifndef QWT_PLOT_MARKER_H
#define QWT_PLOT_MARKER_H

#include <qpen.h>
#include <qfont.h>
#include <qstring.h>
#include <qbrush.h>
#include "qwt_global.h"
#include "qwt_plot_item.h"

class QRect;
class QwtText;
class QwtSymbol;

/*!
  \brief A class for drawing markers

  A marker can be a horizontal line, a vertical line,
  a symbol, a label or any combination of them, which can
  be drawn around a center point inside a bounding rectangle.

  The QwtPlotMarker::setSymbol() member assigns a symbol to the marker.
  The symbol is drawn at the specified point.

  With QwtPlotMarker::setLabel(), a label can be assigned to the marker.
  The QwtPlotMarker::setLabelAlignment() member specifies where the label is
  drawn. All the Align*-constants in Qt::AlignmentFlags (see Qt documentation)
  are valid. The interpretation of the alignment depends on the marker's
  line style. The alignment refers to the center point of
  the marker, which means, for example, that the label would be printed
  left above the center point if the alignment was set to AlignLeft|AlignTop.
*/

class QWT_EXPORT QwtPlotMarker: public QwtPlotItem
{
public:

    /*!
        Line styles.
        \sa QwtPlotMarker::setLineStyle, QwtPlotMarker::lineStyle
    */
    enum LineStyle {NoLine, HLine, VLine, Cross};
54

pixhawk's avatar
pixhawk committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
    explicit QwtPlotMarker();
    virtual ~QwtPlotMarker();

    virtual int rtti() const;

    double xValue() const;
    double yValue() const;
    QwtDoublePoint value() const;

    void setXValue(double);
    void setYValue(double);
    void setValue(double, double);
    void setValue(const QwtDoublePoint &);

    void setLineStyle(LineStyle st);
    LineStyle lineStyle() const;

    void setLinePen(const QPen &p);
    const QPen &linePen() const;

    void setSymbol(const QwtSymbol &s);
    const QwtSymbol &symbol() const;

    void setLabel(const QwtText&);
    QwtText label() const;

#if QT_VERSION < 0x040000
    void setLabelAlignment(int align);
    int labelAlignment() const;
#else
    void setLabelAlignment(Qt::Alignment);
    Qt::Alignment labelAlignment() const;
#endif

89 90 91 92
    virtual void draw(QPainter *p,
                      const QwtScaleMap &xMap, const QwtScaleMap &yMap,
                      const QRect &) const;

pixhawk's avatar
pixhawk committed
93 94 95 96 97 98 99 100
    virtual QwtDoubleRect boundingRect() const;

private:
    class PrivateData;
    PrivateData *d_data;
};

#endif