qwt5-5.2.3/0000755000175000017500000000000012052741127011760 5ustar gudjongudjonqwt5-5.2.3/src/0000755000175000017500000000000012052741127012547 5ustar gudjongudjonqwt5-5.2.3/src/qwt_event_pattern.h0000644000175000017500000001223612052741123016471 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_EVENT_PATTERN #define QWT_EVENT_PATTERN 1 #include #include "qwt_array.h" class QMouseEvent; class QKeyEvent; /*! \brief A collection of event patterns QwtEventPattern introduces an level of indirection for mouse and keyboard inputs. Those are represented by symbolic names, so the application code can be configured by individual mappings. \sa QwtPicker, QwtPickerMachine, QwtPlotZoomer */ class QWT_EXPORT QwtEventPattern { public: /*! \brief Symbolic mouse input codes The default initialization for 3 button mice is: - MouseSelect1\n Qt::LeftButton - MouseSelect2\n Qt::RightButton - MouseSelect3\n Qt::MidButton - MouseSelect4\n Qt::LeftButton + Qt::ShiftButton - MouseSelect5\n Qt::RightButton + Qt::ShiftButton - MouseSelect6\n Qt::MidButton + Qt::ShiftButton The default initialization for 2 button mice is: - MouseSelect1\n Qt::LeftButton - MouseSelect2\n Qt::RightButton - MouseSelect3\n Qt::LeftButton + Qt::AltButton - MouseSelect4\n Qt::LeftButton + Qt::ShiftButton - MouseSelect5\n Qt::RightButton + Qt::ShiftButton - MouseSelect6\n Qt::LeftButton + Qt::AltButton + Qt::ShiftButton The default initialization for 1 button mice is: - MouseSelect1\n Qt::LeftButton - MouseSelect2\n Qt::LeftButton + Qt::ControlButton - MouseSelect3\n Qt::LeftButton + Qt::AltButton - MouseSelect4\n Qt::LeftButton + Qt::ShiftButton - MouseSelect5\n Qt::LeftButton + Qt::ControlButton + Qt::ShiftButton - MouseSelect6\n Qt::LeftButton + Qt::AltButton + Qt::ShiftButton \sa initMousePattern() */ enum MousePatternCode { MouseSelect1, MouseSelect2, MouseSelect3, MouseSelect4, MouseSelect5, MouseSelect6, MousePatternCount }; /*! \brief Symbolic keyboard input codes Default initialization: - KeySelect1\n Qt::Key_Return - KeySelect2\n Qt::Key_Space - KeyAbort\n Qt::Key_Escape - KeyLeft\n Qt::Key_Left - KeyRight\n Qt::Key_Right - KeyUp\n Qt::Key_Up - KeyDown\n Qt::Key_Down - KeyUndo\n Qt::Key_Minus - KeyRedo\n Qt::Key_Plus - KeyHome\n Qt::Key_Escape */ enum KeyPatternCode { KeySelect1, KeySelect2, KeyAbort, KeyLeft, KeyRight, KeyUp, KeyDown, KeyRedo, KeyUndo, KeyHome, KeyPatternCount }; //! A pattern for mouse events class MousePattern { public: MousePattern(int btn = Qt::NoButton, int st = Qt::NoButton) { button = btn; state = st; } int button; int state; }; //! A pattern for key events class KeyPattern { public: KeyPattern(int k = 0, int st = Qt::NoButton) { key = k; state = st; } int key; int state; }; QwtEventPattern(); virtual ~QwtEventPattern(); void initMousePattern(int numButtons); void initKeyPattern(); void setMousePattern(uint pattern, int button, int state = Qt::NoButton); void setKeyPattern(uint pattern, int key, int state = Qt::NoButton); void setMousePattern(const QwtArray &); void setKeyPattern(const QwtArray &); const QwtArray &mousePattern() const; const QwtArray &keyPattern() const; QwtArray &mousePattern(); QwtArray &keyPattern(); bool mouseMatch(uint pattern, const QMouseEvent *) const; bool keyMatch(uint pattern, const QKeyEvent *) const; protected: virtual bool mouseMatch(const MousePattern &, const QMouseEvent *) const; virtual bool keyMatch(const KeyPattern &, const QKeyEvent *) const; private: #if defined(_MSC_VER) #pragma warning(push) #pragma warning(disable: 4251) #endif QwtArray d_mousePattern; QwtArray d_keyPattern; #if defined(_MSC_VER) #pragma warning(pop) #endif }; inline bool operator==(QwtEventPattern::MousePattern b1, QwtEventPattern::MousePattern b2) { return b1.button == b2.button && b1.state == b2.state; } inline bool operator==(QwtEventPattern::KeyPattern b1, QwtEventPattern::KeyPattern b2) { return b1.key == b2.key && b1.state == b2.state; } #if defined(QWT_TEMPLATEDLL) // MOC_SKIP_BEGIN template class QWT_EXPORT QwtArray; template class QWT_EXPORT QwtArray; // MOC_SKIP_END #endif #endif qwt5-5.2.3/src/qwt_text_engine.h0000644000175000017500000001132312052741123016120 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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_TEXT_ENGINE_H #define QWT_TEXT_ENGINE_H 1 #include #include "qwt_global.h" class QFont; class QRect; class QString; class QPainter; /*! \brief Abstract base class for rendering text strings A text engine is responsible for rendering texts for a specific text format. They are used by QwtText to render a text. QwtPlainTextEngine and QwtRichTextEngine are part of the Qwt library. QwtMathMLTextEngine can be found in Qwt MathML extension, that needs the MathML renderer of the Qt solutions package. Unfortunately it is only available with a commercial Qt license. \sa QwtText::setTextEngine() */ class QWT_EXPORT QwtTextEngine { public: virtual ~QwtTextEngine(); /*! Find the height for a given width \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \param width Width \return Calculated height */ virtual int heightForWidth(const QFont &font, int flags, const QString &text, int width) const = 0; /*! Returns the size, that is needed to render text \param font Font of the text \param flags Bitwise OR of the flags like in for QPainter::drawText \param text Text to be rendered \return Caluclated size */ virtual QSize textSize(const QFont &font, int flags, const QString &text) const = 0; /*! Test if a string can be rendered by this text engine \param text Text to be tested \return true, if it can be rendered */ virtual bool mightRender(const QString &text) const = 0; /*! Return margins around the texts The textSize might include margins around the text, like QFontMetrics::descent. In situations where texts need to be aligend in detail, knowing these margins might improve the layout calculations. \param font Font of the text \param text Text to be rendered \param left Return value for the left margin \param right Return value for the right margin \param top Return value for the top margin \param bottom Return value for the bottom margin */ virtual void textMargins(const QFont &font, const QString &text, int &left, int &right, int &top, int &bottom) const = 0; /*! Draw the text in a clipping rectangle \param painter Painter \param rect Clipping rectangle \param flags Bitwise OR of the flags like in for QPainter::drawText \param text Text to be rendered */ virtual void draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const = 0; protected: QwtTextEngine(); }; /*! \brief A text engine for plain texts QwtPlainTextEngine renders texts using the basic Qt classes QPainter and QFontMetrics. */ class QWT_EXPORT QwtPlainTextEngine: public QwtTextEngine { public: QwtPlainTextEngine(); virtual ~QwtPlainTextEngine(); virtual int heightForWidth(const QFont &font, int flags, const QString &text, int width) const; virtual QSize textSize(const QFont &font, int flags, const QString &text) const; virtual void draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const; virtual bool mightRender(const QString &) const; virtual void textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const; private: class PrivateData; PrivateData *d_data; }; #ifndef QT_NO_RICHTEXT /*! \brief A text engine for Qt rich texts QwtRichTextEngine renders Qt rich texts using the classes of the Scribe framework of Qt. */ class QWT_EXPORT QwtRichTextEngine: public QwtTextEngine { public: QwtRichTextEngine(); virtual int heightForWidth(const QFont &font, int flags, const QString &text, int width) const; virtual QSize textSize(const QFont &font, int flags, const QString &text) const; virtual void draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const; virtual bool mightRender(const QString &) const; virtual void textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const; private: QString taggedText(const QString &, int flags) const; }; #endif // !QT_NO_RICHTEXT #endif qwt5-5.2.3/src/qwt_slider.h0000644000175000017500000000711012052741123015070 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_SLIDER_H #define QWT_SLIDER_H #include "qwt_global.h" #include "qwt_abstract_scale.h" #include "qwt_abstract_slider.h" class QwtScaleDraw; /*! \brief The Slider Widget QwtSlider is a slider widget which operates on an interval of type double. QwtSlider supports different layouts as well as a scale. \image html sliders.png \sa QwtAbstractSlider and QwtAbstractScale for the descriptions of the inherited members. */ class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale { Q_OBJECT Q_ENUMS( ScalePos ) Q_ENUMS( BGSTYLE ) Q_PROPERTY( ScalePos scalePosition READ scalePosition WRITE setScalePosition ) Q_PROPERTY( BGSTYLE bgStyle READ bgStyle WRITE setBgStyle ) Q_PROPERTY( int thumbLength READ thumbLength WRITE setThumbLength ) Q_PROPERTY( int thumbWidth READ thumbWidth WRITE setThumbWidth ) Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth ) public: /*! Scale position. QwtSlider tries to enforce valid combinations of its orientation and scale position: - Qt::Horizonal combines with NoScale, TopScale and BottomScale - Qt::Vertical combines with NoScale, LeftScale and RightScale \sa QwtSlider() */ enum ScalePos { NoScale, LeftScale, RightScale, TopScale, BottomScale }; /*! Background style. \sa QwtSlider() */ enum BGSTYLE { BgTrough = 0x1, BgSlot = 0x2, BgBoth = BgTrough | BgSlot }; explicit QwtSlider(QWidget *parent, Qt::Orientation = Qt::Horizontal, ScalePos = NoScale, BGSTYLE bgStyle = BgTrough); #if QT_VERSION < 0x040000 explicit QwtSlider(QWidget *parent, const char *name); #endif virtual ~QwtSlider(); virtual void setOrientation(Qt::Orientation); void setBgStyle(BGSTYLE); BGSTYLE bgStyle() const; void setScalePosition(ScalePos s); ScalePos scalePosition() const; int thumbLength() const; int thumbWidth() const; int borderWidth() const; void setThumbLength(int l); void setThumbWidth(int w); void setBorderWidth(int bw); void setMargins(int x, int y); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setScaleDraw(QwtScaleDraw *); const QwtScaleDraw *scaleDraw() const; protected: virtual double getValue(const QPoint &p); virtual void getScrollMode(const QPoint &p, int &scrollMode, int &direction); void draw(QPainter *p, const QRect& update_rect); virtual void drawSlider (QPainter *p, const QRect &r); virtual void drawThumb(QPainter *p, const QRect &, int pos); virtual void resizeEvent(QResizeEvent *e); virtual void paintEvent (QPaintEvent *e); virtual void valueChange(); virtual void rangeChange(); virtual void scaleChange(); virtual void fontChange(const QFont &oldFont); void layoutSlider( bool update = true ); int xyPosition(double v) const; QwtScaleDraw *scaleDraw(); private: void initSlider(Qt::Orientation, ScalePos scalePos, BGSTYLE bgStyle); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_printfilter.h0000644000175000017500000000366512052741123017221 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_PRINTFILTER_H #define QWT_PLOT_PRINTFILTER_H #include #include #include "qwt_global.h" class QwtPlot; class QwtPlotItem; /*! \brief A base class for plot print filters. A print filter can be used to customize QwtPlot::print(). \deprecated In Qwt 5.0 the design of QwtPlot allows/recommends writing individual QwtPlotItems, that are not known to QwtPlotPrintFilter. So this concept is outdated and QwtPlotPrintFilter will be removed/replaced in Qwt 6.x. */ class QWT_EXPORT QwtPlotPrintFilter { public: //! Print options enum Options { PrintMargin = 1, PrintTitle = 2, PrintLegend = 4, PrintGrid = 8, PrintBackground = 16, PrintFrameWithScales = 32, PrintAll = ~PrintFrameWithScales }; //! Print items enum Item { Title, Legend, Curve, CurveSymbol, Marker, MarkerSymbol, MajorGrid, MinorGrid, CanvasBackground, AxisScale, AxisTitle, WidgetBackground }; explicit QwtPlotPrintFilter(); virtual ~QwtPlotPrintFilter(); virtual QColor color(const QColor &, Item item) const; virtual QFont font(const QFont &, Item item) const; void setOptions(int options); int options() const; virtual void apply(QwtPlot *) const; virtual void reset(QwtPlot *) const; virtual void apply(QwtPlotItem *) const; virtual void reset(QwtPlotItem *) const; private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_scale_draw.cpp0000644000175000017500000005550212052741126016260 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_polygon.h" #include "qwt_scale_div.h" #include "qwt_scale_map.h" #include "qwt_scale_draw.h" #if QT_VERSION < 0x040000 #include #define QwtMatrix QWMatrix #else #include #define QwtMatrix QMatrix #endif class QwtScaleDraw::PrivateData { public: PrivateData(): len(0), alignment(QwtScaleDraw::BottomScale), labelAlignment(0), labelRotation(0.0) { } QPoint pos; int len; Alignment alignment; #if QT_VERSION < 0x040000 int labelAlignment; #else Qt::Alignment labelAlignment; #endif double labelRotation; }; /*! \brief Constructor The range of the scale is initialized to [0, 100], The position is at (0, 0) with a length of 100. The orientation is QwtAbstractScaleDraw::Bottom. */ QwtScaleDraw::QwtScaleDraw() { d_data = new QwtScaleDraw::PrivateData; setLength(100); } //! Copy constructor QwtScaleDraw::QwtScaleDraw(const QwtScaleDraw &other): QwtAbstractScaleDraw(other) { d_data = new QwtScaleDraw::PrivateData(*other.d_data); } //! Destructor QwtScaleDraw::~QwtScaleDraw() { delete d_data; } //! Assignment operator QwtScaleDraw &QwtScaleDraw::operator=(const QwtScaleDraw &other) { *(QwtAbstractScaleDraw*)this = (const QwtAbstractScaleDraw &)other; *d_data = *other.d_data; return *this; } /*! Return alignment of the scale \sa setAlignment() */ QwtScaleDraw::Alignment QwtScaleDraw::alignment() const { return d_data->alignment; } /*! Set the alignment of the scale The default alignment is QwtScaleDraw::BottomScale \sa alignment() */ void QwtScaleDraw::setAlignment(Alignment align) { d_data->alignment = align; } /*! Return the orientation TopScale, BottomScale are horizontal (Qt::Horizontal) scales, LeftScale, RightScale are vertical (Qt::Vertical) scales. \sa alignment() */ Qt::Orientation QwtScaleDraw::orientation() const { switch(d_data->alignment) { case TopScale: case BottomScale: return Qt::Horizontal; case LeftScale: case RightScale: default: return Qt::Vertical; } } /*! \brief Determine the minimum border distance This member function returns the minimum space needed to draw the mark labels at the scale's endpoints. \param font Font \param start Start border distance \param end End border distance */ void QwtScaleDraw::getBorderDistHint(const QFont &font, int &start, int &end ) const { start = 0; end = 0; if ( !hasComponent(QwtAbstractScaleDraw::Labels) ) return; const QwtValueList &ticks = scaleDiv().ticks(QwtScaleDiv::MajorTick); if ( ticks.count() == 0 ) return; // Find the ticks, that are mapped to the borders. // minTick is the tick, that is mapped to the top/left-most position // in widget coordinates. double minTick = ticks[0]; int minPos = map().transform(minTick); double maxTick = minTick; int maxPos = minPos; for (uint i = 1; i < (uint)ticks.count(); i++) { const int tickPos = map().transform(ticks[i]); if ( tickPos < minPos ) { minTick = ticks[i]; minPos = tickPos; } if ( tickPos > map().transform(maxTick) ) { maxTick = ticks[i]; maxPos = tickPos; } } if ( orientation() == Qt::Vertical ) { start = -labelRect(font, minTick).top(); start -= qwtAbs(minPos - qRound(map().p2())); end = labelRect(font, maxTick).bottom() + 1; end -= qwtAbs(maxPos - qRound(map().p1())); } else { start = -labelRect(font, minTick).left(); start -= qwtAbs(minPos - qRound(map().p1())); end = labelRect(font, maxTick).right() + 1; end -= qwtAbs(maxPos - qRound(map().p2())); } if ( start < 0 ) start = 0; if ( end < 0 ) end = 0; } /*! Determine the minimum distance between two labels, that is necessary that the texts don't overlap. \param font Font \return The maximum width of a label \sa getBorderDistHint() */ int QwtScaleDraw::minLabelDist(const QFont &font) const { if ( !hasComponent(QwtAbstractScaleDraw::Labels) ) return 0; const QwtValueList &ticks = scaleDiv().ticks(QwtScaleDiv::MajorTick); if (ticks.count() == 0) return 0; const QFontMetrics fm(font); const bool vertical = (orientation() == Qt::Vertical); QRect bRect1; QRect bRect2 = labelRect(font, ticks[0]); if ( vertical ) { bRect2.setRect(-bRect2.bottom(), 0, bRect2.height(), bRect2.width()); } int maxDist = 0; for (uint i = 1; i < (uint)ticks.count(); i++ ) { bRect1 = bRect2; bRect2 = labelRect(font, ticks[i]); if ( vertical ) { bRect2.setRect(-bRect2.bottom(), 0, bRect2.height(), bRect2.width()); } int dist = fm.leading(); // space between the labels if ( bRect1.right() > 0 ) dist += bRect1.right(); if ( bRect2.left() < 0 ) dist += -bRect2.left(); if ( dist > maxDist ) maxDist = dist; } double angle = labelRotation() / 180.0 * M_PI; if ( vertical ) angle += M_PI / 2; if ( sin(angle) == 0.0 ) return maxDist; const int fmHeight = fm.ascent() - 2; // The distance we need until there is // the height of the label font. This height is needed // for the neighbour labal. int labelDist = (int)(fmHeight / sin(angle) * cos(angle)); if ( labelDist < 0 ) labelDist = -labelDist; // The cast above floored labelDist. We want to ceil. labelDist++; // For text orientations close to the scale orientation if ( labelDist > maxDist ) labelDist = maxDist; // For text orientations close to the opposite of the // scale orientation if ( labelDist < fmHeight ) labelDist = fmHeight; return labelDist; } /*! Calculate the width/height that is needed for a vertical/horizontal scale. The extent is calculated from the pen width of the backbone, the major tick length, the spacing and the maximum width/height of the labels. \param pen Pen that is used for painting backbone and ticks \param font Font used for painting the labels \sa minLength() */ int QwtScaleDraw::extent(const QPen &pen, const QFont &font) const { int d = 0; if ( hasComponent(QwtAbstractScaleDraw::Labels) ) { if ( orientation() == Qt::Vertical ) d = maxLabelWidth(font); else d = maxLabelHeight(font); if ( d > 0 ) d += spacing(); } if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) { d += majTickLength(); } if ( hasComponent(QwtAbstractScaleDraw::Backbone) ) { const int pw = qwtMax( 1, pen.width() ); // penwidth can be zero d += pw; } d = qwtMax(d, minimumExtent()); return d; } /*! Calculate the minimum length that is needed to draw the scale \param pen Pen that is used for painting backbone and ticks \param font Font used for painting the labels \sa extent() */ int QwtScaleDraw::minLength(const QPen &pen, const QFont &font) const { int startDist, endDist; getBorderDistHint(font, startDist, endDist); const QwtScaleDiv &sd = scaleDiv(); const uint minorCount = sd.ticks(QwtScaleDiv::MinorTick).count() + sd.ticks(QwtScaleDiv::MediumTick).count(); const uint majorCount = sd.ticks(QwtScaleDiv::MajorTick).count(); int lengthForLabels = 0; if ( hasComponent(QwtAbstractScaleDraw::Labels) ) { if ( majorCount >= 2 ) lengthForLabels = minLabelDist(font) * (majorCount - 1); } int lengthForTicks = 0; if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) { const int pw = qwtMax( 1, pen.width() ); // penwidth can be zero lengthForTicks = 2 * (majorCount + minorCount) * pw; } return startDist + endDist + qwtMax(lengthForLabels, lengthForTicks); } /*! Find the position, where to paint a label The position has a distance of majTickLength() + spacing() + 1 from the backbone. The direction depends on the alignment() \param value Value */ QPoint QwtScaleDraw::labelPosition( double value) const { const int tval = map().transform(value); int dist = spacing() + 1; if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) dist += majTickLength(); int px = 0; int py = 0; switch(alignment()) { case RightScale: { px = d_data->pos.x() + dist; py = tval; break; } case LeftScale: { px = d_data->pos.x() - dist; py = tval; break; } case BottomScale: { px = tval; py = d_data->pos.y() + dist; break; } case TopScale: { px = tval; py = d_data->pos.y() - dist; break; } } return QPoint(px, py); } /*! Draw a tick \param painter Painter \param value Value of the tick \param len Lenght of the tick \sa drawBackbone(), drawLabel() */ void QwtScaleDraw::drawTick(QPainter *painter, double value, int len) const { if ( len <= 0 ) return; int pw2 = qwtMin((int)painter->pen().width(), len) / 2; QwtScaleMap scaleMap = map(); const QwtMetricsMap metricsMap = QwtPainter::metricsMap(); QPoint pos = d_data->pos; if ( !metricsMap.isIdentity() ) { /* The perfect position of the ticks is important. To avoid rounding errors we have to use device coordinates. */ QwtPainter::resetMetricsMap(); pos = metricsMap.layoutToDevice(pos); if ( orientation() == Qt::Vertical ) { scaleMap.setPaintInterval( metricsMap.layoutToDeviceY((int)scaleMap.p1()), metricsMap.layoutToDeviceY((int)scaleMap.p2()) ); len = metricsMap.layoutToDeviceX(len); } else { scaleMap.setPaintInterval( metricsMap.layoutToDeviceX((int)scaleMap.p1()), metricsMap.layoutToDeviceX((int)scaleMap.p2()) ); len = metricsMap.layoutToDeviceY(len); } } const int tval = scaleMap.transform(value); switch(alignment()) { case LeftScale: { #if QT_VERSION < 0x040000 QwtPainter::drawLine(painter, pos.x() + pw2, tval, pos.x() - len - 2 * pw2, tval); #else QwtPainter::drawLine(painter, pos.x() - pw2, tval, pos.x() - len, tval); #endif break; } case RightScale: { #if QT_VERSION < 0x040000 QwtPainter::drawLine(painter, pos.x(), tval, pos.x() + len + pw2, tval); #else QwtPainter::drawLine(painter, pos.x() + pw2, tval, pos.x() + len, tval); #endif break; } case BottomScale: { #if QT_VERSION < 0x040000 QwtPainter::drawLine(painter, tval, pos.y(), tval, pos.y() + len + 2 * pw2); #else QwtPainter::drawLine(painter, tval, pos.y() + pw2, tval, pos.y() + len); #endif break; } case TopScale: { #if QT_VERSION < 0x040000 QwtPainter::drawLine(painter, tval, pos.y() + pw2, tval, pos.y() - len - 2 * pw2); #else QwtPainter::drawLine(painter, tval, pos.y() - pw2, tval, pos.y() - len); #endif break; } } QwtPainter::setMetricsMap(metricsMap); // restore metrics map } /*! Draws the baseline of the scale \param painter Painter \sa drawTick(), drawLabel() */ void QwtScaleDraw::drawBackbone(QPainter *painter) const { const int bw2 = painter->pen().width() / 2; const QPoint &pos = d_data->pos; const int len = d_data->len - 1; switch(alignment()) { case LeftScale: QwtPainter::drawLine(painter, pos.x() - bw2, pos.y(), pos.x() - bw2, pos.y() + len ); break; case RightScale: QwtPainter::drawLine(painter, pos.x() + bw2, pos.y(), pos.x() + bw2, pos.y() + len); break; case TopScale: QwtPainter::drawLine(painter, pos.x(), pos.y() - bw2, pos.x() + len, pos.y() - bw2); break; case BottomScale: QwtPainter::drawLine(painter, pos.x(), pos.y() + bw2, pos.x() + len, pos.y() + bw2); break; } } /*! \brief Move the position of the scale The meaning of the parameter pos depends on the alignment:
QwtScaleDraw::LeftScale
The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the left of the backbone.
QwtScaleDraw::RightScale
The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the right of the backbone.
QwtScaleDraw::TopScale
The origin is the leftmost point of the backbone. The backbone is a horizontal line. Scale marks and labels are drawn above the backbone.
QwtScaleDraw::BottomScale
The origin is the leftmost point of the backbone. The backbone is a horizontal line Scale marks and labels are drawn below the backbone.
\param pos Origin of the scale \sa pos(), setLength() */ void QwtScaleDraw::move(const QPoint &pos) { d_data->pos = pos; updateMap(); } /*! \return Origin of the scale \sa move(), length() */ QPoint QwtScaleDraw::pos() const { return d_data->pos; } /*! Set the length of the backbone. The length doesn't include the space needed for overlapping labels. \sa move(), minLabelDist() */ void QwtScaleDraw::setLength(int length) { if ( length >= 0 && length < 10 ) length = 10; if ( length < 0 && length > -10 ) length = -10; d_data->len = length; updateMap(); } /*! \return the length of the backbone \sa setLength(), pos() */ int QwtScaleDraw::length() const { return d_data->len; } /*! Draws the label for a major scale tick \param painter Painter \param value Value \sa drawTick(), drawBackbone(), boundingLabelRect() */ void QwtScaleDraw::drawLabel(QPainter *painter, double value) const { QwtText lbl = tickLabel(painter->font(), value); if ( lbl.isEmpty() ) return; QPoint pos = labelPosition(value); QSize labelSize = lbl.textSize(painter->font()); if ( labelSize.height() % 2 ) labelSize.setHeight(labelSize.height() + 1); const QwtMetricsMap metricsMap = QwtPainter::metricsMap(); QwtPainter::resetMetricsMap(); labelSize = metricsMap.layoutToDevice(labelSize); pos = metricsMap.layoutToDevice(pos); const QwtMatrix m = labelMatrix( pos, labelSize); painter->save(); #if QT_VERSION < 0x040000 painter->setWorldMatrix(m, true); #else painter->setMatrix(m, true); #endif lbl.draw (painter, QRect(QPoint(0, 0), labelSize) ); QwtPainter::setMetricsMap(metricsMap); // restore metrics map painter->restore(); } /*! Find the bounding rect for the label. The coordinates of the rect are absolute coordinates ( calculated from pos() ). in direction of the tick. \param font Font used for painting \param value Value \sa labelRect() */ QRect QwtScaleDraw::boundingLabelRect(const QFont &font, double value) const { QwtText lbl = tickLabel(font, value); if ( lbl.isEmpty() ) return QRect(); const QPoint pos = labelPosition(value); QSize labelSize = lbl.textSize(font); if ( labelSize.height() % 2 ) labelSize.setHeight(labelSize.height() + 1); const QwtMatrix m = labelMatrix( pos, labelSize); return m.mapRect(QRect(QPoint(0, 0), labelSize)); } /*! Calculate the matrix that is needed to paint a label depending on its alignment and rotation. \param pos Position where to paint the label \param size Size of the label \sa setLabelAlignment(), setLabelRotation() */ QwtMatrix QwtScaleDraw::labelMatrix( const QPoint &pos, const QSize &size) const { QwtMatrix m; m.translate(pos.x(), pos.y()); m.rotate(labelRotation()); int flags = labelAlignment(); if ( flags == 0 ) { switch(alignment()) { case RightScale: { if ( flags == 0 ) flags = Qt::AlignRight | Qt::AlignVCenter; break; } case LeftScale: { if ( flags == 0 ) flags = Qt::AlignLeft | Qt::AlignVCenter; break; } case BottomScale: { if ( flags == 0 ) flags = Qt::AlignHCenter | Qt::AlignBottom; break; } case TopScale: { if ( flags == 0 ) flags = Qt::AlignHCenter | Qt::AlignTop; break; } } } const int w = size.width(); const int h = size.height(); int x, y; if ( flags & Qt::AlignLeft ) x = -w + 1; else if ( flags & Qt::AlignRight ) x = -(w % 2) + 1; else // Qt::AlignHCenter x = -(w / 2); if ( flags & Qt::AlignTop ) y = -h + 1; else if ( flags & Qt::AlignBottom ) y = -(h % 2); else // Qt::AlignVCenter y = -(h/2); m.translate(x, y); return m; } /*! Find the bounding rect for the label. The coordinates of the rect are relative to spacing + ticklength from the backbone in direction of the tick. \param font Font used for painting \param value Value */ QRect QwtScaleDraw::labelRect(const QFont &font, double value) const { QwtText lbl = tickLabel(font, value); if ( lbl.isEmpty() ) return QRect(0, 0, 0, 0); const QPoint pos = labelPosition(value); QSize labelSize = lbl.textSize(font); if ( labelSize.height() % 2 ) { labelSize.setHeight(labelSize.height() + 1); } const QwtMatrix m = labelMatrix(pos, labelSize); #if 0 QRect br = QwtMetricsMap::translate(m, QRect(QPoint(0, 0), labelSize)); #else QwtPolygon pol(4); pol.setPoint(0, 0, 0); pol.setPoint(1, 0, labelSize.height() - 1 ); pol.setPoint(2, labelSize.width() - 1, 0); pol.setPoint(3, labelSize.width() - 1, labelSize.height() - 1 ); pol = QwtMetricsMap::translate(m, pol); QRect br = pol.boundingRect(); #endif #if QT_VERSION < 0x040000 br.moveBy(-pos.x(), -pos.y()); #else br.translate(-pos.x(), -pos.y()); #endif return br; } /*! Calculate the size that is needed to draw a label \param font Label font \param value Value */ QSize QwtScaleDraw::labelSize(const QFont &font, double value) const { return labelRect(font, value).size(); } /*! Rotate all labels. When changing the rotation, it might be necessary to adjust the label flags too. Finding a useful combination is often the result of try and error. \param rotation Angle in degrees. When changing the label rotation, the label flags often needs to be adjusted too. \sa setLabelAlignment(), labelRotation(), labelAlignment(). */ void QwtScaleDraw::setLabelRotation(double rotation) { d_data->labelRotation = rotation; } /*! \return the label rotation \sa setLabelRotation(), labelAlignment() */ double QwtScaleDraw::labelRotation() const { return d_data->labelRotation; } /*! \brief Change the label flags Labels are aligned to the point ticklength + spacing away from the backbone. The alignment is relative to the orientation of the label text. In case of an flags of 0 the label will be aligned depending on the orientation of the scale: QwtScaleDraw::TopScale: Qt::AlignHCenter | Qt::AlignTop\n QwtScaleDraw::BottomScale: Qt::AlignHCenter | Qt::AlignBottom\n QwtScaleDraw::LeftScale: Qt::AlignLeft | Qt::AlignVCenter\n QwtScaleDraw::RightScale: Qt::AlignRight | Qt::AlignVCenter\n Changing the alignment is often necessary for rotated labels. \param alignment Or'd Qt::AlignmentFlags \sa setLabelRotation(), labelRotation(), labelAlignment() \warning The various alignments might be confusing. The alignment of the label is not the alignment of the scale and is not the alignment of the flags (QwtText::flags()) returned from QwtAbstractScaleDraw::label(). */ #if QT_VERSION < 0x040000 void QwtScaleDraw::setLabelAlignment(int alignment) #else void QwtScaleDraw::setLabelAlignment(Qt::Alignment alignment) #endif { d_data->labelAlignment = alignment; } /*! \return the label flags \sa setLabelAlignment(), labelRotation() */ #if QT_VERSION < 0x040000 int QwtScaleDraw::labelAlignment() const #else Qt::Alignment QwtScaleDraw::labelAlignment() const #endif { return d_data->labelAlignment; } /*! \param font Font \return the maximum width of a label */ int QwtScaleDraw::maxLabelWidth(const QFont &font) const { int maxWidth = 0; const QwtValueList &ticks = scaleDiv().ticks(QwtScaleDiv::MajorTick); for (uint i = 0; i < (uint)ticks.count(); i++) { const double v = ticks[i]; if ( scaleDiv().contains(v) ) { const int w = labelSize(font, ticks[i]).width(); if ( w > maxWidth ) maxWidth = w; } } return maxWidth; } /*! \param font Font \return the maximum height of a label */ int QwtScaleDraw::maxLabelHeight(const QFont &font) const { int maxHeight = 0; const QwtValueList &ticks = scaleDiv().ticks(QwtScaleDiv::MajorTick); for (uint i = 0; i < (uint)ticks.count(); i++) { const double v = ticks[i]; if ( scaleDiv().contains(v) ) { const int h = labelSize(font, ticks[i]).height(); if ( h > maxHeight ) maxHeight = h; } } return maxHeight; } void QwtScaleDraw::updateMap() { QwtScaleMap &sm = scaleMap(); if ( orientation() == Qt::Vertical ) sm.setPaintInterval(d_data->pos.y() + d_data->len, d_data->pos.y()); else sm.setPaintInterval(d_data->pos.x(), d_data->pos.x() + d_data->len); } qwt5-5.2.3/src/qwt_scale_engine.cpp0000644000175000017500000005770612052741126016600 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_math.h" #include "qwt_scale_map.h" #include "qwt_scale_engine.h" static const double _eps = 1.0e-6; /*! \brief Compare 2 values, relative to an interval Values are "equal", when : \f$\cdot value2 - value1 <= abs(intervalSize * 10e^{-6})\f$ \param value1 First value to compare \param value2 Second value to compare \param intervalSize interval size \return 0: if equal, -1: if value2 > value1, 1: if value1 > value2 */ int QwtScaleArithmetic::compareEps(double value1, double value2, double intervalSize) { const double eps = qwtAbs(_eps * intervalSize); if ( value2 - value1 > eps ) return -1; if ( value1 - value2 > eps ) return 1; return 0; } /*! Ceil a value, relative to an interval \param value Value to ceil \param intervalSize Interval size \sa floorEps() */ double QwtScaleArithmetic::ceilEps(double value, double intervalSize) { const double eps = _eps * intervalSize; value = (value - eps) / intervalSize; return ceil(value) * intervalSize; } /*! Floor a value, relative to an interval \param value Value to floor \param intervalSize Interval size \sa floorEps() */ double QwtScaleArithmetic::floorEps(double value, double intervalSize) { const double eps = _eps * intervalSize; value = (value + eps) / intervalSize; return floor(value) * intervalSize; } /*! \brief Divide an interval into steps \f$stepSize = (intervalSize - intervalSize * 10e^{-6}) / numSteps\f$ \param intervalSize Interval size \param numSteps Number of steps \return Step size */ double QwtScaleArithmetic::divideEps(double intervalSize, double numSteps) { if ( numSteps == 0.0 || intervalSize == 0.0 ) return 0.0; return (intervalSize - (_eps * intervalSize)) / numSteps; } /*! Find the smallest value out of {1,2,5}*10^n with an integer number n which is greater than or equal to x \param x Input value */ double QwtScaleArithmetic::ceil125(double x) { if (x == 0.0) return 0.0; const double sign = (x > 0) ? 1.0 : -1.0; const double lx = log10(fabs(x)); const double p10 = floor(lx); double fr = pow(10.0, lx - p10); if (fr <=1.0) fr = 1.0; else if (fr <= 2.0) fr = 2.0; else if (fr <= 5.0) fr = 5.0; else fr = 10.0; return sign * fr * pow(10.0, p10); } /*! \brief Find the largest value out of {1,2,5}*10^n with an integer number n which is smaller than or equal to x \param x Input value */ double QwtScaleArithmetic::floor125(double x) { if (x == 0.0) return 0.0; double sign = (x > 0) ? 1.0 : -1.0; const double lx = log10(fabs(x)); const double p10 = floor(lx); double fr = pow(10.0, lx - p10); if (fr >= 10.0) fr = 10.0; else if (fr >= 5.0) fr = 5.0; else if (fr >= 2.0) fr = 2.0; else fr = 1.0; return sign * fr * pow(10.0, p10); } class QwtScaleEngine::PrivateData { public: PrivateData(): attributes(QwtScaleEngine::NoAttribute), lowerMargin(0.0), upperMargin(0.0), referenceValue(0.0) { } int attributes; // scale attributes double lowerMargin; // margins double upperMargin; double referenceValue; // reference value }; //! Constructor QwtScaleEngine::QwtScaleEngine() { d_data = new PrivateData; } //! Destructor QwtScaleEngine::~QwtScaleEngine () { delete d_data; } /*! \return the margin at the lower end of the scale The default margin is 0. \sa setMargins() */ double QwtScaleEngine::lowerMargin() const { return d_data->lowerMargin; } /*! \return the margin at the upper end of the scale The default margin is 0. \sa setMargins() */ double QwtScaleEngine::upperMargin() const { return d_data->upperMargin; } /*! \brief Specify margins at the scale's endpoints \param lower minimum distance between the scale's lower boundary and the smallest enclosed value \param upper minimum distance between the scale's upper boundary and the greatest enclosed value Margins can be used to leave a minimum amount of space between the enclosed intervals and the boundaries of the scale. \warning \li QwtLog10ScaleEngine measures the margins in decades. \sa upperMargin(), lowerMargin() */ void QwtScaleEngine::setMargins(double lower, double upper) { d_data->lowerMargin = qwtMax(lower, 0.0); d_data->upperMargin = qwtMax(upper, 0.0); } /*! Calculate a step size for an interval size \param intervalSize Interval size \param numSteps Number of steps \return Step size */ double QwtScaleEngine::divideInterval( double intervalSize, int numSteps) const { if ( numSteps <= 0 ) return 0.0; double v = QwtScaleArithmetic::divideEps(intervalSize, numSteps); return QwtScaleArithmetic::ceil125(v); } /*! Check if an interval "contains" a value \param interval Interval \param value Value \sa QwtScaleArithmetic::compareEps() */ bool QwtScaleEngine::contains( const QwtDoubleInterval &interval, double value) const { if (!interval.isValid() ) return false; if ( QwtScaleArithmetic::compareEps(value, interval.minValue(), interval.width()) < 0 ) { return false; } if ( QwtScaleArithmetic::compareEps(value, interval.maxValue(), interval.width()) > 0 ) { return false; } return true; } /*! Remove ticks from a list, that are not inside an interval \param ticks Tick list \param interval Interval \return Stripped tick list */ QwtValueList QwtScaleEngine::strip( const QwtValueList& ticks, const QwtDoubleInterval &interval) const { if ( !interval.isValid() || ticks.count() == 0 ) return QwtValueList(); if ( contains(interval, ticks.first()) && contains(interval, ticks.last()) ) { return ticks; } QwtValueList strippedTicks; for ( int i = 0; i < (int)ticks.count(); i++ ) { if ( contains(interval, ticks[i]) ) strippedTicks += ticks[i]; } return strippedTicks; } /*! \brief Build an interval for a value In case of v == 0.0 the interval is [-0.5, 0.5], otherwide it is [0.5 * v, 1.5 * v] */ QwtDoubleInterval QwtScaleEngine::buildInterval(double v) const { const double delta = (v == 0.0) ? 0.5 : qwtAbs(0.5 * v); return QwtDoubleInterval(v - delta, v + delta); } /*! Change a scale attribute \param attribute Attribute to change \param on On/Off \sa Attribute, testAttribute() */ void QwtScaleEngine::setAttribute(Attribute attribute, bool on) { if (on) d_data->attributes |= attribute; else d_data->attributes &= (~attribute); } /*! Check if a attribute is set. \param attribute Attribute to be tested \sa Attribute, setAttribute() */ bool QwtScaleEngine::testAttribute(Attribute attribute) const { return bool(d_data->attributes & attribute); } /*! Change the scale attribute \param attributes Set scale attributes \sa Attribute, attributes() */ void QwtScaleEngine::setAttributes(int attributes) { d_data->attributes = attributes; } /*! Return the scale attributes \sa Attribute, setAttributes(), testAttribute() */ int QwtScaleEngine::attributes() const { return d_data->attributes; } /*! \brief Specify a reference point \param r new reference value The reference point is needed if options IncludeReference or Symmetric are active. Its default value is 0.0. \sa Attribute */ void QwtScaleEngine::setReference(double r) { d_data->referenceValue = r; } /*! \return the reference value \sa setReference(), setAttribute() */ double QwtScaleEngine::reference() const { return d_data->referenceValue; } /*! Return a transformation, for linear scales */ QwtScaleTransformation *QwtLinearScaleEngine::transformation() const { return new QwtScaleTransformation(QwtScaleTransformation::Linear); } /*! Align and divide an interval \param maxNumSteps Max. number of steps \param x1 First limit of the interval (In/Out) \param x2 Second limit of the interval (In/Out) \param stepSize Step size (Out) \sa setAttribute() */ void QwtLinearScaleEngine::autoScale(int maxNumSteps, double &x1, double &x2, double &stepSize) const { QwtDoubleInterval interval(x1, x2); interval = interval.normalized(); interval.setMinValue(interval.minValue() - lowerMargin()); interval.setMaxValue(interval.maxValue() + upperMargin()); if (testAttribute(QwtScaleEngine::Symmetric)) interval = interval.symmetrize(reference()); if (testAttribute(QwtScaleEngine::IncludeReference)) interval = interval.extend(reference()); if (interval.width() == 0.0) interval = buildInterval(interval.minValue()); stepSize = divideInterval(interval.width(), qwtMax(maxNumSteps, 1)); if ( !testAttribute(QwtScaleEngine::Floating) ) interval = align(interval, stepSize); x1 = interval.minValue(); x2 = interval.maxValue(); if (testAttribute(QwtScaleEngine::Inverted)) { qSwap(x1, x2); stepSize = -stepSize; } } /*! \brief Calculate a scale division \param x1 First interval limit \param x2 Second interval limit \param maxMajSteps Maximum for the number of major steps \param maxMinSteps Maximum number of minor steps \param stepSize Step size. If stepSize == 0, the scaleEngine calculates one. \sa QwtScaleEngine::stepSize(), QwtScaleEngine::subDivide() */ QwtScaleDiv QwtLinearScaleEngine::divideScale(double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize) const { QwtDoubleInterval interval = QwtDoubleInterval(x1, x2).normalized(); if (interval.width() <= 0 ) return QwtScaleDiv(); stepSize = qwtAbs(stepSize); if ( stepSize == 0.0 ) { if ( maxMajSteps < 1 ) maxMajSteps = 1; stepSize = divideInterval(interval.width(), maxMajSteps); } QwtScaleDiv scaleDiv; if ( stepSize != 0.0 ) { QwtValueList ticks[QwtScaleDiv::NTickTypes]; buildTicks(interval, stepSize, maxMinSteps, ticks); scaleDiv = QwtScaleDiv(interval, ticks); } if ( x1 > x2 ) scaleDiv.invert(); return scaleDiv; } /*! \brief Calculate ticks for an interval \param interval Interval \param stepSize Step size \param maxMinSteps Maximum number of minor steps \param ticks Arrays to be filled with the calculated ticks \sa buildMajorTicks(), buildMinorTicks */ void QwtLinearScaleEngine::buildTicks( const QwtDoubleInterval& interval, double stepSize, int maxMinSteps, QwtValueList ticks[QwtScaleDiv::NTickTypes]) const { const QwtDoubleInterval boundingInterval = align(interval, stepSize); ticks[QwtScaleDiv::MajorTick] = buildMajorTicks(boundingInterval, stepSize); if ( maxMinSteps > 0 ) { buildMinorTicks(ticks[QwtScaleDiv::MajorTick], maxMinSteps, stepSize, ticks[QwtScaleDiv::MinorTick], ticks[QwtScaleDiv::MediumTick]); } for ( int i = 0; i < QwtScaleDiv::NTickTypes; i++ ) { ticks[i] = strip(ticks[i], interval); // ticks very close to 0.0 are // explicitely set to 0.0 for ( int j = 0; j < (int)ticks[i].count(); j++ ) { if ( QwtScaleArithmetic::compareEps(ticks[i][j], 0.0, stepSize) == 0 ) ticks[i][j] = 0.0; } } } /*! \brief Calculate major ticks for an interval \param interval Interval \param stepSize Step size \return Calculated ticks */ QwtValueList QwtLinearScaleEngine::buildMajorTicks( const QwtDoubleInterval &interval, double stepSize) const { int numTicks = qRound(interval.width() / stepSize) + 1; if ( numTicks > 10000 ) numTicks = 10000; QwtValueList ticks; ticks += interval.minValue(); for (int i = 1; i < numTicks - 1; i++) ticks += interval.minValue() + i * stepSize; ticks += interval.maxValue(); return ticks; } /*! \brief Calculate minor/medium ticks for major ticks \param majorTicks Major ticks \param maxMinSteps Maximum number of minor steps \param stepSize Step size \param minorTicks Array to be filled with the calculated minor ticks \param mediumTicks Array to be filled with the calculated medium ticks */ void QwtLinearScaleEngine::buildMinorTicks( const QwtValueList& majorTicks, int maxMinSteps, double stepSize, QwtValueList &minorTicks, QwtValueList &mediumTicks) const { double minStep = divideInterval(stepSize, maxMinSteps); if (minStep == 0.0) return; // # ticks per interval int numTicks = (int)::ceil(qwtAbs(stepSize / minStep)) - 1; // Do the minor steps fit into the interval? if ( QwtScaleArithmetic::compareEps((numTicks + 1) * qwtAbs(minStep), qwtAbs(stepSize), stepSize) > 0) { numTicks = 1; minStep = stepSize * 0.5; } int medIndex = -1; if ( numTicks % 2 ) medIndex = numTicks / 2; // calculate minor ticks for (int i = 0; i < (int)majorTicks.count(); i++) { double val = majorTicks[i]; for (int k = 0; k < numTicks; k++) { val += minStep; double alignedValue = val; if (QwtScaleArithmetic::compareEps(val, 0.0, stepSize) == 0) alignedValue = 0.0; if ( k == medIndex ) mediumTicks += alignedValue; else minorTicks += alignedValue; } } } /*! \brief Align an interval to a step size The limits of an interval are aligned that both are integer multiples of the step size. \param interval Interval \param stepSize Step size \return Aligned interval */ QwtDoubleInterval QwtLinearScaleEngine::align( const QwtDoubleInterval &interval, double stepSize) const { double x1 = QwtScaleArithmetic::floorEps(interval.minValue(), stepSize); if ( QwtScaleArithmetic::compareEps(interval.minValue(), x1, stepSize) == 0 ) x1 = interval.minValue(); double x2 = QwtScaleArithmetic::ceilEps(interval.maxValue(), stepSize); if ( QwtScaleArithmetic::compareEps(interval.maxValue(), x2, stepSize) == 0 ) x2 = interval.maxValue(); return QwtDoubleInterval(x1, x2); } /*! Return a transformation, for logarithmic (base 10) scales */ QwtScaleTransformation *QwtLog10ScaleEngine::transformation() const { return new QwtScaleTransformation(QwtScaleTransformation::Log10); } /*! Align and divide an interval \param maxNumSteps Max. number of steps \param x1 First limit of the interval (In/Out) \param x2 Second limit of the interval (In/Out) \param stepSize Step size (Out) \sa QwtScaleEngine::setAttribute() */ void QwtLog10ScaleEngine::autoScale(int maxNumSteps, double &x1, double &x2, double &stepSize) const { if ( x1 > x2 ) qSwap(x1, x2); QwtDoubleInterval interval(x1 / pow(10.0, lowerMargin()), x2 * pow(10.0, upperMargin()) ); if (interval.maxValue() / interval.minValue() < 10.0) { // scale width is less than one decade -> build linear scale QwtLinearScaleEngine linearScaler; linearScaler.setAttributes(attributes()); linearScaler.setReference(reference()); linearScaler.setMargins(lowerMargin(), upperMargin()); linearScaler.autoScale(maxNumSteps, x1, x2, stepSize); QwtDoubleInterval linearInterval = QwtDoubleInterval( x1, x2 ).normalized(); linearInterval = linearInterval.limited( LOG_MIN, LOG_MAX ); if ( linearInterval.maxValue() / linearInterval.minValue() < 10.0 ) { // the aligned scale is still less than a decade if ( stepSize < 0.0 ) stepSize = -::log10( qAbs( stepSize ) ); else stepSize = ::log10( stepSize ); return; } } double logRef = 1.0; if (reference() > LOG_MIN / 2) logRef = qwtMin(reference(), LOG_MAX / 2); if (testAttribute(QwtScaleEngine::Symmetric)) { const double delta = qwtMax(interval.maxValue() / logRef, logRef / interval.minValue()); interval.setInterval(logRef / delta, logRef * delta); } if (testAttribute(QwtScaleEngine::IncludeReference)) interval = interval.extend(logRef); interval = interval.limited(LOG_MIN, LOG_MAX); if (interval.width() == 0.0) interval = buildInterval(interval.minValue()); stepSize = divideInterval(log10(interval).width(), qwtMax(maxNumSteps, 1)); if ( stepSize < 1.0 ) stepSize = 1.0; if (!testAttribute(QwtScaleEngine::Floating)) interval = align(interval, stepSize); x1 = interval.minValue(); x2 = interval.maxValue(); if (testAttribute(QwtScaleEngine::Inverted)) { qSwap(x1, x2); stepSize = -stepSize; } } /*! \brief Calculate a scale division \param x1 First interval limit \param x2 Second interval limit \param maxMajSteps Maximum for the number of major steps \param maxMinSteps Maximum number of minor steps \param stepSize Step size. If stepSize == 0, the scaleEngine calculates one. \sa QwtScaleEngine::stepSize(), QwtLog10ScaleEngine::subDivide() */ QwtScaleDiv QwtLog10ScaleEngine::divideScale(double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize) const { QwtDoubleInterval interval = QwtDoubleInterval(x1, x2).normalized(); interval = interval.limited(LOG_MIN, LOG_MAX); if (interval.width() <= 0 ) return QwtScaleDiv(); if (interval.maxValue() / interval.minValue() < 10.0) { // scale width is less than one decade -> build linear scale QwtLinearScaleEngine linearScaler; linearScaler.setAttributes(attributes()); linearScaler.setReference(reference()); linearScaler.setMargins(lowerMargin(), upperMargin()); if ( stepSize != 0.0 ) { if ( stepSize < 0.0 ) stepSize = -::pow( 10.0, -stepSize ); else stepSize = ::pow( 10.0, stepSize ); } return linearScaler.divideScale(x1, x2, maxMajSteps, maxMinSteps, stepSize); } stepSize = qwtAbs(stepSize); if ( stepSize == 0.0 ) { if ( maxMajSteps < 1 ) maxMajSteps = 1; stepSize = divideInterval(log10(interval).width(), maxMajSteps); if ( stepSize < 1.0 ) stepSize = 1.0; // major step must be >= 1 decade } QwtScaleDiv scaleDiv; if ( stepSize != 0.0 ) { QwtValueList ticks[QwtScaleDiv::NTickTypes]; buildTicks(interval, stepSize, maxMinSteps, ticks); scaleDiv = QwtScaleDiv(interval, ticks); } if ( x1 > x2 ) scaleDiv.invert(); return scaleDiv; } /*! \brief Calculate ticks for an interval \param interval Interval \param maxMinSteps Maximum number of minor steps \param stepSize Step size \param ticks Arrays to be filled with the calculated ticks \sa buildMajorTicks(), buildMinorTicks */ void QwtLog10ScaleEngine::buildTicks( const QwtDoubleInterval& interval, double stepSize, int maxMinSteps, QwtValueList ticks[QwtScaleDiv::NTickTypes]) const { const QwtDoubleInterval boundingInterval = align(interval, stepSize); ticks[QwtScaleDiv::MajorTick] = buildMajorTicks(boundingInterval, stepSize); if ( maxMinSteps > 0 ) { ticks[QwtScaleDiv::MinorTick] = buildMinorTicks( ticks[QwtScaleDiv::MajorTick], maxMinSteps, stepSize); } for ( int i = 0; i < QwtScaleDiv::NTickTypes; i++ ) ticks[i] = strip(ticks[i], interval); } QwtValueList QwtLog10ScaleEngine::buildMajorTicks( const QwtDoubleInterval &interval, double stepSize) const { double width = log10(interval).width(); int numTicks = qRound(width / stepSize) + 1; if ( numTicks > 10000 ) numTicks = 10000; const double lxmin = log(interval.minValue()); const double lxmax = log(interval.maxValue()); const double lstep = (lxmax - lxmin) / double(numTicks - 1); QwtValueList ticks; ticks += interval.minValue(); for (int i = 1; i < numTicks - 1; i++) ticks += exp(lxmin + double(i) * lstep); ticks += interval.maxValue(); return ticks; } QwtValueList QwtLog10ScaleEngine::buildMinorTicks( const QwtValueList &majorTicks, int maxMinSteps, double stepSize) const { if (stepSize < 1.1) // major step width is one decade { if ( maxMinSteps < 1 ) return QwtValueList(); int k0, kstep, kmax; if (maxMinSteps >= 8) { k0 = 2; kmax = 9; kstep = 1; } else if (maxMinSteps >= 4) { k0 = 2; kmax = 8; kstep = 2; } else if (maxMinSteps >= 2) { k0 = 2; kmax = 5; kstep = 3; } else { k0 = 5; kmax = 5; kstep = 1; } QwtValueList minorTicks; for (int i = 0; i < (int)majorTicks.count(); i++) { const double v = majorTicks[i]; for (int k = k0; k<= kmax; k+=kstep) minorTicks += v * double(k); } return minorTicks; } else // major step > one decade { double minStep = divideInterval(stepSize, maxMinSteps); if ( minStep == 0.0 ) return QwtValueList(); if ( minStep < 1.0 ) minStep = 1.0; // # subticks per interval int nMin = qRound(stepSize / minStep) - 1; // Do the minor steps fit into the interval? if ( QwtScaleArithmetic::compareEps((nMin + 1) * minStep, qwtAbs(stepSize), stepSize) > 0) { nMin = 0; } if (nMin < 1) return QwtValueList(); // no subticks // substep factor = 10^substeps const double minFactor = qwtMax(pow(10.0, minStep), 10.0); QwtValueList minorTicks; for (int i = 0; i < (int)majorTicks.count(); i++) { double val = majorTicks[i]; for (int k=0; k< nMin; k++) { val *= minFactor; minorTicks += val; } } return minorTicks; } } /*! \brief Align an interval to a step size The limits of an interval are aligned that both are integer multiples of the step size. \param interval Interval \param stepSize Step size \return Aligned interval */ QwtDoubleInterval QwtLog10ScaleEngine::align( const QwtDoubleInterval &interval, double stepSize) const { const QwtDoubleInterval intv = log10(interval); double x1 = QwtScaleArithmetic::floorEps(intv.minValue(), stepSize); if ( QwtScaleArithmetic::compareEps(interval.minValue(), x1, stepSize) == 0 ) x1 = interval.minValue(); double x2 = QwtScaleArithmetic::ceilEps(intv.maxValue(), stepSize); if ( QwtScaleArithmetic::compareEps(interval.maxValue(), x2, stepSize) == 0 ) x2 = interval.maxValue(); return pow10(QwtDoubleInterval(x1, x2)); } /*! Return the interval [log10(interval.minValue(), log10(interval.maxValue] */ QwtDoubleInterval QwtLog10ScaleEngine::log10( const QwtDoubleInterval &interval) const { return QwtDoubleInterval(::log10(interval.minValue()), ::log10(interval.maxValue())); } /*! Return the interval [pow10(interval.minValue(), pow10(interval.maxValue] */ QwtDoubleInterval QwtLog10ScaleEngine::pow10( const QwtDoubleInterval &interval) const { return QwtDoubleInterval(pow(10.0, interval.minValue()), pow(10.0, interval.maxValue())); } qwt5-5.2.3/src/qwt_analog_clock.cpp0000644000175000017500000001241212052741126016561 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_analog_clock.h" /*! Constructor \param parent Parent widget */ QwtAnalogClock::QwtAnalogClock(QWidget *parent): QwtDial(parent) { initClock(); } #if QT_VERSION < 0x040000 /*! Constructor \param parent Parent widget \param name Object name */ QwtAnalogClock::QwtAnalogClock(QWidget* parent, const char *name): QwtDial(parent, name) { initClock(); } #endif void QwtAnalogClock::initClock() { setWrapping(true); setReadOnly(true); setOrigin(270.0); setRange(0.0, 60.0 * 60.0 * 12.0); // seconds setScale(-1, 5, 60.0 * 60.0); setScaleOptions(ScaleTicks | ScaleLabel); setScaleTicks(1, 0, 8); scaleDraw()->setSpacing(8); QColor knobColor = #if QT_VERSION < 0x040000 palette().color(QPalette::Active, QColorGroup::Text); #else palette().color(QPalette::Active, QPalette::Text); #endif knobColor = knobColor.dark(120); QColor handColor; int width; for ( int i = 0; i < NHands; i++ ) { if ( i == SecondHand ) { width = 2; handColor = knobColor.dark(120); } else { width = 8; handColor = knobColor; } QwtDialSimpleNeedle *hand = new QwtDialSimpleNeedle( QwtDialSimpleNeedle::Arrow, true, handColor, knobColor); hand->setWidth(width); d_hand[i] = NULL; setHand((Hand)i, hand); } } //! Destructor QwtAnalogClock::~QwtAnalogClock() { for ( int i = 0; i < NHands; i++ ) delete d_hand[i]; } /*! Nop method, use setHand instead \sa setHand() */ void QwtAnalogClock::setNeedle(QwtDialNeedle *) { // no op return; } /*! Set a clockhand \param hand Specifies the type of hand \param needle Hand \sa hand() */ void QwtAnalogClock::setHand(Hand hand, QwtDialNeedle *needle) { if ( hand >= 0 && hand < NHands ) { delete d_hand[hand]; d_hand[hand] = needle; } } /*! \return Clock hand \param hd Specifies the type of hand \sa setHand() */ QwtDialNeedle *QwtAnalogClock::hand(Hand hd) { if ( hd < 0 || hd >= NHands ) return NULL; return d_hand[hd]; } /*! \return Clock hand \param hd Specifies the type of hand \sa setHand() */ const QwtDialNeedle *QwtAnalogClock::hand(Hand hd) const { return ((QwtAnalogClock *)this)->hand(hd); } /*! \brief Set the current time This is the same as QwtAnalogClock::setTime(), but Qt < 3.0 can't handle default parameters for slots. */ void QwtAnalogClock::setCurrentTime() { setTime(QTime::currentTime()); } /*! Set a time \param time Time to display */ void QwtAnalogClock::setTime(const QTime &time) { if ( time.isValid() ) { setValue((time.hour() % 12) * 60.0 * 60.0 + time.minute() * 60.0 + time.second()); } else setValid(false); } /*! Find the scale label for a given value \param value Value \return Label */ QwtText QwtAnalogClock::scaleLabel(double value) const { if ( value == 0.0 ) value = 60.0 * 60.0 * 12.0; return QString::number(int(value / (60.0 * 60.0))); } /*! \brief Draw the needle A clock has no single needle but three hands instead. drawNeedle translates value() into directions for the hands and calls drawHand(). \param painter Painter \param center Center of the clock \param radius Maximum length for the hands \param direction Dummy, not used. \param cg ColorGroup \sa drawHand() */ void QwtAnalogClock::drawNeedle(QPainter *painter, const QPoint ¢er, int radius, double, QPalette::ColorGroup cg) const { if ( isValid() ) { const double hours = value() / (60.0 * 60.0); const double minutes = (value() - (int)hours * 60.0 * 60.0) / 60.0; const double seconds = value() - (int)hours * 60.0 * 60.0 - (int)minutes * 60.0; double angle[NHands]; angle[HourHand] = 360.0 * hours / 12.0; angle[MinuteHand] = 360.0 * minutes / 60.0; angle[SecondHand] = 360.0 * seconds / 60.0; for ( int hand = 0; hand < NHands; hand++ ) { double d = angle[hand]; if ( direction() == Clockwise ) d = 360.0 - d; d -= origin(); drawHand(painter, (Hand)hand, center, radius, d, cg); } } } /*! Draw a clock hand \param painter Painter \param hd Specify the type of hand \param center Center of the clock \param radius Maximum length for the hands \param direction Direction of the hand in degrees, counter clockwise \param cg ColorGroup */ void QwtAnalogClock::drawHand(QPainter *painter, Hand hd, const QPoint ¢er, int radius, double direction, QPalette::ColorGroup cg) const { const QwtDialNeedle *needle = hand(hd); if ( needle ) { if ( hd == HourHand ) radius = qRound(0.8 * radius); needle->draw(painter, center, radius, direction, cg); } } qwt5-5.2.3/src/qwt_plot_panner.h0000644000175000017500000000265512052741123016140 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_PANNER_H #define QWT_PLOT_PANNER_H 1 #include "qwt_global.h" #include "qwt_panner.h" class QwtPlotCanvas; class QwtPlot; /*! \brief QwtPlotPanner provides panning of a plot canvas QwtPlotPanner is a panner for a QwtPlotCanvas, that adjusts the scales of the axes after dropping the canvas on its new position. Together with QwtPlotZoomer and QwtPlotMagnifier powerful ways of navigating on a QwtPlot widget can be implemented easily. \note The axes are not updated, while dragging the canvas \sa QwtPlotZoomer, QwtPlotMagnifier */ class QWT_EXPORT QwtPlotPanner: public QwtPanner { Q_OBJECT public: explicit QwtPlotPanner(QwtPlotCanvas *); virtual ~QwtPlotPanner(); QwtPlotCanvas *canvas(); const QwtPlotCanvas *canvas() const; QwtPlot *plot(); const QwtPlot *plot() const; void setAxisEnabled(int axis, bool on); bool isAxisEnabled(int axis) const; protected slots: virtual void moveCanvas(int dx, int dy); private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_dial_needle.h0000644000175000017500000001164312052741123016041 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DIAL_NEEDLE_H #define QWT_DIAL_NEEDLE_H 1 #include #include "qwt_global.h" class QPainter; class QPoint; /*! \brief Base class for needles that can be used in a QwtDial. QwtDialNeedle is a pointer that indicates a value by pointing to a specific direction. Qwt is missing a set of good looking needles. Contributions are very welcome. \sa QwtDial, QwtCompass */ class QWT_EXPORT QwtDialNeedle { public: QwtDialNeedle(); virtual ~QwtDialNeedle(); /*! Draw the needle \param painter Painter \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise \param cg Color group, used for painting */ virtual void draw(QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup cg = QPalette::Active) const = 0; virtual void setPalette(const QPalette &); const QPalette &palette() const; protected: static void drawKnob(QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken); private: QPalette d_palette; }; /*! \brief A needle for dial widgets The following colors are used: - QColorGroup::Mid\n Pointer - QColorGroup::base\n Knob \sa QwtDial, QwtCompass */ class QWT_EXPORT QwtDialSimpleNeedle: public QwtDialNeedle { public: //! Style of the needle enum Style { Arrow, Ray }; QwtDialSimpleNeedle(Style, bool hasKnob = true, const QColor &mid = Qt::gray, const QColor &base = Qt::darkGray); virtual void draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup = QPalette::Active) const; static void drawArrowNeedle(QPainter *, const QPalette&, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob); static void drawRayNeedle(QPainter *, const QPalette&, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob); void setWidth(int width); int width() const; private: Style d_style; bool d_hasKnob; int d_width; }; /*! \brief A magnet needle for compass widgets A magnet needle points to two opposite directions indicating north and south. The following colors are used: - QColorGroup::Light\n Used for pointing south - QColorGroup::Dark\n Used for pointing north - QColorGroup::Base\n Knob (ThinStyle only) \sa QwtDial, QwtCompass */ class QWT_EXPORT QwtCompassMagnetNeedle: public QwtDialNeedle { public: //! Style of the needle enum Style { TriangleStyle, ThinStyle }; QwtCompassMagnetNeedle(Style = TriangleStyle, const QColor &light = Qt::white, const QColor &dark = Qt::red); virtual void draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup = QPalette::Active) const; static void drawTriangleNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction); static void drawThinNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction); protected: static void drawPointer(QPainter *painter, const QBrush &brush, int colorOffset, const QPoint ¢er, int length, int width, double direction); private: Style d_style; }; /*! \brief An indicator for the wind direction QwtCompassWindArrow shows the direction where the wind comes from. - QColorGroup::Light\n Used for Style1, or the light half of Style2 - QColorGroup::Dark\n Used for the dark half of Style2 \sa QwtDial, QwtCompass */ class QWT_EXPORT QwtCompassWindArrow: public QwtDialNeedle { public: //! Style of the arrow enum Style { Style1, Style2 }; QwtCompassWindArrow(Style, const QColor &light = Qt::white, const QColor &dark = Qt::gray); virtual void draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup = QPalette::Active) const; static void drawStyle1Needle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction); static void drawStyle2Needle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction); private: Style d_style; }; #endif // QWT_DIAL_NEEDLE_H qwt5-5.2.3/src/qwt_text.h0000644000175000017500000001270312052741123014576 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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_TEXT_H #define QWT_TEXT_H #include #include #include #include "qwt_global.h" class QColor; class QPen; class QBrush; class QRect; class QPainter; class QwtTextEngine; /*! \brief A class representing a text A QwtText is a text including a set of attributes how to render it. - Format\n A text might include control sequences (f.e tags) describing how to render it. Each format (f.e MathML, TeX, Qt Rich Text) has its own set of control sequences, that can be handles by a QwtTextEngine for this format. - Background\n A text might have a background, defined by a QPen and QBrush to improve its visibility. - Font\n A text might have an individual font. - Color\n A text might have an individual color. - Render Flags\n Flags from Qt::AlignmentFlag and Qt::TextFlag used like in QPainter::drawText. \sa QwtTextEngine, QwtTextLabel */ class QWT_EXPORT QwtText { public: /*! \brief Text format The text format defines the QwtTextEngine, that is used to render the text. - AutoText\n The text format is determined using QwtTextEngine::mightRender for all available text engines in increasing order > PlainText. If none of the text engines can render the text is rendered like PlainText. - PlainText\n Draw the text as it is, using a QwtPlainTextEngine. - RichText\n Use the Scribe framework (Qt Rich Text) to render the text. - MathMLText\n Use a MathML (http://en.wikipedia.org/wiki/MathML) render engine to display the text. The Qwt MathML extension offers such an engine based on the MathML renderer of the Qt solutions package. Unfortunately it is only available for owners of a commercial Qt license. - TeXText\n Use a TeX (http://en.wikipedia.org/wiki/TeX) render engine to display the text. - OtherFormat\n The number of text formats can be extended using setTextEngine. Formats >= OtherFormat are not used by Qwt. \sa QwtTextEngine, setTextEngine() */ enum TextFormat { AutoText = 0, PlainText, RichText, MathMLText, TeXText, OtherFormat = 100 }; /*! \brief Paint Attributes Font and color and background are optional attributes of a QwtText. The paint attributes hold the information, if they are set. - PaintUsingTextFont\n The text has an individual font. - PaintUsingTextColor\n The text has an individual color. - PaintBackground\n The text has an individual background. */ enum PaintAttribute { PaintUsingTextFont = 1, PaintUsingTextColor = 2, PaintBackground = 4 }; /*! \brief Layout Attributes The layout attributes affects some aspects of the layout of the text. - MinimumLayout\n Layout the text without its margins. This mode is useful if a text needs to be aligned accurately, like the tick labels of a scale. If QwtTextEngine::textMargins is not implemented for the format of the text, MinimumLayout has no effect. */ enum LayoutAttribute { MinimumLayout = 1 }; QwtText(const QString & = QString::null, TextFormat textFormat = AutoText); QwtText(const QwtText &); ~QwtText(); QwtText &operator=(const QwtText &); int operator==(const QwtText &) const; int operator!=(const QwtText &) const; void setText(const QString &, QwtText::TextFormat textFormat = AutoText); QString text() const; bool isNull() const; bool isEmpty() const; void setFont(const QFont &); QFont font() const; QFont usedFont(const QFont &) const; void setRenderFlags(int flags); int renderFlags() const; void setColor(const QColor &); QColor color() const; QColor usedColor(const QColor &) const; void setBackgroundPen(const QPen &); QPen backgroundPen() const; void setBackgroundBrush(const QBrush &); QBrush backgroundBrush() const; void setPaintAttribute(PaintAttribute, bool on = true); bool testPaintAttribute(PaintAttribute) const; void setLayoutAttribute(LayoutAttribute, bool on = true); bool testLayoutAttribute(LayoutAttribute) const; int heightForWidth(int width, const QFont & = QFont()) const; QSize textSize(const QFont & = QFont()) const; void draw(QPainter *painter, const QRect &rect) const; static const QwtTextEngine *textEngine(const QString &text, QwtText::TextFormat = AutoText); static const QwtTextEngine *textEngine(QwtText::TextFormat); static void setTextEngine(QwtText::TextFormat, QwtTextEngine *); private: class PrivateData; PrivateData *d_data; class LayoutCache; LayoutCache *d_layoutCache; }; //! \return text().isNull() inline bool QwtText::isNull() const { return text().isNull(); } //! \return text().isEmpty() inline bool QwtText::isEmpty() const { return text().isEmpty(); } #endif qwt5-5.2.3/src/qwt_picker_machine.h0000644000175000017500000000763712052741123016565 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PICKER_MACHINE #define QWT_PICKER_MACHINE 1 #include "qwt_global.h" #if QT_VERSION < 0x040000 #include #else #include #endif class QEvent; class QwtEventPattern; /*! \brief A state machine for QwtPicker selections QwtPickerMachine accepts key and mouse events and translates them into selection commands. \sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode */ class QWT_EXPORT QwtPickerMachine { public: //! Commands - the output of the state machine enum Command { Begin, Append, Move, End }; #if QT_VERSION < 0x040000 typedef QValueList CommandList; #else typedef QList CommandList; #endif virtual ~QwtPickerMachine(); //! Transition virtual CommandList transition( const QwtEventPattern &, const QEvent *) = 0; void reset(); int state() const; void setState(int); protected: QwtPickerMachine(); private: int d_state; }; /*! \brief A state machine for point selections Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 selects a point. \sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode */ class QWT_EXPORT QwtPickerClickPointMachine: public QwtPickerMachine { public: virtual CommandList transition( const QwtEventPattern &, const QEvent *); }; /*! \brief A state machine for point selections Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection, releasing QwtEventPattern::MouseSelect1 or a second press of QwtEventPattern::KeySelect1 terminates it. */ class QWT_EXPORT QwtPickerDragPointMachine: public QwtPickerMachine { public: virtual CommandList transition( const QwtEventPattern &, const QEvent *); }; /*! \brief A state machine for rectangle selections Pressing QwtEventPattern::MouseSelect1 starts the selection, releasing it selects the first point. Pressing it again selects the second point and terminates the selection. Pressing QwtEventPattern::KeySelect1 also starts the selection, a second press selects the first point. A third one selects the second point and terminates the selection. \sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode */ class QWT_EXPORT QwtPickerClickRectMachine: public QwtPickerMachine { public: virtual CommandList transition( const QwtEventPattern &, const QEvent *); }; /*! \brief A state machine for rectangle selections Pressing QwtEventPattern::MouseSelect1 selects the first point, releasing it the second point. Pressing QwtEventPattern::KeySelect1 also selects the first point, a second press selects the second point and terminates the selection. \sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode */ class QWT_EXPORT QwtPickerDragRectMachine: public QwtPickerMachine { public: virtual CommandList transition( const QwtEventPattern &, const QEvent *); }; /*! \brief A state machine for polygon selections Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection and selects the first point, or appends a point. Pressing QwtEventPattern::MouseSelect2 or QwtEventPattern::KeySelect2 appends the last point and terminates the selection. \sa QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode */ class QWT_EXPORT QwtPickerPolygonMachine: public QwtPickerMachine { public: virtual CommandList transition( const QwtEventPattern &, const QEvent *); }; #endif qwt5-5.2.3/src/qwt_valuelist.h0000644000175000017500000000130412052741123015615 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_VALUELIST_H #define QWT_VALUELIST_H #include "qwt_global.h" /*! \def QwtValueList */ #if QT_VERSION < 0x040000 #include typedef QValueList QwtValueList; #else // QT_VERSION >= 0x040000 #include typedef QList QwtValueList; #endif #endif qwt5-5.2.3/src/qwt_dyngrid_layout.h0000644000175000017500000000552212052741123016650 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DYNGRID_LAYOUT_H #define QWT_DYNGRID_LAYOUT_H #include #include #if QT_VERSION >= 0x040000 #include #else #include #endif #include "qwt_global.h" #include "qwt_array.h" /*! \brief The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size. QwtDynGridLayout takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s). It lays out as many number of columns as possible (limited by maxCols()). */ class QWT_EXPORT QwtDynGridLayout : public QLayout { Q_OBJECT public: explicit QwtDynGridLayout(QWidget *, int margin = 0, int space = -1); #if QT_VERSION < 0x040000 explicit QwtDynGridLayout(QLayout *, int space = -1); #endif explicit QwtDynGridLayout(int space = -1); virtual ~QwtDynGridLayout(); virtual void invalidate(); void setMaxCols(uint maxCols); uint maxCols() const; uint numRows () const; uint numCols () const; virtual void addItem(QLayoutItem *); #if QT_VERSION >= 0x040000 virtual QLayoutItem *itemAt( int index ) const; virtual QLayoutItem *takeAt( int index ); virtual int count() const; void setExpandingDirections(Qt::Orientations); virtual Qt::Orientations expandingDirections() const; QList layoutItems(const QRect &, uint numCols) const; #else virtual QLayoutIterator iterator(); void setExpanding(QSizePolicy::ExpandData); virtual QSizePolicy::ExpandData expanding() const; QValueList layoutItems(const QRect &, uint numCols) const; #endif virtual int maxItemWidth() const; virtual void setGeometry(const QRect &rect); virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; virtual QSize sizeHint() const; virtual bool isEmpty() const; uint itemCount() const; virtual uint columnsForWidth(int width) const; protected: void layoutGrid(uint numCols, QwtArray& rowHeight, QwtArray& colWidth) const; void stretchGrid(const QRect &rect, uint numCols, QwtArray& rowHeight, QwtArray& colWidth) const; private: void init(); int maxRowWidth(int numCols) const; void updateLayoutCache(); #if QT_VERSION < 0x040000 // xlC 5.1, the IBM/AIX C++ compiler, needs it to be public public: #endif class PrivateData; private: PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_polygon.h0000644000175000017500000000140012052741123015271 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_POLYGON_H #define QWT_POLYGON_H #include "qwt_global.h" /*! \def QwtPolygon */ #if QT_VERSION < 0x040000 #include #include "qwt_double_rect.h" typedef QPointArray QwtPolygon; typedef QMemArray QwtPolygonF; #else #include typedef QPolygon QwtPolygon; typedef QPolygonF QwtPolygonF; #endif #endif qwt5-5.2.3/src/qwt_scale_map.h0000644000175000017500000001044412052741123015536 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SCALE_MAP_H #define QWT_SCALE_MAP_H #include "qwt_global.h" #include "qwt_math.h" /*! \brief Operations for linear or logarithmic (base 10) transformations */ class QWT_EXPORT QwtScaleTransformation { public: enum Type { Linear, Log10, Other }; QwtScaleTransformation(Type type); virtual ~QwtScaleTransformation(); virtual double xForm(double x, double s1, double s2, double p1, double p2) const; virtual double invXForm(double x, double p1, double p2, double s1, double s2) const; Type type() const; virtual QwtScaleTransformation *copy() const; private: QwtScaleTransformation(); QwtScaleTransformation &operator=( const QwtScaleTransformation); const Type d_type; }; //! \return Transformation type inline QwtScaleTransformation::Type QwtScaleTransformation::type() const { return d_type; } /*! \brief A scale map QwtScaleMap offers transformations from a scale into a paint interval and vice versa. */ class QWT_EXPORT QwtScaleMap { public: QwtScaleMap(); QwtScaleMap(const QwtScaleMap&); ~QwtScaleMap(); QwtScaleMap &operator=(const QwtScaleMap &); void setTransformation(QwtScaleTransformation * ); const QwtScaleTransformation *transformation() const; void setPaintInterval(int p1, int p2); void setPaintXInterval(double p1, double p2); void setScaleInterval(double s1, double s2); int transform(double x) const; double invTransform(double i) const; double xTransform(double x) const; double p1() const; double p2() const; double s1() const; double s2() const; double pDist() const; double sDist() const; QT_STATIC_CONST double LogMin; QT_STATIC_CONST double LogMax; private: void newFactor(); double d_s1, d_s2; // scale interval boundaries double d_p1, d_p2; // paint device interval boundaries double d_cnv; // conversion factor QwtScaleTransformation *d_transformation; }; /*! \return First border of the scale interval */ inline double QwtScaleMap::s1() const { return d_s1; } /*! \return Second border of the scale interval */ inline double QwtScaleMap::s2() const { return d_s2; } /*! \return First border of the paint interval */ inline double QwtScaleMap::p1() const { return d_p1; } /*! \return Second border of the paint interval */ inline double QwtScaleMap::p2() const { return d_p2; } /*! \return qwtAbs(p2() - p1()) */ inline double QwtScaleMap::pDist() const { return qwtAbs(d_p2 - d_p1); } /*! \return qwtAbs(s2() - s1()) */ inline double QwtScaleMap::sDist() const { return qwtAbs(d_s2 - d_s1); } /*! Transform a point related to the scale interval into an point related to the interval of the paint device \param s Value relative to the coordinates of the scale */ inline double QwtScaleMap::xTransform(double s) const { // try to inline code from QwtScaleTransformation if ( d_transformation->type() == QwtScaleTransformation::Linear ) return d_p1 + (s - d_s1) * d_cnv; if ( d_transformation->type() == QwtScaleTransformation::Log10 ) return d_p1 + log(s / d_s1) * d_cnv; return d_transformation->xForm(s, d_s1, d_s2, d_p1, d_p2 ); } /*! Transform an paint device value into a value in the interval of the scale. \param p Value relative to the coordinates of the paint device \sa transform() */ inline double QwtScaleMap::invTransform(double p) const { return d_transformation->invXForm(p, d_p1, d_p2, d_s1, d_s2 ); } /*! Transform a point related to the scale interval into an point related to the interval of the paint device and round it to an integer. (In Qt <= 3.x paint devices are integer based. ) \param s Value relative to the coordinates of the scale \sa xTransform() */ inline int QwtScaleMap::transform(double s) const { return qRound(xTransform(s)); } #endif qwt5-5.2.3/src/qwt_plot_item.cpp0000644000175000017500000002766112052741125016154 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_text.h" #include "qwt_plot.h" #include "qwt_legend.h" #include "qwt_legend_item.h" #include "qwt_plot_item.h" class QwtPlotItem::PrivateData { public: PrivateData(): plot(NULL), isVisible(true), attributes(0), #if QT_VERSION >= 0x040000 renderHints(0), #endif z(0.0), xAxis(QwtPlot::xBottom), yAxis(QwtPlot::yLeft) { } mutable QwtPlot *plot; bool isVisible; int attributes; #if QT_VERSION >= 0x040000 int renderHints; #endif double z; int xAxis; int yAxis; QwtText title; }; /*! Constructor \param title Title of the item */ QwtPlotItem::QwtPlotItem(const QwtText &title) { d_data = new PrivateData; d_data->title = title; } //! Destroy the QwtPlotItem QwtPlotItem::~QwtPlotItem() { attach(NULL); delete d_data; } /*! \brief Attach the item to a plot. This method will attach a QwtPlotItem to the QwtPlot argument. It will first detach the QwtPlotItem from any plot from a previous call to attach (if necessary). If a NULL argument is passed, it will detach from any QwtPlot it was attached to. \param plot Plot widget \sa QwtPlotItem::detach() */ void QwtPlotItem::attach(QwtPlot *plot) { if ( plot == d_data->plot ) return; // remove the item from the previous plot if ( d_data->plot ) { if ( d_data->plot->legend() ) { QWidget *legendItem = d_data->plot->legend()->find(this); if ( legendItem ) delete legendItem; } d_data->plot->attachItem(this, false); if ( d_data->plot->autoReplot() ) d_data->plot->update(); } d_data->plot = plot; if ( d_data->plot ) { // insert the item into the current plot d_data->plot->attachItem(this, true); itemChanged(); } } /*! Return rtti for the specific class represented. QwtPlotItem is simply a virtual interface class, and base classes will implement this method with specific rtti values so a user can differentiate them. The rtti value is useful for environments, where the runtime type information is disabled and it is not possible to do a dynamic_cast<...>. \return rtti value \sa RttiValues */ int QwtPlotItem::rtti() const { return Rtti_PlotItem; } //! Return attached plot QwtPlot *QwtPlotItem::plot() const { return d_data->plot; } /*! Plot items are painted in increasing z-order. \return setZ(), QwtPlotDict::itemList() */ double QwtPlotItem::z() const { return d_data->z; } /*! \brief Set the z value Plot items are painted in increasing z-order. \param z Z-value \sa z(), QwtPlotDict::itemList() */ void QwtPlotItem::setZ(double z) { if ( d_data->z != z ) { if ( d_data->plot ) // update the z order d_data->plot->attachItem( this, false ); d_data->z = z; if ( d_data->plot ) d_data->plot->attachItem( this, true ); itemChanged(); } } /*! Set a new title \param title Title \sa title() */ void QwtPlotItem::setTitle(const QString &title) { setTitle(QwtText(title)); } /*! Set a new title \param title Title \sa title() */ void QwtPlotItem::setTitle(const QwtText &title) { if ( d_data->title != title ) { d_data->title = title; itemChanged(); } } /*! \return Title of the item \sa setTitle() */ const QwtText &QwtPlotItem::title() const { return d_data->title; } /*! Toggle an item attribute \param attribute Attribute type \param on true/false \sa testItemAttribute(), ItemAttribute */ void QwtPlotItem::setItemAttribute(ItemAttribute attribute, bool on) { if ( bool(d_data->attributes & attribute) != on ) { if ( on ) d_data->attributes |= attribute; else d_data->attributes &= ~attribute; itemChanged(); } } /*! Test an item attribute \param attribute Attribute type \return true/false \sa setItemAttribute(), ItemAttribute */ bool QwtPlotItem::testItemAttribute(ItemAttribute attribute) const { return d_data->attributes & attribute; } #if QT_VERSION >= 0x040000 /*! Toggle an render hint \param hint Render hint \param on true/false \sa testRenderHint(), RenderHint */ void QwtPlotItem::setRenderHint(RenderHint hint, bool on) { if ( ((d_data->renderHints & hint) != 0) != on ) { if ( on ) d_data->renderHints |= hint; else d_data->renderHints &= ~hint; itemChanged(); } } /*! Test a render hint \param hint Render hint \return true/false \sa setRenderHint(), RenderHint */ bool QwtPlotItem::testRenderHint(RenderHint hint) const { return (d_data->renderHints & hint); } #endif //! Show the item void QwtPlotItem::show() { setVisible(true); } //! Hide the item void QwtPlotItem::hide() { setVisible(false); } /*! Show/Hide the item \param on Show if true, otherwise hide \sa isVisible(), show(), hide() */ void QwtPlotItem::setVisible(bool on) { if ( on != d_data->isVisible ) { d_data->isVisible = on; itemChanged(); } } /*! \return true if visible \sa setVisible(), show(), hide() */ bool QwtPlotItem::isVisible() const { return d_data->isVisible; } /*! Update the legend and call QwtPlot::autoRefresh for the parent plot. \sa updateLegend() */ void QwtPlotItem::itemChanged() { if ( d_data->plot ) { if ( d_data->plot->legend() ) updateLegend(d_data->plot->legend()); d_data->plot->autoRefresh(); } } /*! Set X and Y axis The item will painted according to the coordinates its Axes. \param xAxis X Axis \param yAxis Y Axis \sa setXAxis(), setYAxis(), xAxis(), yAxis() */ void QwtPlotItem::setAxis(int xAxis, int yAxis) { if (xAxis == QwtPlot::xBottom || xAxis == QwtPlot::xTop ) d_data->xAxis = xAxis; if (yAxis == QwtPlot::yLeft || yAxis == QwtPlot::yRight ) d_data->yAxis = yAxis; itemChanged(); } /*! Set the X axis The item will painted according to the coordinates its Axes. \param axis X Axis \sa setAxis(), setYAxis(), xAxis() */ void QwtPlotItem::setXAxis(int axis) { if (axis == QwtPlot::xBottom || axis == QwtPlot::xTop ) { d_data->xAxis = axis; itemChanged(); } } /*! Set the Y axis The item will painted according to the coordinates its Axes. \param axis Y Axis \sa setAxis(), setXAxis(), yAxis() */ void QwtPlotItem::setYAxis(int axis) { if (axis == QwtPlot::yLeft || axis == QwtPlot::yRight ) { d_data->yAxis = axis; itemChanged(); } } //! Return xAxis int QwtPlotItem::xAxis() const { return d_data->xAxis; } //! Return yAxis int QwtPlotItem::yAxis() const { return d_data->yAxis; } /*! \return An invalid bounding rect: QwtDoubleRect(1.0, 1.0, -2.0, -2.0) */ QwtDoubleRect QwtPlotItem::boundingRect() const { return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid } /*! \brief Allocate the widget that represents the item on the legend The default implementation is made for QwtPlotCurve and returns a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend(). \return QwtLegendItem() \sa updateLegend() QwtLegend() */ QWidget *QwtPlotItem::legendItem() const { return new QwtLegendItem; } /*! \brief Update the widget that represents the item on the legend updateLegend() is called from itemChanged() to adopt the widget representing the item on the legend to its new configuration. The default implementation is made for QwtPlotCurve and updates a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend(). \param legend Legend \sa legendItem(), itemChanged(), QwtLegend() */ void QwtPlotItem::updateLegend(QwtLegend *legend) const { if ( !legend ) return; QWidget *lgdItem = legend->find(this); if ( testItemAttribute(QwtPlotItem::Legend) ) { if ( lgdItem == NULL ) { lgdItem = legendItem(); if ( lgdItem ) { if ( lgdItem->inherits("QwtLegendItem") ) { QwtLegendItem *label = (QwtLegendItem *)lgdItem; label->setItemMode(legend->itemMode()); if ( d_data->plot ) { QObject::connect(label, SIGNAL(clicked()), d_data->plot, SLOT(legendItemClicked())); QObject::connect(label, SIGNAL(checked(bool)), d_data->plot, SLOT(legendItemChecked(bool))); } } legend->insert(this, lgdItem); } } if ( lgdItem && lgdItem->inherits("QwtLegendItem") ) { QwtLegendItem* label = (QwtLegendItem*)lgdItem; if ( label ) label->setText(d_data->title); } } else { delete lgdItem; } } /*! \brief Update the item to changes of the axes scale division Update the item, when the axes of plot have changed. The default implementation does nothing, but items that depend on the scale division (like QwtPlotGrid()) have to reimplement updateScaleDiv() \param xScaleDiv Scale division of the x-axis \param yScaleDiv Scale division of the y-axis \sa QwtPlot::updateAxes() */ void QwtPlotItem::updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &) { } /*! \brief Calculate the bounding scale rect of 2 maps \param xMap X map \param yMap X map \return Bounding rect of the scale maps */ QwtDoubleRect QwtPlotItem::scaleRect(const QwtScaleMap &xMap, const QwtScaleMap &yMap) const { return QwtDoubleRect(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist() ); } /*! \brief Calculate the bounding paint rect of 2 maps \param xMap X map \param yMap X map \return Bounding rect of the scale maps */ QRect QwtPlotItem::paintRect(const QwtScaleMap &xMap, const QwtScaleMap &yMap) const { const QRect rect( qRound(xMap.p1()), qRound(yMap.p1()), qRound(xMap.pDist()), qRound(yMap.pDist()) ); return rect; } /*! Transform a rectangle \param xMap X map \param yMap Y map \param rect Rectangle in scale coordinates \return Rectangle in paint coordinates \sa invTransform() */ QRect QwtPlotItem::transform(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect& rect) const { int x1 = qRound(xMap.transform(rect.left())); int x2 = qRound(xMap.transform(rect.right())); int y1 = qRound(yMap.transform(rect.top())); int y2 = qRound(yMap.transform(rect.bottom())); if ( x2 < x1 ) qSwap(x1, x2); if ( y2 < y1 ) qSwap(y1, y2); return QRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1); } /*! Transform a rectangle from paint to scale coordinates \param xMap X map \param yMap Y map \param rect Rectangle in paint coordinates \return Rectangle in scale coordinates \sa transform() */ QwtDoubleRect QwtPlotItem::invTransform(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect& rect) const { const double x1 = xMap.invTransform(rect.left()); const double x2 = xMap.invTransform(rect.right()); const double y1 = yMap.invTransform(rect.top()); const double y2 = yMap.invTransform(rect.bottom()); const QwtDoubleRect r(x1, y1, x2 - x1, y2 - y1); return r.normalized(); } qwt5-5.2.3/src/qwt_counter.cpp0000644000175000017500000003455012052741126015633 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include #include "qwt_math.h" #include "qwt_counter.h" #include "qwt_arrow_button.h" class QwtCounter::PrivateData { public: PrivateData(): editable(true) { increment[Button1] = 1; increment[Button2] = 10; increment[Button3] = 100; } QwtArrowButton *buttonDown[ButtonCnt]; QwtArrowButton *buttonUp[ButtonCnt]; QLineEdit *valueEdit; int increment[ButtonCnt]; int nButtons; bool editable; }; /*! The default number of buttons is set to 2. The default increments are: \li Button 1: 1 step \li Button 2: 10 steps \li Button 3: 100 steps \param parent */ QwtCounter::QwtCounter(QWidget *parent): QWidget(parent) { initCounter(); } #if QT_VERSION < 0x040000 /*! The default number of buttons is set to 2. The default increments are: \li Button 1: 1 step \li Button 2: 10 steps \li Button 3: 100 steps \param parent */ QwtCounter::QwtCounter(QWidget *parent, const char *name): QWidget(parent, name) { initCounter(); } #endif void QwtCounter::initCounter() { d_data = new PrivateData; #if QT_VERSION >= 0x040000 using namespace Qt; #endif QHBoxLayout *layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setMargin(0); int i; for(i = ButtonCnt - 1; i >= 0; i--) { QwtArrowButton *btn = new QwtArrowButton(i+1, Qt::DownArrow,this); btn->setFocusPolicy(NoFocus); btn->installEventFilter(this); layout->addWidget(btn); connect(btn, SIGNAL(released()), SLOT(btnReleased())); connect(btn, SIGNAL(clicked()), SLOT(btnClicked())); d_data->buttonDown[i] = btn; } d_data->valueEdit = new QLineEdit(this); d_data->valueEdit->setReadOnly(false); d_data->valueEdit->setValidator(new QDoubleValidator(d_data->valueEdit)); layout->addWidget(d_data->valueEdit); #if QT_VERSION >= 0x040000 connect( d_data->valueEdit, SIGNAL(editingFinished()), SLOT(textChanged()) ); #else connect( d_data->valueEdit, SIGNAL(returnPressed()), SLOT(textChanged()) ); connect( d_data->valueEdit, SIGNAL(lostFocus()), SLOT(textChanged()) ); #endif layout->setStretchFactor(d_data->valueEdit, 10); for(i = 0; i < ButtonCnt; i++) { #if QT_VERSION >= 0x040000 using namespace Qt; #endif QwtArrowButton *btn = new QwtArrowButton(i+1, Qt::UpArrow, this); btn->setFocusPolicy(NoFocus); btn->installEventFilter(this); layout->addWidget(btn); connect(btn, SIGNAL(released()), SLOT(btnReleased())); connect(btn, SIGNAL(clicked()), SLOT(btnClicked())); d_data->buttonUp[i] = btn; } setNumButtons(2); setRange(0.0,1.0,0.001); setValue(0.0); setSizePolicy( QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed)); setFocusProxy(d_data->valueEdit); setFocusPolicy(StrongFocus); } //! Destructor QwtCounter::~QwtCounter() { delete d_data; } /*! Sets the minimum width for the buttons */ void QwtCounter::polish() { const int w = d_data->valueEdit->fontMetrics().width("W") + 8; for ( int i = 0; i < ButtonCnt; i++ ) { d_data->buttonDown[i]->setMinimumWidth(w); d_data->buttonUp[i]->setMinimumWidth(w); } #if QT_VERSION < 0x040000 QWidget::polish(); #endif } //! Set from lineedit void QwtCounter::textChanged() { if ( !d_data->editable ) return; bool converted = false; const double value = d_data->valueEdit->text().toDouble(&converted); if ( converted ) setValue( value ); } /** \brief Allow/disallow the user to manually edit the value \param editable true enables editing \sa editable() */ void QwtCounter::setEditable(bool editable) { #if QT_VERSION >= 0x040000 using namespace Qt; #endif if ( editable == d_data->editable ) return; d_data->editable = editable; d_data->valueEdit->setReadOnly(!editable); } //! returns whether the line edit is edatble. (default is yes) bool QwtCounter::editable() const { return d_data->editable; } /*! Handle PolishRequest events */ bool QwtCounter::event ( QEvent * e ) { #if QT_VERSION >= 0x040000 if ( e->type() == QEvent::PolishRequest ) polish(); #endif return QWidget::event(e); } /*! Handle key events - Ctrl + Qt::Key_Home Step to minValue() - Ctrl + Qt::Key_End Step to maxValue() - Qt::Key_Up Increment by incSteps(QwtCounter::Button1) - Qt::Key_Down Decrement by incSteps(QwtCounter::Button1) - Qt::Key_PageUp Increment by incSteps(QwtCounter::Button2) - Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button2) - Shift + Qt::Key_PageUp Increment by incSteps(QwtCounter::Button3) - Shift + Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button3) */ void QwtCounter::keyPressEvent (QKeyEvent *e) { bool accepted = true; switch ( e->key() ) { case Qt::Key_Home: #if QT_VERSION >= 0x040000 if ( e->modifiers() & Qt::ControlModifier ) #else if ( e->state() & Qt::ControlButton ) #endif setValue(minValue()); else accepted = false; break; case Qt::Key_End: #if QT_VERSION >= 0x040000 if ( e->modifiers() & Qt::ControlModifier ) #else if ( e->state() & Qt::ControlButton ) #endif setValue(maxValue()); else accepted = false; break; case Qt::Key_Up: incValue(d_data->increment[0]); break; case Qt::Key_Down: incValue(-d_data->increment[0]); break; case Qt::Key_PageUp: case Qt::Key_PageDown: { int increment = d_data->increment[0]; if ( d_data->nButtons >= 2 ) increment = d_data->increment[1]; if ( d_data->nButtons >= 3 ) { #if QT_VERSION >= 0x040000 if ( e->modifiers() & Qt::ShiftModifier ) #else if ( e->state() & Qt::ShiftButton ) #endif increment = d_data->increment[2]; } if ( e->key() == Qt::Key_PageDown ) increment = -increment; incValue(increment); break; } default: accepted = false; } if ( accepted ) { e->accept(); return; } QWidget::keyPressEvent (e); } /*! Handle wheel events \param e Wheel event */ void QwtCounter::wheelEvent(QWheelEvent *e) { e->accept(); if ( d_data->nButtons <= 0 ) return; int increment = d_data->increment[0]; if ( d_data->nButtons >= 2 ) { #if QT_VERSION >= 0x040000 if ( e->modifiers() & Qt::ControlModifier ) #else if ( e->state() & Qt::ControlButton ) #endif increment = d_data->increment[1]; } if ( d_data->nButtons >= 3 ) { #if QT_VERSION >= 0x040000 if ( e->modifiers() & Qt::ShiftModifier ) #else if ( e->state() & Qt::ShiftButton ) #endif increment = d_data->increment[2]; } for ( int i = 0; i < d_data->nButtons; i++ ) { if ( d_data->buttonDown[i]->geometry().contains(e->pos()) || d_data->buttonUp[i]->geometry().contains(e->pos()) ) { increment = d_data->increment[i]; } } const int wheel_delta = 120; int delta = e->delta(); if ( delta >= 2 * wheel_delta ) delta /= 2; // Never saw an abs(delta) < 240 incValue(delta / wheel_delta * increment); } /*! Specify the number of steps by which the value is incremented or decremented when a specified button is pushed. \param btn One of \c QwtCounter::Button1, \c QwtCounter::Button2, \c QwtCounter::Button3 \param nSteps Number of steps */ void QwtCounter::setIncSteps(QwtCounter::Button btn, int nSteps) { if (( btn >= 0) && (btn < ButtonCnt)) d_data->increment[btn] = nSteps; } /*! \return the number of steps by which a specified button increments the value or 0 if the button is invalid. \param btn One of \c QwtCounter::Button1, \c QwtCounter::Button2, \c QwtCounter::Button3 */ int QwtCounter::incSteps(QwtCounter::Button btn) const { if (( btn >= 0) && (btn < ButtonCnt)) return d_data->increment[btn]; return 0; } /*! \brief Set a new value \param v new value Calls QwtDoubleRange::setValue and does all visual updates. \sa QwtDoubleRange::setValue() */ void QwtCounter::setValue(double v) { QwtDoubleRange::setValue(v); showNum(value()); updateButtons(); } /*! \brief Notify a change of value */ void QwtCounter::valueChange() { if ( isValid() ) showNum(value()); else d_data->valueEdit->setText(QString::null); updateButtons(); if ( isValid() ) emit valueChanged(value()); } /*! \brief Update buttons according to the current value When the QwtCounter under- or over-flows, the focus is set to the smallest up- or down-button and counting is disabled. Counting is re-enabled on a button release event (mouse or space bar). */ void QwtCounter::updateButtons() { if ( isValid() ) { // 1. save enabled state of the smallest down- and up-button // 2. change enabled state on under- or over-flow for ( int i = 0; i < ButtonCnt; i++ ) { d_data->buttonDown[i]->setEnabled(value() > minValue()); d_data->buttonUp[i]->setEnabled(value() < maxValue()); } } else { for ( int i = 0; i < ButtonCnt; i++ ) { d_data->buttonDown[i]->setEnabled(false); d_data->buttonUp[i]->setEnabled(false); } } } /*! \brief Specify the number of buttons on each side of the label \param n Number of buttons */ void QwtCounter::setNumButtons(int n) { if ( n<0 || n>ButtonCnt ) return; for ( int i = 0; i < ButtonCnt; i++ ) { if ( i < n ) { d_data->buttonDown[i]->show(); d_data->buttonUp[i]->show(); } else { d_data->buttonDown[i]->hide(); d_data->buttonUp[i]->hide(); } } d_data->nButtons = n; } /*! \return The number of buttons on each side of the widget. */ int QwtCounter::numButtons() const { return d_data->nButtons; } /*! Display number string \param number Number */ void QwtCounter::showNum(double number) { QString v; v.setNum(number); const int cursorPos = d_data->valueEdit->cursorPosition(); d_data->valueEdit->setText(v); d_data->valueEdit->setCursorPosition(cursorPos); } //! Button clicked void QwtCounter::btnClicked() { for ( int i = 0; i < ButtonCnt; i++ ) { if ( d_data->buttonUp[i] == sender() ) incValue(d_data->increment[i]); if ( d_data->buttonDown[i] == sender() ) incValue(-d_data->increment[i]); } } //! Button released void QwtCounter::btnReleased() { emit buttonReleased(value()); } /*! \brief Notify change of range This function updates the enabled property of all buttons contained in QwtCounter. */ void QwtCounter::rangeChange() { updateButtons(); } //! A size hint QSize QwtCounter::sizeHint() const { QString tmp; int w = tmp.setNum(minValue()).length(); int w1 = tmp.setNum(maxValue()).length(); if ( w1 > w ) w = w1; w1 = tmp.setNum(minValue() + step()).length(); if ( w1 > w ) w = w1; w1 = tmp.setNum(maxValue() - step()).length(); if ( w1 > w ) w = w1; tmp.fill('9', w); QFontMetrics fm(d_data->valueEdit->font()); w = fm.width(tmp) + 2; #if QT_VERSION >= 0x040000 if ( d_data->valueEdit->hasFrame() ) w += 2 * style()->pixelMetric(QStyle::PM_DefaultFrameWidth); #else w += 2 * d_data->valueEdit->frameWidth(); #endif // Now we replace default sizeHint contribution of d_data->valueEdit by // what we really need. w += QWidget::sizeHint().width() - d_data->valueEdit->sizeHint().width(); const int h = qwtMin(QWidget::sizeHint().height(), d_data->valueEdit->minimumSizeHint().height()); return QSize(w, h); } //! returns the step size double QwtCounter::step() const { return QwtDoubleRange::step(); } /*! Set the step size \param stepSize Step size \sa QwtDoubleRange::setStep() */ void QwtCounter::setStep(double stepSize) { QwtDoubleRange::setStep(stepSize); } //! returns the minimum value of the range double QwtCounter::minVal() const { return minValue(); } /*! Set the minimum value of the range \param value Minimum value \sa setMaxValue(), minVal() */ void QwtCounter::setMinValue(double value) { setRange(value, maxValue(), step()); } //! returns the maximum value of the range double QwtCounter::maxVal() const { return QwtDoubleRange::maxValue(); } /*! Set the maximum value of the range \param value Maximum value \sa setMinValue(), maxVal() */ void QwtCounter::setMaxValue(double value) { setRange(minValue(), value, step()); } /*! Set the number of increment steps for button 1 \param nSteps Number of steps */ void QwtCounter::setStepButton1(int nSteps) { setIncSteps(Button1, nSteps); } //! returns the number of increment steps for button 1 int QwtCounter::stepButton1() const { return incSteps(Button1); } /*! Set the number of increment steps for button 2 \param nSteps Number of steps */ void QwtCounter::setStepButton2(int nSteps) { setIncSteps(Button2, nSteps); } //! returns the number of increment steps for button 2 int QwtCounter::stepButton2() const { return incSteps(Button2); } /*! Set the number of increment steps for button 3 \param nSteps Number of steps */ void QwtCounter::setStepButton3(int nSteps) { setIncSteps(Button3, nSteps); } //! returns the number of increment steps for button 3 int QwtCounter::stepButton3() const { return incSteps(Button3); } //! \return Current value double QwtCounter::value() const { return QwtDoubleRange::value(); } qwt5-5.2.3/src/qwt_plot_svgitem.cpp0000644000175000017500000001501512052741126016663 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #if QT_VERSION >= 0x040100 #include #else #include #include #endif #if QT_VERSION < 0x040000 #include #endif #include "qwt_scale_map.h" #include "qwt_legend.h" #include "qwt_legend_item.h" #include "qwt_plot_svgitem.h" class QwtPlotSvgItem::PrivateData { public: PrivateData() { } QwtDoubleRect boundingRect; #if QT_VERSION >= 0x040100 QSvgRenderer renderer; #else QPicture picture; #endif }; /*! \brief Constructor Sets the following item attributes: - QwtPlotItem::AutoScale: true - QwtPlotItem::Legend: false \param title Title */ QwtPlotSvgItem::QwtPlotSvgItem(const QString& title): QwtPlotItem(QwtText(title)) { init(); } /*! \brief Constructor Sets the following item attributes: - QwtPlotItem::AutoScale: true - QwtPlotItem::Legend: false \param title Title */ QwtPlotSvgItem::QwtPlotSvgItem(const QwtText& title): QwtPlotItem(title) { init(); } //! Destructor QwtPlotSvgItem::~QwtPlotSvgItem() { delete d_data; } void QwtPlotSvgItem::init() { d_data = new PrivateData(); setItemAttribute(QwtPlotItem::AutoScale, true); setItemAttribute(QwtPlotItem::Legend, false); setZ(8.0); } //! \return QwtPlotItem::Rtti_PlotSVG int QwtPlotSvgItem::rtti() const { return QwtPlotItem::Rtti_PlotSVG; } /*! Load a SVG file \param rect Bounding rectangle \param fileName SVG file name \return true, if the SVG file could be loaded */ bool QwtPlotSvgItem::loadFile(const QwtDoubleRect &rect, const QString &fileName) { d_data->boundingRect = rect; #if QT_VERSION >= 0x040100 const bool ok = d_data->renderer.load(fileName); #else const bool ok = d_data->picture.load(fileName, "svg"); #endif itemChanged(); return ok; } /*! Load SVG data \param rect Bounding rectangle \param data in SVG format \return true, if the SVG data could be loaded */ bool QwtPlotSvgItem::loadData(const QwtDoubleRect &rect, const QByteArray &data) { d_data->boundingRect = rect; #if QT_VERSION >= 0x040100 const bool ok = d_data->renderer.load(data); #else #if QT_VERSION >= 0x040000 QBuffer buffer(&(QByteArray&)data); #else QBuffer buffer(data); #endif const bool ok = d_data->picture.load(&buffer, "svg"); #endif itemChanged(); return ok; } //! Bounding rect of the item QwtDoubleRect QwtPlotSvgItem::boundingRect() const { return d_data->boundingRect; } #if QT_VERSION >= 0x040100 //! \return Renderer used to render the SVG data const QSvgRenderer &QwtPlotSvgItem::renderer() const { return d_data->renderer; } //! \return Renderer used to render the SVG data QSvgRenderer &QwtPlotSvgItem::renderer() { return d_data->renderer; } #endif /*! Draw the SVG item \param painter Painter \param xMap X-Scale Map \param yMap Y-Scale Map \param canvasRect Contents rect of the plot canvas */ void QwtPlotSvgItem::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { const QwtDoubleRect cRect = invTransform(xMap, yMap, canvasRect); const QwtDoubleRect bRect = boundingRect(); if ( bRect.isValid() && cRect.isValid() ) { QwtDoubleRect rect = bRect; if ( bRect.contains(cRect) ) rect = cRect; const QRect r = transform(xMap, yMap, rect); render(painter, viewBox(rect), r); } } /*! Render the SVG data \param painter Painter \param viewBox View Box, see QSvgRenderer::viewBox \param rect Traget rectangle on the paint device */ void QwtPlotSvgItem::render(QPainter *painter, const QwtDoubleRect &viewBox, const QRect &rect) const { if ( !viewBox.isValid() ) return; #if QT_VERSION >= 0x040200 d_data->renderer.setViewBox(viewBox); d_data->renderer.render(painter, rect); return; #else #if QT_VERSION >= 0x040100 const QSize paintSize(painter->window().width(), painter->window().height()); if ( !paintSize.isValid() ) return; const double xRatio = paintSize.width() / viewBox.width(); const double yRatio = paintSize.height() / viewBox.height(); const double dx = rect.left() / xRatio + 1.0; const double dy = rect.top() / yRatio + 1.0; const double mx = double(rect.width()) / paintSize.width(); const double my = double(rect.height()) / paintSize.height(); painter->save(); painter->translate(dx, dy); painter->scale(mx, my); d_data->renderer.setViewBox(viewBox.toRect()); d_data->renderer.render(painter); painter->restore(); #else const double mx = rect.width() / viewBox.width(); const double my = rect.height() / viewBox.height(); const double dx = rect.x() - mx * viewBox.x(); const double dy = rect.y() - my * viewBox.y(); painter->save(); painter->translate(dx, dy); painter->scale(mx, my); d_data->picture.play(painter); painter->restore(); #endif // < 0x040100 #endif // < 0x040200 } /*! Calculate the viewBox from an rect and boundingRect(). \param rect Rectangle in scale coordinates \return viewBox View Box, see QSvgRenderer::viewBox */ QwtDoubleRect QwtPlotSvgItem::viewBox(const QwtDoubleRect &rect) const { #if QT_VERSION >= 0x040100 const QSize sz = d_data->renderer.defaultSize(); #else #if QT_VERSION > 0x040000 const QSize sz(d_data->picture.width(), d_data->picture.height()); #else QPaintDeviceMetrics metrics(&d_data->picture); const QSize sz(metrics.width(), metrics.height()); #endif #endif const QwtDoubleRect br = boundingRect(); if ( !rect.isValid() || !br.isValid() || sz.isNull() ) return QwtDoubleRect(); QwtScaleMap xMap; xMap.setScaleInterval(br.left(), br.right()); xMap.setPaintInterval(0, sz.width()); QwtScaleMap yMap; yMap.setScaleInterval(br.top(), br.bottom()); yMap.setPaintInterval(sz.height(), 0); const double x1 = xMap.xTransform(rect.left()); const double x2 = xMap.xTransform(rect.right()); const double y1 = yMap.xTransform(rect.bottom()); const double y2 = yMap.xTransform(rect.top()); return QwtDoubleRect(x1, y1, x2 - x1, y2 - y1); } qwt5-5.2.3/src/qwt_interval_data.h0000644000175000017500000000410512052741123016424 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_INTERVAL_DATA_H #define QWT_INTERVAL_DATA_H 1 #include "qwt_global.h" #include "qwt_math.h" #include "qwt_array.h" #include "qwt_double_interval.h" #include "qwt_double_rect.h" #if defined(_MSC_VER) && (_MSC_VER > 1310) #include #endif #if defined(QWT_TEMPLATEDLL) // MOC_SKIP_BEGIN template class QWT_EXPORT QwtArray; template class QWT_EXPORT QwtArray; // MOC_SKIP_END #endif /*! \brief Series of samples of a value and an interval QwtIntervalData is a series of samples of a value and an interval. F.e. error bars are built from samples [x, y1-y2], while a histogram might consist of [x1-x2, y] samples. */ class QWT_EXPORT QwtIntervalData { public: QwtIntervalData(); QwtIntervalData(const QwtArray &, const QwtArray &); ~QwtIntervalData(); void setData(const QwtArray &, const QwtArray &); size_t size() const; const QwtDoubleInterval &interval(size_t i) const; double value(size_t i) const; QwtDoubleRect boundingRect() const; private: QwtArray d_intervals; QwtArray d_values; }; //! \return Number of samples inline size_t QwtIntervalData::size() const { return qwtMin(d_intervals.size(), d_values.size()); } /*! Interval of a sample \param i Sample index \return Interval \sa value(), size() */ inline const QwtDoubleInterval &QwtIntervalData::interval(size_t i) const { return d_intervals[int(i)]; } /*! Value of a sample \param i Sample index \return Value \sa interval(), size() */ inline double QwtIntervalData::value(size_t i) const { return d_values[int(i)]; } #endif qwt5-5.2.3/src/qwt_legend_item.cpp0000644000175000017500000003121212052741126016420 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #if QT_VERSION >= 0x040000 #include #include #endif #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_symbol.h" #include "qwt_legend_item.h" static const int ButtonFrame = 2; static const int Margin = 2; static QSize buttonShift(const QwtLegendItem *w) { #if QT_VERSION < 0x040000 const int ph = w->style().pixelMetric( QStyle::PM_ButtonShiftHorizontal, w); const int pv = w->style().pixelMetric( QStyle::PM_ButtonShiftVertical, w); #else QStyleOption option; option.init(w); const int ph = w->style()->pixelMetric( QStyle::PM_ButtonShiftHorizontal, &option, w); const int pv = w->style()->pixelMetric( QStyle::PM_ButtonShiftVertical, &option, w); #endif return QSize(ph, pv); } class QwtLegendItem::PrivateData { public: PrivateData(): itemMode(QwtLegend::ReadOnlyItem), isDown(false), identifierWidth(8), identifierMode(QwtLegendItem::ShowLine | QwtLegendItem::ShowText), curvePen(Qt::NoPen), spacing(Margin) { symbol = new QwtSymbol(); } ~PrivateData() { delete symbol; } QwtLegend::LegendItemMode itemMode; bool isDown; int identifierWidth; int identifierMode; QwtSymbol *symbol; QPen curvePen; int spacing; }; /*! \param parent Parent widget */ QwtLegendItem::QwtLegendItem(QWidget *parent): QwtTextLabel(parent) { d_data = new PrivateData; init(QwtText()); } /*! \param symbol Curve symbol \param curvePen Curve pen \param text Label text \param parent Parent widget */ QwtLegendItem::QwtLegendItem(const QwtSymbol &symbol, const QPen &curvePen, const QwtText &text, QWidget *parent): QwtTextLabel(parent) { d_data = new PrivateData; delete d_data->symbol; d_data->symbol = symbol.clone(); d_data->curvePen = curvePen; init(text); } void QwtLegendItem::init(const QwtText &text) { setMargin(Margin); setIndent(margin() + d_data->identifierWidth + 2 * d_data->spacing); setText(text); } //! Destructor QwtLegendItem::~QwtLegendItem() { delete d_data; d_data = NULL; } /*! Set the text to the legend item \param text Text label \sa QwtTextLabel::text() */ void QwtLegendItem::setText(const QwtText &text) { const int flags = Qt::AlignLeft | Qt::AlignVCenter #if QT_VERSION < 0x040000 | Qt::WordBreak | Qt::ExpandTabs; #else | Qt::TextExpandTabs | Qt::TextWordWrap; #endif QwtText txt = text; txt.setRenderFlags(flags); QwtTextLabel::setText(txt); } /*! Set the item mode The default is QwtLegend::ReadOnlyItem \param mode Item mode \sa itemMode() */ void QwtLegendItem::setItemMode(QwtLegend::LegendItemMode mode) { d_data->itemMode = mode; d_data->isDown = false; #if QT_VERSION >= 0x040000 using namespace Qt; #endif setFocusPolicy(mode != QwtLegend::ReadOnlyItem ? TabFocus : NoFocus); setMargin(ButtonFrame + Margin); updateGeometry(); } /*! Return the item mode \sa setItemMode() */ QwtLegend::LegendItemMode QwtLegendItem::itemMode() const { return d_data->itemMode; } /*! Set identifier mode. Default is ShowLine | ShowText. \param mode Or'd values of IdentifierMode \sa identifierMode() */ void QwtLegendItem::setIdentifierMode(int mode) { if ( mode != d_data->identifierMode ) { d_data->identifierMode = mode; update(); } } /*! Or'd values of IdentifierMode. \sa setIdentifierMode(), IdentifierMode */ int QwtLegendItem::identifierMode() const { return d_data->identifierMode; } /*! Set the width for the identifier Default is 8 pixels \param width New width \sa identifierMode(), identifierWidth() */ void QwtLegendItem::setIdentifierWidth(int width) { width = qwtMax(width, 0); if ( width != d_data->identifierWidth ) { d_data->identifierWidth = width; setIndent(margin() + d_data->identifierWidth + 2 * d_data->spacing); } } /*! Return the width of the identifier \sa setIdentifierWidth() */ int QwtLegendItem::identifierWidth() const { return d_data->identifierWidth; } /*! Change the spacing \param spacing Spacing \sa spacing(), identifierWidth(), QwtTextLabel::margin() */ void QwtLegendItem::setSpacing(int spacing) { spacing = qwtMax(spacing, 0); if ( spacing != d_data->spacing ) { d_data->spacing = spacing; setIndent(margin() + d_data->identifierWidth + 2 * d_data->spacing); } } /*! Return the spacing \sa setSpacing(), identifierWidth(), QwtTextLabel::margin() */ int QwtLegendItem::spacing() const { return d_data->spacing; } /*! Set curve symbol. \param symbol Symbol \sa symbol() */ void QwtLegendItem::setSymbol(const QwtSymbol &symbol) { delete d_data->symbol; d_data->symbol = symbol.clone(); update(); } /*! \return The curve symbol. \sa setSymbol() */ const QwtSymbol& QwtLegendItem::symbol() const { return *d_data->symbol; } /*! Set curve pen. \param pen Curve pen \sa curvePen() */ void QwtLegendItem::setCurvePen(const QPen &pen) { if ( pen != d_data->curvePen ) { d_data->curvePen = pen; update(); } } /*! \return The curve pen. \sa setCurvePen() */ const QPen& QwtLegendItem::curvePen() const { return d_data->curvePen; } /*! Paint the identifier to a given rect. \param painter Painter \param rect Rect where to paint */ void QwtLegendItem::drawIdentifier( QPainter *painter, const QRect &rect) const { if ( rect.isEmpty() ) return; if ( (d_data->identifierMode & ShowLine ) && (d_data->curvePen.style() != Qt::NoPen) ) { painter->save(); painter->setPen(QwtPainter::scaledPen(d_data->curvePen)); QwtPainter::drawLine(painter, rect.left(), rect.center().y(), rect.right(), rect.center().y()); painter->restore(); } if ( (d_data->identifierMode & ShowSymbol) && (d_data->symbol->style() != QwtSymbol::NoSymbol) ) { QSize symbolSize = QwtPainter::metricsMap().screenToLayout(d_data->symbol->size()); // scale the symbol size down if it doesn't fit into rect. if ( rect.width() < symbolSize.width() ) { const double ratio = double(symbolSize.width()) / double(rect.width()); symbolSize.setWidth(rect.width()); symbolSize.setHeight(qRound(symbolSize.height() / ratio)); } if ( rect.height() < symbolSize.height() ) { const double ratio = double(symbolSize.width()) / double(rect.width()); symbolSize.setHeight(rect.height()); symbolSize.setWidth(qRound(symbolSize.width() / ratio)); } QRect symbolRect; symbolRect.setSize(symbolSize); symbolRect.moveCenter(rect.center()); painter->save(); painter->setBrush(d_data->symbol->brush()); painter->setPen(QwtPainter::scaledPen(d_data->symbol->pen())); d_data->symbol->draw(painter, symbolRect); painter->restore(); } } /*! Draw the legend item to a given rect. \param painter Painter \param rect Rect where to paint the button */ void QwtLegendItem::drawItem(QPainter *painter, const QRect &rect) const { painter->save(); const QwtMetricsMap &map = QwtPainter::metricsMap(); const int m = map.screenToLayoutX(margin()); const int spacing = map.screenToLayoutX(d_data->spacing); const int identifierWidth = map.screenToLayoutX(d_data->identifierWidth); const QRect identifierRect(rect.x() + m, rect.y(), identifierWidth, rect.height()); drawIdentifier(painter, identifierRect); // Label QRect titleRect = rect; titleRect.setX(identifierRect.right() + 2 * spacing); text().draw(painter, titleRect); painter->restore(); } //! Paint event void QwtLegendItem::paintEvent(QPaintEvent *e) { const QRect cr = contentsRect(); QPainter painter(this); painter.setClipRegion(e->region()); if ( d_data->isDown ) { qDrawWinButton(&painter, 0, 0, width(), height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true); } painter.save(); if ( d_data->isDown ) { const QSize shiftSize = buttonShift(this); painter.translate(shiftSize.width(), shiftSize.height()); } painter.setClipRect(cr); drawContents(&painter); QRect rect = cr; rect.setX(rect.x() + margin()); if ( d_data->itemMode != QwtLegend::ReadOnlyItem ) rect.setX(rect.x() + ButtonFrame); rect.setWidth(d_data->identifierWidth); drawIdentifier(&painter, rect); painter.restore(); } //! Handle mouse press events void QwtLegendItem::mousePressEvent(QMouseEvent *e) { if ( e->button() == Qt::LeftButton ) { switch(d_data->itemMode) { case QwtLegend::ClickableItem: { setDown(true); return; } case QwtLegend::CheckableItem: { setDown(!isDown()); return; } default:; } } QwtTextLabel::mousePressEvent(e); } //! Handle mouse release events void QwtLegendItem::mouseReleaseEvent(QMouseEvent *e) { if ( e->button() == Qt::LeftButton ) { switch(d_data->itemMode) { case QwtLegend::ClickableItem: { setDown(false); return; } case QwtLegend::CheckableItem: { return; // do nothing, but accept } default:; } } QwtTextLabel::mouseReleaseEvent(e); } //! Handle key press events void QwtLegendItem::keyPressEvent(QKeyEvent *e) { if ( e->key() == Qt::Key_Space ) { switch(d_data->itemMode) { case QwtLegend::ClickableItem: { if ( !e->isAutoRepeat() ) setDown(true); return; } case QwtLegend::CheckableItem: { if ( !e->isAutoRepeat() ) setDown(!isDown()); return; } default:; } } QwtTextLabel::keyPressEvent(e); } //! Handle key release events void QwtLegendItem::keyReleaseEvent(QKeyEvent *e) { if ( e->key() == Qt::Key_Space ) { switch(d_data->itemMode) { case QwtLegend::ClickableItem: { if ( !e->isAutoRepeat() ) setDown(false); return; } case QwtLegend::CheckableItem: { return; // do nothing, but accept } default:; } } QwtTextLabel::keyReleaseEvent(e); } /*! Check/Uncheck a the item \param on check/uncheck \sa setItemMode() */ void QwtLegendItem::setChecked(bool on) { if ( d_data->itemMode == QwtLegend::CheckableItem ) { const bool isBlocked = signalsBlocked(); blockSignals(true); setDown(on); blockSignals(isBlocked); } } //! Return true, if the item is checked bool QwtLegendItem::isChecked() const { return d_data->itemMode == QwtLegend::CheckableItem && isDown(); } //! Set the item being down void QwtLegendItem::setDown(bool down) { if ( down == d_data->isDown ) return; d_data->isDown = down; update(); if ( d_data->itemMode == QwtLegend::ClickableItem ) { if ( d_data->isDown ) emit pressed(); else { emit released(); emit clicked(); } } if ( d_data->itemMode == QwtLegend::CheckableItem ) emit checked(d_data->isDown); } //! Return true, if the item is down bool QwtLegendItem::isDown() const { return d_data->isDown; } //! Return a size hint QSize QwtLegendItem::sizeHint() const { QSize sz = QwtTextLabel::sizeHint(); if ( d_data->itemMode != QwtLegend::ReadOnlyItem ) sz += buttonShift(this); return sz; } void QwtLegendItem::drawText(QPainter *painter, const QRect &rect) { QwtTextLabel::drawText(painter, rect); } qwt5-5.2.3/src/qwt_plot_curve.h0000644000175000017500000002205412052741123015774 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_CURVE_H #define QWT_PLOT_CURVE_H #include #include #include "qwt_global.h" #include "qwt_plot_item.h" #include "qwt_text.h" #include "qwt_polygon.h" #include "qwt_data.h" class QPainter; class QwtScaleMap; class QwtSymbol; class QwtCurveFitter; /*! \brief A plot item, that represents a series of points A curve is the representation of a series of points in the x-y plane. It supports different display styles, interpolation ( f.e. spline ) and symbols. \par Usage
a) Assign curve properties
When a curve is created, it is configured to draw black solid lines with in Lines style and no symbols. You can change this by calling setPen(), setStyle() and setSymbol().
b) Connect/Assign data.
QwtPlotCurve gets its points using a QwtData object offering a bridge to the real storage of the points ( like QAbstractItemModel ). There are several convenience classes derived from QwtData, that also store the points inside ( like QStandardItemModel ). QwtPlotCurve also offers a couple of variations of setData(), that build QwtData objects from arrays internally.
c) Attach the curve to a plot
See QwtPlotItem::attach()
\par Example: see examples/bode \sa QwtPlot, QwtData, QwtSymbol, QwtScaleMap */ class QWT_EXPORT QwtPlotCurve: public QwtPlotItem { public: /*! Curve type. - Yfx\n Draws y as a function of x (the default). The baseline is interpreted as a horizontal line with y = baseline(). - Xfy\n Draws x as a function of y. The baseline is interpreted as a vertical line with x = baseline(). The baseline is used for aligning the sticks, or filling the curve with a brush. \sa setCurveType(), curveType(), baseline() brush() */ enum CurveType { Yfx, Xfy }; /*! Curve styles. - NoCurve\n Don't draw a curve. Note: This doesn't affect the symbols. - Lines\n Connect the points with straight lines. The lines might be interpolated depending on the 'Fitted' attribute. Curve fitting can be configured using setCurveFitter(). - Sticks\n Draw vertical(Yfx) or horizontal(Xfy) sticks from a baseline which is defined by setBaseline(). - Steps\n Connect the points with a step function. The step function is drawn from the left to the right or vice versa, depending on the 'Inverted' attribute. - Dots\n Draw dots at the locations of the data points. Note: This is different from a dotted line (see setPen()), and faster as a curve in NoStyle style and a symbol painting a point. - UserCurve\n Styles >= UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types. \sa setStyle(), style() */ enum CurveStyle { NoCurve, Lines, Sticks, Steps, Dots, UserCurve = 100 }; /*! Attribute for drawing the curve - Fitted ( in combination with the Lines QwtPlotCurve::CurveStyle only )\n A QwtCurveFitter tries to interpolate/smooth the curve, before it is painted. Note that curve fitting requires temorary memory for calculating coefficients and additional points. If painting in Fitted mode is slow it might be better to fit the points, before they are passed to QwtPlotCurve. - Inverted\n For Steps only. Draws a step function from the right to the left. \sa setCurveAttribute(), testCurveAttribute(), curveFitter() */ enum CurveAttribute { Inverted = 1, Fitted = 2 }; /*! Attributes to modify the drawing algorithm. - PaintFiltered\n Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area. Might have a notable impact on curves with many close points. Only a couple of very basic filtering algos are implemented. - ClipPolygons\n Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance ( especially on Windows ). The default is, that no paint attributes are enabled. \sa setPaintAttribute(), testPaintAttribute() */ enum PaintAttribute { PaintFiltered = 1, ClipPolygons = 2 }; explicit QwtPlotCurve(); explicit QwtPlotCurve(const QwtText &title); explicit QwtPlotCurve(const QString &title); virtual ~QwtPlotCurve(); virtual int rtti() const; void setCurveType(CurveType); CurveType curveType() const; void setPaintAttribute(PaintAttribute, bool on = true); bool testPaintAttribute(PaintAttribute) const; void setRawData(const double *x, const double *y, int size); void setData(const double *xData, const double *yData, int size); void setData(const QwtArray &xData, const QwtArray &yData); #if QT_VERSION < 0x040000 void setData(const QwtArray &data); #else void setData(const QPolygonF &data); #endif void setData(const QwtData &data); int closestPoint(const QPoint &pos, double *dist = NULL) const; QwtData &data(); const QwtData &data() const; int dataSize() const; double x(int i) const; double y(int i) const; virtual QwtDoubleRect boundingRect() const; double minXValue() const; double maxXValue() const; double minYValue() const; double maxYValue() const; void setCurveAttribute(CurveAttribute, bool on = true); bool testCurveAttribute(CurveAttribute) const; void setPen(const QPen &); const QPen &pen() const; void setBrush(const QBrush &); const QBrush &brush() const; void setBaseline(double ref); double baseline() const; void setStyle(CurveStyle style); CurveStyle style() const; void setSymbol(const QwtSymbol &s); const QwtSymbol& symbol() const; void setCurveFitter(QwtCurveFitter *); QwtCurveFitter *curveFitter() const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void draw(int from, int to) const; virtual void updateLegend(QwtLegend *) const; protected: void init(); virtual void drawCurve(QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; virtual void drawSymbols(QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void drawLines(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void drawSticks(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void drawDots(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void drawSteps(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const; void fillCurve(QPainter *, const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const; void closePolyline(const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const; private: QwtData *d_xy; class PrivateData; PrivateData *d_data; }; //! \return the the curve data inline QwtData &QwtPlotCurve::data() { return *d_xy; } //! \return the the curve data inline const QwtData &QwtPlotCurve::data() const { return *d_xy; } /*! \param i index \return x-value at position i */ inline double QwtPlotCurve::x(int i) const { return d_xy->x(i); } /*! \param i index \return y-value at position i */ inline double QwtPlotCurve::y(int i) const { return d_xy->y(i); } //! boundingRect().left() inline double QwtPlotCurve::minXValue() const { return boundingRect().left(); } //! boundingRect().right() inline double QwtPlotCurve::maxXValue() const { return boundingRect().right(); } //! boundingRect().top() inline double QwtPlotCurve::minYValue() const { return boundingRect().top(); } //! boundingRect().bottom() inline double QwtPlotCurve::maxYValue() const { return boundingRect().bottom(); } #endif qwt5-5.2.3/src/qwt_layout_metrics.h0000644000175000017500000001122312052741123016651 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_LAYOUT_METRICS_H #define QWT_LAYOUT_METRICS_H #include #include #include "qwt_polygon.h" #include "qwt_global.h" class QPainter; class QString; class QFontMetrics; #if QT_VERSION < 0x040000 class QWMatrix; #else class QMatrix; #endif class QPaintDevice; /*! \brief A Map to translate between layout, screen and paint device metrics Qt3 supports painting in integer coordinates only. Therefore it is not possible to scale the layout in screen coordinates to layouts in higher resolutions ( f.e printing ) without losing the higher precision. QwtMetricsMap is used to incorporate the various widget attributes ( always in screen resolution ) into the layout/printing code of QwtPlot. Qt4 is able to paint floating point based coordinates, what makes it possible always to render in screen coordinates ( with a common scale factor ). QwtMetricsMap will be obsolete as soon as Qt3 support has been dropped ( Qwt 6.x ). */ class QWT_EXPORT QwtMetricsMap { public: QwtMetricsMap(); bool isIdentity() const; void setMetrics(const QPaintDevice *layoutMetrics, const QPaintDevice *deviceMetrics); int layoutToDeviceX(int x) const; int deviceToLayoutX(int x) const; int screenToLayoutX(int x) const; int layoutToScreenX(int x) const; int layoutToDeviceY(int y) const; int deviceToLayoutY(int y) const; int screenToLayoutY(int y) const; int layoutToScreenY(int y) const; QPoint layoutToDevice(const QPoint &, const QPainter * = NULL) const; QPoint deviceToLayout(const QPoint &, const QPainter * = NULL) const; QPoint screenToLayout(const QPoint &) const; QPoint layoutToScreen(const QPoint &point) const; QSize layoutToDevice(const QSize &) const; QSize deviceToLayout(const QSize &) const; QSize screenToLayout(const QSize &) const; QSize layoutToScreen(const QSize &) const; QRect layoutToDevice(const QRect &, const QPainter * = NULL) const; QRect deviceToLayout(const QRect &, const QPainter * = NULL) const; QRect screenToLayout(const QRect &) const; QRect layoutToScreen(const QRect &) const; QwtPolygon layoutToDevice(const QwtPolygon &, const QPainter * = NULL) const; QwtPolygon deviceToLayout(const QwtPolygon &, const QPainter * = NULL) const; #if QT_VERSION < 0x040000 static QwtPolygon translate(const QWMatrix &, const QwtPolygon &); static QRect translate(const QWMatrix &, const QRect &); #else static QwtPolygon translate(const QMatrix &, const QwtPolygon &); static QRect translate(const QMatrix &, const QRect &); #endif private: double d_screenToLayoutX; double d_screenToLayoutY; double d_deviceToLayoutX; double d_deviceToLayoutY; }; inline bool QwtMetricsMap::isIdentity() const { return d_deviceToLayoutX == 1.0 && d_deviceToLayoutY == 1.0; } inline int QwtMetricsMap::layoutToDeviceX(int x) const { return qRound(x / d_deviceToLayoutX); } inline int QwtMetricsMap::deviceToLayoutX(int x) const { return qRound(x * d_deviceToLayoutX); } inline int QwtMetricsMap::screenToLayoutX(int x) const { return qRound(x * d_screenToLayoutX); } inline int QwtMetricsMap::layoutToScreenX(int x) const { return qRound(x / d_screenToLayoutX); } inline int QwtMetricsMap::layoutToDeviceY(int y) const { return qRound(y / d_deviceToLayoutY); } inline int QwtMetricsMap::deviceToLayoutY(int y) const { return qRound(y * d_deviceToLayoutY); } inline int QwtMetricsMap::screenToLayoutY(int y) const { return qRound(y * d_screenToLayoutY); } inline int QwtMetricsMap::layoutToScreenY(int y) const { return qRound(y / d_screenToLayoutY); } inline QSize QwtMetricsMap::layoutToDevice(const QSize &size) const { return QSize(layoutToDeviceX(size.width()), layoutToDeviceY(size.height())); } inline QSize QwtMetricsMap::deviceToLayout(const QSize &size) const { return QSize(deviceToLayoutX(size.width()), deviceToLayoutY(size.height())); } inline QSize QwtMetricsMap::screenToLayout(const QSize &size) const { return QSize(screenToLayoutX(size.width()), screenToLayoutY(size.height())); } inline QSize QwtMetricsMap::layoutToScreen(const QSize &size) const { return QSize(layoutToScreenX(size.width()), layoutToScreenY(size.height())); } #endif qwt5-5.2.3/src/qwt_abstract_scale.cpp0000644000175000017500000001541212052741126017122 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_scale_engine.h" #include "qwt_scale_draw.h" #include "qwt_scale_div.h" #include "qwt_scale_map.h" #include "qwt_double_interval.h" #include "qwt_abstract_scale.h" class QwtAbstractScale::PrivateData { public: PrivateData(): maxMajor(5), maxMinor(3), stepSize(0.0), autoScale(true) { scaleEngine = new QwtLinearScaleEngine; scaleDraw = new QwtScaleDraw(); } ~PrivateData() { delete scaleEngine; delete scaleDraw; } QwtScaleEngine *scaleEngine; QwtAbstractScaleDraw *scaleDraw; int maxMajor; int maxMinor; double stepSize; bool autoScale; }; /*! Constructor Creates a default QwtScaleDraw and a QwtLinearScaleEngine. Autoscaling is enabled, and the stepSize is initialized by 0.0. */ QwtAbstractScale::QwtAbstractScale() { d_data = new PrivateData; rescale(0.0, 100.0); } //! Destructor QwtAbstractScale::~QwtAbstractScale() { delete d_data; } /*! \brief Specify a scale. Disable autoscaling and define a scale by an interval and a step size \param vmin lower limit of the scale interval \param vmax upper limit of the scale interval \param stepSize major step size \sa setAutoScale() */ void QwtAbstractScale::setScale(double vmin, double vmax, double stepSize) { d_data->autoScale = false; d_data->stepSize = stepSize; rescale(vmin, vmax, stepSize); } /*! \brief Specify a scale. Disable autoscaling and define a scale by an interval and a step size \param interval Interval \param stepSize major step size \sa setAutoScale() */ void QwtAbstractScale::setScale(const QwtDoubleInterval &interval, double stepSize) { setScale(interval.minValue(), interval.maxValue(), stepSize); } /*! \brief Specify a scale. Disable autoscaling and define a scale by a scale division \param scaleDiv Scale division \sa setAutoScale() */ void QwtAbstractScale::setScale(const QwtScaleDiv &scaleDiv) { d_data->autoScale = false; if (scaleDiv != d_data->scaleDraw->scaleDiv()) { d_data->scaleDraw->setScaleDiv(scaleDiv); scaleChange(); } } /*! Recalculate the scale division and update the scale draw. \param vmin Lower limit of the scale interval \param vmax Upper limit of the scale interval \param stepSize Major step size \sa scaleChange() */ void QwtAbstractScale::rescale(double vmin, double vmax, double stepSize) { const QwtScaleDiv scaleDiv = d_data->scaleEngine->divideScale( vmin, vmax, d_data->maxMajor, d_data->maxMinor, stepSize); if ( scaleDiv != d_data->scaleDraw->scaleDiv() ) { d_data->scaleDraw->setTransformation( d_data->scaleEngine->transformation()); d_data->scaleDraw->setScaleDiv(scaleDiv); scaleChange(); } } /*! \brief Advise the widget to control the scale range internally. Autoscaling is on by default. \sa setScale(), autoScale() */ void QwtAbstractScale::setAutoScale() { if (!d_data->autoScale) { d_data->autoScale = true; scaleChange(); } } /*! \return \c true if autoscaling is enabled */ bool QwtAbstractScale::autoScale() const { return d_data->autoScale; } /*! \brief Set the maximum number of major tick intervals. The scale's major ticks are calculated automatically such that the number of major intervals does not exceed ticks. The default value is 5. \param ticks maximal number of major ticks. \sa QwtAbstractScaleDraw */ void QwtAbstractScale::setScaleMaxMajor(int ticks) { if (ticks != d_data->maxMajor) { d_data->maxMajor = ticks; updateScaleDraw(); } } /*! \brief Set the maximum number of minor tick intervals The scale's minor ticks are calculated automatically such that the number of minor intervals does not exceed ticks. The default value is 3. \param ticks \sa QwtAbstractScaleDraw */ void QwtAbstractScale::setScaleMaxMinor(int ticks) { if ( ticks != d_data->maxMinor) { d_data->maxMinor = ticks; updateScaleDraw(); } } /*! \return Max. number of minor tick intervals The default value is 3. */ int QwtAbstractScale::scaleMaxMinor() const { return d_data->maxMinor; } /*! \return Max. number of major tick intervals The default value is 5. */ int QwtAbstractScale::scaleMaxMajor() const { return d_data->maxMajor; } /*! \brief Set a scale draw scaleDraw has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setAbstractScaleDraw. */ void QwtAbstractScale::setAbstractScaleDraw(QwtAbstractScaleDraw *scaleDraw) { if ( scaleDraw == NULL || scaleDraw == d_data->scaleDraw ) return; if ( d_data->scaleDraw != NULL ) scaleDraw->setScaleDiv(d_data->scaleDraw->scaleDiv()); delete d_data->scaleDraw; d_data->scaleDraw = scaleDraw; } /*! \return Scale draw \sa setAbstractScaleDraw() */ QwtAbstractScaleDraw *QwtAbstractScale::abstractScaleDraw() { return d_data->scaleDraw; } /*! \return Scale draw \sa setAbstractScaleDraw() */ const QwtAbstractScaleDraw *QwtAbstractScale::abstractScaleDraw() const { return d_data->scaleDraw; } void QwtAbstractScale::updateScaleDraw() { rescale( d_data->scaleDraw->scaleDiv().lowerBound(), d_data->scaleDraw->scaleDiv().upperBound(), d_data->stepSize); } /*! \brief Set a scale engine The scale engine is responsible for calculating the scale division, and in case of auto scaling how to align the scale. scaleEngine has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setScaleEngine. */ void QwtAbstractScale::setScaleEngine(QwtScaleEngine *scaleEngine) { if ( scaleEngine != NULL && scaleEngine != d_data->scaleEngine ) { delete d_data->scaleEngine; d_data->scaleEngine = scaleEngine; } } /*! \return Scale engine \sa setScaleEngine() */ const QwtScaleEngine *QwtAbstractScale::scaleEngine() const { return d_data->scaleEngine; } /*! \return Scale engine \sa setScaleEngine() */ QwtScaleEngine *QwtAbstractScale::scaleEngine() { return d_data->scaleEngine; } /*! \brief Notify changed scale Dummy empty implementation, intended to be overloaded by derived classes */ void QwtAbstractScale::scaleChange() { } /*! \return abstractScaleDraw()->scaleMap() */ const QwtScaleMap &QwtAbstractScale::scaleMap() const { return d_data->scaleDraw->scaleMap(); } qwt5-5.2.3/src/qwt_plot_grid.cpp0000644000175000017500000001750712052741126016142 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include "qwt_painter.h" #include "qwt_text.h" #include "qwt_scale_map.h" #include "qwt_scale_div.h" #include "qwt_plot_grid.h" class QwtPlotGrid::PrivateData { public: PrivateData(): xEnabled(true), yEnabled(true), xMinEnabled(false), yMinEnabled(false) { } bool xEnabled; bool yEnabled; bool xMinEnabled; bool yMinEnabled; QwtScaleDiv xScaleDiv; QwtScaleDiv yScaleDiv; QPen majPen; QPen minPen; }; //! Enables major grid, disables minor grid QwtPlotGrid::QwtPlotGrid(): QwtPlotItem(QwtText("Grid")) { d_data = new PrivateData; setZ(10.0); } //! Destructor QwtPlotGrid::~QwtPlotGrid() { delete d_data; } //! \return QwtPlotItem::Rtti_PlotGrid int QwtPlotGrid::rtti() const { return QwtPlotItem::Rtti_PlotGrid; } /*! \brief Enable or disable vertical gridlines \param tf Enable (true) or disable \sa Minor gridlines can be enabled or disabled with enableXMin() */ void QwtPlotGrid::enableX(bool tf) { if ( d_data->xEnabled != tf ) { d_data->xEnabled = tf; itemChanged(); } } /*! \brief Enable or disable horizontal gridlines \param tf Enable (true) or disable \sa Minor gridlines can be enabled or disabled with enableYMin() */ void QwtPlotGrid::enableY(bool tf) { if ( d_data->yEnabled != tf ) { d_data->yEnabled = tf; itemChanged(); } } /*! \brief Enable or disable minor vertical gridlines. \param tf Enable (true) or disable \sa enableX() */ void QwtPlotGrid::enableXMin(bool tf) { if ( d_data->xMinEnabled != tf ) { d_data->xMinEnabled = tf; itemChanged(); } } /*! \brief Enable or disable minor horizontal gridlines \param tf Enable (true) or disable \sa enableY() */ void QwtPlotGrid::enableYMin(bool tf) { if ( d_data->yMinEnabled != tf ) { d_data->yMinEnabled = tf; itemChanged(); } } /*! Assign an x axis scale division \param scaleDiv Scale division */ void QwtPlotGrid::setXDiv(const QwtScaleDiv &scaleDiv) { if ( d_data->xScaleDiv != scaleDiv ) { d_data->xScaleDiv = scaleDiv; itemChanged(); } } /*! Assign a y axis division \param scaleDiv Scale division */ void QwtPlotGrid::setYDiv(const QwtScaleDiv &scaleDiv) { if ( d_data->yScaleDiv != scaleDiv ) { d_data->yScaleDiv = scaleDiv; itemChanged(); } } /*! Assign a pen for both major and minor gridlines The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen Pen \sa setMajPen(), setMinPen(), QwtPainter::scaledPen() */ void QwtPlotGrid::setPen(const QPen &pen) { if ( d_data->majPen != pen || d_data->minPen != pen ) { d_data->majPen = pen; d_data->minPen = pen; itemChanged(); } } /*! Assign a pen for the major gridlines The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen Pen \sa majPen(), setMinPen(), setPen(), QwtPainter::scaledPen() */ void QwtPlotGrid::setMajPen(const QPen &pen) { if ( d_data->majPen != pen ) { d_data->majPen = pen; itemChanged(); } } /*! Assign a pen for the minor gridlines The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen Pen \sa minPen(), setMajPen(), setPen(), QwtPainter::scaledPen() */ void QwtPlotGrid::setMinPen(const QPen &pen) { if ( d_data->minPen != pen ) { d_data->minPen = pen; itemChanged(); } } /*! \brief Draw the grid The grid is drawn into the bounding rectangle such that gridlines begin and end at the rectangle's borders. The X and Y maps are used to map the scale divisions into the drawing region screen. \param painter Painter \param xMap X axis map \param yMap Y axis \param canvasRect Contents rect of the plot canvas */ void QwtPlotGrid::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { // draw minor gridlines painter->setPen(QwtPainter::scaledPen(d_data->minPen)); if (d_data->xEnabled && d_data->xMinEnabled) { drawLines(painter, canvasRect, Qt::Vertical, xMap, d_data->xScaleDiv.ticks(QwtScaleDiv::MinorTick)); drawLines(painter, canvasRect, Qt::Vertical, xMap, d_data->xScaleDiv.ticks(QwtScaleDiv::MediumTick)); } if (d_data->yEnabled && d_data->yMinEnabled) { drawLines(painter, canvasRect, Qt::Horizontal, yMap, d_data->yScaleDiv.ticks(QwtScaleDiv::MinorTick)); drawLines(painter, canvasRect, Qt::Horizontal, yMap, d_data->yScaleDiv.ticks(QwtScaleDiv::MediumTick)); } // draw major gridlines painter->setPen(QwtPainter::scaledPen(d_data->majPen)); if (d_data->xEnabled) { drawLines(painter, canvasRect, Qt::Vertical, xMap, d_data->xScaleDiv.ticks(QwtScaleDiv::MajorTick)); } if (d_data->yEnabled) { drawLines(painter, canvasRect, Qt::Horizontal, yMap, d_data->yScaleDiv.ticks(QwtScaleDiv::MajorTick)); } } void QwtPlotGrid::drawLines(QPainter *painter, const QRect &canvasRect, Qt::Orientation orientation, const QwtScaleMap &scaleMap, const QwtValueList &values) const { const int x1 = canvasRect.left(); const int x2 = canvasRect.right(); const int y1 = canvasRect.top(); const int y2 = canvasRect.bottom(); for (uint i = 0; i < (uint)values.count(); i++) { const int value = scaleMap.transform(values[i]); if ( orientation == Qt::Horizontal ) { if ((value >= y1) && (value <= y2)) QwtPainter::drawLine(painter, x1, value, x2, value); } else { if ((value >= x1) && (value <= x2)) QwtPainter::drawLine(painter, value, y1, value, y2); } } } /*! \return the pen for the major gridlines \sa setMajPen(), setMinPen(), setPen() */ const QPen &QwtPlotGrid::majPen() const { return d_data->majPen; } /*! \return the pen for the minor gridlines \sa setMinPen(), setMajPen(), setPen() */ const QPen &QwtPlotGrid::minPen() const { return d_data->minPen; } /*! \return true if vertical gridlines are enabled \sa enableX() */ bool QwtPlotGrid::xEnabled() const { return d_data->xEnabled; } /*! \return true if minor vertical gridlines are enabled \sa enableXMin() */ bool QwtPlotGrid::xMinEnabled() const { return d_data->xMinEnabled; } /*! \return true if horizontal gridlines are enabled \sa enableY() */ bool QwtPlotGrid::yEnabled() const { return d_data->yEnabled; } /*! \return true if minor horizontal gridlines are enabled \sa enableYMin() */ bool QwtPlotGrid::yMinEnabled() const { return d_data->yMinEnabled; } /*! \return the scale division of the x axis */ const QwtScaleDiv &QwtPlotGrid::xScaleDiv() const { return d_data->xScaleDiv; } /*! \return the scale division of the y axis */ const QwtScaleDiv &QwtPlotGrid::yScaleDiv() const { return d_data->yScaleDiv; } /*! Update the grid to changes of the axes scale division \param xScaleDiv Scale division of the x-axis \param yScaleDiv Scale division of the y-axis \sa QwtPlot::updateAxes() */ void QwtPlotGrid::updateScaleDiv(const QwtScaleDiv& xScaleDiv, const QwtScaleDiv& yScaleDiv) { setXDiv(xScaleDiv); setYDiv(yScaleDiv); } qwt5-5.2.3/src/qwt_double_range.h0000644000175000017500000000433612052741123016243 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DOUBLE_RANGE_H #define QWT_DOUBLE_RANGE_H #include "qwt_global.h" /*! \brief A class which controls a value within an interval This class is useful as a base class or a member for sliders. It represents an interval of type double within which a value can be moved. The value can be either an arbitrary point inside the interval (see QwtDoubleRange::setValue), or it can be fitted into a step raster (see QwtDoubleRange::fitValue and QwtDoubleRange::incValue). As a special case, a QwtDoubleRange can be periodic, which means that a value outside the interval will be mapped to a value inside the interval when QwtDoubleRange::setValue(), QwtDoubleRange::fitValue(), QwtDoubleRange::incValue() or QwtDoubleRange::incPages() are called. */ class QWT_EXPORT QwtDoubleRange { public: QwtDoubleRange(); virtual ~QwtDoubleRange(); void setRange(double vmin, double vmax, double vstep = 0.0, int pagesize = 1); void setValid(bool); bool isValid() const; virtual void setValue(double); double value() const; void setPeriodic(bool tf); bool periodic() const; void setStep(double); double step() const; double maxValue() const; double minValue() const; int pageSize() const; virtual void incValue(int); virtual void incPages(int); virtual void fitValue(double); protected: double exactValue() const; double exactPrevValue() const; double prevValue() const; virtual void valueChange(); virtual void stepChange(); virtual void rangeChange(); private: void setNewValue(double x, bool align = false); double d_minValue; double d_maxValue; double d_step; int d_pageSize; bool d_isValid; double d_value; double d_exactValue; double d_exactPrevValue; double d_prevValue; bool d_periodic; }; #endif qwt5-5.2.3/src/qwt_wheel.cpp0000644000175000017500000004125112052741126015254 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_paint_buffer.h" #include "qwt_wheel.h" #define NUM_COLORS 30 class QwtWheel::PrivateData { public: PrivateData() { viewAngle = 175.0; totalAngle = 360.0; tickCnt = 10; intBorder = 2; borderWidth = 2; wheelWidth = 20; #if QT_VERSION < 0x040000 allocContext = 0; #endif }; QRect sliderRect; double viewAngle; double totalAngle; int tickCnt; int intBorder; int borderWidth; int wheelWidth; #if QT_VERSION < 0x040000 int allocContext; #endif QColor colors[NUM_COLORS]; }; //! Constructor QwtWheel::QwtWheel(QWidget *parent): QwtAbstractSlider(Qt::Horizontal, parent) { initWheel(); } #if QT_VERSION < 0x040000 QwtWheel::QwtWheel(QWidget *parent, const char *name): QwtAbstractSlider(Qt::Horizontal, parent) { setName(name); initWheel(); } #endif void QwtWheel::initWheel() { d_data = new PrivateData; #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif setUpdateTime(50); } //! Destructor QwtWheel::~QwtWheel() { #if QT_VERSION < 0x040000 if ( d_data->allocContext ) QColor::destroyAllocContext( d_data->allocContext ); #endif delete d_data; } //! Set up the color array for the background pixmap. void QwtWheel::setColorArray() { if ( !d_data->colors ) return; #if QT_VERSION < 0x040000 const QColor light = colorGroup().light(); const QColor dark = colorGroup().dark(); #else const QColor light = palette().color(QPalette::Light); const QColor dark = palette().color(QPalette::Dark); #endif if ( !d_data->colors[0].isValid() || d_data->colors[0] != light || d_data->colors[NUM_COLORS - 1] != dark ) { #if QT_VERSION < 0x040000 if ( d_data->allocContext ) QColor::destroyAllocContext( d_data->allocContext ); d_data->allocContext = QColor::enterAllocContext(); #endif d_data->colors[0] = light; d_data->colors[NUM_COLORS - 1] = dark; int dh, ds, dv, lh, ls, lv; #if QT_VERSION < 0x040000 d_data->colors[0].rgb(&lh, &ls, &lv); d_data->colors[NUM_COLORS - 1].rgb(&dh, &ds, &dv); #else d_data->colors[0].getRgb(&lh, &ls, &lv); d_data->colors[NUM_COLORS - 1].getRgb(&dh, &ds, &dv); #endif for ( int i = 1; i < NUM_COLORS - 1; ++i ) { const double factor = double(i) / double(NUM_COLORS); d_data->colors[i].setRgb( lh + int( double(dh - lh) * factor ), ls + int( double(ds - ls) * factor ), lv + int( double(dv - lv) * factor )); } #if QT_VERSION < 0x040000 QColor::leaveAllocContext(); #endif } } /*! \brief Adjust the number of grooves in the wheel's surface. The number of grooves is limited to 6 <= cnt <= 50. Values outside this range will be clipped. The default value is 10. \param cnt Number of grooves per 360 degrees \sa tickCnt() */ void QwtWheel::setTickCnt(int cnt) { d_data->tickCnt = qwtLim( cnt, 6, 50 ); update(); } /*! \return Number of grooves in the wheel's surface. \sa setTickCnt() */ int QwtWheel::tickCnt() const { return d_data->tickCnt; } /*! \return mass */ double QwtWheel::mass() const { return QwtAbstractSlider::mass(); } /*! \brief Set the internal border width of the wheel. The internal border must not be smaller than 1 and is limited in dependence on the wheel's size. Values outside the allowed range will be clipped. The internal border defaults to 2. \param w border width \sa internalBorder() */ void QwtWheel::setInternalBorder(int w) { const int d = qwtMin( width(), height() ) / 3; w = qwtMin( w, d ); d_data->intBorder = qwtMax( w, 1 ); layoutWheel(); } /*! \return Internal border width of the wheel. \sa setInternalBorder() */ int QwtWheel::internalBorder() const { return d_data->intBorder; } /*! Draw the Wheel's background gradient \param painter Painter \param r Bounding rectangle */ void QwtWheel::drawWheelBackground(QPainter *painter, const QRect &r ) { painter->save(); // // initialize pens // #if QT_VERSION < 0x040000 const QColor light = colorGroup().light(); const QColor dark = colorGroup().dark(); #else const QColor light = palette().color(QPalette::Light); const QColor dark = palette().color(QPalette::Dark); #endif QPen lightPen; lightPen.setColor(light); lightPen.setWidth(d_data->intBorder); QPen darkPen; darkPen.setColor(dark); darkPen.setWidth(d_data->intBorder); setColorArray(); // // initialize auxiliary variables // const int nFields = NUM_COLORS * 13 / 10; const int hiPos = nFields - NUM_COLORS + 1; if ( orientation() == Qt::Horizontal ) { const int rx = r.x(); int ry = r.y() + d_data->intBorder; const int rh = r.height() - 2* d_data->intBorder; const int rw = r.width(); // // draw shaded background // int x1 = rx; for (int i = 1; i < nFields; i++ ) { const int x2 = rx + (rw * i) / nFields; painter->fillRect(x1, ry, x2-x1 + 1 ,rh, d_data->colors[qwtAbs(i-hiPos)]); x1 = x2 + 1; } painter->fillRect(x1, ry, rw - (x1 - rx), rh, d_data->colors[NUM_COLORS - 1]); // // draw internal border // painter->setPen(lightPen); ry = r.y() + d_data->intBorder / 2; painter->drawLine(r.x(), ry, r.x() + r.width() , ry); painter->setPen(darkPen); ry = r.y() + r.height() - (d_data->intBorder - d_data->intBorder / 2); painter->drawLine(r.x(), ry , r.x() + r.width(), ry); } else // Qt::Vertical { int rx = r.x() + d_data->intBorder; const int ry = r.y(); const int rh = r.height(); const int rw = r.width() - 2 * d_data->intBorder; // // draw shaded background // int y1 = ry; for ( int i = 1; i < nFields; i++ ) { const int y2 = ry + (rh * i) / nFields; painter->fillRect(rx, y1, rw, y2-y1 + 1, d_data->colors[qwtAbs(i-hiPos)]); y1 = y2 + 1; } painter->fillRect(rx, y1, rw, rh - (y1 - ry), d_data->colors[NUM_COLORS - 1]); // // draw internal borders // painter->setPen(lightPen); rx = r.x() + d_data->intBorder / 2; painter->drawLine(rx, r.y(), rx, r.y() + r.height()); painter->setPen(darkPen); rx = r.x() + r.width() - (d_data->intBorder - d_data->intBorder / 2); painter->drawLine(rx, r.y(), rx , r.y() + r.height()); } painter->restore(); } /*! \brief Set the total angle which the wheel can be turned. One full turn of the wheel corresponds to an angle of 360 degrees. A total angle of n*360 degrees means that the wheel has to be turned n times around its axis to get from the minimum value to the maximum value. The default setting of the total angle is 360 degrees. \param angle total angle in degrees \sa totalAngle() */ void QwtWheel::setTotalAngle(double angle) { if ( angle < 0.0 ) angle = 0.0; d_data->totalAngle = angle; update(); } /*! \return Total angle which the wheel can be turned. \sa setTotalAngle() */ double QwtWheel::totalAngle() const { return d_data->totalAngle; } /*! \brief Set the wheel's orientation. \param o Orientation. Allowed values are Qt::Horizontal and Qt::Vertical. Defaults to Qt::Horizontal. \sa QwtAbstractSlider::orientation() */ void QwtWheel::setOrientation(Qt::Orientation o) { if ( orientation() == o ) return; #if QT_VERSION >= 0x040000 if ( !testAttribute(Qt::WA_WState_OwnSizePolicy) ) #else if ( !testWState( WState_OwnSizePolicy ) ) #endif { QSizePolicy sp = sizePolicy(); sp.transpose(); setSizePolicy(sp); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } QwtAbstractSlider::setOrientation(o); layoutWheel(); } /*! \brief Specify the visible portion of the wheel. You may use this function for fine-tuning the appearance of the wheel. The default value is 175 degrees. The value is limited from 10 to 175 degrees. \param angle Visible angle in degrees \sa viewAngle(), setTotalAngle() */ void QwtWheel::setViewAngle(double angle) { d_data->viewAngle = qwtLim( angle, 10.0, 175.0 ); update(); } /*! \return Visible portion of the wheel \sa setViewAngle(), totalAngle() */ double QwtWheel::viewAngle() const { return d_data->viewAngle; } /*! \brief Redraw the wheel \param painter painter \param r contents rectangle */ void QwtWheel::drawWheel( QPainter *painter, const QRect &r ) { // // draw background gradient // drawWheelBackground( painter, r ); if ( maxValue() == minValue() || d_data->totalAngle == 0.0 ) return; #if QT_VERSION < 0x040000 const QColor light = colorGroup().light(); const QColor dark = colorGroup().dark(); #else const QColor light = palette().color(QPalette::Light); const QColor dark = palette().color(QPalette::Dark); #endif const double sign = (minValue() < maxValue()) ? 1.0 : -1.0; double cnvFactor = qwtAbs(d_data->totalAngle / (maxValue() - minValue())); const double halfIntv = 0.5 * d_data->viewAngle / cnvFactor; const double loValue = value() - halfIntv; const double hiValue = value() + halfIntv; const double tickWidth = 360.0 / double(d_data->tickCnt) / cnvFactor; const double sinArc = sin(d_data->viewAngle * M_PI / 360.0); cnvFactor *= M_PI / 180.0; // // draw grooves // if ( orientation() == Qt::Horizontal ) { const double halfSize = double(r.width()) * 0.5; int l1 = r.y() + d_data->intBorder; int l2 = r.y() + r.height() - d_data->intBorder - 1; // draw one point over the border if border > 1 if ( d_data->intBorder > 1 ) { l1 --; l2 ++; } const int maxpos = r.x() + r.width() - 2; const int minpos = r.x() + 2; // // draw tick marks // for ( double tickValue = ceil(loValue / tickWidth) * tickWidth; tickValue < hiValue; tickValue += tickWidth ) { // // calculate position // const int tickPos = r.x() + r.width() - int( halfSize * (sinArc + sign * sin((tickValue - value()) * cnvFactor)) / sinArc); // // draw vertical line // if ( (tickPos <= maxpos) && (tickPos > minpos) ) { painter->setPen(dark); painter->drawLine(tickPos -1 , l1, tickPos - 1, l2 ); painter->setPen(light); painter->drawLine(tickPos, l1, tickPos, l2); } } } else if ( orientation() == Qt::Vertical ) { const double halfSize = double(r.height()) * 0.5; int l1 = r.x() + d_data->intBorder; int l2 = r.x() + r.width() - d_data->intBorder - 1; if ( d_data->intBorder > 1 ) { l1--; l2++; } const int maxpos = r.y() + r.height() - 2; const int minpos = r.y() + 2; // // draw tick marks // for ( double tickValue = ceil(loValue / tickWidth) * tickWidth; tickValue < hiValue; tickValue += tickWidth ) { // // calculate position // const int tickPos = r.y() + int( halfSize * (sinArc + sign * sin((tickValue - value()) * cnvFactor)) / sinArc); // // draw horizontal line // if ( (tickPos <= maxpos) && (tickPos > minpos) ) { painter->setPen(dark); painter->drawLine(l1, tickPos - 1 ,l2, tickPos - 1); painter->setPen(light); painter->drawLine(l1, tickPos, l2, tickPos); } } } } //! Determine the value corresponding to a specified point double QwtWheel::getValue( const QPoint &p ) { // The reference position is arbitrary, but the // sign of the offset is important int w, dx; if ( orientation() == Qt::Vertical ) { w = d_data->sliderRect.height(); dx = d_data->sliderRect.y() - p.y(); } else { w = d_data->sliderRect.width(); dx = p.x() - d_data->sliderRect.x(); } // w pixels is an arc of viewAngle degrees, // so we convert change in pixels to change in angle const double ang = dx * d_data->viewAngle / w; // value range maps to totalAngle degrees, // so convert the change in angle to a change in value const double val = ang * ( maxValue() - minValue() ) / d_data->totalAngle; // Note, range clamping and rasterizing to step is automatically // handled by QwtAbstractSlider, so we simply return the change in value return val; } //! Qt Resize Event void QwtWheel::resizeEvent(QResizeEvent *) { layoutWheel( false ); } //! Recalculate the slider's geometry and layout based on // the current rect and fonts. // \param update_geometry notify the layout system and call update // to redraw the scale void QwtWheel::layoutWheel( bool update_geometry ) { const QRect r = this->rect(); d_data->sliderRect.setRect(r.x() + d_data->borderWidth, r.y() + d_data->borderWidth, r.width() - 2*d_data->borderWidth, r.height() - 2*d_data->borderWidth); if ( update_geometry ) { updateGeometry(); update(); } } //! Qt Paint Event void QwtWheel::paintEvent(QPaintEvent *e) { // Use double-buffering const QRect &ur = e->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); draw(paintBuffer.painter(), ur); #else QPainter painter(this); draw(&painter, ur); #endif } } /*! Redraw panel and wheel \param painter Painter */ void QwtWheel::draw(QPainter *painter, const QRect&) { qDrawShadePanel( painter, rect().x(), rect().y(), rect().width(), rect().height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, d_data->borderWidth ); drawWheel( painter, d_data->sliderRect ); if ( hasFocus() ) QwtPainter::drawFocusRect(painter, this); } //! Notify value change void QwtWheel::valueChange() { QwtAbstractSlider::valueChange(); update(); } /*! \brief Determine the scrolling mode and direction corresponding to a specified point \param p point \param scrollMode scrolling mode \param direction direction */ void QwtWheel::getScrollMode( const QPoint &p, int &scrollMode, int &direction) { if ( d_data->sliderRect.contains(p) ) scrollMode = ScrMouse; else scrollMode = ScrNone; direction = 0; } /*! \brief Set the mass of the wheel Assigning a mass turns the wheel into a flywheel. \param val the wheel's mass */ void QwtWheel::setMass(double val) { QwtAbstractSlider::setMass(val); } /*! \brief Set the width of the wheel Corresponds to the wheel height for horizontal orientation, and the wheel width for vertical orientation. \param w the wheel's width */ void QwtWheel::setWheelWidth(int w) { d_data->wheelWidth = w; layoutWheel(); } /*! \return a size hint */ QSize QwtWheel::sizeHint() const { return minimumSizeHint(); } /*! \brief Return a minimum size hint \warning The return value is based on the wheel width. */ QSize QwtWheel::minimumSizeHint() const { QSize sz( 3*d_data->wheelWidth + 2*d_data->borderWidth, d_data->wheelWidth + 2*d_data->borderWidth ); if ( orientation() != Qt::Horizontal ) sz.transpose(); return sz; } /*! \brief Call update() when the palette changes */ void QwtWheel::paletteChange( const QPalette& ) { update(); } qwt5-5.2.3/src/qwt_plot_zoomer.h0000644000175000017500000000677012052741123016172 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_ZOOMER_H #define QWT_PLOT_ZOOMER_H #include #if QT_VERSION < 0x040000 #include #else #include #endif #include "qwt_double_rect.h" #include "qwt_plot_picker.h" /*! \brief QwtPlotZoomer provides stacked zooming for a plot widget QwtPlotZoomer offers rubberband selections on the plot canvas, translating the selected rectangles into plot coordinates and adjusting the axes to them. Zooming can repeated as often as possible, limited only by maxStackDepth() or minZoomSize(). Each rectangle is pushed on a stack. Zoom rectangles can be selected depending on selectionFlags() using the mouse or keyboard (QwtEventPattern, QwtPickerMachine). QwtEventPattern::MouseSelect3/QwtEventPattern::KeyUndo, or QwtEventPattern::MouseSelect6/QwtEventPattern::KeyRedo walk up and down the zoom stack. QwtEventPattern::MouseSelect2 or QwtEventPattern::KeyHome unzoom to the initial size. QwtPlotZoomer is tailored for plots with one x and y axis, but it is allowed to attach a second QwtPlotZoomer for the other axes. \note The realtime example includes an derived zoomer class that adds scrollbars to the plot canvas. */ class QWT_EXPORT QwtPlotZoomer: public QwtPlotPicker { Q_OBJECT public: explicit QwtPlotZoomer(QwtPlotCanvas *, bool doReplot = true); explicit QwtPlotZoomer(int xAxis, int yAxis, QwtPlotCanvas *, bool doReplot = true); explicit QwtPlotZoomer(int xAxis, int yAxis, int selectionFlags, DisplayMode trackerMode, QwtPlotCanvas *, bool doReplot = true); virtual ~QwtPlotZoomer(); virtual void setZoomBase(bool doReplot = true); virtual void setZoomBase(const QwtDoubleRect &); QwtDoubleRect zoomBase() const; QwtDoubleRect zoomRect() const; virtual void setAxis(int xAxis, int yAxis); void setMaxStackDepth(int); int maxStackDepth() const; #if QT_VERSION < 0x040000 const QValueStack &zoomStack() const; void setZoomStack(const QValueStack &, int zoomRectIndex = -1); #else const QStack &zoomStack() const; void setZoomStack(const QStack &, int zoomRectIndex = -1); #endif uint zoomRectIndex() const; virtual void setSelectionFlags(int); public slots: void moveBy(double x, double y); virtual void move(double x, double y); virtual void zoom(const QwtDoubleRect &); virtual void zoom(int up); signals: /*! A signal emitting the zoomRect(), when the plot has been zoomed in or out. \param rect Current zoom rectangle. */ void zoomed(const QwtDoubleRect &rect); protected: virtual void rescale(); virtual QwtDoubleSize minZoomSize() const; virtual void widgetMouseReleaseEvent(QMouseEvent *); virtual void widgetKeyPressEvent(QKeyEvent *); virtual void begin(); virtual bool end(bool ok = true); virtual bool accept(QwtPolygon &) const; private: void init(int selectionFlags, DisplayMode trackerMode, bool doReplot); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_painter.cpp0000644000175000017500000004540012052741126015612 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include #include #include #include #if QT_VERSION < 0x040000 #include #else #include #include #include #include #endif #include "qwt_math.h" #include "qwt_clipper.h" #include "qwt_color_map.h" #include "qwt_scale_map.h" #include "qwt_painter.h" QwtMetricsMap QwtPainter::d_metricsMap; #if defined(Q_WS_X11) bool QwtPainter::d_deviceClipping = true; #else bool QwtPainter::d_deviceClipping = false; #endif #if QT_VERSION < 0x040000 bool QwtPainter::d_SVGMode = false; #endif static inline bool isClippingNeeded(const QPainter *painter, QRect &clipRect) { bool doClipping = false; #if QT_VERSION >= 0x040000 const QPaintEngine *pe = painter->paintEngine(); if ( pe && pe->type() == QPaintEngine::SVG ) #else if ( painter->device()->devType() == QInternal::Picture ) #endif { // The SVG paint engine ignores any clipping, if ( painter->hasClipping() ) { doClipping = true; clipRect = painter->clipRegion().boundingRect(); } } if ( QwtPainter::deviceClipping() ) { if (painter->device()->devType() == QInternal::Widget || painter->device()->devType() == QInternal::Pixmap ) { if ( doClipping ) { clipRect &= QwtPainter::deviceClipRect(); } else { doClipping = true; clipRect = QwtPainter::deviceClipRect(); } } } return doClipping; } /*! \brief En/Disable device clipping. On X11 the default for device clipping is enabled, otherwise it is disabled. \sa QwtPainter::deviceClipping() */ void QwtPainter::setDeviceClipping(bool enable) { d_deviceClipping = enable; } /*! Returns rect for device clipping \sa QwtPainter::setDeviceClipping() */ const QRect &QwtPainter::deviceClipRect() { static QRect clip; if ( !clip.isValid() ) { clip.setCoords(QWT_COORD_MIN, QWT_COORD_MIN, QWT_COORD_MAX, QWT_COORD_MAX); } return clip; } #if QT_VERSION < 0x040000 /*! \brief En/Disable SVG mode. When saving a QPicture to a SVG some texts are misaligned. In SVGMode QwtPainter tries to fix them. \sa QwtPainter::isSVGMode() \note A QPicture that is created in SVG mode and saved to the native format, will be misaligned. Also it is not possible to reload and play a SVG document, that was created in SVG mode. */ void QwtPainter::setSVGMode(bool on) { d_SVGMode = on; } bool QwtPainter::isSVGMode() { return d_SVGMode; } #endif // QT_VERSION < 0x040000 /*! Scale all QwtPainter drawing operations using the ratio QwtPaintMetrics(from).logicalDpiX() / QwtPaintMetrics(to).logicalDpiX() and QwtPaintMetrics(from).logicalDpiY() / QwtPaintMetrics(to).logicalDpiY() \sa QwtPainter::resetScaleMetrics(), QwtPainter::scaleMetricsX(), QwtPainter::scaleMetricsY() */ void QwtPainter::setMetricsMap(const QPaintDevice *layout, const QPaintDevice *device) { d_metricsMap.setMetrics(layout, device); } /*! Change the metrics map \sa QwtPainter::resetMetricsMap(), QwtPainter::metricsMap() */ void QwtPainter::setMetricsMap(const QwtMetricsMap &map) { d_metricsMap = map; } /*! Reset the metrics map to the ratio 1:1 \sa QwtPainter::setMetricsMap(), QwtPainter::resetMetricsMap() */ void QwtPainter::resetMetricsMap() { d_metricsMap = QwtMetricsMap(); } /*! \return Metrics map */ const QwtMetricsMap &QwtPainter::metricsMap() { return d_metricsMap; } /*! Wrapper for QPainter::setClipRect() */ void QwtPainter::setClipRect(QPainter *painter, const QRect &rect) { painter->setClipRect(d_metricsMap.layoutToDevice(rect, painter)); } /*! Wrapper for QPainter::drawRect() */ void QwtPainter::drawRect(QPainter *painter, int x, int y, int w, int h) { drawRect(painter, QRect(x, y, w, h)); } /*! Wrapper for QPainter::drawRect() */ void QwtPainter::drawRect(QPainter *painter, const QRect &rect) { const QRect r = d_metricsMap.layoutToDevice(rect, painter); QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); if ( deviceClipping ) { if ( !clipRect.intersects(r) ) return; if ( !clipRect.contains(r) ) { fillRect(painter, r & clipRect, painter->brush()); int pw = painter->pen().width(); pw = pw % 2 + pw / 2; QwtPolygon pa(5); pa.setPoint(0, r.left(), r.top()); pa.setPoint(1, r.right() - pw, r.top()); pa.setPoint(2, r.right() - pw, r.bottom() - pw); pa.setPoint(3, r.left(), r.bottom() - pw); pa.setPoint(4, r.left(), r.top()); painter->save(); painter->setBrush(Qt::NoBrush); drawPolyline(painter, pa); painter->restore(); return; } } painter->drawRect(r); } /*! Wrapper for QPainter::fillRect() */ void QwtPainter::fillRect(QPainter *painter, const QRect &rect, const QBrush &brush) { if ( !rect.isValid() ) return; QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); #if QT_VERSION >= 0x040000 /* Performance of Qt4 is horrible for non trivial brushs. Without clipping expect minutes or hours for repainting large rects (might result from zooming) */ if ( deviceClipping ) clipRect &= painter->window(); else clipRect = painter->window(); if ( painter->hasClipping() ) clipRect &= painter->clipRegion().boundingRect(); #endif QRect r = d_metricsMap.layoutToDevice(rect, painter); if ( deviceClipping ) r = r.intersect(clipRect); if ( r.isValid() ) painter->fillRect(r, brush); } /*! Wrapper for QPainter::drawPie() */ void QwtPainter::drawPie(QPainter *painter, const QRect &rect, int a, int alen) { const QRect r = d_metricsMap.layoutToDevice(rect, painter); QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); if ( deviceClipping && !clipRect.contains(r) ) return; painter->drawPie(r, a, alen); } /*! Wrapper for QPainter::drawEllipse() */ void QwtPainter::drawEllipse(QPainter *painter, const QRect &rect) { QRect r = d_metricsMap.layoutToDevice(rect, painter); QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); if ( deviceClipping && !clipRect.contains(r) ) return; #if QT_VERSION >= 0x040000 if ( painter->pen().style() != Qt::NoPen && painter->pen().color().isValid() ) { // Qt4 adds the pen to the rect, Qt3 not. int pw = painter->pen().width(); if ( pw == 0 ) pw = 1; r.setWidth(r.width() - pw); r.setHeight(r.height() - pw); } #endif painter->drawEllipse(r); } /*! Wrapper for QPainter::drawText() */ void QwtPainter::drawText(QPainter *painter, int x, int y, const QString &text) { drawText(painter, QPoint(x, y), text); } /*! Wrapper for QPainter::drawText() */ void QwtPainter::drawText(QPainter *painter, const QPoint &pos, const QString &text) { const QPoint p = d_metricsMap.layoutToDevice(pos, painter); QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); if ( deviceClipping && !clipRect.contains(p) ) return; painter->drawText(p, text); } /*! Wrapper for QPainter::drawText() */ void QwtPainter::drawText(QPainter *painter, int x, int y, int w, int h, int flags, const QString &text) { drawText(painter, QRect(x, y, w, h), flags, text); } /*! Wrapper for QPainter::drawText() */ void QwtPainter::drawText(QPainter *painter, const QRect &rect, int flags, const QString &text) { QRect textRect = d_metricsMap.layoutToDevice(rect, painter); #if QT_VERSION < 0x040000 if ( d_SVGMode && ( flags == 0 || flags & Qt::AlignVCenter ) && painter->device()->devType() == QInternal::Picture ) { /* Qt3 misalignes texts, when saving a text to a SVG image. */ textRect.setY(textRect.y() - painter->fontMetrics().height() / 4); } #endif painter->drawText(textRect, flags, text); } #ifndef QT_NO_RICHTEXT /*! Wrapper for QSimpleRichText::draw() */ #if QT_VERSION < 0x040000 void QwtPainter::drawSimpleRichText(QPainter *painter, const QRect &rect, int flags, QSimpleRichText &text) { QColorGroup cg; cg.setColor(QColorGroup::Text, painter->pen().color()); const QRect scaledRect = d_metricsMap.layoutToDevice(rect, painter); text.setWidth(painter, scaledRect.width()); // QSimpleRichText is Qt::AlignTop by default int y = scaledRect.y(); if (flags & Qt::AlignBottom) y += (scaledRect.height() - text.height()); else if (flags & Qt::AlignVCenter) y += (scaledRect.height() - text.height())/2; text.draw(painter, scaledRect.x(), y, scaledRect, cg); } #else void QwtPainter::drawSimpleRichText(QPainter *painter, const QRect &rect, int flags, QTextDocument &text) { const QRect scaledRect = d_metricsMap.layoutToDevice(rect, painter); text.setPageSize(QSize(scaledRect.width(), QWIDGETSIZE_MAX)); QAbstractTextDocumentLayout* layout = text.documentLayout(); const int height = qRound(layout->documentSize().height()); int y = scaledRect.y(); if (flags & Qt::AlignBottom) y += (scaledRect.height() - height); else if (flags & Qt::AlignVCenter) y += (scaledRect.height() - height)/2; QAbstractTextDocumentLayout::PaintContext context; context.palette.setColor(QPalette::Text, painter->pen().color()); painter->save(); painter->translate(scaledRect.x(), y); layout->draw(painter, context); painter->restore(); } #endif #endif // !QT_NO_RICHTEXT /*! Wrapper for QPainter::drawLine() */ void QwtPainter::drawLine(QPainter *painter, int x1, int y1, int x2, int y2) { QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); if ( deviceClipping && !(clipRect.contains(x1, y1) && clipRect.contains(x2, y2)) ) { QwtPolygon pa(2); pa.setPoint(0, x1, y1); pa.setPoint(1, x2, y2); drawPolyline(painter, pa); return; } if ( d_metricsMap.isIdentity() ) { #if QT_VERSION >= 0x030200 && QT_VERSION < 0x040000 if ( !painter->device()->isExtDev() ) #endif { painter->drawLine(x1, y1, x2, y2); return; } } const QPoint p1 = d_metricsMap.layoutToDevice(QPoint(x1, y1)); const QPoint p2 = d_metricsMap.layoutToDevice(QPoint(x2, y2)); #if QT_VERSION >= 0x030200 && QT_VERSION < 0x040000 if ( painter->device()->isExtDev() ) { // Strange: the postscript driver of QPrinter adds an offset // of 0.5 to the start/endpoint when using drawLine, but not // for lines painted with drawLineSegments. QwtPolygon pa(2); pa.setPoint(0, p1); pa.setPoint(1, p2); painter->drawLineSegments(pa); } else painter->drawLine(p1, p2); #else painter->drawLine(p1, p2); #endif } /*! Wrapper for QPainter::drawPolygon() */ void QwtPainter::drawPolygon(QPainter *painter, const QwtPolygon &pa) { QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); QwtPolygon cpa = d_metricsMap.layoutToDevice(pa); if ( deviceClipping ) { cpa = QwtClipper::clipPolygon(clipRect, cpa); } painter->drawPolygon(cpa); } /*! Wrapper for QPainter::drawPolyline() */ void QwtPainter::drawPolyline(QPainter *painter, const QwtPolygon &pa) { QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); QwtPolygon cpa = d_metricsMap.layoutToDevice(pa); if ( deviceClipping ) cpa = QwtClipper::clipPolygon(clipRect, cpa); #if QT_VERSION >= 0x040000 bool doSplit = false; const QPaintEngine *pe = painter->paintEngine(); if ( pe && pe->type() == QPaintEngine::Raster ) { /* The raster paint engine seems to use some algo with O(n*n). ( Qt 4.3 is better than Qt 4.2, but remains unacceptable) To work around this problem, we have to split the polygon into smaller pieces. */ doSplit = true; } if ( doSplit ) { const int numPoints = cpa.size(); const QPoint *points = cpa.data(); const int splitSize = 20; for ( int i = 0; i < numPoints; i += splitSize ) { const int n = qwtMin(splitSize + 1, cpa.size() - i); painter->drawPolyline(points + i, n); } } else #endif painter->drawPolyline(cpa); } /*! Wrapper for QPainter::drawPoint() */ void QwtPainter::drawPoint(QPainter *painter, int x, int y) { QRect clipRect; const bool deviceClipping = isClippingNeeded(painter, clipRect); const QPoint pos = d_metricsMap.layoutToDevice(QPoint(x, y)); if ( deviceClipping && !clipRect.contains(pos) ) return; painter->drawPoint(pos); } void QwtPainter::drawColoredArc(QPainter *painter, const QRect &rect, int peak, int arc, int interval, const QColor &c1, const QColor &c2) { int h1, s1, v1; int h2, s2, v2; #if QT_VERSION < 0x040000 c1.hsv(&h1, &s1, &v1); c2.hsv(&h2, &s2, &v2); #else c1.getHsv(&h1, &s1, &v1); c2.getHsv(&h2, &s2, &v2); #endif arc /= 2; for ( int angle = -arc; angle < arc; angle += interval) { double ratio; if ( angle >= 0 ) ratio = 1.0 - angle / double(arc); else ratio = 1.0 + angle / double(arc); QColor c; c.setHsv( h1 + qRound(ratio * (h2 - h1)), s1 + qRound(ratio * (s2 - s1)), v1 + qRound(ratio * (v2 - v1)) ); painter->setPen(QPen(c, painter->pen().width())); painter->drawArc(rect, (peak + angle) * 16, interval * 16); } } void QwtPainter::drawFocusRect(QPainter *painter, QWidget *widget) { drawFocusRect(painter, widget, widget->rect()); } void QwtPainter::drawFocusRect(QPainter *painter, QWidget *widget, const QRect &rect) { #if QT_VERSION < 0x040000 widget->style().drawPrimitive(QStyle::PE_FocusRect, painter, rect, widget->colorGroup()); #else QStyleOptionFocusRect opt; opt.init(widget); opt.rect = rect; opt.state |= QStyle::State_HasFocus; widget->style()->drawPrimitive(QStyle::PE_FrameFocusRect, &opt, painter, widget); #endif } //! Draw a round frame #if QT_VERSION < 0x040000 void QwtPainter::drawRoundFrame(QPainter *painter, const QRect &rect, int width, const QColorGroup &cg, bool sunken) #else void QwtPainter::drawRoundFrame(QPainter *painter, const QRect &rect, int width, const QPalette &palette, bool sunken) #endif { #if QT_VERSION < 0x040000 QColor c0 = cg.mid(); QColor c1, c2; if ( sunken ) { c1 = cg.dark(); c2 = cg.light(); } else { c1 = cg.light(); c2 = cg.dark(); } #else QColor c0 = palette.color(QPalette::Mid); QColor c1, c2; if ( sunken ) { c1 = palette.color(QPalette::Dark); c2 = palette.color(QPalette::Light); } else { c1 = palette.color(QPalette::Light); c2 = palette.color(QPalette::Dark); } #endif painter->setPen(QPen(c0, width)); painter->drawArc(rect, 0, 360 * 16); // full const int peak = 150; const int interval = 2; if ( c0 != c1 ) drawColoredArc(painter, rect, peak, 160, interval, c0, c1); if ( c0 != c2 ) drawColoredArc(painter, rect, peak + 180, 120, interval, c0, c2); } void QwtPainter::drawColorBar(QPainter *painter, const QwtColorMap &colorMap, const QwtDoubleInterval &interval, const QwtScaleMap &scaleMap, Qt::Orientation orientation, const QRect &rect) { #if QT_VERSION < 0x040000 QValueVector colorTable; #else QVector colorTable; #endif if ( colorMap.format() == QwtColorMap::Indexed ) colorTable = colorMap.colorTable(interval); QColor c; const QRect devRect = d_metricsMap.layoutToDevice(rect); /* We paint to a pixmap first to have something scalable for printing ( f.e. in a Pdf document ) */ QPixmap pixmap(devRect.size()); QPainter pmPainter(&pixmap); pmPainter.translate(-devRect.x(), -devRect.y()); if ( orientation == Qt::Horizontal ) { QwtScaleMap sMap = scaleMap; sMap.setPaintInterval(devRect.left(), devRect.right()); for ( int x = devRect.left(); x <= devRect.right(); x++ ) { const double value = sMap.invTransform(x); if ( colorMap.format() == QwtColorMap::RGB ) c.setRgb(colorMap.rgb(interval, value)); else c = colorTable[colorMap.colorIndex(interval, value)]; pmPainter.setPen(c); pmPainter.drawLine(x, devRect.top(), x, devRect.bottom()); } } else // Vertical { QwtScaleMap sMap = scaleMap; sMap.setPaintInterval(devRect.bottom(), devRect.top()); for ( int y = devRect.top(); y <= devRect.bottom(); y++ ) { const double value = sMap.invTransform(y); if ( colorMap.format() == QwtColorMap::RGB ) c.setRgb(colorMap.rgb(interval, value)); else c = colorTable[colorMap.colorIndex(interval, value)]; pmPainter.setPen(c); pmPainter.drawLine(devRect.left(), y, devRect.right(), y); } } pmPainter.end(); painter->drawPixmap(devRect, pixmap); } /*! \brief Scale a pen according to the layout metrics The width of non cosmetic pens is scaled from screen to layout metrics, so that they look similar on paint devices with different resolutions. \param pen Unscaled pen \return Scaled pen */ QPen QwtPainter::scaledPen(const QPen &pen) { #if QT_VERSION < 0x040300 return pen; #else QPen sPen = pen; if ( !pen.isCosmetic() ) { int pw = pen.width(); if ( pw == 0 ) pw = 1; sPen.setWidth(QwtPainter::metricsMap().screenToLayoutX(pw)); sPen.setCosmetic(true); } return sPen; #endif } qwt5-5.2.3/src/qwt_array.h0000644000175000017500000000120012052741123014716 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_ARRAY_H #define QWT_ARRAY_H #include "qwt_global.h" /*! \def QwtArray */ #if QT_VERSION < 0x040000 #include #define QwtArray QMemArray #else #include #define QwtArray QVector #endif #endif qwt5-5.2.3/src/qwt_dial_needle.cpp0000644000175000017500000004036312052741126016400 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_polygon.h" #include "qwt_dial_needle.h" #if QT_VERSION < 0x040000 typedef QColorGroup QwtPalette; #else typedef QPalette QwtPalette; #endif //! Constructor QwtDialNeedle::QwtDialNeedle(): d_palette(QApplication::palette()) { } //! Destructor QwtDialNeedle::~QwtDialNeedle() { } /*! Sets the palette for the needle. \param palette New Palette */ void QwtDialNeedle::setPalette(const QPalette &palette) { d_palette = palette; } /*! \return the palette of the needle. */ const QPalette &QwtDialNeedle::palette() const { return d_palette; } //! Draw the knob void QwtDialNeedle::drawKnob(QPainter *painter, const QPoint &pos, int width, const QBrush &brush, bool sunken) { painter->save(); QRect rect(0, 0, width, width); rect.moveCenter(pos); painter->setPen(Qt::NoPen); painter->setBrush(brush); painter->drawEllipse(rect); painter->setBrush(Qt::NoBrush); const int colorOffset = 20; int startAngle = 45; if ( sunken ) startAngle += 180; QPen pen; pen.setWidth(1); pen.setColor(brush.color().dark(100 - colorOffset)); painter->setPen(pen); painter->drawArc(rect, startAngle * 16, 180 * 16); pen.setColor(brush.color().dark(100 + colorOffset)); painter->setPen(pen); painter->drawArc(rect, (startAngle + 180) * 16, 180 * 16); painter->restore(); } /*! Constructor \param style Style \param hasKnob With/Without knob \param mid Middle color \param base Base color */ QwtDialSimpleNeedle::QwtDialSimpleNeedle(Style style, bool hasKnob, const QColor &mid, const QColor &base): d_style(style), d_hasKnob(hasKnob), d_width(-1) { QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { palette.setColor((QPalette::ColorGroup)i, QwtPalette::Mid, mid); palette.setColor((QPalette::ColorGroup)i, QwtPalette::Base, base); } setPalette(palette); } /*! Set the width of the needle \param width Width \sa width() */ void QwtDialSimpleNeedle::setWidth(int width) { d_width = width; } /*! \return the width of the needle \sa setWidth() */ int QwtDialSimpleNeedle::width() const { return d_width; } /*! Draw the needle \param painter Painter \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise \param colorGroup Color group, used for painting */ void QwtDialSimpleNeedle::draw(QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup colorGroup) const { if ( d_style == Arrow ) { drawArrowNeedle(painter, palette(), colorGroup, center, length, d_width, direction, d_hasKnob); } else { drawRayNeedle(painter, palette(), colorGroup, center, length, d_width, direction, d_hasKnob); } } /*! Draw a needle looking like a ray \param painter Painter \param palette Palette \param colorGroup Color group \param center center of the needle \param length Length of the needle \param width Width of the needle \param direction Current Direction \param hasKnob With/Without knob */ void QwtDialSimpleNeedle::drawRayNeedle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, int width, double direction, bool hasKnob) { if ( width <= 0 ) width = 5; direction *= M_PI / 180.0; painter->save(); const QPoint p1(center.x() + 1, center.y() + 2); const QPoint p2 = qwtPolar2Pos(p1, length, direction); if ( width == 1 ) { const QColor midColor = palette.color(colorGroup, QwtPalette::Mid); painter->setPen(QPen(midColor, 1)); painter->drawLine(p1, p2); } else { QwtPolygon pa(4); pa.setPoint(0, qwtPolar2Pos(p1, width / 2, direction + M_PI_2)); pa.setPoint(1, qwtPolar2Pos(p2, width / 2, direction + M_PI_2)); pa.setPoint(2, qwtPolar2Pos(p2, width / 2, direction - M_PI_2)); pa.setPoint(3, qwtPolar2Pos(p1, width / 2, direction - M_PI_2)); painter->setPen(Qt::NoPen); painter->setBrush(palette.brush(colorGroup, QwtPalette::Mid)); painter->drawPolygon(pa); } if ( hasKnob ) { int knobWidth = qwtMax(qRound(width * 0.7), 5); if ( knobWidth % 2 == 0 ) knobWidth++; drawKnob(painter, center, knobWidth, palette.brush(colorGroup, QwtPalette::Base), false); } painter->restore(); } /*! Draw a needle looking like an arrow \param painter Painter \param palette Palette \param colorGroup Color group \param center center of the needle \param length Length of the needle \param width Width of the needle \param direction Current Direction \param hasKnob With/Without knob */ void QwtDialSimpleNeedle::drawArrowNeedle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, int width, double direction, bool hasKnob) { direction *= M_PI / 180.0; painter->save(); if ( width <= 0 ) { width = (int)qwtMax(length * 0.06, 9.0); if ( width % 2 == 0 ) width++; } const int peak = 3; const QPoint p1(center.x() + 1, center.y() + 1); const QPoint p2 = qwtPolar2Pos(p1, length - peak, direction); const QPoint p3 = qwtPolar2Pos(p1, length, direction); QwtPolygon pa(5); pa.setPoint(0, qwtPolar2Pos(p1, width / 2, direction - M_PI_2)); pa.setPoint(1, qwtPolar2Pos(p2, 1, direction - M_PI_2)); pa.setPoint(2, p3); pa.setPoint(3, qwtPolar2Pos(p2, 1, direction + M_PI_2)); pa.setPoint(4, qwtPolar2Pos(p1, width / 2, direction + M_PI_2)); painter->setPen(Qt::NoPen); painter->setBrush(palette.brush(colorGroup, QwtPalette::Mid)); painter->drawPolygon(pa); QwtPolygon shadowPa(3); const int colorOffset = 10; int i; for ( i = 0; i < 3; i++ ) shadowPa.setPoint(i, pa[i]); const QColor midColor = palette.color(colorGroup, QwtPalette::Mid); painter->setPen(midColor.dark(100 + colorOffset)); painter->drawPolyline(shadowPa); for ( i = 0; i < 3; i++ ) shadowPa.setPoint(i, pa[i + 2]); painter->setPen(midColor.dark(100 - colorOffset)); painter->drawPolyline(shadowPa); if ( hasKnob ) { drawKnob(painter, center, qRound(width * 1.3), palette.brush(colorGroup, QwtPalette::Base), false); } painter->restore(); } //! Constructor QwtCompassMagnetNeedle::QwtCompassMagnetNeedle(Style style, const QColor &light, const QColor &dark): d_style(style) { QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { palette.setColor((QPalette::ColorGroup)i, QwtPalette::Light, light); palette.setColor((QPalette::ColorGroup)i, QwtPalette::Dark, dark); palette.setColor((QPalette::ColorGroup)i, QwtPalette::Base, Qt::darkGray); } setPalette(palette); } /*! Draw the needle \param painter Painter \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise \param colorGroup Color group, used for painting */ void QwtCompassMagnetNeedle::draw(QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup colorGroup) const { if ( d_style == ThinStyle ) { drawThinNeedle(painter, palette(), colorGroup, center, length, direction); } else { drawTriangleNeedle(painter, palette(), colorGroup, center, length, direction); } } /*! Draw a compass needle \param painter Painter \param palette Palette \param colorGroup Color group \param center Center, where the needle starts \param length Length of the needle \param direction Direction */ void QwtCompassMagnetNeedle::drawTriangleNeedle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, double direction) { const QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark); const QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light); QBrush brush; const int width = qRound(length / 3.0); const int colorOffset = 10; painter->save(); painter->setPen(Qt::NoPen); const QPoint arrowCenter(center.x() + 1, center.y() + 1); QwtPolygon pa(3); pa.setPoint(0, arrowCenter); pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction)); pa.setPoint(2, qwtDegree2Pos(arrowCenter, width / 2, direction + 90.0)); brush = darkBrush; brush.setColor(brush.color().dark(100 + colorOffset)); painter->setBrush(brush); painter->drawPolygon(pa); pa.setPoint(2, qwtDegree2Pos(arrowCenter, width / 2, direction - 90.0)); brush = darkBrush; brush.setColor(brush.color().dark(100 - colorOffset)); painter->setBrush(brush); painter->drawPolygon(pa); // -- pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction + 180.0)); pa.setPoint(2, qwtDegree2Pos(arrowCenter, width / 2, direction + 90.0)); brush = lightBrush; brush.setColor(brush.color().dark(100 + colorOffset)); painter->setBrush(brush); painter->drawPolygon(pa); pa.setPoint(2, qwtDegree2Pos(arrowCenter, width / 2, direction - 90.0)); brush = lightBrush; brush.setColor(brush.color().dark(100 - colorOffset)); painter->setBrush(brush); painter->drawPolygon(pa); painter->restore(); } /*! Draw a compass needle \param painter Painter \param palette Palette \param colorGroup Color group \param center Center, where the needle starts \param length Length of the needle \param direction Direction */ void QwtCompassMagnetNeedle::drawThinNeedle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, double direction) { const QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark); const QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light); const QBrush baseBrush = palette.brush(colorGroup, QwtPalette::Base); const int colorOffset = 10; const int width = qwtMax(qRound(length / 6.0), 3); painter->save(); const QPoint arrowCenter(center.x() + 1, center.y() + 1); drawPointer(painter, darkBrush, colorOffset, arrowCenter, length, width, direction); drawPointer(painter, lightBrush, -colorOffset, arrowCenter, length, width, direction + 180.0); drawKnob(painter, arrowCenter, width, baseBrush, true); painter->restore(); } /*! Draw a compass needle \param painter Painter \param brush Brush \param colorOffset Color offset \param center Center, where the needle starts \param length Length of the needle \param width Width of the needle \param direction Direction */ void QwtCompassMagnetNeedle::drawPointer( QPainter *painter, const QBrush &brush, int colorOffset, const QPoint ¢er, int length, int width, double direction) { painter->save(); const int peak = qwtMax(qRound(length / 10.0), 5); const int knobWidth = width + 8; QRect knobRect(0, 0, knobWidth, knobWidth); knobRect.moveCenter(center); QwtPolygon pa(5); pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction + 90.0)); pa.setPoint(1, center); pa.setPoint(2, qwtDegree2Pos(pa.point(1), length - peak, direction)); pa.setPoint(3, qwtDegree2Pos(center, length, direction)); pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction)); painter->setPen(Qt::NoPen); QBrush darkBrush = brush; darkBrush.setColor(darkBrush.color().dark(100 + colorOffset)); painter->setBrush(darkBrush); painter->drawPolygon(pa); painter->drawPie(knobRect, qRound(direction * 16), 90 * 16); pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction - 90.0)); pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction)); QBrush lightBrush = brush; lightBrush.setColor(lightBrush.color().dark(100 - colorOffset)); painter->setBrush(lightBrush); painter->drawPolygon(pa); painter->drawPie(knobRect, qRound(direction * 16), -90 * 16); painter->restore(); } /*! Constructor \param style Arrow style \param light Light color \param dark Dark color */ QwtCompassWindArrow::QwtCompassWindArrow(Style style, const QColor &light, const QColor &dark): d_style(style) { QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { palette.setColor((QPalette::ColorGroup)i, QwtPalette::Light, light); palette.setColor((QPalette::ColorGroup)i, QwtPalette::Dark, dark); } setPalette(palette); } /*! Draw the needle \param painter Painter \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise \param colorGroup Color group, used for painting */ void QwtCompassWindArrow::draw(QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup colorGroup) const { if ( d_style == Style1 ) { drawStyle1Needle(painter, palette(), colorGroup, center, length, direction); } else { drawStyle2Needle(painter, palette(), colorGroup, center, length, direction); } } /*! Draw a compass needle \param painter Painter \param palette Palette \param colorGroup colorGroup \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise */ void QwtCompassWindArrow::drawStyle1Needle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, double direction) { const QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light); const double AR1[] = {0, 0.4, 0.3, 1, 0.8, 1, 0.3, 0.4}; const double AW1[] = {0, -45, -20, -15, 0, 15, 20, 45}; const QPoint arrowCenter(center.x() + 1, center.y() + 1); QwtPolygon pa(8); pa.setPoint(0, arrowCenter); for (int i=1; i<8; i++) { const QPoint p = qwtDegree2Pos(center, AR1[i] * length, direction + AW1[i]); pa.setPoint(i, p); } painter->save(); painter->setPen(Qt::NoPen); painter->setBrush(lightBrush); painter->drawPolygon(pa); painter->restore(); } /*! Draw a compass needle \param painter Painter \param palette Palette \param colorGroup colorGroup \param center Center of the dial, start position for the needle \param length Length of the needle \param direction Direction of the needle, in degrees counter clockwise */ void QwtCompassWindArrow::drawStyle2Needle(QPainter *painter, const QPalette &palette, QPalette::ColorGroup colorGroup, const QPoint ¢er, int length, double direction) { const QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light); const QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark); painter->save(); painter->setPen(Qt::NoPen); const double angle = 12.0; const double ratio = 0.7; const QPoint arrowCenter(center.x() + 1, center.y() + 1); QwtPolygon pa(3); pa.setPoint(0, center); pa.setPoint(2, qwtDegree2Pos(arrowCenter, ratio * length, direction)); pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction + angle)); painter->setBrush(darkBrush); painter->drawPolygon(pa); pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction - angle)); painter->setBrush(lightBrush); painter->drawPolygon(pa); painter->restore(); } qwt5-5.2.3/src/qwt_dial.cpp0000644000175000017500000007365012052741126015071 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #if QT_VERSION >= 0x040000 #include #include #endif #include #include #include "qwt_math.h" #include "qwt_scale_engine.h" #include "qwt_scale_map.h" #include "qwt_paint_buffer.h" #include "qwt_painter.h" #include "qwt_dial_needle.h" #include "qwt_dial.h" class QwtDial::PrivateData { public: PrivateData(): visibleBackground(true), frameShadow(Sunken), lineWidth(0), mode(RotateNeedle), direction(Clockwise), origin(90.0), minScaleArc(0.0), maxScaleArc(0.0), scaleDraw(0), maxMajIntv(36), maxMinIntv(10), scaleStep(0.0), needle(0) { } ~PrivateData() { delete scaleDraw; delete needle; } bool visibleBackground; Shadow frameShadow; int lineWidth; QwtDial::Mode mode; QwtDial::Direction direction; double origin; double minScaleArc; double maxScaleArc; QwtDialScaleDraw *scaleDraw; int maxMajIntv; int maxMinIntv; double scaleStep; QwtDialNeedle *needle; static double previousDir; }; double QwtDial::PrivateData::previousDir = -1.0; /*! Constructor \param parent Parent dial widget */ QwtDialScaleDraw::QwtDialScaleDraw(QwtDial *parent): d_parent(parent), d_penWidth(1) { } /*! Set the pen width used for painting the scale \param penWidth Pen width \sa penWidth(), QwtDial::drawScale() */ void QwtDialScaleDraw::setPenWidth(uint penWidth) { d_penWidth = penWidth; } /*! \return Pen width used for painting the scale \sa setPenWidth, QwtDial::drawScale() */ uint QwtDialScaleDraw::penWidth() const { return d_penWidth; } /*! Call QwtDial::scaleLabel of the parent dial widget. \param value Value to display \sa QwtDial::scaleLabel() */ QwtText QwtDialScaleDraw::label(double value) const { if ( d_parent == NULL ) return QwtRoundScaleDraw::label(value); return d_parent->scaleLabel(value); } /*! \brief Constructor \param parent Parent widget Create a dial widget with no scale and no needle. The default origin is 90.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle. */ QwtDial::QwtDial(QWidget* parent): QwtAbstractSlider(Qt::Horizontal, parent) { initDial(); } #if QT_VERSION < 0x040000 /*! \brief Constructor \param parent Parent widget \param name Object name Create a dial widget with no scale and no needle. The default origin is 90.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle. */ QwtDial::QwtDial(QWidget* parent, const char *name): QwtAbstractSlider(Qt::Horizontal, parent) { setName(name); initDial(); } #endif void QwtDial::initDial() { d_data = new PrivateData; #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif #if QT_VERSION >= 0x040000 using namespace Qt; #endif setFocusPolicy(TabFocus); QPalette p = palette(); for ( int i = 0; i < QPalette::NColorGroups; i++ ) { const QPalette::ColorGroup cg = (QPalette::ColorGroup)i; // Base: background color of the circle inside the frame. // Foreground: background color of the circle inside the scale #if QT_VERSION < 0x040000 p.setColor(cg, QColorGroup::Foreground, p.color(cg, QColorGroup::Base)); #else p.setColor(cg, QPalette::Foreground, p.color(cg, QPalette::Base)); #endif } setPalette(p); d_data->scaleDraw = new QwtDialScaleDraw(this); d_data->scaleDraw->setRadius(0); setScaleArc(0.0, 360.0); // scale as a full circle setRange(0.0, 360.0, 1.0, 10); // degrees as deafult } //! Destructor QwtDial::~QwtDial() { delete d_data; } /*! Show/Hide the area outside of the frame \param show Show if true, hide if false \sa hasVisibleBackground(), setMask() \warning When QwtDial is a toplevel widget the window border might disappear too. */ void QwtDial::showBackground(bool show) { if ( d_data->visibleBackground != show ) { d_data->visibleBackground = show; updateMask(); } } /*! true when the area outside of the frame is visible \sa showBackground(), setMask() */ bool QwtDial::hasVisibleBackground() const { return d_data->visibleBackground; } /*! Sets the frame shadow value from the frame style. \param shadow Frame shadow \sa setLineWidth(), QFrame::setFrameShadow() */ void QwtDial::setFrameShadow(Shadow shadow) { if ( shadow != d_data->frameShadow ) { d_data->frameShadow = shadow; if ( lineWidth() > 0 ) update(); } } /*! \return Frame shadow /sa setFrameShadow(), lineWidth(), QFrame::frameShadow */ QwtDial::Shadow QwtDial::frameShadow() const { return d_data->frameShadow; } /*! Sets the line width \param lineWidth Line width \sa setFrameShadow() */ void QwtDial::setLineWidth(int lineWidth) { if ( lineWidth < 0 ) lineWidth = 0; if ( d_data->lineWidth != lineWidth ) { d_data->lineWidth = lineWidth; update(); } } /*! \return Line width of the frame \sa setLineWidth(), frameShadow(), lineWidth() */ int QwtDial::lineWidth() const { return d_data->lineWidth; } /*! \return bounding rect of the circle inside the frame \sa setLineWidth(), scaleContentsRect(), boundingRect() */ QRect QwtDial::contentsRect() const { const int lw = lineWidth(); QRect r = boundingRect(); if ( lw > 0 ) { r.setRect(r.x() + lw, r.y() + lw, r.width() - 2 * lw, r.height() - 2 * lw); } return r; } /*! \return bounding rect of the dial including the frame \sa setLineWidth(), scaleContentsRect(), contentsRect() */ QRect QwtDial::boundingRect() const { const int radius = qwtMin(width(), height()) / 2; QRect r(0, 0, 2 * radius, 2 * radius); r.moveCenter(rect().center()); return r; } /*! \return rect inside the scale \sa setLineWidth(), boundingRect(), contentsRect() */ QRect QwtDial::scaleContentsRect() const { #if QT_VERSION < 0x040000 const QPen scalePen(colorGroup().text(), 0, Qt::NoPen); #else const QPen scalePen(palette().text(), 0, Qt::NoPen); #endif int scaleDist = 0; if ( d_data->scaleDraw ) { scaleDist = d_data->scaleDraw->extent(scalePen, font()); scaleDist++; // margin } const QRect rect = contentsRect(); return QRect(rect.x() + scaleDist, rect.y() + scaleDist, rect.width() - 2 * scaleDist, rect.height() - 2 * scaleDist); } /*! \brief Change the mode of the meter. \param mode New mode The value of the meter is indicated by the difference between north of the scale and the direction of the needle. In case of QwtDial::RotateNeedle north is pointing to the origin() and the needle is rotating, in case of QwtDial::RotateScale, the needle points to origin() and the scale is rotating. The default mode is QwtDial::RotateNeedle. \sa mode(), setValue(), setOrigin() */ void QwtDial::setMode(Mode mode) { if ( mode != d_data->mode ) { d_data->mode = mode; update(); } } /*! \return mode of the dial. The value of the dial is indicated by the difference between the origin and the direction of the needle. In case of QwtDial::RotateNeedle the scale arc is fixed to the origin() and the needle is rotating, in case of QwtDial::RotateScale, the needle points to origin() and the scale is rotating. The default mode is QwtDial::RotateNeedle. \sa setMode(), origin(), setScaleArc(), value() */ QwtDial::Mode QwtDial::mode() const { return d_data->mode; } /*! Sets whether it is possible to step the value from the highest value to the lowest value and vice versa to on. \param wrapping en/disables wrapping \sa wrapping(), QwtDoubleRange::periodic() \note The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial. */ void QwtDial::setWrapping(bool wrapping) { setPeriodic(wrapping); } /*! wrapping() holds whether it is possible to step the value from the highest value to the lowest value and vice versa. \sa setWrapping(), QwtDoubleRange::setPeriodic() \note The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial. */ bool QwtDial::wrapping() const { return periodic(); } /*! Set the direction of the dial (clockwise/counterclockwise) Direction direction \sa direction() */ void QwtDial::setDirection(Direction direction) { if ( direction != d_data->direction ) { d_data->direction = direction; update(); } } /*! \return Direction of the dial The default direction of a dial is QwtDial::Clockwise \sa setDirection() */ QwtDial::Direction QwtDial::direction() const { return d_data->direction; } /*! Resize the dial widget \param e Resize event */ void QwtDial::resizeEvent(QResizeEvent *e) { QWidget::resizeEvent(e); if ( !hasVisibleBackground() ) updateMask(); } /*! Paint the dial \param e Paint event */ void QwtDial::paintEvent(QPaintEvent *e) { const QRect &ur = e->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); QPainter &painter = *paintBuffer.painter(); #else QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); #endif painter.save(); drawContents(&painter); painter.restore(); painter.save(); drawFrame(&painter); painter.restore(); if ( hasFocus() ) drawFocusIndicator(&painter); } } /*! Draw a dotted round circle, if !isReadOnly() \param painter Painter */ void QwtDial::drawFocusIndicator(QPainter *painter) const { if ( !isReadOnly() ) { QRect focusRect = contentsRect(); const int margin = 2; focusRect.setRect( focusRect.x() + margin, focusRect.y() + margin, focusRect.width() - 2 * margin, focusRect.height() - 2 * margin); #if QT_VERSION < 0x040000 QColor color = colorGroup().color(QColorGroup::Base); #else QColor color = palette().color(QPalette::Base); #endif if (color.isValid()) { const QColor gray(Qt::gray); int h, s, v; #if QT_VERSION < 0x040000 color.hsv(&h, &s, &v); #else color.getHsv(&h, &s, &v); #endif color = (v > 128) ? gray.dark(120) : gray.light(120); } else color = Qt::darkGray; painter->save(); painter->setBrush(Qt::NoBrush); painter->setPen(QPen(color, 0, Qt::DotLine)); painter->drawEllipse(focusRect); painter->restore(); } } /*! Draw the frame around the dial \param painter Painter \sa lineWidth(), frameShadow() */ void QwtDial::drawFrame(QPainter *painter) { const int lw = lineWidth(); const int off = (lw + 1) % 2; QRect r = boundingRect(); r.setRect(r.x() + lw / 2 - off, r.y() + lw / 2 - off, r.width() - lw + off + 1, r.height() - lw + off + 1); #if QT_VERSION >= 0x040000 r.setX(r.x() + 1); r.setY(r.y() + 1); r.setWidth(r.width() - 2); r.setHeight(r.height() - 2); #endif if ( lw > 0 ) { switch(d_data->frameShadow) { case QwtDial::Raised: #if QT_VERSION < 0x040000 QwtPainter::drawRoundFrame(painter, r, lw, colorGroup(), false); #else QwtPainter::drawRoundFrame(painter, r, lw, palette(), false); #endif break; case QwtDial::Sunken: #if QT_VERSION < 0x040000 QwtPainter::drawRoundFrame(painter, r, lw, colorGroup(), true); #else QwtPainter::drawRoundFrame(painter, r, lw, palette(), true); #endif break; default: // Plain { painter->save(); painter->setPen(QPen(Qt::black, lw)); painter->setBrush(Qt::NoBrush); painter->drawEllipse(r); painter->restore(); } } } } /*! \brief Draw the contents inside the frame QColorGroup::Background is the background color outside of the frame. QColorGroup::Base is the background color inside the frame. QColorGroup::Foreground is the background color inside the scale. \param painter Painter \sa boundingRect(), contentsRect(), scaleContentsRect(), QWidget::setPalette() */ void QwtDial::drawContents(QPainter *painter) const { #if QT_VERSION < 0x040000 if ( backgroundMode() == Qt::NoBackground || colorGroup().brush(QColorGroup::Base) != colorGroup().brush(QColorGroup::Background) ) #else if ( testAttribute(Qt::WA_NoSystemBackground) || palette().brush(QPalette::Base) != palette().brush(QPalette::Background) ) #endif { const QRect br = boundingRect(); painter->save(); painter->setPen(Qt::NoPen); #if QT_VERSION < 0x040000 painter->setBrush(colorGroup().brush(QColorGroup::Base)); #else painter->setBrush(palette().brush(QPalette::Base)); #endif painter->drawEllipse(br); painter->restore(); } const QRect insideScaleRect = scaleContentsRect(); #if QT_VERSION < 0x040000 if ( colorGroup().brush(QColorGroup::Foreground) != colorGroup().brush(QColorGroup::Base) ) #else if ( palette().brush(QPalette::Foreground) != palette().brush(QPalette::Base) ) #endif { painter->save(); painter->setPen(Qt::NoPen); #if QT_VERSION < 0x040000 painter->setBrush(colorGroup().brush(QColorGroup::Foreground)); #else painter->setBrush(palette().brush(QPalette::Foreground)); #endif painter->drawEllipse(insideScaleRect.x() - 1, insideScaleRect.y() - 1, insideScaleRect.width(), insideScaleRect.height() ); painter->restore(); } const QPoint center = insideScaleRect.center(); const int radius = insideScaleRect.width() / 2; painter->save(); drawScaleContents(painter, center, radius); painter->restore(); double direction = d_data->origin; if (isValid()) { direction = d_data->minScaleArc; if ( maxValue() > minValue() && d_data->maxScaleArc > d_data->minScaleArc ) { const double ratio = (value() - minValue()) / (maxValue() - minValue()); direction += ratio * (d_data->maxScaleArc - d_data->minScaleArc); } if ( d_data->direction == QwtDial::CounterClockwise ) direction = d_data->maxScaleArc - (direction - d_data->minScaleArc); direction += d_data->origin; if ( direction >= 360.0 ) direction -= 360.0; else if ( direction < 0.0 ) direction += 360.0; } double origin = d_data->origin; if ( mode() == RotateScale ) { origin -= direction - d_data->origin; direction = d_data->origin; } painter->save(); drawScale(painter, center, radius, origin, d_data->minScaleArc, d_data->maxScaleArc); painter->restore(); if ( isValid() ) { QPalette::ColorGroup cg; if ( isEnabled() ) cg = hasFocus() ? QPalette::Active : QPalette::Inactive; else cg = QPalette::Disabled; painter->save(); drawNeedle(painter, center, radius, direction, cg); painter->restore(); } } /*! Draw the needle \param painter Painter \param center Center of the dial \param radius Length for the needle \param direction Direction of the needle in degrees, counter clockwise \param cg ColorGroup */ void QwtDial::drawNeedle(QPainter *painter, const QPoint ¢er, int radius, double direction, QPalette::ColorGroup cg) const { if ( d_data->needle ) { direction = 360.0 - direction; // counter clockwise d_data->needle->draw(painter, center, radius, direction, cg); } } /*! Draw the scale \param painter Painter \param center Center of the dial \param radius Radius of the scale \param origin Origin of the scale \param minArc Minimum of the arc \param maxArc Minimum of the arc \sa QwtAbstractScaleDraw::setAngleRange() */ void QwtDial::drawScale(QPainter *painter, const QPoint ¢er, int radius, double origin, double minArc, double maxArc) const { if ( d_data->scaleDraw == NULL ) return; origin -= 270.0; // hardcoded origin of QwtScaleDraw double angle = maxArc - minArc; if ( angle > 360.0 ) angle = ::fmod(angle, 360.0); minArc += origin; if ( minArc < -360.0 ) minArc = ::fmod(minArc, 360.0); maxArc = minArc + angle; if ( maxArc > 360.0 ) { // QwtAbstractScaleDraw::setAngleRange accepts only values // in the range [-360.0..360.0] minArc -= 360.0; maxArc -= 360.0; } if ( d_data->direction == QwtDial::CounterClockwise ) qSwap(minArc, maxArc); painter->setFont(font()); d_data->scaleDraw->setAngleRange(minArc, maxArc); d_data->scaleDraw->setRadius(radius); d_data->scaleDraw->moveCenter(center); #if QT_VERSION < 0x040000 QColorGroup cg = colorGroup(); const QColor textColor = cg.color(QColorGroup::Text); cg.setColor(QColorGroup::Foreground, textColor); painter->setPen(QPen(textColor, d_data->scaleDraw->penWidth())); d_data->scaleDraw->draw(painter, cg); #else QPalette pal = palette(); const QColor textColor = pal.color(QPalette::Text); pal.setColor(QPalette::Foreground, textColor); //ticks, backbone painter->setPen(QPen(textColor, d_data->scaleDraw->penWidth())); d_data->scaleDraw->draw(painter, pal); #endif } void QwtDial::drawScaleContents(QPainter *, const QPoint &, int) const { // empty default implementation } /*! Set a needle for the dial Qwt is missing a set of good looking needles. Contributions are very welcome. \param needle Needle \warning The needle will be deleted, when a different needle is set or in ~QwtDial() */ void QwtDial::setNeedle(QwtDialNeedle *needle) { if ( needle != d_data->needle ) { if ( d_data->needle ) delete d_data->needle; d_data->needle = needle; update(); } } /*! \return needle \sa setNeedle() */ const QwtDialNeedle *QwtDial::needle() const { return d_data->needle; } /*! \return needle \sa setNeedle() */ QwtDialNeedle *QwtDial::needle() { return d_data->needle; } //! QwtDoubleRange update hook void QwtDial::rangeChange() { updateScale(); } /*! Update the scale with the current attributes \sa setScale() */ void QwtDial::updateScale() { if ( d_data->scaleDraw ) { QwtLinearScaleEngine scaleEngine; const QwtScaleDiv scaleDiv = scaleEngine.divideScale( minValue(), maxValue(), d_data->maxMajIntv, d_data->maxMinIntv, d_data->scaleStep); d_data->scaleDraw->setTransformation(scaleEngine.transformation()); d_data->scaleDraw->setScaleDiv(scaleDiv); } } //! Return the scale draw QwtDialScaleDraw *QwtDial::scaleDraw() { return d_data->scaleDraw; } //! Return the scale draw const QwtDialScaleDraw *QwtDial::scaleDraw() const { return d_data->scaleDraw; } /*! Set an individual scale draw \param scaleDraw Scale draw \warning The previous scale draw is deleted */ void QwtDial::setScaleDraw(QwtDialScaleDraw *scaleDraw) { if ( scaleDraw != d_data->scaleDraw ) { if ( d_data->scaleDraw ) delete d_data->scaleDraw; d_data->scaleDraw = scaleDraw; updateScale(); update(); } } /*! Change the intervals of the scale \sa QwtAbstractScaleDraw::setScale() */ void QwtDial::setScale(int maxMajIntv, int maxMinIntv, double step) { d_data->maxMajIntv = maxMajIntv; d_data->maxMinIntv = maxMinIntv; d_data->scaleStep = step; updateScale(); } /*! A wrapper method for accessing the scale draw. - options == 0\n No visible scale: setScaleDraw(NULL) - options & ScaleBackbone\n En/disable the backbone of the scale. - options & ScaleTicks\n En/disable the ticks of the scale. - options & ScaleLabel\n En/disable scale labels \sa QwtAbstractScaleDraw::enableComponent() */ void QwtDial::setScaleOptions(int options) { if ( options == 0 ) setScaleDraw(NULL); QwtDialScaleDraw *sd = d_data->scaleDraw; if ( sd == NULL ) return; sd->enableComponent(QwtAbstractScaleDraw::Backbone, options & ScaleBackbone); sd->enableComponent(QwtAbstractScaleDraw::Ticks, options & ScaleTicks); sd->enableComponent(QwtAbstractScaleDraw::Labels, options & ScaleLabel); } /*! Assign length and width of the ticks \param minLen Length of the minor ticks \param medLen Length of the medium ticks \param majLen Length of the major ticks \param penWidth Width of the pen for all ticks \sa QwtAbstractScaleDraw::setTickLength(), QwtDialScaleDraw::setPenWidth() */ void QwtDial::setScaleTicks(int minLen, int medLen, int majLen, int penWidth) { QwtDialScaleDraw *sd = d_data->scaleDraw; if ( sd ) { sd->setTickLength(QwtScaleDiv::MinorTick, minLen); sd->setTickLength(QwtScaleDiv::MediumTick, medLen); sd->setTickLength(QwtScaleDiv::MajorTick, majLen); sd->setPenWidth(penWidth); } } /*! Find the label for a value \param value Value \return label */ QwtText QwtDial::scaleLabel(double value) const { #if 1 if ( value == -0 ) value = 0; #endif return QString::number(value); } //! \return Lower limit of the scale arc double QwtDial::minScaleArc() const { return d_data->minScaleArc; } //! \return Upper limit of the scale arc double QwtDial::maxScaleArc() const { return d_data->maxScaleArc; } /*! \brief Change the origin The origin is the angle where scale and needle is relative to. \param origin New origin \sa origin() */ void QwtDial::setOrigin(double origin) { d_data->origin = origin; update(); } /*! The origin is the angle where scale and needle is relative to. \return Origin of the dial \sa setOrigin() */ double QwtDial::origin() const { return d_data->origin; } /*! Change the arc of the scale \param minArc Lower limit \param maxArc Upper limit */ void QwtDial::setScaleArc(double minArc, double maxArc) { if ( minArc != 360.0 && minArc != -360.0 ) minArc = fmod(minArc, 360.0); if ( maxArc != 360.0 && maxArc != -360.0 ) maxArc = fmod(maxArc, 360.0); d_data->minScaleArc = qwtMin(minArc, maxArc); d_data->maxScaleArc = qwtMax(minArc, maxArc); if ( d_data->maxScaleArc - d_data->minScaleArc > 360.0 ) d_data->maxScaleArc = d_data->minScaleArc + 360.0; update(); } //! QwtDoubleRange update hook void QwtDial::valueChange() { update(); QwtAbstractSlider::valueChange(); } /*! \return Size hint */ QSize QwtDial::sizeHint() const { int sh = 0; if ( d_data->scaleDraw ) sh = d_data->scaleDraw->extent( QPen(), font() ); const int d = 6 * sh + 2 * lineWidth(); return QSize( d, d ); } /*! \brief Return a minimum size hint \warning The return value of QwtDial::minimumSizeHint() depends on the font and the scale. */ QSize QwtDial::minimumSizeHint() const { int sh = 0; if ( d_data->scaleDraw ) sh = d_data->scaleDraw->extent(QPen(), font() ); const int d = 3 * sh + 2 * lineWidth(); return QSize( d, d ); } static double line2Radians(const QPoint &p1, const QPoint &p2) { const QPoint p = p2 - p1; double angle; if ( p.x() == 0 ) angle = ( p.y() <= 0 ) ? M_PI_2 : 3 * M_PI_2; else { angle = atan(double(-p.y()) / double(p.x())); if ( p.x() < 0 ) angle += M_PI; if ( angle < 0.0 ) angle += 2 * M_PI; } return 360.0 - angle * 180.0 / M_PI; } /*! Find the value for a given position \param pos Position \return Value */ double QwtDial::getValue(const QPoint &pos) { if ( d_data->maxScaleArc == d_data->minScaleArc || maxValue() == minValue() ) return minValue(); double dir = line2Radians(rect().center(), pos) - d_data->origin; if ( dir < 0.0 ) dir += 360.0; if ( mode() == RotateScale ) dir = 360.0 - dir; // The position might be in the area that is outside the scale arc. // We need the range of the scale if it was a complete circle. const double completeCircle = 360.0 / (d_data->maxScaleArc - d_data->minScaleArc) * (maxValue() - minValue()); double posValue = minValue() + completeCircle * dir / 360.0; if ( scrollMode() == ScrMouse ) { if ( d_data->previousDir >= 0.0 ) // valid direction { // We have to find out whether the mouse is moving // clock or counter clockwise bool clockWise = false; const double angle = dir - d_data->previousDir; if ( (angle >= 0.0 && angle <= 180.0) || angle < -180.0 ) clockWise = true; if ( clockWise ) { if ( dir < d_data->previousDir && mouseOffset() > 0.0 ) { // We passed 360 -> 0 setMouseOffset(mouseOffset() - completeCircle); } if ( wrapping() ) { if ( posValue - mouseOffset() > maxValue() ) { // We passed maxValue and the value will be set // to minValue. We have to adjust the mouseOffset. setMouseOffset(posValue - minValue()); } } else { if ( posValue - mouseOffset() > maxValue() || value() == maxValue() ) { // We fix the value at maxValue by adjusting // the mouse offset. setMouseOffset(posValue - maxValue()); } } } else { if ( dir > d_data->previousDir && mouseOffset() < 0.0 ) { // We passed 0 -> 360 setMouseOffset(mouseOffset() + completeCircle); } if ( wrapping() ) { if ( posValue - mouseOffset() < minValue() ) { // We passed minValue and the value will be set // to maxValue. We have to adjust the mouseOffset. setMouseOffset(posValue - maxValue()); } } else { if ( posValue - mouseOffset() < minValue() || value() == minValue() ) { // We fix the value at minValue by adjusting // the mouse offset. setMouseOffset(posValue - minValue()); } } } } d_data->previousDir = dir; } return posValue; } /*! See QwtAbstractSlider::getScrollMode() \param pos point where the mouse was pressed \retval scrollMode The scrolling mode \retval direction direction: 1, 0, or -1. \sa QwtAbstractSlider::getScrollMode() */ void QwtDial::getScrollMode(const QPoint &pos, int &scrollMode, int &direction) { direction = 0; scrollMode = ScrNone; const QRegion region(contentsRect(), QRegion::Ellipse); if ( region.contains(pos) && pos != rect().center() ) { scrollMode = ScrMouse; d_data->previousDir = -1.0; } } /*! Handles key events - Key_Down, KeyLeft\n Decrement by 1 - Key_Prior\n Decrement by pageSize() - Key_Home\n Set the value to minValue() - Key_Up, KeyRight\n Increment by 1 - Key_Next\n Increment by pageSize() - Key_End\n Set the value to maxValue() \param event Key event \sa isReadOnly() */ void QwtDial::keyPressEvent(QKeyEvent *event) { if ( isReadOnly() ) { event->ignore(); return; } if ( !isValid() ) return; double previous = prevValue(); switch ( event->key() ) { case Qt::Key_Down: case Qt::Key_Left: QwtDoubleRange::incValue(-1); break; #if QT_VERSION < 0x040000 case Qt::Key_Prior: #else case Qt::Key_PageUp: #endif QwtDoubleRange::incValue(-pageSize()); break; case Qt::Key_Home: setValue(minValue()); break; case Qt::Key_Up: case Qt::Key_Right: QwtDoubleRange::incValue(1); break; #if QT_VERSION < 0x040000 case Qt::Key_Next: #else case Qt::Key_PageDown: #endif QwtDoubleRange::incValue(pageSize()); break; case Qt::Key_End: setValue(maxValue()); break; default:; event->ignore(); } if (value() != previous) emit sliderMoved(value()); } /*! \brief Update the mask of the dial In case of "hasVisibleBackground() == false", the backgound is transparent by a mask. \sa showBackground(), hasVisibleBackground() */ void QwtDial::updateMask() { if ( d_data->visibleBackground ) clearMask(); else setMask(QRegion(boundingRect(), QRegion::Ellipse)); } qwt5-5.2.3/src/qwt_legend.h0000644000175000017500000000714412052741123015053 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_LEGEND_H #define QWT_LEGEND_H #include #include "qwt_global.h" #if QT_VERSION < 0x040000 #include #else #include #endif class QScrollBar; class QwtLegendItemManager; /*! \brief The legend widget The QwtLegend widget is a tabular arrangement of legend items. Legend items might be any type of widget, but in general they will be a QwtLegendItem. \sa QwtLegendItem, QwtLegendItemManager QwtPlot */ class QWT_EXPORT QwtLegend : public QFrame { Q_OBJECT public: /*! \brief Display policy - NoIdentifier\n The client code is responsible how to display of each legend item. The Qwt library will not interfere. - FixedIdentifier\n All legend items are displayed with the QwtLegendItem::IdentifierMode to be passed in 'mode'. - AutoIdentifier\n Each legend item is displayed with a mode that is a bitwise or of - QwtLegendItem::ShowLine (if its curve is drawn with a line) and - QwtLegendItem::ShowSymbol (if its curve is drawn with symbols) and - QwtLegendItem::ShowText (if the has a title). Default is AutoIdentifier. \sa setDisplayPolicy(), displayPolicy(), QwtLegendItem::IdentifierMode */ enum LegendDisplayPolicy { NoIdentifier = 0, FixedIdentifier = 1, AutoIdentifier = 2 }; /*! \brief Interaction mode for the legend items - ReadOnlyItem\n The legend item is not interactive, like a label - ClickableItem\n The legend item is clickable, like a push button - CheckableItem\n The legend item is checkable, like a checkable button Default is ReadOnlyItem. \sa setItemMode(), itemMode(), QwtLegendItem::IdentifierMode QwtLegendItem::clicked(), QwtLegendItem::checked(), QwtPlot::legendClicked(), QwtPlot::legendChecked() */ enum LegendItemMode { ReadOnlyItem, ClickableItem, CheckableItem }; explicit QwtLegend(QWidget *parent = NULL); virtual ~QwtLegend(); void setDisplayPolicy(LegendDisplayPolicy policy, int mode); LegendDisplayPolicy displayPolicy() const; void setItemMode(LegendItemMode); LegendItemMode itemMode() const; int identifierMode() const; QWidget *contentsWidget(); const QWidget *contentsWidget() const; void insert(const QwtLegendItemManager *, QWidget *); void remove(const QwtLegendItemManager *); QWidget *find(const QwtLegendItemManager *) const; QwtLegendItemManager *find(const QWidget *) const; #if QT_VERSION < 0x040000 virtual QValueList legendItems() const; #else virtual QList legendItems() const; #endif void clear(); bool isEmpty() const; uint itemCount() const; virtual bool eventFilter(QObject *, QEvent *); virtual QSize sizeHint() const; virtual int heightForWidth(int w) const; QScrollBar *horizontalScrollBar() const; QScrollBar *verticalScrollBar() const; protected: virtual void resizeEvent(QResizeEvent *); virtual void layoutContents(); private: class PrivateData; PrivateData *d_data; }; #endif // QWT_LEGEND_H qwt5-5.2.3/src/qwt_plot_curve.cpp0000644000175000017500000010131012052741126016323 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include "qwt_global.h" #include "qwt_legend.h" #include "qwt_legend_item.h" #include "qwt_data.h" #include "qwt_scale_map.h" #include "qwt_double_rect.h" #include "qwt_math.h" #include "qwt_clipper.h" #include "qwt_painter.h" #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_curve_fitter.h" #include "qwt_symbol.h" #include "qwt_plot_curve.h" #if QT_VERSION < 0x040000 #include #else #include #endif #if QT_VERSION >= 0x040000 #include #include class QwtPlotCurvePaintHelper: public QObject { public: QwtPlotCurvePaintHelper(const QwtPlotCurve *curve, int from, int to): _curve(curve), _from(from), _to(to) { } virtual bool eventFilter(QObject *, QEvent *event) { if ( event->type() == QEvent::Paint ) { _curve->draw(_from, _to); return true; } return false; } private: const QwtPlotCurve *_curve; int _from; int _to; }; #endif // QT_VERSION >= 0x040000 // Creating and initializing a QPainter is an // expensive operation. So we keep an painter // open for situations, where we paint outside // of paint events. This improves the performance // of incremental painting like in the realtime // example a lot. // But it is not possible to have more than // one QPainter open at the same time. So we // need to close it before regular paint events // are processed. class QwtGuardedPainter: public QObject { public: ~QwtGuardedPainter() { end(); } QPainter *begin(QwtPlotCanvas *canvas) { _canvas = canvas; QMap::iterator it = _map.find(_canvas); if ( it == _map.end() ) { QPainter *painter = new QPainter(_canvas); painter->setClipping(true); painter->setClipRect(_canvas->contentsRect()); it = _map.insert(_canvas, painter); _canvas->installEventFilter(this); } #if QT_VERSION < 0x040000 return it.data(); #else return it.value(); #endif } void end() { if ( _canvas ) { QMap::iterator it = _map.find(_canvas); if ( it != _map.end() ) { _canvas->removeEventFilter(this); #if QT_VERSION < 0x040000 delete it.data(); #else delete it.value(); #endif _map.erase(it); } } } virtual bool eventFilter(QObject *, QEvent *event) { if ( event->type() == QEvent::Paint ) end(); return false; } private: #if QT_VERSION < 0x040000 QGuardedPtr _canvas; #else QPointer _canvas; #endif static QMap _map; }; QMap QwtGuardedPainter::_map; static int verifyRange(int size, int &i1, int &i2) { if (size < 1) return 0; i1 = qwtLim(i1, 0, size-1); i2 = qwtLim(i2, 0, size-1); if ( i1 > i2 ) qSwap(i1, i2); return (i2 - i1 + 1); } class QwtPlotCurve::PrivateData { public: class PixelMatrix: private QBitArray { public: PixelMatrix(const QRect& rect): QBitArray(rect.width() * rect.height()), _rect(rect) { fill(false); } inline bool testPixel(const QPoint& pos) { if ( !_rect.contains(pos) ) return false; const int idx = _rect.width() * (pos.y() - _rect.y()) + (pos.x() - _rect.x()); const bool marked = testBit(idx); if ( !marked ) setBit(idx, true); return !marked; } private: QRect _rect; }; PrivateData(): curveType(Yfx), style(QwtPlotCurve::Lines), reference(0.0), attributes(0), paintAttributes(0) { symbol = new QwtSymbol(); pen = QPen(Qt::black); curveFitter = new QwtSplineCurveFitter; } ~PrivateData() { delete symbol; delete curveFitter; } QwtPlotCurve::CurveType curveType; QwtPlotCurve::CurveStyle style; double reference; QwtSymbol *symbol; QwtCurveFitter *curveFitter; QPen pen; QBrush brush; int attributes; int paintAttributes; QwtGuardedPainter guardedPainter; QRect canvasRect; // temporary, while painting }; //! Constructor QwtPlotCurve::QwtPlotCurve(): QwtPlotItem(QwtText()) { init(); } /*! Constructor \param title Title of the curve */ QwtPlotCurve::QwtPlotCurve(const QwtText &title): QwtPlotItem(title) { init(); } /*! Constructor \param title Title of the curve */ QwtPlotCurve::QwtPlotCurve(const QString &title): QwtPlotItem(QwtText(title)) { init(); } //! Destructor QwtPlotCurve::~QwtPlotCurve() { delete d_xy; delete d_data; } /*! \brief Initialize data members */ void QwtPlotCurve::init() { setItemAttribute(QwtPlotItem::Legend); setItemAttribute(QwtPlotItem::AutoScale); d_data = new PrivateData; d_xy = new QwtPolygonFData(QwtArray()); setZ(20.0); } //! \return QwtPlotItem::Rtti_PlotCurve int QwtPlotCurve::rtti() const { return QwtPlotItem::Rtti_PlotCurve; } /*! Specify an attribute how to draw the curve \param attribute Paint attribute \param on On/Off /sa PaintAttribute, testPaintAttribute() */ void QwtPlotCurve::setPaintAttribute(PaintAttribute attribute, bool on) { if ( on ) d_data->paintAttributes |= attribute; else d_data->paintAttributes &= ~attribute; } /*! \brief Return the current paint attributes \sa PaintAttribute, setPaintAttribute() */ bool QwtPlotCurve::testPaintAttribute(PaintAttribute attribute) const { return (d_data->paintAttributes & attribute); } /*! Set the curve's drawing style \param style Curve style \sa CurveStyle, style() */ void QwtPlotCurve::setStyle(CurveStyle style) { if ( style != d_data->style ) { d_data->style = style; itemChanged(); } } /*! Return the current style \sa CurveStyle, setStyle() */ QwtPlotCurve::CurveStyle QwtPlotCurve::style() const { return d_data->style; } /*! \brief Assign a symbol \param symbol Symbol \sa symbol() */ void QwtPlotCurve::setSymbol(const QwtSymbol &symbol ) { delete d_data->symbol; d_data->symbol = symbol.clone(); itemChanged(); } /*! \brief Return the current symbol \sa setSymbol() */ const QwtSymbol &QwtPlotCurve::symbol() const { return *d_data->symbol; } /*! Assign a pen The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen New pen \sa pen(), brush(), QwtPainter::scaledPen() */ void QwtPlotCurve::setPen(const QPen &pen) { if ( pen != d_data->pen ) { d_data->pen = pen; itemChanged(); } } /*! \brief Return the pen used to draw the lines \sa setPen(), brush() */ const QPen& QwtPlotCurve::pen() const { return d_data->pen; } /*! \brief Assign a brush. In case of brush.style() != QBrush::NoBrush and style() != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled. In case !brush.color().isValid() the area will be filled by pen.color(). The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending). \param brush New brush \sa brush(), setBaseline(), baseline() */ void QwtPlotCurve::setBrush(const QBrush &brush) { if ( brush != d_data->brush ) { d_data->brush = brush; itemChanged(); } } /*! \brief Return the brush used to fill the area between lines and the baseline \sa setBrush(), setBaseline(), baseline() */ const QBrush& QwtPlotCurve::brush() const { return d_data->brush; } /*! Set data by copying x- and y-values from specified memory blocks. Contrary to setCurveRawData(), this function makes a 'deep copy' of the data. \param xData Pointer to x values \param yData Pointer to y values \param size Size of xData and yData \note Internally the data is stored in a QwtArrayData object */ void QwtPlotCurve::setData(const double *xData, const double *yData, int size) { delete d_xy; d_xy = new QwtArrayData(xData, yData, size); itemChanged(); } /*! Initialize data with x- and y-arrays (explicitly shared) ( Builds an QwtArrayData object internally ) \param xData x data \param yData y data \note Internally the data is stored in a QwtArrayData object */ void QwtPlotCurve::setData(const QwtArray &xData, const QwtArray &yData) { delete d_xy; d_xy = new QwtArrayData(xData, yData); itemChanged(); } /*! Initialize data with an array of points (explicitly shared). \param data Data \note Internally the data is stored in a QwtPolygonFData object */ #if QT_VERSION < 0x040000 void QwtPlotCurve::setData(const QwtArray &data) #else void QwtPlotCurve::setData(const QPolygonF &data) #endif { delete d_xy; d_xy = new QwtPolygonFData(data); itemChanged(); } /*! Initialize data with a pointer to QwtData. \param data Data \sa QwtData::copy() */ void QwtPlotCurve::setData(const QwtData &data) { delete d_xy; d_xy = data.copy(); itemChanged(); } /*! \brief Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve. setRawData is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class. \param xData pointer to x data \param yData pointer to y data \param size size of x and y \note Internally the data is stored in a QwtCPointerData object */ void QwtPlotCurve::setRawData(const double *xData, const double *yData, int size) { delete d_xy; d_xy = new QwtCPointerData(xData, yData, size); itemChanged(); } /*! Returns the bounding rectangle of the curve data. If there is no bounding rect, like for empty data the rectangle is invalid. \sa QwtData::boundingRect(), QwtDoubleRect::isValid() */ QwtDoubleRect QwtPlotCurve::boundingRect() const { if ( d_xy == NULL ) return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid return d_xy->boundingRect(); } /*! \brief Draw the complete curve \param painter Painter \param xMap Maps x-values into pixel coordinates. \param yMap Maps y-values into pixel coordinates. \sa drawCurve(), drawSymbols() */ void QwtPlotCurve::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { d_data->canvasRect = canvasRect; draw(painter, xMap, yMap, 0, -1); d_data->canvasRect = QRect(); } /*! \brief Draw a set of points of a curve. When observing an measurement while it is running, new points have to be added to an existing curve. drawCurve can be used to display them avoiding a complete redraw of the canvas. Setting plot()->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); will result in faster painting, if the paint engine of the canvas widget supports this feature. \param from Index of the first point to be painted \param to Index of the last point to be painted. If to < 0 the curve will be painted to its last point. \sa drawCurve(), drawSymbols() */ void QwtPlotCurve::draw(int from, int to) const { if ( !plot() ) return; QwtPlotCanvas *canvas = plot()->canvas(); #if QT_VERSION >= 0x040000 #if 0 if ( canvas->paintEngine()->type() == QPaintEngine::OpenGL ) { /* OpenGL alway repaint the complete widget. So for this operation OpenGL is one of the slowest environments. */ canvas->repaint(); return; } #endif if ( !canvas->testAttribute(Qt::WA_WState_InPaintEvent) && !canvas->testAttribute(Qt::WA_PaintOutsidePaintEvent) ) { /* We save curve and range in helper and call repaint. The helper filters the Paint event, to repeat the QwtPlotCurve::draw, but now from inside the paint event. */ QwtPlotCurvePaintHelper helper(this, from, to); canvas->installEventFilter(&helper); const bool noSystemBackground = canvas->testAttribute(Qt::WA_NoSystemBackground); canvas->setAttribute(Qt::WA_NoSystemBackground, true); canvas->repaint(); canvas->setAttribute(Qt::WA_NoSystemBackground, noSystemBackground); return; } #endif const QwtScaleMap xMap = plot()->canvasMap(xAxis()); const QwtScaleMap yMap = plot()->canvasMap(yAxis()); if ( canvas->testPaintAttribute(QwtPlotCanvas::PaintCached) && canvas->paintCache() && !canvas->paintCache()->isNull() ) { QPainter cachePainter((QPixmap *)canvas->paintCache()); cachePainter.translate(-canvas->contentsRect().x(), -canvas->contentsRect().y()); draw(&cachePainter, xMap, yMap, from, to); } #if QT_VERSION >= 0x040000 if ( canvas->testAttribute(Qt::WA_WState_InPaintEvent) ) { QPainter painter(canvas); painter.setClipping(true); painter.setClipRect(canvas->contentsRect()); draw(&painter, xMap, yMap, from, to); } else #endif { QPainter *painter = d_data->guardedPainter.begin(canvas); draw(painter, xMap, yMap, from, to); } } /*! \brief Draw an interval of the curve \param painter Painter \param xMap maps x-values into pixel coordinates. \param yMap maps y-values into pixel coordinates. \param from index of the first point to be painted \param to index of the last point to be painted. If to < 0 the curve will be painted to its last point. \sa drawCurve(), drawSymbols(), */ void QwtPlotCurve::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { const size_t numPoints = dataSize(); if ( !painter || numPoints <= 0 ) return; if (to < 0) to = numPoints - 1; if ( verifyRange(numPoints, from, to) > 0 ) { painter->save(); painter->setPen(QwtPainter::scaledPen(d_data->pen)); /* Qt 4.0.0 is slow when drawing lines, but it's even slower when the painter has a brush. So we don't set the brush before we really need it. */ drawCurve(painter, d_data->style, xMap, yMap, from, to); painter->restore(); if (d_data->symbol->style() != QwtSymbol::NoSymbol) { painter->save(); drawSymbols(painter, *d_data->symbol, xMap, yMap, from, to); painter->restore(); } } } /*! \brief Draw the line part (without symbols) of a curve interval. \param painter Painter \param style curve style, see QwtPlotCurve::CurveStyle \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa draw(), drawDots(), drawLines(), drawSteps(), drawSticks() */ void QwtPlotCurve::drawCurve(QPainter *painter, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { switch (style) { case Lines: if ( testCurveAttribute(Fitted) ) { // we always need the complete // curve for fitting from = 0; to = dataSize() - 1; } drawLines(painter, xMap, yMap, from, to); break; case Sticks: drawSticks(painter, xMap, yMap, from, to); break; case Steps: drawSteps(painter, xMap, yMap, from, to); break; case Dots: drawDots(painter, xMap, yMap, from, to); break; case NoCurve: default: break; } } /*! \brief Draw lines If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted. \param painter Painter \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa setCurveAttribute(), setCurveFitter(), draw(), drawLines(), drawDots(), drawSteps(), drawSticks() */ void QwtPlotCurve::drawLines(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { int size = to - from + 1; if ( size <= 0 ) return; QwtPolygon polyline; if ( ( d_data->attributes & Fitted ) && d_data->curveFitter ) { // Transform x and y values to window coordinates // to avoid a distinction between linear and // logarithmic scales. #if QT_VERSION < 0x040000 QwtArray points(size); #else QPolygonF points(size); #endif for (int i = from; i <= to; i++) { QwtDoublePoint &p = points[i]; p.setX( xMap.xTransform(x(i)) ); p.setY( yMap.xTransform(y(i)) ); } points = d_data->curveFitter->fitCurve(points); size = points.size(); if ( size == 0 ) return; // Round QwtDoublePoints to QPoints // When Qwt support for Qt3 has been dropped (Qwt 6.x) // we will use a doubles for painting and the following // step will be obsolete. polyline.resize(size); const QwtDoublePoint *p = points.data(); QPoint *pl = polyline.data(); if ( d_data->paintAttributes & PaintFiltered ) { QPoint pp(qRound(p[0].x()), qRound(p[0].y())); pl[0] = pp; int count = 1; for (int i = 1; i < size; i++) { const QPoint pi(qRound(p[i].x()), qRound(p[i].y())); if ( pi != pp ) { pl[count++] = pi; pp = pi; } } if ( count != size ) polyline.resize(count); } else { for ( int i = 0; i < size; i++ ) { pl[i].setX( qRound(p[i].x()) ); pl[i].setY( qRound(p[i].y()) ); } } } else { polyline.resize(size); if ( d_data->paintAttributes & PaintFiltered ) { QPoint pp( xMap.transform(x(from)), yMap.transform(y(from)) ); polyline.setPoint(0, pp); int count = 1; for (int i = from + 1; i <= to; i++) { const QPoint pi(xMap.transform(x(i)), yMap.transform(y(i))); if ( pi != pp ) { polyline.setPoint(count, pi); count++; pp = pi; } } if ( count != size ) polyline.resize(count); } else { for (int i = from; i <= to; i++) { int xi = xMap.transform(x(i)); int yi = yMap.transform(y(i)); polyline.setPoint(i - from, xi, yi); } } } if ( d_data->canvasRect.isValid() && d_data->paintAttributes & ClipPolygons ) polyline = QwtClipper::clipPolygon(d_data->canvasRect, polyline); QwtPainter::drawPolyline(painter, polyline); if ( d_data->brush.style() != Qt::NoBrush ) fillCurve(painter, xMap, yMap, polyline); } /*! Draw sticks \param painter Painter \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa draw(), drawCurve(), drawDots(), drawLines(), drawSteps() */ void QwtPlotCurve::drawSticks(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { int x0 = xMap.transform(d_data->reference); int y0 = yMap.transform(d_data->reference); for (int i = from; i <= to; i++) { const int xi = xMap.transform(x(i)); const int yi = yMap.transform(y(i)); if (d_data->curveType == Xfy) QwtPainter::drawLine(painter, x0, yi, xi, yi); else QwtPainter::drawLine(painter, xi, y0, xi, yi); } } /*! Draw dots \param painter Painter \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa draw(), drawCurve(), drawSticks(), drawLines(), drawSteps() */ void QwtPlotCurve::drawDots(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { const bool doFill = d_data->brush.style() != Qt::NoBrush; QwtPolygon polyline; if ( doFill ) polyline.resize(to - from + 1); if ( to > from && d_data->paintAttributes & PaintFiltered ) { if ( doFill || d_data->canvasRect.isEmpty() ) { QPoint pp( xMap.transform(x(from)), yMap.transform(y(from)) ); QwtPainter::drawPoint(painter, pp.x(), pp.y()); polyline.setPoint(0, pp); int count = 1; for (int i = from + 1; i <= to; i++) { const QPoint pi(xMap.transform(x(i)), yMap.transform(y(i))); if ( pi != pp ) { QwtPainter::drawPoint(painter, pi.x(), pi.y()); polyline.setPoint(count, pi); count++; pp = pi; } } if ( int(polyline.size()) != count ) polyline.resize(count); } else { // if we don't need to fill, we can sort out // duplicates independent from the order PrivateData::PixelMatrix pixelMatrix(d_data->canvasRect); for (int i = from; i <= to; i++) { const QPoint p( xMap.transform(x(i)), yMap.transform(y(i)) ); if ( pixelMatrix.testPixel(p) ) QwtPainter::drawPoint(painter, p.x(), p.y()); } } } else { for (int i = from; i <= to; i++) { const int xi = xMap.transform(x(i)); const int yi = yMap.transform(y(i)); QwtPainter::drawPoint(painter, xi, yi); if ( doFill ) polyline.setPoint(i - from, xi, yi); } } if ( doFill ) { if ( d_data->canvasRect.isValid() && (d_data->paintAttributes & ClipPolygons) ) polyline = QwtClipper::clipPolygon(d_data->canvasRect, polyline); fillCurve(painter, xMap, yMap, polyline); } } /*! Draw step function The direction of the steps depends on Inverted attribute. \param painter Painter \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa CurveAttribute, setCurveAttribute(), draw(), drawCurve(), drawDots(), drawLines(), drawSticks() */ void QwtPlotCurve::drawSteps(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { QwtPolygon polyline(2 * (to - from) + 1); bool inverted = d_data->curveType == Yfx; if ( d_data->attributes & Inverted ) inverted = !inverted; int i,ip; for (i = from, ip = 0; i <= to; i++, ip += 2) { const int xi = xMap.transform(x(i)); const int yi = yMap.transform(y(i)); if ( ip > 0 ) { if (inverted) polyline.setPoint(ip - 1, polyline[ip-2].x(), yi); else polyline.setPoint(ip - 1, xi, polyline[ip-2].y()); } polyline.setPoint(ip, xi, yi); } if ( d_data->canvasRect.isValid() && (d_data->paintAttributes & ClipPolygons) ) polyline = QwtClipper::clipPolygon(d_data->canvasRect, polyline); QwtPainter::drawPolyline(painter, polyline); if ( d_data->brush.style() != Qt::NoBrush ) fillCurve(painter, xMap, yMap, polyline); } /*! Specify an attribute for drawing the curve \param attribute Curve attribute \param on On/Off /sa CurveAttribute, testCurveAttribute(), setCurveFitter() */ void QwtPlotCurve::setCurveAttribute(CurveAttribute attribute, bool on) { if ( bool(d_data->attributes & attribute) == on ) return; if ( on ) d_data->attributes |= attribute; else d_data->attributes &= ~attribute; itemChanged(); } /*! \return true, if attribute is enabled \sa CurveAttribute, setCurveAttribute() */ bool QwtPlotCurve::testCurveAttribute(CurveAttribute attribute) const { return d_data->attributes & attribute; } /*! Assign the curve type \param curveType Yfx or Xfy \sa CurveType, curveType() */ void QwtPlotCurve::setCurveType(CurveType curveType) { if ( d_data->curveType != curveType ) { d_data->curveType = curveType; itemChanged(); } } /*! Return the curve type \sa CurveType, setCurveType() */ QwtPlotCurve::CurveType QwtPlotCurve::curveType() const { return d_data->curveType; } /*! Assign a curve fitter setCurveFitter(NULL) disables curve fitting. \param curveFitter Curve fitter */ void QwtPlotCurve::setCurveFitter(QwtCurveFitter *curveFitter) { delete d_data->curveFitter; d_data->curveFitter = curveFitter; itemChanged(); } /*! Get the curve fitter. If curve fitting is disabled NULL is returned. \return Curve fitter */ QwtCurveFitter *QwtPlotCurve::curveFitter() const { return d_data->curveFitter; } /*! Fill the area between the curve and the baseline with the curve brush \param painter Painter \param xMap x map \param yMap y map \param pa Polygon \sa setBrush(), setBaseline(), setCurveType() */ void QwtPlotCurve::fillCurve(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, QwtPolygon &pa) const { if ( d_data->brush.style() == Qt::NoBrush ) return; closePolyline(xMap, yMap, pa); if ( pa.count() <= 2 ) // a line can't be filled return; QBrush b = d_data->brush; if ( !b.color().isValid() ) b.setColor(d_data->pen.color()); painter->save(); painter->setPen(QPen(Qt::NoPen)); painter->setBrush(b); QwtPainter::drawPolygon(painter, pa); painter->restore(); } /*! \brief Complete a polygon to be a closed polygon including the area between the original polygon and the baseline. \param xMap X map \param yMap Y map \param pa Polygon to be completed */ void QwtPlotCurve::closePolyline( const QwtScaleMap &xMap, const QwtScaleMap &yMap, QwtPolygon &pa) const { const int sz = pa.size(); if ( sz < 2 ) return; pa.resize(sz + 2); if ( d_data->curveType == QwtPlotCurve::Xfy ) { pa.setPoint(sz, xMap.transform(d_data->reference), pa.point(sz - 1).y()); pa.setPoint(sz + 1, xMap.transform(d_data->reference), pa.point(0).y()); } else { pa.setPoint(sz, pa.point(sz - 1).x(), yMap.transform(d_data->reference)); pa.setPoint(pa.size() - 1, pa.point(0).x(), yMap.transform(d_data->reference)); } } /*! \brief Draw symbols \param painter Painter \param symbol Curve symbol \param xMap x map \param yMap y map \param from index of the first point to be painted \param to index of the last point to be painted \sa setSymbol(), draw(), drawCurve() */ void QwtPlotCurve::drawSymbols(QPainter *painter, const QwtSymbol &symbol, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const { painter->setBrush(symbol.brush()); painter->setPen(QwtPainter::scaledPen(symbol.pen())); const QwtMetricsMap &metricsMap = QwtPainter::metricsMap(); QRect rect; rect.setSize(metricsMap.screenToLayout(symbol.size())); if ( (to > from) && (d_data->paintAttributes & PaintFiltered) && d_data->canvasRect.isValid() ) { PrivateData::PixelMatrix pixelMatrix(d_data->canvasRect); for (int i = from; i <= to; i++) { const QPoint pi( xMap.transform(x(i)), yMap.transform(y(i)) ); if ( pixelMatrix.testPixel(pi) ) { rect.moveCenter(pi); symbol.draw(painter, rect); } } } else { for (int i = from; i <= to; i++) { const int xi = xMap.transform(x(i)); const int yi = yMap.transform(y(i)); rect.moveCenter(QPoint(xi, yi)); symbol.draw(painter, rect); } } } /*! \brief Set the value of the baseline The baseline is needed for filling the curve with a brush or the Sticks drawing style. The default value is 0.0. The interpretation of the baseline depends on the CurveType. With QwtPlotCurve::Yfx, the baseline is interpreted as a horizontal line at y = baseline(), with QwtPlotCurve::Yfy, it is interpreted as a vertical line at x = baseline(). \param reference baseline \sa baseline(), setBrush(), setStyle(), setCurveType() */ void QwtPlotCurve::setBaseline(double reference) { if ( d_data->reference != reference ) { d_data->reference = reference; itemChanged(); } } /*! Return the value of the baseline \sa setBaseline() */ double QwtPlotCurve::baseline() const { return d_data->reference; } /*! Return the size of the data arrays \sa setData() */ int QwtPlotCurve::dataSize() const { return d_xy->size(); } /*! Find the closest curve point for a specific position \param pos Position, where to look for the closest curve point \param dist If dist != NULL, closestPoint() returns the distance between the position and the clostest curve point \return Index of the closest curve point, or -1 if none can be found ( f.e when the curve has no points ) \note closestPoint() implements a dumb algorithm, that iterates over all points */ int QwtPlotCurve::closestPoint(const QPoint &pos, double *dist) const { const size_t numPoints = dataSize(); if ( plot() == NULL || numPoints <= 0 ) return -1; const QwtScaleMap xMap = plot()->canvasMap(xAxis()); const QwtScaleMap yMap = plot()->canvasMap(yAxis()); int index = -1; double dmin = 1.0e10; for (int i=0; i < (int)numPoints; i++) { const double cx = xMap.xTransform(x(i)) - pos.x(); const double cy = yMap.xTransform(y(i)) - pos.y(); const double f = qwtSqr(cx) + qwtSqr(cy); if (f < dmin) { index = i; dmin = f; } } if ( dist ) *dist = sqrt(dmin); return index; } //! Update the widget that represents the curve on the legend void QwtPlotCurve::updateLegend(QwtLegend *legend) const { if ( !legend ) return; QwtPlotItem::updateLegend(legend); QWidget *widget = legend->find(this); if ( !widget || !widget->inherits("QwtLegendItem") ) return; QwtLegendItem *legendItem = (QwtLegendItem *)widget; #if QT_VERSION < 0x040000 const bool doUpdate = legendItem->isUpdatesEnabled(); #else const bool doUpdate = legendItem->updatesEnabled(); #endif legendItem->setUpdatesEnabled(false); const int policy = legend->displayPolicy(); if (policy == QwtLegend::FixedIdentifier) { int mode = legend->identifierMode(); if (mode & QwtLegendItem::ShowLine) legendItem->setCurvePen(pen()); if (mode & QwtLegendItem::ShowSymbol) legendItem->setSymbol(symbol()); if (mode & QwtLegendItem::ShowText) legendItem->setText(title()); else legendItem->setText(QwtText()); legendItem->setIdentifierMode(mode); } else if (policy == QwtLegend::AutoIdentifier) { int mode = 0; if (QwtPlotCurve::NoCurve != style()) { legendItem->setCurvePen(pen()); mode |= QwtLegendItem::ShowLine; } if (QwtSymbol::NoSymbol != symbol().style()) { legendItem->setSymbol(symbol()); mode |= QwtLegendItem::ShowSymbol; } if ( !title().isEmpty() ) { legendItem->setText(title()); mode |= QwtLegendItem::ShowText; } else { legendItem->setText(QwtText()); } legendItem->setIdentifierMode(mode); } legendItem->setUpdatesEnabled(doUpdate); legendItem->update(); } qwt5-5.2.3/src/qwt_wheel.h0000644000175000017500000000456112052741123014721 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_WHEEL_H #define QWT_WHEEL_H #include "qwt_global.h" #include "qwt_abstract_slider.h" /*! \brief The Wheel Widget The wheel widget can be used to change values over a very large range in very small steps. Using the setMass member, it can be configured as a flywheel. \sa The radio example. */ class QWT_EXPORT QwtWheel : public QwtAbstractSlider { Q_OBJECT Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle ) Q_PROPERTY( double viewAngle READ viewAngle WRITE setViewAngle ) Q_PROPERTY( int tickCnt READ tickCnt WRITE setTickCnt ) Q_PROPERTY( int internalBorder READ internalBorder WRITE setInternalBorder ) Q_PROPERTY( double mass READ mass WRITE setMass ) public: explicit QwtWheel(QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtWheel(QWidget *parent, const char *name); #endif virtual ~QwtWheel(); virtual void setOrientation(Qt::Orientation); double totalAngle() const; double viewAngle() const; int tickCnt() const; int internalBorder() const; double mass() const; void setTotalAngle (double angle); void setTickCnt(int cnt); void setViewAngle(double angle); void setInternalBorder(int width); void setMass(double val); void setWheelWidth( int w ); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; protected: virtual void resizeEvent(QResizeEvent *e); virtual void paintEvent(QPaintEvent *e); void layoutWheel( bool update = true ); void draw(QPainter *, const QRect &); void drawWheel(QPainter *, const QRect &); void drawWheelBackground(QPainter *, const QRect &); void setColorArray(); virtual void valueChange(); virtual void paletteChange( const QPalette &); virtual double getValue(const QPoint &); virtual void getScrollMode(const QPoint &, int &scrollMode, int &direction); private: void initWheel(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_picker.cpp0000644000175000017500000010677512052741126015442 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_picker_machine.h" #include "qwt_picker.h" #if QT_VERSION < 0x040000 #include #else #include #include #endif class QwtPicker::PickerWidget: public QWidget { public: enum Type { RubberBand, Text }; PickerWidget(QwtPicker *, QWidget *, Type); virtual void updateMask(); /* For a tracker text with a background we can use the background rect as mask. Also for "regular" Qt widgets >= 4.3.0 we don't need to mask the text anymore. */ bool d_hasTextMask; protected: virtual void paintEvent(QPaintEvent *); QwtPicker *d_picker; Type d_type; }; class QwtPicker::PrivateData { public: bool enabled; QwtPickerMachine *stateMachine; int selectionFlags; QwtPicker::ResizeMode resizeMode; QwtPicker::RubberBand rubberBand; QPen rubberBandPen; QwtPicker::DisplayMode trackerMode; QPen trackerPen; QFont trackerFont; QwtPolygon selection; bool isActive; QPoint trackerPosition; bool mouseTracking; // used to save previous value /* On X11 the widget below the picker widgets gets paint events with a region that is the bounding rect of the mask, if it is complex. In case of (f.e) a CrossRubberBand and a text this creates complete repaints of the widget. So we better use two different widgets. */ #if QT_VERSION < 0x040000 QGuardedPtr rubberBandWidget; QGuardedPtr trackerWidget; #else QPointer rubberBandWidget; QPointer trackerWidget; #endif }; QwtPicker::PickerWidget::PickerWidget( QwtPicker *picker, QWidget *parent, Type type): QWidget(parent), d_hasTextMask(false), d_picker(picker), d_type(type) { #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_TransparentForMouseEvents); setAttribute(Qt::WA_NoSystemBackground); setFocusPolicy(Qt::NoFocus); #else setBackgroundMode(Qt::NoBackground); setFocusPolicy(QWidget::NoFocus); setMouseTracking(true); #endif } void QwtPicker::PickerWidget::updateMask() { QRegion mask; if ( d_type == RubberBand ) { QBitmap bm(width(), height()); bm.fill(Qt::color0); QPainter painter(&bm); QPen pen = d_picker->rubberBandPen(); pen.setColor(Qt::color1); painter.setPen(pen); d_picker->drawRubberBand(&painter); mask = QRegion(bm); } if ( d_type == Text ) { d_hasTextMask = true; #if QT_VERSION >= 0x040300 if ( !parentWidget()->testAttribute(Qt::WA_PaintOnScreen) ) { #if 0 if ( parentWidget()->paintEngine()->type() != QPaintEngine::OpenGL ) #endif { // With Qt >= 4.3 drawing of the tracker can be implemented in an // easier way, using the textRect as mask. d_hasTextMask = false; } } #endif if ( d_hasTextMask ) { const QwtText label = d_picker->trackerText( d_picker->trackerPosition()); if ( label.testPaintAttribute(QwtText::PaintBackground) && label.backgroundBrush().style() != Qt::NoBrush ) { #if QT_VERSION >= 0x040300 if ( label.backgroundBrush().color().alpha() > 0 ) #endif // We don't need a text mask, when we have a background d_hasTextMask = false; } } if ( d_hasTextMask ) { QBitmap bm(width(), height()); bm.fill(Qt::color0); QPainter painter(&bm); painter.setFont(font()); QPen pen = d_picker->trackerPen(); pen.setColor(Qt::color1); painter.setPen(pen); d_picker->drawTracker(&painter); mask = QRegion(bm); #if QT_VERSION < 0x040000 const QRect tr = d_picker->trackerRect(font()); if ( mask.boundingRect().x() < tr.left() ) { /* Qt Bug: When painting a text into a rectangle on a bitmap the x position of the rectangle seems to be ignored So we manually translate the mask into the rectangle. */ mask.translate(tr.left(), 0); } #endif } else { mask = d_picker->trackerRect(font()); } } #if QT_VERSION < 0x040000 QWidget *w = parentWidget(); const bool doUpdate = w->isUpdatesEnabled(); const Qt::BackgroundMode bgMode = w->backgroundMode(); w->setUpdatesEnabled(false); if ( bgMode != Qt::NoBackground ) w->setBackgroundMode(Qt::NoBackground); #endif setMask(mask); #if QT_VERSION < 0x040000 if ( bgMode != Qt::NoBackground ) w->setBackgroundMode(bgMode); w->setUpdatesEnabled(doUpdate); #endif setShown(!mask.isEmpty()); } void QwtPicker::PickerWidget::paintEvent(QPaintEvent *e) { QPainter painter(this); painter.setClipRegion(e->region()); if ( d_type == RubberBand ) { painter.setPen(d_picker->rubberBandPen()); d_picker->drawRubberBand(&painter); } if ( d_type == Text ) { /* If we have a text mask we simply fill the region of the mask. This gives better results for antialiased fonts. */ bool doDrawTracker = !d_hasTextMask; #if QT_VERSION < 0x040000 if ( !doDrawTracker && QPainter::redirect(this) ) { // setMask + painter redirection doesn't work doDrawTracker = true; } #endif if ( doDrawTracker ) { painter.setPen(d_picker->trackerPen()); d_picker->drawTracker(&painter); } else painter.fillRect(e->rect(), QBrush(d_picker->trackerPen().color())); } } /*! Constructor Creates an picker that is enabled, but where selection flag is set to NoSelection, rubberband and tracker are disabled. \param parent Parent widget, that will be observed */ QwtPicker::QwtPicker(QWidget *parent): QObject(parent) { init(parent, NoSelection, NoRubberBand, AlwaysOff); } /*! Constructor \param selectionFlags Or'd value of SelectionType, RectSelectionType and SelectionMode \param rubberBand Rubberband style \param trackerMode Tracker mode \param parent Parent widget, that will be observed */ QwtPicker::QwtPicker(int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *parent): QObject(parent) { init(parent, selectionFlags, rubberBand, trackerMode); } //! Destructor QwtPicker::~QwtPicker() { setMouseTracking(false); delete d_data->stateMachine; delete d_data->rubberBandWidget; delete d_data->trackerWidget; delete d_data; } //! Init the picker, used by the constructors void QwtPicker::init(QWidget *parent, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode) { d_data = new PrivateData; d_data->rubberBandWidget = NULL; d_data->trackerWidget = NULL; d_data->rubberBand = rubberBand; d_data->enabled = false; d_data->resizeMode = Stretch; d_data->trackerMode = AlwaysOff; d_data->isActive = false; d_data->trackerPosition = QPoint(-1, -1); d_data->mouseTracking = false; d_data->stateMachine = NULL; setSelectionFlags(selectionFlags); if ( parent ) { #if QT_VERSION >= 0x040000 if ( parent->focusPolicy() == Qt::NoFocus ) parent->setFocusPolicy(Qt::WheelFocus); #else if ( parent->focusPolicy() == QWidget::NoFocus ) parent->setFocusPolicy(QWidget::WheelFocus); #endif d_data->trackerFont = parent->font(); d_data->mouseTracking = parent->hasMouseTracking(); setEnabled(true); } setTrackerMode(trackerMode); } /*! Set a state machine and delete the previous one */ void QwtPicker::setStateMachine(QwtPickerMachine *stateMachine) { if ( d_data->stateMachine != stateMachine ) { reset(); delete d_data->stateMachine; d_data->stateMachine = stateMachine; if ( d_data->stateMachine ) d_data->stateMachine->reset(); } } /*! Create a state machine depending on the selection flags. - PointSelection | ClickSelection\n QwtPickerClickPointMachine() - PointSelection | DragSelection\n QwtPickerDragPointMachine() - RectSelection | ClickSelection\n QwtPickerClickRectMachine() - RectSelection | DragSelection\n QwtPickerDragRectMachine() - PolygonSelection\n QwtPickerPolygonMachine() \sa setSelectionFlags() */ QwtPickerMachine *QwtPicker::stateMachine(int flags) const { if ( flags & PointSelection ) { if ( flags & ClickSelection ) return new QwtPickerClickPointMachine; else return new QwtPickerDragPointMachine; } if ( flags & RectSelection ) { if ( flags & ClickSelection ) return new QwtPickerClickRectMachine; else return new QwtPickerDragRectMachine; } if ( flags & PolygonSelection ) { return new QwtPickerPolygonMachine(); } return NULL; } //! Return the parent widget, where the selection happens QWidget *QwtPicker::parentWidget() { QObject *obj = parent(); if ( obj && obj->isWidgetType() ) return (QWidget *)obj; return NULL; } //! Return the parent widget, where the selection happens const QWidget *QwtPicker::parentWidget() const { QObject *obj = parent(); if ( obj && obj->isWidgetType() ) return (QWidget *)obj; return NULL; } /*! Set the selection flags \param flags Or'd value of SelectionType, RectSelectionType and SelectionMode. The default value is NoSelection. \sa selectionFlags(), SelectionType, RectSelectionType, SelectionMode */ void QwtPicker::setSelectionFlags(int flags) { d_data->selectionFlags = flags; setStateMachine(stateMachine(flags)); } /*! \return Selection flags, an Or'd value of SelectionType, RectSelectionType and SelectionMode. \sa setSelectionFlags(), SelectionType, RectSelectionType, SelectionMode */ int QwtPicker::selectionFlags() const { return d_data->selectionFlags; } /*! Set the rubberband style \param rubberBand Rubberband style The default value is NoRubberBand. \sa rubberBand(), RubberBand, setRubberBandPen() */ void QwtPicker::setRubberBand(RubberBand rubberBand) { d_data->rubberBand = rubberBand; } /*! \return Rubberband style \sa setRubberBand(), RubberBand, rubberBandPen() */ QwtPicker::RubberBand QwtPicker::rubberBand() const { return d_data->rubberBand; } /*! \brief Set the display mode of the tracker. A tracker displays information about current position of the cursor as a string. The display mode controls if the tracker has to be displayed whenever the observed widget has focus and cursor (AlwaysOn), never (AlwaysOff), or only when the selection is active (ActiveOnly). \param mode Tracker display mode \warning In case of AlwaysOn, mouseTracking will be enabled for the observed widget. \sa trackerMode(), DisplayMode */ void QwtPicker::setTrackerMode(DisplayMode mode) { if ( d_data->trackerMode != mode ) { d_data->trackerMode = mode; setMouseTracking(d_data->trackerMode == AlwaysOn); } } /*! \return Tracker display mode \sa setTrackerMode(), DisplayMode */ QwtPicker::DisplayMode QwtPicker::trackerMode() const { return d_data->trackerMode; } /*! \brief Set the resize mode. The resize mode controls what to do with the selected points of an active selection when the observed widget is resized. Stretch means the points are scaled according to the new size, KeepSize means the points remain unchanged. The default mode is Stretch. \param mode Resize mode \sa resizeMode(), ResizeMode */ void QwtPicker::setResizeMode(ResizeMode mode) { d_data->resizeMode = mode; } /*! \return Resize mode \sa setResizeMode(), ResizeMode */ QwtPicker::ResizeMode QwtPicker::resizeMode() const { return d_data->resizeMode; } /*! \brief En/disable the picker When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed. \param enabled true or false \sa isEnabled(), eventFilter() */ void QwtPicker::setEnabled(bool enabled) { if ( d_data->enabled != enabled ) { d_data->enabled = enabled; QWidget *w = parentWidget(); if ( w ) { if ( enabled ) w->installEventFilter(this); else w->removeEventFilter(this); } updateDisplay(); } } /*! \return true when enabled, false otherwise \sa setEnabled(), eventFilter() */ bool QwtPicker::isEnabled() const { return d_data->enabled; } /*! Set the font for the tracker \param font Tracker font \sa trackerFont(), setTrackerMode(), setTrackerPen() */ void QwtPicker::setTrackerFont(const QFont &font) { if ( font != d_data->trackerFont ) { d_data->trackerFont = font; updateDisplay(); } } /*! \return Tracker font \sa setTrackerFont(), trackerMode(), trackerPen() */ QFont QwtPicker::trackerFont() const { return d_data->trackerFont; } /*! Set the pen for the tracker \param pen Tracker pen \sa trackerPen(), setTrackerMode(), setTrackerFont() */ void QwtPicker::setTrackerPen(const QPen &pen) { if ( pen != d_data->trackerPen ) { d_data->trackerPen = pen; updateDisplay(); } } /*! \return Tracker pen \sa setTrackerPen(), trackerMode(), trackerFont() */ QPen QwtPicker::trackerPen() const { return d_data->trackerPen; } /*! Set the pen for the rubberband \param pen Rubberband pen \sa rubberBandPen(), setRubberBand() */ void QwtPicker::setRubberBandPen(const QPen &pen) { if ( pen != d_data->rubberBandPen ) { d_data->rubberBandPen = pen; updateDisplay(); } } /*! \return Rubberband pen \sa setRubberBandPen(), rubberBand() */ QPen QwtPicker::rubberBandPen() const { return d_data->rubberBandPen; } /*! \brief Return the label for a position In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position. Otherwise the label contains x and y position separated by a ',' . The format for the string conversion is "%d". \param pos Position \return Converted position as string */ QwtText QwtPicker::trackerText(const QPoint &pos) const { QString label; switch(rubberBand()) { case HLineRubberBand: label.sprintf("%d", pos.y()); break; case VLineRubberBand: label.sprintf("%d", pos.x()); break; default: label.sprintf("%d, %d", pos.x(), pos.y()); } return label; } /*! Draw a rubberband , depending on rubberBand() and selectionFlags() \param painter Painter, initialized with clip rect \sa rubberBand(), RubberBand, selectionFlags() */ void QwtPicker::drawRubberBand(QPainter *painter) const { if ( !isActive() || rubberBand() == NoRubberBand || rubberBandPen().style() == Qt::NoPen ) { return; } const QRect &pRect = pickRect(); const QwtPolygon &pa = d_data->selection; if ( selectionFlags() & PointSelection ) { if ( pa.count() < 1 ) return; const QPoint pos = pa[0]; switch(rubberBand()) { case VLineRubberBand: QwtPainter::drawLine(painter, pos.x(), pRect.top(), pos.x(), pRect.bottom()); break; case HLineRubberBand: QwtPainter::drawLine(painter, pRect.left(), pos.y(), pRect.right(), pos.y()); break; case CrossRubberBand: QwtPainter::drawLine(painter, pos.x(), pRect.top(), pos.x(), pRect.bottom()); QwtPainter::drawLine(painter, pRect.left(), pos.y(), pRect.right(), pos.y()); break; default: break; } } else if ( selectionFlags() & RectSelection ) { if ( pa.count() < 2 ) return; QPoint p1 = pa[0]; QPoint p2 = pa[int(pa.count() - 1)]; if ( selectionFlags() & CenterToCorner ) { p1.setX(p1.x() - (p2.x() - p1.x())); p1.setY(p1.y() - (p2.y() - p1.y())); } else if ( selectionFlags() & CenterToRadius ) { const int radius = qwtMax(qwtAbs(p2.x() - p1.x()), qwtAbs(p2.y() - p1.y())); p2.setX(p1.x() + radius); p2.setY(p1.y() + radius); p1.setX(p1.x() - radius); p1.setY(p1.y() - radius); } #if QT_VERSION < 0x040000 const QRect rect = QRect(p1, p2).normalize(); #else const QRect rect = QRect(p1, p2).normalized(); #endif switch(rubberBand()) { case EllipseRubberBand: QwtPainter::drawEllipse(painter, rect); break; case RectRubberBand: QwtPainter::drawRect(painter, rect); break; default: break; } } else if ( selectionFlags() & PolygonSelection ) { if ( rubberBand() == PolygonRubberBand ) painter->drawPolyline(pa); } } /*! Draw the tracker \param painter Painter \sa trackerRect(), trackerText() */ void QwtPicker::drawTracker(QPainter *painter) const { const QRect textRect = trackerRect(painter->font()); if ( !textRect.isEmpty() ) { QwtText label = trackerText(d_data->trackerPosition); if ( !label.isEmpty() ) { painter->save(); #if defined(Q_WS_MAC) // Antialiased fonts are broken on the Mac. #if QT_VERSION >= 0x040000 painter->setRenderHint(QPainter::TextAntialiasing, false); #else QFont fnt = label.usedFont(painter->font()); fnt.setStyleStrategy(QFont::NoAntialias); label.setFont(fnt); #endif #endif label.draw(painter, textRect); painter->restore(); } } } //! \return Current position of the tracker QPoint QwtPicker::trackerPosition() const { return d_data->trackerPosition; } /*! Calculate the bounding rectangle for the tracker text from the current position of the tracker \param font Font of the tracker text \return Bounding rectangle of the tracker text \sa trackerPosition() */ QRect QwtPicker::trackerRect(const QFont &font) const { if ( trackerMode() == AlwaysOff || (trackerMode() == ActiveOnly && !isActive() ) ) { return QRect(); } if ( d_data->trackerPosition.x() < 0 || d_data->trackerPosition.y() < 0 ) return QRect(); QwtText text = trackerText(d_data->trackerPosition); if ( text.isEmpty() ) return QRect(); QRect textRect(QPoint(0, 0), text.textSize(font)); const QPoint &pos = d_data->trackerPosition; int alignment = 0; if ( isActive() && d_data->selection.count() > 1 && rubberBand() != NoRubberBand ) { const QPoint last = d_data->selection[int(d_data->selection.count()) - 2]; alignment |= (pos.x() >= last.x()) ? Qt::AlignRight : Qt::AlignLeft; alignment |= (pos.y() > last.y()) ? Qt::AlignBottom : Qt::AlignTop; } else alignment = Qt::AlignTop | Qt::AlignRight; const int margin = 5; int x = pos.x(); if ( alignment & Qt::AlignLeft ) x -= textRect.width() + margin; else if ( alignment & Qt::AlignRight ) x += margin; int y = pos.y(); if ( alignment & Qt::AlignBottom ) y += margin; else if ( alignment & Qt::AlignTop ) y -= textRect.height() + margin; textRect.moveTopLeft(QPoint(x, y)); int right = qwtMin(textRect.right(), pickRect().right() - margin); int bottom = qwtMin(textRect.bottom(), pickRect().bottom() - margin); textRect.moveBottomRight(QPoint(right, bottom)); int left = qwtMax(textRect.left(), pickRect().left() + margin); int top = qwtMax(textRect.top(), pickRect().top() + margin); textRect.moveTopLeft(QPoint(left, top)); return textRect; } /*! \brief Event filter When isEnabled() == true all events of the observed widget are filtered. Mouse and keyboard events are translated into widgetMouse- and widgetKey- and widgetWheel-events. Paint and Resize events are handled to keep rubberband and tracker up to date. \sa event(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ bool QwtPicker::eventFilter(QObject *o, QEvent *e) { if ( o && o == parentWidget() ) { switch(e->type()) { case QEvent::Resize: { const QResizeEvent *re = (QResizeEvent *)e; if ( d_data->resizeMode == Stretch ) stretchSelection(re->oldSize(), re->size()); if ( d_data->rubberBandWidget ) d_data->rubberBandWidget->resize(re->size()); if ( d_data->trackerWidget ) d_data->trackerWidget->resize(re->size()); break; } case QEvent::Leave: widgetLeaveEvent(e); break; case QEvent::MouseButtonPress: widgetMousePressEvent((QMouseEvent *)e); break; case QEvent::MouseButtonRelease: widgetMouseReleaseEvent((QMouseEvent *)e); break; case QEvent::MouseButtonDblClick: widgetMouseDoubleClickEvent((QMouseEvent *)e); break; case QEvent::MouseMove: widgetMouseMoveEvent((QMouseEvent *)e); break; case QEvent::KeyPress: widgetKeyPressEvent((QKeyEvent *)e); break; case QEvent::KeyRelease: widgetKeyReleaseEvent((QKeyEvent *)e); break; case QEvent::Wheel: widgetWheelEvent((QWheelEvent *)e); break; default: break; } } return false; } /*! Handle a mouse press event for the observed widget. Begin and/or end a selection depending on the selection flags. \sa QwtPicker, selectionFlags() \sa eventFilter(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetMousePressEvent(QMouseEvent *e) { transition(e); } /*! Handle a mouse move event for the observed widget. Move the last point of the selection in case of isActive() == true \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetMouseMoveEvent(QMouseEvent *e) { if ( pickRect().contains(e->pos()) ) d_data->trackerPosition = e->pos(); else d_data->trackerPosition = QPoint(-1, -1); if ( !isActive() ) updateDisplay(); transition(e); } /*! Handle a leave event for the observed widget. \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetLeaveEvent(QEvent *) { d_data->trackerPosition = QPoint(-1, -1); if ( !isActive() ) updateDisplay(); } /*! Handle a mouse relase event for the observed widget. End a selection depending on the selection flags. \sa QwtPicker, selectionFlags() \sa eventFilter(), widgetMousePressEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetMouseReleaseEvent(QMouseEvent *e) { transition(e); } /*! Handle mouse double click event for the observed widget. Empty implementation, does nothing. \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetMouseDoubleClickEvent(QMouseEvent *me) { transition(me); } /*! Handle a wheel event for the observed widget. Move the last point of the selection in case of isActive() == true \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent() */ void QwtPicker::widgetWheelEvent(QWheelEvent *e) { if ( pickRect().contains(e->pos()) ) d_data->trackerPosition = e->pos(); else d_data->trackerPosition = QPoint(-1, -1); updateDisplay(); transition(e); } /*! Handle a key press event for the observed widget. Selections can be completely done by the keyboard. The arrow keys move the cursor, the abort key aborts a selection. All other keys are handled by the current state machine. \sa QwtPicker, selectionFlags() \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyReleaseEvent(), stateMachine(), QwtEventPattern::KeyPatternCode */ void QwtPicker::widgetKeyPressEvent(QKeyEvent *ke) { int dx = 0; int dy = 0; int offset = 1; if ( ke->isAutoRepeat() ) offset = 5; if ( keyMatch(KeyLeft, ke) ) dx = -offset; else if ( keyMatch(KeyRight, ke) ) dx = offset; else if ( keyMatch(KeyUp, ke) ) dy = -offset; else if ( keyMatch(KeyDown, ke) ) dy = offset; else if ( keyMatch(KeyAbort, ke) ) { reset(); } else transition(ke); if ( dx != 0 || dy != 0 ) { const QRect rect = pickRect(); const QPoint pos = parentWidget()->mapFromGlobal(QCursor::pos()); int x = pos.x() + dx; x = qwtMax(rect.left(), x); x = qwtMin(rect.right(), x); int y = pos.y() + dy; y = qwtMax(rect.top(), y); y = qwtMin(rect.bottom(), y); QCursor::setPos(parentWidget()->mapToGlobal(QPoint(x, y))); } } /*! Handle a key release event for the observed widget. Passes the event to the state machine. \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), stateMachine() */ void QwtPicker::widgetKeyReleaseEvent(QKeyEvent *ke) { transition(ke); } /*! Passes an event to the state machine and executes the resulting commands. Append and Move commands use the current position of the cursor (QCursor::pos()). \param e Event */ void QwtPicker::transition(const QEvent *e) { if ( !d_data->stateMachine ) return; QwtPickerMachine::CommandList commandList = d_data->stateMachine->transition(*this, e); QPoint pos; switch(e->type()) { case QEvent::MouseButtonDblClick: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseMove: { const QMouseEvent *me = (QMouseEvent *)e; pos = me->pos(); break; } default: pos = parentWidget()->mapFromGlobal(QCursor::pos()); } for ( uint i = 0; i < (uint)commandList.count(); i++ ) { switch(commandList[i]) { case QwtPickerMachine::Begin: { begin(); break; } case QwtPickerMachine::Append: { append(pos); break; } case QwtPickerMachine::Move: { move(pos); break; } case QwtPickerMachine::End: { end(); break; } } } } /*! Open a selection setting the state to active \sa isActive(), end(), append(), move() */ void QwtPicker::begin() { if ( d_data->isActive ) return; d_data->selection.resize(0); d_data->isActive = true; if ( trackerMode() != AlwaysOff ) { if ( d_data->trackerPosition.x() < 0 || d_data->trackerPosition.y() < 0 ) { QWidget *w = parentWidget(); if ( w ) d_data->trackerPosition = w->mapFromGlobal(QCursor::pos()); } } updateDisplay(); setMouseTracking(true); } /*! \brief Close a selection setting the state to inactive. The selection is validated and maybe fixed by QwtPicker::accept(). \param ok If true, complete the selection and emit a selected signal otherwise discard the selection. \return true if the selection is accepted, false otherwise \sa isActive(), begin(), append(), move(), selected(), accept() */ bool QwtPicker::end(bool ok) { if ( d_data->isActive ) { setMouseTracking(false); d_data->isActive = false; if ( trackerMode() == ActiveOnly ) d_data->trackerPosition = QPoint(-1, -1); if ( ok ) ok = accept(d_data->selection); if ( ok ) emit selected(d_data->selection); else d_data->selection.resize(0); updateDisplay(); } else ok = false; return ok; } /*! Reset the state machine and terminate (end(false)) the selection */ void QwtPicker::reset() { if ( d_data->stateMachine ) d_data->stateMachine->reset(); if (isActive()) end(false); } /*! Append a point to the selection and update rubberband and tracker. The appended() signal is emitted. \param pos Additional point \sa isActive(), begin(), end(), move(), appended() */ void QwtPicker::append(const QPoint &pos) { if ( d_data->isActive ) { const int idx = d_data->selection.count(); d_data->selection.resize(idx + 1); d_data->selection[idx] = pos; updateDisplay(); emit appended(pos); } } /*! Move the last point of the selection The moved() signal is emitted. \param pos New position \sa isActive(), begin(), end(), append() */ void QwtPicker::move(const QPoint &pos) { if ( d_data->isActive ) { const int idx = d_data->selection.count() - 1; if ( idx >= 0 ) { if ( d_data->selection[idx] != pos ) { d_data->selection[idx] = pos; updateDisplay(); emit moved(pos); } } } } bool QwtPicker::accept(QwtPolygon &) const { return true; } /*! A picker is active between begin() and end(). \return true if the selection is active. */ bool QwtPicker::isActive() const { return d_data->isActive; } //! Return Selected points const QwtPolygon &QwtPicker::selection() const { return d_data->selection; } /*! Scale the selection by the ratios of oldSize and newSize The changed() signal is emitted. \param oldSize Previous size \param newSize Current size \sa ResizeMode, setResizeMode(), resizeMode() */ void QwtPicker::stretchSelection(const QSize &oldSize, const QSize &newSize) { if ( oldSize.isEmpty() ) { // avoid division by zero. But scaling for small sizes also // doesn't make much sense, because of rounding losses. TODO ... return; } const double xRatio = double(newSize.width()) / double(oldSize.width()); const double yRatio = double(newSize.height()) / double(oldSize.height()); for ( int i = 0; i < int(d_data->selection.count()); i++ ) { QPoint &p = d_data->selection[i]; p.setX(qRound(p.x() * xRatio)); p.setY(qRound(p.y() * yRatio)); emit changed(d_data->selection); } } /*! Set mouse tracking for the observed widget. In case of enable is true, the previous value is saved, that is restored when enable is false. \warning Even when enable is false, mouse tracking might be restored to true. When mouseTracking for the observed widget has been changed directly by QWidget::setMouseTracking while mouse tracking has been set to true, this value can't be restored. */ void QwtPicker::setMouseTracking(bool enable) { QWidget *widget = parentWidget(); if ( !widget ) return; if ( enable ) { d_data->mouseTracking = widget->hasMouseTracking(); widget->setMouseTracking(true); } else { widget->setMouseTracking(d_data->mouseTracking); } } /*! Find the area of the observed widget, where selection might happen. \return QFrame::contentsRect() if it is a QFrame, QWidget::rect() otherwise. */ QRect QwtPicker::pickRect() const { QRect rect; const QWidget *widget = parentWidget(); if ( !widget ) return rect; if ( widget->inherits("QFrame") ) rect = ((QFrame *)widget)->contentsRect(); else rect = widget->rect(); return rect; } //! Update the state of rubberband and tracker label void QwtPicker::updateDisplay() { QWidget *w = parentWidget(); bool showRubberband = false; bool showTracker = false; if ( w && w->isVisible() && d_data->enabled ) { if ( rubberBand() != NoRubberBand && isActive() && rubberBandPen().style() != Qt::NoPen ) { showRubberband = true; } if ( trackerMode() == AlwaysOn || (trackerMode() == ActiveOnly && isActive() ) ) { if ( trackerPen() != Qt::NoPen ) showTracker = true; } } #if QT_VERSION < 0x040000 QGuardedPtr &rw = d_data->rubberBandWidget; #else QPointer &rw = d_data->rubberBandWidget; #endif if ( showRubberband ) { if ( rw.isNull() ) { rw = new PickerWidget( this, w, PickerWidget::RubberBand); rw->hide(); rw->resize(w->size()); } rw->updateMask(); rw->update(); // Needed, when the mask doesn't change } else delete rw; #if QT_VERSION < 0x040000 QGuardedPtr &tw = d_data->trackerWidget; #else QPointer &tw = d_data->trackerWidget; #endif if ( showTracker ) { if ( tw.isNull() ) { tw = new PickerWidget( this, w, PickerWidget::Text); tw->hide(); tw->resize(w->size()); } tw->setFont(d_data->trackerFont); tw->updateMask(); tw->update(); // Needed, when the mask doesn't change } else delete tw; } //! \return Widget displaying the rubberband const QWidget *QwtPicker::rubberBandWidget() const { return d_data->rubberBandWidget; } //! \return Widget displaying the tracker text const QWidget *QwtPicker::trackerWidget() const { return d_data->trackerWidget; } qwt5-5.2.3/src/qwt_color_map.cpp0000644000175000017500000002633212052741126016126 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_array.h" #include "qwt_math.h" #include "qwt_double_interval.h" #include "qwt_color_map.h" #if QT_VERSION < 0x040000 #include typedef QValueVector QwtColorTable; #else typedef QVector QwtColorTable; #endif class QwtLinearColorMap::ColorStops { public: ColorStops() { #if QT_VERSION >= 0x040000 _stops.reserve(256); #endif } void insert(double pos, const QColor &color); QRgb rgb(QwtLinearColorMap::Mode, double pos) const; QwtArray stops() const; private: class ColorStop { public: ColorStop(): pos(0.0), rgb(0) { }; ColorStop(double p, const QColor &c): pos(p), rgb(c.rgb()) { r = qRed(rgb); g = qGreen(rgb); b = qBlue(rgb); } double pos; QRgb rgb; int r, g, b; }; inline int findUpper(double pos) const; QwtArray _stops; }; void QwtLinearColorMap::ColorStops::insert(double pos, const QColor &color) { // Lookups need to be very fast, insertions are not so important. // Anyway, a balanced tree is what we need here. TODO ... if ( pos < 0.0 || pos > 1.0 ) return; int index; if ( _stops.size() == 0 ) { index = 0; #if QT_VERSION < 0x040000 _stops.resize(1, QGArray::SpeedOptim); #else _stops.resize(1); #endif } else { index = findUpper(pos); if ( index == (int)_stops.size() || qwtAbs(_stops[index].pos - pos) >= 0.001 ) { #if QT_VERSION < 0x040000 _stops.resize(_stops.size() + 1, QGArray::SpeedOptim); #else _stops.resize(_stops.size() + 1); #endif for ( int i = _stops.size() - 1; i > index; i-- ) _stops[i] = _stops[i-1]; } } _stops[index] = ColorStop(pos, color); } inline QwtArray QwtLinearColorMap::ColorStops::stops() const { QwtArray positions(_stops.size()); for ( int i = 0; i < (int)_stops.size(); i++ ) positions[i] = _stops[i].pos; return positions; } inline int QwtLinearColorMap::ColorStops::findUpper(double pos) const { int index = 0; int n = _stops.size(); const ColorStop *stops = _stops.data(); while (n > 0) { const int half = n >> 1; const int middle = index + half; if ( stops[middle].pos <= pos ) { index = middle + 1; n -= half + 1; } else n = half; } return index; } inline QRgb QwtLinearColorMap::ColorStops::rgb( QwtLinearColorMap::Mode mode, double pos) const { if ( pos <= 0.0 ) return _stops[0].rgb; if ( pos >= 1.0 ) return _stops[(int)(_stops.size() - 1)].rgb; const int index = findUpper(pos); if ( mode == FixedColors ) { return _stops[index-1].rgb; } else { const ColorStop &s1 = _stops[index-1]; const ColorStop &s2 = _stops[index]; const double ratio = (pos - s1.pos) / (s2.pos - s1.pos); const int r = s1.r + qRound(ratio * (s2.r - s1.r)); const int g = s1.g + qRound(ratio * (s2.g - s1.g)); const int b = s1.b + qRound(ratio * (s2.b - s1.b)); return qRgb(r, g, b); } } //! Constructor QwtColorMap::QwtColorMap(Format format): d_format(format) { } //! Destructor QwtColorMap::~QwtColorMap() { } /*! Build and return a color map of 256 colors The color table is needed for rendering indexed images in combination with using colorIndex(). \param interval Range for the values \return A color table, that can be used for a QImage */ QwtColorTable QwtColorMap::colorTable( const QwtDoubleInterval &interval) const { QwtColorTable table(256); if ( interval.isValid() ) { const double step = interval.width() / (table.size() - 1); for ( int i = 0; i < (int) table.size(); i++ ) table[i] = rgb(interval, interval.minValue() + step * i); } return table; } class QwtLinearColorMap::PrivateData { public: ColorStops colorStops; QwtLinearColorMap::Mode mode; }; /*! Build a color map with two stops at 0.0 and 1.0. The color at 0.0 is Qt::blue, at 1.0 it is Qt::yellow. \param format Preferred format of the color map */ QwtLinearColorMap::QwtLinearColorMap(QwtColorMap::Format format): QwtColorMap(format) { d_data = new PrivateData; d_data->mode = ScaledColors; setColorInterval( Qt::blue, Qt::yellow); } //! Copy constructor QwtLinearColorMap::QwtLinearColorMap(const QwtLinearColorMap &other): QwtColorMap(other) { d_data = new PrivateData; *this = other; } /*! Build a color map with two stops at 0.0 and 1.0. \param color1 Color used for the minimum value of the value interval \param color2 Color used for the maximum value of the value interval \param format Preferred format of the coor map */ QwtLinearColorMap::QwtLinearColorMap(const QColor &color1, const QColor &color2, QwtColorMap::Format format): QwtColorMap(format) { d_data = new PrivateData; d_data->mode = ScaledColors; setColorInterval(color1, color2); } //! Destructor QwtLinearColorMap::~QwtLinearColorMap() { delete d_data; } //! Assignment operator QwtLinearColorMap &QwtLinearColorMap::operator=( const QwtLinearColorMap &other) { QwtColorMap::operator=(other); *d_data = *other.d_data; return *this; } //! Clone the color map QwtColorMap *QwtLinearColorMap::copy() const { QwtLinearColorMap* map = new QwtLinearColorMap(); *map = *this; return map; } /*! \brief Set the mode of the color map FixedColors means the color is calculated from the next lower color stop. ScaledColors means the color is calculated by interpolating the colors of the adjacent stops. \sa mode() */ void QwtLinearColorMap::setMode(Mode mode) { d_data->mode = mode; } /*! \return Mode of the color map \sa setMode() */ QwtLinearColorMap::Mode QwtLinearColorMap::mode() const { return d_data->mode; } /*! Set the color range Add stops at 0.0 and 1.0. \param color1 Color used for the minimum value of the value interval \param color2 Color used for the maximum value of the value interval \sa color1(), color2() */ void QwtLinearColorMap::setColorInterval( const QColor &color1, const QColor &color2) { d_data->colorStops = ColorStops(); d_data->colorStops.insert(0.0, color1); d_data->colorStops.insert(1.0, color2); } /*! Add a color stop The value has to be in the range [0.0, 1.0]. F.e. a stop at position 17.0 for a range [10.0,20.0] must be passed as: (17.0 - 10.0) / (20.0 - 10.0) \param value Value between [0.0, 1.0] \param color Color stop */ void QwtLinearColorMap::addColorStop(double value, const QColor& color) { if ( value >= 0.0 && value <= 1.0 ) d_data->colorStops.insert(value, color); } /*! Return all positions of color stops in increasing order */ QwtArray QwtLinearColorMap::colorStops() const { return d_data->colorStops.stops(); } /*! \return the first color of the color range \sa setColorInterval() */ QColor QwtLinearColorMap::color1() const { return QColor(d_data->colorStops.rgb(d_data->mode, 0.0)); } /*! \return the second color of the color range \sa setColorInterval() */ QColor QwtLinearColorMap::color2() const { return QColor(d_data->colorStops.rgb(d_data->mode, 1.0)); } /*! Map a value of a given interval into a rgb value \param interval Range for all values \param value Value to map into a rgb value */ QRgb QwtLinearColorMap::rgb( const QwtDoubleInterval &interval, double value) const { const double width = interval.width(); double ratio = 0.0; if ( width > 0.0 ) ratio = (value - interval.minValue()) / width; return d_data->colorStops.rgb(d_data->mode, ratio); } /*! Map a value of a given interval into a color index, between 0 and 255 \param interval Range for all values \param value Value to map into a color index */ unsigned char QwtLinearColorMap::colorIndex( const QwtDoubleInterval &interval, double value) const { const double width = interval.width(); if ( width <= 0.0 || value <= interval.minValue() ) return 0; if ( value >= interval.maxValue() ) return (unsigned char)255; const double ratio = (value - interval.minValue()) / width; unsigned char index; if ( d_data->mode == FixedColors ) index = (unsigned char)(ratio * 255); // always floor else index = (unsigned char)qRound(ratio * 255); return index; } class QwtAlphaColorMap::PrivateData { public: QColor color; QRgb rgb; }; /*! Constructor \param color Color of the map */ QwtAlphaColorMap::QwtAlphaColorMap(const QColor &color): QwtColorMap(QwtColorMap::RGB) { d_data = new PrivateData; d_data->color = color; d_data->rgb = color.rgb() & qRgba(255, 255, 255, 0); } /*! Copy constructor \param other Other color map */ QwtAlphaColorMap::QwtAlphaColorMap(const QwtAlphaColorMap &other): QwtColorMap(other) { d_data = new PrivateData; *this = other; } //! Destructor QwtAlphaColorMap::~QwtAlphaColorMap() { delete d_data; } /*! Assignment operator \param other Other color map \return *this */ QwtAlphaColorMap &QwtAlphaColorMap::operator=( const QwtAlphaColorMap &other) { QwtColorMap::operator=(other); *d_data = *other.d_data; return *this; } //! Clone the color map QwtColorMap *QwtAlphaColorMap::copy() const { QwtAlphaColorMap* map = new QwtAlphaColorMap(); *map = *this; return map; } /*! Set the color \param color Color \sa color() */ void QwtAlphaColorMap::setColor(const QColor &color) { d_data->color = color; d_data->rgb = color.rgb(); } /*! \return the color \sa setColor() */ QColor QwtAlphaColorMap::color() const { return d_data->color; } /*! \brief Map a value of a given interval into a alpha value alpha := (value - interval.minValue()) / interval.width(); \param interval Range for all values \param value Value to map into a rgb value \return rgb value, with an alpha value */ QRgb QwtAlphaColorMap::rgb(const QwtDoubleInterval &interval, double value) const { const double width = interval.width(); if ( width >= 0.0 ) { const double ratio = (value - interval.minValue()) / width; int alpha = qRound(255 * ratio); if ( alpha < 0 ) alpha = 0; if ( alpha > 255 ) alpha = 255; return d_data->rgb | (alpha << 24); } return d_data->rgb; } /*! Dummy function, needed to be implemented as it is pure virtual in QwtColorMap. Color indices make no sense in combination with an alpha channel. \return Always 0 */ unsigned char QwtAlphaColorMap::colorIndex( const QwtDoubleInterval &, double) const { return 0; } qwt5-5.2.3/src/qwt_scale_map.cpp0000644000175000017500000001321312052741126016071 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_scale_map.h" QT_STATIC_CONST_IMPL double QwtScaleMap::LogMin = 1.0e-150; QT_STATIC_CONST_IMPL double QwtScaleMap::LogMax = 1.0e150; //! Constructor for a linear transformation QwtScaleTransformation::QwtScaleTransformation(Type type): d_type(type) { } //! Destructor QwtScaleTransformation::~QwtScaleTransformation() { } //! Create a clone of the transformation QwtScaleTransformation *QwtScaleTransformation::copy() const { return new QwtScaleTransformation(d_type); } /*! \brief Transform a value from the coordinate system of a scale into the coordinate system of the paint device \param s Value related to the coordinate system of the scale \param s1 First border of the coordinate system of the scale \param s2 Second border of the coordinate system of the scale \param p1 First border of the coordinate system of the paint device \param p2 Second border of the coordinate system of the paint device \return
linear mapping:
p1 + (p2 - p1) / (s2 - s1) * (s - s1);
log10 mapping:
p1 + (p2 - p1) / log(s2 / s1) * log(s / s1);
*/ double QwtScaleTransformation::xForm( double s, double s1, double s2, double p1, double p2) const { if ( d_type == Log10 ) return p1 + (p2 - p1) / log(s2 / s1) * log(s / s1); else return p1 + (p2 - p1) / (s2 - s1) * (s - s1); } /*! \brief Transform a value from the coordinate system of the paint device into the coordinate system of a scale. \param p Value related to the coordinate system of the paint device \param p1 First border of the coordinate system of the paint device \param p2 Second border of the coordinate system of the paint device \param s1 First border of the coordinate system of the scale \param s2 Second border of the coordinate system of the scale \return
linear mapping:
s1 + ( s2 - s1 ) / ( p2 - p1 ) * ( p - p1 );
log10 mapping:
exp((p - p1) / (p2 - p1) * log(s2 / s1)) * s1;
*/ double QwtScaleTransformation::invXForm(double p, double p1, double p2, double s1, double s2) const { if ( d_type == Log10 ) return exp((p - p1) / (p2 - p1) * log(s2 / s1)) * s1; else return s1 + (s2 - s1) / (p2 - p1) * (p - p1); } /*! \brief Constructor The scale and paint device intervals are both set to [0,1]. */ QwtScaleMap::QwtScaleMap(): d_s1(0.0), d_s2(1.0), d_p1(0.0), d_p2(1.0), d_cnv(1.0) { d_transformation = new QwtScaleTransformation( QwtScaleTransformation::Linear); } //! Copy constructor QwtScaleMap::QwtScaleMap(const QwtScaleMap& other): d_s1(other.d_s1), d_s2(other.d_s2), d_p1(other.d_p1), d_p2(other.d_p2), d_cnv(other.d_cnv) { d_transformation = other.d_transformation->copy(); } /*! Destructor */ QwtScaleMap::~QwtScaleMap() { delete d_transformation; } //! Assignment operator QwtScaleMap &QwtScaleMap::operator=(const QwtScaleMap &other) { d_s1 = other.d_s1; d_s2 = other.d_s2; d_p1 = other.d_p1; d_p2 = other.d_p2; d_cnv = other.d_cnv; delete d_transformation; d_transformation = other.d_transformation->copy(); return *this; } /*! Initialize the map with a transformation */ void QwtScaleMap::setTransformation( QwtScaleTransformation *transformation) { if ( transformation == NULL ) return; delete d_transformation; d_transformation = transformation; setScaleInterval(d_s1, d_s2); } //! Get the transformation const QwtScaleTransformation *QwtScaleMap::transformation() const { return d_transformation; } /*! \brief Specify the borders of the scale interval \param s1 first border \param s2 second border \warning logarithmic scales might be aligned to [LogMin, LogMax] */ void QwtScaleMap::setScaleInterval(double s1, double s2) { if (d_transformation->type() == QwtScaleTransformation::Log10 ) { if (s1 < LogMin) s1 = LogMin; else if (s1 > LogMax) s1 = LogMax; if (s2 < LogMin) s2 = LogMin; else if (s2 > LogMax) s2 = LogMax; } d_s1 = s1; d_s2 = s2; if ( d_transformation->type() != QwtScaleTransformation::Other ) newFactor(); } /*! \brief Specify the borders of the paint device interval \param p1 first border \param p2 second border */ void QwtScaleMap::setPaintInterval(int p1, int p2) { d_p1 = p1; d_p2 = p2; if ( d_transformation->type() != QwtScaleTransformation::Other ) newFactor(); } /*! \brief Specify the borders of the paint device interval \param p1 first border \param p2 second border */ void QwtScaleMap::setPaintXInterval(double p1, double p2) { d_p1 = p1; d_p2 = p2; if ( d_transformation->type() != QwtScaleTransformation::Other ) newFactor(); } /*! \brief Re-calculate the conversion factor. */ void QwtScaleMap::newFactor() { d_cnv = 0.0; #if 1 if (d_s2 == d_s1) return; #endif switch( d_transformation->type() ) { case QwtScaleTransformation::Linear: d_cnv = (d_p2 - d_p1) / (d_s2 - d_s1); break; case QwtScaleTransformation::Log10: d_cnv = (d_p2 - d_p1) / log(d_s2 / d_s1); break; default:; } } qwt5-5.2.3/src/qwt_plot_grid.h0000644000175000017500000000413412052741123015574 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_GRID_H #define QWT_PLOT_GRID_H #include "qwt_global.h" #include "qwt_plot_item.h" #include "qwt_scale_div.h" class QPainter; class QPen; class QwtScaleMap; class QwtScaleDiv; /*! \brief A class which draws a coordinate grid The QwtPlotGrid class can be used to draw a coordinate grid. A coordinate grid consists of major and minor vertical and horizontal gridlines. The locations of the gridlines are determined by the X and Y scale divisions which can be assigned with setXDiv() and setYDiv(). The draw() member draws the grid within a bounding rectangle. */ class QWT_EXPORT QwtPlotGrid: public QwtPlotItem { public: explicit QwtPlotGrid(); virtual ~QwtPlotGrid(); virtual int rtti() const; void enableX(bool tf); bool xEnabled() const; void enableY(bool tf); bool yEnabled() const; void enableXMin(bool tf); bool xMinEnabled() const; void enableYMin(bool tf); bool yMinEnabled() const; void setXDiv(const QwtScaleDiv &sx); const QwtScaleDiv &xScaleDiv() const; void setYDiv(const QwtScaleDiv &sy); const QwtScaleDiv &yScaleDiv() const; void setPen(const QPen &p); void setMajPen(const QPen &p); const QPen& majPen() const; void setMinPen(const QPen &p); const QPen& minPen() const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const; virtual void updateScaleDiv(const QwtScaleDiv &xMap, const QwtScaleDiv &yMap); private: void drawLines(QPainter *painter, const QRect &, Qt::Orientation orientation, const QwtScaleMap &, const QwtValueList &) const; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_marker.cpp0000644000175000017500000002715412052741126016475 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include "qwt_painter.h" #include "qwt_scale_map.h" #include "qwt_plot_marker.h" #include "qwt_symbol.h" #include "qwt_text.h" #include "qwt_math.h" class QwtPlotMarker::PrivateData { public: PrivateData(): labelAlignment(Qt::AlignCenter), labelOrientation(Qt::Horizontal), spacing(2), style(NoLine), xValue(0.0), yValue(0.0) { symbol = new QwtSymbol(); } ~PrivateData() { delete symbol; } QwtText label; #if QT_VERSION < 0x040000 int labelAlignment; #else Qt::Alignment labelAlignment; #endif Qt::Orientation labelOrientation; int spacing; QPen pen; QwtSymbol *symbol; LineStyle style; double xValue; double yValue; }; //! Sets alignment to Qt::AlignCenter, and style to NoLine QwtPlotMarker::QwtPlotMarker(): QwtPlotItem(QwtText("Marker")) { d_data = new PrivateData; setZ(30.0); } //! Destructor QwtPlotMarker::~QwtPlotMarker() { delete d_data; } //! \return QwtPlotItem::Rtti_PlotMarker int QwtPlotMarker::rtti() const { return QwtPlotItem::Rtti_PlotMarker; } //! Return Value QwtDoublePoint QwtPlotMarker::value() const { return QwtDoublePoint(d_data->xValue, d_data->yValue); } //! Return x Value double QwtPlotMarker::xValue() const { return d_data->xValue; } //! Return y Value double QwtPlotMarker::yValue() const { return d_data->yValue; } //! Set Value void QwtPlotMarker::setValue(const QwtDoublePoint& pos) { setValue(pos.x(), pos.y()); } //! Set Value void QwtPlotMarker::setValue(double x, double y) { if ( x != d_data->xValue || y != d_data->yValue ) { d_data->xValue = x; d_data->yValue = y; itemChanged(); } } //! Set X Value void QwtPlotMarker::setXValue(double x) { setValue(x, d_data->yValue); } //! Set Y Value void QwtPlotMarker::setYValue(double y) { setValue(d_data->xValue, y); } /*! Draw the marker \param painter Painter \param xMap x Scale Map \param yMap y Scale Map \param canvasRect Contents rect of the canvas in painter coordinates */ void QwtPlotMarker::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { const int x = xMap.transform(d_data->xValue); const int y = yMap.transform(d_data->yValue); drawAt(painter, canvasRect, QPoint(x, y)); } /*! Draw the marker at a specific position \param painter Painter \param canvasRect Contents rect of the canvas in painter coordinates \param pos Position of the marker in painter coordinates */ void QwtPlotMarker::drawAt(QPainter *painter, const QRect &canvasRect, const QPoint &pos) const { // draw lines if (d_data->style != NoLine) { painter->setPen(QwtPainter::scaledPen(d_data->pen)); if ( d_data->style == QwtPlotMarker::HLine || d_data->style == QwtPlotMarker::Cross ) { QwtPainter::drawLine(painter, canvasRect.left(), pos.y(), canvasRect.right(), pos.y() ); } if (d_data->style == QwtPlotMarker::VLine || d_data->style == QwtPlotMarker::Cross ) { QwtPainter::drawLine(painter, pos.x(), canvasRect.top(), pos.x(), canvasRect.bottom()); } } // draw symbol if (d_data->symbol->style() != QwtSymbol::NoSymbol) d_data->symbol->draw(painter, pos.x(), pos.y()); drawLabel(painter, canvasRect, pos); } void QwtPlotMarker::drawLabel(QPainter *painter, const QRect &canvasRect, const QPoint &pos) const { if (d_data->label.isEmpty()) return; int align = d_data->labelAlignment; QPoint alignPos = pos; QSize symbolOff(0, 0); switch(d_data->style) { case QwtPlotMarker::VLine: { // In VLine-style the y-position is pointless and // the alignment flags are relative to the canvas if (d_data->labelAlignment & (int) Qt::AlignTop) { alignPos.setY(canvasRect.top()); align &= ~Qt::AlignTop; align |= Qt::AlignBottom; } else if (d_data->labelAlignment & (int) Qt::AlignBottom) { // In HLine-style the x-position is pointless and // the alignment flags are relative to the canvas alignPos.setY(canvasRect.bottom() - 1); align &= ~Qt::AlignBottom; align |= Qt::AlignTop; } else { alignPos.setY(canvasRect.center().y()); } break; } case QwtPlotMarker::HLine: { if (d_data->labelAlignment & (int) Qt::AlignLeft) { alignPos.setX(canvasRect.left()); align &= ~Qt::AlignLeft; align |= Qt::AlignRight; } else if (d_data->labelAlignment & (int) Qt::AlignRight) { alignPos.setX(canvasRect.right() - 1); align &= ~Qt::AlignRight; align |= Qt::AlignLeft; } else { alignPos.setX(canvasRect.center().x()); } break; } default: { if ( d_data->symbol->style() != QwtSymbol::NoSymbol ) { symbolOff = d_data->symbol->size() + QSize(1, 1); symbolOff /= 2; } } } int pw = d_data->pen.width(); if ( pw == 0 ) pw = 1; const int xSpacing = QwtPainter::metricsMap().screenToLayoutX(d_data->spacing); const int ySpacing = QwtPainter::metricsMap().screenToLayoutY(d_data->spacing); int xOff = qwtMax( (pw + 1) / 2, symbolOff.width() ); int yOff = qwtMax( (pw + 1) / 2, symbolOff.height() ); const QSize textSize = d_data->label.textSize(painter->font()); if ( align & Qt::AlignLeft ) { alignPos.rx() -= xOff + xSpacing; if ( d_data->labelOrientation == Qt::Vertical ) alignPos.rx() -= textSize.height(); else alignPos.rx() -= textSize.width(); } else if ( align & Qt::AlignRight ) { alignPos.rx() += xOff + xSpacing; } else { if ( d_data->labelOrientation == Qt::Vertical ) alignPos.rx() -= textSize.height() / 2; else alignPos.rx() -= textSize.width() / 2; } if (align & (int) Qt::AlignTop) { alignPos.ry() -= yOff + ySpacing; if ( d_data->labelOrientation != Qt::Vertical ) alignPos.ry() -= textSize.height(); } else if (align & (int) Qt::AlignBottom) { alignPos.ry() += yOff + ySpacing; if ( d_data->labelOrientation == Qt::Vertical ) alignPos.ry() += textSize.width(); } else { if ( d_data->labelOrientation == Qt::Vertical ) alignPos.ry() += textSize.width() / 2; else alignPos.ry() -= textSize.height() / 2; } painter->translate(alignPos.x(), alignPos.y()); if ( d_data->labelOrientation == Qt::Vertical ) painter->rotate(-90.0); const QRect textRect(0, 0, textSize.width(), textSize.height()); d_data->label.draw(painter, textRect); } /*! \brief Set the line style \param st Line style. Can be one of QwtPlotMarker::NoLine, HLine, VLine or Cross \sa lineStyle() */ void QwtPlotMarker::setLineStyle(QwtPlotMarker::LineStyle st) { if ( st != d_data->style ) { d_data->style = st; itemChanged(); } } /*! \return the line style \sa For a description of line styles, see QwtPlotMarker::setLineStyle() */ QwtPlotMarker::LineStyle QwtPlotMarker::lineStyle() const { return d_data->style; } /*! \brief Assign a symbol \param s New symbol \sa symbol() */ void QwtPlotMarker::setSymbol(const QwtSymbol &s) { delete d_data->symbol; d_data->symbol = s.clone(); itemChanged(); } /*! \return the symbol \sa setSymbol(), QwtSymbol */ const QwtSymbol &QwtPlotMarker::symbol() const { return *d_data->symbol; } /*! \brief Set the label \param label label text \sa label() */ void QwtPlotMarker::setLabel(const QwtText& label) { if ( label != d_data->label ) { d_data->label = label; itemChanged(); } } /*! \return the label \sa setLabel() */ QwtText QwtPlotMarker::label() const { return d_data->label; } /*! \brief Set the alignment of the label In case of QwtPlotMarker::HLine the alignment is relative to the y position of the marker, but the horizontal flags correspond to the canvas rectangle. In case of QwtPlotMarker::VLine the alignment is relative to the x position of the marker, but the vertical flags correspond to the canvas rectangle. In all other styles the alignment is relative to the marker's position. \param align Alignment. A combination of AlignTop, AlignBottom, AlignLeft, AlignRight, AlignCenter, AlgnHCenter, AlignVCenter. \sa labelAlignment(), labelOrientation() */ #if QT_VERSION < 0x040000 void QwtPlotMarker::setLabelAlignment(int align) #else void QwtPlotMarker::setLabelAlignment(Qt::Alignment align) #endif { if ( align != d_data->labelAlignment ) { d_data->labelAlignment = align; itemChanged(); } } /*! \return the label alignment \sa setLabelAlignment(), setLabelOrientation() */ #if QT_VERSION < 0x040000 int QwtPlotMarker::labelAlignment() const #else Qt::Alignment QwtPlotMarker::labelAlignment() const #endif { return d_data->labelAlignment; } /*! \brief Set the orientation of the label When orientation is Qt::Vertical the label is rotated by 90.0 degrees ( from bottom to top ). \param orientation Orientation of the label \sa labelOrientation(), setLabelAlignment() */ void QwtPlotMarker::setLabelOrientation(Qt::Orientation orientation) { if ( orientation != d_data->labelOrientation ) { d_data->labelOrientation = orientation; itemChanged(); } } /*! \return the label orientation \sa setLabelOrientation(), labelAlignment() */ Qt::Orientation QwtPlotMarker::labelOrientation() const { return d_data->labelOrientation; } /*! \brief Set the spacing When the label is not centered on the marker position, the spacing is the distance between the position and the label. \param spacing Spacing \sa spacing(), setLabelAlignment() */ void QwtPlotMarker::setSpacing(int spacing) { if ( spacing < 0 ) spacing = 0; if ( spacing == d_data->spacing ) return; d_data->spacing = spacing; itemChanged(); } /*! \return the spacing \sa setSpacing() */ int QwtPlotMarker::spacing() const { return d_data->spacing; } /*! Specify a pen for the line. The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen New pen \sa linePen(), QwtPainter::scaledPen() */ void QwtPlotMarker::setLinePen(const QPen &pen) { if ( pen != d_data->pen ) { d_data->pen = pen; itemChanged(); } } /*! \return the line pen \sa setLinePen() */ const QPen &QwtPlotMarker::linePen() const { return d_data->pen; } QwtDoubleRect QwtPlotMarker::boundingRect() const { return QwtDoubleRect(d_data->xValue, d_data->yValue, 0.0, 0.0); } qwt5-5.2.3/src/qwt_plot_xml.cpp0000644000175000017500000000211412052741126016001 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_plot.h" /*! This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin. \warning The plot editor has never been implemented. */ void QwtPlot::applyProperties(const QString & /* xmlDocument */) { #if 0 // Temporary dummy code, for designer tests setTitle(xmlDocument); replot(); #endif } /*! This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin. \warning The plot editor has never been implemented. */ QString QwtPlot::grabProperties() const { #if 0 // Temporary dummy code, for designer tests return title().text(); #else return QString::null; #endif } qwt5-5.2.3/src/qwt_legend_itemmanager.h0000644000175000017500000000222212052741123017414 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_LEGEND_ITEM_MANAGER_H #define QWT_LEGEND_ITEM_MANAGER_H #include "qwt_global.h" class QwtLegend; class QWidget; /*! \brief Abstract API to bind plot items to the legend */ class QWT_EXPORT QwtLegendItemManager { public: //! Constructor QwtLegendItemManager() { } //! Destructor virtual ~QwtLegendItemManager() { } /*! Update the widget that represents the item on the legend \param legend Legend \sa legendItem() */ virtual void updateLegend(QwtLegend *legend) const = 0; /*! Allocate the widget that represents the item on the legend \return Allocated widget \sa updateLegend() QwtLegend() */ virtual QWidget *legendItem() const = 0; }; #endif qwt5-5.2.3/src/qwt_round_scale_draw.cpp0000644000175000017500000002061212052741126017461 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include "qwt_painter.h" #include "qwt_scale_div.h" #include "qwt_scale_map.h" #include "qwt_round_scale_draw.h" class QwtRoundScaleDraw::PrivateData { public: PrivateData(): center(50, 50), radius(50), startAngle(-135 * 16), endAngle(135 * 16) { } QPoint center; int radius; int startAngle; int endAngle; }; /*! \brief Constructor The range of the scale is initialized to [0, 100], The center is set to (50, 50) with a radius of 50. The angle range is set to [-135, 135]. */ QwtRoundScaleDraw::QwtRoundScaleDraw() { d_data = new QwtRoundScaleDraw::PrivateData; setRadius(50); scaleMap().setPaintInterval(d_data->startAngle, d_data->endAngle); } //! Copy constructor QwtRoundScaleDraw::QwtRoundScaleDraw(const QwtRoundScaleDraw &other): QwtAbstractScaleDraw(other) { d_data = new QwtRoundScaleDraw::PrivateData(*other.d_data); } //! Destructor QwtRoundScaleDraw::~QwtRoundScaleDraw() { delete d_data; } //! Assignment operator QwtRoundScaleDraw &QwtRoundScaleDraw::operator=(const QwtRoundScaleDraw &other) { *(QwtAbstractScaleDraw*)this = (const QwtAbstractScaleDraw &)other; *d_data = *other.d_data; return *this; } /*! Change of radius the scale Radius is the radius of the backbone without ticks and labels. \param radius New Radius \sa moveCenter() */ void QwtRoundScaleDraw::setRadius(int radius) { d_data->radius = radius; } /*! Get the radius Radius is the radius of the backbone without ticks and labels. \sa setRadius(), extent() */ int QwtRoundScaleDraw::radius() const { return d_data->radius; } /*! Move the center of the scale draw, leaving the radius unchanged \param center New center \sa setRadius() */ void QwtRoundScaleDraw::moveCenter(const QPoint ¢er) { d_data->center = center; } //! Get the center of the scale QPoint QwtRoundScaleDraw::center() const { return d_data->center; } /*! \brief Adjust the baseline circle segment for round scales. The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2). The default setting is [ -135, 135 ]. An angle of 0 degrees corresponds to the 12 o'clock position, and positive angles count in a clockwise direction. \param angle1 \param angle2 boundaries of the angle interval in degrees. \warning
  • The angle range is limited to [-360, 360] degrees. Angles exceeding this range will be clipped.
  • For angles more than 359 degrees above or below min(angle1, angle2), scale marks will not be drawn.
  • If you need a counterclockwise scale, use QwtScaleDiv::setRange
*/ void QwtRoundScaleDraw::setAngleRange(double angle1, double angle2) { angle1 = qwtLim(angle1, -360.0, 360.0); angle2 = qwtLim(angle2, -360.0, 360.0); d_data->startAngle = qRound(angle1 * 16.0); d_data->endAngle = qRound(angle2 * 16.0); if (d_data->startAngle == d_data->endAngle) { d_data->startAngle -= 1; d_data->endAngle += 1; } scaleMap().setPaintInterval(d_data->startAngle, d_data->endAngle); } /*! Draws the label for a major scale tick \param painter Painter \param value Value \sa drawTick(), drawBackbone() */ void QwtRoundScaleDraw::drawLabel(QPainter *painter, double value) const { const QwtText label = tickLabel(painter->font(), value); if ( label.isEmpty() ) return; const int tval = map().transform(value); if ((tval > d_data->startAngle + 359 * 16) || (tval < d_data->startAngle - 359 * 16)) { return; } double radius = d_data->radius; if ( hasComponent(QwtAbstractScaleDraw::Ticks) || hasComponent(QwtAbstractScaleDraw::Backbone) ) { radius += spacing(); } if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) radius += majTickLength(); const QSize sz = label.textSize(painter->font()); const double arc = tval / 16.0 / 360.0 * 2 * M_PI; const int x = d_data->center.x() + qRound((radius + sz.width() / 2.0) * sin(arc)); const int y = d_data->center.y() - qRound( (radius + sz.height() / 2.0) * cos(arc)); const QRect r(x - sz.width() / 2, y - sz.height() / 2, sz.width(), sz.height() ); label.draw(painter, r); } /*! Draw a tick \param painter Painter \param value Value of the tick \param len Lenght of the tick \sa drawBackbone(), drawLabel() */ void QwtRoundScaleDraw::drawTick(QPainter *painter, double value, int len) const { if ( len <= 0 ) return; const int tval = map().transform(value); const int cx = d_data->center.x(); const int cy = d_data->center.y(); const int radius = d_data->radius; if ((tval <= d_data->startAngle + 359 * 16) || (tval >= d_data->startAngle - 359 * 16)) { const double arc = double(tval) / 16.0 * M_PI / 180.0; const double sinArc = sin(arc); const double cosArc = cos(arc); const int x1 = qRound( cx + radius * sinArc ); const int x2 = qRound( cx + (radius + len) * sinArc ); const int y1 = qRound( cy - radius * cosArc ); const int y2 = qRound( cy - (radius + len) * cosArc ); QwtPainter::drawLine(painter, x1, y1, x2, y2); } } /*! Draws the baseline of the scale \param painter Painter \sa drawTick(), drawLabel() */ void QwtRoundScaleDraw::drawBackbone(QPainter *painter) const { const int a1 = qRound(qwtMin(map().p1(), map().p2()) - 90 * 16); const int a2 = qRound(qwtMax(map().p1(), map().p2()) - 90 * 16); const int radius = d_data->radius; const int x = d_data->center.x() - radius; const int y = d_data->center.y() - radius; painter->drawArc(x, y, 2 * radius, 2 * radius, -a2, a2 - a1 + 1); // counterclockwise } /*! Calculate the extent of the scale The extent is the distcance between the baseline to the outermost pixel of the scale draw. radius() + extent() is an upper limit for the radius of the bounding circle. \param pen Pen that is used for painting backbone and ticks \param font Font used for painting the labels \sa setMinimumExtent(), minimumExtent() \warning The implemented algo is not too smart and calculates only an upper limit, that might be a few pixels too large */ int QwtRoundScaleDraw::extent(const QPen &pen, const QFont &font) const { int d = 0; if ( hasComponent(QwtAbstractScaleDraw::Labels) ) { const QwtScaleDiv &sd = scaleDiv(); const QwtValueList &ticks = sd.ticks(QwtScaleDiv::MajorTick); for (uint i = 0; i < (uint)ticks.count(); i++) { const double value = ticks[i]; if ( !sd.contains(value) ) continue; const QwtText label = tickLabel(font, value); if ( label.isEmpty() ) continue; const int tval = map().transform(value); if ((tval < d_data->startAngle + 360 * 16) && (tval > d_data->startAngle - 360 * 16)) { const double arc = tval / 16.0 / 360.0 * 2 * M_PI; const QSize sz = label.textSize(font); const double off = qwtMax(sz.width(), sz.height()); double x = off * sin(arc); double y = off * cos(arc); const int dist = (int)ceil(sqrt(x * x + y * y) + 1 ); if ( dist > d ) d = dist; } } } if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) { d += majTickLength(); } if ( hasComponent(QwtAbstractScaleDraw::Backbone) ) { const int pw = qwtMax( 1, pen.width() ); // penwidth can be zero d += pw; } if ( hasComponent(QwtAbstractScaleDraw::Labels) && ( hasComponent(QwtAbstractScaleDraw::Ticks) || hasComponent(QwtAbstractScaleDraw::Backbone) ) ) { d += spacing(); } d = qwtMax(d, minimumExtent()); return d; } qwt5-5.2.3/src/qwt_symbol.h0000644000175000017500000000370212052741123015116 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SYMBOL_H #define QWT_SYMBOL_H #include #include #include #include "qwt_global.h" class QPainter; class QRect; //! A class for drawing symbols class QWT_EXPORT QwtSymbol { public: /*! Style \sa setStyle(), style() */ enum Style { NoSymbol = -1, Ellipse, Rect, Diamond, Triangle, DTriangle, UTriangle, LTriangle, RTriangle, Cross, XCross, HLine, VLine, Star1, Star2, Hexagon, StyleCnt }; public: QwtSymbol(); QwtSymbol(Style st, const QBrush &bd, const QPen &pn, const QSize &s); virtual ~QwtSymbol(); bool operator!=(const QwtSymbol &) const; virtual bool operator==(const QwtSymbol &) const; virtual QwtSymbol *clone() const; void setSize(const QSize &s); void setSize(int a, int b = -1); void setBrush(const QBrush& b); void setPen(const QPen &p); void setStyle (Style s); //! Return Brush const QBrush& brush() const { return d_brush; } //! Return Pen const QPen& pen() const { return d_pen; } //! Return Size const QSize& size() const { return d_size; } //! Return Style Style style() const { return d_style; } void draw(QPainter *p, const QPoint &pt) const; void draw(QPainter *p, int x, int y) const; virtual void draw(QPainter *p, const QRect &r) const; private: QBrush d_brush; QPen d_pen; QSize d_size; Style d_style; }; #endif qwt5-5.2.3/src/qwt_plot_rescaler.cpp0000644000175000017500000003517312052741126017014 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_scale_div.h" #include "qwt_double_interval.h" #include "qwt_plot_rescaler.h" class QwtPlotRescaler::AxisData { public: AxisData(): aspectRatio(1.0), expandingDirection(QwtPlotRescaler::ExpandUp) { } double aspectRatio; QwtDoubleInterval intervalHint; QwtPlotRescaler::ExpandingDirection expandingDirection; mutable QwtScaleDiv scaleDiv; }; class QwtPlotRescaler::PrivateData { public: PrivateData(): referenceAxis(QwtPlot::xBottom), rescalePolicy(QwtPlotRescaler::Expanding), isEnabled(false), inReplot(0) { } int referenceAxis; RescalePolicy rescalePolicy; QwtPlotRescaler::AxisData axisData[QwtPlot::axisCnt]; bool isEnabled; mutable int inReplot; }; /*! Constructor \param canvas Canvas \param referenceAxis Reference axis, see RescalePolicy \param policy Rescale policy \sa setRescalePolicy(), setReferenceAxis() */ QwtPlotRescaler::QwtPlotRescaler(QwtPlotCanvas *canvas, int referenceAxis, RescalePolicy policy): QObject(canvas) { d_data = new PrivateData; d_data->referenceAxis = referenceAxis; d_data->rescalePolicy = policy; setEnabled(true); } //! Destructor QwtPlotRescaler::~QwtPlotRescaler() { delete d_data; } /*! \brief En/disable the rescaler When enabled is true an event filter is installed for the canvas, otherwise the event filter is removed. \param on true or false \sa isEnabled(), eventFilter() */ void QwtPlotRescaler::setEnabled(bool on) { if ( d_data->isEnabled != on ) { d_data->isEnabled = on; QWidget *w = canvas(); if ( w ) { if ( d_data->isEnabled ) w->installEventFilter(this); else w->removeEventFilter(this); } } } /*! \return true when enabled, false otherwise \sa setEnabled, eventFilter() */ bool QwtPlotRescaler::isEnabled() const { return d_data->isEnabled; } /*! Change the rescale policy \param policy Rescale policy \sa rescalePolicy() */ void QwtPlotRescaler::setRescalePolicy(RescalePolicy policy) { d_data->rescalePolicy = policy; } /*! \return Rescale policy \sa setRescalePolicy() */ QwtPlotRescaler::RescalePolicy QwtPlotRescaler::rescalePolicy() const { return d_data->rescalePolicy; } /*! Set the reference axis ( see RescalePolicy ) \param axis Axis index ( QwtPlot::Axis ) \sa referenceAxis() */ void QwtPlotRescaler::setReferenceAxis(int axis) { d_data->referenceAxis = axis; } /*! \return Reference axis ( see RescalePolicy ) \sa setReferenceAxis() */ int QwtPlotRescaler::referenceAxis() const { return d_data->referenceAxis; } /*! Set the direction in which all axis should be expanded \param direction Direction \sa expandingDirection() */ void QwtPlotRescaler::setExpandingDirection( ExpandingDirection direction) { for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) setExpandingDirection(axis, direction); } /*! Set the direction in which an axis should be expanded \param axis Axis index ( see QwtPlot::AxisId ) \param direction Direction \sa expandingDirection() */ void QwtPlotRescaler::setExpandingDirection( int axis, ExpandingDirection direction) { if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->axisData[axis].expandingDirection = direction; } /*! Return direction in which an axis should be expanded \param axis Axis index ( see QwtPlot::AxisId ) \sa setExpandingDirection() */ QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection(int axis) const { if ( axis >= 0 && axis < QwtPlot::axisCnt ) return d_data->axisData[axis].expandingDirection; return ExpandBoth; } /*! Set the aspect ratio between the scale of the reference axis and the other scales. The default ratio is 1.0 \param ratio Aspect ratio \sa aspectRatio() */ void QwtPlotRescaler::setAspectRatio(double ratio) { for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) setAspectRatio(axis, ratio); } /*! Set the aspect ratio between the scale of the reference axis and another scale. The default ratio is 1.0 \param axis Axis index ( see QwtPlot::AxisId ) \param ratio Aspect ratio \sa aspectRatio() */ void QwtPlotRescaler::setAspectRatio(int axis, double ratio) { if ( ratio < 0.0 ) ratio = 0.0; if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->axisData[axis].aspectRatio = ratio; } /*! Return aspect ratio between an axis and the reference axis. \param axis Axis index ( see QwtPlot::AxisId ) \sa setAspectRatio() */ double QwtPlotRescaler::aspectRatio(int axis) const { if ( axis >= 0 && axis < QwtPlot::axisCnt ) return d_data->axisData[axis].aspectRatio; return 0.0; } void QwtPlotRescaler::setIntervalHint(int axis, const QwtDoubleInterval &interval) { if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->axisData[axis].intervalHint = interval; } QwtDoubleInterval QwtPlotRescaler::intervalHint(int axis) const { if ( axis >= 0 && axis < QwtPlot::axisCnt ) return d_data->axisData[axis].intervalHint; return QwtDoubleInterval(); } //! \return plot canvas QwtPlotCanvas *QwtPlotRescaler::canvas() { QObject *o = parent(); if ( o && o->inherits("QwtPlotCanvas") ) return (QwtPlotCanvas *)o; return NULL; } //! \return plot canvas const QwtPlotCanvas *QwtPlotRescaler::canvas() const { return ((QwtPlotRescaler *)this)->canvas(); } //! \return plot widget QwtPlot *QwtPlotRescaler::plot() { QObject *w = canvas(); if ( w ) { w = w->parent(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; } return NULL; } //! \return plot widget const QwtPlot *QwtPlotRescaler::plot() const { return ((QwtPlotRescaler *)this)->plot(); } //! Event filter for the plot canvas bool QwtPlotRescaler::eventFilter(QObject *o, QEvent *e) { if ( o && o == canvas() ) { switch(e->type()) { case QEvent::Resize: canvasResizeEvent((QResizeEvent *)e); break; #if QT_VERSION >= 0x040000 case QEvent::PolishRequest: rescale(); break; #endif default:; } } return false; } void QwtPlotRescaler::canvasResizeEvent(QResizeEvent* e) { const int fw = 2 * canvas()->frameWidth(); const QSize newSize = e->size() - QSize(fw, fw); const QSize oldSize = e->oldSize() - QSize(fw, fw); rescale(oldSize, newSize); } //! Adjust the plot axes scales void QwtPlotRescaler::rescale() const { #if 0 const int axis = referenceAxis(); if ( axis < 0 || axis >= QwtPlot::axisCnt ) return; const QwtDoubleInterval hint = intervalHint(axis); if ( !hint.isNull() ) { QwtPlot *plt = (QwtPlot *)plot(); const bool doReplot = plt->autoReplot(); plt->setAutoReplot(false); plt->setAxisScale(axis, hint.minValue(), hint.maxValue()); plt->setAutoReplot(doReplot); plt->updateAxes(); } #endif const QSize size = canvas()->contentsRect().size(); rescale(size, size); } /*! Adjust the plot axes scales \param oldSize Previous size of the canvas \param newSize New size of the canvas */ void QwtPlotRescaler::rescale( const QSize &oldSize, const QSize &newSize) const { if ( newSize.isEmpty() ) return; QwtDoubleInterval intervals[QwtPlot::axisCnt]; for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) intervals[axis] = interval(axis); const int refAxis = referenceAxis(); intervals[refAxis] = expandScale(refAxis, oldSize, newSize); for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( aspectRatio(axis) > 0.0 && axis != refAxis ) intervals[axis] = syncScale(axis, intervals[refAxis], newSize); } updateScales(intervals); } /*! Calculate the new scale interval of a plot axis \param axis Axis index ( see QwtPlot::AxisId ) \param oldSize Previous size of the canvas \param newSize New size of the canvas \return Calculated new interval for the axis */ QwtDoubleInterval QwtPlotRescaler::expandScale( int axis, const QSize &oldSize, const QSize &newSize) const { const QwtDoubleInterval oldInterval = interval(axis); QwtDoubleInterval expanded = oldInterval; switch(rescalePolicy()) { case Fixed: { break; // do nothing } case Expanding: { if ( !oldSize.isEmpty() ) { double width = oldInterval.width(); if ( orientation(axis) == Qt::Horizontal ) width *= double(newSize.width()) / oldSize.width(); else width *= double(newSize.height()) / oldSize.height(); expanded = expandInterval(oldInterval, width, expandingDirection(axis)); } break; } case Fitting: { double dist = 0.0; for ( int ax = 0; ax < QwtPlot::axisCnt; ax++ ) { const double d = pixelDist(ax, newSize); if ( d > dist ) dist = d; } if ( dist > 0.0 ) { double width; if ( orientation(axis) == Qt::Horizontal ) width = newSize.width() * dist; else width = newSize.height() * dist; expanded = expandInterval(intervalHint(axis), width, expandingDirection(axis)); } break; } } return expanded; } /*! Synchronize an axis scale according to the scale of the reference axis \param axis Axis index ( see QwtPlot::AxisId ) \param reference Interval of the reference axis \param size Size of the canvas */ QwtDoubleInterval QwtPlotRescaler::syncScale(int axis, const QwtDoubleInterval& reference, const QSize &size) const { double dist; if ( orientation(referenceAxis()) == Qt::Horizontal ) dist = reference.width() / size.width(); else dist = reference.width() / size.height(); if ( orientation(axis) == Qt::Horizontal ) dist *= size.width(); else dist *= size.height(); dist /= aspectRatio(axis); QwtDoubleInterval intv; if ( rescalePolicy() == Fitting ) intv = intervalHint(axis); else intv = interval(axis); intv = expandInterval(intv, dist, expandingDirection(axis)); return intv; } /*! Return orientation of an axis \param axis Axis index ( see QwtPlot::AxisId ) */ Qt::Orientation QwtPlotRescaler::orientation(int axis) const { if ( axis == QwtPlot::yLeft || axis == QwtPlot::yRight ) return Qt::Vertical; return Qt::Horizontal; } /*! Return interval of an axis \param axis Axis index ( see QwtPlot::AxisId ) */ QwtDoubleInterval QwtPlotRescaler::interval(int axis) const { if ( axis < 0 || axis >= QwtPlot::axisCnt ) return QwtDoubleInterval(); const QwtPlot *plt = plot(); const double v1 = plt->axisScaleDiv(axis)->lowerBound(); const double v2 = plt->axisScaleDiv(axis)->upperBound(); return QwtDoubleInterval(v1, v2).normalized(); } /*! Expand the interval \param interval Interval to be expanded \param width Distance to be added to the interval \param direction Direction of the expand operation \return Expanded interval */ QwtDoubleInterval QwtPlotRescaler::expandInterval( const QwtDoubleInterval &interval, double width, ExpandingDirection direction) const { QwtDoubleInterval expanded = interval; switch(direction) { case ExpandUp: expanded.setMinValue(interval.minValue()); expanded.setMaxValue(interval.minValue() + width); break; case ExpandDown: expanded.setMaxValue(interval.maxValue()); expanded.setMinValue(interval.maxValue() - width); break; case ExpandBoth: default: expanded.setMinValue(interval.minValue() + interval.width() / 2.0 - width / 2.0); expanded.setMaxValue(expanded.minValue() + width); } return expanded; } double QwtPlotRescaler::pixelDist(int axis, const QSize &size) const { const QwtDoubleInterval intv = intervalHint(axis); double dist = 0.0; if ( !intv.isNull() ) { if ( axis == referenceAxis() ) dist = intv.width(); else { const double r = aspectRatio(axis); if ( r > 0.0 ) dist = intv.width() * r; } } if ( dist > 0.0 ) { if ( orientation(axis) == Qt::Horizontal ) dist /= size.width(); else dist /= size.height(); } return dist; } /*! Update the axes scales \param intervals Scale intervals */ void QwtPlotRescaler::updateScales( QwtDoubleInterval intervals[QwtPlot::axisCnt]) const { if ( d_data->inReplot >= 5 ) { return; } QwtPlot *plt = (QwtPlot *)plot(); const bool doReplot = plt->autoReplot(); plt->setAutoReplot(false); for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( axis == referenceAxis() || aspectRatio(axis) > 0.0 ) { double v1 = intervals[axis].minValue(); double v2 = intervals[axis].maxValue(); if ( plt->axisScaleDiv(axis)->lowerBound() > plt->axisScaleDiv(axis)->upperBound() ) { qSwap(v1, v2); } if ( d_data->inReplot >= 1 ) { d_data->axisData[axis].scaleDiv = *plt->axisScaleDiv(axis); } if ( d_data->inReplot >= 2 ) { QwtValueList ticks[QwtScaleDiv::NTickTypes]; for ( int i = 0; i < QwtScaleDiv::NTickTypes; i++ ) ticks[i] = d_data->axisData[axis].scaleDiv.ticks(i); plt->setAxisScaleDiv(axis, QwtScaleDiv(v1, v2, ticks)); } else { plt->setAxisScale(axis, v1, v2); } } } plt->setAutoReplot(doReplot); d_data->inReplot++; plt->replot(); d_data->inReplot--; } qwt5-5.2.3/src/qwt_scale_div.cpp0000644000175000017500000000745412052741126016110 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_scale_div.h" #include "qwt_math.h" #include "qwt_double_interval.h" //! Construct an invalid QwtScaleDiv instance. QwtScaleDiv::QwtScaleDiv(): d_lowerBound(0.0), d_upperBound(0.0), d_isValid(false) { } /*! Construct QwtScaleDiv instance. \param interval Interval \param ticks List of major, medium and minor ticks */ QwtScaleDiv::QwtScaleDiv( const QwtDoubleInterval &interval, QwtValueList ticks[NTickTypes]): d_lowerBound(interval.minValue()), d_upperBound(interval.maxValue()), d_isValid(true) { for ( int i = 0; i < NTickTypes; i++ ) d_ticks[i] = ticks[i]; } /*! Construct QwtScaleDiv instance. \param lowerBound First interval limit \param upperBound Second interval limit \param ticks List of major, medium and minor ticks */ QwtScaleDiv::QwtScaleDiv( double lowerBound, double upperBound, QwtValueList ticks[NTickTypes]): d_lowerBound(lowerBound), d_upperBound(upperBound), d_isValid(true) { for ( int i = 0; i < NTickTypes; i++ ) d_ticks[i] = ticks[i]; } /*! Change the interval \param interval Interval */ void QwtScaleDiv::setInterval(const QwtDoubleInterval &interval) { setInterval(interval.minValue(), interval.maxValue()); } /*! \brief Equality operator \return true if this instance is equal to other */ int QwtScaleDiv::operator==(const QwtScaleDiv &other) const { if ( d_lowerBound != other.d_lowerBound || d_upperBound != other.d_upperBound || d_isValid != other.d_isValid ) { return false; } for ( int i = 0; i < NTickTypes; i++ ) { if ( d_ticks[i] != other.d_ticks[i] ) return false; } return true; } /*! \brief Inequality \return true if this instance is not equal to s */ int QwtScaleDiv::operator!=(const QwtScaleDiv &s) const { return (!(*this == s)); } //! Invalidate the scale division void QwtScaleDiv::invalidate() { d_isValid = false; // detach arrays for ( int i = 0; i < NTickTypes; i++ ) d_ticks[i].clear(); d_lowerBound = d_upperBound = 0; } //! Check if the scale division is valid bool QwtScaleDiv::isValid() const { return d_isValid; } /*! Return if a value is between lowerBound() and upperBound() \param value Value \return true/false */ bool QwtScaleDiv::contains(double value) const { if ( !d_isValid ) return false; const double min = qwtMin(d_lowerBound, d_upperBound); const double max = qwtMax(d_lowerBound, d_upperBound); return value >= min && value <= max; } //! Invert the scale divison void QwtScaleDiv::invert() { qSwap(d_lowerBound, d_upperBound); for ( int i = 0; i < NTickTypes; i++ ) { QwtValueList& ticks = d_ticks[i]; const int size = ticks.count(); const int size2 = size / 2; for (int i=0; i < size2; i++) qSwap(ticks[i], ticks[size - 1 - i]); } } /*! Assign ticks \param type MinorTick, MediumTick or MajorTick \param ticks Values of the tick positions */ void QwtScaleDiv::setTicks(int type, const QwtValueList &ticks) { if ( type >= 0 && type < NTickTypes ) d_ticks[type] = ticks; } /*! Return a list of ticks \param type MinorTick, MediumTick or MajorTick */ const QwtValueList &QwtScaleDiv::ticks(int type) const { if ( type >= 0 && type < NTickTypes ) return d_ticks[type]; static QwtValueList noTicks; return noTicks; } qwt5-5.2.3/src/qwt_plot_layout.h0000644000175000017500000000540512052741123016166 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_LAYOUT_H #define QWT_PLOT_LAYOUT_H #include "qwt_global.h" #include "qwt_plot.h" /*! \brief Layout engine for QwtPlot. It is used by the QwtPlot widget to organize its internal widgets or by QwtPlot::print() to render its content to a QPaintDevice like a QPrinter, QPixmap/QImage or QSvgRenderer. */ class QWT_EXPORT QwtPlotLayout { public: /*! Options to configure the plot layout engine - AlignScales\n Unused - IgnoreScrollbars\n Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is rendered to a paint device (QwtPlot::print() ). - IgnoreFrames\n Ignore all frames. QwtPlot::print() doesn't paint them. - IgnoreMargin\n Ignore the margin(). - IgnoreLegend\n Ignore the legend. \sa activate() */ enum Options { AlignScales = 1, IgnoreScrollbars = 2, IgnoreFrames = 4, IgnoreMargin = 8, IgnoreLegend = 16 }; explicit QwtPlotLayout(); virtual ~QwtPlotLayout(); void setMargin(int); int margin() const; void setCanvasMargin(int margin, int axis = -1); int canvasMargin(int axis) const; void setAlignCanvasToScales(bool); bool alignCanvasToScales() const; void setSpacing(int); int spacing() const; void setLegendPosition(QwtPlot::LegendPosition pos, double ratio); void setLegendPosition(QwtPlot::LegendPosition pos); QwtPlot::LegendPosition legendPosition() const; void setLegendRatio(double ratio); double legendRatio() const; virtual QSize minimumSizeHint(const QwtPlot *) const; virtual void activate(const QwtPlot *, const QRect &rect, int options = 0); virtual void invalidate(); const QRect &titleRect() const; const QRect &legendRect() const; const QRect &scaleRect(int axis) const; const QRect &canvasRect() const; class LayoutData; protected: QRect layoutLegend(int options, const QRect &) const; QRect alignLegend(const QRect &canvasRect, const QRect &legendRect) const; void expandLineBreaks(int options, const QRect &rect, int &dimTitle, int dimAxes[QwtPlot::axisCnt]) const; void alignScales(int options, QRect &canvasRect, QRect scaleRect[QwtPlot::axisCnt]) const; private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot.cpp0000644000175000017500000005141312052741126015127 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #if QT_VERSION < 0x040000 #include #include #else #include #include #endif #include #include #include "qwt_plot.h" #include "qwt_plot_dict.h" #include "qwt_plot_layout.h" #include "qwt_scale_widget.h" #include "qwt_scale_engine.h" #include "qwt_text_label.h" #include "qwt_legend.h" #include "qwt_dyngrid_layout.h" #include "qwt_plot_canvas.h" #include "qwt_paint_buffer.h" class QwtPlot::PrivateData { public: #if QT_VERSION < 0x040000 QGuardedPtr lblTitle; QGuardedPtr canvas; QGuardedPtr legend; #else QPointer lblTitle; QPointer canvas; QPointer legend; #endif QwtPlotLayout *layout; bool autoReplot; }; /*! \brief Constructor \param parent Parent widget */ QwtPlot::QwtPlot(QWidget *parent): QFrame(parent) { initPlot(QwtText()); } /*! \brief Constructor \param title Title text \param parent Parent widget */ QwtPlot::QwtPlot(const QwtText &title, QWidget *parent): QFrame(parent) { initPlot(title); } #if QT_VERSION < 0x040000 /*! \brief Constructor \param parent Parent widget \param name Object name */ QwtPlot::QwtPlot(QWidget *parent, const char *name): QFrame(parent, name) { initPlot(QwtText()); } #endif //! Destructor QwtPlot::~QwtPlot() { detachItems(QwtPlotItem::Rtti_PlotItem, autoDelete()); delete d_data->layout; deleteAxesData(); delete d_data; } /*! \brief Initializes a QwtPlot instance \param title Title text */ void QwtPlot::initPlot(const QwtText &title) { d_data = new PrivateData; #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif d_data->layout = new QwtPlotLayout; d_data->autoReplot = false; d_data->lblTitle = new QwtTextLabel(title, this); d_data->lblTitle->setFont(QFont(fontInfo().family(), 14, QFont::Bold)); QwtText text(title); int flags = Qt::AlignCenter; #if QT_VERSION < 0x040000 flags |= Qt::WordBreak | Qt::ExpandTabs; #else flags |= Qt::TextWordWrap; #endif text.setRenderFlags(flags); d_data->lblTitle->setText(text); d_data->legend = NULL; initAxesData(); d_data->canvas = new QwtPlotCanvas(this); d_data->canvas->setFrameStyle(QFrame::Panel|QFrame::Sunken); d_data->canvas->setLineWidth(2); d_data->canvas->setMidLineWidth(0); updateTabOrder(); setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); resize( 200, 200 ); } /*! \brief Adds handling of layout requests */ bool QwtPlot::event(QEvent *e) { bool ok = QFrame::event(e); switch(e->type()) { #if QT_VERSION < 0x040000 case QEvent::LayoutHint: #else case QEvent::LayoutRequest: #endif updateLayout(); break; #if QT_VERSION >= 0x040000 case QEvent::PolishRequest: polish(); break; #endif default:; } return ok; } //! Replots the plot if QwtPlot::autoReplot() is \c true. void QwtPlot::autoRefresh() { if (d_data->autoReplot) replot(); } /*! \brief Set or reset the autoReplot option If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call replot() explicitly if necessary. The autoReplot option is set to false by default, which means that the user has to call replot() in order to make changes visible. \param tf \c true or \c false. Defaults to \c true. \sa replot() */ void QwtPlot::setAutoReplot(bool tf) { d_data->autoReplot = tf; } //! \return true if the autoReplot option is set. bool QwtPlot::autoReplot() const { return d_data->autoReplot; } /*! Change the plot's title \param title New title */ void QwtPlot::setTitle(const QString &title) { if ( title != d_data->lblTitle->text().text() ) { d_data->lblTitle->setText(title); updateLayout(); } } /*! Change the plot's title \param title New title */ void QwtPlot::setTitle(const QwtText &title) { if ( title != d_data->lblTitle->text() ) { d_data->lblTitle->setText(title); updateLayout(); } } //! \return the plot's title QwtText QwtPlot::title() const { return d_data->lblTitle->text(); } //! \return the plot's title QwtPlotLayout *QwtPlot::plotLayout() { return d_data->layout; } //! \return the plot's titel label. const QwtPlotLayout *QwtPlot::plotLayout() const { return d_data->layout; } //! \return the plot's titel label. QwtTextLabel *QwtPlot::titleLabel() { return d_data->lblTitle; } /*! \return the plot's titel label. */ const QwtTextLabel *QwtPlot::titleLabel() const { return d_data->lblTitle; } /*! \return the plot's legend \sa insertLegend() */ QwtLegend *QwtPlot::legend() { return d_data->legend; } /*! \return the plot's legend \sa insertLegend() */ const QwtLegend *QwtPlot::legend() const { return d_data->legend; } /*! \return the plot's canvas */ QwtPlotCanvas *QwtPlot::canvas() { return d_data->canvas; } /*! \return the plot's canvas */ const QwtPlotCanvas *QwtPlot::canvas() const { return d_data->canvas; } //! Polish void QwtPlot::polish() { replot(); #if QT_VERSION < 0x040000 QFrame::polish(); #endif } /*! Return sizeHint \sa minimumSizeHint() */ QSize QwtPlot::sizeHint() const { int dw = 0; int dh = 0; for ( int axisId = 0; axisId < axisCnt; axisId++ ) { if ( axisEnabled(axisId) ) { const int niceDist = 40; const QwtScaleWidget *scaleWidget = axisWidget(axisId); const QwtScaleDiv &scaleDiv = scaleWidget->scaleDraw()->scaleDiv(); const int majCnt = scaleDiv.ticks(QwtScaleDiv::MajorTick).count(); if ( axisId == yLeft || axisId == yRight ) { int hDiff = (majCnt - 1) * niceDist - scaleWidget->minimumSizeHint().height(); if ( hDiff > dh ) dh = hDiff; } else { int wDiff = (majCnt - 1) * niceDist - scaleWidget->minimumSizeHint().width(); if ( wDiff > dw ) dw = wDiff; } } } return minimumSizeHint() + QSize(dw, dh); } /*! \brief Return a minimum size hint */ QSize QwtPlot::minimumSizeHint() const { QSize hint = d_data->layout->minimumSizeHint(this); hint += QSize(2 * frameWidth(), 2 * frameWidth()); return hint; } /*! Resize and update internal layout \param e Resize event */ void QwtPlot::resizeEvent(QResizeEvent *e) { QFrame::resizeEvent(e); updateLayout(); } /*! \brief Redraw the plot If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible. \sa setAutoReplot() \warning Calls canvas()->repaint, take care of infinite recursions */ void QwtPlot::replot() { bool doAutoReplot = autoReplot(); setAutoReplot(false); updateAxes(); /* Maybe the layout needs to be updated, because of changed axes labels. We need to process them here before painting to avoid that scales and canvas get out of sync. */ #if QT_VERSION >= 0x040000 QApplication::sendPostedEvents(this, QEvent::LayoutRequest); #else QApplication::sendPostedEvents(this, QEvent::LayoutHint); #endif d_data->canvas->replot(); setAutoReplot(doAutoReplot); } /*! \brief Adjust plot content to its current size. \sa resizeEvent() */ void QwtPlot::updateLayout() { d_data->layout->activate(this, contentsRect()); // // resize and show the visible widgets // if (!d_data->lblTitle->text().isEmpty()) { d_data->lblTitle->setGeometry(d_data->layout->titleRect()); if (!d_data->lblTitle->isVisible()) d_data->lblTitle->show(); } else d_data->lblTitle->hide(); for (int axisId = 0; axisId < axisCnt; axisId++ ) { if (axisEnabled(axisId) ) { axisWidget(axisId)->setGeometry(d_data->layout->scaleRect(axisId)); if ( axisId == xBottom || axisId == xTop ) { QRegion r(d_data->layout->scaleRect(axisId)); if ( axisEnabled(yLeft) ) r = r.subtract(QRegion(d_data->layout->scaleRect(yLeft))); if ( axisEnabled(yRight) ) r = r.subtract(QRegion(d_data->layout->scaleRect(yRight))); r.translate(-d_data->layout->scaleRect(axisId).x(), -d_data->layout->scaleRect(axisId).y()); axisWidget(axisId)->setMask(r); } if (!axisWidget(axisId)->isVisible()) axisWidget(axisId)->show(); } else axisWidget(axisId)->hide(); } if ( d_data->legend && d_data->layout->legendPosition() != ExternalLegend ) { if (d_data->legend->itemCount() > 0) { d_data->legend->setGeometry(d_data->layout->legendRect()); d_data->legend->show(); } else d_data->legend->hide(); } d_data->canvas->setGeometry(d_data->layout->canvasRect()); } /*! Update the focus tab order The order is changed so that the canvas will be in front of the first legend item, or behind the last legend item - depending on the position of the legend. */ void QwtPlot::updateTabOrder() { #if QT_VERSION >= 0x040000 using namespace Qt; // QWidget::NoFocus/Qt::NoFocus #else if ( d_data->canvas->focusPolicy() == NoFocus ) return; #endif if ( d_data->legend.isNull() || d_data->layout->legendPosition() == ExternalLegend || d_data->legend->legendItems().count() == 0 ) { return; } // Depending on the position of the legend the // tab order will be changed that the canvas is // next to the last legend item, or before // the first one. const bool canvasFirst = d_data->layout->legendPosition() == QwtPlot::BottomLegend || d_data->layout->legendPosition() == QwtPlot::RightLegend; QWidget *previous = NULL; QWidget *w; #if QT_VERSION >= 0x040000 w = d_data->canvas; while ( ( w = w->nextInFocusChain() ) != d_data->canvas ) #else if ( focusData() == NULL ) return; while ( focusData()->next() != d_data->canvas ); while ( (w = focusData()->next()) != d_data->canvas ) #endif { bool isLegendItem = false; if ( w->focusPolicy() != NoFocus && w->parent() && w->parent() == d_data->legend->contentsWidget() ) { isLegendItem = true; } if ( canvasFirst ) { if ( isLegendItem ) break; previous = w; } else { if ( isLegendItem ) previous = w; else { if ( previous ) break; } } } if ( previous && previous != d_data->canvas) setTabOrder(previous, d_data->canvas); } /*! Redraw the canvas. \param painter Painter used for drawing \warning drawCanvas calls drawItems what is also used for printing. Applications that like to add individual plot items better overload drawItems() \sa drawItems() */ void QwtPlot::drawCanvas(QPainter *painter) { QwtScaleMap maps[axisCnt]; for ( int axisId = 0; axisId < axisCnt; axisId++ ) maps[axisId] = canvasMap(axisId); drawItems(painter, d_data->canvas->contentsRect(), maps, QwtPlotPrintFilter()); } /*! Redraw the canvas items. \param painter Painter used for drawing \param rect Bounding rectangle where to paint \param map QwtPlot::axisCnt maps, mapping between plot and paint device coordinates \param pfilter Plot print filter */ void QwtPlot::drawItems(QPainter *painter, const QRect &rect, const QwtScaleMap map[axisCnt], const QwtPlotPrintFilter &pfilter) const { const QwtPlotItemList& itmList = itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { QwtPlotItem *item = *it; if ( item && item->isVisible() ) { if ( !(pfilter.options() & QwtPlotPrintFilter::PrintGrid) && item->rtti() == QwtPlotItem::Rtti_PlotGrid ) { continue; } painter->save(); #if QT_VERSION >= 0x040000 painter->setRenderHint(QPainter::Antialiasing, item->testRenderHint(QwtPlotItem::RenderAntialiased) ); #endif item->draw(painter, map[item->xAxis()], map[item->yAxis()], rect); painter->restore(); } } } /*! \param axisId Axis \return Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa. \sa QwtScaleMap, transform(), invTransform() */ QwtScaleMap QwtPlot::canvasMap(int axisId) const { QwtScaleMap map; if ( !d_data->canvas ) return map; map.setTransformation(axisScaleEngine(axisId)->transformation()); const QwtScaleDiv *sd = axisScaleDiv(axisId); map.setScaleInterval(sd->lowerBound(), sd->upperBound()); if ( axisEnabled(axisId) ) { const QwtScaleWidget *s = axisWidget(axisId); if ( axisId == yLeft || axisId == yRight ) { int y = s->y() + s->startBorderDist() - d_data->canvas->y(); int h = s->height() - s->startBorderDist() - s->endBorderDist(); map.setPaintInterval(y + h, y); } else { int x = s->x() + s->startBorderDist() - d_data->canvas->x(); int w = s->width() - s->startBorderDist() - s->endBorderDist(); map.setPaintInterval(x, x + w); } } else { const int margin = plotLayout()->canvasMargin(axisId); const QRect &canvasRect = d_data->canvas->contentsRect(); if ( axisId == yLeft || axisId == yRight ) { map.setPaintInterval(canvasRect.bottom() - margin, canvasRect.top() + margin); } else { map.setPaintInterval(canvasRect.left() + margin, canvasRect.right() - margin); } } return map; } /*! Change the margin of the plot. The margin is the space around all components. \param margin new margin \sa QwtPlotLayout::setMargin(), margin(), plotLayout() */ void QwtPlot::setMargin(int margin) { if ( margin < 0 ) margin = 0; if ( margin != d_data->layout->margin() ) { d_data->layout->setMargin(margin); updateLayout(); } } /*! \return margin \sa setMargin(), QwtPlotLayout::margin(), plotLayout() */ int QwtPlot::margin() const { return d_data->layout->margin(); } /*! \brief Change the background of the plotting area Sets c to QColorGroup::Background of all colorgroups of the palette of the canvas. Using canvas()->setPalette() is a more powerful way to set these colors. \param c new background color */ void QwtPlot::setCanvasBackground(const QColor &c) { QPalette p = d_data->canvas->palette(); for ( int i = 0; i < QPalette::NColorGroups; i++ ) { #if QT_VERSION < 0x040000 p.setColor((QPalette::ColorGroup)i, QColorGroup::Background, c); #else p.setColor((QPalette::ColorGroup)i, QPalette::Background, c); #endif } canvas()->setPalette(p); } /*! Nothing else than: canvas()->palette().color( QPalette::Normal, QColorGroup::Background); \return the background color of the plotting area. */ const QColor & QwtPlot::canvasBackground() const { #if QT_VERSION < 0x040000 return canvas()->palette().color( QPalette::Normal, QColorGroup::Background); #else return canvas()->palette().color( QPalette::Normal, QPalette::Background); #endif } /*! \brief Change the border width of the plotting area Nothing else than canvas()->setLineWidth(w), left for compatibility only. \param w new border width */ void QwtPlot::setCanvasLineWidth(int w) { canvas()->setLineWidth(w); updateLayout(); } /*! Nothing else than: canvas()->lineWidth(), left for compatibility only. \return the border width of the plotting area */ int QwtPlot::canvasLineWidth() const { return canvas()->lineWidth(); } /*! \return \c true if the specified axis exists, otherwise \c false \param axisId axis index */ bool QwtPlot::axisValid(int axisId) { return ((axisId >= QwtPlot::yLeft) && (axisId < QwtPlot::axisCnt)); } /*! Called internally when the legend has been clicked on. Emits a legendClicked() signal. */ void QwtPlot::legendItemClicked() { if ( d_data->legend && sender()->isWidgetType() ) { QwtPlotItem *plotItem = (QwtPlotItem*)d_data->legend->find((QWidget *)sender()); if ( plotItem ) emit legendClicked(plotItem); } } /*! Called internally when the legend has been checked Emits a legendClicked() signal. */ void QwtPlot::legendItemChecked(bool on) { if ( d_data->legend && sender()->isWidgetType() ) { QwtPlotItem *plotItem = (QwtPlotItem*)d_data->legend->find((QWidget *)sender()); if ( plotItem ) emit legendChecked(plotItem, on); } } /*! Remove all curves and markers \deprecated Use QwtPlotDeict::detachItems instead */ void QwtPlot::clear() { detachItems(QwtPlotItem::Rtti_PlotCurve); detachItems(QwtPlotItem::Rtti_PlotMarker); } /*! \brief Insert a legend If the position legend is \c QwtPlot::LeftLegend or \c QwtPlot::RightLegend the legend will be organized in one column from top to down. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right. If pos != QwtPlot::ExternalLegend the plot widget will become parent of the legend. It will be deleted when the plot is deleted, or another legend is set with insertLegend(). \param legend Legend \param pos The legend's position. For top/left position the number of colums will be limited to 1, otherwise it will be set to unlimited. \param ratio Ratio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. \sa legend(), QwtPlotLayout::legendPosition(), QwtPlotLayout::setLegendPosition() */ void QwtPlot::insertLegend(QwtLegend *legend, QwtPlot::LegendPosition pos, double ratio) { d_data->layout->setLegendPosition(pos, ratio); if ( legend != d_data->legend ) { if ( d_data->legend && d_data->legend->parent() == this ) delete d_data->legend; d_data->legend = legend; if ( d_data->legend ) { if ( pos != ExternalLegend ) { if ( d_data->legend->parent() != this ) { #if QT_VERSION < 0x040000 d_data->legend->reparent(this, QPoint(0, 0)); #else d_data->legend->setParent(this); #endif } } const QwtPlotItemList& itmList = itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { (*it)->updateLegend(d_data->legend); } QLayout *l = d_data->legend->contentsWidget()->layout(); if ( l && l->inherits("QwtDynGridLayout") ) { QwtDynGridLayout *tl = (QwtDynGridLayout *)l; switch(d_data->layout->legendPosition()) { case LeftLegend: case RightLegend: tl->setMaxCols(1); // 1 column: align vertical break; case TopLegend: case BottomLegend: tl->setMaxCols(0); // unlimited break; case ExternalLegend: break; } } } updateTabOrder(); } updateLayout(); } qwt5-5.2.3/src/qwt_plot_spectrogram.h0000644000175000017500000000607712052741123017205 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_SPECTROGRAM_H #define QWT_PLOT_SPECTROGRAM_H #include #include "qwt_valuelist.h" #include "qwt_raster_data.h" #include "qwt_plot_rasteritem.h" class QwtColorMap; /*! \brief A plot item, which displays a spectrogram A spectrogram displays threedimenional data, where the 3rd dimension ( the intensity ) is displayed using colors. The colors are calculated from the values using a color map. In ContourMode contour lines are painted for the contour levels. \image html spectrogram3.png \sa QwtRasterData, QwtColorMap */ class QWT_EXPORT QwtPlotSpectrogram: public QwtPlotRasterItem { public: /*! The display mode controls how the raster data will be represented. - ImageMode\n The values are mapped to colors using a color map. - ContourMode\n The data is displayed using contour lines When both modes are enabled the contour lines are painted on top of the spectrogram. The default setting enables ImageMode. \sa setDisplayMode(), testDisplayMode() */ enum DisplayMode { ImageMode = 1, ContourMode = 2 }; explicit QwtPlotSpectrogram(const QString &title = QString::null); virtual ~QwtPlotSpectrogram(); void setDisplayMode(DisplayMode, bool on = true); bool testDisplayMode(DisplayMode) const; void setData(const QwtRasterData &data); const QwtRasterData &data() const; void setColorMap(const QwtColorMap &); const QwtColorMap &colorMap() const; virtual QwtDoubleRect boundingRect() const; virtual QSize rasterHint(const QwtDoubleRect &) const; void setDefaultContourPen(const QPen &); QPen defaultContourPen() const; virtual QPen contourPen(double level) const; void setConrecAttribute(QwtRasterData::ConrecAttribute, bool on); bool testConrecAttribute(QwtRasterData::ConrecAttribute) const; void setContourLevels(const QwtValueList &); QwtValueList contourLevels() const; virtual int rtti() const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const; protected: virtual QImage renderImage( const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &rect) const; virtual QSize contourRasterSize( const QwtDoubleRect &, const QRect &) const; virtual QwtRasterData::ContourLines renderContourLines( const QwtDoubleRect &rect, const QSize &raster) const; virtual void drawContourLines(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines& lines) const; private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_compass_rose.cpp0000644000175000017500000001602412052741126016645 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_compass_rose.h" static QPoint cutPoint(QPoint p11, QPoint p12, QPoint p21, QPoint p22) { double dx1 = p12.x() - p11.x(); double dy1 = p12.y() - p11.y(); double dx2 = p22.x() - p21.x(); double dy2 = p22.y() - p21.y(); if ( dx1 == 0.0 && dx2 == 0.0 ) return QPoint(); if ( dx1 == 0.0 ) { const double m = dy2 / dx2; const double t = p21.y() - m * p21.x(); return QPoint(p11.x(), qRound(m * p11.x() + t)); } if ( dx2 == 0 ) { const double m = dy1 / dx1; const double t = p11.y() - m * p11.x(); return QPoint(p21.x(), qRound(m * p21.x() + t)); } const double m1 = dy1 / dx1; const double t1 = p11.y() - m1 * p11.x(); const double m2 = dy2 / dx2; const double t2 = p21.y() - m2 * p21.x(); if ( m1 == m2 ) return QPoint(); const double x = ( t2 - t1 ) / ( m1 - m2 ); const double y = t1 + m1 * x; return QPoint(qRound(x), qRound(y)); } /*! Constructor \param numThorns Number of thorns \param numThornLevels Number of thorn levels */ QwtSimpleCompassRose::QwtSimpleCompassRose(int numThorns, int numThornLevels): d_width(0.2), d_numThorns(numThorns), d_numThornLevels(numThornLevels), d_shrinkFactor(0.9) { const QColor dark(128,128,255); const QColor light(192,255,255); QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { #if QT_VERSION < 0x040000 palette.setColor((QPalette::ColorGroup)i, QColorGroup::Dark, dark); palette.setColor((QPalette::ColorGroup)i, QColorGroup::Light, light); #else palette.setColor((QPalette::ColorGroup)i, QPalette::Dark, dark); palette.setColor((QPalette::ColorGroup)i, QPalette::Light, light); #endif } setPalette(palette); } /*! Draw the rose \param painter Painter \param center Center point \param radius Radius of the rose \param north Position \param cg Color group */ void QwtSimpleCompassRose::draw(QPainter *painter, const QPoint ¢er, int radius, double north, QPalette::ColorGroup cg) const { #if QT_VERSION < 0x040000 QColorGroup colorGroup; switch(cg) { case QPalette::Disabled: colorGroup = palette().disabled(); case QPalette::Inactive: colorGroup = palette().inactive(); default: colorGroup = palette().active(); } drawRose(painter, colorGroup, center, radius, north, d_width, d_numThorns, d_numThornLevels, d_shrinkFactor); #else QPalette pal = palette(); pal.setCurrentColorGroup(cg); drawRose(painter, pal, center, radius, north, d_width, d_numThorns, d_numThornLevels, d_shrinkFactor); #endif } /*! Draw the rose \param painter Painter \param palette Palette \param center Center of the rose \param radius Radius of the rose \param north Position pointing to north \param width Width of the rose \param numThorns Number of thorns \param numThornLevels Number of thorn levels \param shrinkFactor Factor to shrink the thorns with each level */ void QwtSimpleCompassRose::drawRose( QPainter *painter, #if QT_VERSION < 0x040000 const QColorGroup &cg, #else const QPalette &palette, #endif const QPoint ¢er, int radius, double north, double width, int numThorns, int numThornLevels, double shrinkFactor) { if ( numThorns < 4 ) numThorns = 4; if ( numThorns % 4 ) numThorns += 4 - numThorns % 4; if ( numThornLevels <= 0 ) numThornLevels = numThorns / 4; if ( shrinkFactor >= 1.0 ) shrinkFactor = 1.0; if ( shrinkFactor <= 0.5 ) shrinkFactor = 0.5; painter->save(); painter->setPen(Qt::NoPen); for ( int j = 1; j <= numThornLevels; j++ ) { double step = pow(2.0, j) * M_PI / (double)numThorns; if ( step > M_PI_2 ) break; double r = radius; for ( int k = 0; k < 3; k++ ) { if ( j + k < numThornLevels ) r *= shrinkFactor; } double leafWidth = r * width; if ( 2.0 * M_PI / step > 32 ) leafWidth = 16; const double origin = north / 180.0 * M_PI; for ( double angle = origin; angle < 2.0 * M_PI + origin; angle += step) { const QPoint p = qwtPolar2Pos(center, r, angle); QPoint p1 = qwtPolar2Pos(center, leafWidth, angle + M_PI_2); QPoint p2 = qwtPolar2Pos(center, leafWidth, angle - M_PI_2); QwtPolygon pa(3); pa.setPoint(0, center); pa.setPoint(1, p); QPoint p3 = qwtPolar2Pos(center, r, angle + step / 2.0); p1 = cutPoint(center, p3, p1, p); pa.setPoint(2, p1); #if QT_VERSION < 0x040000 painter->setBrush(cg.brush(QColorGroup::Dark)); #else painter->setBrush(palette.brush(QPalette::Dark)); #endif painter->drawPolygon(pa); QPoint p4 = qwtPolar2Pos(center, r, angle - step / 2.0); p2 = cutPoint(center, p4, p2, p); pa.setPoint(2, p2); #if QT_VERSION < 0x040000 painter->setBrush(cg.brush(QColorGroup::Light)); #else painter->setBrush(palette.brush(QPalette::Light)); #endif painter->drawPolygon(pa); } } painter->restore(); } /*! Set the width of the rose heads. Lower value make thinner heads. The range is limited from 0.03 to 0.4. \param width Width */ void QwtSimpleCompassRose::setWidth(double width) { d_width = width; if (d_width < 0.03) d_width = 0.03; if (d_width > 0.4) d_width = 0.4; } /*! Set the number of thorns on one level The number is aligned to a multiple of 4, with a minimum of 4 \param numThorns Number of thorns \sa numThorns(), setNumThornLevels() */ void QwtSimpleCompassRose::setNumThorns(int numThorns) { if ( numThorns < 4 ) numThorns = 4; if ( numThorns % 4 ) numThorns += 4 - numThorns % 4; d_numThorns = numThorns; } /*! \return Number of thorns \sa setNumThorns(), setNumThornLevels() */ int QwtSimpleCompassRose::numThorns() const { return d_numThorns; } /*! Set the of thorns levels \param numThornLevels Number of thorns levels \sa setNumThorns(), numThornLevels() */ void QwtSimpleCompassRose::setNumThornLevels(int numThornLevels) { d_numThornLevels = numThornLevels; } /*! \return Number of thorn levels \sa setNumThorns(), setNumThornLevels() */ int QwtSimpleCompassRose::numThornLevels() const { return d_numThornLevels; } qwt5-5.2.3/src/qwt_plot_picker.h0000644000175000017500000000561612052741123016132 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_PICKER_H #define QWT_PLOT_PICKER_H #include "qwt_double_rect.h" #include "qwt_plot_canvas.h" #include "qwt_picker.h" class QwtPlot; /*! \brief QwtPlotPicker provides selections on a plot canvas QwtPlotPicker is a QwtPicker tailored for selections on a plot canvas. It is set to a x-Axis and y-Axis and translates all pixel coordinates into this coodinate system. */ class QWT_EXPORT QwtPlotPicker: public QwtPicker { Q_OBJECT public: explicit QwtPlotPicker(QwtPlotCanvas *); virtual ~QwtPlotPicker(); explicit QwtPlotPicker(int xAxis, int yAxis, QwtPlotCanvas *); explicit QwtPlotPicker(int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *); virtual void setAxis(int xAxis, int yAxis); int xAxis() const; int yAxis() const; QwtPlot *plot(); const QwtPlot *plot() const; QwtPlotCanvas *canvas(); const QwtPlotCanvas *canvas() const; signals: /*! A signal emitted in case of selectionFlags() & PointSelection. \param pos Selected point */ void selected(const QwtDoublePoint &pos); /*! A signal emitted in case of selectionFlags() & RectSelection. \param rect Selected rectangle */ void selected(const QwtDoubleRect &rect); /*! A signal emitting the selected points, at the end of a selection. \param pa Selected points */ void selected(const QwtArray &pa); /*! A signal emitted when a point has been appended to the selection \param pos Position of the appended point. \sa append(). moved() */ void appended(const QwtDoublePoint &pos); /*! A signal emitted whenever the last appended point of the selection has been moved. \param pos Position of the moved last point of the selection. \sa move(), appended() */ void moved(const QwtDoublePoint &pos); protected: QwtDoubleRect scaleRect() const; QwtDoubleRect invTransform(const QRect &) const; QRect transform(const QwtDoubleRect &) const; QwtDoublePoint invTransform(const QPoint &) const; QPoint transform(const QwtDoublePoint &) const; virtual QwtText trackerText(const QPoint &) const; virtual QwtText trackerText(const QwtDoublePoint &) const; virtual void move(const QPoint &); virtual void append(const QPoint &); virtual bool end(bool ok = true); private: int d_xAxis; int d_yAxis; }; #endif qwt5-5.2.3/src/qwt_panner.h0000644000175000017500000000546212052741123015101 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PANNER_H #define QWT_PANNER_H 1 #include #include #include "qwt_global.h" class QCursor; /*! \brief QwtPanner provides panning of a widget QwtPanner grabs the contents of a widget, that can be dragged in all directions. The offset between the start and the end position is emitted by the panned signal. QwtPanner grabs the content of the widget into a pixmap and moves the pixmap around, without initiating any repaint events for the widget. Areas, that are not part of content are not painted while panning in in process. This makes panning fast enough for widgets, where repaints are too slow for mouse movements. For widgets, where repaints are very fast it might be better to implement panning manually by mapping mouse events into paint events. */ class QWT_EXPORT QwtPanner: public QWidget { Q_OBJECT public: QwtPanner(QWidget* parent); virtual ~QwtPanner(); void setEnabled(bool); bool isEnabled() const; void setMouseButton(int button, int buttonState = Qt::NoButton); void getMouseButton(int &button, int &buttonState) const; void setAbortKey(int key, int state = Qt::NoButton); void getAbortKey(int &key, int &state) const; void setCursor(const QCursor &); const QCursor cursor() const; #if QT_VERSION >= 0x040000 void setOrientations(Qt::Orientations); Qt::Orientations orientations() const; #else void enableOrientation(Qt::Orientation, bool enable); #endif bool isOrientationEnabled(Qt::Orientation) const; virtual bool eventFilter(QObject *, QEvent *); signals: /*! Signal emitted, when panning is done \param dx Offset in horizontal direction \param dy Offset in vertical direction */ void panned(int dx, int dy); /*! Signal emitted, while the widget moved, but panning is not finished. \param dx Offset in horizontal direction \param dy Offset in vertical direction */ void moved(int dx, int dy); protected: virtual void widgetMousePressEvent(QMouseEvent *); virtual void widgetMouseReleaseEvent(QMouseEvent *); virtual void widgetMouseMoveEvent(QMouseEvent *); virtual void widgetKeyPressEvent(QKeyEvent *); virtual void widgetKeyReleaseEvent(QKeyEvent *); virtual void paintEvent(QPaintEvent *); private: #ifndef QT_NO_CURSOR void showCursor(bool); #endif class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_paint_buffer.h0000644000175000017500000000305312052741123016254 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PAINT_BUFFER_H #define QWT_PAINT_BUFFER_H 1 #include #if QT_VERSION < 0x040000 #include #include "qwt_global.h" class QPainter; /*! \brief Paint buffer for Qwt widgets QwtPaintBuffer offers a simple way to en/disable double buffering. Double buffering is enabled as default and in general there will be no reason to change this. */ class QWT_EXPORT QwtPaintBuffer { public: explicit QwtPaintBuffer(); explicit QwtPaintBuffer(QPaintDevice *, const QRect &, QPainter *p = NULL); virtual ~QwtPaintBuffer(); void open(QPaintDevice *, const QRect &, QPainter *p = NULL); void close(); QPainter *painter(); const QPaintDevice *device(); static void setEnabled(bool enable); static bool isEnabled(); //! Return Buffer used for double buffering const QPixmap &buffer() const { return d_pixBuffer; } protected: void flush(); private: QPixmap d_pixBuffer; QRect d_rect; QPaintDevice *d_device; // use QGuardedPtr QPainter *d_painter; // use QGuardedPtr QPainter *d_devicePainter; // use QGuardedPtr static bool d_enabled; }; #endif // QT_VERSION < 0x040000 #endif qwt5-5.2.3/src/qwt_layout_metrics.cpp0000644000175000017500000002040212052741126017206 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #if QT_VERSION < 0x040000 #include #include #define QwtMatrix QWMatrix #else #include #define QwtMatrix QMatrix #endif #include #include #include "qwt_math.h" #include "qwt_polygon.h" #include "qwt_layout_metrics.h" static QSize deviceDpi(const QPaintDevice *device) { QSize dpi; #if QT_VERSION < 0x040000 const QPaintDeviceMetrics metrics(device); dpi.setWidth(metrics.logicalDpiX()); dpi.setHeight(metrics.logicalDpiY()); #else dpi.setWidth(device->logicalDpiX()); dpi.setHeight(device->logicalDpiY()); #endif return dpi; } #if QT_VERSION < 0x040000 inline static const QWMatrix &matrix(const QPainter *painter) { return painter->worldMatrix(); } inline static QWMatrix invMatrix(const QPainter *painter) { return painter->worldMatrix().invert(); } #else // QT_VERSION >= 0x040000 inline static const QMatrix &matrix(const QPainter *painter) { return painter->matrix(); } inline static QMatrix invMatrix(const QPainter *painter) { return painter->matrix().inverted(); } #endif QwtMetricsMap::QwtMetricsMap() { d_screenToLayoutX = d_screenToLayoutY = d_deviceToLayoutX = d_deviceToLayoutY = 1.0; } void QwtMetricsMap::setMetrics(const QPaintDevice *layoutDevice, const QPaintDevice *paintDevice) { const QSize screenDpi = deviceDpi(QApplication::desktop()); const QSize layoutDpi = deviceDpi(layoutDevice); const QSize paintDpi = deviceDpi(paintDevice); d_screenToLayoutX = double(layoutDpi.width()) / double(screenDpi.width()); d_screenToLayoutY = double(layoutDpi.height()) / double(screenDpi.height()); d_deviceToLayoutX = double(layoutDpi.width()) / double(paintDpi.width()); d_deviceToLayoutY = double(layoutDpi.height()) / double(paintDpi.height()); } #ifndef QT_NO_TRANSFORMATIONS QPoint QwtMetricsMap::layoutToDevice(const QPoint &point, const QPainter *painter) const #else QPoint QwtMetricsMap::layoutToDevice(const QPoint &point, const QPainter *) const #endif { if ( isIdentity() ) return point; QPoint mappedPoint(point); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPoint = matrix(painter).map(mappedPoint); #endif mappedPoint.setX(layoutToDeviceX(mappedPoint.x())); mappedPoint.setY(layoutToDeviceY(mappedPoint.y())); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPoint = invMatrix(painter).map(mappedPoint); #endif return mappedPoint; } #ifndef QT_NO_TRANSFORMATIONS QPoint QwtMetricsMap::deviceToLayout(const QPoint &point, const QPainter *painter) const #else QPoint QwtMetricsMap::deviceToLayout(const QPoint &point, const QPainter *) const #endif { if ( isIdentity() ) return point; QPoint mappedPoint(point); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPoint = matrix(painter).map(mappedPoint); #endif mappedPoint.setX(deviceToLayoutX(mappedPoint.x())); mappedPoint.setY(deviceToLayoutY(mappedPoint.y())); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPoint = invMatrix(painter).map(mappedPoint); #endif return mappedPoint; } QPoint QwtMetricsMap::screenToLayout(const QPoint &point) const { if ( d_screenToLayoutX == 1.0 && d_screenToLayoutY == 1.0 ) return point; return QPoint(screenToLayoutX(point.x()), screenToLayoutY(point.y())); } QPoint QwtMetricsMap::layoutToScreen(const QPoint &point) const { if ( d_screenToLayoutX == 1.0 && d_screenToLayoutY == 1.0 ) return point; return QPoint(layoutToScreenX(point.x()), layoutToScreenY(point.y())); } #ifndef QT_NO_TRANSFORMATIONS QRect QwtMetricsMap::layoutToDevice(const QRect &rect, const QPainter *painter) const #else QRect QwtMetricsMap::layoutToDevice(const QRect &rect, const QPainter *) const #endif { if ( isIdentity() ) return rect; int dx = 0; int dy = 0; QRect mappedRect(rect); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) { // only translations, but this code doesn't need to be perfect // as it used for printing of stuff only, that is not on the canvas. // Here we know we have translations only. // As soon as Qt3 support is dropped, Qwt will use a floating point // based layout and this class can die completely. dx = qRound(matrix(painter).dx()); dy = qRound(matrix(painter).dy()); mappedRect = QRect(mappedRect.x() + dx, mappedRect.y() + dy, mappedRect.width(), mappedRect.height() ); } #endif mappedRect = QRect( layoutToDevice(mappedRect.topLeft()), layoutToDevice(mappedRect.bottomRight()) ); mappedRect = QRect(mappedRect.x() - dx, mappedRect.y() - dy, mappedRect.width(), mappedRect.height() ); return mappedRect; } #ifndef QT_NO_TRANSFORMATIONS QRect QwtMetricsMap::deviceToLayout(const QRect &rect, const QPainter *painter) const #else QRect QwtMetricsMap::deviceToLayout(const QRect &rect, const QPainter *) const #endif { if ( isIdentity() ) return rect; QRect mappedRect(rect); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedRect = translate(matrix(painter), mappedRect); #endif mappedRect = QRect( deviceToLayout(mappedRect.topLeft()), deviceToLayout(mappedRect.bottomRight()) ); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedRect = translate(invMatrix(painter), mappedRect); #endif return mappedRect; } QRect QwtMetricsMap::screenToLayout(const QRect &rect) const { if ( d_screenToLayoutX == 1.0 && d_screenToLayoutY == 1.0 ) return rect; return QRect(screenToLayoutX(rect.x()), screenToLayoutY(rect.y()), screenToLayoutX(rect.width()), screenToLayoutY(rect.height())); } QRect QwtMetricsMap::layoutToScreen(const QRect &rect) const { if ( d_screenToLayoutX == 1.0 && d_screenToLayoutY == 1.0 ) return rect; return QRect(layoutToScreenX(rect.x()), layoutToScreenY(rect.y()), layoutToScreenX(rect.width()), layoutToScreenY(rect.height())); } #ifndef QT_NO_TRANSFORMATIONS QwtPolygon QwtMetricsMap::layoutToDevice(const QwtPolygon &pa, const QPainter *painter) const #else QwtPolygon QwtMetricsMap::layoutToDevice(const QwtPolygon &pa, const QPainter *) const #endif { if ( isIdentity() ) return pa; QwtPolygon mappedPa(pa); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPa = translate(matrix(painter), mappedPa); #endif QwtMatrix m; m.scale(1.0 / d_deviceToLayoutX, 1.0 / d_deviceToLayoutY); mappedPa = translate(m, mappedPa); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPa = translate(invMatrix(painter), mappedPa); #endif return mappedPa; } #ifndef QT_NO_TRANSFORMATIONS QwtPolygon QwtMetricsMap::deviceToLayout(const QwtPolygon &pa, const QPainter *painter) const #else QwtPolygon QwtMetricsMap::deviceToLayout(const QwtPolygon &pa, const QPainter *) const #endif { if ( isIdentity() ) return pa; QwtPolygon mappedPa(pa); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPa = translate(matrix(painter), mappedPa); #endif QwtMatrix m; m.scale(d_deviceToLayoutX, d_deviceToLayoutY); mappedPa = translate(m, mappedPa); #ifndef QT_NO_TRANSFORMATIONS if ( painter ) mappedPa = translate(invMatrix(painter), mappedPa); #endif return mappedPa; } /*! Wrapper for QMatrix::mapRect. \param m Matrix \param rect Rectangle to translate \return Translated rectangle */ QRect QwtMetricsMap::translate( const QwtMatrix &m, const QRect &rect) { return m.mapRect(rect); } /*! Wrapper for QMatrix::map. \param m Matrix \param pa Polygon to translate \return Translated polygon */ QwtPolygon QwtMetricsMap::translate( const QwtMatrix &m, const QwtPolygon &pa) { return m.map(pa); } qwt5-5.2.3/src/qwt_legend.cpp0000644000175000017500000003754212052741126015416 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #if QT_VERSION >= 0x040000 #include #endif #include "qwt_math.h" #include "qwt_dyngrid_layout.h" #include "qwt_legend_itemmanager.h" #include "qwt_legend_item.h" #include "qwt_legend.h" class QwtLegend::PrivateData { public: class LegendMap { public: void insert(const QwtLegendItemManager *, QWidget *); void remove(const QwtLegendItemManager *); void remove(QWidget *); void clear(); uint count() const; inline const QWidget *find(const QwtLegendItemManager *) const; inline QWidget *find(const QwtLegendItemManager *); inline const QwtLegendItemManager *find(const QWidget *) const; inline QwtLegendItemManager *find(const QWidget *); const QMap &widgetMap() const; QMap &widgetMap(); private: QMap d_widgetMap; QMap d_itemMap; }; QwtLegend::LegendItemMode itemMode; QwtLegend::LegendDisplayPolicy displayPolicy; int identifierMode; LegendMap map; class LegendView; LegendView *view; }; #if QT_VERSION < 0x040000 #include class QwtLegend::PrivateData::LegendView: public QScrollView { public: LegendView(QWidget *parent): QScrollView(parent) { setResizePolicy(Manual); viewport()->setBackgroundMode(Qt::NoBackground); // Avoid flicker contentsWidget = new QWidget(viewport()); addChild(contentsWidget); } void viewportResizeEvent(QResizeEvent *e) { QScrollView::viewportResizeEvent(e); // It's not safe to update the layout now, because // we are in an internal update of the scrollview framework. // So we delay the update by posting a LayoutHint. QApplication::postEvent(contentsWidget, new QEvent(QEvent::LayoutHint)); } QWidget *contentsWidget; }; #else // QT_VERSION >= 0x040000 #include class QwtLegend::PrivateData::LegendView: public QScrollArea { public: LegendView(QWidget *parent): QScrollArea(parent) { contentsWidget = new QWidget(this); setWidget(contentsWidget); setWidgetResizable(false); setFocusPolicy(Qt::NoFocus); } virtual bool viewportEvent(QEvent *e) { bool ok = QScrollArea::viewportEvent(e); if ( e->type() == QEvent::Resize ) { QEvent event(QEvent::LayoutRequest); QApplication::sendEvent(contentsWidget, &event); } return ok; } QSize viewportSize(int w, int h) const { const int sbHeight = horizontalScrollBar()->sizeHint().height(); const int sbWidth = verticalScrollBar()->sizeHint().width(); const int cw = contentsRect().width(); const int ch = contentsRect().height(); int vw = cw; int vh = ch; if ( w > vw ) vh -= sbHeight; if ( h > vh ) { vw -= sbWidth; if ( w > vw && vh == ch ) vh -= sbHeight; } return QSize(vw, vh); } QWidget *contentsWidget; }; #endif void QwtLegend::PrivateData::LegendMap::insert( const QwtLegendItemManager *item, QWidget *widget) { d_itemMap.insert(item, widget); d_widgetMap.insert(widget, item); } void QwtLegend::PrivateData::LegendMap::remove(const QwtLegendItemManager *item) { QWidget *widget = d_itemMap[item]; d_itemMap.remove(item); d_widgetMap.remove(widget); } void QwtLegend::PrivateData::LegendMap::remove(QWidget *widget) { const QwtLegendItemManager *item = d_widgetMap[widget]; d_itemMap.remove(item); d_widgetMap.remove(widget); } void QwtLegend::PrivateData::LegendMap::clear() { /* We can't delete the widgets in the following loop, because we would get ChildRemoved events, changing d_itemMap, while we are iterating. */ #if QT_VERSION < 0x040000 QValueList widgets; QMap::const_iterator it; for ( it = d_itemMap.begin(); it != d_itemMap.end(); ++it ) widgets.append(it.data()); #else QList widgets; QMap::const_iterator it; for ( it = d_itemMap.begin(); it != d_itemMap.end(); ++it ) widgets.append(it.value()); #endif d_itemMap.clear(); d_widgetMap.clear(); for ( int i = 0; i < (int)widgets.size(); i++ ) delete widgets[i]; } uint QwtLegend::PrivateData::LegendMap::count() const { return d_itemMap.count(); } inline const QWidget *QwtLegend::PrivateData::LegendMap::find(const QwtLegendItemManager *item) const { if ( !d_itemMap.contains((QwtLegendItemManager *)item) ) return NULL; return d_itemMap[(QwtLegendItemManager *)item]; } inline QWidget *QwtLegend::PrivateData::LegendMap::find(const QwtLegendItemManager *item) { if ( !d_itemMap.contains((QwtLegendItemManager *)item) ) return NULL; return d_itemMap[(QwtLegendItemManager *)item]; } inline const QwtLegendItemManager *QwtLegend::PrivateData::LegendMap::find( const QWidget *widget) const { if ( !d_widgetMap.contains((QWidget *)widget) ) return NULL; return d_widgetMap[(QWidget *)widget]; } inline QwtLegendItemManager *QwtLegend::PrivateData::LegendMap::find( const QWidget *widget) { if ( !d_widgetMap.contains((QWidget *)widget) ) return NULL; return (QwtLegendItemManager *)d_widgetMap[(QWidget *)widget]; } inline const QMap & QwtLegend::PrivateData::LegendMap::widgetMap() const { return d_widgetMap; } inline QMap & QwtLegend::PrivateData::LegendMap::widgetMap() { return d_widgetMap; } /*! Constructor \param parent Parent widget */ QwtLegend::QwtLegend(QWidget *parent): QFrame(parent) { setFrameStyle(NoFrame); d_data = new QwtLegend::PrivateData; d_data->itemMode = QwtLegend::ReadOnlyItem; d_data->displayPolicy = QwtLegend::AutoIdentifier; d_data->identifierMode = QwtLegendItem::ShowLine | QwtLegendItem::ShowSymbol | QwtLegendItem::ShowText; d_data->view = new QwtLegend::PrivateData::LegendView(this); d_data->view->setFrameStyle(NoFrame); QwtDynGridLayout *layout = new QwtDynGridLayout( d_data->view->contentsWidget); #if QT_VERSION < 0x040000 layout->setAutoAdd(true); #endif layout->setAlignment(Qt::AlignHCenter | Qt::AlignTop); d_data->view->contentsWidget->installEventFilter(this); } //! Destructor QwtLegend::~QwtLegend() { delete d_data; } /*! Set the legend display policy to: \param policy Legend display policy \param mode Identifier mode (or'd ShowLine, ShowSymbol, ShowText) \sa displayPolicy(), LegendDisplayPolicy */ void QwtLegend::setDisplayPolicy(LegendDisplayPolicy policy, int mode) { d_data->displayPolicy = policy; if (-1 != mode) d_data->identifierMode = mode; QMap &map = d_data->map.widgetMap(); QMap::iterator it; for ( it = map.begin(); it != map.end(); ++it ) { #if QT_VERSION < 0x040000 QwtLegendItemManager *item = (QwtLegendItemManager *)it.data(); #else QwtLegendItemManager *item = (QwtLegendItemManager *)it.value(); #endif if ( item ) item->updateLegend(this); } } /*! \return the legend display policy. Default is LegendDisplayPolicy::Auto. \sa setDisplayPolicy(), LegendDisplayPolicy */ QwtLegend::LegendDisplayPolicy QwtLegend::displayPolicy() const { return d_data->displayPolicy; } //! \sa LegendItemMode void QwtLegend::setItemMode(LegendItemMode mode) { d_data->itemMode = mode; } //! \sa LegendItemMode QwtLegend::LegendItemMode QwtLegend::itemMode() const { return d_data->itemMode; } /*! \return the IdentifierMode to be used in combination with LegendDisplayPolicy::Fixed. Default is ShowLine | ShowSymbol | ShowText. */ int QwtLegend::identifierMode() const { return d_data->identifierMode; } /*! The contents widget is the only child of the viewport() and the parent widget of all legend items. */ QWidget *QwtLegend::contentsWidget() { return d_data->view->contentsWidget; } /*! \return Horizontal scrollbar \sa verticalScrollBar() */ QScrollBar *QwtLegend::horizontalScrollBar() const { return d_data->view->horizontalScrollBar(); } /*! \return Vertical scrollbar \sa horizontalScrollBar() */ QScrollBar *QwtLegend::verticalScrollBar() const { return d_data->view->verticalScrollBar(); } /*! The contents widget is the only child of the viewport() and the parent widget of all legend items. */ const QWidget *QwtLegend::contentsWidget() const { return d_data->view->contentsWidget; } /*! Insert a new item for a plot item \param plotItem Plot item \param legendItem New legend item \note The parent of item will be changed to QwtLegend::contentsWidget() */ void QwtLegend::insert(const QwtLegendItemManager *plotItem, QWidget *legendItem) { if ( legendItem == NULL || plotItem == NULL ) return; QWidget *contentsWidget = d_data->view->contentsWidget; if ( legendItem->parent() != contentsWidget ) { #if QT_VERSION >= 0x040000 legendItem->setParent(contentsWidget); #else legendItem->reparent(contentsWidget, QPoint(0, 0)); #endif } legendItem->show(); d_data->map.insert(plotItem, legendItem); layoutContents(); if ( contentsWidget->layout() ) { #if QT_VERSION >= 0x040000 contentsWidget->layout()->addWidget(legendItem); #endif // set tab focus chain QWidget *w = NULL; #if QT_VERSION < 0x040000 QLayoutIterator layoutIterator = contentsWidget->layout()->iterator(); for ( QLayoutItem *item = layoutIterator.current(); item != 0; item = ++layoutIterator) { #else for (int i = 0; i < contentsWidget->layout()->count(); i++) { QLayoutItem *item = contentsWidget->layout()->itemAt(i); #endif if ( w && item->widget() ) { QWidget::setTabOrder(w, item->widget()); w = item->widget(); } } } if ( parentWidget() && parentWidget()->layout() == NULL ) { /* updateGeometry() doesn't post LayoutRequest in certain situations, like when we are hidden. But we want the parent widget notified, so it can show/hide the legend depending on its items. */ #if QT_VERSION < 0x040000 QApplication::postEvent(parentWidget(), new QEvent(QEvent::LayoutHint)); #else QApplication::postEvent(parentWidget(), new QEvent(QEvent::LayoutRequest)); #endif } } /*! Find the widget that represents a plot item \param plotItem Plot item \return Widget on the legend, or NULL */ QWidget *QwtLegend::find(const QwtLegendItemManager *plotItem) const { return d_data->map.find(plotItem); } /*! Find the widget that represents a plot item \param legendItem Legend item \return Widget on the legend, or NULL */ QwtLegendItemManager *QwtLegend::find(const QWidget *legendItem) const { return d_data->map.find(legendItem); } /*! Find the corresponding item for a plotItem and remove it from the item list. \param plotItem Plot item */ void QwtLegend::remove(const QwtLegendItemManager *plotItem) { QWidget *legendItem = d_data->map.find(plotItem); d_data->map.remove(legendItem); delete legendItem; } //! Remove all items. void QwtLegend::clear() { #if QT_VERSION < 0x040000 bool doUpdate = isUpdatesEnabled(); #else bool doUpdate = updatesEnabled(); #endif setUpdatesEnabled(false); d_data->map.clear(); setUpdatesEnabled(doUpdate); update(); } //! Return a size hint. QSize QwtLegend::sizeHint() const { QSize hint = d_data->view->contentsWidget->sizeHint(); hint += QSize(2 * frameWidth(), 2 * frameWidth()); return hint; } /*! \return The preferred height, for the width w. \param width Width */ int QwtLegend::heightForWidth(int width) const { width -= 2 * frameWidth(); int h = d_data->view->contentsWidget->heightForWidth(width); #if QT_VERSION < 0x040000 // Asking the layout is the default implementation in Qt4 if ( h <= 0 ) { QLayout *l = d_data->view->contentsWidget->layout(); if ( l && l->hasHeightForWidth() ) h = l->heightForWidth(width); } #endif if ( h >= 0 ) h += 2 * frameWidth(); return h; } /*! Adjust contents widget and item layout to the size of the viewport(). */ void QwtLegend::layoutContents() { const QSize visibleSize = d_data->view->viewport()->size(); const QLayout *l = d_data->view->contentsWidget->layout(); if ( l && l->inherits("QwtDynGridLayout") ) { const QwtDynGridLayout *tl = (const QwtDynGridLayout *)l; const int minW = int(tl->maxItemWidth()) + 2 * tl->margin(); int w = qwtMax(visibleSize.width(), minW); int h = qwtMax(tl->heightForWidth(w), visibleSize.height()); const int vpWidth = d_data->view->viewportSize(w, h).width(); if ( w > vpWidth ) { w = qwtMax(vpWidth, minW); h = qwtMax(tl->heightForWidth(w), visibleSize.height()); } d_data->view->contentsWidget->resize(w, h); #if QT_VERSION < 0x040000 d_data->view->resizeContents(w, h); #endif } } /*! Filter layout related events of QwtLegend::contentsWidget(). \param o Object to be filtered \param e Event */ bool QwtLegend::eventFilter(QObject *o, QEvent *e) { if ( o == d_data->view->contentsWidget ) { switch(e->type()) { case QEvent::ChildRemoved: { const QChildEvent *ce = (const QChildEvent *)e; if ( ce->child()->isWidgetType() ) d_data->map.remove((QWidget *)ce->child()); break; } #if QT_VERSION < 0x040000 case QEvent::LayoutHint: #else case QEvent::LayoutRequest: #endif { layoutContents(); break; } #if QT_VERSION < 0x040000 case QEvent::Resize: { updateGeometry(); break; } #endif default: break; } } return QFrame::eventFilter(o, e); } //! Return true, if there are no legend items. bool QwtLegend::isEmpty() const { return d_data->map.count() == 0; } //! Return the number of legend items. uint QwtLegend::itemCount() const { return d_data->map.count(); } //! Return a list of all legend items #if QT_VERSION < 0x040000 QValueList QwtLegend::legendItems() const #else QList QwtLegend::legendItems() const #endif { const QMap &map = d_data->map.widgetMap(); #if QT_VERSION < 0x040000 QValueList list; #else QList list; #endif QMap::const_iterator it; for ( it = map.begin(); it != map.end(); ++it ) list += it.key(); return list; } /*! Resize event \param e Resize event */ void QwtLegend::resizeEvent(QResizeEvent *e) { QFrame::resizeEvent(e); d_data->view->setGeometry(contentsRect()); } qwt5-5.2.3/src/qwt_double_rect.cpp0000644000175000017500000003621112052741126016437 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #if QT_VERSION < 0x040000 #include "qwt_math.h" #include "qwt_double_rect.h" /*! Constructs a null point. \sa QwtDoublePoint::isNull() */ QwtDoublePoint::QwtDoublePoint(): d_x(0.0), d_y(0.0) { } //! Constructs a point with coordinates specified by x and y. QwtDoublePoint::QwtDoublePoint(double x, double y ): d_x(x), d_y(y) { } /*! Copy constructor. Constructs a point using the values of the point specified. */ QwtDoublePoint::QwtDoublePoint(const QPoint &p): d_x(double(p.x())), d_y(double(p.y())) { } /*! Returns true if point1 is equal to point2; otherwise returns false. Two points are equal to each other if both x-coordinates and both y-coordinates are the same. */ bool QwtDoublePoint::operator==(const QwtDoublePoint &other) const { return (d_x == other.d_x) && (d_y == other.d_y); } //! Returns true if point1 is not equal to point2; otherwise returns false. bool QwtDoublePoint::operator!=(const QwtDoublePoint &other) const { return !operator==(other); } /*! Negates the coordinates of the point, and returns a point with the new coordinates. (Inversion). */ const QwtDoublePoint QwtDoublePoint::operator-() const { return QwtDoublePoint(-d_x, -d_y); } /*! Adds the coordinates of the point to the corresponding coordinates of the other point, and returns a point with the new coordinates. (Vector addition.) */ const QwtDoublePoint QwtDoublePoint::operator+( const QwtDoublePoint &other) const { return QwtDoublePoint(d_x + other.d_x, d_y + other.d_y); } /*! Subtracts the coordinates of the other point from the corresponding coordinates of the given point, and returns a point with the new coordinates. (Vector subtraction.) */ const QwtDoublePoint QwtDoublePoint::operator-( const QwtDoublePoint &other) const { return QwtDoublePoint(d_x - other.d_x, d_y - other.d_y); } /*! Multiplies the coordinates of the point by the given scale factor, and returns a point with the new coordinates. (Scalar multiplication of a vector.) */ const QwtDoublePoint QwtDoublePoint::operator*(double factor) const { return QwtDoublePoint(d_x * factor, d_y * factor); } /*! Divides the coordinates of the point by the given scale factor, and returns a point with the new coordinates. (Scalar division of a vector.) */ const QwtDoublePoint QwtDoublePoint::operator/(double factor) const { return QwtDoublePoint(d_x / factor, d_y / factor); } /*! Adds the coordinates of this point to the corresponding coordinates of the other point, and returns a reference to this point with the new coordinates. This is equivalent to vector addition. */ QwtDoublePoint &QwtDoublePoint::operator+=(const QwtDoublePoint &other) { d_x += other.d_x; d_y += other.d_y; return *this; } /*! Subtracts the coordinates of the other point from the corresponding coordinates of this point, and returns a reference to this point with the new coordinates. This is equivalent to vector subtraction. */ QwtDoublePoint &QwtDoublePoint::operator-=(const QwtDoublePoint &other) { d_x -= other.d_x; d_y -= other.d_y; return *this; } /*! Multiplies the coordinates of this point by the given scale factor, and returns a reference to this point with the new coordinates. This is equivalent to scalar multiplication of a vector. */ QwtDoublePoint &QwtDoublePoint::operator*=(double factor) { d_x *= factor; d_y *= factor; return *this; } /*! Divides the coordinates of this point by the given scale factor, and returns a references to this point with the new coordinates. This is equivalent to scalar division of a vector. */ QwtDoublePoint &QwtDoublePoint::operator/=(double factor) { d_x /= factor; d_y /= factor; return *this; } //! Constructs an invalid size. QwtDoubleSize::QwtDoubleSize(): d_width(-1.0), d_height(-1.0) { } //! Constructs a size with width width and height height. QwtDoubleSize::QwtDoubleSize( double width, double height ): d_width(width), d_height(height) { } //! Constructs a size with floating point accuracy from the given size. QwtDoubleSize::QwtDoubleSize(const QSize &sz): d_width(double(sz.width())), d_height(double(sz.height())) { } //! Swaps the width and height values. void QwtDoubleSize::transpose() { double tmp = d_width; d_width = d_height; d_height = tmp; } /*! Returns a size with the maximum width and height of this size and other. */ QwtDoubleSize QwtDoubleSize::expandedTo( const QwtDoubleSize &other) const { return QwtDoubleSize( qwtMax(d_width, other.d_width), qwtMax(d_height, other.d_height) ); } /*! Returns a size with the minimum width and height of this size and other. */ QwtDoubleSize QwtDoubleSize::boundedTo( const QwtDoubleSize &other) const { return QwtDoubleSize( qwtMin(d_width, other.d_width), qwtMin(d_height, other.d_height) ); } //! Returns true if s1 and s2 are equal; otherwise returns false. bool QwtDoubleSize::operator==(const QwtDoubleSize &other) const { return d_width == other.d_width && d_height == other.d_height; } //! Returns true if s1 and s2 are different; otherwise returns false. bool QwtDoubleSize::operator!=(const QwtDoubleSize &other) const { return !operator==(other); } /*! Returns the size formed by adding both components by the components of other. Each component is added separately. */ const QwtDoubleSize QwtDoubleSize::operator+( const QwtDoubleSize &other) const { return QwtDoubleSize(d_width + other.d_width, d_height + other.d_height); } /*! Returns the size formed by subtracting both components by the components of other. Each component is subtracted separately. */ const QwtDoubleSize QwtDoubleSize::operator-( const QwtDoubleSize &other) const { return QwtDoubleSize(d_width - other.d_width, d_height - other.d_height); } //! Returns the size formed by multiplying both components by c. const QwtDoubleSize QwtDoubleSize::operator*(double c) const { return QwtDoubleSize(d_width * c, d_height * c); } //! Returns the size formed by dividing both components by c. const QwtDoubleSize QwtDoubleSize::operator/(double c) const { return QwtDoubleSize(d_width / c, d_height / c); } //! Adds size other to this size and returns a reference to this size. QwtDoubleSize &QwtDoubleSize::operator+=(const QwtDoubleSize &other) { d_width += other.d_width; d_height += other.d_height; return *this; } //! Subtracts size other from this size and returns a reference to this size. QwtDoubleSize &QwtDoubleSize::operator-=(const QwtDoubleSize &other) { d_width -= other.d_width; d_height -= other.d_height; return *this; } /* Multiplies this size's width and height by c, and returns a reference to this size. */ QwtDoubleSize &QwtDoubleSize::operator*=(double c) { d_width *= c; d_height *= c; return *this; } /* Devides this size's width and height by c, and returns a reference to this size. */ QwtDoubleSize &QwtDoubleSize::operator/=(double c) { d_width /= c; d_height /= c; return *this; } //! Constructs an rectangle with all components set to 0.0 QwtDoubleRect::QwtDoubleRect(): d_left(0.0), d_right(0.0), d_top(0.0), d_bottom(0.0) { } /*! Constructs an rectangle with x1 to x2 as x-range and, y1 to y2 as y-range. */ QwtDoubleRect::QwtDoubleRect(double left, double top, double width, double height): d_left(left), d_right(left + width), d_top(top), d_bottom(top + height) { } /*! Constructs a rectangle with topLeft as the top-left corner and size as the rectangle size. */ QwtDoubleRect::QwtDoubleRect( const QwtDoublePoint &p, const QwtDoubleSize &size): d_left(p.x()), d_right(p.x() + size.width()), d_top(p.y()), d_bottom(p.y() + size.height()) { } QwtDoubleRect::QwtDoubleRect(const QRect &rect): d_left(rect.left()), d_right(rect.right()), d_top(rect.top()), d_bottom(rect.bottom()) { } QRect QwtDoubleRect::toRect() const { return QRect(qRound(x()), qRound(y()), qRound(width()), qRound(height())); } /*! Set the x-range from x1 to x2 and the y-range from y1 to y2. */ void QwtDoubleRect::setRect(double left, double top, double width, double height) { d_left = left; d_right = left + width; d_top = top; d_bottom = top + height; } /*! Sets the size of the rectangle to size. Changes x2 and y2 only. */ void QwtDoubleRect::setSize(const QwtDoubleSize &size) { setWidth(size.width()); setHeight(size.height()); } /*! Returns a normalized rectangle, i.e. a rectangle that has a non-negative width and height. It swaps x1 and x2 if x1() > x2(), and swaps y1 and y2 if y1() > y2(). */ QwtDoubleRect QwtDoubleRect::normalized() const { QwtDoubleRect r; if ( d_right < d_left ) { r.d_left = d_right; r.d_right = d_left; } else { r.d_left = d_left; r.d_right = d_right; } if ( d_bottom < d_top ) { r.d_top = d_bottom; r.d_bottom = d_top; } else { r.d_top = d_top; r.d_bottom = d_bottom; } return r; } /*! Returns the bounding rectangle of this rectangle and rectangle other. r.unite(s) is equivalent to r|s. */ QwtDoubleRect QwtDoubleRect::unite(const QwtDoubleRect &other) const { return *this | other; } /*! Returns the intersection of this rectangle and rectangle other. r.intersect(s) is equivalent to r&s. */ QwtDoubleRect QwtDoubleRect::intersect(const QwtDoubleRect &other) const { return *this & other; } /*! Returns true if this rectangle intersects with rectangle other; otherwise returns false. */ bool QwtDoubleRect::intersects(const QwtDoubleRect &other) const { return ( qwtMax(d_left, other.d_left) <= qwtMin(d_right, other.d_right) ) && ( qwtMax(d_top, other.d_top ) <= qwtMin(d_bottom, other.d_bottom) ); } //! Returns true if this rect and other are equal; otherwise returns false. bool QwtDoubleRect::operator==(const QwtDoubleRect &other) const { return d_left == other.d_left && d_right == other.d_right && d_top == other.d_top && d_bottom == other.d_bottom; } //! Returns true if this rect and other are different; otherwise returns false. bool QwtDoubleRect::operator!=(const QwtDoubleRect &other) const { return !operator==(other); } /*! Returns the bounding rectangle of this rectangle and rectangle other. The bounding rectangle of a nonempty rectangle and an empty or invalid rectangle is defined to be the nonempty rectangle. */ QwtDoubleRect QwtDoubleRect::operator|(const QwtDoubleRect &other) const { if ( isEmpty() ) return other; if ( other.isEmpty() ) return *this; const double minX = qwtMin(d_left, other.d_left); const double maxX = qwtMax(d_right, other.d_right); const double minY = qwtMin(d_top, other.d_top); const double maxY = qwtMax(d_bottom, other.d_bottom); return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } /*! Returns the intersection of this rectangle and rectangle other. Returns an empty rectangle if there is no intersection. */ QwtDoubleRect QwtDoubleRect::operator&(const QwtDoubleRect &other) const { if (isNull() || other.isNull()) return QwtDoubleRect(); const QwtDoubleRect r1 = normalized(); const QwtDoubleRect r2 = other.normalized(); const double minX = qwtMax(r1.left(), r2.left()); const double maxX = qwtMin(r1.right(), r2.right()); const double minY = qwtMax(r1.top(), r2.top()); const double maxY = qwtMin(r1.bottom(), r2.bottom()); return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } //! Unites this rectangle with rectangle other. QwtDoubleRect &QwtDoubleRect::operator|=(const QwtDoubleRect &other) { *this = *this | other; return *this; } //! Intersects this rectangle with rectangle other. QwtDoubleRect &QwtDoubleRect::operator&=(const QwtDoubleRect &other) { *this = *this & other; return *this; } //! Returns the center point of the rectangle. QwtDoublePoint QwtDoubleRect::center() const { return QwtDoublePoint(d_left + (d_right - d_left) / 2.0, d_top + (d_bottom - d_top) / 2.0); } /*! Returns true if the point (x, y) is inside or on the edge of the rectangle; otherwise returns false. If proper is true, this function returns true only if p is inside (not on the edge). */ bool QwtDoubleRect::contains(double x, double y, bool proper) const { if ( proper ) return x > d_left && x < d_right && y > d_top && y < d_bottom; else return x >= d_left && x <= d_right && y >= d_top && y <= d_bottom; } /*! Returns true if the point p is inside or on the edge of the rectangle; otherwise returns false. If proper is true, this function returns true only if p is inside (not on the edge). */ bool QwtDoubleRect::contains(const QwtDoublePoint &p, bool proper) const { return contains(p.x(), p.y(), proper); } /*! Returns true if the rectangle other is inside this rectangle; otherwise returns false. If proper is true, this function returns true only if other is entirely inside (not on the edge). */ bool QwtDoubleRect::contains(const QwtDoubleRect &other, bool proper) const { return contains(other.d_left, other.d_top, proper) && contains(other.d_right, other.d_bottom, proper); } //! moves x1() to x, leaving the size unchanged void QwtDoubleRect::moveLeft(double x) { const double w = width(); d_left = x; d_right = d_left + w; } //! moves x1() to x, leaving the size unchanged void QwtDoubleRect::moveRight(double x) { const double w = width(); d_right = x; d_left = d_right - w; } //! moves y1() to y, leaving the size unchanged void QwtDoubleRect::moveTop(double y) { const double h = height(); d_top = y; d_bottom = d_top + h; } //! moves y1() to y, leaving the size unchanged void QwtDoubleRect::moveBottom(double y) { const double h = height(); d_bottom = y; d_top = d_bottom - h; } //! moves left() to x and top() to y, leaving the size unchanged void QwtDoubleRect::moveTo(double x, double y) { moveLeft(x); moveTop(y); } //! moves x1() by dx and y1() by dy. leaving the size unchanged void QwtDoubleRect::moveBy(double dx, double dy) { d_left += dx; d_right += dx; d_top += dy; d_bottom += dy; } //! moves the center to pos, leaving the size unchanged void QwtDoubleRect::moveCenter(const QwtDoublePoint &pos) { moveCenter(pos.x(), pos.y()); } //! moves the center to (x, y), leaving the size unchanged void QwtDoubleRect::moveCenter(double x, double y) { moveTo(x - width() / 2.0, y - height() / 2.0); } #endif // QT_VERSION < 0x040000 qwt5-5.2.3/src/qwt_picker.h0000644000175000017500000002545612052741123015100 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PICKER #define QWT_PICKER 1 #include #include #include #include #include "qwt_global.h" #include "qwt_text.h" #include "qwt_polygon.h" #include "qwt_event_pattern.h" class QWidget; class QMouseEvent; class QWheelEvent; class QKeyEvent; class QwtPickerMachine; /*! \brief QwtPicker provides selections on a widget QwtPicker filters all mouse and keyboard events of a widget and translates them into an array of selected points. Depending on the QwtPicker::SelectionType the selection might be a single point, a rectangle or a polygon. The selection process is supported by optional rubberbands (rubberband selection) and position trackers. QwtPicker is useful for widgets where the event handlers can't be overloaded, like for components of composite widgets. It offers alternative handlers for mouse and key events. \par Example \verbatim #include QwtPicker *picker = new QwtPicker(widget); picker->setTrackerMode(QwtPicker::ActiveOnly); connect(picker, SIGNAL(selected(const QwtPolygon &)), ...); // emit the position of clicks on widget picker->setSelectionFlags(QwtPicker::PointSelection | QwtPicker::ClickSelection); ... // now select rectangles picker->setSelectionFlags(QwtPicker::RectSelection | QwtPicker::DragSelection); picker->setRubberBand(QwtPicker::RectRubberBand); \endverbatim\n The selection process uses the commands begin(), append(), move() and end(). append() adds a new point to the selection, move() changes the position of the latest point. The commands are initiated from a small state machine (QwtPickerMachine) that translates mouse and key events. There are a couple of predefined state machines for point, rect and polygon selections. The selectionFlags() control which one should be used. It is possible to use other machines by overloading stateMachine(). The picker is active (isActive()), between begin() and end(). In active state the rubberband is displayed, and the tracker is visible in case of trackerMode is ActiveOnly or AlwaysOn. The cursor can be moved using the arrow keys. All selections can be aborted using the abort key. (QwtEventPattern::KeyPatternCode) \warning In case of QWidget::NoFocus the focus policy of the observed widget is set to QWidget::WheelFocus and mouse tracking will be manipulated for ClickSelection while the picker is active, or if trackerMode() is AlwayOn. */ class QWT_EXPORT QwtPicker: public QObject, public QwtEventPattern { Q_OBJECT Q_ENUMS(RubberBand) Q_ENUMS(DisplayMode) Q_ENUMS(ResizeMode) Q_PROPERTY(int selectionFlags READ selectionFlags WRITE setSelectionFlags) Q_PROPERTY(DisplayMode trackerMode READ trackerMode WRITE setTrackerMode) Q_PROPERTY(QFont trackerFont READ trackerFont WRITE setTrackerFont) Q_PROPERTY(RubberBand rubberBand READ rubberBand WRITE setRubberBand) Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) Q_PROPERTY(bool isEnabled READ isEnabled WRITE setEnabled) Q_PROPERTY(QPen trackerPen READ trackerPen WRITE setTrackerPen) Q_PROPERTY(QPen rubberBandPen READ rubberBandPen WRITE setRubberBandPen) public: /*! This enum type describes the type of a selection. It can be or'd with QwtPicker::RectSelectionType and QwtPicker::SelectionMode and passed to QwtPicker::setSelectionFlags() - NoSelection\n Selection is disabled. Note this is different to the disabled state, as you might have a tracker. - PointSelection\n Select a single point. - RectSelection\n Select a rectangle. - PolygonSelection\n Select a polygon. The default value is NoSelection. \sa QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags() */ enum SelectionType { NoSelection = 0, PointSelection = 1, RectSelection = 2, PolygonSelection = 4 }; /*! \brief Selection subtype for RectSelection This enum type describes the type of rectangle selections. It can be or'd with QwtPicker::RectSelectionType and QwtPicker::SelectionMode and passed to QwtPicker::setSelectionFlags(). - CornerToCorner\n The first and the second selected point are the corners of the rectangle. - CenterToCorner\n The first point is the center, the second a corner of the rectangle. - CenterToRadius\n The first point is the center of a quadrat, calculated by the maximum of the x- and y-distance. The default value is CornerToCorner. \sa QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags() */ enum RectSelectionType { CornerToCorner = 64, CenterToCorner = 128, CenterToRadius = 256 }; /*! Values of this enum type or'd together with a SelectionType value identifies which state machine should be used for the selection. The default value is ClickSelection. \sa stateMachine() */ enum SelectionMode { ClickSelection = 1024, DragSelection = 2048 }; /*! Rubberband style - NoRubberBand\n No rubberband. - HLineRubberBand & PointSelection\n A horizontal line. - VLineRubberBand & PointSelection\n A vertical line. - CrossRubberBand & PointSelection\n A horizontal and a vertical line. - RectRubberBand & RectSelection\n A rectangle. - EllipseRubberBand & RectSelection\n An ellipse. - PolygonRubberBand &PolygonSelection\n A polygon. - UserRubberBand\n Values >= UserRubberBand can be used to define additional rubber bands. The default value is NoRubberBand. \sa QwtPicker::setRubberBand(), QwtPicker::rubberBand() */ enum RubberBand { NoRubberBand = 0, // Point HLineRubberBand, VLineRubberBand, CrossRubberBand, // Rect RectRubberBand, EllipseRubberBand, // Polygon PolygonRubberBand, UserRubberBand = 100 }; /*! - AlwaysOff\n Display never. - AlwaysOn\n Display always. - ActiveOnly\n Display only when the selection is active. \sa QwtPicker::setTrackerMode(), QwtPicker::trackerMode(), QwtPicker::isActive() */ enum DisplayMode { AlwaysOff, AlwaysOn, ActiveOnly }; /*! Controls what to do with the selected points of an active selection when the observed widget is resized. - Stretch\n All points are scaled according to the new size, - KeepSize\n All points remain unchanged. The default value is Stretch. \sa QwtPicker::setResizeMode(), QwtPicker::resize() */ enum ResizeMode { Stretch, KeepSize }; explicit QwtPicker(QWidget *parent); explicit QwtPicker(int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *); virtual ~QwtPicker(); virtual void setSelectionFlags(int); int selectionFlags() const; virtual void setRubberBand(RubberBand); RubberBand rubberBand() const; virtual void setTrackerMode(DisplayMode); DisplayMode trackerMode() const; virtual void setResizeMode(ResizeMode); ResizeMode resizeMode() const; virtual void setRubberBandPen(const QPen &); QPen rubberBandPen() const; virtual void setTrackerPen(const QPen &); QPen trackerPen() const; virtual void setTrackerFont(const QFont &); QFont trackerFont() const; bool isEnabled() const; virtual void setEnabled(bool); bool isActive() const; virtual bool eventFilter(QObject *, QEvent *); QWidget *parentWidget(); const QWidget *parentWidget() const; virtual QRect pickRect() const; const QwtPolygon &selection() const; virtual void drawRubberBand(QPainter *) const; virtual void drawTracker(QPainter *) const; virtual QwtText trackerText(const QPoint &pos) const; QPoint trackerPosition() const; QRect trackerRect(const QFont &) const; signals: /*! A signal emitting the selected points, at the end of a selection. \param pa Selected points */ void selected(const QwtPolygon &pa); /*! A signal emitted when a point has been appended to the selection \param pos Position of the appended point. \sa append(). moved() */ void appended(const QPoint &pos); /*! A signal emitted whenever the last appended point of the selection has been moved. \param pos Position of the moved last point of the selection. \sa move(), appended() */ void moved(const QPoint &pos); /*! A signal emitted when the active selection has been changed. This might happen when the observed widget is resized. \param pa Changed selection \sa stretchSelection() */ void changed(const QwtPolygon &pa); protected: /*! \brief Validate and fixup the selection Accepts all selections unmodified \param selection Selection to validate and fixup \return true, when accepted, false otherwise */ virtual bool accept(QwtPolygon &selection) const; virtual void transition(const QEvent *); virtual void begin(); virtual void append(const QPoint &); virtual void move(const QPoint &); virtual bool end(bool ok = true); virtual void reset(); virtual void widgetMousePressEvent(QMouseEvent *); virtual void widgetMouseReleaseEvent(QMouseEvent *); virtual void widgetMouseDoubleClickEvent(QMouseEvent *); virtual void widgetMouseMoveEvent(QMouseEvent *); virtual void widgetWheelEvent(QWheelEvent *); virtual void widgetKeyPressEvent(QKeyEvent *); virtual void widgetKeyReleaseEvent(QKeyEvent *); virtual void widgetLeaveEvent(QEvent *); virtual void stretchSelection(const QSize &oldSize, const QSize &newSize); virtual QwtPickerMachine *stateMachine(int) const; virtual void updateDisplay(); const QWidget *rubberBandWidget() const; const QWidget *trackerWidget() const; private: void init(QWidget *, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode); void setStateMachine(QwtPickerMachine *); void setMouseTracking(bool); class PickerWidget; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_dict.h0000644000175000017500000000335012052741123015571 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 /*! \file !*/ #ifndef QWT_PLOT_DICT #define QWT_PLOT_DICT #include "qwt_global.h" #include "qwt_plot_item.h" #if QT_VERSION < 0x040000 #include typedef QValueListConstIterator QwtPlotItemIterator; /// \var typedef QValueList< QwtPlotItem *> QwtPlotItemList /// \brief See QT 3.x assistant documentation for QValueList typedef QValueList QwtPlotItemList; #else #include typedef QList::ConstIterator QwtPlotItemIterator; /// \var typedef QList< QwtPlotItem *> QwtPlotItemList /// \brief See QT 4.x assistant documentation for QList typedef QList QwtPlotItemList; #endif /*! \brief A dictionary for plot items QwtPlotDict organizes plot items in increasing z-order. If autoDelete() is enabled, all attached items will be deleted in the destructor of the dictionary. \sa QwtPlotItem::attach(), QwtPlotItem::detach(), QwtPlotItem::z() */ class QWT_EXPORT QwtPlotDict { public: explicit QwtPlotDict(); ~QwtPlotDict(); void setAutoDelete(bool); bool autoDelete() const; const QwtPlotItemList& itemList() const; void detachItems(int rtti = QwtPlotItem::Rtti_PlotItem, bool autoDelete = true); private: friend class QwtPlotItem; void attachItem(QwtPlotItem *, bool); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_compass.cpp0000644000175000017500000001660012052741126015615 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include "qwt_math.h" #include "qwt_scale_draw.h" #include "qwt_paint_buffer.h" #include "qwt_painter.h" #include "qwt_dial_needle.h" #include "qwt_compass_rose.h" #include "qwt_compass.h" class QwtCompass::PrivateData { public: PrivateData(): rose(NULL) { } ~PrivateData() { delete rose; } QwtCompassRose *rose; QMap labelMap; }; /*! \brief Constructor \param parent Parent widget Create a compass widget with a scale, no needle and no rose. The default origin is 270.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle. */ QwtCompass::QwtCompass(QWidget* parent): QwtDial(parent) { initCompass(); } #if QT_VERSION < 0x040000 /*! \brief Constructor \param parent Parent widget \param name Object name Create a compass widget with a scale, no needle and no rose. The default origin is 270.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle. */ QwtCompass::QwtCompass(QWidget* parent, const char *name): QwtDial(parent, name) { initCompass(); } #endif //! Destructor QwtCompass::~QwtCompass() { delete d_data; } void QwtCompass::initCompass() { d_data = new PrivateData; setScaleOptions(ScaleLabel); // Only labels, no backbone, no ticks setOrigin(270.0); setWrapping(true); d_data->labelMap.insert(0.0, QString::fromLatin1("N")); d_data->labelMap.insert(45.0, QString::fromLatin1("NE")); d_data->labelMap.insert(90.0, QString::fromLatin1("E")); d_data->labelMap.insert(135.0, QString::fromLatin1("SE")); d_data->labelMap.insert(180.0, QString::fromLatin1("S")); d_data->labelMap.insert(225.0, QString::fromLatin1("SW")); d_data->labelMap.insert(270.0, QString::fromLatin1("W")); d_data->labelMap.insert(315.0, QString::fromLatin1("NW")); #if 0 d_data->labelMap.insert(22.5, QString::fromLatin1("NNE")); d_data->labelMap.insert(67.5, QString::fromLatin1("NEE")); d_data->labelMap.insert(112.5, QString::fromLatin1("SEE")); d_data->labelMap.insert(157.5, QString::fromLatin1("SSE")); d_data->labelMap.insert(202.5, QString::fromLatin1("SSW")); d_data->labelMap.insert(247.5, QString::fromLatin1("SWW")); d_data->labelMap.insert(292.5, QString::fromLatin1("NWW")); d_data->labelMap.insert(337.5, QString::fromLatin1("NNW")); #endif } /*! Draw the contents of the scale \param painter Painter \param center Center of the content circle \param radius Radius of the content circle */ void QwtCompass::drawScaleContents(QPainter *painter, const QPoint ¢er, int radius) const { QPalette::ColorGroup cg; if ( isEnabled() ) cg = hasFocus() ? QPalette::Active : QPalette::Inactive; else cg = QPalette::Disabled; double north = origin(); if ( isValid() ) { if ( mode() == RotateScale ) north -= value(); } const int margin = 4; drawRose(painter, center, radius - margin, 360.0 - north, cg); } /*! Draw the compass rose \param painter Painter \param center Center of the compass \param radius of the circle, where to paint the rose \param north Direction pointing north, in degrees counter clockwise \param cg Color group */ void QwtCompass::drawRose(QPainter *painter, const QPoint ¢er, int radius, double north, QPalette::ColorGroup cg) const { if ( d_data->rose ) d_data->rose->draw(painter, center, radius, north, cg); } /*! Set a rose for the compass \param rose Compass rose \warning The rose will be deleted, when a different rose is set or in ~QwtCompass \sa rose() */ void QwtCompass::setRose(QwtCompassRose *rose) { if ( rose != d_data->rose ) { if ( d_data->rose ) delete d_data->rose; d_data->rose = rose; update(); } } /*! \return rose \sa setRose() */ const QwtCompassRose *QwtCompass::rose() const { return d_data->rose; } /*! \return rose \sa setRose() */ QwtCompassRose *QwtCompass::rose() { return d_data->rose; } /*! Handles key events Beside the keys described in QwtDial::keyPressEvent numbers from 1-9 (without 5) set the direction according to their position on the num pad. \sa isReadOnly() */ void QwtCompass::keyPressEvent(QKeyEvent *kev) { if (isReadOnly()) return; #if 0 if ( kev->key() == Key_5 ) { invalidate(); // signal ??? return; } #endif double newValue = value(); if ( kev->key() >= Qt::Key_1 && kev->key() <= Qt::Key_9 ) { if ( mode() != RotateNeedle || kev->key() == Qt::Key_5 ) return; switch (kev->key()) { case Qt::Key_6: newValue = 180.0 * 0.0; break; case Qt::Key_3: newValue = 180.0 * 0.25; break; case Qt::Key_2: newValue = 180.0 * 0.5; break; case Qt::Key_1: newValue = 180.0 * 0.75; break; case Qt::Key_4: newValue = 180.0 * 1.0; break; case Qt::Key_7: newValue = 180.0 * 1.25; break; case Qt::Key_8: newValue = 180.0 * 1.5; break; case Qt::Key_9: newValue = 180.0 * 1.75; break; } newValue -= origin(); setValue(newValue); } else { QwtDial::keyPressEvent(kev); } } /*! \return map, mapping values to labels \sa setLabelMap() */ const QMap &QwtCompass::labelMap() const { return d_data->labelMap; } /*! \return map, mapping values to labels \sa setLabelMap() */ QMap &QwtCompass::labelMap() { return d_data->labelMap; } /*! \brief Set a map, mapping values to labels \param map value to label map The values of the major ticks are found by looking into this map. The default map consists of the labels N, NE, E, SE, S, SW, W, NW. \warning The map will have no effect for values that are no major tick values. Major ticks can be changed by QwtScaleDraw::setScale \sa labelMap(), scaleDraw(), setScale() */ void QwtCompass::setLabelMap(const QMap &map) { d_data->labelMap = map; } /*! Map a value to a corresponding label \param value Value that will be mapped \return Label, or QString::null label() looks in a map for a corresponding label for value or return an null text. \sa labelMap(), setLabelMap() */ QwtText QwtCompass::scaleLabel(double value) const { #if 0 // better solution ??? if ( value == -0 ) value = 0.0; #endif if ( value < 0.0 ) value += 360.0; if ( d_data->labelMap.contains(value) ) return d_data->labelMap[value]; return QwtText(); } qwt5-5.2.3/src/qwt_scale_engine.h0000644000175000017500000001416212052741123016227 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SCALE_ENGINE_H #define QWT_SCALE_ENGINE_H #include "qwt_global.h" #include "qwt_scale_div.h" #include "qwt_double_interval.h" class QwtScaleTransformation; /*! \brief Arithmetic including a tolerance */ class QWT_EXPORT QwtScaleArithmetic { public: static int compareEps( double value1, double value2, double intervalSize); static double ceilEps(double value, double intervalSize); static double floorEps(double value, double intervalSize); static double divideEps(double interval, double steps); static double ceil125(double x); static double floor125(double x); }; /*! \brief Base class for scale engines. A scale engine trys to find "reasonable" ranges and step sizes for scales. The layout of the scale can be varied with setAttribute(). Qwt offers implementations for logarithmic (log10) and linear scales. Contributions for other types of scale engines (date/time, log2 ... ) are welcome. */ class QWT_EXPORT QwtScaleEngine { public: /*! - IncludeReference\n Build a scale which includes the reference() value. - Symmetric\n Build a scale which is symmetric to the reference() value. - Floating\n The endpoints of the scale are supposed to be equal the outmost included values plus the specified margins (see setMargins()). If this attribute is *not* set, the endpoints of the scale will be integer multiples of the step size. - Inverted\n Turn the scale upside down. \sa setAttribute(), testAttribute(), reference(), lowerMargin(), upperMargin() */ enum Attribute { NoAttribute = 0, IncludeReference = 1, Symmetric = 2, Floating = 4, Inverted = 8 }; explicit QwtScaleEngine(); virtual ~QwtScaleEngine(); void setAttribute(Attribute, bool on = true); bool testAttribute(Attribute) const; void setAttributes(int); int attributes() const; void setReference(double reference); double reference() const; void setMargins(double lower, double upper); double lowerMargin() const; double upperMargin() const; /*! Align and divide an interval \param maxNumSteps Max. number of steps \param x1 First limit of the interval (In/Out) \param x2 Second limit of the interval (In/Out) \param stepSize Step size (Return value) */ virtual void autoScale(int maxNumSteps, double &x1, double &x2, double &stepSize) const = 0; /*! \brief Calculate a scale division \param x1 First interval limit \param x2 Second interval limit \param maxMajSteps Maximum for the number of major steps \param maxMinSteps Maximum number of minor steps \param stepSize Step size. If stepSize == 0.0, the scaleEngine calculates one. */ virtual QwtScaleDiv divideScale(double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize = 0.0) const = 0; //! \return a transformation virtual QwtScaleTransformation *transformation() const = 0; protected: bool contains(const QwtDoubleInterval &, double val) const; QwtValueList strip(const QwtValueList&, const QwtDoubleInterval &) const; double divideInterval(double interval, int numSteps) const; QwtDoubleInterval buildInterval(double v) const; private: class PrivateData; PrivateData *d_data; }; /*! \brief A scale engine for linear scales The step size will fit into the pattern \f$\left\{ 1,2,5\right\} \cdot 10^{n}\f$, where n is an integer. */ class QWT_EXPORT QwtLinearScaleEngine: public QwtScaleEngine { public: virtual void autoScale(int maxSteps, double &x1, double &x2, double &stepSize) const; virtual QwtScaleDiv divideScale(double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize = 0.0) const; virtual QwtScaleTransformation *transformation() const; protected: QwtDoubleInterval align(const QwtDoubleInterval&, double stepSize) const; private: void buildTicks( const QwtDoubleInterval &, double stepSize, int maxMinSteps, QwtValueList ticks[QwtScaleDiv::NTickTypes]) const; void buildMinorTicks( const QwtValueList& majorTicks, int maxMinMark, double step, QwtValueList &, QwtValueList &) const; QwtValueList buildMajorTicks( const QwtDoubleInterval &interval, double stepSize) const; }; /*! \brief A scale engine for logarithmic (base 10) scales The step size is measured in *decades* and the major step size will be adjusted to fit the pattern \f$\left\{ 1,2,3,5\right\} \cdot 10^{n}\f$, where n is a natural number including zero. \warning the step size as well as the margins are measured in *decades*. */ class QWT_EXPORT QwtLog10ScaleEngine: public QwtScaleEngine { public: virtual void autoScale(int maxSteps, double &x1, double &x2, double &stepSize) const; virtual QwtScaleDiv divideScale(double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize = 0.0) const; virtual QwtScaleTransformation *transformation() const; protected: QwtDoubleInterval log10(const QwtDoubleInterval&) const; QwtDoubleInterval pow10(const QwtDoubleInterval&) const; private: QwtDoubleInterval align(const QwtDoubleInterval&, double stepSize) const; void buildTicks( const QwtDoubleInterval &, double stepSize, int maxMinSteps, QwtValueList ticks[QwtScaleDiv::NTickTypes]) const; QwtValueList buildMinorTicks( const QwtValueList& majorTicks, int maxMinMark, double step) const; QwtValueList buildMajorTicks( const QwtDoubleInterval &interval, double stepSize) const; }; #endif qwt5-5.2.3/src/qwt_double_range.cpp0000644000175000017500000002157712052741126016607 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include "qwt_double_range.h" #include "qwt_math.h" static double MinRelStep = 1.0e-10; static double DefaultRelStep = 1.0e-2; static double MinEps = 1.0e-10; /*! The range is initialized to [0.0, 100.0], the step size to 1.0, and the value to 0.0. */ QwtDoubleRange::QwtDoubleRange(): d_minValue(0.0), d_maxValue(0.0), d_step(1.0), d_pageSize(1), d_isValid(false), d_value(0.0), d_exactValue(0.0), d_exactPrevValue(0.0), d_prevValue(0.0), d_periodic(false) { } //! Destroys the QwtDoubleRange QwtDoubleRange::~QwtDoubleRange() { } //! Set the value to be valid/invalid void QwtDoubleRange::setValid(bool isValid) { if ( isValid != d_isValid ) { d_isValid = isValid; valueChange(); } } //! Indicates if the value is valid bool QwtDoubleRange::isValid() const { return d_isValid; } /*! \brief No docs Description \param x ??? \param align \todo Documentation */ void QwtDoubleRange::setNewValue(double x, bool align) { double vmin,vmax; d_prevValue = d_value; vmin = qwtMin(d_minValue, d_maxValue); vmax = qwtMax(d_minValue, d_maxValue); // // Range check // if (x < vmin) { if ((d_periodic) && (vmin != vmax)) d_value = x + ::ceil( (vmin - x) / (vmax - vmin ) ) * (vmax - vmin); else d_value = vmin; } else if (x > vmax) { if ((d_periodic) && (vmin != vmax)) d_value = x - ::ceil( ( x - vmax) / (vmax - vmin )) * (vmax - vmin); else d_value = vmax; } else d_value = x; d_exactPrevValue = d_exactValue; d_exactValue = d_value; // align to grid if (align) { if (d_step != 0.0) { d_value = d_minValue + qwtRound((d_value - d_minValue) / d_step) * d_step; } else d_value = d_minValue; // correct rounding error at the border if (fabs(d_value - d_maxValue) < MinEps * qwtAbs(d_step)) d_value = d_maxValue; // correct rounding error if value = 0 if (::fabs(d_value) < MinEps * qwtAbs(d_step)) d_value = 0.0; } if (!d_isValid || d_prevValue != d_value) { d_isValid = true; valueChange(); } } /*! \brief Adjust the value to the closest point in the step raster. \param x value \warning The value is clipped when it lies outside the range. When the range is QwtDoubleRange::periodic, it will be mapped to a point in the interval such that \verbatim new value := x + n * (max. value - min. value)\endverbatim with an integer number n. */ void QwtDoubleRange::fitValue(double x) { setNewValue(x, true); } /*! \brief Set a new value without adjusting to the step raster \param x new value \warning The value is clipped when it lies outside the range. When the range is QwtDoubleRange::periodic, it will be mapped to a point in the interval such that \verbatim new value := x + n * (max. value - min. value)\endverbatim with an integer number n. */ void QwtDoubleRange::setValue(double x) { setNewValue(x, false); } /*! \brief Specify range and step size \param vmin lower boundary of the interval \param vmax higher boundary of the interval \param vstep step width \param pageSize page size in steps \warning \li A change of the range changes the value if it lies outside the new range. The current value will *not* be adjusted to the new step raster. \li vmax < vmin is allowed. \li If the step size is left out or set to zero, it will be set to 1/100 of the interval length. \li If the step size has an absurd value, it will be corrected to a better one. */ void QwtDoubleRange::setRange(double vmin, double vmax, double vstep, int pageSize) { bool rchg = ((d_maxValue != vmax) || (d_minValue != vmin)); if (rchg) { d_minValue = vmin; d_maxValue = vmax; } // // look if the step width has an acceptable // value or otherwise change it. // setStep(vstep); // // limit page size // d_pageSize = qwtLim(pageSize,0, int(qwtAbs((d_maxValue - d_minValue) / d_step))); // // If the value lies out of the range, it // will be changed. Note that it will not be adjusted to // the new step width. setNewValue(d_value, false); // call notifier after the step width has been // adjusted. if (rchg) rangeChange(); } /*! \brief Change the step raster \param vstep new step width \warning The value will \e not be adjusted to the new step raster. */ void QwtDoubleRange::setStep(double vstep) { double intv = d_maxValue - d_minValue; double newStep; if (vstep == 0.0) newStep = intv * DefaultRelStep; else { if ( (intv > 0 && vstep < 0) || (intv < 0 && vstep > 0) ) newStep = -vstep; else newStep = vstep; if ( fabs(newStep) < fabs(MinRelStep * intv) ) newStep = MinRelStep * intv; } if (newStep != d_step) { d_step = newStep; stepChange(); } } /*! \brief Make the range periodic When the range is periodic, the value will be set to a point inside the interval such that \verbatim point = value + n * width \endverbatim if the user tries to set a new value which is outside the range. If the range is nonperiodic (the default), values outside the range will be clipped. \param tf true for a periodic range */ void QwtDoubleRange::setPeriodic(bool tf) { d_periodic = tf; } /*! \brief Increment the value by a specified number of steps \param nSteps Number of steps to increment \warning As a result of this operation, the new value will always be adjusted to the step raster. */ void QwtDoubleRange::incValue(int nSteps) { if ( isValid() ) setNewValue(d_value + double(nSteps) * d_step, true); } /*! \brief Increment the value by a specified number of pages \param nPages Number of pages to increment. A negative number decrements the value. \warning The Page size is specified in the constructor. */ void QwtDoubleRange::incPages(int nPages) { if ( isValid() ) setNewValue(d_value + double(nPages) * double(d_pageSize) * d_step, true); } /*! \brief Notify a change of value This virtual function is called whenever the value changes. The default implementation does nothing. */ void QwtDoubleRange::valueChange() { } /*! \brief Notify a change of the range This virtual function is called whenever the range changes. The default implementation does nothing. */ void QwtDoubleRange::rangeChange() { } /*! \brief Notify a change of the step size This virtual function is called whenever the step size changes. The default implementation does nothing. */ void QwtDoubleRange::stepChange() { } /*! \return the step size \sa setStep(), setRange() */ double QwtDoubleRange::step() const { return qwtAbs(d_step); } /*! \brief Returns the value of the second border of the range maxValue returns the value which has been specified as the second parameter in QwtDoubleRange::setRange. \sa setRange() */ double QwtDoubleRange::maxValue() const { return d_maxValue; } /*! \brief Returns the value at the first border of the range minValue returns the value which has been specified as the first parameter in setRange(). \sa setRange() */ double QwtDoubleRange::minValue() const { return d_minValue; } /*! \brief Returns true if the range is periodic \sa setPeriodic() */ bool QwtDoubleRange::periodic() const { return d_periodic; } //! Returns the page size in steps. int QwtDoubleRange::pageSize() const { return d_pageSize; } //! Returns the current value. double QwtDoubleRange::value() const { return d_value; } /*! \brief Returns the exact value The exact value is the value which QwtDoubleRange::value would return if the value were not adjusted to the step raster. It differs from the current value only if QwtDoubleRange::fitValue or QwtDoubleRange::incValue have been used before. This function is intended for internal use in derived classes. */ double QwtDoubleRange::exactValue() const { return d_exactValue; } //! Returns the exact previous value double QwtDoubleRange::exactPrevValue() const { return d_exactPrevValue; } //! Returns the previous value double QwtDoubleRange::prevValue() const { return d_prevValue; } qwt5-5.2.3/src/qwt_clipper.cpp0000644000175000017500000003133512052741126015610 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include "qwt_math.h" #include "qwt_clipper.h" static inline QwtDoubleRect boundingRect(const QwtPolygonF &polygon) { #if QT_VERSION < 0x040000 if (polygon.isEmpty()) return QwtDoubleRect(0, 0, 0, 0); register const QwtDoublePoint *pd = polygon.data(); double minx, maxx, miny, maxy; minx = maxx = pd->x(); miny = maxy = pd->y(); pd++; for (uint i = 1; i < polygon.size(); i++, pd++) { if (pd->x() < minx) minx = pd->x(); else if (pd->x() > maxx) maxx = pd->x(); if (pd->y() < miny) miny = pd->y(); else if (pd->y() > maxy) maxy = pd->y(); } return QwtDoubleRect(minx, miny, maxx - minx, maxy - miny); #else return polygon.boundingRect(); #endif } enum Edge { Left, Top, Right, Bottom, NEdges }; class QwtPolygonClipper: public QRect { public: QwtPolygonClipper(const QRect &r); QwtPolygon clipPolygon(const QwtPolygon &) const; private: void clipEdge(Edge, const QwtPolygon &, QwtPolygon &) const; bool insideEdge(const QPoint &, Edge edge) const; QPoint intersectEdge(const QPoint &p1, const QPoint &p2, Edge edge) const; void addPoint(QwtPolygon &, uint pos, const QPoint &point) const; }; class QwtPolygonClipperF: public QwtDoubleRect { public: QwtPolygonClipperF(const QwtDoubleRect &r); QwtPolygonF clipPolygon(const QwtPolygonF &) const; private: void clipEdge(Edge, const QwtPolygonF &, QwtPolygonF &) const; bool insideEdge(const QwtDoublePoint &, Edge edge) const; QwtDoublePoint intersectEdge(const QwtDoublePoint &p1, const QwtDoublePoint &p2, Edge edge) const; void addPoint(QwtPolygonF &, uint pos, const QwtDoublePoint &point) const; }; #if QT_VERSION >= 0x040000 class QwtCircleClipper: public QwtDoubleRect { public: QwtCircleClipper(const QwtDoubleRect &r); QwtArray clipCircle( const QwtDoublePoint &, double radius) const; private: QList cuttingPoints( Edge, const QwtDoublePoint &pos, double radius) const; double toAngle(const QwtDoublePoint &, const QwtDoublePoint &) const; }; #endif QwtPolygonClipper::QwtPolygonClipper(const QRect &r): QRect(r) { } inline void QwtPolygonClipper::addPoint( QwtPolygon &pa, uint pos, const QPoint &point) const { if ( uint(pa.size()) <= pos ) pa.resize(pos + 5); pa.setPoint(pos, point); } //! Sutherland-Hodgman polygon clipping QwtPolygon QwtPolygonClipper::clipPolygon(const QwtPolygon &pa) const { if ( contains( pa.boundingRect() ) ) return pa; QwtPolygon cpa(pa.size()); clipEdge((Edge)0, pa, cpa); for ( uint edge = 1; edge < NEdges; edge++ ) { const QwtPolygon rpa = cpa; #if QT_VERSION < 0x040000 cpa.detach(); #endif clipEdge((Edge)edge, rpa, cpa); } return cpa; } bool QwtPolygonClipper::insideEdge(const QPoint &p, Edge edge) const { switch(edge) { case Left: return p.x() > left(); case Top: return p.y() > top(); case Right: return p.x() < right(); case Bottom: return p.y() < bottom(); default: break; } return false; } QPoint QwtPolygonClipper::intersectEdge(const QPoint &p1, const QPoint &p2, Edge edge ) const { int x=0, y=0; double m = 0; const double dy = p2.y() - p1.y(); const double dx = p2.x() - p1.x(); switch ( edge ) { case Left: x = left(); m = double(qwtAbs(p1.x() - x)) / qwtAbs(dx); y = p1.y() + int(dy * m); break; case Top: y = top(); m = double(qwtAbs(p1.y() - y)) / qwtAbs(dy); x = p1.x() + int(dx * m); break; case Right: x = right(); m = double(qwtAbs(p1.x() - x)) / qwtAbs(dx); y = p1.y() + int(dy * m); break; case Bottom: y = bottom(); m = double(qwtAbs(p1.y() - y)) / qwtAbs(dy); x = p1.x() + int(dx * m); break; default: break; } return QPoint(x,y); } void QwtPolygonClipper::clipEdge(Edge edge, const QwtPolygon &pa, QwtPolygon &cpa) const { if ( pa.count() == 0 ) { cpa.resize(0); return; } unsigned int count = 0; QPoint p1 = pa.point(0); if ( insideEdge(p1, edge) ) addPoint(cpa, count++, p1); const uint nPoints = pa.size(); for ( uint i = 1; i < nPoints; i++ ) { const QPoint p2 = pa.point(i); if ( insideEdge(p2, edge) ) { if ( insideEdge(p1, edge) ) addPoint(cpa, count++, p2); else { addPoint(cpa, count++, intersectEdge(p1, p2, edge)); addPoint(cpa, count++, p2); } } else { if ( insideEdge(p1, edge) ) addPoint(cpa, count++, intersectEdge(p1, p2, edge)); } p1 = p2; } cpa.resize(count); } QwtPolygonClipperF::QwtPolygonClipperF(const QwtDoubleRect &r): QwtDoubleRect(r) { } inline void QwtPolygonClipperF::addPoint(QwtPolygonF &pa, uint pos, const QwtDoublePoint &point) const { if ( uint(pa.size()) <= pos ) pa.resize(pos + 5); pa[(int)pos] = point; } //! Sutherland-Hodgman polygon clipping QwtPolygonF QwtPolygonClipperF::clipPolygon(const QwtPolygonF &pa) const { if ( contains( ::boundingRect(pa) ) ) return pa; QwtPolygonF cpa(pa.size()); clipEdge((Edge)0, pa, cpa); for ( uint edge = 1; edge < NEdges; edge++ ) { const QwtPolygonF rpa = cpa; #if QT_VERSION < 0x040000 cpa.detach(); #endif clipEdge((Edge)edge, rpa, cpa); } return cpa; } bool QwtPolygonClipperF::insideEdge(const QwtDoublePoint &p, Edge edge) const { switch(edge) { case Left: return p.x() > left(); case Top: return p.y() > top(); case Right: return p.x() < right(); case Bottom: return p.y() < bottom(); default: break; } return false; } QwtDoublePoint QwtPolygonClipperF::intersectEdge(const QwtDoublePoint &p1, const QwtDoublePoint &p2, Edge edge ) const { double x=0.0, y=0.0; double m = 0; const double dy = p2.y() - p1.y(); const double dx = p2.x() - p1.x(); switch ( edge ) { case Left: x = left(); m = double(qwtAbs(p1.x() - x)) / qwtAbs(dx); y = p1.y() + int(dy * m); break; case Top: y = top(); m = double(qwtAbs(p1.y() - y)) / qwtAbs(dy); x = p1.x() + int(dx * m); break; case Right: x = right(); m = double(qwtAbs(p1.x() - x)) / qwtAbs(dx); y = p1.y() + int(dy * m); break; case Bottom: y = bottom(); m = double(qwtAbs(p1.y() - y)) / qwtAbs(dy); x = p1.x() + int(dx * m); break; default: break; } return QwtDoublePoint(x,y); } void QwtPolygonClipperF::clipEdge(Edge edge, const QwtPolygonF &pa, QwtPolygonF &cpa) const { if ( pa.count() == 0 ) { cpa.resize(0); return; } unsigned int count = 0; QwtDoublePoint p1 = pa[0]; if ( insideEdge(p1, edge) ) addPoint(cpa, count++, p1); const uint nPoints = pa.size(); for ( uint i = 1; i < nPoints; i++ ) { const QwtDoublePoint p2 = pa[(int)i]; if ( insideEdge(p2, edge) ) { if ( insideEdge(p1, edge) ) addPoint(cpa, count++, p2); else { addPoint(cpa, count++, intersectEdge(p1, p2, edge)); addPoint(cpa, count++, p2); } } else { if ( insideEdge(p1, edge) ) addPoint(cpa, count++, intersectEdge(p1, p2, edge)); } p1 = p2; } cpa.resize(count); } #if QT_VERSION >= 0x040000 QwtCircleClipper::QwtCircleClipper(const QwtDoubleRect &r): QwtDoubleRect(r) { } QwtArray QwtCircleClipper::clipCircle( const QwtDoublePoint &pos, double radius) const { QList points; for ( int edge = 0; edge < NEdges; edge++ ) points += cuttingPoints((Edge)edge, pos, radius); QwtArray intv; if ( points.size() <= 0 ) { QwtDoubleRect cRect(0, 0, 2 * radius, 2* radius); cRect.moveCenter(pos); if ( contains(cRect) ) intv += QwtDoubleInterval(0.0, 2 * M_PI); } else { QList angles; for ( int i = 0; i < points.size(); i++ ) angles += toAngle(pos, points[i]); qSort(angles); const int in = contains(qwtPolar2Pos(pos, radius, angles[0] + (angles[1] - angles[0]) / 2)); if ( in ) { for ( int i = 0; i < angles.size() - 1; i += 2) intv += QwtDoubleInterval(angles[i], angles[i+1]); } else { for ( int i = 1; i < angles.size() - 1; i += 2) intv += QwtDoubleInterval(angles[i], angles[i+1]); intv += QwtDoubleInterval(angles.last(), angles.first()); } } return intv; } double QwtCircleClipper::toAngle( const QwtDoublePoint &from, const QwtDoublePoint &to) const { if ( from.x() == to.x() ) return from.y() <= to.y() ? M_PI / 2.0 : 3 * M_PI / 2.0; const double m = qwtAbs((to.y() - from.y()) / (to.x() - from.x()) ); double angle = ::atan(m); if ( to.x() > from.x() ) { if ( to.y() > from.y() ) angle = 2 * M_PI - angle; } else { if ( to.y() > from.y() ) angle = M_PI + angle; else angle = M_PI - angle; } return angle; } QList QwtCircleClipper::cuttingPoints( Edge edge, const QwtDoublePoint &pos, double radius) const { QList points; if ( edge == Left || edge == Right ) { const double x = (edge == Left) ? left() : right(); if ( qwtAbs(pos.x() - x) < radius ) { const double off = ::sqrt(qwtSqr(radius) - qwtSqr(pos.x() - x)); const double y1 = pos.y() + off; if ( y1 >= top() && y1 <= bottom() ) points += QwtDoublePoint(x, y1); const double y2 = pos.y() - off; if ( y2 >= top() && y2 <= bottom() ) points += QwtDoublePoint(x, y2); } } else { const double y = (edge == Top) ? top() : bottom(); if ( qwtAbs(pos.y() - y) < radius ) { const double off = ::sqrt(qwtSqr(radius) - qwtSqr(pos.y() - y)); const double x1 = pos.x() + off; if ( x1 >= left() && x1 <= right() ) points += QwtDoublePoint(x1, y); const double x2 = pos.x() - off; if ( x2 >= left() && x2 <= right() ) points += QwtDoublePoint(x2, y); } } return points; } #endif /*! Sutherland-Hodgman polygon clipping \param clipRect Clip rectangle \param polygon Polygon \return Clipped polygon */ QwtPolygon QwtClipper::clipPolygon( const QRect &clipRect, const QwtPolygon &polygon) { QwtPolygonClipper clipper(clipRect); return clipper.clipPolygon(polygon); } /*! Sutherland-Hodgman polygon clipping \param clipRect Clip rectangle \param polygon Polygon \return Clipped polygon */ QwtPolygonF QwtClipper::clipPolygonF( const QwtDoubleRect &clipRect, const QwtPolygonF &polygon) { QwtPolygonClipperF clipper(clipRect); return clipper.clipPolygon(polygon); } #if QT_VERSION >= 0x040000 /*! Circle clipping clipCircle() devides a circle into intervals of angles representing arcs of the circle. When the circle is completely inside the clip rectangle an interval [0.0, 2 * M_PI] is returned. \param clipRect Clip rectangle \param center Center of the circle \param radius Radius of the circle \return Arcs of the circle */ QwtArray QwtClipper::clipCircle( const QwtDoubleRect &clipRect, const QwtDoublePoint ¢er, double radius) { QwtCircleClipper clipper(clipRect); return clipper.clipCircle(center, radius); } #endif qwt5-5.2.3/src/qwt_data.cpp0000644000175000017500000001747212052741126015071 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_math.h" #include "qwt_data.h" //! Constructor QwtData::QwtData() { } //! Destructor QwtData::~QwtData() { } /*! Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false \warning This is an slow implementation iterating over all points. It is intended to be overloaded by derived classes. In case of auto scaling boundingRect() is called for every replot, so it might be worth to implement a cache, or use x(0), x(size() - 1) for ordered data ... */ QwtDoubleRect QwtData::boundingRect() const { const size_t sz = size(); if ( sz <= 0 ) return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid double minX, maxX, minY, maxY; minX = maxX = x(0); minY = maxY = y(0); for ( size_t i = 1; i < sz; i++ ) { const double xv = x(i); if ( xv < minX ) minX = xv; if ( xv > maxX ) maxX = xv; const double yv = y(i); if ( yv < minY ) minY = yv; if ( yv > maxY ) maxY = yv; } return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } /*! Constructor \param polygon Polygon data \sa QwtPlotCurve::setData() */ #if QT_VERSION >= 0x040000 QwtPolygonFData::QwtPolygonFData(const QPolygonF &polygon): #else QwtPolygonFData::QwtPolygonFData(const QwtArray &polygon): #endif d_data(polygon) { } //! Assignment QwtPolygonFData& QwtPolygonFData::operator=( const QwtPolygonFData &data) { if (this != &data) { d_data = data.d_data; } return *this; } //! \return Size of the data set size_t QwtPolygonFData::size() const { return d_data.size(); } /*! Return the x value of data point i \param i Index \return x X value of data point i */ double QwtPolygonFData::x(size_t i) const { return d_data[int(i)].x(); } /*! Return the y value of data point i \param i Index \return y Y value of data point i */ double QwtPolygonFData::y(size_t i) const { return d_data[int(i)].y(); } //! \return Point array #if QT_VERSION >= 0x040000 const QPolygonF &QwtPolygonFData::data() const #else const QwtArray &QwtPolygonFData::data() const #endif { return d_data; } /*! \return Pointer to a copy (virtual copy constructor) */ QwtData *QwtPolygonFData::copy() const { return new QwtPolygonFData(d_data); } /*! Constructor \param x Array of x values \param y Array of y values \sa QwtPlotCurve::setData() */ QwtArrayData::QwtArrayData( const QwtArray &x, const QwtArray &y): d_x(x), d_y(y) { } /*! Constructor \param x Array of x values \param y Array of y values \param size Size of the x and y arrays \sa QwtPlotCurve::setData() */ QwtArrayData::QwtArrayData(const double *x, const double *y, size_t size) { #if QT_VERSION >= 0x040000 d_x.resize(size); qMemCopy(d_x.data(), x, size * sizeof(double)); d_y.resize(size); qMemCopy(d_y.data(), y, size * sizeof(double)); #else d_x.detach(); d_x.duplicate(x, size); d_y.detach(); d_y.duplicate(y, size); #endif } //! Assignment QwtArrayData& QwtArrayData::operator=(const QwtArrayData &data) { if (this != &data) { d_x = data.d_x; d_y = data.d_y; } return *this; } //! \return Size of the data set size_t QwtArrayData::size() const { return qwtMin(d_x.size(), d_y.size()); } /*! Return the x value of data point i \param i Index \return x X value of data point i */ double QwtArrayData::x(size_t i) const { return d_x[int(i)]; } /*! Return the y value of data point i \param i Index \return y Y value of data point i */ double QwtArrayData::y(size_t i) const { return d_y[int(i)]; } //! \return Array of the x-values const QwtArray &QwtArrayData::xData() const { return d_x; } //! \return Array of the y-values const QwtArray &QwtArrayData::yData() const { return d_y; } /*! \return Pointer to a copy (virtual copy constructor) */ QwtData *QwtArrayData::copy() const { return new QwtArrayData(d_x, d_y); } /*! Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false */ QwtDoubleRect QwtArrayData::boundingRect() const { const size_t sz = size(); if ( sz <= 0 ) return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid double minX, maxX, minY, maxY; QwtArray::ConstIterator xIt = d_x.begin(); QwtArray::ConstIterator yIt = d_y.begin(); QwtArray::ConstIterator end = d_x.begin() + sz; minX = maxX = *xIt++; minY = maxY = *yIt++; while ( xIt < end ) { const double xv = *xIt++; if ( xv < minX ) minX = xv; if ( xv > maxX ) maxX = xv; const double yv = *yIt++; if ( yv < minY ) minY = yv; if ( yv > maxY ) maxY = yv; } return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } /*! Constructor \param x Array of x values \param y Array of y values \param size Size of the x and y arrays \warning The programmer must assure that the memory blocks referenced by the pointers remain valid during the lifetime of the QwtPlotCPointer object. \sa QwtPlotCurve::setData(), QwtPlotCurve::setRawData() */ QwtCPointerData::QwtCPointerData( const double *x, const double *y, size_t size): d_x(x), d_y(y), d_size(size) { } //! Assignment QwtCPointerData& QwtCPointerData::operator=(const QwtCPointerData &data) { if (this != &data) { d_x = data.d_x; d_y = data.d_y; d_size = data.d_size; } return *this; } //! \return Size of the data set size_t QwtCPointerData::size() const { return d_size; } /*! Return the x value of data point i \param i Index \return x X value of data point i */ double QwtCPointerData::x(size_t i) const { return d_x[int(i)]; } /*! Return the y value of data point i \param i Index \return y Y value of data point i */ double QwtCPointerData::y(size_t i) const { return d_y[int(i)]; } //! \return Array of the x-values const double *QwtCPointerData::xData() const { return d_x; } //! \return Array of the y-values const double *QwtCPointerData::yData() const { return d_y; } /*! \return Pointer to a copy (virtual copy constructor) */ QwtData *QwtCPointerData::copy() const { return new QwtCPointerData(d_x, d_y, d_size); } /*! Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false */ QwtDoubleRect QwtCPointerData::boundingRect() const { const size_t sz = size(); if ( sz <= 0 ) return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid double minX, maxX, minY, maxY; const double *xIt = d_x; const double *yIt = d_y; const double *end = d_x + sz; minX = maxX = *xIt++; minY = maxY = *yIt++; while ( xIt < end ) { const double xv = *xIt++; if ( xv < minX ) minX = xv; if ( xv > maxX ) maxX = xv; const double yv = *yIt++; if ( yv < minY ) minY = yv; if ( yv > maxY ) maxY = yv; } return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } qwt5-5.2.3/src/qwt_double_interval.cpp0000644000175000017500000001717112052741126017332 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #if QT_VERSION >= 0x040000 #include #else #include #endif #include "qwt_math.h" #include "qwt_double_interval.h" /*! \brief Normalize the limits of the interval If maxValue() < minValue() the limits will be inverted. \return Normalized interval \sa isValid(), inverted() */ QwtDoubleInterval QwtDoubleInterval::normalized() const { if ( d_minValue > d_maxValue ) { return inverted(); } if ( d_minValue == d_maxValue && d_borderFlags == ExcludeMinimum ) { return inverted(); } return *this; } /*! Invert the limits of the interval \return Inverted interval \sa normalized() */ QwtDoubleInterval QwtDoubleInterval::inverted() const { int borderFlags = 0; if ( d_borderFlags & ExcludeMinimum ) borderFlags |= ExcludeMaximum; if ( d_borderFlags & ExcludeMaximum ) borderFlags |= ExcludeMinimum; return QwtDoubleInterval(d_maxValue, d_minValue, borderFlags); } /*! Test if a value is inside an interval \param value Value \return true, if value >= minValue() && value <= maxValue() */ bool QwtDoubleInterval::contains(double value) const { if ( !isValid() ) return false; if ( value < d_minValue || value > d_maxValue ) return false; if ( value == d_minValue && d_borderFlags & ExcludeMinimum ) return false; if ( value == d_maxValue && d_borderFlags & ExcludeMaximum ) return false; return true; } //! Unite 2 intervals QwtDoubleInterval QwtDoubleInterval::unite( const QwtDoubleInterval &other) const { /* If one of the intervals is invalid return the other one. If both are invalid return an invalid default interval */ if ( !isValid() ) { if ( !other.isValid() ) return QwtDoubleInterval(); else return other; } if ( !other.isValid() ) return *this; QwtDoubleInterval united; int flags = 0; // minimum if ( d_minValue < other.minValue() ) { united.setMinValue(d_minValue); flags &= d_borderFlags & ExcludeMinimum; } else if ( other.minValue() < d_minValue ) { united.setMinValue(other.minValue()); flags &= other.borderFlags() & ExcludeMinimum; } else // d_minValue == other.minValue() { united.setMinValue(d_minValue); flags &= (d_borderFlags & other.borderFlags()) & ExcludeMinimum; } // maximum if ( d_maxValue > other.maxValue() ) { united.setMaxValue(d_maxValue); flags &= d_borderFlags & ExcludeMaximum; } else if ( other.maxValue() > d_maxValue ) { united.setMaxValue(other.maxValue()); flags &= other.borderFlags() & ExcludeMaximum; } else // d_maxValue == other.maxValue() ) { united.setMaxValue(d_maxValue); flags &= d_borderFlags & other.borderFlags() & ExcludeMaximum; } united.setBorderFlags(flags); return united; } //! Intersect 2 intervals QwtDoubleInterval QwtDoubleInterval::intersect( const QwtDoubleInterval &other) const { if ( !other.isValid() || !isValid() ) return QwtDoubleInterval(); QwtDoubleInterval i1 = *this; QwtDoubleInterval i2 = other; // swap i1/i2, so that the minimum of i1 // is smaller then the minimum of i2 if ( i1.minValue() > i2.minValue() ) { qSwap(i1, i2); } else if ( i1.minValue() == i2.minValue() ) { if ( i1.borderFlags() & ExcludeMinimum ) qSwap(i1, i2); } if ( i1.maxValue() < i2.minValue() ) { return QwtDoubleInterval(); } if ( i1.maxValue() == i2.minValue() ) { if ( i1.borderFlags() & ExcludeMaximum || i2.borderFlags() & ExcludeMinimum ) { return QwtDoubleInterval(); } } QwtDoubleInterval intersected; int flags = 0; intersected.setMinValue(i2.minValue()); flags |= i2.borderFlags() & ExcludeMinimum; if ( i1.maxValue() < i2.maxValue() ) { intersected.setMaxValue(i1.maxValue()); flags |= i1.borderFlags() & ExcludeMaximum; } else if ( i2.maxValue() < i1.maxValue() ) { intersected.setMaxValue(i2.maxValue()); flags |= i2.borderFlags() & ExcludeMaximum; } else // i1.maxValue() == i2.maxValue() { intersected.setMaxValue(i1.maxValue() ); flags |= i1.borderFlags() & i2.borderFlags() & ExcludeMaximum; } intersected.setBorderFlags(flags); return intersected; } //! Unites this interval with the given interval. QwtDoubleInterval& QwtDoubleInterval::operator|=( const QwtDoubleInterval &interval) { *this = *this | interval; return *this; } //! Intersects this interval with the given interval. QwtDoubleInterval& QwtDoubleInterval::operator&=( const QwtDoubleInterval &interval) { *this = *this & interval; return *this; } /*! Test if two intervals overlap */ bool QwtDoubleInterval::intersects(const QwtDoubleInterval &other) const { if ( !isValid() || !other.isValid() ) return false; QwtDoubleInterval i1 = *this; QwtDoubleInterval i2 = other; // swap i1/i2, so that the minimum of i1 // is smaller then the minimum of i2 if ( i1.minValue() > i2.minValue() ) { qSwap(i1, i2); } else if ( i1.minValue() == i2.minValue() && i1.borderFlags() & ExcludeMinimum ) { qSwap(i1, i2); } if ( i1.maxValue() > i2.minValue() ) { return true; } if ( i1.maxValue() == i2.minValue() ) { return !( (i1.borderFlags() & ExcludeMaximum) || (i2.borderFlags() & ExcludeMinimum) ); } return false; } /*! Adjust the limit that is closer to value, so that value becomes the center of the interval. \param value Center \return Interval with value as center */ QwtDoubleInterval QwtDoubleInterval::symmetrize(double value) const { if ( !isValid() ) return *this; const double delta = qwtMax(qwtAbs(value - d_maxValue), qwtAbs(value - d_minValue)); return QwtDoubleInterval(value - delta, value + delta); } /*! Limit the interval, keeping the border modes \param lowerBound Lower limit \param upperBound Upper limit \return Limited interval */ QwtDoubleInterval QwtDoubleInterval::limited( double lowerBound, double upperBound) const { if ( !isValid() || lowerBound > upperBound ) return QwtDoubleInterval(); double minValue = qwtMax(d_minValue, lowerBound); minValue = qwtMin(minValue, upperBound); double maxValue = qwtMax(d_maxValue, lowerBound); maxValue = qwtMin(maxValue, upperBound); return QwtDoubleInterval(minValue, maxValue, d_borderFlags); } /*! Extend the interval If value is below minValue, value becomes the lower limit. If value is above maxValue, value becomes the upper limit. extend has no effect for invalid intervals \param value Value \sa isValid() */ QwtDoubleInterval QwtDoubleInterval::extend(double value) const { if ( !isValid() ) return *this; return QwtDoubleInterval( qwtMin(value, d_minValue), qwtMax(value, d_maxValue), d_borderFlags ); } QwtDoubleInterval& QwtDoubleInterval::operator|=(double value) { *this = *this | value; return *this; } qwt5-5.2.3/src/src.pro0000644000175000017500000001210312052741127014055 0ustar gudjongudjon# -*- mode: sh -*- ########################### # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ############################################## # qmake project file for building the qwt libraries QWT_ROOT = .. include( $${QWT_ROOT}/qwtconfig.pri ) SUFFIX_STR = VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt 3 debug { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } else { CONFIG(debug, debug|release) { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } TARGET = qwt$${SUFFIX_STR} TEMPLATE = lib MOC_DIR = moc OBJECTS_DIR = obj$${SUFFIX_STR} DESTDIR = $${QWT_ROOT}/lib contains(CONFIG, QwtDll ) { CONFIG += dll } else { CONFIG += staticlib } win32:QwtDll { DEFINES += QT_DLL QWT_DLL QWT_MAKEDLL } symbian:QwtDll { DEFINES += QT_DLL QWT_DLL QWT_MAKEDLL } HEADERS += \ qwt.h \ qwt_abstract_scale_draw.h \ qwt_array.h \ qwt_color_map.h \ qwt_clipper.h \ qwt_double_interval.h \ qwt_double_rect.h \ qwt_dyngrid_layout.h \ qwt_global.h \ qwt_layout_metrics.h \ qwt_math.h \ qwt_magnifier.h \ qwt_paint_buffer.h \ qwt_painter.h \ qwt_panner.h \ qwt_picker.h \ qwt_picker_machine.h \ qwt_polygon.h \ qwt_round_scale_draw.h \ qwt_scale_div.h \ qwt_scale_draw.h \ qwt_scale_engine.h \ qwt_scale_map.h \ qwt_spline.h \ qwt_symbol.h \ qwt_text_engine.h \ qwt_text_label.h \ qwt_text.h \ qwt_valuelist.h SOURCES += \ qwt_abstract_scale_draw.cpp \ qwt_color_map.cpp \ qwt_clipper.cpp \ qwt_double_interval.cpp \ qwt_double_rect.cpp \ qwt_dyngrid_layout.cpp \ qwt_layout_metrics.cpp \ qwt_math.cpp \ qwt_magnifier.cpp \ qwt_paint_buffer.cpp \ qwt_panner.cpp \ qwt_painter.cpp \ qwt_picker.cpp \ qwt_round_scale_draw.cpp \ qwt_scale_div.cpp \ qwt_scale_draw.cpp \ qwt_scale_map.cpp \ qwt_spline.cpp \ qwt_text_engine.cpp \ qwt_text_label.cpp \ qwt_text.cpp \ qwt_event_pattern.cpp \ qwt_picker_machine.cpp \ qwt_scale_engine.cpp \ qwt_symbol.cpp contains(CONFIG, QwtPlot) { HEADERS += \ qwt_curve_fitter.h \ qwt_data.h \ qwt_event_pattern.h \ qwt_interval_data.h \ qwt_legend.h \ qwt_legend_item.h \ qwt_legend_itemmanager.h \ qwt_plot.h \ qwt_plot_curve.h \ qwt_plot_dict.h \ qwt_plot_grid.h \ qwt_plot_item.h \ qwt_plot_layout.h \ qwt_plot_marker.h \ qwt_plot_printfilter.h \ qwt_plot_rasteritem.h \ qwt_plot_spectrogram.h \ qwt_plot_scaleitem.h \ qwt_plot_canvas.h \ qwt_plot_rescaler.h \ qwt_plot_panner.h \ qwt_plot_picker.h \ qwt_plot_zoomer.h \ qwt_plot_magnifier.h \ qwt_raster_data.h \ qwt_scale_widget.h SOURCES += \ qwt_curve_fitter.cpp \ qwt_data.cpp \ qwt_interval_data.cpp \ qwt_legend.cpp \ qwt_legend_item.cpp \ qwt_plot.cpp \ qwt_plot_print.cpp \ qwt_plot_xml.cpp \ qwt_plot_axis.cpp \ qwt_plot_curve.cpp \ qwt_plot_dict.cpp \ qwt_plot_grid.cpp \ qwt_plot_item.cpp \ qwt_plot_spectrogram.cpp \ qwt_plot_scaleitem.cpp \ qwt_plot_marker.cpp \ qwt_plot_layout.cpp \ qwt_plot_printfilter.cpp \ qwt_plot_rasteritem.cpp \ qwt_plot_canvas.cpp \ qwt_plot_rescaler.cpp \ qwt_plot_panner.cpp \ qwt_plot_picker.cpp \ qwt_plot_zoomer.cpp \ qwt_plot_magnifier.cpp \ qwt_raster_data.cpp \ qwt_scale_widget.cpp } contains(CONFIG, QwtSVGItem) { QT += svg HEADERS += qwt_plot_svgitem.h SOURCES += qwt_plot_svgitem.cpp } contains(CONFIG, QwtWidgets) { HEADERS += \ qwt_abstract_slider.h \ qwt_abstract_scale.h \ qwt_arrow_button.h \ qwt_analog_clock.h \ qwt_compass.h \ qwt_compass_rose.h \ qwt_counter.h \ qwt_dial.h \ qwt_dial_needle.h \ qwt_double_range.h \ qwt_knob.h \ qwt_slider.h \ qwt_thermo.h \ qwt_wheel.h SOURCES += \ qwt_abstract_slider.cpp \ qwt_abstract_scale.cpp \ qwt_arrow_button.cpp \ qwt_analog_clock.cpp \ qwt_compass.cpp \ qwt_compass_rose.cpp \ qwt_counter.cpp \ qwt_dial.cpp \ qwt_dial_needle.cpp \ qwt_double_range.cpp \ qwt_knob.cpp \ qwt_slider.cpp \ qwt_thermo.cpp \ qwt_wheel.cpp } # Install directives headers.files = $$HEADERS doc.files = $${QWT_ROOT}/doc/html $${QWT_ROOT}/doc/qwt-5.2.0.qch unix { doc.files += $${QWT_ROOT}/doc/man } INSTALLS = target headers doc qwt5-5.2.3/src/qwt_plot_canvas.cpp0000644000175000017500000002323012052741126016456 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #if QT_VERSION >= 0x040000 #include #include #ifdef Q_WS_X11 #include #endif #endif #include #include "qwt_painter.h" #include "qwt_math.h" #include "qwt_plot.h" #include "qwt_paint_buffer.h" #include "qwt_plot_canvas.h" class QwtPlotCanvas::PrivateData { public: PrivateData(): focusIndicator(NoFocusIndicator), paintAttributes(0), cache(NULL) { } ~PrivateData() { delete cache; } FocusIndicator focusIndicator; int paintAttributes; QPixmap *cache; }; //! Sets a cross cursor, enables QwtPlotCanvas::PaintCached QwtPlotCanvas::QwtPlotCanvas(QwtPlot *plot): QFrame(plot) { d_data = new PrivateData; #if QT_VERSION >= 0x040100 setAutoFillBackground(true); #endif #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #ifndef QT_NO_CURSOR setCursor(Qt::crossCursor); #endif #else #ifndef QT_NO_CURSOR setCursor(Qt::CrossCursor); #endif #endif // >= 0x040000 setPaintAttribute(PaintCached, true); setPaintAttribute(PaintPacked, true); } //! Destructor QwtPlotCanvas::~QwtPlotCanvas() { delete d_data; } //! Return parent plot widget QwtPlot *QwtPlotCanvas::plot() { QWidget *w = parentWidget(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; return NULL; } //! Return parent plot widget const QwtPlot *QwtPlotCanvas::plot() const { const QWidget *w = parentWidget(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; return NULL; } /*! \brief Changing the paint attributes \param attribute Paint attribute \param on On/Off The default setting enables PaintCached and PaintPacked \sa testPaintAttribute(), drawCanvas(), drawContents(), paintCache() */ void QwtPlotCanvas::setPaintAttribute(PaintAttribute attribute, bool on) { if ( bool(d_data->paintAttributes & attribute) == on ) return; if ( on ) d_data->paintAttributes |= attribute; else d_data->paintAttributes &= ~attribute; switch(attribute) { case PaintCached: { if ( on ) { if ( d_data->cache == NULL ) d_data->cache = new QPixmap(); if ( isVisible() ) { const QRect cr = contentsRect(); *d_data->cache = QPixmap::grabWidget(this, cr.x(), cr.y(), cr.width(), cr.height() ); } } else { delete d_data->cache; d_data->cache = NULL; } break; } case PaintPacked: { /* If not visible, changing of the background mode is delayed until it becomes visible. This tries to avoid looking through the canvas when the canvas is shown the first time. */ if ( on == false || isVisible() ) QwtPlotCanvas::setSystemBackground(!on); break; } } } /*! Test wether a paint attribute is enabled \param attribute Paint attribute \return true if the attribute is enabled \sa setPaintAttribute() */ bool QwtPlotCanvas::testPaintAttribute(PaintAttribute attribute) const { return (d_data->paintAttributes & attribute) != 0; } //! Return the paint cache, might be null QPixmap *QwtPlotCanvas::paintCache() { return d_data->cache; } //! Return the paint cache, might be null const QPixmap *QwtPlotCanvas::paintCache() const { return d_data->cache; } //! Invalidate the internal paint cache void QwtPlotCanvas::invalidatePaintCache() { if ( d_data->cache ) *d_data->cache = QPixmap(); } /*! Set the focus indicator \sa FocusIndicator, focusIndicator() */ void QwtPlotCanvas::setFocusIndicator(FocusIndicator focusIndicator) { d_data->focusIndicator = focusIndicator; } /*! \return Focus indicator \sa FocusIndicator, setFocusIndicator() */ QwtPlotCanvas::FocusIndicator QwtPlotCanvas::focusIndicator() const { return d_data->focusIndicator; } /*! Hide event \param event Hide event */ void QwtPlotCanvas::hideEvent(QHideEvent *event) { QFrame::hideEvent(event); if ( d_data->paintAttributes & PaintPacked ) { // enable system background to avoid the "looking through // the canvas" effect, for the next show setSystemBackground(true); } } /*! Paint event \param event Paint event */ void QwtPlotCanvas::paintEvent(QPaintEvent *event) { #if QT_VERSION >= 0x040000 QPainter painter(this); if ( !contentsRect().contains( event->rect() ) ) { painter.save(); painter.setClipRegion( event->region() & frameRect() ); drawFrame( &painter ); painter.restore(); } painter.setClipRegion(event->region() & contentsRect()); drawContents( &painter ); #else // QT_VERSION < 0x040000 QFrame::paintEvent(event); #endif if ( d_data->paintAttributes & PaintPacked ) setSystemBackground(false); } /*! Redraw the canvas, and focus rect \param painter Painter */ void QwtPlotCanvas::drawContents(QPainter *painter) { if ( d_data->paintAttributes & PaintCached && d_data->cache && d_data->cache->size() == contentsRect().size() ) { painter->drawPixmap(contentsRect().topLeft(), *d_data->cache); } else { QwtPlot *plot = ((QwtPlot *)parent()); const bool doAutoReplot = plot->autoReplot(); plot->setAutoReplot(false); drawCanvas(painter); plot->setAutoReplot(doAutoReplot); } if ( hasFocus() && focusIndicator() == CanvasFocusIndicator ) drawFocusIndicator(painter); } /*! Draw the the canvas Paints all plot items to the contentsRect(), using QwtPlot::drawCanvas and updates the paint cache. \param painter Painter \sa QwtPlot::drawCanvas(), setPaintAttributes(), testPaintAttributes() */ void QwtPlotCanvas::drawCanvas(QPainter *painter) { if ( !contentsRect().isValid() ) return; QBrush bgBrush; #if QT_VERSION >= 0x040000 bgBrush = palette().brush(backgroundRole()); #else QColorGroup::ColorRole role = QPalette::backgroundRoleFromMode( backgroundMode() ); bgBrush = colorGroup().brush( role ); #endif if ( d_data->paintAttributes & PaintCached && d_data->cache ) { *d_data->cache = QPixmap(contentsRect().size()); #ifdef Q_WS_X11 #if QT_VERSION >= 0x040000 if ( d_data->cache->x11Info().screen() != x11Info().screen() ) d_data->cache->x11SetScreen(x11Info().screen()); #else if ( d_data->cache->x11Screen() != x11Screen() ) d_data->cache->x11SetScreen(x11Screen()); #endif #endif if ( d_data->paintAttributes & PaintPacked ) { QPainter bgPainter(d_data->cache); bgPainter.setPen(Qt::NoPen); bgPainter.setBrush(bgBrush); bgPainter.drawRect(d_data->cache->rect()); } else d_data->cache->fill(this, d_data->cache->rect().topLeft()); QPainter cachePainter(d_data->cache); cachePainter.translate(-contentsRect().x(), -contentsRect().y()); ((QwtPlot *)parent())->drawCanvas(&cachePainter); cachePainter.end(); painter->drawPixmap(contentsRect(), *d_data->cache); } else { #if QT_VERSION >= 0x040000 if ( d_data->paintAttributes & PaintPacked ) #endif { painter->save(); painter->setPen(Qt::NoPen); painter->setBrush(bgBrush); painter->drawRect(contentsRect()); painter->restore(); } ((QwtPlot *)parent())->drawCanvas(painter); } } /*! Draw the focus indication \param painter Painter */ void QwtPlotCanvas::drawFocusIndicator(QPainter *painter) { const int margin = 1; QRect focusRect = contentsRect(); focusRect.setRect(focusRect.x() + margin, focusRect.y() + margin, focusRect.width() - 2 * margin, focusRect.height() - 2 * margin); QwtPainter::drawFocusRect(painter, this, focusRect); } void QwtPlotCanvas::setSystemBackground(bool on) { #if QT_VERSION < 0x040000 if ( backgroundMode() == Qt::NoBackground ) { if ( on ) setBackgroundMode(Qt::PaletteBackground); } else { if ( !on ) setBackgroundMode(Qt::NoBackground); } #else if ( testAttribute(Qt::WA_NoSystemBackground) == on ) setAttribute(Qt::WA_NoSystemBackground, !on); #endif } /*! Invalidate the paint cache and repaint the canvas \sa invalidatePaintCache() */ void QwtPlotCanvas::replot() { invalidatePaintCache(); /* In case of cached or packed painting the canvas is repainted completely and doesn't need to be erased. */ const bool erase = !testPaintAttribute(QwtPlotCanvas::PaintPacked) && !testPaintAttribute(QwtPlotCanvas::PaintCached); #if QT_VERSION >= 0x040000 const bool noBackgroundMode = testAttribute(Qt::WA_NoBackground); if ( !erase && !noBackgroundMode ) setAttribute(Qt::WA_NoBackground, true); repaint(contentsRect()); if ( !erase && !noBackgroundMode ) setAttribute(Qt::WA_NoBackground, false); #else repaint(contentsRect(), erase); #endif } qwt5-5.2.3/src/qwt_arrow_button.h0000644000175000017500000000265112052741123016340 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ARROW_BUTTON_H #define QWT_ARROW_BUTTON_H #include #include "qwt_global.h" /*! \brief Arrow Button A push button with one or more filled triangles on its front. An Arrow button can have 1 to 3 arrows in a row, pointing up, down, left or right. */ class QWT_EXPORT QwtArrowButton : public QPushButton { public: explicit QwtArrowButton (int num, Qt::ArrowType, QWidget *parent = NULL); virtual ~QwtArrowButton(); Qt::ArrowType arrowType() const; int num() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; protected: #if QT_VERSION >= 0x040000 virtual void paintEvent(QPaintEvent *event); #endif virtual void drawButtonLabel(QPainter *p); virtual void drawArrow(QPainter *, const QRect &, Qt::ArrowType) const; virtual QRect labelRect() const; virtual QSize arrowSize(Qt::ArrowType, const QSize &boundingSize) const; virtual void keyPressEvent(QKeyEvent *); private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_knob.h0000644000175000017500000000545212052741123014546 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_KNOB_H #define QWT_KNOB_H #include "qwt_global.h" #include "qwt_abstract_slider.h" #include "qwt_abstract_scale.h" class QwtRoundScaleDraw; /*! \brief The Knob Widget The QwtKnob widget imitates look and behaviour of a volume knob on a radio. It contains a scale around the knob which is set up automatically or can be configured manually (see QwtAbstractScale). Automatic scrolling is enabled when the user presses a mouse button on the scale. For a description of signals, slots and other members, see QwtAbstractSlider. \image html knob.png \sa QwtAbstractSlider and QwtAbstractScale for the descriptions of the inherited members. */ class QWT_EXPORT QwtKnob : public QwtAbstractSlider, public QwtAbstractScale { Q_OBJECT Q_ENUMS (Symbol) Q_PROPERTY( int knobWidth READ knobWidth WRITE setKnobWidth ) Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth ) Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle ) Q_PROPERTY( Symbol symbol READ symbol WRITE setSymbol ) public: /*! Symbol \sa QwtKnob::QwtKnob() */ enum Symbol { Line, Dot }; explicit QwtKnob(QWidget* parent = NULL); #if QT_VERSION < 0x040000 explicit QwtKnob(QWidget* parent, const char *name); #endif virtual ~QwtKnob(); void setKnobWidth(int w); int knobWidth() const; void setTotalAngle (double angle); double totalAngle() const; void setBorderWidth(int bw); int borderWidth() const; void setSymbol(Symbol); Symbol symbol() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setScaleDraw(QwtRoundScaleDraw *); const QwtRoundScaleDraw *scaleDraw() const; QwtRoundScaleDraw *scaleDraw(); protected: virtual void paintEvent(QPaintEvent *e); virtual void resizeEvent(QResizeEvent *e); void draw(QPainter *p, const QRect& ur); void drawKnob(QPainter *p, const QRect &r); void drawMarker(QPainter *p, double arc, const QColor &c); private: void initKnob(); void layoutKnob( bool update = true ); double getValue(const QPoint &p); void getScrollMode( const QPoint &p, int &scrollMode, int &direction ); void recalcAngle(); virtual void valueChange(); virtual void rangeChange(); virtual void scaleChange(); virtual void fontChange(const QFont &oldFont); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt.h0000644000175000017500000000100112052741123013517 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_H #define QWT_H #include "qwt_global.h" /*! Some constants for use within Qwt. */ namespace Qwt { }; #endif qwt5-5.2.3/src/qwt_text_label.cpp0000644000175000017500000001545012052741126016275 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include "qwt_text.h" #include "qwt_painter.h" #include "qwt_text_label.h" class QwtTextLabel::PrivateData { public: PrivateData(): indent(4), margin(0) { } int indent; int margin; QwtText text; }; /*! Constructs an empty label. \param parent Parent widget */ QwtTextLabel::QwtTextLabel(QWidget *parent): QFrame(parent) { init(); } #if QT_VERSION < 0x040000 /*! Constructs an empty label. \param parent Parent widget \param name Object name */ QwtTextLabel::QwtTextLabel(QWidget *parent, const char *name): QFrame(parent, name) { init(); } #endif /*! Constructs a label that displays the text, text \param parent Parent widget \param text Text */ QwtTextLabel::QwtTextLabel(const QwtText &text, QWidget *parent): QFrame(parent) { init(); d_data->text = text; } //! Destructor QwtTextLabel::~QwtTextLabel() { delete d_data; } void QwtTextLabel::init() { d_data = new PrivateData(); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); } /*! Change the label's text, keeping all other QwtText attributes \param text New text \param textFormat Format of text \sa QwtText */ void QwtTextLabel::setText(const QString &text, QwtText::TextFormat textFormat) { d_data->text.setText(text, textFormat); update(); updateGeometry(); } /*! Change the label's text \param text New text */ void QwtTextLabel::setText(const QwtText &text) { d_data->text = text; update(); updateGeometry(); } //! Return the text const QwtText &QwtTextLabel::text() const { return d_data->text; } //! Clear the text and all QwtText attributes void QwtTextLabel::clear() { d_data->text = QwtText(); update(); updateGeometry(); } //! Return label's text indent in pixels int QwtTextLabel::indent() const { return d_data->indent; } /*! Set label's text indent in pixels \param indent Indentation in pixels */ void QwtTextLabel::setIndent(int indent) { if ( indent < 0 ) indent = 0; d_data->indent = indent; update(); updateGeometry(); } //! Return label's text indent in pixels int QwtTextLabel::margin() const { return d_data->margin; } /*! Set label's margin in pixels \param margin Margin in pixels */ void QwtTextLabel::setMargin(int margin) { d_data->margin = margin; update(); updateGeometry(); } //! Return label's margin in pixels QSize QwtTextLabel::sizeHint() const { return minimumSizeHint(); } //! Return a minimum size hint QSize QwtTextLabel::minimumSizeHint() const { QSize sz = d_data->text.textSize(font()); int mw = 2 * (frameWidth() + d_data->margin); int mh = mw; int indent = d_data->indent; if ( indent <= 0 ) indent = defaultIndent(); if ( indent > 0 ) { const int align = d_data->text.renderFlags(); if ( align & Qt::AlignLeft || align & Qt::AlignRight ) mw += d_data->indent; else if ( align & Qt::AlignTop || align & Qt::AlignBottom ) mh += d_data->indent; } sz += QSize(mw, mh); return sz; } /*! Returns the preferred height for this widget, given the width. \param width Width */ int QwtTextLabel::heightForWidth(int width) const { const int renderFlags = d_data->text.renderFlags(); int indent = d_data->indent; if ( indent <= 0 ) indent = defaultIndent(); width -= 2 * frameWidth(); if ( renderFlags & Qt::AlignLeft || renderFlags & Qt::AlignRight ) width -= indent; int height = d_data->text.heightForWidth(width, font()); if ( renderFlags & Qt::AlignTop || renderFlags & Qt::AlignBottom ) height += indent; height += 2 * frameWidth(); return height; } /*! Qt paint event \param event Paint event */ void QwtTextLabel::paintEvent(QPaintEvent *event) { #if QT_VERSION >= 0x040000 QPainter painter(this); if ( !contentsRect().contains( event->rect() ) ) { painter.save(); painter.setClipRegion( event->region() & frameRect() ); drawFrame( &painter ); painter.restore(); } painter.setClipRegion(event->region() & contentsRect()); drawContents( &painter ); #else // QT_VERSION < 0x040000 QFrame::paintEvent(event); #endif } //! Redraw the text and focus indicator void QwtTextLabel::drawContents(QPainter *painter) { const QRect r = textRect(); if ( r.isEmpty() ) return; painter->setFont(font()); #if QT_VERSION < 0x040000 painter->setPen(palette().color(QPalette::Active, QColorGroup::Text)); #else painter->setPen(palette().color(QPalette::Active, QPalette::Text)); #endif drawText(painter, r); if ( hasFocus() ) { const int margin = 2; QRect focusRect = contentsRect(); focusRect.setRect(focusRect.x() + margin, focusRect.y() + margin, focusRect.width() - 2 * margin - 2, focusRect.height() - 2 * margin - 2); QwtPainter::drawFocusRect(painter, this, focusRect); } } //! Redraw the text void QwtTextLabel::drawText(QPainter *painter, const QRect &textRect) { d_data->text.draw(painter, textRect); } /*! Calculate the rect for the text in widget coordinates \return Text rect */ QRect QwtTextLabel::textRect() const { QRect r = contentsRect(); if ( !r.isEmpty() && d_data->margin > 0 ) { r.setRect(r.x() + d_data->margin, r.y() + d_data->margin, r.width() - 2 * d_data->margin, r.height() - 2 * d_data->margin ); } if ( !r.isEmpty() ) { int indent = d_data->indent; if ( indent <= 0 ) indent = defaultIndent(); if ( indent > 0 ) { const int renderFlags = d_data->text.renderFlags(); if ( renderFlags & Qt::AlignLeft ) r.setX(r.x() + indent); else if ( renderFlags & Qt::AlignRight ) r.setWidth(r.width() - indent); else if ( renderFlags & Qt::AlignTop ) r.setY(r.y() + indent); else if ( renderFlags & Qt::AlignBottom ) r.setHeight(r.height() - indent); } } return r; } int QwtTextLabel::defaultIndent() const { if ( frameWidth() <= 0 ) return 0; QFont fnt; if ( d_data->text.testPaintAttribute(QwtText::PaintUsingTextFont) ) fnt = d_data->text.font(); else fnt = font(); return QFontMetrics(fnt).width('x') / 2; } qwt5-5.2.3/src/qwt_plot_scaleitem.h0000644000175000017500000000536712052741123016626 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_SCALE_ITEM_H #define QWT_PLOT_SCALE_ITEM_H #include "qwt_global.h" #include "qwt_plot_item.h" #include "qwt_scale_draw.h" #if QT_VERSION < 0x040000 class QColorGroup; #else class QPalette; #endif /*! \brief A class which draws a scale inside the plot canvas QwtPlotScaleItem can be used to draw an axis inside the plot canvas. It might by synchronized to one of the axis of the plot, but can also display its own ticks and labels. It is allowed to synchronize the scale item with a disabled axis. In plots with vertical and horizontal scale items, it might be necessary to remove ticks at the intersections, by overloading updateScaleDiv(). The scale might be at a specific position (f.e 0.0) or it might be aligned to a canvas border. \par Example The following example shows how to replace the left axis, by a scale item at the x position 0.0. \verbatim QwtPlotScaleItem *scaleItem = new QwtPlotScaleItem(QwtScaleDraw::RightScale, 0.0); scaleItem->setFont(plot->axisWidget(QwtPlot::yLeft)->font()); scaleItem->attach(plot); plot->enableAxis(QwtPlot::yLeft, false); \endverbatim */ class QWT_EXPORT QwtPlotScaleItem: public QwtPlotItem { public: explicit QwtPlotScaleItem( QwtScaleDraw::Alignment = QwtScaleDraw::BottomScale, const double pos = 0.0); virtual ~QwtPlotScaleItem(); virtual int rtti() const; void setScaleDiv(const QwtScaleDiv& ); const QwtScaleDiv& scaleDiv() const; void setScaleDivFromAxis(bool on); bool isScaleDivFromAxis() const; #if QT_VERSION < 0x040000 void setColorGroup(const QColorGroup &); QColorGroup colorGroup() const; #else void setPalette(const QPalette &); QPalette palette() const; #endif void setFont(const QFont&); QFont font() const; void setScaleDraw(QwtScaleDraw *); const QwtScaleDraw *scaleDraw() const; QwtScaleDraw *scaleDraw(); void setPosition(double pos); double position() const; void setBorderDistance(int numPixels); int borderDistance() const; void setAlignment(QwtScaleDraw::Alignment); virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const; virtual void updateScaleDiv(const QwtScaleDiv&, const QwtScaleDiv&); private: void updateBorders(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_canvas.h0000644000175000017500000000567112052741123016131 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_CANVAS_H #define QWT_PLOT_CANVAS_H #include #include #include "qwt_global.h" class QwtPlot; class QPixmap; /*! \brief Canvas of a QwtPlot. \sa QwtPlot */ class QWT_EXPORT QwtPlotCanvas : public QFrame { Q_OBJECT public: /*! \brief Paint attributes - PaintCached\n Paint double buffered and reuse the content of the pixmap buffer for some spontaneous repaints that happen when a plot gets unhidden, deiconified or changes the focus. Disabling the cache will improve the performance for incremental paints (using QwtPlotCurve::draw). - PaintPacked\n Suppress system background repaints and paint it together with the canvas contents. Painting packed might avoid flickering for expensive repaints, when there is a notable gap between painting the background and the plot contents. The default setting enables PaintCached and PaintPacked \sa setPaintAttribute(), testPaintAttribute(), paintCache() */ enum PaintAttribute { PaintCached = 1, PaintPacked = 2 }; /*! \brief Focus indicator - NoFocusIndicator\n Don't paint a focus indicator - CanvasFocusIndicator\n The focus is related to the complete canvas. Paint the focus indicator using paintFocus() - ItemFocusIndicator\n The focus is related to an item (curve, point, ...) on the canvas. It is up to the application to display a focus indication using f.e. highlighting. \sa setFocusIndicator(), focusIndicator(), paintFocus() */ enum FocusIndicator { NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator }; explicit QwtPlotCanvas(QwtPlot *); virtual ~QwtPlotCanvas(); QwtPlot *plot(); const QwtPlot *plot() const; void setFocusIndicator(FocusIndicator); FocusIndicator focusIndicator() const; void setPaintAttribute(PaintAttribute, bool on = true); bool testPaintAttribute(PaintAttribute) const; QPixmap *paintCache(); const QPixmap *paintCache() const; void invalidatePaintCache(); void replot(); protected: virtual void hideEvent(QHideEvent *); virtual void paintEvent(QPaintEvent *); virtual void drawContents(QPainter *); virtual void drawFocusIndicator(QPainter *); void drawCanvas(QPainter *painter = NULL); private: void setSystemBackground(bool); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_symbol.cpp0000644000175000017500000002437712052741126015467 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include "qwt_painter.h" #include "qwt_polygon.h" #include "qwt_symbol.h" /*! Default Constructor The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'. */ QwtSymbol::QwtSymbol(): d_brush(Qt::gray), d_pen(Qt::black), d_size(0,0), d_style(QwtSymbol::NoSymbol) { } /*! \brief Constructor \param style Symbol Style \param brush brush to fill the interior \param pen outline pen \param size size */ QwtSymbol::QwtSymbol(QwtSymbol::Style style, const QBrush &brush, const QPen &pen, const QSize &size): d_brush(brush), d_pen(pen), d_size(size), d_style(style) { } //! Destructor QwtSymbol::~QwtSymbol() { } /*! Allocate and return a symbol with the same attributes \return Cloned symbol */ QwtSymbol *QwtSymbol::clone() const { QwtSymbol *other = new QwtSymbol; *other = *this; return other; } /*! \brief Specify the symbol's size If the 'h' parameter is left out or less than 0, and the 'w' parameter is greater than or equal to 0, the symbol size will be set to (w,w). \param width Width \param height Height (defaults to -1) */ void QwtSymbol::setSize(int width, int height) { if ((width >= 0) && (height < 0)) height = width; d_size = QSize(width, height); } /*! Set the symbol's size \param size Size */ void QwtSymbol::setSize(const QSize &size) { if (size.isValid()) d_size = size; } /*! \brief Assign a brush The brush is used to draw the interior of the symbol. \param brush Brush */ void QwtSymbol::setBrush(const QBrush &brush) { d_brush = brush; } /*! Assign a pen The pen is used to draw the symbol's outline. The width of non cosmetic pens is scaled according to the resolution of the paint device. \param pen Pen \sa pen(), setBrush(), QwtPainter::scaledPen() */ void QwtSymbol::setPen(const QPen &pen) { d_pen = pen; } /*! \brief Draw the symbol at a point (x,y). */ void QwtSymbol::draw(QPainter *painter, int x, int y) const { draw(painter, QPoint(x, y)); } /*! \brief Draw the symbol into a bounding rectangle. This function assumes that the painter has been initialized with brush and pen before. This allows a much more performant implementation when painting many symbols with the same brush and pen like in curves. \param painter Painter \param r Bounding rectangle */ void QwtSymbol::draw(QPainter *painter, const QRect& r) const { switch(d_style) { case QwtSymbol::Ellipse: QwtPainter::drawEllipse(painter, r); break; case QwtSymbol::Rect: QwtPainter::drawRect(painter, r); break; case QwtSymbol::Diamond: { const int w2 = r.width() / 2; const int h2 = r.height() / 2; QwtPolygon pa(4); pa.setPoint(0, r.x() + w2, r.y()); pa.setPoint(1, r.right(), r.y() + h2); pa.setPoint(2, r.x() + w2, r.bottom()); pa.setPoint(3, r.x(), r.y() + h2); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::Cross: { const int w2 = r.width() / 2; const int h2 = r.height() / 2; QwtPainter::drawLine(painter, r.x() + w2, r.y(), r.x() + w2, r.bottom()); QwtPainter::drawLine(painter, r.x(), r.y() + h2, r.right(), r.y() + h2); break; } case QwtSymbol::XCross: { QwtPainter::drawLine(painter, r.left(), r.top(), r.right(), r.bottom()); QwtPainter::drawLine(painter, r.left(), r.bottom(), r.right(), r.top()); break; } case QwtSymbol::Triangle: case QwtSymbol::UTriangle: { const int w2 = r.width() / 2; QwtPolygon pa(3); pa.setPoint(0, r.x() + w2, r.y()); pa.setPoint(1, r.right(), r.bottom()); pa.setPoint(2, r.x(), r.bottom()); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::DTriangle: { const int w2 = r.width() / 2; QwtPolygon pa(3); pa.setPoint(0, r.x(), r.y()); pa.setPoint(1, r.right(), r.y()); pa.setPoint(2, r.x() + w2, r.bottom()); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::RTriangle: { const int h2 = r.height() / 2; QwtPolygon pa(3); pa.setPoint(0, r.x(), r.y()); pa.setPoint(1, r.right(), r.y() + h2); pa.setPoint(2, r.x(), r.bottom()); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::LTriangle: { const int h2 = r.height() / 2; QwtPolygon pa(3); pa.setPoint(0, r.right(), r.y()); pa.setPoint(1, r.x(), r.y() + h2); pa.setPoint(2, r.right(), r.bottom()); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::HLine: { const int h2 = r.height() / 2; QwtPainter::drawLine(painter, r.left(), r.top() + h2, r.right(), r.top() + h2); break; } case QwtSymbol::VLine: { const int w2 = r.width() / 2; QwtPainter::drawLine(painter, r.left() + w2, r.top(), r.left() + w2, r.bottom()); break; } case QwtSymbol::Star1: { const double sqrt1_2 = 0.70710678118654752440; /* 1/sqrt(2) */ const int w2 = r.width() / 2; const int h2 = r.height() / 2; const int d1 = (int)( (double)w2 * (1.0 - sqrt1_2) ); QwtPainter::drawLine(painter, r.left() + d1, r.top() + d1, r.right() - d1, r.bottom() - d1); QwtPainter::drawLine(painter, r.left() + d1, r.bottom() - d1, r.right() - d1, r.top() + d1); QwtPainter::drawLine(painter, r.left() + w2, r.top(), r.left() + w2, r.bottom()); QwtPainter::drawLine(painter, r.left(), r.top() + h2, r.right(), r.top() + h2); break; } case QwtSymbol::Star2: { const int w = r.width(); const int side = (int)(((double)r.width() * (1.0 - 0.866025)) / 2.0); // 0.866025 = cos(30°) const int h4 = r.height() / 4; const int h2 = r.height() / 2; const int h34 = (r.height() * 3) / 4; QwtPolygon pa(12); pa.setPoint(0, r.left() + (w / 2), r.top()); pa.setPoint(1, r.right() - (side + (w - 2 * side) / 3), r.top() + h4 ); pa.setPoint(2, r.right() - side, r.top() + h4); pa.setPoint(3, r.right() - (side + (w / 2 - side) / 3), r.top() + h2 ); pa.setPoint(4, r.right() - side, r.top() + h34); pa.setPoint(5, r.right() - (side + (w - 2 * side) / 3), r.top() + h34 ); pa.setPoint(6, r.left() + (w / 2), r.bottom()); pa.setPoint(7, r.left() + (side + (w - 2 * side) / 3), r.top() + h34 ); pa.setPoint(8, r.left() + side, r.top() + h34); pa.setPoint(9, r.left() + (side + (w / 2 - side) / 3), r.top() + h2 ); pa.setPoint(10, r.left() + side, r.top() + h4); pa.setPoint(11, r.left() + (side + (w - 2 * side) / 3), r.top() + h4 ); QwtPainter::drawPolygon(painter, pa); break; } case QwtSymbol::Hexagon: { const int w2 = r.width() / 2; const int side = (int)(((double)r.width() * (1.0 - 0.866025)) / 2.0); // 0.866025 = cos(30°) const int h4 = r.height() / 4; const int h34 = (r.height() * 3) / 4; QwtPolygon pa(6); pa.setPoint(0, r.left() + w2, r.top()); pa.setPoint(1, r.right() - side, r.top() + h4); pa.setPoint(2, r.right() - side, r.top() + h34); pa.setPoint(3, r.left() + w2, r.bottom()); pa.setPoint(4, r.left() + side, r.top() + h34); pa.setPoint(5, r.left() + side, r.top() + h4); QwtPainter::drawPolygon(painter, pa); break; } default:; } } /*! \brief Draw the symbol at a specified point \param painter Painter \param pos Center of the symbol */ void QwtSymbol::draw(QPainter *painter, const QPoint &pos) const { QRect rect; rect.setSize(QwtPainter::metricsMap().screenToLayout(d_size)); rect.moveCenter(pos); painter->setBrush(d_brush); painter->setPen(QwtPainter::scaledPen(d_pen)); draw(painter, rect); } /*! \brief Specify the symbol style The following styles are defined:
NoSymbol
No Style. The symbol cannot be drawn.
Ellipse
Ellipse or circle
Rect
Rectangle
Diamond
Diamond
Triangle
Triangle pointing upwards
DTriangle
Triangle pointing downwards
UTriangle
Triangle pointing upwards
LTriangle
Triangle pointing left
RTriangle
Triangle pointing right
Cross
Cross (+)
XCross
Diagonal cross (X)
HLine
Horizontal line
VLine
Vertical line
Star1
X combined with +
Star2
Six-pointed star
Hexagon
Hexagon
\param s style */ void QwtSymbol::setStyle(QwtSymbol::Style s) { d_style = s; } //! == operator bool QwtSymbol::operator==(const QwtSymbol &other) const { return brush() == other.brush() && pen() == other.pen() && style() == other.style() && size() == other.size(); } //! != operator bool QwtSymbol::operator!=(const QwtSymbol &other) const { return !(*this == other); } qwt5-5.2.3/src/qwt_raster_data.cpp0000644000175000017500000002770012052741126016444 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_raster_data.h" class QwtRasterData::Contour3DPoint { public: inline void setPos(double x, double y) { d_x = x; d_y = y; } inline QwtDoublePoint pos() const { return QwtDoublePoint(d_x, d_y); } inline void setX(double x) { d_x = x; } inline void setY(double y) { d_y = y; } inline void setZ(double z) { d_z = z; } inline double x() const { return d_x; } inline double y() const { return d_y; } inline double z() const { return d_z; } private: double d_x; double d_y; double d_z; }; class QwtRasterData::ContourPlane { public: inline ContourPlane(double z): d_z(z) { } inline bool intersect(const Contour3DPoint vertex[3], QwtDoublePoint line[2], bool ignoreOnPlane) const; inline double z() const { return d_z; } private: inline int compare(double z) const; inline QwtDoublePoint intersection( const Contour3DPoint& p1, const Contour3DPoint &p2) const; double d_z; }; inline bool QwtRasterData::ContourPlane::intersect( const Contour3DPoint vertex[3], QwtDoublePoint line[2], bool ignoreOnPlane) const { bool found = true; // Are the vertices below (-1), on (0) or above (1) the plan ? const int eq1 = compare(vertex[0].z()); const int eq2 = compare(vertex[1].z()); const int eq3 = compare(vertex[2].z()); /* (a) All the vertices lie below the contour level. (b) Two vertices lie below and one on the contour level. (c) Two vertices lie below and one above the contour level. (d) One vertex lies below and two on the contour level. (e) One vertex lies below, one on and one above the contour level. (f) One vertex lies below and two above the contour level. (g) Three vertices lie on the contour level. (h) Two vertices lie on and one above the contour level. (i) One vertex lies on and two above the contour level. (j) All the vertices lie above the contour level. */ static const int tab[3][3][3] = { // jump table to avoid nested case statements { { 0, 0, 8 }, { 0, 2, 5 }, { 7, 6, 9 } }, { { 0, 3, 4 }, { 1, 10, 1 }, { 4, 3, 0 } }, { { 9, 6, 7 }, { 5, 2, 0 }, { 8, 0, 0 } } }; const int edgeType = tab[eq1+1][eq2+1][eq3+1]; switch (edgeType) { case 1: // d(0,0,-1), h(0,0,1) line[0] = vertex[0].pos(); line[1] = vertex[1].pos(); break; case 2: // d(-1,0,0), h(1,0,0) line[0] = vertex[1].pos(); line[1] = vertex[2].pos(); break; case 3: // d(0,-1,0), h(0,1,0) line[0] = vertex[2].pos(); line[1] = vertex[0].pos(); break; case 4: // e(0,-1,1), e(0,1,-1) line[0] = vertex[0].pos(); line[1] = intersection(vertex[1], vertex[2]); break; case 5: // e(-1,0,1), e(1,0,-1) line[0] = vertex[1].pos(); line[1] = intersection(vertex[2], vertex[0]); break; case 6: // e(-1,1,0), e(1,0,-1) line[0] = vertex[2].pos(); line[1] = intersection(vertex[0], vertex[1]); break; case 7: // c(-1,1,-1), f(1,1,-1) line[0] = intersection(vertex[0], vertex[1]); line[1] = intersection(vertex[1], vertex[2]); break; case 8: // c(-1,-1,1), f(1,1,-1) line[0] = intersection(vertex[1], vertex[2]); line[1] = intersection(vertex[2], vertex[0]); break; case 9: // f(-1,1,1), c(1,-1,-1) line[0] = intersection(vertex[2], vertex[0]); line[1] = intersection(vertex[0], vertex[1]); break; case 10: // g(0,0,0) // The CONREC algorithm has no satisfying solution for // what to do, when all vertices are on the plane. if ( ignoreOnPlane ) found = false; else { line[0] = vertex[2].pos(); line[1] = vertex[0].pos(); } break; default: found = false; } return found; } inline int QwtRasterData::ContourPlane::compare(double z) const { if (z > d_z) return 1; if (z < d_z) return -1; return 0; } inline QwtDoublePoint QwtRasterData::ContourPlane::intersection( const Contour3DPoint& p1, const Contour3DPoint &p2) const { const double h1 = p1.z() - d_z; const double h2 = p2.z() - d_z; const double x = (h2 * p1.x() - h1 * p2.x()) / (h2 - h1); const double y = (h2 * p1.y() - h1 * p2.y()) / (h2 - h1); return QwtDoublePoint(x, y); } //! Constructor QwtRasterData::QwtRasterData() { } /*! Constructor \param boundingRect Bounding rectangle \sa setBoundingRect() */ QwtRasterData::QwtRasterData(const QwtDoubleRect &boundingRect): d_boundingRect(boundingRect) { } //! Destructor QwtRasterData::~QwtRasterData() { } /*! Set the bounding rect ( == area, un plot coordinates ) \param boundingRect Bounding rectangle \sa boundingRect() */ void QwtRasterData::setBoundingRect(const QwtDoubleRect &boundingRect) { d_boundingRect = boundingRect; } /*! \return Bounding rectangle \sa boundingRect() */ QwtDoubleRect QwtRasterData::boundingRect() const { return d_boundingRect; } /*! \brief Initialize a raster Before the composition of an image QwtPlotSpectrogram calls initRaster, announcing the area and its resolution that will be requested. The default implementation does nothing, but for data sets that are stored in files, it might be good idea to reimplement initRaster, where the data is resampled and loaded into memory. \param rect Area of the raster \param raster Number of horizontal and vertical pixels \sa initRaster(), value() */ void QwtRasterData::initRaster(const QwtDoubleRect &, const QSize&) { } /*! \brief Discard a raster After the composition of an image QwtPlotSpectrogram calls discardRaster(). The default implementation does nothing, but if data has been loaded in initRaster(), it could deleted now. \sa initRaster(), value() */ void QwtRasterData::discardRaster() { } /*! \brief Find the raster of the data for an area The resolution is the number of horizontal and vertical pixels that the data can return for an area. An invalid resolution indicates that the data can return values for any detail level. The resolution will limit the size of the image that is rendered from the data. F.e. this might be important when printing a spectrogram to a A0 printer with 600 dpi. The default implementation returns an invalid resolution (size) \param rect In most implementations the resolution of the data doesn't depend on the requested rectangle. \return Resolution, as number of horizontal and vertical pixels */ QSize QwtRasterData::rasterHint(const QwtDoubleRect &) const { return QSize(); // use screen resolution } /*! Calculate contour lines An adaption of CONREC, a simple contouring algorithm. http://local.wasp.uwa.edu.au/~pbourke/papers/conrec/ */ #if QT_VERSION >= 0x040000 QwtRasterData::ContourLines QwtRasterData::contourLines( const QwtDoubleRect &rect, const QSize &raster, const QList &levels, int flags) const #else QwtRasterData::ContourLines QwtRasterData::contourLines( const QwtDoubleRect &rect, const QSize &raster, const QValueList &levels, int flags) const #endif { ContourLines contourLines; if ( levels.size() == 0 || !rect.isValid() || !raster.isValid() ) return contourLines; const double dx = rect.width() / raster.width(); const double dy = rect.height() / raster.height(); const bool ignoreOnPlane = flags & QwtRasterData::IgnoreAllVerticesOnLevel; const QwtDoubleInterval range = this->range(); bool ignoreOutOfRange = false; if ( range.isValid() ) ignoreOutOfRange = flags & IgnoreOutOfRange; ((QwtRasterData*)this)->initRaster(rect, raster); for ( int y = 0; y < raster.height() - 1; y++ ) { enum Position { Center, TopLeft, TopRight, BottomRight, BottomLeft, NumPositions }; Contour3DPoint xy[NumPositions]; for ( int x = 0; x < raster.width() - 1; x++ ) { const QwtDoublePoint pos(rect.x() + x * dx, rect.y() + y * dy); if ( x == 0 ) { xy[TopRight].setPos(pos.x(), pos.y()); xy[TopRight].setZ( value( xy[TopRight].x(), xy[TopRight].y()) ); xy[BottomRight].setPos(pos.x(), pos.y() + dy); xy[BottomRight].setZ( value(xy[BottomRight].x(), xy[BottomRight].y()) ); } xy[TopLeft] = xy[TopRight]; xy[BottomLeft] = xy[BottomRight]; xy[TopRight].setPos(pos.x() + dx, pos.y()); xy[BottomRight].setPos(pos.x() + dx, pos.y() + dy); xy[TopRight].setZ( value(xy[TopRight].x(), xy[TopRight].y()) ); xy[BottomRight].setZ( value(xy[BottomRight].x(), xy[BottomRight].y()) ); double zMin = xy[TopLeft].z(); double zMax = zMin; double zSum = zMin; for ( int i = TopRight; i <= BottomLeft; i++ ) { const double z = xy[i].z(); zSum += z; if ( z < zMin ) zMin = z; if ( z > zMax ) zMax = z; } if ( ignoreOutOfRange ) { if ( !range.contains(zMin) || !range.contains(zMax) ) continue; } if ( zMax < levels[0] || zMin > levels[levels.size() - 1] ) { continue; } xy[Center].setPos(pos.x() + 0.5 * dx, pos.y() + 0.5 * dy); xy[Center].setZ(0.25 * zSum); const int numLevels = (int)levels.size(); for (int l = 0; l < numLevels; l++) { const double level = levels[l]; if ( level < zMin || level > zMax ) continue; #if QT_VERSION >= 0x040000 QPolygonF &lines = contourLines[level]; #else QwtArray &lines = contourLines[level]; #endif const ContourPlane plane(level); QwtDoublePoint line[2]; Contour3DPoint vertex[3]; for (int m = TopLeft; m < NumPositions; m++) { vertex[0] = xy[m]; vertex[1] = xy[0]; vertex[2] = xy[m != BottomLeft ? m + 1 : TopLeft]; const bool intersects = plane.intersect(vertex, line, ignoreOnPlane); if ( intersects ) { #if QT_VERSION >= 0x040000 lines += line[0]; lines += line[1]; #else const int index = lines.size(); lines.resize(lines.size() + 2, QGArray::SpeedOptim); lines[index] = line[0]; lines[index+1] = line[1]; #endif } } } } } ((QwtRasterData*)this)->discardRaster(); return contourLines; } qwt5-5.2.3/src/qwt_plot_marker.h0000644000175000017500000000576012052741123016136 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #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 setLineStyle(), lineStyle() */ enum LineStyle { NoLine, HLine, VLine, Cross }; 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 void setLabelOrientation(Qt::Orientation); Qt::Orientation labelOrientation() const; void setSpacing(int); int spacing() const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const; virtual QwtDoubleRect boundingRect() const; protected: void drawAt(QPainter *,const QRect &, const QPoint &) const; private: void drawLabel(QPainter *, const QRect &, const QPoint &) const; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_arrow_button.cpp0000644000175000017500000002160212052741126016673 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include "qwt_math.h" #include "qwt_polygon.h" #include "qwt_arrow_button.h" static const int MaxNum = 3; static const int Margin = 2; static const int Spacing = 1; class QwtArrowButton::PrivateData { public: int num; Qt::ArrowType arrowType; }; #if QT_VERSION >= 0x040000 #include static QStyleOptionButton styleOpt(const QwtArrowButton* btn) { QStyleOptionButton option; option.init(btn); option.features = QStyleOptionButton::None; if (btn->isFlat()) option.features |= QStyleOptionButton::Flat; if (btn->menu()) option.features |= QStyleOptionButton::HasMenu; if (btn->autoDefault() || btn->isDefault()) option.features |= QStyleOptionButton::AutoDefaultButton; if (btn->isDefault()) option.features |= QStyleOptionButton::DefaultButton; if (btn->isDown()) option.state |= QStyle::State_Sunken; if (!btn->isFlat() && !btn->isDown()) option.state |= QStyle::State_Raised; return option; } #endif /*! \param num Number of arrows \param arrowType see Qt::ArowType in the Qt docs. \param parent Parent widget */ QwtArrowButton::QwtArrowButton(int num, Qt::ArrowType arrowType, QWidget *parent): QPushButton(parent) { d_data = new PrivateData; d_data->num = qwtLim(num, 1, MaxNum); d_data->arrowType = arrowType; setAutoRepeat(true); setAutoDefault(false); switch(d_data->arrowType) { case Qt::LeftArrow: case Qt::RightArrow: setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); break; default: setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); } } //! Destructor QwtArrowButton::~QwtArrowButton() { delete d_data; d_data = NULL; } /*! \brief The direction of the arrows */ Qt::ArrowType QwtArrowButton::arrowType() const { return d_data->arrowType; } /*! \brief The number of arrows */ int QwtArrowButton::num() const { return d_data->num; } /*! \return the bounding rect for the label */ QRect QwtArrowButton::labelRect() const { const int m = Margin; QRect r = rect(); r.setRect(r.x() + m, r.y() + m, r.width() - 2 * m, r.height() - 2 * m); if ( isDown() ) { int ph, pv; #if QT_VERSION < 0x040000 ph = style().pixelMetric( QStyle::PM_ButtonShiftHorizontal, this); pv = style().pixelMetric( QStyle::PM_ButtonShiftVertical, this); r.moveBy(ph, pv); #else QStyleOptionButton option = styleOpt(this); ph = style()->pixelMetric( QStyle::PM_ButtonShiftHorizontal, &option, this); pv = style()->pixelMetric( QStyle::PM_ButtonShiftVertical, &option, this); r.translate(ph, pv); #endif } return r; } #if QT_VERSION >= 0x040000 /*! Paint event handler \param event Paint event */ void QwtArrowButton::paintEvent(QPaintEvent *event) { QPushButton::paintEvent(event); QPainter painter(this); drawButtonLabel(&painter); } #endif /*! \brief Draw the button label \param painter Painter \sa The Qt Manual on QPushButton */ void QwtArrowButton::drawButtonLabel(QPainter *painter) { const bool isVertical = d_data->arrowType == Qt::UpArrow || d_data->arrowType == Qt::DownArrow; const QRect r = labelRect(); QSize boundingSize = labelRect().size(); if ( isVertical ) boundingSize.transpose(); const int w = (boundingSize.width() - (MaxNum - 1) * Spacing) / MaxNum; QSize arrow = arrowSize(Qt::RightArrow, QSize(w, boundingSize.height())); if ( isVertical ) arrow.transpose(); QRect contentsSize; // aligned rect where to paint all arrows if ( d_data->arrowType == Qt::LeftArrow || d_data->arrowType == Qt::RightArrow ) { contentsSize.setWidth(d_data->num * arrow.width() + (d_data->num - 1) * Spacing); contentsSize.setHeight(arrow.height()); } else { contentsSize.setWidth(arrow.width()); contentsSize.setHeight(d_data->num * arrow.height() + (d_data->num - 1) * Spacing); } QRect arrowRect(contentsSize); arrowRect.moveCenter(r.center()); arrowRect.setSize(arrow); painter->save(); for (int i = 0; i < d_data->num; i++) { drawArrow(painter, arrowRect, d_data->arrowType); int dx = 0; int dy = 0; if ( isVertical ) dy = arrow.height() + Spacing; else dx = arrow.width() + Spacing; #if QT_VERSION >= 0x040000 arrowRect.translate(dx, dy); #else arrowRect.moveBy(dx, dy); #endif } painter->restore(); if ( hasFocus() ) { #if QT_VERSION >= 0x040000 QStyleOptionFocusRect option; option.init(this); option.backgroundColor = palette().color(QPalette::Background); style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, painter, this); #else const QRect focusRect = style().subRect(QStyle::SR_PushButtonFocusRect, this); style().drawPrimitive(QStyle::PE_FocusRect, painter, focusRect, colorGroup()); #endif } } /*! Draw an arrow int a bounding rect \param painter Painter \param r Rectangle where to paint the arrow \param arrowType Arrow type */ void QwtArrowButton::drawArrow(QPainter *painter, const QRect &r, Qt::ArrowType arrowType) const { QwtPolygon pa(3); switch(arrowType) { case Qt::UpArrow: pa.setPoint(0, r.bottomLeft()); pa.setPoint(1, r.bottomRight()); pa.setPoint(2, r.center().x(), r.top()); break; case Qt::DownArrow: pa.setPoint(0, r.topLeft()); pa.setPoint(1, r.topRight()); pa.setPoint(2, r.center().x(), r.bottom()); break; case Qt::RightArrow: pa.setPoint(0, r.topLeft()); pa.setPoint(1, r.bottomLeft()); pa.setPoint(2, r.right(), r.center().y()); break; case Qt::LeftArrow: pa.setPoint(0, r.topRight()); pa.setPoint(1, r.bottomRight()); pa.setPoint(2, r.left(), r.center().y()); break; default: break; } painter->save(); #if QT_VERSION < 0x040000 painter->setPen(colorGroup().buttonText()); painter->setBrush(colorGroup().brush(QColorGroup::ButtonText)); #else painter->setPen(palette().color(QPalette::ButtonText)); painter->setBrush(palette().brush(QPalette::ButtonText)); #endif painter->drawPolygon(pa); painter->restore(); } /*! \return a size hint */ QSize QwtArrowButton::sizeHint() const { return minimumSizeHint(); } /*! \brief Return a minimum size hint */ QSize QwtArrowButton::minimumSizeHint() const { const QSize asz = arrowSize(Qt::RightArrow, QSize()); QSize sz( 2 * Margin + (MaxNum - 1) * Spacing + MaxNum * asz.width(), 2 * Margin + asz.height() ); if ( d_data->arrowType == Qt::UpArrow || d_data->arrowType == Qt::DownArrow ) sz.transpose(); #if QT_VERSION >= 0x040000 QStyleOption styleOption; styleOption.init(this); const QSize hsz = style()->sizeFromContents(QStyle::CT_PushButton, &styleOption, sz, this); #if QT_VERSION < 0x040300 if ( hsz.width() != 80 ) // avoid a bug in the Cleanlooks style #endif sz = hsz; #else sz = style().sizeFromContents(QStyle::CT_PushButton, this, sz); #endif return sz; } /*! Calculate the size for a arrow that fits into a rect of a given size \param arrowType Arrow type \param boundingSize Bounding size \return Size of the arrow */ QSize QwtArrowButton::arrowSize(Qt::ArrowType arrowType, const QSize &boundingSize) const { QSize bs = boundingSize; if ( arrowType == Qt::UpArrow || arrowType == Qt::DownArrow ) bs.transpose(); const int MinLen = 2; const QSize sz = bs.expandedTo( QSize(MinLen, 2 * MinLen - 1)); // minimum int w = sz.width(); int h = 2 * w - 1; if ( h > sz.height() ) { h = sz.height(); w = (h + 1) / 2; } QSize arrSize(w, h); if ( arrowType == Qt::UpArrow || arrowType == Qt::DownArrow ) arrSize.transpose(); return arrSize; } /*! \brief autoRepeat for the space keys */ void QwtArrowButton::keyPressEvent(QKeyEvent *e) { if ( e->isAutoRepeat() && e->key() == Qt::Key_Space ) emit clicked(); QPushButton::keyPressEvent(e); } qwt5-5.2.3/src/qwt_abstract_slider.h0000644000175000017500000001264712052741123016766 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ABSTRACT_SLIDER_H #define QWT_ABSTRACT_SLIDER_H #include #include "qwt_global.h" #include "qwt_double_range.h" /*! \brief An abstract base class for slider widgets QwtAbstractSlider is a base class for slider widgets. It handles mouse events and updates the slider's value accordingly. Derived classes only have to implement the getValue() and getScrollMode() members, and should react to a valueChange(), which normally requires repainting. */ class QWT_EXPORT QwtAbstractSlider : public QWidget, public QwtDoubleRange { Q_OBJECT Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly ) Q_PROPERTY( bool valid READ isValid WRITE setValid ) Q_PROPERTY( double mass READ mass WRITE setMass ) #ifndef Q_MOC_RUN // Qt3 moc #define QWT_PROPERTY Q_PROPERTY Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation ) #else // Qt4 moc // MOC_SKIP_BEGIN Q_PROPERTY( Qt::Orientation orientation READ orientation WRITE setOrientation ) // MOC_SKIP_END #endif public: /*! Scroll mode \sa getScrollMode() */ enum ScrollMode { ScrNone, ScrMouse, ScrTimer, ScrDirect, ScrPage }; explicit QwtAbstractSlider(Qt::Orientation, QWidget *parent = NULL); virtual ~QwtAbstractSlider(); void setUpdateTime(int t); void stopMoving(); void setTracking(bool enable); virtual void setMass(double val); virtual double mass() const; #if QT_VERSION >= 0x040000 virtual void setOrientation(Qt::Orientation o); Qt::Orientation orientation() const; #else virtual void setOrientation(Orientation o); Orientation orientation() const; #endif bool isReadOnly() const; /* Wrappers for QwtDblRange::isValid/QwtDblRange::setValid made to be available as Q_PROPERTY in the designer. */ /*! \sa QwtDblRange::isValid() */ bool isValid() const { return QwtDoubleRange::isValid(); } /*! \param valid true/false \sa QwtDblRange::isValid() */ void setValid(bool valid) { QwtDoubleRange::setValid(valid); } public slots: virtual void setValue(double val); virtual void fitValue(double val); virtual void incValue(int steps); virtual void setReadOnly(bool); signals: /*! \brief Notify a change of value. In the default setting (tracking enabled), this signal will be emitted every time the value changes ( see setTracking() ). \param value new value */ void valueChanged(double value); /*! This signal is emitted when the user presses the movable part of the slider (start ScrMouse Mode). */ void sliderPressed(); /*! This signal is emitted when the user releases the movable part of the slider. */ void sliderReleased(); /*! This signal is emitted when the user moves the slider with the mouse. \param value new value */ void sliderMoved(double value); protected: virtual void setPosition(const QPoint &); virtual void valueChange(); virtual void timerEvent(QTimerEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void wheelEvent(QWheelEvent *e); /*! \brief Determine the value corresponding to a specified poind This is an abstract virtual function which is called when the user presses or releases a mouse button or moves the mouse. It has to be implemented by the derived class. \param p point */ virtual double getValue(const QPoint & p) = 0; /*! \brief Determine what to do when the user presses a mouse button. This function is abstract and has to be implemented by derived classes. It is called on a mousePress event. The derived class can determine what should happen next in dependence of the position where the mouse was pressed by returning scrolling mode and direction. QwtAbstractSlider knows the following modes:
QwtAbstractSlider::ScrNone
Scrolling switched off. Don't change the value.
QwtAbstractSlider::ScrMouse
Change the value while the user keeps the button pressed and moves the mouse.
QwtAbstractSlider::ScrTimer
Automatic scrolling. Increment the value in the specified direction as long as the user keeps the button pressed.
QwtAbstractSlider::ScrPage
Automatic scrolling. Same as ScrTimer, but increment by page size.
\param p point where the mouse was pressed \retval scrollMode The scrolling mode \retval direction direction: 1, 0, or -1. */ virtual void getScrollMode( const QPoint &p, int &scrollMode, int &direction) = 0; void setMouseOffset(double); double mouseOffset() const; int scrollMode() const; private: void buttonReleased(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_event_pattern.cpp0000644000175000017500000001556512052741126017037 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include "qwt_event_pattern.h" /*! Constructor \sa MousePatternCode, KeyPatternCode */ QwtEventPattern::QwtEventPattern(): d_mousePattern(MousePatternCount), d_keyPattern(KeyPatternCount) { initKeyPattern(); initMousePattern(3); } //! Destructor QwtEventPattern::~QwtEventPattern() { } /*! Set default mouse patterns, depending on the number of mouse buttons \param numButtons Number of mouse buttons ( <= 3 ) \sa MousePatternCode */ void QwtEventPattern::initMousePattern(int numButtons) { #if QT_VERSION < 0x040000 const int altButton = Qt::AltButton; const int controlButton = Qt::ControlButton; const int shiftButton = Qt::ShiftButton; #else const int altButton = Qt::AltModifier; const int controlButton = Qt::ControlModifier; const int shiftButton = Qt::ShiftModifier; #endif d_mousePattern.resize(MousePatternCount); switch(numButtons) { case 1: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::LeftButton, controlButton); setMousePattern(MouseSelect3, Qt::LeftButton, altButton); break; } case 2: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::RightButton); setMousePattern(MouseSelect3, Qt::LeftButton, altButton); break; } default: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::RightButton); setMousePattern(MouseSelect3, Qt::MidButton); } } for ( int i = 0; i < 3; i++ ) { setMousePattern(MouseSelect4 + i, d_mousePattern[MouseSelect1 + i].button, d_mousePattern[MouseSelect1 + i].state | shiftButton); } } /*! Set default mouse patterns. \sa KeyPatternCode */ void QwtEventPattern::initKeyPattern() { d_keyPattern.resize(KeyPatternCount); setKeyPattern(KeySelect1, Qt::Key_Return); setKeyPattern(KeySelect2, Qt::Key_Space); setKeyPattern(KeyAbort, Qt::Key_Escape); setKeyPattern(KeyLeft, Qt::Key_Left); setKeyPattern(KeyRight, Qt::Key_Right); setKeyPattern(KeyUp, Qt::Key_Up); setKeyPattern(KeyDown, Qt::Key_Down); setKeyPattern(KeyRedo, Qt::Key_Plus); setKeyPattern(KeyUndo, Qt::Key_Minus); setKeyPattern(KeyHome, Qt::Key_Escape); } /*! Change one mouse pattern \param pattern Index of the pattern \param button Button \param state State \sa QMouseEvent */ void QwtEventPattern::setMousePattern(uint pattern, int button, int state) { if ( pattern < (uint)d_mousePattern.count() ) { d_mousePattern[int(pattern)].button = button; d_mousePattern[int(pattern)].state = state; } } /*! Change one key pattern \param pattern Index of the pattern \param key Key \param state State \sa QKeyEvent */ void QwtEventPattern::setKeyPattern(uint pattern, int key, int state) { if ( pattern < (uint)d_keyPattern.count() ) { d_keyPattern[int(pattern)].key = key; d_keyPattern[int(pattern)].state = state; } } //! Change the mouse event patterns void QwtEventPattern::setMousePattern(const QwtArray &pattern) { d_mousePattern = pattern; } //! Change the key event patterns void QwtEventPattern::setKeyPattern(const QwtArray &pattern) { d_keyPattern = pattern; } //! Return mouse patterns const QwtArray & QwtEventPattern::mousePattern() const { return d_mousePattern; } //! Return key patterns const QwtArray & QwtEventPattern::keyPattern() const { return d_keyPattern; } //! Return ,ouse patterns QwtArray &QwtEventPattern::mousePattern() { return d_mousePattern; } //! Return Key patterns QwtArray &QwtEventPattern::keyPattern() { return d_keyPattern; } /*! \brief Compare a mouse event with an event pattern. A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set. \param pattern Index of the event pattern \param e Mouse event \return true if matches \sa keyMatch() */ bool QwtEventPattern::mouseMatch(uint pattern, const QMouseEvent *e) const { bool ok = false; if ( e && pattern < (uint)d_mousePattern.count() ) ok = mouseMatch(d_mousePattern[int(pattern)], e); return ok; } /*! \brief Compare a mouse event with an event pattern. A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set. \param pattern Mouse event pattern \param e Mouse event \return true if matches \sa keyMatch() */ bool QwtEventPattern::mouseMatch(const MousePattern &pattern, const QMouseEvent *e) const { if ( e->button() != pattern.button ) return false; const bool matched = #if QT_VERSION < 0x040000 (e->state() & Qt::KeyButtonMask) == (pattern.state & Qt::KeyButtonMask); #else (e->modifiers() & Qt::KeyboardModifierMask) == (int)(pattern.state & Qt::KeyboardModifierMask); #endif return matched; } /*! \brief Compare a key event with an event pattern. A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set. \param pattern Index of the event pattern \param e Key event \return true if matches \sa mouseMatch() */ bool QwtEventPattern::keyMatch(uint pattern, const QKeyEvent *e) const { bool ok = false; if ( e && pattern < (uint)d_keyPattern.count() ) ok = keyMatch(d_keyPattern[int(pattern)], e); return ok; } /*! \brief Compare a key event with an event pattern. A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set. \param pattern Key event pattern \param e Key event \return true if matches \sa mouseMatch() */ bool QwtEventPattern::keyMatch( const KeyPattern &pattern, const QKeyEvent *e) const { if ( e->key() != pattern.key) return false; const bool matched = #if QT_VERSION < 0x040000 (e->state() & Qt::KeyButtonMask) == (pattern.state & Qt::KeyButtonMask); #else (e->modifiers() & Qt::KeyboardModifierMask) == (int)(pattern.state & Qt::KeyboardModifierMask); #endif return matched; } qwt5-5.2.3/src/qwt_plot.h0000644000175000017500000002105412052741123014567 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_H #define QWT_PLOT_H #include #include "qwt_global.h" #include "qwt_array.h" #include "qwt_text.h" #include "qwt_plot_dict.h" #include "qwt_scale_map.h" #include "qwt_plot_printfilter.h" class QwtPlotLayout; class QwtLegend; class QwtScaleWidget; class QwtScaleEngine; class QwtScaleDiv; class QwtScaleDraw; class QwtTextLabel; class QwtPlotCanvas; class QwtPlotPrintFilter; /*! \brief A 2-D plotting widget QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (QwtPlotCurve), markers (QwtPlotMarker), the grid (QwtPlotGrid), or anything else derived from QwtPlotItem. A plot can have up to four axes, with each plot item attached to an x- and a y axis. The scales at the axes can be explicitely set (QwtScaleDiv), or are calculated from the plot items, using algorithms (QwtScaleEngine) which can be configured separately for each axis. \image html plot.png \par Example The following example shows (schematically) the most simple way to use QwtPlot. By default, only the left and bottom axes are visible and their scales are computed automatically. \verbatim #include #include QwtPlot *myPlot = new QwtPlot("Two Curves", parent); // add curves QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1"); QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2"); // copy the data into the curves curve1->setData(...); curve2->setData(...); curve1->attach(myPlot); curve2->attach(myPlot); // finally, refresh the plot myPlot->replot(); \endverbatim */ class QWT_EXPORT QwtPlot: public QFrame, public QwtPlotDict { Q_OBJECT Q_PROPERTY( QString propertiesDocument READ grabProperties WRITE applyProperties ) public: /*! Axis index - yLeft\n - yRight\n - xBottom\n - xTop\n */ enum Axis { yLeft, yRight, xBottom, xTop, axisCnt }; /*! Position of the legend, relative to the canvas. - LeftLegend\n The legend will be left from the yLeft axis. - RightLegend\n The legend will be right from the yLeft axis. - BottomLegend\n The legend will be right below the xBottom axis. - TopLegend\n The legend will be between xTop axis and the title. - ExternalLegend\n External means that only the content of the legend will be handled by QwtPlot, but not its geometry. This might be interesting if an application wants to have a legend in an external window ( or on the canvas ). \note In case of ExternalLegend, the legend is not printed by print(). \sa insertLegend() */ enum LegendPosition { LeftLegend, RightLegend, BottomLegend, TopLegend, ExternalLegend }; explicit QwtPlot(QWidget * = NULL); explicit QwtPlot(const QwtText &title, QWidget *p = NULL); #if QT_VERSION < 0x040000 explicit QwtPlot(QWidget *, const char* name); #endif virtual ~QwtPlot(); void applyProperties(const QString &); QString grabProperties() const; void setAutoReplot(bool tf = true); bool autoReplot() const; void print(QPaintDevice &p, const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const; virtual void print(QPainter *, const QRect &rect, const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const; // Layout QwtPlotLayout *plotLayout(); const QwtPlotLayout *plotLayout() const; void setMargin(int margin); int margin() const; // Title void setTitle(const QString &); void setTitle(const QwtText &t); QwtText title() const; QwtTextLabel *titleLabel(); const QwtTextLabel *titleLabel() const; // Canvas QwtPlotCanvas *canvas(); const QwtPlotCanvas *canvas() const; void setCanvasBackground (const QColor &c); const QColor& canvasBackground() const; void setCanvasLineWidth(int w); int canvasLineWidth() const; virtual QwtScaleMap canvasMap(int axisId) const; double invTransform(int axisId, int pos) const; int transform(int axisId, double value) const; // Axes QwtScaleEngine *axisScaleEngine(int axisId); const QwtScaleEngine *axisScaleEngine(int axisId) const; void setAxisScaleEngine(int axisId, QwtScaleEngine *); void setAxisAutoScale(int axisId); bool axisAutoScale(int axisId) const; void enableAxis(int axisId, bool tf = true); bool axisEnabled(int axisId) const; void setAxisFont(int axisId, const QFont &f); QFont axisFont(int axisId) const; void setAxisScale(int axisId, double min, double max, double step = 0); void setAxisScaleDiv(int axisId, const QwtScaleDiv &); void setAxisScaleDraw(int axisId, QwtScaleDraw *); double axisStepSize(int axisId) const; const QwtScaleDiv *axisScaleDiv(int axisId) const; QwtScaleDiv *axisScaleDiv(int axisId); const QwtScaleDraw *axisScaleDraw(int axisId) const; QwtScaleDraw *axisScaleDraw(int axisId); const QwtScaleWidget *axisWidget(int axisId) const; QwtScaleWidget *axisWidget(int axisId); #if QT_VERSION < 0x040000 void setAxisLabelAlignment(int axisId, int); #else void setAxisLabelAlignment(int axisId, Qt::Alignment); #endif void setAxisLabelRotation(int axisId, double rotation); void setAxisTitle(int axisId, const QString &); void setAxisTitle(int axisId, const QwtText &); QwtText axisTitle(int axisId) const; void setAxisMaxMinor(int axisId, int maxMinor); int axisMaxMajor(int axisId) const; void setAxisMaxMajor(int axisId, int maxMajor); int axisMaxMinor(int axisId) const; // Legend void insertLegend(QwtLegend *, LegendPosition = QwtPlot::RightLegend, double ratio = -1.0); QwtLegend *legend(); const QwtLegend *legend() const; // Misc virtual void polish(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; virtual void updateLayout(); virtual void drawCanvas(QPainter *); void updateAxes(); virtual bool event(QEvent *); signals: /*! A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::ClickableItem mode. \param plotItem Corresponding plot item of the selected legend item \note clicks are disabled as default \sa QwtLegend::setItemMode(), QwtLegend::itemMode() */ void legendClicked(QwtPlotItem *plotItem); /*! A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::CheckableItem mode \param plotItem Corresponding plot item of the selected legend item \param on True when the legen item is checked \note clicks are disabled as default \sa QwtLegend::setItemMode(), QwtLegend::itemMode() */ void legendChecked(QwtPlotItem *plotItem, bool on); public slots: virtual void clear(); virtual void replot(); void autoRefresh(); protected slots: virtual void legendItemClicked(); virtual void legendItemChecked(bool); protected: static bool axisValid(int axisId); virtual void drawItems(QPainter *, const QRect &, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const; virtual void updateTabOrder(); virtual void resizeEvent(QResizeEvent *e); virtual void printLegendItem(QPainter *, const QWidget *, const QRect &) const; virtual void printTitle(QPainter *, const QRect &) const; virtual void printScale(QPainter *, int axisId, int startDist, int endDist, int baseDist, const QRect &) const; virtual void printCanvas(QPainter *, const QRect &boundingRect, const QRect &canvasRect, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const; virtual void printLegend(QPainter *, const QRect &) const; private: void initAxesData(); void deleteAxesData(); void updateScaleDiv(); void initPlot(const QwtText &title); class AxisData; AxisData *d_axisData[axisCnt]; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_text_engine.cpp0000644000175000017500000002455012052741126016464 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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 #include #include #include #include #include #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_text_engine.h" static QString taggedRichText(const QString &text, int flags) { QString richText = text; // By default QSimpleRichText is Qt::AlignLeft if (flags & Qt::AlignJustify) { richText.prepend(QString::fromLatin1("
")); richText.append(QString::fromLatin1("
")); } else if (flags & Qt::AlignRight) { richText.prepend(QString::fromLatin1("
")); richText.append(QString::fromLatin1("
")); } else if (flags & Qt::AlignHCenter) { richText.prepend(QString::fromLatin1("
")); richText.append(QString::fromLatin1("
")); } return richText; } #if QT_VERSION < 0x040000 #include #include class QwtRichTextDocument: public QSimpleRichText { public: QwtRichTextDocument(const QString &text, int flags, const QFont &font): QSimpleRichText(taggedRichText(text, flags), font) { } }; #else // QT_VERSION >= 0x040000 #include #include #include #if QT_VERSION < 0x040200 #include #endif class QwtRichTextDocument: public QTextDocument { public: QwtRichTextDocument(const QString &text, int flags, const QFont &font) { setUndoRedoEnabled(false); setDefaultFont(font); #if QT_VERSION >= 0x040300 setHtml(text); #else setHtml(taggedRichText(text, flags)); #endif // make sure we have a document layout (void)documentLayout(); #if QT_VERSION >= 0x040300 QTextOption option = defaultTextOption(); if ( flags & Qt::TextWordWrap ) option.setWrapMode(QTextOption::WordWrap); else option.setWrapMode(QTextOption::NoWrap); option.setAlignment((Qt::Alignment) flags); setDefaultTextOption(option); QTextFrame *root = rootFrame(); QTextFrameFormat fm = root->frameFormat(); fm.setBorder(0); fm.setMargin(0); fm.setPadding(0); fm.setBottomMargin(0); fm.setLeftMargin(0); root->setFrameFormat(fm); adjustSize(); #endif } }; #endif class QwtPlainTextEngine::PrivateData { public: int effectiveAscent(const QFont &font) const { const QString fontKey = font.key(); QMap::const_iterator it = d_ascentCache.find(fontKey); if ( it == d_ascentCache.end() ) { int ascent = findAscent(font); it = d_ascentCache.insert(fontKey, ascent); } return (*it); } private: int findAscent(const QFont &font) const { static const QString dummy("E"); static const QColor white(Qt::white); const QFontMetrics fm(font); QPixmap pm(fm.width(dummy), fm.height()); pm.fill(white); QPainter p(&pm); p.setFont(font); p.drawText(0, 0, pm.width(), pm.height(), 0, dummy); p.end(); #if QT_VERSION < 0x040000 const QImage img = pm.convertToImage(); #else const QImage img = pm.toImage(); #endif int row = 0; for ( row = 0; row < img.height(); row++ ) { const QRgb *line = (const QRgb *)img.scanLine(row); const int w = pm.width(); for ( int col = 0; col < w; col++ ) { if ( line[col] != white.rgb() ) return fm.ascent() - row + 1; } } return fm.ascent(); } mutable QMap d_ascentCache; }; //! Constructor QwtTextEngine::QwtTextEngine() { } //! Destructor QwtTextEngine::~QwtTextEngine() { } //! Constructor QwtPlainTextEngine::QwtPlainTextEngine() { d_data = new PrivateData; } //! Destructor QwtPlainTextEngine::~QwtPlainTextEngine() { delete d_data; } /*! Find the height for a given width \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \param width Width \return Calculated height */ int QwtPlainTextEngine::heightForWidth(const QFont& font, int flags, const QString& text, int width) const { const QFontMetrics fm(font); const QRect rect = fm.boundingRect( 0, 0, width, QWIDGETSIZE_MAX, flags, text); return rect.height(); } /*! Returns the size, that is needed to render text \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \return Caluclated size */ QSize QwtPlainTextEngine::textSize(const QFont &font, int flags, const QString& text) const { const QFontMetrics fm(font); const QRect rect = fm.boundingRect( 0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX, flags, text); return rect.size(); } /*! Return margins around the texts \param font Font of the text \param left Return 0 \param right Return 0 \param top Return value for the top margin \param bottom Return value for the bottom margin */ void QwtPlainTextEngine::textMargins(const QFont &font, const QString &, int &left, int &right, int &top, int &bottom) const { left = right = top = 0; const QFontMetrics fm(font); top = fm.ascent() - d_data->effectiveAscent(font); bottom = fm.descent() + 1; } /*! \brief Draw the text in a clipping rectangle A wrapper for QPainter::drawText. \param painter Painter \param rect Clipping rectangle \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered */ void QwtPlainTextEngine::draw(QPainter *painter, const QRect &rect, int flags, const QString& text) const { QwtPainter::drawText(painter, rect, flags, text); } /*! Test if a string can be rendered by this text engine. \return Always true. All texts can be rendered by QwtPlainTextEngine */ bool QwtPlainTextEngine::mightRender(const QString &) const { return true; } #ifndef QT_NO_RICHTEXT //! Constructor QwtRichTextEngine::QwtRichTextEngine() { } /*! Find the height for a given width \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \param width Width \return Calculated height */ int QwtRichTextEngine::heightForWidth(const QFont& font, int flags, const QString& text, int width) const { QwtRichTextDocument doc(text, flags, font); #if QT_VERSION < 0x040000 doc.setWidth(width); const int h = doc.height(); #else doc.setPageSize(QSize(width, QWIDGETSIZE_MAX)); const int h = qRound(doc.documentLayout()->documentSize().height()); #endif return h; } /*! Returns the size, that is needed to render text \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \return Caluclated size */ QSize QwtRichTextEngine::textSize(const QFont &font, int flags, const QString& text) const { QwtRichTextDocument doc(text, flags, font); #if QT_VERSION < 0x040000 doc.setWidth(QWIDGETSIZE_MAX); const int w = doc.widthUsed(); const int h = doc.height(); return QSize(w, h); #else // QT_VERSION >= 0x040000 #if QT_VERSION < 0x040200 /* Unfortunately offering the bounding rect calculation in the API of QTextDocument has been forgotten in Qt <= 4.1.x. It is planned to come with Qt 4.2.x. In the meantime we need a hack with a temporary QLabel, to reengineer the internal calculations. */ static int off = 0; static QLabel *label = NULL; if ( label == NULL ) { label = new QLabel; label->hide(); const char *s = "XXXXX"; label->setText(s); int w1 = label->sizeHint().width(); const QFontMetrics fm(label->font()); int w2 = fm.width(s); off = w1 - w2; } label->setFont(doc.defaultFont()); label->setText(text); int w = qwtMax(label->sizeHint().width() - off, 0); doc.setPageSize(QSize(w, QWIDGETSIZE_MAX)); int h = qRound(doc.documentLayout()->documentSize().height()); return QSize(w, h); #else // QT_VERSION >= 0x040200 #if QT_VERSION >= 0x040300 QTextOption option = doc.defaultTextOption(); if ( option.wrapMode() != QTextOption::NoWrap ) { option.setWrapMode(QTextOption::NoWrap); doc.setDefaultTextOption(option); doc.adjustSize(); } #endif return doc.size().toSize(); #endif #endif } /*! Draw the text in a clipping rectangle \param painter Painter \param rect Clipping rectangle \param flags Bitwise OR of the flags like in for QPainter::drawText \param text Text to be rendered */ void QwtRichTextEngine::draw(QPainter *painter, const QRect &rect, int flags, const QString& text) const { QwtRichTextDocument doc(text, flags, painter->font()); QwtPainter::drawSimpleRichText(painter, rect, flags, doc); } /*! Wrap text into
tags according flags \param text Text \param flags Bitwise OR of the flags like in for QPainter::drawText \return Tagged text */ QString QwtRichTextEngine::taggedText(const QString &text, int flags) const { return taggedRichText(text, flags); } /*! Test if a string can be rendered by this text engine \param text Text to be tested \return QStyleSheet::mightBeRichText(text); */ bool QwtRichTextEngine::mightRender(const QString &text) const { #if QT_VERSION < 0x040000 return QStyleSheet::mightBeRichText(text); #else return Qt::mightBeRichText(text); #endif } /*! Return margins around the texts \param left Return 0 \param right Return 0 \param top Return 0 \param bottom Return 0 */ void QwtRichTextEngine::textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const { left = right = top = bottom = 0; } #endif // !QT_NO_RICHTEXT qwt5-5.2.3/src/qwt_panner.cpp0000644000175000017500000003147412052741126015441 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include #if QT_VERSION < 0x040000 #include #endif #include "qwt_picker.h" #include "qwt_array.h" #include "qwt_panner.h" static QwtArray activePickers(QWidget *w) { QwtArray pickers; #if QT_VERSION >= 0x040000 QObjectList children = w->children(); for ( int i = 0; i < children.size(); i++ ) { QObject *obj = children[i]; if ( obj->inherits("QwtPicker") ) { QwtPicker *picker = (QwtPicker *)obj; if ( picker->isEnabled() ) pickers += picker; } } #else QObjectList *children = (QObjectList *)w->children(); if ( children ) { for ( QObjectListIterator it(*children); it.current(); ++it ) { QObject *obj = (QObject *)it.current(); if ( obj->inherits("QwtPicker") ) { QwtPicker *picker = (QwtPicker *)obj; if ( picker->isEnabled() ) { pickers.resize(pickers.size() + 1); pickers[int(pickers.size()) - 1] = picker; } } } } #endif return pickers; } class QwtPanner::PrivateData { public: PrivateData(): button(Qt::LeftButton), buttonState(Qt::NoButton), abortKey(Qt::Key_Escape), abortKeyState(Qt::NoButton), #ifndef QT_NO_CURSOR cursor(NULL), restoreCursor(NULL), hasCursor(false), #endif isEnabled(false) { #if QT_VERSION >= 0x040000 orientations = Qt::Vertical | Qt::Horizontal; #else orientations[Qt::Vertical] = true; orientations[Qt::Horizontal] = true; #endif } ~PrivateData() { #ifndef QT_NO_CURSOR delete cursor; delete restoreCursor; #endif } int button; int buttonState; int abortKey; int abortKeyState; QPoint initialPos; QPoint pos; QPixmap pixmap; #ifndef QT_NO_CURSOR QCursor *cursor; QCursor *restoreCursor; bool hasCursor; #endif bool isEnabled; #if QT_VERSION >= 0x040000 Qt::Orientations orientations; #else bool orientations[2]; #endif }; /*! Creates an panner that is enabled for the left mouse button. \param parent Parent widget to be panned */ QwtPanner::QwtPanner(QWidget *parent): QWidget(parent) { d_data = new PrivateData(); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_TransparentForMouseEvents); setAttribute(Qt::WA_NoSystemBackground); setFocusPolicy(Qt::NoFocus); #else setBackgroundMode(Qt::NoBackground); setFocusPolicy(QWidget::NoFocus); #endif hide(); setEnabled(true); } //! Destructor QwtPanner::~QwtPanner() { delete d_data; } /*! Change the mouse button The defaults are Qt::LeftButton and Qt::NoButton */ void QwtPanner::setMouseButton(int button, int buttonState) { d_data->button = button; d_data->buttonState = buttonState; } //! Get the mouse button void QwtPanner::getMouseButton(int &button, int &buttonState) const { button = d_data->button; buttonState = d_data->buttonState; } /*! Change the abort key The defaults are Qt::Key_Escape and Qt::NoButton \param key Key ( See Qt::Keycode ) \param state State */ void QwtPanner::setAbortKey(int key, int state) { d_data->abortKey = key; d_data->abortKeyState = state; } //! Get the abort key void QwtPanner::getAbortKey(int &key, int &state) const { key = d_data->abortKey; state = d_data->abortKeyState; } /*! Change the cursor, that is active while panning The default is the cursor of the parent widget. \param cursor New cursor \sa setCursor() */ #ifndef QT_NO_CURSOR void QwtPanner::setCursor(const QCursor &cursor) { d_data->cursor = new QCursor(cursor); } #endif /*! \return Cursor that is active while panning \sa setCursor() */ #ifndef QT_NO_CURSOR const QCursor QwtPanner::cursor() const { if ( d_data->cursor ) return *d_data->cursor; if ( parentWidget() ) return parentWidget()->cursor(); return QCursor(); } #endif /*! \brief En/disable the panner When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed. \param on true or false \sa isEnabled(), eventFilter() */ void QwtPanner::setEnabled(bool on) { if ( d_data->isEnabled != on ) { d_data->isEnabled = on; QWidget *w = parentWidget(); if ( w ) { if ( d_data->isEnabled ) { w->installEventFilter(this); } else { w->removeEventFilter(this); hide(); } } } } #if QT_VERSION >= 0x040000 /*! Set the orientations, where panning is enabled The default value is in both directions: Qt::Horizontal | Qt::Vertical /param o Orientation */ void QwtPanner::setOrientations(Qt::Orientations o) { d_data->orientations = o; } //! Return the orientation, where paning is enabled Qt::Orientations QwtPanner::orientations() const { return d_data->orientations; } #else void QwtPanner::enableOrientation(Qt::Orientation o, bool enable) { if ( o == Qt::Vertical || o == Qt::Horizontal ) d_data->orientations[o] = enable; } #endif /*! Return true if a orientatio is enabled \sa orientations(), setOrientations() */ bool QwtPanner::isOrientationEnabled(Qt::Orientation o) const { #if QT_VERSION >= 0x040000 return d_data->orientations & o; #else if ( o == Qt::Vertical || o == Qt::Horizontal ) return d_data->orientations[o]; return false; #endif } /*! \return true when enabled, false otherwise \sa setEnabled, eventFilter() */ bool QwtPanner::isEnabled() const { return d_data->isEnabled; } /*! \brief Paint event Repaint the grabbed pixmap on its current position and fill the empty spaces by the background of the parent widget. \param pe Paint event */ void QwtPanner::paintEvent(QPaintEvent *pe) { QPixmap pm(size()); QPainter painter(&pm); const QColor bg = #if QT_VERSION < 0x040000 parentWidget()->palette().color( QPalette::Normal, QColorGroup::Background); #else parentWidget()->palette().color( QPalette::Normal, QPalette::Background); #endif painter.setPen(Qt::NoPen); painter.setBrush(QBrush(bg)); painter.drawRect(0, 0, pm.width(), pm.height()); int dx = d_data->pos.x() - d_data->initialPos.x(); int dy = d_data->pos.y() - d_data->initialPos.y(); QRect r(0, 0, d_data->pixmap.width(), d_data->pixmap.height()); r.moveCenter(QPoint(r.center().x() + dx, r.center().y() + dy)); painter.drawPixmap(r, d_data->pixmap); painter.end(); painter.begin(this); painter.setClipRegion(pe->region()); painter.drawPixmap(0, 0, pm); } /*! \brief Event filter When isEnabled() the mouse events of the observed widget are filtered. \sa widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent() */ bool QwtPanner::eventFilter(QObject *o, QEvent *e) { if ( o == NULL || o != parentWidget() ) return false; switch(e->type()) { case QEvent::MouseButtonPress: { widgetMousePressEvent((QMouseEvent *)e); break; } case QEvent::MouseMove: { widgetMouseMoveEvent((QMouseEvent *)e); break; } case QEvent::MouseButtonRelease: { widgetMouseReleaseEvent((QMouseEvent *)e); break; } case QEvent::KeyPress: { widgetKeyPressEvent((QKeyEvent *)e); break; } case QEvent::KeyRelease: { widgetKeyReleaseEvent((QKeyEvent *)e); break; } case QEvent::Paint: { if ( isVisible() ) return true; break; } default:; } return false; } /*! Handle a mouse press event for the observed widget. \param me Mouse event \sa eventFilter(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(), */ void QwtPanner::widgetMousePressEvent(QMouseEvent *me) { if ( me->button() != d_data->button ) return; QWidget *w = parentWidget(); if ( w == NULL ) return; #if QT_VERSION < 0x040000 if ( (me->state() & Qt::KeyButtonMask) != (d_data->buttonState & Qt::KeyButtonMask) ) #else if ( (me->modifiers() & Qt::KeyboardModifierMask) != (int)(d_data->buttonState & Qt::KeyboardModifierMask) ) #endif { return; } #ifndef QT_NO_CURSOR showCursor(true); #endif d_data->initialPos = d_data->pos = me->pos(); QRect cr = parentWidget()->rect(); if ( parentWidget()->inherits("QFrame") ) { const QFrame* frame = (QFrame*)parentWidget(); cr = frame->contentsRect(); } setGeometry(cr); // We don't want to grab the picker ! QwtArray pickers = activePickers(parentWidget()); for ( int i = 0; i < (int)pickers.size(); i++ ) pickers[i]->setEnabled(false); d_data->pixmap = QPixmap::grabWidget(parentWidget(), cr.x(), cr.y(), cr.width(), cr.height()); for ( int i = 0; i < (int)pickers.size(); i++ ) pickers[i]->setEnabled(true); show(); } /*! Handle a mouse move event for the observed widget. \param me Mouse event \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent() */ void QwtPanner::widgetMouseMoveEvent(QMouseEvent *me) { if ( !isVisible() ) return; QPoint pos = me->pos(); if ( !isOrientationEnabled(Qt::Horizontal) ) pos.setX(d_data->initialPos.x()); if ( !isOrientationEnabled(Qt::Vertical) ) pos.setY(d_data->initialPos.y()); if ( pos != d_data->pos && rect().contains(pos) ) { d_data->pos = pos; update(); emit moved(d_data->pos.x() - d_data->initialPos.x(), d_data->pos.y() - d_data->initialPos.y()); } } /*! Handle a mouse release event for the observed widget. \param me Mouse event \sa eventFilter(), widgetMousePressEvent(), widgetMouseMoveEvent(), */ void QwtPanner::widgetMouseReleaseEvent(QMouseEvent *me) { if ( isVisible() ) { hide(); #ifndef QT_NO_CURSOR showCursor(false); #endif QPoint pos = me->pos(); if ( !isOrientationEnabled(Qt::Horizontal) ) pos.setX(d_data->initialPos.x()); if ( !isOrientationEnabled(Qt::Vertical) ) pos.setY(d_data->initialPos.y()); d_data->pixmap = QPixmap(); d_data->pos = pos; if ( d_data->pos != d_data->initialPos ) { emit panned(d_data->pos.x() - d_data->initialPos.x(), d_data->pos.y() - d_data->initialPos.y()); } } } /*! Handle a key press event for the observed widget. \param ke Key event \sa eventFilter(), widgetKeyReleaseEvent() */ void QwtPanner::widgetKeyPressEvent(QKeyEvent *ke) { if ( ke->key() == d_data->abortKey ) { const bool matched = #if QT_VERSION < 0x040000 (ke->state() & Qt::KeyButtonMask) == (d_data->abortKeyState & Qt::KeyButtonMask); #else (ke->modifiers() & Qt::KeyboardModifierMask) == (int)(d_data->abortKeyState & Qt::KeyboardModifierMask); #endif if ( matched ) { hide(); #ifndef QT_NO_CURSOR showCursor(false); #endif d_data->pixmap = QPixmap(); } } } /*! Handle a key release event for the observed widget. \sa eventFilter(), widgetKeyReleaseEvent() */ void QwtPanner::widgetKeyReleaseEvent(QKeyEvent *) { } #ifndef QT_NO_CURSOR void QwtPanner::showCursor(bool on) { if ( on == d_data->hasCursor ) return; QWidget *w = parentWidget(); if ( w == NULL || d_data->cursor == NULL ) return; d_data->hasCursor = on; if ( on ) { #if QT_VERSION < 0x040000 if ( w->testWState(WState_OwnCursor) ) #else if ( w->testAttribute(Qt::WA_SetCursor) ) #endif { delete d_data->restoreCursor; d_data->restoreCursor = new QCursor(w->cursor()); } w->setCursor(*d_data->cursor); } else { if ( d_data->restoreCursor ) { w->setCursor(*d_data->restoreCursor); delete d_data->restoreCursor; d_data->restoreCursor = NULL; } else w->unsetCursor(); } } #endif qwt5-5.2.3/src/qwt_math.cpp0000644000175000017500000000204612052741126015100 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include "qwt_math.h" /*! \brief Find the smallest value in an array \param array Pointer to an array \param size Array size */ double qwtGetMin(const double *array, int size) { if (size <= 0) return 0.0; double rv = array[0]; for (int i = 1; i < size; i++) rv = qwtMin(rv, array[i]); return rv; } /*! \brief Find the largest value in an array \param array Pointer to an array \param size Array size */ double qwtGetMax(const double *array, int size) { if (size <= 0) return 0.0; double rv = array[0]; for (int i = 1; i < size; i++) rv = qwtMax(rv, array[i]); return rv; } qwt5-5.2.3/src/qwt_spline.cpp0000644000175000017500000002173412052741126015446 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_spline.h" #include "qwt_math.h" #include "qwt_array.h" class QwtSpline::PrivateData { public: PrivateData(): splineType(QwtSpline::Natural) { } QwtSpline::SplineType splineType; // coefficient vectors QwtArray a; QwtArray b; QwtArray c; // control points #if QT_VERSION < 0x040000 QwtArray points; #else QPolygonF points; #endif }; #if QT_VERSION < 0x040000 static int lookup(double x, const QwtArray &values) #else static int lookup(double x, const QPolygonF &values) #endif { #if 0 //qLowerBiund/qHigherBound ??? #endif int i1; const int size = (int)values.size(); if (x <= values[0].x()) i1 = 0; else if (x >= values[size - 2].x()) i1 = size - 2; else { i1 = 0; int i2 = size - 2; int i3 = 0; while ( i2 - i1 > 1 ) { i3 = i1 + ((i2 - i1) >> 1); if (values[i3].x() > x) i2 = i3; else i1 = i3; } } return i1; } //! Constructor QwtSpline::QwtSpline() { d_data = new PrivateData; } /*! Copy constructor \param other Spline used for initilization */ QwtSpline::QwtSpline(const QwtSpline& other) { d_data = new PrivateData(*other.d_data); } /*! Assignment operator \param other Spline used for initilization */ QwtSpline &QwtSpline::operator=( const QwtSpline &other) { *d_data = *other.d_data; return *this; } //! Destructor QwtSpline::~QwtSpline() { delete d_data; } /*! Select the algorithm used for calculating the spline \param splineType Spline type \sa splineType() */ void QwtSpline::setSplineType(SplineType splineType) { d_data->splineType = splineType; } /*! \return the spline type \sa setSplineType() */ QwtSpline::SplineType QwtSpline::splineType() const { return d_data->splineType; } /*! \brief Calculate the spline coefficients Depending on the value of \a periodic, this function will determine the coefficients for a natural or a periodic spline and store them internally. \param points Points \return true if successful \warning The sequence of x (but not y) values has to be strictly monotone increasing, which means points[i].x() < points[i+1].x(). If this is not the case, the function will return false */ #if QT_VERSION < 0x040000 bool QwtSpline::setPoints(const QwtArray& points) #else bool QwtSpline::setPoints(const QPolygonF& points) #endif { const int size = points.size(); if (size <= 2) { reset(); return false; } #if QT_VERSION < 0x040000 d_data->points = points.copy(); // Qt3: deep copy #else d_data->points = points; #endif d_data->a.resize(size-1); d_data->b.resize(size-1); d_data->c.resize(size-1); bool ok; if ( d_data->splineType == Periodic ) ok = buildPeriodicSpline(points); else ok = buildNaturalSpline(points); if (!ok) reset(); return ok; } /*! Return points passed by setPoints */ #if QT_VERSION < 0x040000 QwtArray QwtSpline::points() const #else QPolygonF QwtSpline::points() const #endif { return d_data->points; } //! \return A coefficients const QwtArray &QwtSpline::coefficientsA() const { return d_data->a; } //! \return B coefficients const QwtArray &QwtSpline::coefficientsB() const { return d_data->b; } //! \return C coefficients const QwtArray &QwtSpline::coefficientsC() const { return d_data->c; } //! Free allocated memory and set size to 0 void QwtSpline::reset() { d_data->a.resize(0); d_data->b.resize(0); d_data->c.resize(0); d_data->points.resize(0); } //! True if valid bool QwtSpline::isValid() const { return d_data->a.size() > 0; } /*! Calculate the interpolated function value corresponding to a given argument x. */ double QwtSpline::value(double x) const { if (d_data->a.size() == 0) return 0.0; const int i = lookup(x, d_data->points); const double delta = x - d_data->points[i].x(); return( ( ( ( d_data->a[i] * delta) + d_data->b[i] ) * delta + d_data->c[i] ) * delta + d_data->points[i].y() ); } /*! \brief Determines the coefficients for a natural spline \return true if successful */ #if QT_VERSION < 0x040000 bool QwtSpline::buildNaturalSpline(const QwtArray &points) #else bool QwtSpline::buildNaturalSpline(const QPolygonF &points) #endif { int i; #if QT_VERSION < 0x040000 const QwtDoublePoint *p = points.data(); #else const QPointF *p = points.data(); #endif const int size = points.size(); double *a = d_data->a.data(); double *b = d_data->b.data(); double *c = d_data->c.data(); // set up tridiagonal equation system; use coefficient // vectors as temporary buffers QwtArray h(size-1); for (i = 0; i < size - 1; i++) { h[i] = p[i+1].x() - p[i].x(); if (h[i] <= 0) return false; } QwtArray d(size-1); double dy1 = (p[1].y() - p[0].y()) / h[0]; for (i = 1; i < size - 1; i++) { b[i] = c[i] = h[i]; a[i] = 2.0 * (h[i-1] + h[i]); const double dy2 = (p[i+1].y() - p[i].y()) / h[i]; d[i] = 6.0 * ( dy1 - dy2); dy1 = dy2; } // // solve it // // L-U Factorization for(i = 1; i < size - 2;i++) { c[i] /= a[i]; a[i+1] -= b[i] * c[i]; } // forward elimination QwtArray s(size); s[1] = d[1]; for ( i = 2; i < size - 1; i++) s[i] = d[i] - c[i-1] * s[i-1]; // backward elimination s[size - 2] = - s[size - 2] / a[size - 2]; for (i = size -3; i > 0; i--) s[i] = - (s[i] + b[i] * s[i+1]) / a[i]; s[size - 1] = s[0] = 0.0; // // Finally, determine the spline coefficients // for (i = 0; i < size - 1; i++) { a[i] = ( s[i+1] - s[i] ) / ( 6.0 * h[i]); b[i] = 0.5 * s[i]; c[i] = ( p[i+1].y() - p[i].y() ) / h[i] - (s[i+1] + 2.0 * s[i] ) * h[i] / 6.0; } return true; } /*! \brief Determines the coefficients for a periodic spline \return true if successful */ #if QT_VERSION < 0x040000 bool QwtSpline::buildPeriodicSpline( const QwtArray &points) #else bool QwtSpline::buildPeriodicSpline(const QPolygonF &points) #endif { int i; #if QT_VERSION < 0x040000 const QwtDoublePoint *p = points.data(); #else const QPointF *p = points.data(); #endif const int size = points.size(); double *a = d_data->a.data(); double *b = d_data->b.data(); double *c = d_data->c.data(); QwtArray d(size-1); QwtArray h(size-1); QwtArray s(size); // // setup equation system; use coefficient // vectors as temporary buffers // for (i = 0; i < size - 1; i++) { h[i] = p[i+1].x() - p[i].x(); if (h[i] <= 0.0) return false; } const int imax = size - 2; double htmp = h[imax]; double dy1 = (p[0].y() - p[imax].y()) / htmp; for (i = 0; i <= imax; i++) { b[i] = c[i] = h[i]; a[i] = 2.0 * (htmp + h[i]); const double dy2 = (p[i+1].y() - p[i].y()) / h[i]; d[i] = 6.0 * ( dy1 - dy2); dy1 = dy2; htmp = h[i]; } // // solve it // // L-U Factorization a[0] = sqrt(a[0]); c[0] = h[imax] / a[0]; double sum = 0; for( i = 0; i < imax - 1; i++) { b[i] /= a[i]; if (i > 0) c[i] = - c[i-1] * b[i-1] / a[i]; a[i+1] = sqrt( a[i+1] - qwtSqr(b[i])); sum += qwtSqr(c[i]); } b[imax-1] = (b[imax-1] - c[imax-2] * b[imax-2]) / a[imax-1]; a[imax] = sqrt(a[imax] - qwtSqr(b[imax-1]) - sum); // forward elimination s[0] = d[0] / a[0]; sum = 0; for( i = 1; i < imax; i++) { s[i] = (d[i] - b[i-1] * s[i-1]) / a[i]; sum += c[i-1] * s[i-1]; } s[imax] = (d[imax] - b[imax-1] * s[imax-1] - sum) / a[imax]; // backward elimination s[imax] = - s[imax] / a[imax]; s[imax-1] = -(s[imax-1] + b[imax-1] * s[imax]) / a[imax-1]; for (i= imax - 2; i >= 0; i--) s[i] = - (s[i] + b[i] * s[i+1] + c[i] * s[imax]) / a[i]; // // Finally, determine the spline coefficients // s[size-1] = s[0]; for ( i=0; i < size-1; i++) { a[i] = ( s[i+1] - s[i] ) / ( 6.0 * h[i]); b[i] = 0.5 * s[i]; c[i] = ( p[i+1].y() - p[i].y() ) / h[i] - (s[i+1] + 2.0 * s[i] ) * h[i] / 6.0; } return true; } qwt5-5.2.3/src/qwt_painter.h0000644000175000017500000001130212052741123015246 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PAINTER_H #define QWT_PAINTER_H #include #include #include #include "qwt_global.h" #include "qwt_layout_metrics.h" #include "qwt_polygon.h" class QPainter; class QBrush; class QColor; class QWidget; class QwtScaleMap; class QwtColorMap; class QwtDoubleInterval; #if QT_VERSION < 0x040000 class QColorGroup; class QSimpleRichText; #else class QPalette; class QTextDocument; #endif #if defined(Q_WS_X11) // Warning: QCOORD_MIN, QCOORD_MAX are wrong on X11. #define QWT_COORD_MAX 16384 #define QWT_COORD_MIN (-QWT_COORD_MAX - 1) #else #define QWT_COORD_MAX 2147483647 #define QWT_COORD_MIN -QWT_COORD_MAX - 1 #endif /*! \brief A collection of QPainter workarounds 1) Clipping to coordinate system limits (Qt3 only) On X11 pixel coordinates are stored in shorts. Qt produces overruns when mapping QCOORDS to shorts. 2) Scaling to device metrics QPainter scales fonts, line and fill patterns to the metrics of the paint device. Other values like the geometries of rects, points remain device independend. To enable a device independent widget implementation, QwtPainter adds scaling of these geometries. (Unfortunately QPainter::scale scales both types of paintings, so the objects of the first type would be scaled twice). */ class QWT_EXPORT QwtPainter { public: static void setMetricsMap(const QPaintDevice *layout, const QPaintDevice *device); static void setMetricsMap(const QwtMetricsMap &); static void resetMetricsMap(); static const QwtMetricsMap &metricsMap(); static void setDeviceClipping(bool); static bool deviceClipping(); static const QRect &deviceClipRect(); static void setClipRect(QPainter *, const QRect &); static void drawText(QPainter *, int x, int y, const QString &); static void drawText(QPainter *, const QPoint &, const QString &); static void drawText(QPainter *, int x, int y, int w, int h, int flags, const QString &); static void drawText(QPainter *, const QRect &, int flags, const QString &); #ifndef QT_NO_RICHTEXT #if QT_VERSION < 0x040000 static void drawSimpleRichText(QPainter *, const QRect &, int flags, QSimpleRichText &); #else static void drawSimpleRichText(QPainter *, const QRect &, int flags, QTextDocument &); #endif #endif static void drawRect(QPainter *, int x, int y, int w, int h); static void drawRect(QPainter *, const QRect &rect); static void fillRect(QPainter *, const QRect &, const QBrush &); static void drawEllipse(QPainter *, const QRect &); static void drawPie(QPainter *, const QRect & r, int a, int alen); static void drawLine(QPainter *, int x1, int y1, int x2, int y2); static void drawLine(QPainter *, const QPoint &p1, const QPoint &p2); static void drawPolygon(QPainter *, const QwtPolygon &pa); static void drawPolyline(QPainter *, const QwtPolygon &pa); static void drawPoint(QPainter *, int x, int y); #if QT_VERSION < 0x040000 static void drawRoundFrame(QPainter *, const QRect &, int width, const QColorGroup &cg, bool sunken); #else static void drawRoundFrame(QPainter *, const QRect &, int width, const QPalette &, bool sunken); #endif static void drawFocusRect(QPainter *, QWidget *); static void drawFocusRect(QPainter *, QWidget *, const QRect &); static void drawColorBar(QPainter *painter, const QwtColorMap &, const QwtDoubleInterval &, const QwtScaleMap &, Qt::Orientation, const QRect &); #if QT_VERSION < 0x040000 static void setSVGMode(bool on); static bool isSVGMode(); #endif static QPen scaledPen(const QPen &); private: static void drawColoredArc(QPainter *, const QRect &, int peak, int arc, int intervall, const QColor &c1, const QColor &c2); static bool d_deviceClipping; static QwtMetricsMap d_metricsMap; #if QT_VERSION < 0x040000 static bool d_SVGMode; #endif }; //! Wrapper for QPainter::drawLine() inline void QwtPainter::drawLine(QPainter *painter, const QPoint &p1, const QPoint &p2) { drawLine(painter, p1.x(), p1.y(), p2.x(), p2.y()); } /*! Returns whether device clipping is enabled. On X11 the default is enabled, otherwise it is disabled. \sa QwtPainter::setDeviceClipping() */ inline bool QwtPainter::deviceClipping() { return d_deviceClipping; } #endif qwt5-5.2.3/src/qwt_plot_spectrogram.cpp0000644000175000017500000004106612052741126017540 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include "qwt_painter.h" #include "qwt_double_interval.h" #include "qwt_scale_map.h" #include "qwt_color_map.h" #include "qwt_plot_spectrogram.h" #if QT_VERSION < 0x040000 typedef QValueVector QwtColorTable; #else typedef QVector QwtColorTable; #endif class QwtPlotSpectrogramImage: public QImage { // This class hides some Qt3/Qt4 API differences public: QwtPlotSpectrogramImage(const QSize &size, QwtColorMap::Format format): #if QT_VERSION < 0x040000 QImage(size, format == QwtColorMap::RGB ? 32 : 8) #else QImage(size, format == QwtColorMap::RGB ? QImage::Format_ARGB32 : QImage::Format_Indexed8 ) #endif { } QwtPlotSpectrogramImage(const QImage &other): QImage(other) { } void initColorTable(const QImage& other) { #if QT_VERSION < 0x040000 const unsigned int numColors = other.numColors(); setNumColors(numColors); for ( unsigned int i = 0; i < numColors; i++ ) setColor(i, other.color(i)); #else setColorTable(other.colorTable()); #endif } #if QT_VERSION < 0x040000 void setColorTable(const QwtColorTable &colorTable) { setNumColors(colorTable.size()); for ( unsigned int i = 0; i < colorTable.size(); i++ ) setColor(i, colorTable[i]); } QwtColorTable colorTable() const { QwtColorTable table(numColors()); for ( int i = 0; i < numColors(); i++ ) table[i] = color(i); return table; } #endif }; class QwtPlotSpectrogram::PrivateData { public: class DummyData: public QwtRasterData { public: virtual QwtRasterData *copy() const { return new DummyData(); } virtual double value(double, double) const { return 0.0; } virtual QwtDoubleInterval range() const { return QwtDoubleInterval(0.0, 1.0); } }; PrivateData() { data = new DummyData(); colorMap = new QwtLinearColorMap(); displayMode = ImageMode; conrecAttributes = QwtRasterData::IgnoreAllVerticesOnLevel; conrecAttributes |= QwtRasterData::IgnoreOutOfRange; } ~PrivateData() { delete data; delete colorMap; } QwtRasterData *data; QwtColorMap *colorMap; int displayMode; QwtValueList contourLevels; QPen defaultContourPen; int conrecAttributes; }; /*! Sets the following item attributes: - QwtPlotItem::AutoScale: true - QwtPlotItem::Legend: false The z value is initialized by 8.0. \param title Title \sa QwtPlotItem::setItemAttribute(), QwtPlotItem::setZ() */ QwtPlotSpectrogram::QwtPlotSpectrogram(const QString &title): QwtPlotRasterItem(title) { d_data = new PrivateData(); setItemAttribute(QwtPlotItem::AutoScale, true); setItemAttribute(QwtPlotItem::Legend, false); setZ(8.0); } //! Destructor QwtPlotSpectrogram::~QwtPlotSpectrogram() { delete d_data; } //! \return QwtPlotItem::Rtti_PlotSpectrogram int QwtPlotSpectrogram::rtti() const { return QwtPlotItem::Rtti_PlotSpectrogram; } /*! The display mode controls how the raster data will be represented. \param mode Display mode \param on On/Off The default setting enables ImageMode. \sa DisplayMode, displayMode() */ void QwtPlotSpectrogram::setDisplayMode(DisplayMode mode, bool on) { if ( on != bool(mode & d_data->displayMode) ) { if ( on ) d_data->displayMode |= mode; else d_data->displayMode &= ~mode; } itemChanged(); } /*! The display mode controls how the raster data will be represented. \param mode Display mode \return true if mode is enabled */ bool QwtPlotSpectrogram::testDisplayMode(DisplayMode mode) const { return (d_data->displayMode & mode); } /*! Change the color map Often it is useful to display the mapping between intensities and colors as an additional plot axis, showing a color bar. \param colorMap Color Map \sa colorMap(), QwtScaleWidget::setColorBarEnabled(), QwtScaleWidget::setColorMap() */ void QwtPlotSpectrogram::setColorMap(const QwtColorMap &colorMap) { delete d_data->colorMap; d_data->colorMap = colorMap.copy(); invalidateCache(); itemChanged(); } /*! \return Color Map used for mapping the intensity values to colors \sa setColorMap() */ const QwtColorMap &QwtPlotSpectrogram::colorMap() const { return *d_data->colorMap; } /*! \brief Set the default pen for the contour lines If the spectrogram has a valid default contour pen a contour line is painted using the default contour pen. Otherwise (pen.style() == Qt::NoPen) the pen is calculated for each contour level using contourPen(). \sa defaultContourPen(), contourPen() */ void QwtPlotSpectrogram::setDefaultContourPen(const QPen &pen) { if ( pen != d_data->defaultContourPen ) { d_data->defaultContourPen = pen; itemChanged(); } } /*! \return Default contour pen \sa setDefaultContourPen() */ QPen QwtPlotSpectrogram::defaultContourPen() const { return d_data->defaultContourPen; } /*! \brief Calculate the pen for a contour line The color of the pen is the color for level calculated by the color map \param level Contour level \return Pen for the contour line \note contourPen is only used if defaultContourPen().style() == Qt::NoPen \sa setDefaultContourPen(), setColorMap(), setContourLevels() */ QPen QwtPlotSpectrogram::contourPen(double level) const { const QwtDoubleInterval intensityRange = d_data->data->range(); const QColor c(d_data->colorMap->rgb(intensityRange, level)); return QPen(c); } /*! Modify an attribute of the CONREC algorithm, used to calculate the contour lines. \param attribute CONREC attribute \param on On/Off \sa testConrecAttribute(), renderContourLines(), QwtRasterData::contourLines() */ void QwtPlotSpectrogram::setConrecAttribute( QwtRasterData::ConrecAttribute attribute, bool on) { if ( bool(d_data->conrecAttributes & attribute) == on ) return; if ( on ) d_data->conrecAttributes |= attribute; else d_data->conrecAttributes &= ~attribute; itemChanged(); } /*! Test an attribute of the CONREC algorithm, used to calculate the contour lines. \param attribute CONREC attribute \return true, is enabled \sa setConrecAttribute(), renderContourLines(), QwtRasterData::contourLines() */ bool QwtPlotSpectrogram::testConrecAttribute( QwtRasterData::ConrecAttribute attribute) const { return d_data->conrecAttributes & attribute; } /*! Set the levels of the contour lines \param levels Values of the contour levels \sa contourLevels(), renderContourLines(), QwtRasterData::contourLines() \note contourLevels returns the same levels but sorted. */ void QwtPlotSpectrogram::setContourLevels(const QwtValueList &levels) { d_data->contourLevels = levels; #if QT_VERSION >= 0x040000 qSort(d_data->contourLevels); #else qHeapSort(d_data->contourLevels); #endif itemChanged(); } /*! \brief Return the levels of the contour lines. The levels are sorted in increasing order. \sa contourLevels(), renderContourLines(), QwtRasterData::contourLines() */ QwtValueList QwtPlotSpectrogram::contourLevels() const { return d_data->contourLevels; } /*! Set the data to be displayed \param data Spectrogram Data \sa data() */ void QwtPlotSpectrogram::setData(const QwtRasterData &data) { delete d_data->data; d_data->data = data.copy(); invalidateCache(); itemChanged(); } /*! \return Spectrogram data \sa setData() */ const QwtRasterData &QwtPlotSpectrogram::data() const { return *d_data->data; } /*! \return Bounding rect of the data \sa QwtRasterData::boundingRect() */ QwtDoubleRect QwtPlotSpectrogram::boundingRect() const { return d_data->data->boundingRect(); } /*! \brief Returns the recommended raster for a given rect. F.e the raster hint is used to limit the resolution of the image that is rendered. \param rect Rect for the raster hint \return data().rasterHint(rect) */ QSize QwtPlotSpectrogram::rasterHint(const QwtDoubleRect &rect) const { return d_data->data->rasterHint(rect); } /*! \brief Render an image from the data and color map. The area is translated into a rect of the paint device. For each pixel of this rect the intensity is mapped into a color. \param xMap X-Scale Map \param yMap Y-Scale Map \param area Area that should be rendered in scale coordinates. \return A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map. \sa QwtRasterData::intensity(), QwtColorMap::rgb(), QwtColorMap::colorIndex() */ QImage QwtPlotSpectrogram::renderImage( const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &area) const { if ( area.isEmpty() ) return QImage(); QRect rect = transform(xMap, yMap, area); QwtScaleMap xxMap = xMap; QwtScaleMap yyMap = yMap; const QSize res = d_data->data->rasterHint(area); if ( res.isValid() ) { /* It is useless to render an image with a higher resolution than the data offers. Of course someone will have to scale this image later into the size of the given rect, but f.e. in case of postscript this will done on the printer. */ rect.setSize(rect.size().boundedTo(res)); int px1 = rect.x(); int px2 = rect.x() + rect.width(); if ( xMap.p1() > xMap.p2() ) qSwap(px1, px2); double sx1 = area.x(); double sx2 = area.x() + area.width(); if ( xMap.s1() > xMap.s2() ) qSwap(sx1, sx2); int py1 = rect.y(); int py2 = rect.y() + rect.height(); if ( yMap.p1() > yMap.p2() ) qSwap(py1, py2); double sy1 = area.y(); double sy2 = area.y() + area.height(); if ( yMap.s1() > yMap.s2() ) qSwap(sy1, sy2); xxMap.setPaintInterval(px1, px2); xxMap.setScaleInterval(sx1, sx2); yyMap.setPaintInterval(py1, py2); yyMap.setScaleInterval(sy1, sy2); } QwtPlotSpectrogramImage image(rect.size(), d_data->colorMap->format()); const QwtDoubleInterval intensityRange = d_data->data->range(); if ( !intensityRange.isValid() ) return image; d_data->data->initRaster(area, rect.size()); if ( d_data->colorMap->format() == QwtColorMap::RGB ) { for ( int y = rect.top(); y <= rect.bottom(); y++ ) { const double ty = yyMap.invTransform(y); QRgb *line = (QRgb *)image.scanLine(y - rect.top()); for ( int x = rect.left(); x <= rect.right(); x++ ) { const double tx = xxMap.invTransform(x); *line++ = d_data->colorMap->rgb(intensityRange, d_data->data->value(tx, ty)); } } } else if ( d_data->colorMap->format() == QwtColorMap::Indexed ) { image.setColorTable(d_data->colorMap->colorTable(intensityRange)); for ( int y = rect.top(); y <= rect.bottom(); y++ ) { const double ty = yyMap.invTransform(y); unsigned char *line = image.scanLine(y - rect.top()); for ( int x = rect.left(); x <= rect.right(); x++ ) { const double tx = xxMap.invTransform(x); *line++ = d_data->colorMap->colorIndex(intensityRange, d_data->data->value(tx, ty)); } } } d_data->data->discardRaster(); // Mirror the image in case of inverted maps const bool hInvert = xxMap.p1() > xxMap.p2(); const bool vInvert = yyMap.p1() < yyMap.p2(); if ( hInvert || vInvert ) { #ifdef __GNUC__ #endif #if QT_VERSION < 0x040000 image = image.mirror(hInvert, vInvert); #else image = image.mirrored(hInvert, vInvert); #endif } return image; } /*! \brief Return the raster to be used by the CONREC contour algorithm. A larger size will improve the precisision of the CONREC algorithm, but will slow down the time that is needed to calculate the lines. The default implementation returns rect.size() / 2 bounded to data().rasterHint(). \param area Rect, where to calculate the contour lines \param rect Rect in pixel coordinates, where to paint the contour lines \return Raster to be used by the CONREC contour algorithm. \note The size will be bounded to rect.size(). \sa drawContourLines(), QwtRasterData::contourLines() */ QSize QwtPlotSpectrogram::contourRasterSize(const QwtDoubleRect &area, const QRect &rect) const { QSize raster = rect.size() / 2; const QSize rasterHint = d_data->data->rasterHint(area); if ( rasterHint.isValid() ) raster = raster.boundedTo(rasterHint); return raster; } /*! Calculate contour lines \param rect Rectangle, where to calculate the contour lines \param raster Raster, used by the CONREC algorithm \sa contourLevels(), setConrecAttribute(), QwtRasterData::contourLines() */ QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines( const QwtDoubleRect &rect, const QSize &raster) const { return d_data->data->contourLines(rect, raster, d_data->contourLevels, d_data->conrecAttributes ); } /*! Paint the contour lines \param painter Painter \param xMap Maps x-values into pixel coordinates. \param yMap Maps y-values into pixel coordinates. \param contourLines Contour lines \sa renderContourLines(), defaultContourPen(), contourPen() */ void QwtPlotSpectrogram::drawContourLines(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &contourLines) const { const int numLevels = (int)d_data->contourLevels.size(); for (int l = 0; l < numLevels; l++) { const double level = d_data->contourLevels[l]; QPen pen = defaultContourPen(); if ( pen.style() == Qt::NoPen ) pen = contourPen(level); if ( pen.style() == Qt::NoPen ) continue; painter->setPen(QwtPainter::scaledPen(pen)); #if QT_VERSION >= 0x040000 const QPolygonF &lines = contourLines[level]; #else const QwtArray &lines = contourLines[level]; #endif for ( int i = 0; i < (int)lines.size(); i += 2 ) { const QPoint p1( xMap.transform(lines[i].x()), yMap.transform(lines[i].y()) ); const QPoint p2( xMap.transform(lines[i+1].x()), yMap.transform(lines[i+1].y()) ); QwtPainter::drawLine(painter, p1, p2); } } } /*! \brief Draw the spectrogram \param painter Painter \param xMap Maps x-values into pixel coordinates. \param yMap Maps y-values into pixel coordinates. \param canvasRect Contents rect of the canvas in painter coordinates \sa setDisplayMode(), renderImage(), QwtPlotRasterItem::draw(), drawContourLines() */ void QwtPlotSpectrogram::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { if ( d_data->displayMode & ImageMode ) QwtPlotRasterItem::draw(painter, xMap, yMap, canvasRect); if ( d_data->displayMode & ContourMode ) { // Add some pixels at the borders, so that const int margin = 2; QRect rasterRect(canvasRect.x() - margin, canvasRect.y() - margin, canvasRect.width() + 2 * margin, canvasRect.height() + 2 * margin); QwtDoubleRect area = invTransform(xMap, yMap, rasterRect); const QwtDoubleRect br = boundingRect(); if ( br.isValid() ) { area &= br; if ( area.isEmpty() ) return; rasterRect = transform(xMap, yMap, area); } QSize raster = contourRasterSize(area, rasterRect); raster = raster.boundedTo(rasterRect.size()); if ( raster.isValid() ) { const QwtRasterData::ContourLines lines = renderContourLines(area, raster); drawContourLines(painter, xMap, yMap, lines); } } } qwt5-5.2.3/src/qwt_double_interval.h0000644000175000017500000001466012052741123016774 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DOUBLE_INTERVAL_H #define QWT_DOUBLE_INTERVAL_H #include "qwt_global.h" /*! \brief A class representing an interval The interval is represented by 2 doubles, the lower and the upper limit. */ class QWT_EXPORT QwtDoubleInterval { public: /*! Flag indicating if a border is included/excluded from an interval - IncludeBorders\n min/max values are inside the interval - ExcludeMinimum\n min value is not included in the interval - ExcludeMaximum\n max value is not included in the interval - ExcludeBorders\n min/max values are not included in the interval \sa setBorderMode(), testBorderMode() */ enum BorderMode { IncludeBorders = 0, ExcludeMinimum = 1, ExcludeMaximum = 2, ExcludeBorders = ExcludeMinimum | ExcludeMaximum }; QwtDoubleInterval(); QwtDoubleInterval(double minValue, double maxValue, int borderFlags = IncludeBorders); void setInterval(double minValue, double maxValue, int borderFlags = IncludeBorders); QwtDoubleInterval normalized() const; QwtDoubleInterval inverted() const; QwtDoubleInterval limited(double minValue, double maxValue) const; int operator==(const QwtDoubleInterval &) const; int operator!=(const QwtDoubleInterval &) const; void setBorderFlags(int); int borderFlags() const; double minValue() const; double maxValue() const; double width() const; void setMinValue(double); void setMaxValue(double); bool contains(double value) const; bool intersects(const QwtDoubleInterval &) const; QwtDoubleInterval intersect(const QwtDoubleInterval &) const; QwtDoubleInterval unite(const QwtDoubleInterval &) const; QwtDoubleInterval operator|(const QwtDoubleInterval &) const; QwtDoubleInterval operator&(const QwtDoubleInterval &) const; QwtDoubleInterval &operator|=(const QwtDoubleInterval &); QwtDoubleInterval &operator&=(const QwtDoubleInterval &); QwtDoubleInterval extend(double value) const; QwtDoubleInterval operator|(double) const; QwtDoubleInterval &operator|=(double); bool isValid() const; bool isNull() const; void invalidate(); QwtDoubleInterval symmetrize(double value) const; private: double d_minValue; double d_maxValue; int d_borderFlags; }; /*! \brief Default Constructor Creates an invalid interval [0.0, -1.0] \sa setInterval(), isValid() */ inline QwtDoubleInterval::QwtDoubleInterval(): d_minValue(0.0), d_maxValue(-1.0), d_borderFlags(IncludeBorders) { } /*! Constructor Build an interval with from min/max values \param minValue Minimum value \param maxValue Maximum value \param borderFlags Include/Exclude borders */ inline QwtDoubleInterval::QwtDoubleInterval( double minValue, double maxValue, int borderFlags): d_minValue(minValue), d_maxValue(maxValue), d_borderFlags(borderFlags) { } /*! Assign the limits of the interval \param minValue Minimum value \param maxValue Maximum value \param borderFlags Include/Exclude borders */ inline void QwtDoubleInterval::setInterval( double minValue, double maxValue, int borderFlags) { d_minValue = minValue; d_maxValue = maxValue; d_borderFlags = borderFlags; } /*! Change the border flags \param borderFlags Or'd BorderMode flags \sa borderFlags() */ inline void QwtDoubleInterval::setBorderFlags(int borderFlags) { d_borderFlags = borderFlags; } /*! \return Border flags \sa setBorderFlags() */ inline int QwtDoubleInterval::borderFlags() const { return d_borderFlags; } /*! Assign the lower limit of the interval \param minValue Minimum value */ inline void QwtDoubleInterval::setMinValue(double minValue) { d_minValue = minValue; } /*! Assign the upper limit of the interval \param maxValue Maximum value */ inline void QwtDoubleInterval::setMaxValue(double maxValue) { d_maxValue = maxValue; } //! \return Lower limit of the interval inline double QwtDoubleInterval::minValue() const { return d_minValue; } //! \return Upper limit of the interval inline double QwtDoubleInterval::maxValue() const { return d_maxValue; } /*! Return the width of an interval The width of invalid intervals is 0.0, otherwise the result is maxValue() - minValue(). \sa isValid() */ inline double QwtDoubleInterval::width() const { return isValid() ? (d_maxValue - d_minValue) : 0.0; } /*! Intersection of two intervals \sa intersect() */ inline QwtDoubleInterval QwtDoubleInterval::operator&( const QwtDoubleInterval &interval ) const { return intersect(interval); } /*! Union of two intervals \sa unite() */ inline QwtDoubleInterval QwtDoubleInterval::operator|( const QwtDoubleInterval &interval) const { return unite(interval); } //! Compare two intervals inline int QwtDoubleInterval::operator==(const QwtDoubleInterval &other) const { return (d_minValue == other.d_minValue) && (d_maxValue == other.d_maxValue) && (d_borderFlags == other.d_borderFlags); } //! Compare two intervals inline int QwtDoubleInterval::operator!=(const QwtDoubleInterval &other) const { return (!(*this == other)); } /*! Extend an interval \sa extend() */ inline QwtDoubleInterval QwtDoubleInterval::operator|(double value) const { return extend(value); } //! \return true, if isValid() && (minValue() >= maxValue()) inline bool QwtDoubleInterval::isNull() const { return isValid() && d_minValue >= d_maxValue; } /*! A interval is valid when minValue() <= maxValue(). In case of QwtDoubleInterval::ExcludeBorders it is true when minValue() < maxValue() */ inline bool QwtDoubleInterval::isValid() const { if ( (d_borderFlags & ExcludeBorders) == 0 ) return d_minValue <= d_maxValue; else return d_minValue < d_maxValue; } /*! Invalidate the interval The limits are set to interval [0.0, -1.0] \sa isValid() */ inline void QwtDoubleInterval::invalidate() { d_minValue = 0.0; d_maxValue = -1.0; } #endif qwt5-5.2.3/src/qwt_clipper.h0000644000175000017500000000171712052741123015253 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_CLIPPER_H #define QWT_CLIPPER_H #include "qwt_global.h" #include "qwt_array.h" #include "qwt_polygon.h" #include "qwt_double_rect.h" #include "qwt_double_interval.h" class QRect; /*! \brief Some clipping algos */ class QWT_EXPORT QwtClipper { public: static QwtPolygon clipPolygon(const QRect &, const QwtPolygon &); static QwtPolygonF clipPolygonF(const QwtDoubleRect &, const QwtPolygonF &); #if QT_VERSION >= 0x040000 static QwtArray clipCircle( const QwtDoubleRect &, const QwtDoublePoint &, double radius); #endif }; #endif qwt5-5.2.3/src/qwt_picker_machine.cpp0000644000175000017500000002232512052741126017112 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include "qwt_event_pattern.h" #include "qwt_picker_machine.h" //! Constructor QwtPickerMachine::QwtPickerMachine(): d_state(0) { } //! Destructor QwtPickerMachine::~QwtPickerMachine() { } //! Return the current state int QwtPickerMachine::state() const { return d_state; } //! Change the current state void QwtPickerMachine::setState(int state) { d_state = state; } //! Set the current state to 0. void QwtPickerMachine::reset() { setState(0); } //! Transition QwtPickerMachine::CommandList QwtPickerClickPointMachine::transition( const QwtEventPattern &eventPattern, const QEvent *e) { QwtPickerMachine::CommandList cmdList; switch(e->type()) { case QEvent::MouseButtonPress: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { cmdList += Begin; cmdList += Append; cmdList += End; } break; } case QEvent::KeyPress: { if ( eventPattern.keyMatch( QwtEventPattern::KeySelect1, (const QKeyEvent *)e) ) { cmdList += Begin; cmdList += Append; cmdList += End; } break; } default: break; } return cmdList; } //! Transition QwtPickerMachine::CommandList QwtPickerDragPointMachine::transition( const QwtEventPattern &eventPattern, const QEvent *e) { QwtPickerMachine::CommandList cmdList; switch(e->type()) { case QEvent::MouseButtonPress: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; setState(1); } } break; } case QEvent::MouseMove: case QEvent::Wheel: { if ( state() != 0 ) cmdList += Move; break; } case QEvent::MouseButtonRelease: { if ( state() != 0 ) { cmdList += End; setState(0); } break; } case QEvent::KeyPress: { if ( eventPattern.keyMatch( QwtEventPattern::KeySelect1, (const QKeyEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; setState(1); } else { cmdList += End; setState(0); } } break; } default: break; } return cmdList; } //! Transition QwtPickerMachine::CommandList QwtPickerClickRectMachine::transition( const QwtEventPattern &eventPattern, const QEvent *e) { QwtPickerMachine::CommandList cmdList; switch(e->type()) { case QEvent::MouseButtonPress: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { switch(state()) { case 0: { cmdList += Begin; cmdList += Append; setState(1); break; } case 1: { // Uh, strange we missed the MouseButtonRelease break; } default: { cmdList += End; setState(0); } } } } case QEvent::MouseMove: case QEvent::Wheel: { if ( state() != 0 ) cmdList += Move; break; } case QEvent::MouseButtonRelease: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { if ( state() == 1 ) { cmdList += Append; setState(2); } } break; } case QEvent::KeyPress: { if ( eventPattern.keyMatch( QwtEventPattern::KeySelect1, (const QKeyEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; setState(1); } else { if ( state() == 1 ) { cmdList += Append; setState(2); } else if ( state() == 2 ) { cmdList += End; setState(0); } } } break; } default: break; } return cmdList; } //! Transition QwtPickerMachine::CommandList QwtPickerDragRectMachine::transition( const QwtEventPattern &eventPattern, const QEvent *e) { QwtPickerMachine::CommandList cmdList; switch(e->type()) { case QEvent::MouseButtonPress: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; cmdList += Append; setState(2); } } break; } case QEvent::MouseMove: case QEvent::Wheel: { if ( state() != 0 ) cmdList += Move; break; } case QEvent::MouseButtonRelease: { if ( state() == 2 ) { cmdList += End; setState(0); } break; } case QEvent::KeyPress: { if ( eventPattern.keyMatch( QwtEventPattern::KeySelect1, (const QKeyEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; cmdList += Append; setState(2); } else { cmdList += End; setState(0); } } break; } default: break; } return cmdList; } //! Transition QwtPickerMachine::CommandList QwtPickerPolygonMachine::transition( const QwtEventPattern &eventPattern, const QEvent *e) { QwtPickerMachine::CommandList cmdList; switch(e->type()) { case QEvent::MouseButtonPress: { if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect1, (const QMouseEvent *)e) ) { if (state() == 0) { cmdList += Begin; cmdList += Append; cmdList += Append; setState(1); } else { cmdList += End; setState(0); } } if ( eventPattern.mouseMatch( QwtEventPattern::MouseSelect2, (const QMouseEvent *)e) ) { if (state() == 1) cmdList += Append; } break; } case QEvent::MouseMove: case QEvent::Wheel: { if ( state() != 0 ) cmdList += Move; break; } case QEvent::KeyPress: { if ( eventPattern.keyMatch( QwtEventPattern::KeySelect1, (const QKeyEvent *)e) ) { if ( state() == 0 ) { cmdList += Begin; cmdList += Append; cmdList += Append; setState(1); } else { cmdList += End; setState(0); } } else if ( eventPattern.keyMatch( QwtEventPattern::KeySelect2, (const QKeyEvent *)e) ) { if ( state() == 1 ) cmdList += Append; } break; } default: break; } return cmdList; } qwt5-5.2.3/src/qwt_analog_clock.h0000644000175000017500000000431412052741123016225 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ANALOG_CLOCK_H #define QWT_ANALOG_CLOCK_H #include #include "qwt_global.h" #include "qwt_dial.h" #include "qwt_dial_needle.h" /*! \brief An analog clock \image html analogclock.png \par Example \verbatim #include QwtAnalogClock *clock = new QwtAnalogClock(...); clock->scaleDraw()->setPenWidth(3); clock->setLineWidth(6); clock->setFrameShadow(QwtDial::Sunken); clock->setTime(); // update the clock every second QTimer *timer = new QTimer(clock); timer->connect(timer, SIGNAL(timeout()), clock, SLOT(setCurrentTime())); timer->start(1000); \endverbatim Qwt is missing a set of good looking hands. Contributions are very welcome. \note The examples/dials example shows how to use QwtAnalogClock. */ class QWT_EXPORT QwtAnalogClock: public QwtDial { Q_OBJECT public: /*! Hand type \sa setHand(), hand() */ enum Hand { SecondHand, MinuteHand, HourHand, NHands }; explicit QwtAnalogClock(QWidget* parent = NULL); #if QT_VERSION < 0x040000 explicit QwtAnalogClock(QWidget* parent, const char *name); #endif virtual ~QwtAnalogClock(); virtual void setHand(Hand, QwtDialNeedle *); const QwtDialNeedle *hand(Hand) const; QwtDialNeedle *hand(Hand); public slots: void setCurrentTime(); void setTime(const QTime & = QTime::currentTime()); protected: virtual QwtText scaleLabel(double) const; virtual void drawNeedle(QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const; virtual void drawHand(QPainter *, Hand, const QPoint &, int radius, double direction, QPalette::ColorGroup) const; private: virtual void setNeedle(QwtDialNeedle *); void initClock(); QwtDialNeedle *d_hand[NHands]; }; #endif qwt5-5.2.3/src/qwt_compass.h0000644000175000017500000000415512052741123015261 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_COMPASS_H #define QWT_COMPASS_H 1 #include #include #include "qwt_dial.h" #if defined(QWT_TEMPLATEDLL) #if defined(QT_NO_STL) || QT_VERSION < 0x040000 || QT_VERSION > 0x040001 /* Unfortunately Qt 4.0.0/Qt 4.0.1 contains uncompilable code in the STL adaptors of qmap.h. The declaration below instantiates this code resulting in compiler errors. If you really need the map to be exported, remove the condition above and fix the qmap.h */ // MOC_SKIP_BEGIN template class QWT_EXPORT QMap; // MOC_SKIP_END #endif #endif class QwtCompassRose; /*! \brief A Compass Widget QwtCompass is a widget to display and enter directions. It consists of a scale, an optional needle and rose. \image html dials1.png \note The examples/dials example shows how to use QwtCompass. */ class QWT_EXPORT QwtCompass: public QwtDial { Q_OBJECT public: explicit QwtCompass( QWidget* parent = NULL); #if QT_VERSION < 0x040000 explicit QwtCompass(QWidget* parent, const char *name); #endif virtual ~QwtCompass(); void setRose(QwtCompassRose *rose); const QwtCompassRose *rose() const; QwtCompassRose *rose(); const QMap &labelMap() const; QMap &labelMap(); void setLabelMap(const QMap &map); protected: virtual QwtText scaleLabel(double value) const; virtual void drawRose(QPainter *, const QPoint ¢er, int radius, double north, QPalette::ColorGroup) const; virtual void drawScaleContents(QPainter *, const QPoint ¢er, int radius) const; virtual void keyPressEvent(QKeyEvent *); private: void initCompass(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_rasteritem.h0000644000175000017500000000624212052741123017030 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_RASTERITEM_H #define QWT_PLOT_RASTERITEM_H #include #include #include #include "qwt_plot_item.h" /*! \brief A class, which displays raster data Raster data is a grid of pixel values, that can be represented as a QImage. It is used for many types of information like spectrograms, cartograms, geographical maps ... Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily. QwtPlotRasterItem is only implemented for images of the following formats: QImage::Format_Indexed8, QImage::Format_ARGB32. \sa QwtPlotSpectrogram */ class QWT_EXPORT QwtPlotRasterItem: public QwtPlotItem { public: /*! - NoCache\n renderImage() is called, whenever the item has to be repainted - PaintCache\n renderImage() is called, whenever the image cache is not valid, or the scales, or the size of the canvas has changed. This type of cache is only useful for improving the performance of hide/show operations. All other situations are already handled by the plot canvas cache. - ScreenCache\n The screen cache is an image in size of the screen. As long as the scales don't change the target image is scaled from the cache. This might improve the performance when resizing the plot widget, but suffers from scaling effects. The default policy is NoCache */ enum CachePolicy { NoCache, PaintCache, ScreenCache }; explicit QwtPlotRasterItem(const QString& title = QString::null); explicit QwtPlotRasterItem(const QwtText& title); virtual ~QwtPlotRasterItem(); void setAlpha(int alpha); int alpha() const; void setCachePolicy(CachePolicy); CachePolicy cachePolicy() const; void invalidateCache(); virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const; virtual QSize rasterHint(const QwtDoubleRect &) const; protected: /*! Renders an image for an area The format of the image must be QImage::Format_Indexed8, QImage::Format_RGB32 or QImage::Format_ARGB32 \param xMap Maps x-values into pixel coordinates. \param yMap Maps y-values into pixel coordinates. \param area Requested area for the image in scale coordinates */ virtual QImage renderImage(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &area ) const = 0; private: QwtPlotRasterItem( const QwtPlotRasterItem & ); QwtPlotRasterItem &operator=( const QwtPlotRasterItem & ); void init(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_round_scale_draw.h0000644000175000017500000000370712052741123017131 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ROUND_SCALE_DRAW_H #define QWT_ROUND_SCALE_DRAW_H #include #include "qwt_global.h" #include "qwt_abstract_scale_draw.h" class QPen; /*! \brief A class for drawing round scales QwtRoundScaleDraw can be used to draw round scales. The circle segment can be adjusted by QwtRoundScaleDraw::setAngleRange(). The geometry of the scale can be specified with QwtRoundScaleDraw::moveCenter() and QwtRoundScaleDraw::setRadius(). After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member. */ class QWT_EXPORT QwtRoundScaleDraw: public QwtAbstractScaleDraw { public: QwtRoundScaleDraw(); QwtRoundScaleDraw(const QwtRoundScaleDraw &); virtual ~QwtRoundScaleDraw(); QwtRoundScaleDraw &operator=(const QwtRoundScaleDraw &other); void setRadius(int radius); int radius() const; void moveCenter(int x, int y); void moveCenter(const QPoint &); QPoint center() const; void setAngleRange(double angle1, double angle2); virtual int extent(const QPen &, const QFont &) const; protected: virtual void drawTick(QPainter *p, double val, int len) const; virtual void drawBackbone(QPainter *p) const; virtual void drawLabel(QPainter *p, double val) const; private: class PrivateData; PrivateData *d_data; }; //! Move the center of the scale draw, leaving the radius unchanged inline void QwtRoundScaleDraw::moveCenter(int x, int y) { moveCenter(QPoint(x, y)); } #endif qwt5-5.2.3/src/qwt_double_rect.h0000644000175000017500000002620212052741123016100 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ /*! \file */ #ifndef QWT_DOUBLE_RECT_H #define QWT_DOUBLE_RECT_H 1 #include "qwt_global.h" #include "qwt_array.h" #if QT_VERSION >= 0x040000 #include #include #include /*! \typedef QPointF QwtDoublePoint \brief This is a typedef, see Trolltech Documentation for QPointF in QT assistant 4.x. As soon as Qt3 compatibility is dropped this typedef will disappear. */ typedef QPointF QwtDoublePoint; /*! \typedef QSizeF QwtDoubleSize \brief This is a typedef, see Trolltech Documentation for QSizeF in QT assistant 4.x. As soon as Qt3 compatibility is dropped this typedef will disappear. */ typedef QSizeF QwtDoubleSize; /*! \typedef QRectF QwtDoubleRect \brief This is a typedef, see Trolltech Documentation for QRectF in QT assistant 4.x. As soon as Qt3 compatibility is dropped this typedef will disappear. */ typedef QRectF QwtDoubleRect; #else #include #include #include /*! \brief The QwtDoublePoint class defines a point in double coordinates */ class QWT_EXPORT QwtDoublePoint { public: QwtDoublePoint(); QwtDoublePoint(double x, double y); QwtDoublePoint(const QPoint &); QPoint toPoint() const; bool isNull() const; double x() const; double y() const; double &rx(); double &ry(); void setX(double x); void setY(double y); bool operator==(const QwtDoublePoint &) const; bool operator!=(const QwtDoublePoint &) const; const QwtDoublePoint operator-() const; const QwtDoublePoint operator+(const QwtDoublePoint &) const; const QwtDoublePoint operator-(const QwtDoublePoint &) const; const QwtDoublePoint operator*(double) const; const QwtDoublePoint operator/(double) const; QwtDoublePoint &operator+=(const QwtDoublePoint &); QwtDoublePoint &operator-=(const QwtDoublePoint &); QwtDoublePoint &operator*=(double); QwtDoublePoint &operator/=(double); private: double d_x; double d_y; }; /*! The QwtDoubleSize class defines a size in double coordinates */ class QWT_EXPORT QwtDoubleSize { public: QwtDoubleSize(); QwtDoubleSize(double width, double height); QwtDoubleSize(const QSize &); bool isNull() const; bool isEmpty() const; bool isValid() const; double width() const; double height() const; void setWidth( double w ); void setHeight( double h ); void transpose(); QwtDoubleSize expandedTo(const QwtDoubleSize &) const; QwtDoubleSize boundedTo(const QwtDoubleSize &) const; bool operator==(const QwtDoubleSize &) const; bool operator!=(const QwtDoubleSize &) const; const QwtDoubleSize operator+(const QwtDoubleSize &) const; const QwtDoubleSize operator-(const QwtDoubleSize &) const; const QwtDoubleSize operator*(double) const; const QwtDoubleSize operator/(double) const; QwtDoubleSize &operator+=(const QwtDoubleSize &); QwtDoubleSize &operator-=(const QwtDoubleSize &); QwtDoubleSize &operator*=(double c); QwtDoubleSize &operator/=(double c); private: double d_width; double d_height; }; /*! The QwtDoubleRect class defines a size in double coordinates. */ class QWT_EXPORT QwtDoubleRect { public: QwtDoubleRect(); QwtDoubleRect(double left, double top, double width, double height); QwtDoubleRect(const QwtDoublePoint&, const QwtDoubleSize &); QwtDoubleRect(const QRect &); QRect toRect() const; bool isNull() const; bool isEmpty() const; bool isValid() const; QwtDoubleRect normalized() const; double x() const; double y() const; double left() const; double right() const; double top() const; double bottom() const; void setX(double); void setY(double); void setLeft(double); void setRight(double); void setTop(double); void setBottom(double); QwtDoublePoint center() const; void moveLeft(double x); void moveRight(double x); void moveTop(double y ); void moveBottom(double y ); void moveTo(double x, double y); void moveTo(const QwtDoublePoint &); void moveBy(double dx, double dy); void moveCenter(const QwtDoublePoint &); void moveCenter(double dx, double dy); void setRect(double x1, double x2, double width, double height); double width() const; double height() const; QwtDoubleSize size() const; void setWidth(double w ); void setHeight(double h ); void setSize(const QwtDoubleSize &); QwtDoubleRect operator|(const QwtDoubleRect &r) const; QwtDoubleRect operator&(const QwtDoubleRect &r) const; QwtDoubleRect &operator|=(const QwtDoubleRect &r); QwtDoubleRect &operator&=(const QwtDoubleRect &r); bool operator==( const QwtDoubleRect &) const; bool operator!=( const QwtDoubleRect &) const; bool contains(const QwtDoublePoint &p, bool proper = false) const; bool contains(double x, double y, bool proper = false) const; bool contains(const QwtDoubleRect &r, bool proper=false) const; QwtDoubleRect unite(const QwtDoubleRect &) const; QwtDoubleRect intersect(const QwtDoubleRect &) const; bool intersects(const QwtDoubleRect &) const; QwtDoublePoint bottomRight() const; QwtDoublePoint topRight() const; QwtDoublePoint topLeft() const; QwtDoublePoint bottomLeft() const; private: double d_left; double d_right; double d_top; double d_bottom; }; /*! Returns true if the point is null; otherwise returns false. A point is considered to be null if both the x- and y-coordinates are equal to zero. */ inline bool QwtDoublePoint::isNull() const { return d_x == 0.0 && d_y == 0.0; } //! Returns the x-coordinate of the point. inline double QwtDoublePoint::x() const { return d_x; } //! Returns the y-coordinate of the point. inline double QwtDoublePoint::y() const { return d_y; } //! Returns a reference to the x-coordinate of the point. inline double &QwtDoublePoint::rx() { return d_x; } //! Returns a reference to the y-coordinate of the point. inline double &QwtDoublePoint::ry() { return d_y; } //! Sets the x-coordinate of the point to the value specified by x. inline void QwtDoublePoint::setX(double x) { d_x = x; } //! Sets the y-coordinate of the point to the value specified by y. inline void QwtDoublePoint::setY(double y) { d_y = y; } /*! Rounds the coordinates of this point to the nearest integer and returns a QPoint with these rounded coordinates. */ inline QPoint QwtDoublePoint::toPoint() const { return QPoint(qRound(d_x), qRound(d_y)); } /*! Returns true if the width is 0 and the height is 0; otherwise returns false. */ inline bool QwtDoubleSize::isNull() const { return d_width == 0.0 && d_height == 0.0; } /*! Returns true if the width is <= 0.0 or the height is <= 0.0, otherwise false. */ inline bool QwtDoubleSize::isEmpty() const { return d_width <= 0.0 || d_height <= 0.0; } /*! Returns true if the width is equal to or greater than 0.0 and the height is equal to or greater than 0.0; otherwise returns false. */ inline bool QwtDoubleSize::isValid() const { return d_width >= 0.0 && d_height >= 0.0; } //! Returns the width. inline double QwtDoubleSize::width() const { return d_width; } //! Returns the height. inline double QwtDoubleSize::height() const { return d_height; } //! Sets the width to width. inline void QwtDoubleSize::setWidth(double width) { d_width = width; } //! Sets the height to height. inline void QwtDoubleSize::setHeight(double height) { d_height = height; } /*! Returns true if the rectangle is a null rectangle; otherwise returns false. A null rectangle has both the width and the height set to 0. A null rectangle is also empty and invalid. \sa isEmpty(), isValid() */ inline bool QwtDoubleRect::isNull() const { return d_right == d_left && d_bottom == d_top; } /*! Returns true if the rectangle is empty; otherwise returns false. An empty rectangle has a width() <= 0 or height() <= 0. An empty rectangle is not valid. isEmpty() == !isValid() \sa isNull(), isValid() */ inline bool QwtDoubleRect::isEmpty() const { return d_left >= d_right || d_top >= d_bottom; } /*! Returns true if the rectangle is valid; otherwise returns false. A valid rectangle has a width() > 0 and height() > 0. Note that non-trivial operations like intersections are not defined for invalid rectangles. isValid() == !isEmpty() \sa isNull(), isEmpty(), and normalized(). */ inline bool QwtDoubleRect::isValid() const { return d_left < d_right && d_top < d_bottom; } //! Returns x inline double QwtDoubleRect::x() const { return d_left; } //! Returns y inline double QwtDoubleRect::y() const { return d_top; } //! Returns left inline double QwtDoubleRect::left() const { return d_left; } //! Returns right inline double QwtDoubleRect::right() const { return d_right; } //! Returns top inline double QwtDoubleRect::top() const { return d_top; } //! Returns bottom inline double QwtDoubleRect::bottom() const { return d_bottom; } //! Set left inline void QwtDoubleRect::setX(double x) { d_left = x; } //! Set left inline void QwtDoubleRect::setY(double y) { d_top = y; } //! Set left inline void QwtDoubleRect::setLeft(double x) { d_left = x; } //! Set right inline void QwtDoubleRect::setRight(double x) { d_right = x; } //! Set top inline void QwtDoubleRect::setTop(double y) { d_top = y; } //! Set bottom inline void QwtDoubleRect::setBottom(double y) { d_bottom = y; } //! Returns the width inline double QwtDoubleRect::width() const { return d_right - d_left; } //! Returns the height inline double QwtDoubleRect::height() const { return d_bottom - d_top; } //! Returns the size inline QwtDoubleSize QwtDoubleRect::size() const { return QwtDoubleSize(width(), height()); } //! Set the width, by right = left + w; inline void QwtDoubleRect::setWidth(double w) { d_right = d_left + w; } //! Set the height, by bottom = top + h; inline void QwtDoubleRect::setHeight(double h) { d_bottom = d_top + h; } /*! Moves the top left corner of the rectangle to p, without changing the rectangles size. */ inline void QwtDoubleRect::moveTo(const QwtDoublePoint &p) { moveTo(p.x(), p.y()); } inline QwtDoublePoint QwtDoubleRect::bottomRight() const { return QwtDoublePoint(bottom(), right()); } inline QwtDoublePoint QwtDoubleRect::topRight() const { return QwtDoublePoint(top(), right()); } inline QwtDoublePoint QwtDoubleRect::topLeft() const { return QwtDoublePoint(top(), left()); } inline QwtDoublePoint QwtDoubleRect::bottomLeft() const { return QwtDoublePoint(bottom(), left()); } #endif // QT_VERSION < 0x040000 #endif // QWT_DOUBLE_RECT_H qwt5-5.2.3/src/qwt_plot_print.cpp0000644000175000017500000003653212052741126016350 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #if QT_VERSION < 0x040000 #include #else #include #endif #include "qwt_painter.h" #include "qwt_legend_item.h" #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_plot_layout.h" #include "qwt_legend.h" #include "qwt_dyngrid_layout.h" #include "qwt_scale_widget.h" #include "qwt_scale_engine.h" #include "qwt_text.h" #include "qwt_text_label.h" #include "qwt_math.h" /*! \brief Print the plot to a \c QPaintDevice (\c QPrinter) This function prints the contents of a QwtPlot instance to \c QPaintDevice object. The size is derived from its device metrics. \param paintDev device to paint on, often a printer \param pfilter print filter \sa QwtPlotPrintFilter */ void QwtPlot::print(QPaintDevice &paintDev, const QwtPlotPrintFilter &pfilter) const { #if QT_VERSION < 0x040000 QPaintDeviceMetrics mpr(&paintDev); int w = mpr.width(); int h = mpr.height(); #else int w = paintDev.width(); int h = paintDev.height(); #endif QRect rect(0, 0, w, h); double aspect = double(rect.width())/double(rect.height()); if ((aspect < 1.0)) rect.setHeight(int(aspect*rect.width())); QPainter p(&paintDev); print(&p, rect, pfilter); } /*! \brief Paint the plot into a given rectangle. Paint the contents of a QwtPlot instance into a given rectangle. \param painter Painter \param plotRect Bounding rectangle \param pfilter Print filter \sa QwtPlotPrintFilter */ void QwtPlot::print(QPainter *painter, const QRect &plotRect, const QwtPlotPrintFilter &pfilter) const { int axisId; if ( painter == 0 || !painter->isActive() || !plotRect.isValid() || size().isNull() ) return; painter->save(); #if 1 /* PDF: In Qt4 ( <= 4.3.2 ) the scales are painted in gray instead of black. See http://trolltech.com/developer/task-tracker/index_html?id=184671&method=entry The dummy lines below work around the problem. */ const QPen pen = painter->pen(); painter->setPen(QPen(Qt::black, 1)); painter->setPen(pen); #endif // All paint operations need to be scaled according to // the paint device metrics. QwtPainter::setMetricsMap(this, painter->device()); const QwtMetricsMap &metricsMap = QwtPainter::metricsMap(); // It is almost impossible to integrate into the Qt layout // framework, when using different fonts for printing // and screen. To avoid writing different and Qt unconform // layout engines we change the widget attributes, print and // reset the widget attributes again. This way we produce a lot of // useless layout events ... pfilter.apply((QwtPlot *)this); int baseLineDists[QwtPlot::axisCnt]; if ( pfilter.options() & QwtPlotPrintFilter::PrintFrameWithScales ) { for (axisId = 0; axisId < QwtPlot::axisCnt; axisId++ ) { QwtScaleWidget *scaleWidget = (QwtScaleWidget *)axisWidget(axisId); if ( scaleWidget ) { baseLineDists[axisId] = scaleWidget->margin(); scaleWidget->setMargin(0); } } } // Calculate the layout for the print. int layoutOptions = QwtPlotLayout::IgnoreScrollbars | QwtPlotLayout::IgnoreFrames; if ( !(pfilter.options() & QwtPlotPrintFilter::PrintMargin) ) layoutOptions |= QwtPlotLayout::IgnoreMargin; if ( !(pfilter.options() & QwtPlotPrintFilter::PrintLegend) ) layoutOptions |= QwtPlotLayout::IgnoreLegend; ((QwtPlot *)this)->plotLayout()->activate(this, QwtPainter::metricsMap().deviceToLayout(plotRect), layoutOptions); if ((pfilter.options() & QwtPlotPrintFilter::PrintTitle) && (!titleLabel()->text().isEmpty())) { printTitle(painter, plotLayout()->titleRect()); } if ( (pfilter.options() & QwtPlotPrintFilter::PrintLegend) && legend() && !legend()->isEmpty() ) { printLegend(painter, plotLayout()->legendRect()); } for ( axisId = 0; axisId < QwtPlot::axisCnt; axisId++ ) { QwtScaleWidget *scaleWidget = (QwtScaleWidget *)axisWidget(axisId); if (scaleWidget) { int baseDist = scaleWidget->margin(); int startDist, endDist; scaleWidget->getBorderDistHint(startDist, endDist); printScale(painter, axisId, startDist, endDist, baseDist, plotLayout()->scaleRect(axisId)); } } QRect canvasRect = plotLayout()->canvasRect(); /* The border of the bounding rect needs to ba scaled to layout coordinates, so that it is aligned to the axes */ QRect boundingRect( canvasRect.left() - 1, canvasRect.top() - 1, canvasRect.width() + 2, canvasRect.height() + 2); boundingRect = metricsMap.layoutToDevice(boundingRect); boundingRect.setWidth(boundingRect.width() - 1); boundingRect.setHeight(boundingRect.height() - 1); canvasRect = metricsMap.layoutToDevice(canvasRect); // When using QwtPainter all sizes where computed in pixel // coordinates and scaled by QwtPainter later. This limits // the precision to screen resolution. A better solution // is to scale the maps and print in unlimited resolution. QwtScaleMap map[axisCnt]; for (axisId = 0; axisId < axisCnt; axisId++) { map[axisId].setTransformation(axisScaleEngine(axisId)->transformation()); const QwtScaleDiv &scaleDiv = *axisScaleDiv(axisId); map[axisId].setScaleInterval( scaleDiv.lowerBound(), scaleDiv.upperBound()); double from, to; if ( axisEnabled(axisId) ) { const int sDist = axisWidget(axisId)->startBorderDist(); const int eDist = axisWidget(axisId)->endBorderDist(); const QRect &scaleRect = plotLayout()->scaleRect(axisId); if ( axisId == xTop || axisId == xBottom ) { from = metricsMap.layoutToDeviceX(scaleRect.left() + sDist); to = metricsMap.layoutToDeviceX(scaleRect.right() + 1 - eDist); } else { from = metricsMap.layoutToDeviceY(scaleRect.bottom() + 1 - eDist ); to = metricsMap.layoutToDeviceY(scaleRect.top() + sDist); } } else { int margin = plotLayout()->canvasMargin(axisId); if ( axisId == yLeft || axisId == yRight ) { margin = metricsMap.layoutToDeviceY(margin); from = canvasRect.bottom() - margin; to = canvasRect.top() + margin; } else { margin = metricsMap.layoutToDeviceX(margin); from = canvasRect.left() + margin; to = canvasRect.right() - margin; } } map[axisId].setPaintXInterval(from, to); } // The canvas maps are already scaled. QwtPainter::setMetricsMap(painter->device(), painter->device()); printCanvas(painter, boundingRect, canvasRect, map, pfilter); QwtPainter::resetMetricsMap(); ((QwtPlot *)this)->plotLayout()->invalidate(); // reset all widgets with their original attributes. if ( pfilter.options() & QwtPlotPrintFilter::PrintFrameWithScales ) { // restore the previous base line dists for (axisId = 0; axisId < QwtPlot::axisCnt; axisId++ ) { QwtScaleWidget *scaleWidget = (QwtScaleWidget *)axisWidget(axisId); if ( scaleWidget ) scaleWidget->setMargin(baseLineDists[axisId]); } } pfilter.reset((QwtPlot *)this); painter->restore(); } /*! Print the title into a given rectangle. \param painter Painter \param rect Bounding rectangle */ void QwtPlot::printTitle(QPainter *painter, const QRect &rect) const { painter->setFont(titleLabel()->font()); const QColor color = #if QT_VERSION < 0x040000 titleLabel()->palette().color( QPalette::Active, QColorGroup::Text); #else titleLabel()->palette().color( QPalette::Active, QPalette::Text); #endif painter->setPen(color); titleLabel()->text().draw(painter, rect); } /*! Print the legend into a given rectangle. \param painter Painter \param rect Bounding rectangle */ void QwtPlot::printLegend(QPainter *painter, const QRect &rect) const { if ( !legend() || legend()->isEmpty() ) return; QLayout *l = legend()->contentsWidget()->layout(); if ( l == 0 || !l->inherits("QwtDynGridLayout") ) return; QwtDynGridLayout *legendLayout = (QwtDynGridLayout *)l; uint numCols = legendLayout->columnsForWidth(rect.width()); #if QT_VERSION < 0x040000 QValueList itemRects = legendLayout->layoutItems(rect, numCols); #else QList itemRects = legendLayout->layoutItems(rect, numCols); #endif int index = 0; #if QT_VERSION < 0x040000 QLayoutIterator layoutIterator = legendLayout->iterator(); for ( QLayoutItem *item = layoutIterator.current(); item != 0; item = ++layoutIterator) { #else for ( int i = 0; i < legendLayout->count(); i++ ) { QLayoutItem *item = legendLayout->itemAt(i); #endif QWidget *w = item->widget(); if ( w ) { painter->save(); painter->setClipping(true); QwtPainter::setClipRect(painter, itemRects[index]); printLegendItem(painter, w, itemRects[index]); index++; painter->restore(); } } } /*! Print the legend item into a given rectangle. \param painter Painter \param w Widget representing a legend item \param rect Bounding rectangle */ void QwtPlot::printLegendItem(QPainter *painter, const QWidget *w, const QRect &rect) const { if ( w->inherits("QwtLegendItem") ) { QwtLegendItem *item = (QwtLegendItem *)w; painter->setFont(item->font()); item->drawItem(painter, rect); } } /*! \brief Paint a scale into a given rectangle. Paint the scale into a given rectangle. \param painter Painter \param axisId Axis \param startDist Start border distance \param endDist End border distance \param baseDist Base distance \param rect Bounding rectangle */ void QwtPlot::printScale(QPainter *painter, int axisId, int startDist, int endDist, int baseDist, const QRect &rect) const { if (!axisEnabled(axisId)) return; const QwtScaleWidget *scaleWidget = axisWidget(axisId); if ( scaleWidget->isColorBarEnabled() && scaleWidget->colorBarWidth() > 0) { const QwtMetricsMap map = QwtPainter::metricsMap(); QRect r = map.layoutToScreen(rect); r.setWidth(r.width() - 1); r.setHeight(r.height() - 1); scaleWidget->drawColorBar(painter, scaleWidget->colorBarRect(r)); const int off = scaleWidget->colorBarWidth() + scaleWidget->spacing(); if ( scaleWidget->scaleDraw()->orientation() == Qt::Horizontal ) baseDist += map.screenToLayoutY(off); else baseDist += map.screenToLayoutX(off); } QwtScaleDraw::Alignment align; int x, y, w; switch(axisId) { case yLeft: { x = rect.right() - baseDist; y = rect.y() + startDist; w = rect.height() - startDist - endDist; align = QwtScaleDraw::LeftScale; break; } case yRight: { x = rect.left() + baseDist; y = rect.y() + startDist; w = rect.height() - startDist - endDist; align = QwtScaleDraw::RightScale; break; } case xTop: { x = rect.left() + startDist; y = rect.bottom() - baseDist; w = rect.width() - startDist - endDist; align = QwtScaleDraw::TopScale; break; } case xBottom: { x = rect.left() + startDist; y = rect.top() + baseDist; w = rect.width() - startDist - endDist; align = QwtScaleDraw::BottomScale; break; } default: return; } scaleWidget->drawTitle(painter, align, rect); painter->save(); painter->setFont(scaleWidget->font()); QPen pen = painter->pen(); pen.setWidth(scaleWidget->penWidth()); painter->setPen(pen); QwtScaleDraw *sd = (QwtScaleDraw *)scaleWidget->scaleDraw(); const QPoint sdPos = sd->pos(); const int sdLength = sd->length(); sd->move(x, y); sd->setLength(w); #if QT_VERSION < 0x040000 sd->draw(painter, scaleWidget->palette().active()); #else QPalette palette = scaleWidget->palette(); palette.setCurrentColorGroup(QPalette::Active); sd->draw(painter, palette); #endif // reset previous values sd->move(sdPos); sd->setLength(sdLength); painter->restore(); } /*! Print the canvas into a given rectangle. \param painter Painter \param map Maps mapping between plot and paint device coordinates \param boundingRect Bounding rectangle \param canvasRect Canvas rectangle \param pfilter Print filter \sa QwtPlotPrintFilter */ void QwtPlot::printCanvas(QPainter *painter, const QRect &boundingRect, const QRect &canvasRect, const QwtScaleMap map[axisCnt], const QwtPlotPrintFilter &pfilter) const { if ( pfilter.options() & QwtPlotPrintFilter::PrintBackground ) { QBrush bgBrush; #if QT_VERSION >= 0x040000 bgBrush = canvas()->palette().brush(backgroundRole()); #else QColorGroup::ColorRole role = QPalette::backgroundRoleFromMode( backgroundMode() ); bgBrush = canvas()->colorGroup().brush( role ); #endif QRect r = boundingRect; if ( !(pfilter.options() & QwtPlotPrintFilter::PrintFrameWithScales) ) { r = canvasRect; #if QT_VERSION >= 0x040000 // Unfortunately the paint engines do no always the same const QPaintEngine *pe = painter->paintEngine(); if ( pe ) { switch(painter->paintEngine()->type() ) { case QPaintEngine::Raster: case QPaintEngine::X11: break; default: r.setWidth(r.width() - 1); r.setHeight(r.height() - 1); break; } } #else if ( painter->device()->isExtDev() ) { r.setWidth(r.width() - 1); r.setHeight(r.height() - 1); } #endif } QwtPainter::fillRect(painter, r, bgBrush); } if ( pfilter.options() & QwtPlotPrintFilter::PrintFrameWithScales ) { painter->save(); painter->setPen(QPen(Qt::black)); painter->setBrush(QBrush(Qt::NoBrush)); QwtPainter::drawRect(painter, boundingRect); painter->restore(); } painter->setClipping(true); QwtPainter::setClipRect(painter, canvasRect); drawItems(painter, canvasRect, map, pfilter); } qwt5-5.2.3/src/qwt_legend_item.h0000644000175000017500000000564312052741123016073 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_LEGEND_ITEM_H #define QWT_LEGEND_ITEM_H #include "qwt_global.h" #include "qwt_legend.h" #include "qwt_text.h" #include "qwt_text_label.h" class QPainter; class QPen; class QwtSymbol; /*! \brief A legend label QwtLegendItem represents a curve on a legend. It displays an curve identifier with an explaining text. The identifier might be a combination of curve symbol and line. In readonly mode it behaves like a label, otherwise like an unstylish push button. \sa QwtLegend, QwtPlotCurve */ class QWT_EXPORT QwtLegendItem: public QwtTextLabel { Q_OBJECT public: /*! \brief Identifier mode Default is ShowLine | ShowText \sa identifierMode(), setIdentifierMode() */ enum IdentifierMode { NoIdentifier = 0, ShowLine = 1, ShowSymbol = 2, ShowText = 4 }; explicit QwtLegendItem(QWidget *parent = 0); explicit QwtLegendItem(const QwtSymbol &, const QPen &, const QwtText &, QWidget *parent = 0); virtual ~QwtLegendItem(); virtual void setText(const QwtText &); void setItemMode(QwtLegend::LegendItemMode); QwtLegend::LegendItemMode itemMode() const; void setIdentifierMode(int); int identifierMode() const; void setIdentifierWidth(int width); int identifierWidth() const; void setSpacing(int spacing); int spacing() const; void setSymbol(const QwtSymbol &); const QwtSymbol& symbol() const; void setCurvePen(const QPen &); const QPen& curvePen() const; virtual void drawIdentifier(QPainter *, const QRect &) const; virtual void drawItem(QPainter *p, const QRect &) const; virtual QSize sizeHint() const; bool isChecked() const; public slots: void setChecked(bool on); signals: //! Signal, when the legend item has been clicked void clicked(); //! Signal, when the legend item has been pressed void pressed(); //! Signal, when the legend item has been relased void released(); //! Signal, when the legend item has been toggled void checked(bool); protected: void setDown(bool); bool isDown() const; virtual void paintEvent(QPaintEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void keyReleaseEvent(QKeyEvent *); virtual void drawText(QPainter *, const QRect &); private: void init(const QwtText &); class PrivateData; PrivateData *d_data; }; #endif // QWT_LEGEND_ITEM_H qwt5-5.2.3/src/qwt_plot_layout.cpp0000644000175000017500000010730112052741126016522 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include "qwt_text.h" #include "qwt_text_label.h" #include "qwt_plot_canvas.h" #include "qwt_scale_widget.h" #include "qwt_legend.h" #include "qwt_plot_layout.h" class QwtPlotLayout::LayoutData { public: void init(const QwtPlot *, const QRect &rect); struct t_legendData { int frameWidth; int vScrollBarWidth; int hScrollBarHeight; QSize hint; } legend; struct t_titleData { QwtText text; int frameWidth; } title; struct t_scaleData { bool isEnabled; const QwtScaleWidget *scaleWidget; QFont scaleFont; int start; int end; int baseLineOffset; int tickOffset; int dimWithoutTitle; } scale[QwtPlot::axisCnt]; struct t_canvasData { int frameWidth; } canvas; }; /* Extract all layout relevant data from the plot components */ void QwtPlotLayout::LayoutData::init(const QwtPlot *plot, const QRect &rect) { // legend if ( plot->plotLayout()->legendPosition() != QwtPlot::ExternalLegend && plot->legend() ) { legend.frameWidth = plot->legend()->frameWidth(); legend.vScrollBarWidth = plot->legend()->verticalScrollBar()->sizeHint().width(); legend.hScrollBarHeight = plot->legend()->horizontalScrollBar()->sizeHint().height(); const QSize hint = plot->legend()->sizeHint(); int w = qwtMin(hint.width(), rect.width()); int h = plot->legend()->heightForWidth(w); if ( h == 0 ) h = hint.height(); if ( h > rect.height() ) w += legend.vScrollBarWidth; legend.hint = QSize(w, h); } // title title.frameWidth = 0; title.text = QwtText(); if (plot->titleLabel() ) { const QwtTextLabel *label = plot->titleLabel(); title.text = label->text(); if ( !(title.text.testPaintAttribute(QwtText::PaintUsingTextFont)) ) title.text.setFont(label->font()); title.frameWidth = plot->titleLabel()->frameWidth(); } // scales for (int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( plot->axisEnabled(axis) ) { const QwtScaleWidget *scaleWidget = plot->axisWidget(axis); scale[axis].isEnabled = true; scale[axis].scaleWidget = scaleWidget; scale[axis].scaleFont = scaleWidget->font(); scale[axis].start = scaleWidget->startBorderDist(); scale[axis].end = scaleWidget->endBorderDist(); scale[axis].baseLineOffset = scaleWidget->margin(); scale[axis].tickOffset = scaleWidget->margin(); if ( scaleWidget->scaleDraw()->hasComponent( QwtAbstractScaleDraw::Ticks) ) { scale[axis].tickOffset += (int)scaleWidget->scaleDraw()->majTickLength(); } scale[axis].dimWithoutTitle = scaleWidget->dimForLength( QWIDGETSIZE_MAX, scale[axis].scaleFont); if ( !scaleWidget->title().isEmpty() ) { scale[axis].dimWithoutTitle -= scaleWidget->titleHeightForWidth(QWIDGETSIZE_MAX); } } else { scale[axis].isEnabled = false; scale[axis].start = 0; scale[axis].end = 0; scale[axis].baseLineOffset = 0; scale[axis].tickOffset = 0; scale[axis].dimWithoutTitle = 0; } } // canvas canvas.frameWidth = plot->canvas()->frameWidth(); } class QwtPlotLayout::PrivateData { public: PrivateData(): margin(0), spacing(5), alignCanvasToScales(false) { } QRect titleRect; QRect legendRect; QRect scaleRect[QwtPlot::axisCnt]; QRect canvasRect; QwtPlotLayout::LayoutData layoutData; QwtPlot::LegendPosition legendPos; double legendRatio; unsigned int margin; unsigned int spacing; unsigned int canvasMargin[QwtPlot::axisCnt]; bool alignCanvasToScales; }; /*! \brief Constructor */ QwtPlotLayout::QwtPlotLayout() { d_data = new PrivateData; setLegendPosition(QwtPlot::BottomLegend); setCanvasMargin(4); invalidate(); } //! Destructor QwtPlotLayout::~QwtPlotLayout() { delete d_data; } /*! Change the margin of the plot. The margin is the space around all components. \param margin new margin \sa margin(), setSpacing(), QwtPlot::setMargin() */ void QwtPlotLayout::setMargin(int margin) { if ( margin < 0 ) margin = 0; d_data->margin = margin; } /*! \return margin \sa setMargin(), spacing(), QwtPlot::margin() */ int QwtPlotLayout::margin() const { return d_data->margin; } /*! Change a margin of the canvas. The margin is the space above/below the scale ticks. A negative margin will be set to -1, excluding the borders of the scales. \param margin New margin \param axis One of QwtPlot::Axis. Specifies where the position of the margin. -1 means margin at all borders. \sa canvasMargin() \warning The margin will have no effect when alignCanvasToScales is true */ void QwtPlotLayout::setCanvasMargin(int margin, int axis) { if ( margin < -1 ) margin = -1; if ( axis == -1 ) { for (axis = 0; axis < QwtPlot::axisCnt; axis++) d_data->canvasMargin[axis] = margin; } else if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->canvasMargin[axis] = margin; } /*! \return Margin around the scale tick borders \sa setCanvasMargin() */ int QwtPlotLayout::canvasMargin(int axis) const { if ( axis < 0 || axis >= QwtPlot::axisCnt ) return 0; return d_data->canvasMargin[axis]; } /*! Change the align-canvas-to-axis-scales setting. The canvas may: - extend beyond the axis scale ends to maximize its size, - align with the axis scale ends to control its size. \param alignCanvasToScales New align-canvas-to-axis-scales setting \sa setCanvasMargin() \note In this context the term 'scale' means the backbone of a scale. \warning In case of alignCanvasToScales == true canvasMargin will have no effect */ void QwtPlotLayout::setAlignCanvasToScales(bool alignCanvasToScales) { d_data->alignCanvasToScales = alignCanvasToScales; } /*! Return the align-canvas-to-axis-scales setting. The canvas may: - extend beyond the axis scale ends to maximize its size - align with the axis scale ends to control its size. \return align-canvas-to-axis-scales setting \sa setAlignCanvasToScales, setCanvasMargin() \note In this context the term 'scale' means the backbone of a scale. */ bool QwtPlotLayout::alignCanvasToScales() const { return d_data->alignCanvasToScales; } /*! Change the spacing of the plot. The spacing is the distance between the plot components. \param spacing new spacing \sa setMargin(), spacing() */ void QwtPlotLayout::setSpacing(int spacing) { d_data->spacing = qwtMax(0, spacing); } /*! \return spacing \sa margin(), setSpacing() */ int QwtPlotLayout::spacing() const { return d_data->spacing; } /*! \brief Specify the position of the legend \param pos The legend's position. \param ratio Ratio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. \sa QwtPlot::setLegendPosition() */ void QwtPlotLayout::setLegendPosition(QwtPlot::LegendPosition pos, double ratio) { if ( ratio > 1.0 ) ratio = 1.0; switch(pos) { case QwtPlot::TopLegend: case QwtPlot::BottomLegend: if ( ratio <= 0.0 ) ratio = 0.33; d_data->legendRatio = ratio; d_data->legendPos = pos; break; case QwtPlot::LeftLegend: case QwtPlot::RightLegend: if ( ratio <= 0.0 ) ratio = 0.5; d_data->legendRatio = ratio; d_data->legendPos = pos; break; case QwtPlot::ExternalLegend: d_data->legendRatio = ratio; // meaningless d_data->legendPos = pos; default: break; } } /*! \brief Specify the position of the legend \param pos The legend's position. Valid values are \c QwtPlot::LeftLegend, \c QwtPlot::RightLegend, \c QwtPlot::TopLegend, \c QwtPlot::BottomLegend. \sa QwtPlot::setLegendPosition() */ void QwtPlotLayout::setLegendPosition(QwtPlot::LegendPosition pos) { setLegendPosition(pos, 0.0); } /*! \return Position of the legend \sa setLegendPosition(), QwtPlot::setLegendPosition(), QwtPlot::legendPosition() */ QwtPlot::LegendPosition QwtPlotLayout::legendPosition() const { return d_data->legendPos; } /*! Specify the relative size of the legend in the plot \param ratio Ratio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. */ void QwtPlotLayout::setLegendRatio(double ratio) { setLegendPosition(legendPosition(), ratio); } /*! \return The relative size of the legend in the plot. \sa setLegendPosition() */ double QwtPlotLayout::legendRatio() const { return d_data->legendRatio; } /*! \return Geometry for the title \sa activate(), invalidate() */ const QRect &QwtPlotLayout::titleRect() const { return d_data->titleRect; } /*! \return Geometry for the legend \sa activate(), invalidate() */ const QRect &QwtPlotLayout::legendRect() const { return d_data->legendRect; } /*! \param axis Axis index \return Geometry for the scale \sa activate(), invalidate() */ const QRect &QwtPlotLayout::scaleRect(int axis) const { if ( axis < 0 || axis >= QwtPlot::axisCnt ) { static QRect dummyRect; return dummyRect; } return d_data->scaleRect[axis]; } /*! \return Geometry for the canvas \sa activate(), invalidate() */ const QRect &QwtPlotLayout::canvasRect() const { return d_data->canvasRect; } /*! Invalidate the geometry of all components. \sa activate() */ void QwtPlotLayout::invalidate() { d_data->titleRect = d_data->legendRect = d_data->canvasRect = QRect(); for (int axis = 0; axis < QwtPlot::axisCnt; axis++ ) d_data->scaleRect[axis] = QRect(); } /*! \brief Return a minimum size hint \sa QwtPlot::minimumSizeHint() */ QSize QwtPlotLayout::minimumSizeHint(const QwtPlot *plot) const { class ScaleData { public: ScaleData() { w = h = minLeft = minRight = tickOffset = 0; } int w; int h; int minLeft; int minRight; int tickOffset; } scaleData[QwtPlot::axisCnt]; int canvasBorder[QwtPlot::axisCnt]; int axis; for ( axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( plot->axisEnabled(axis) ) { const QwtScaleWidget *scl = plot->axisWidget(axis); ScaleData &sd = scaleData[axis]; const QSize hint = scl->minimumSizeHint(); sd.w = hint.width(); sd.h = hint.height(); scl->getBorderDistHint(sd.minLeft, sd.minRight); sd.tickOffset = scl->margin(); if ( scl->scaleDraw()->hasComponent(QwtAbstractScaleDraw::Ticks) ) sd.tickOffset += scl->scaleDraw()->majTickLength(); } canvasBorder[axis] = plot->canvas()->frameWidth() + d_data->canvasMargin[axis] + 1; } for ( axis = 0; axis < QwtPlot::axisCnt; axis++ ) { ScaleData &sd = scaleData[axis]; if ( sd.w && (axis == QwtPlot::xBottom || axis == QwtPlot::xTop) ) { if ( (sd.minLeft > canvasBorder[QwtPlot::yLeft]) && scaleData[QwtPlot::yLeft].w ) { int shiftLeft = sd.minLeft - canvasBorder[QwtPlot::yLeft]; if ( shiftLeft > scaleData[QwtPlot::yLeft].w ) shiftLeft = scaleData[QwtPlot::yLeft].w; sd.w -= shiftLeft; } if ( (sd.minRight > canvasBorder[QwtPlot::yRight]) && scaleData[QwtPlot::yRight].w ) { int shiftRight = sd.minRight - canvasBorder[QwtPlot::yRight]; if ( shiftRight > scaleData[QwtPlot::yRight].w ) shiftRight = scaleData[QwtPlot::yRight].w; sd.w -= shiftRight; } } if ( sd.h && (axis == QwtPlot::yLeft || axis == QwtPlot::yRight) ) { if ( (sd.minLeft > canvasBorder[QwtPlot::xBottom]) && scaleData[QwtPlot::xBottom].h ) { int shiftBottom = sd.minLeft - canvasBorder[QwtPlot::xBottom]; if ( shiftBottom > scaleData[QwtPlot::xBottom].tickOffset ) shiftBottom = scaleData[QwtPlot::xBottom].tickOffset; sd.h -= shiftBottom; } if ( (sd.minLeft > canvasBorder[QwtPlot::xTop]) && scaleData[QwtPlot::xTop].h ) { int shiftTop = sd.minRight - canvasBorder[QwtPlot::xTop]; if ( shiftTop > scaleData[QwtPlot::xTop].tickOffset ) shiftTop = scaleData[QwtPlot::xTop].tickOffset; sd.h -= shiftTop; } } } const QwtPlotCanvas *canvas = plot->canvas(); const QSize minCanvasSize = canvas->minimumSize(); int w = scaleData[QwtPlot::yLeft].w + scaleData[QwtPlot::yRight].w; int cw = qwtMax(scaleData[QwtPlot::xBottom].w, scaleData[QwtPlot::xTop].w) + 2 * (canvas->frameWidth() + 1); w += qwtMax(cw, minCanvasSize.width()); int h = scaleData[QwtPlot::xBottom].h + scaleData[QwtPlot::xTop].h; int ch = qwtMax(scaleData[QwtPlot::yLeft].h, scaleData[QwtPlot::yRight].h) + 2 * (canvas->frameWidth() + 1); h += qwtMax(ch, minCanvasSize.height()); const QwtTextLabel *title = plot->titleLabel(); if (title && !title->text().isEmpty()) { // If only QwtPlot::yLeft or QwtPlot::yRight is showing, // we center on the plot canvas. const bool centerOnCanvas = !(plot->axisEnabled(QwtPlot::yLeft) && plot->axisEnabled(QwtPlot::yRight)); int titleW = w; if ( centerOnCanvas ) { titleW -= scaleData[QwtPlot::yLeft].w + scaleData[QwtPlot::yRight].w; } int titleH = title->heightForWidth(titleW); if ( titleH > titleW ) // Compensate for a long title { w = titleW = titleH; if ( centerOnCanvas ) { w += scaleData[QwtPlot::yLeft].w + scaleData[QwtPlot::yRight].w; } titleH = title->heightForWidth(titleW); } h += titleH + d_data->spacing; } // Compute the legend contribution const QwtLegend *legend = plot->legend(); if ( d_data->legendPos != QwtPlot::ExternalLegend && legend && !legend->isEmpty() ) { if ( d_data->legendPos == QwtPlot::LeftLegend || d_data->legendPos == QwtPlot::RightLegend ) { int legendW = legend->sizeHint().width(); int legendH = legend->heightForWidth(legendW); if ( legend->frameWidth() > 0 ) w += d_data->spacing; if ( legendH > h ) legendW += legend->verticalScrollBar()->sizeHint().width(); if ( d_data->legendRatio < 1.0 ) legendW = qwtMin(legendW, int(w / (1.0 - d_data->legendRatio))); w += legendW; } else // QwtPlot::Top, QwtPlot::Bottom { int legendW = qwtMin(legend->sizeHint().width(), w); int legendH = legend->heightForWidth(legendW); if ( legend->frameWidth() > 0 ) h += d_data->spacing; if ( d_data->legendRatio < 1.0 ) legendH = qwtMin(legendH, int(h / (1.0 - d_data->legendRatio))); h += legendH; } } w += 2 * d_data->margin; h += 2 * d_data->margin; return QSize( w, h ); } /*! Find the geometry for the legend \param options Options how to layout the legend \param rect Rectangle where to place the legend \return Geometry for the legend \sa Options */ QRect QwtPlotLayout::layoutLegend(int options, const QRect &rect) const { const QSize hint(d_data->layoutData.legend.hint); int dim; if ( d_data->legendPos == QwtPlot::LeftLegend || d_data->legendPos == QwtPlot::RightLegend ) { // We don't allow vertical legends to take more than // half of the available space. dim = qwtMin(hint.width(), int(rect.width() * d_data->legendRatio)); if ( !(options & IgnoreScrollbars) ) { if ( hint.height() > rect.height() ) { // The legend will need additional // space for the vertical scrollbar. dim += d_data->layoutData.legend.vScrollBarWidth; } } } else { dim = qwtMin(hint.height(), int(rect.height() * d_data->legendRatio)); dim = qwtMax(dim, d_data->layoutData.legend.hScrollBarHeight); } QRect legendRect = rect; switch(d_data->legendPos) { case QwtPlot::LeftLegend: legendRect.setWidth(dim); break; case QwtPlot::RightLegend: legendRect.setX(rect.right() - dim + 1); legendRect.setWidth(dim); break; case QwtPlot::TopLegend: legendRect.setHeight(dim); break; case QwtPlot::BottomLegend: legendRect.setY(rect.bottom() - dim + 1); legendRect.setHeight(dim); break; case QwtPlot::ExternalLegend: break; } return legendRect; } /*! Align the legend to the canvas \param canvasRect Geometry of the canvas \param legendRect Maximum geometry for the legend \return Geometry for the aligned legend */ QRect QwtPlotLayout::alignLegend(const QRect &canvasRect, const QRect &legendRect) const { QRect alignedRect = legendRect; if ( d_data->legendPos == QwtPlot::BottomLegend || d_data->legendPos == QwtPlot::TopLegend ) { if ( d_data->layoutData.legend.hint.width() < canvasRect.width() ) { alignedRect.setX(canvasRect.x()); alignedRect.setWidth(canvasRect.width()); } } else { if ( d_data->layoutData.legend.hint.height() < canvasRect.height() ) { alignedRect.setY(canvasRect.y()); alignedRect.setHeight(canvasRect.height()); } } return alignedRect; } /*! Expand all line breaks in text labels, and calculate the height of their widgets in orientation of the text. \param options Options how to layout the legend \param rect Bounding rect for title, axes and canvas. \param dimTitle Expanded height of the title widget \param dimAxis Expanded heights of the axis in axis orientation. \sa Options */ void QwtPlotLayout::expandLineBreaks(int options, const QRect &rect, int &dimTitle, int dimAxis[QwtPlot::axisCnt]) const { dimTitle = 0; for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) dimAxis[axis] = 0; int backboneOffset[QwtPlot::axisCnt]; for (int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { backboneOffset[axis] = 0; if ( !d_data->alignCanvasToScales ) backboneOffset[axis] += d_data->canvasMargin[axis]; if ( !(options & IgnoreFrames) ) backboneOffset[axis] += d_data->layoutData.canvas.frameWidth; } bool done = false; while (!done) { done = true; // the size for the 4 axis depend on each other. Expanding // the height of a horizontal axis will shrink the height // for the vertical axis, shrinking the height of a vertical // axis will result in a line break what will expand the // width and results in shrinking the width of a horizontal // axis what might result in a line break of a horizontal // axis ... . So we loop as long until no size changes. if ( !d_data->layoutData.title.text.isEmpty() ) { int w = rect.width(); if ( d_data->layoutData.scale[QwtPlot::yLeft].isEnabled != d_data->layoutData.scale[QwtPlot::yRight].isEnabled ) { // center to the canvas w -= dimAxis[QwtPlot::yLeft] + dimAxis[QwtPlot::yRight]; } int d = d_data->layoutData.title.text.heightForWidth(w); if ( !(options & IgnoreFrames) ) d += 2 * d_data->layoutData.title.frameWidth; if ( d > dimTitle ) { dimTitle = d; done = false; } } for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { const struct LayoutData::t_scaleData &scaleData = d_data->layoutData.scale[axis]; if (scaleData.isEnabled) { int length; if ( axis == QwtPlot::xTop || axis == QwtPlot::xBottom ) { length = rect.width() - dimAxis[QwtPlot::yLeft] - dimAxis[QwtPlot::yRight]; length -= scaleData.start + scaleData.end; if ( dimAxis[QwtPlot::yRight] > 0 ) length -= 1; length += qwtMin(dimAxis[QwtPlot::yLeft], scaleData.start - backboneOffset[QwtPlot::yLeft]); length += qwtMin(dimAxis[QwtPlot::yRight], scaleData.end - backboneOffset[QwtPlot::yRight]); } else // QwtPlot::yLeft, QwtPlot::yRight { length = rect.height() - dimAxis[QwtPlot::xTop] - dimAxis[QwtPlot::xBottom]; length -= scaleData.start + scaleData.end; length -= 1; if ( dimAxis[QwtPlot::xBottom] <= 0 ) length -= 1; if ( dimAxis[QwtPlot::xTop] <= 0 ) length -= 1; if ( dimAxis[QwtPlot::xBottom] > 0 ) { length += qwtMin( d_data->layoutData.scale[QwtPlot::xBottom].tickOffset, scaleData.start - backboneOffset[QwtPlot::xBottom]); } if ( dimAxis[QwtPlot::xTop] > 0 ) { length += qwtMin( d_data->layoutData.scale[QwtPlot::xTop].tickOffset, scaleData.end - backboneOffset[QwtPlot::xTop]); } if ( dimTitle > 0 ) length -= dimTitle + d_data->spacing; } int d = scaleData.dimWithoutTitle; if ( !scaleData.scaleWidget->title().isEmpty() ) { d += scaleData.scaleWidget->titleHeightForWidth(length); } if ( d > dimAxis[axis] ) { dimAxis[axis] = d; done = false; } } } } } /*! Align the ticks of the axis to the canvas borders using the empty corners. \sa Options */ void QwtPlotLayout::alignScales(int options, QRect &canvasRect, QRect scaleRect[QwtPlot::axisCnt]) const { int axis; int backboneOffset[QwtPlot::axisCnt]; for (axis = 0; axis < QwtPlot::axisCnt; axis++ ) { backboneOffset[axis] = 0; if ( !d_data->alignCanvasToScales ) backboneOffset[axis] += d_data->canvasMargin[axis]; if ( !(options & IgnoreFrames) ) backboneOffset[axis] += d_data->layoutData.canvas.frameWidth; } for (axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( !scaleRect[axis].isValid() ) continue; const int startDist = d_data->layoutData.scale[axis].start; const int endDist = d_data->layoutData.scale[axis].end; QRect &axisRect = scaleRect[axis]; if ( axis == QwtPlot::xTop || axis == QwtPlot::xBottom ) { const int leftOffset = backboneOffset[QwtPlot::yLeft] - startDist; if ( scaleRect[QwtPlot::yLeft].isValid() ) { int minLeft = scaleRect[QwtPlot::yLeft].left(); int left = axisRect.left() + leftOffset; axisRect.setLeft(qwtMax(left, minLeft)); } else { if ( d_data->alignCanvasToScales && leftOffset < 0 ) { canvasRect.setLeft(qwtMax(canvasRect.left(), axisRect.left() - leftOffset)); } else { if ( leftOffset > 0 ) axisRect.setLeft(axisRect.left() + leftOffset); } } const int rightOffset = backboneOffset[QwtPlot::yRight] - endDist + 1; if ( scaleRect[QwtPlot::yRight].isValid() ) { int maxRight = scaleRect[QwtPlot::yRight].right(); int right = axisRect.right() - rightOffset; axisRect.setRight(qwtMin(right, maxRight)); } else { if ( d_data->alignCanvasToScales && rightOffset < 0 ) { canvasRect.setRight( qwtMin(canvasRect.right(), axisRect.right() + rightOffset) ); } else { if ( rightOffset > 0 ) axisRect.setRight(axisRect.right() - rightOffset); } } } else // QwtPlot::yLeft, QwtPlot::yRight { const int bottomOffset = backboneOffset[QwtPlot::xBottom] - endDist + 1; if ( scaleRect[QwtPlot::xBottom].isValid() ) { int maxBottom = scaleRect[QwtPlot::xBottom].top() + d_data->layoutData.scale[QwtPlot::xBottom].tickOffset; int bottom = axisRect.bottom() - bottomOffset; axisRect.setBottom(qwtMin(bottom, maxBottom)); } else { if ( d_data->alignCanvasToScales && bottomOffset < 0 ) { canvasRect.setBottom(qwtMin(canvasRect.bottom(), axisRect.bottom() + bottomOffset)); } else { if ( bottomOffset > 0 ) axisRect.setBottom(axisRect.bottom() - bottomOffset); } } const int topOffset = backboneOffset[QwtPlot::xTop] - startDist; if ( scaleRect[QwtPlot::xTop].isValid() ) { int minTop = scaleRect[QwtPlot::xTop].bottom() - d_data->layoutData.scale[QwtPlot::xTop].tickOffset; int top = axisRect.top() + topOffset; axisRect.setTop(qwtMax(top, minTop)); } else { if ( d_data->alignCanvasToScales && topOffset < 0 ) { canvasRect.setTop(qwtMax(canvasRect.top(), axisRect.top() - topOffset)); } else { if ( topOffset > 0 ) axisRect.setTop(axisRect.top() + topOffset); } } } } if ( d_data->alignCanvasToScales ) { /* The canvas has been aligned to the scale with largest border distances. Now we have to realign the other scale. */ int fw = 0; if ( !(options & IgnoreFrames) ) fw = d_data->layoutData.canvas.frameWidth; if ( scaleRect[QwtPlot::xBottom].isValid() && scaleRect[QwtPlot::xTop].isValid() ) { for ( int axis = QwtPlot::xBottom; axis <= QwtPlot::xTop; axis++ ) { scaleRect[axis].setLeft(canvasRect.left() + fw - d_data->layoutData.scale[axis].start); scaleRect[axis].setRight(canvasRect.right() - fw - 1 + d_data->layoutData.scale[axis].end); } } if ( scaleRect[QwtPlot::yLeft].isValid() && scaleRect[QwtPlot::yRight].isValid() ) { for ( int axis = QwtPlot::yLeft; axis <= QwtPlot::yRight; axis++ ) { scaleRect[axis].setTop(canvasRect.top() + fw - d_data->layoutData.scale[axis].start); scaleRect[axis].setBottom(canvasRect.bottom() - fw - 1 + d_data->layoutData.scale[axis].end); } } } } /*! \brief Recalculate the geometry of all components. \param plot Plot to be layout \param plotRect Rect where to place the components \param options Options \sa invalidate(), Options, titleRect(), legendRect(), scaleRect(), canvasRect() */ void QwtPlotLayout::activate(const QwtPlot *plot, const QRect &plotRect, int options) { invalidate(); QRect rect(plotRect); // undistributed rest of the plot rect if ( !(options & IgnoreMargin) ) { // subtract the margin rect.setRect( rect.x() + d_data->margin, rect.y() + d_data->margin, rect.width() - 2 * d_data->margin, rect.height() - 2 * d_data->margin ); } // We extract all layout relevant data from the widgets, // filter them through pfilter and save them to d_data->layoutData. d_data->layoutData.init(plot, rect); if (!(options & IgnoreLegend) && d_data->legendPos != QwtPlot::ExternalLegend && plot->legend() && !plot->legend()->isEmpty() ) { d_data->legendRect = layoutLegend(options, rect); // subtract d_data->legendRect from rect const QRegion region(rect); rect = region.subtract(d_data->legendRect).boundingRect(); if ( d_data->layoutData.legend.frameWidth && !(options & IgnoreFrames ) ) { // In case of a frame we have to insert a spacing. // Otherwise the leading of the font separates // legend and scale/canvas switch(d_data->legendPos) { case QwtPlot::LeftLegend: rect.setLeft(rect.left() + d_data->spacing); break; case QwtPlot::RightLegend: rect.setRight(rect.right() - d_data->spacing); break; case QwtPlot::TopLegend: rect.setTop(rect.top() + d_data->spacing); break; case QwtPlot::BottomLegend: rect.setBottom(rect.bottom() - d_data->spacing); break; case QwtPlot::ExternalLegend: break; // suppress compiler warning } } } #ifdef __GNUC__ #endif /* +---+-----------+---+ | Title | +---+-----------+---+ | | Axis | | +---+-----------+---+ | A | | A | | x | Canvas | x | | i | | i | | s | | s | +---+-----------+---+ | | Axis | | +---+-----------+---+ */ // axes and title include text labels. The height of each // label depends on its line breaks, that depend on the width // for the label. A line break in a horizontal text will reduce // the available width for vertical texts and vice versa. // expandLineBreaks finds the height/width for title and axes // including all line breaks. int dimTitle, dimAxes[QwtPlot::axisCnt]; expandLineBreaks(options, rect, dimTitle, dimAxes); if (dimTitle > 0 ) { d_data->titleRect = QRect(rect.x(), rect.y(), rect.width(), dimTitle); if ( d_data->layoutData.scale[QwtPlot::yLeft].isEnabled != d_data->layoutData.scale[QwtPlot::yRight].isEnabled ) { // if only one of the y axes is missing we align // the title centered to the canvas d_data->titleRect.setX(rect.x() + dimAxes[QwtPlot::yLeft]); d_data->titleRect.setWidth(rect.width() - dimAxes[QwtPlot::yLeft] - dimAxes[QwtPlot::yRight]); } // subtract title rect.setTop(rect.top() + dimTitle + d_data->spacing); } d_data->canvasRect.setRect( rect.x() + dimAxes[QwtPlot::yLeft], rect.y() + dimAxes[QwtPlot::xTop], rect.width() - dimAxes[QwtPlot::yRight] - dimAxes[QwtPlot::yLeft], rect.height() - dimAxes[QwtPlot::xBottom] - dimAxes[QwtPlot::xTop]); for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { // set the rects for the axes if ( dimAxes[axis] ) { int dim = dimAxes[axis]; QRect &scaleRect = d_data->scaleRect[axis]; scaleRect = d_data->canvasRect; switch(axis) { case QwtPlot::yLeft: scaleRect.setX(d_data->canvasRect.left() - dim); scaleRect.setWidth(dim); break; case QwtPlot::yRight: scaleRect.setX(d_data->canvasRect.right() + 1); scaleRect.setWidth(dim); break; case QwtPlot::xBottom: scaleRect.setY(d_data->canvasRect.bottom() + 1); scaleRect.setHeight(dim); break; case QwtPlot::xTop: scaleRect.setY(d_data->canvasRect.top() - dim); scaleRect.setHeight(dim); break; } #if QT_VERSION < 0x040000 scaleRect = scaleRect.normalize(); #else scaleRect = scaleRect.normalized(); #endif } } // +---+-----------+---+ // | <- Axis -> | // +-^-+-----------+-^-+ // | | | | | | // | | | | // | A | | A | // | x | Canvas | x | // | i | | i | // | s | | s | // | | | | // | | | | | | // +-V-+-----------+-V-+ // | <- Axis -> | // +---+-----------+---+ // The ticks of the axes - not the labels above - should // be aligned to the canvas. So we try to use the empty // corners to extend the axes, so that the label texts // left/right of the min/max ticks are moved into them. alignScales(options, d_data->canvasRect, d_data->scaleRect); if (!d_data->legendRect.isEmpty() ) { // We prefer to align the legend to the canvas - not to // the complete plot - if possible. d_data->legendRect = alignLegend(d_data->canvasRect, d_data->legendRect); } } qwt5-5.2.3/src/qwt_data.h0000644000175000017500000000745012052741123014526 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_DATA_H #define QWT_DATA_H 1 #include "qwt_global.h" #include "qwt_array.h" #include "qwt_double_rect.h" #if QT_VERSION >= 0x040000 #include #endif // MOC_SKIP_BEGIN #if defined(QWT_TEMPLATEDLL) template class QWT_EXPORT QwtArray; #if QT_VERSION < 0x040000 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT template class QWT_EXPORT QwtArray; #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT #endif #endif // MOC_SKIP_END /*! \brief QwtData defines an interface to any type of curve data. Classes, derived from QwtData may: - store the data in almost any type of container - calculate the data on the fly instead of storing it */ class QWT_EXPORT QwtData { public: QwtData(); virtual ~QwtData(); //! \return Pointer to a copy (virtual copy constructor) virtual QwtData *copy() const = 0; //! \return Size of the data set virtual size_t size() const = 0; /*! Return the x value of data point i \param i Index \return x X value of data point i */ virtual double x(size_t i) const = 0; /*! Return the y value of data point i \param i Index \return y Y value of data point i */ virtual double y(size_t i) const = 0; virtual QwtDoubleRect boundingRect() const; protected: /*! Assignment operator (virtualized) */ QwtData &operator=(const QwtData &); }; /*! \brief Data class containing a single QwtArray object. */ class QWT_EXPORT QwtPolygonFData: public QwtData { public: #if QT_VERSION < 0x040000 QwtPolygonFData(const QwtArray &); #else QwtPolygonFData(const QPolygonF &); #endif QwtPolygonFData &operator=(const QwtPolygonFData &); virtual QwtData *copy() const; virtual size_t size() const; virtual double x(size_t i) const; virtual double y(size_t i) const; #if QT_VERSION < 0x040000 const QwtArray &data() const; #else const QPolygonF &data() const; #endif private: #if QT_VERSION < 0x040000 QwtArray d_data; #else QPolygonF d_data; #endif }; /*! \brief Data class containing two QwtArray objects. */ class QWT_EXPORT QwtArrayData: public QwtData { public: QwtArrayData(const QwtArray &x, const QwtArray &y); QwtArrayData(const double *x, const double *y, size_t size); QwtArrayData &operator=(const QwtArrayData &); virtual QwtData *copy() const; virtual size_t size() const; virtual double x(size_t i) const; virtual double y(size_t i) const; const QwtArray &xData() const; const QwtArray &yData() const; virtual QwtDoubleRect boundingRect() const; private: QwtArray d_x; QwtArray d_y; }; /*! \brief Data class containing two pointers to memory blocks of doubles. */ class QWT_EXPORT QwtCPointerData: public QwtData { public: QwtCPointerData(const double *x, const double *y, size_t size); QwtCPointerData &operator=(const QwtCPointerData &); virtual QwtData *copy() const; virtual size_t size() const; virtual double x(size_t i) const; virtual double y(size_t i) const; const double *xData() const; const double *yData() const; virtual QwtDoubleRect boundingRect() const; private: const double *d_x; const double *d_y; size_t d_size; }; #endif // !QWT_DATA qwt5-5.2.3/src/qwt_text_label.h0000644000175000017500000000335712052741123015742 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_TEXT_LABEL_H #define QWT_TEXT_LABEL_H #include #include "qwt_global.h" #include "qwt_text.h" class QString; class QPaintEvent; class QPainter; /*! \brief A Widget which displays a QwtText */ class QWT_EXPORT QwtTextLabel : public QFrame { Q_OBJECT Q_PROPERTY( int indent READ indent WRITE setIndent ) Q_PROPERTY( int margin READ margin WRITE setMargin ) public: explicit QwtTextLabel(QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtTextLabel(QWidget *parent, const char *name); #endif explicit QwtTextLabel(const QwtText &, QWidget *parent = NULL); virtual ~QwtTextLabel(); public slots: void setText(const QString &, QwtText::TextFormat textFormat = QwtText::AutoText); virtual void setText(const QwtText &); void clear(); public: const QwtText &text() const; int indent() const; void setIndent(int); int margin() const; void setMargin(int); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; virtual int heightForWidth(int) const; QRect textRect() const; protected: virtual void paintEvent(QPaintEvent *e); virtual void drawContents(QPainter *); virtual void drawText(QPainter *, const QRect &); private: void init(); int defaultIndent() const; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_zoomer.cpp0000644000175000017500000004100512052741126016516 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_plot_zoomer.h" #include "qwt_scale_div.h" #if QT_VERSION < 0x040000 typedef QValueStack QwtZoomStack; #else typedef QStack QwtZoomStack; #endif class QwtPlotZoomer::PrivateData { public: uint zoomRectIndex; QwtZoomStack zoomStack; int maxStackDepth; }; /*! \brief Create a zoomer for a plot canvas. The zoomer is set to those x- and y-axis of the parent plot of the canvas that are enabled. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom. If both or no y-axis are enabled, it is set to QwtPlot::yLeft. The selectionFlags() are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly. \param canvas Plot canvas to observe, also the parent object \param doReplot Call replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes. \sa QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase() */ QwtPlotZoomer::QwtPlotZoomer(QwtPlotCanvas *canvas, bool doReplot): QwtPlotPicker(canvas) { if ( canvas ) init(RectSelection | ClickSelection, ActiveOnly, doReplot); } /*! \brief Create a zoomer for a plot canvas. The selectionFlags() are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly. \param xAxis X axis of the zoomer \param yAxis Y axis of the zoomer \param canvas Plot canvas to observe, also the parent object \param doReplot Call replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes. \sa QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase() */ QwtPlotZoomer::QwtPlotZoomer(int xAxis, int yAxis, QwtPlotCanvas *canvas, bool doReplot): QwtPlotPicker(xAxis, yAxis, canvas) { if ( canvas ) init(RectSelection | ClickSelection, ActiveOnly, doReplot); } /*! Create a zoomer for a plot canvas. \param xAxis X axis of the zoomer \param yAxis Y axis of the zoomer \param selectionFlags Or'd value of QwtPicker::RectSelectionType and QwtPicker::SelectionMode. QwtPicker::RectSelection will be auto added. \param trackerMode Tracker mode \param canvas Plot canvas to observe, also the parent object \param doReplot Call replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes. \sa QwtPicker, QwtPicker::setSelectionFlags(), QwtPicker::setRubberBand(), QwtPicker::setTrackerMode() \sa QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase() */ QwtPlotZoomer::QwtPlotZoomer(int xAxis, int yAxis, int selectionFlags, DisplayMode trackerMode, QwtPlotCanvas *canvas, bool doReplot): QwtPlotPicker(xAxis, yAxis, canvas) { if ( canvas ) init(selectionFlags, trackerMode, doReplot); } //! Init the zoomer, used by the constructors void QwtPlotZoomer::init(int selectionFlags, DisplayMode trackerMode, bool doReplot) { d_data = new PrivateData; d_data->maxStackDepth = -1; setSelectionFlags(selectionFlags); setTrackerMode(trackerMode); setRubberBand(RectRubberBand); if ( doReplot && plot() ) plot()->replot(); setZoomBase(scaleRect()); } QwtPlotZoomer::~QwtPlotZoomer() { delete d_data; } /*! \brief Limit the number of recursive zoom operations to depth. A value of -1 set the depth to unlimited, 0 disables zooming. If the current zoom rectangle is below depth, the plot is unzoomed. \param depth Maximum for the stack depth \sa maxStackDepth() \note depth doesn't include the zoom base, so zoomStack().count() might be maxStackDepth() + 1. */ void QwtPlotZoomer::setMaxStackDepth(int depth) { d_data->maxStackDepth = depth; if ( depth >= 0 ) { // unzoom if the current depth is below d_data->maxStackDepth const int zoomOut = int(d_data->zoomStack.count()) - 1 - depth; // -1 for the zoom base if ( zoomOut > 0 ) { zoom(-zoomOut); for ( int i = int(d_data->zoomStack.count()) - 1; i > int(d_data->zoomRectIndex); i-- ) { (void)d_data->zoomStack.pop(); // remove trailing rects } } } } /*! \return Maximal depth of the zoom stack. \sa setMaxStackDepth() */ int QwtPlotZoomer::maxStackDepth() const { return d_data->maxStackDepth; } /*! Return the zoom stack. zoomStack()[0] is the zoom base, zoomStack()[1] the first zoomed rectangle. \sa setZoomStack(), zoomRectIndex() */ const QwtZoomStack &QwtPlotZoomer::zoomStack() const { return d_data->zoomStack; } /*! \return Initial rectangle of the zoomer \sa setZoomBase(), zoomRect() */ QwtDoubleRect QwtPlotZoomer::zoomBase() const { return d_data->zoomStack[0]; } /*! Reinitialized the zoom stack with scaleRect() as base. \param doReplot Call replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes. \sa zoomBase(), scaleRect() QwtPlot::autoReplot(), QwtPlot::replot(). */ void QwtPlotZoomer::setZoomBase(bool doReplot) { QwtPlot *plt = plot(); if ( plt == NULL ) return; if ( doReplot ) plt->replot(); d_data->zoomStack.clear(); d_data->zoomStack.push(scaleRect()); d_data->zoomRectIndex = 0; rescale(); } /*! \brief Set the initial size of the zoomer. base is united with the current scaleRect() and the zoom stack is reinitalized with it as zoom base. plot is zoomed to scaleRect(). \param base Zoom base \sa zoomBase(), scaleRect() */ void QwtPlotZoomer::setZoomBase(const QwtDoubleRect &base) { const QwtPlot *plt = plot(); if ( !plt ) return; const QwtDoubleRect sRect = scaleRect(); const QwtDoubleRect bRect = base | sRect; d_data->zoomStack.clear(); d_data->zoomStack.push(bRect); d_data->zoomRectIndex = 0; if ( base != sRect ) { d_data->zoomStack.push(sRect); d_data->zoomRectIndex++; } rescale(); } /*! Rectangle at the current position on the zoom stack. \sa zoomRectIndex(), scaleRect(). */ QwtDoubleRect QwtPlotZoomer::zoomRect() const { return d_data->zoomStack[d_data->zoomRectIndex]; } /*! \return Index of current position of zoom stack. */ uint QwtPlotZoomer::zoomRectIndex() const { return d_data->zoomRectIndex; } /*! \brief Zoom in Clears all rectangles above the current position of the zoom stack and pushs the intersection of zoomRect() and the normalized rect on it. \note If the maximal stack depth is reached, zoom is ignored. \note The zoomed signal is emitted. */ void QwtPlotZoomer::zoom(const QwtDoubleRect &rect) { if ( d_data->maxStackDepth >= 0 && int(d_data->zoomRectIndex) >= d_data->maxStackDepth ) { return; } const QwtDoubleRect zoomRect = d_data->zoomStack[0] & rect.normalized(); if ( zoomRect != d_data->zoomStack[d_data->zoomRectIndex] ) { for ( uint i = int(d_data->zoomStack.count()) - 1; i > d_data->zoomRectIndex; i-- ) { (void)d_data->zoomStack.pop(); } d_data->zoomStack.push(zoomRect); d_data->zoomRectIndex++; rescale(); emit zoomed(zoomRect); } } /*! \brief Zoom in or out Activate a rectangle on the zoom stack with an offset relative to the current position. Negative values of offest will zoom out, positive zoom in. A value of 0 zooms out to the zoom base. \param offset Offset relative to the current position of the zoom stack. \note The zoomed signal is emitted. \sa zoomRectIndex() */ void QwtPlotZoomer::zoom(int offset) { if ( offset == 0 ) d_data->zoomRectIndex = 0; else { int newIndex = d_data->zoomRectIndex + offset; newIndex = qwtMax(0, newIndex); newIndex = qwtMin(int(d_data->zoomStack.count()) - 1, newIndex); d_data->zoomRectIndex = uint(newIndex); } rescale(); emit zoomed(zoomRect()); } /*! \brief Assign a zoom stack In combination with other types of navigation it might be useful to modify to manipulate the complete zoom stack. \param zoomStack New zoom stack \param zoomRectIndex Index of the current position of zoom stack. In case of -1 the current position is at the top of the stack. \note The zoomed signal might be emitted. \sa zoomStack(), zoomRectIndex() */ void QwtPlotZoomer::setZoomStack( const QwtZoomStack &zoomStack, int zoomRectIndex) { if ( zoomStack.isEmpty() ) return; if ( d_data->maxStackDepth >= 0 && int(zoomStack.count()) > d_data->maxStackDepth ) { return; } if ( zoomRectIndex < 0 || zoomRectIndex > int(zoomStack.count()) ) zoomRectIndex = zoomStack.count() - 1; const bool doRescale = zoomStack[zoomRectIndex] != zoomRect(); d_data->zoomStack = zoomStack; d_data->zoomRectIndex = uint(zoomRectIndex); if ( doRescale ) { rescale(); emit zoomed(zoomRect()); } } /*! Adjust the observed plot to zoomRect() \note Initiates QwtPlot::replot */ void QwtPlotZoomer::rescale() { QwtPlot *plt = plot(); if ( !plt ) return; const QwtDoubleRect &rect = d_data->zoomStack[d_data->zoomRectIndex]; if ( rect != scaleRect() ) { const bool doReplot = plt->autoReplot(); plt->setAutoReplot(false); double x1 = rect.left(); double x2 = rect.right(); if ( plt->axisScaleDiv(xAxis())->lowerBound() > plt->axisScaleDiv(xAxis())->upperBound() ) { qSwap(x1, x2); } plt->setAxisScale(xAxis(), x1, x2); double y1 = rect.top(); double y2 = rect.bottom(); if ( plt->axisScaleDiv(yAxis())->lowerBound() > plt->axisScaleDiv(yAxis())->upperBound() ) { qSwap(y1, y2); } plt->setAxisScale(yAxis(), y1, y2); plt->setAutoReplot(doReplot); plt->replot(); } } /*! Reinitialize the axes, and set the zoom base to their scales. \param xAxis X axis \param yAxis Y axis */ void QwtPlotZoomer::setAxis(int xAxis, int yAxis) { if ( xAxis != QwtPlotPicker::xAxis() || yAxis != QwtPlotPicker::yAxis() ) { QwtPlotPicker::setAxis(xAxis, yAxis); setZoomBase(scaleRect()); } } /*! Qt::MidButton zooms out one position on the zoom stack, Qt::RightButton to the zoom base. Changes the current position on the stack, but doesn't pop any rectangle. \note The mouse events can be changed, using QwtEventPattern::setMousePattern: 2, 1 */ void QwtPlotZoomer::widgetMouseReleaseEvent(QMouseEvent *me) { if ( mouseMatch(MouseSelect2, me) ) zoom(0); else if ( mouseMatch(MouseSelect3, me) ) zoom(-1); else if ( mouseMatch(MouseSelect6, me) ) zoom(+1); else QwtPlotPicker::widgetMouseReleaseEvent(me); } /*! Qt::Key_Plus zooms in, Qt::Key_Minus zooms out one position on the zoom stack, Qt::Key_Escape zooms out to the zoom base. Changes the current position on the stack, but doesn't pop any rectangle. \note The keys codes can be changed, using QwtEventPattern::setKeyPattern: 3, 4, 5 */ void QwtPlotZoomer::widgetKeyPressEvent(QKeyEvent *ke) { if ( !isActive() ) { if ( keyMatch(KeyUndo, ke) ) zoom(-1); else if ( keyMatch(KeyRedo, ke) ) zoom(+1); else if ( keyMatch(KeyHome, ke) ) zoom(0); } QwtPlotPicker::widgetKeyPressEvent(ke); } /*! Move the current zoom rectangle. \param dx X offset \param dy Y offset \note The changed rectangle is limited by the zoom base */ void QwtPlotZoomer::moveBy(double dx, double dy) { const QwtDoubleRect &rect = d_data->zoomStack[d_data->zoomRectIndex]; move(rect.left() + dx, rect.top() + dy); } /*! Move the the current zoom rectangle. \param x X value \param y Y value \sa QwtDoubleRect::move() \note The changed rectangle is limited by the zoom base */ void QwtPlotZoomer::move(double x, double y) { if ( x < zoomBase().left() ) x = zoomBase().left(); if ( x > zoomBase().right() - zoomRect().width() ) x = zoomBase().right() - zoomRect().width(); if ( y < zoomBase().top() ) y = zoomBase().top(); if ( y > zoomBase().bottom() - zoomRect().height() ) y = zoomBase().bottom() - zoomRect().height(); if ( x != zoomRect().left() || y != zoomRect().top() ) { d_data->zoomStack[d_data->zoomRectIndex].moveTo(x, y); rescale(); } } /*! \brief Check and correct a selected rectangle Reject rectangles with a hight or width < 2, otherwise expand the selected rectangle to a minimum size of 11x11 and accept it. \return true If rect is accepted, or has been changed to a accepted rectangle. */ bool QwtPlotZoomer::accept(QwtPolygon &pa) const { if ( pa.count() < 2 ) return false; QRect rect = QRect(pa[0], pa[int(pa.count()) - 1]); #if QT_VERSION < 0x040000 rect = rect.normalize(); #else rect = rect.normalized(); #endif const int minSize = 2; if (rect.width() < minSize && rect.height() < minSize ) return false; const int minZoomSize = 11; const QPoint center = rect.center(); rect.setSize(rect.size().expandedTo(QSize(minZoomSize, minZoomSize))); rect.moveCenter(center); pa.resize(2); pa[0] = rect.topLeft(); pa[1] = rect.bottomRight(); return true; } /*! \brief Limit zooming by a minimum rectangle \return zoomBase().width() / 10e4, zoomBase().height() / 10e4 */ QwtDoubleSize QwtPlotZoomer::minZoomSize() const { return QwtDoubleSize( d_data->zoomStack[0].width() / 10e4, d_data->zoomStack[0].height() / 10e4 ); } /*! Rejects selections, when the stack depth is too deep, or the zoomed rectangle is minZoomSize(). \sa minZoomSize(), maxStackDepth() */ void QwtPlotZoomer::begin() { if ( d_data->maxStackDepth >= 0 ) { if ( d_data->zoomRectIndex >= uint(d_data->maxStackDepth) ) return; } const QwtDoubleSize minSize = minZoomSize(); if ( minSize.isValid() ) { const QwtDoubleSize sz = d_data->zoomStack[d_data->zoomRectIndex].size() * 0.9999; if ( minSize.width() >= sz.width() && minSize.height() >= sz.height() ) { return; } } QwtPlotPicker::begin(); } /*! Expand the selected rectangle to minZoomSize() and zoom in if accepted. \sa accept(), minZoomSize() */ bool QwtPlotZoomer::end(bool ok) { ok = QwtPlotPicker::end(ok); if (!ok) return false; QwtPlot *plot = QwtPlotZoomer::plot(); if ( !plot ) return false; const QwtPolygon &pa = selection(); if ( pa.count() < 2 ) return false; QRect rect = QRect(pa[0], pa[int(pa.count() - 1)]); #if QT_VERSION < 0x040000 rect = rect.normalize(); #else rect = rect.normalized(); #endif QwtDoubleRect zoomRect = invTransform(rect).normalized(); const QwtDoublePoint center = zoomRect.center(); zoomRect.setSize(zoomRect.size().expandedTo(minZoomSize())); zoomRect.moveCenter(center); zoom(zoomRect); return true; } /*! Set the selection flags \param flags Or'd value of QwtPicker::RectSelectionType and QwtPicker::SelectionMode. The default value is QwtPicker::RectSelection & QwtPicker::ClickSelection. \sa selectionFlags(), SelectionType, RectSelectionType, SelectionMode \note QwtPicker::RectSelection will be auto added. */ void QwtPlotZoomer::setSelectionFlags(int flags) { // we accept only rects flags &= ~(PointSelection | PolygonSelection); flags |= RectSelection; QwtPlotPicker::setSelectionFlags(flags); } qwt5-5.2.3/src/qwt_spline.h0000644000175000017500000000577212052741123015114 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SPLINE_H #define QWT_SPLINE_H #include "qwt_global.h" #include "qwt_double_rect.h" #if QT_VERSION >= 0x040000 #include #else #include "qwt_array.h" #endif // MOC_SKIP_BEGIN #if defined(QWT_TEMPLATEDLL) #if QT_VERSION < 0x040000 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT template class QWT_EXPORT QwtArray; #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT #endif #endif // MOC_SKIP_END /*! \brief A class for spline interpolation The QwtSpline class is used for cubical spline interpolation. Two types of splines, natural and periodic, are supported. \par Usage:
  1. First call setPoints() to determine the spline coefficients for a tabulated function y(x).
  2. After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling QwtSpline::value().
\par Example: \code #include QPolygonF interpolate(const QPolygonF& points, int numValues) { QwtSpline spline; if ( !spline.setPoints(points) ) return points; QPolygonF interpolatedPoints(numValues); const double delta = (points[numPoints - 1].x() - points[0].x()) / (points.size() - 1); for(i = 0; i < points.size(); i++) / interpolate { const double x = points[0].x() + i * delta; interpolatedPoints[i].setX(x); interpolatedPoints[i].setY(spline.value(x)); } return interpolatedPoints; } \endcode */ class QWT_EXPORT QwtSpline { public: //! Spline type enum SplineType { Natural, Periodic }; QwtSpline(); QwtSpline( const QwtSpline & ); ~QwtSpline(); QwtSpline &operator=( const QwtSpline & ); void setSplineType(SplineType); SplineType splineType() const; #if QT_VERSION < 0x040000 bool setPoints(const QwtArray& points); QwtArray points() const; #else bool setPoints(const QPolygonF& points); QPolygonF points() const; #endif void reset(); bool isValid() const; double value(double x) const; const QwtArray &coefficientsA() const; const QwtArray &coefficientsB() const; const QwtArray &coefficientsC() const; protected: #if QT_VERSION < 0x040000 bool buildNaturalSpline( const QwtArray &); bool buildPeriodicSpline( const QwtArray &); #else bool buildNaturalSpline(const QPolygonF &); bool buildPeriodicSpline(const QPolygonF &); #endif class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_interval_data.cpp0000644000175000017500000000415412052741126016766 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_math.h" #include "qwt_interval_data.h" //! Constructor QwtIntervalData::QwtIntervalData() { } //! Constructor QwtIntervalData::QwtIntervalData( const QwtArray &intervals, const QwtArray &values): d_intervals(intervals), d_values(values) { } //! Destructor QwtIntervalData::~QwtIntervalData() { } //! Assign samples void QwtIntervalData::setData( const QwtArray &intervals, const QwtArray &values) { d_intervals = intervals; d_values = values; } /*! Calculate the bounding rectangle of the samples The x coordinates of the rectangle are built from the intervals, the y coordinates from the values. \return Bounding rectangle */ QwtDoubleRect QwtIntervalData::boundingRect() const { double minX, maxX, minY, maxY; minX = maxX = minY = maxY = 0.0; bool isValid = false; const size_t sz = size(); for ( size_t i = 0; i < sz; i++ ) { const QwtDoubleInterval intv = interval(i); if ( !intv.isValid() ) continue; const double v = value(i); if ( !isValid ) { minX = intv.minValue(); maxX = intv.maxValue(); minY = maxY = v; isValid = true; } else { if ( intv.minValue() < minX ) minX = intv.minValue(); if ( intv.maxValue() > maxX ) maxX = intv.maxValue(); if ( v < minY ) minY = v; if ( v > maxY ) maxY = v; } } if ( !isValid ) return QwtDoubleRect(1.0, 1.0, -2.0, -2.0); // invalid return QwtDoubleRect(minX, minY, maxX - minX, maxY - minY); } qwt5-5.2.3/src/qwt_knob.cpp0000644000175000017500000002762112052741126015106 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include "qwt_round_scale_draw.h" #include "qwt_knob.h" #include "qwt_math.h" #include "qwt_painter.h" #include "qwt_paint_buffer.h" class QwtKnob::PrivateData { public: PrivateData() { angle = 0.0; nTurns = 0.0; borderWidth = 2; borderDist = 4; totalAngle = 270.0; scaleDist = 4; symbol = Line; maxScaleTicks = 11; knobWidth = 50; dotWidth = 8; } int borderWidth; int borderDist; int scaleDist; int maxScaleTicks; int knobWidth; int dotWidth; Symbol symbol; double angle; double totalAngle; double nTurns; QRect knobRect; // bounding rect of the knob without scale }; /*! Constructor \param parent Parent widget */ QwtKnob::QwtKnob(QWidget* parent): QwtAbstractSlider(Qt::Horizontal, parent) { initKnob(); } #if QT_VERSION < 0x040000 /*! Constructor \param parent Parent widget \param name Object name */ QwtKnob::QwtKnob(QWidget* parent, const char *name): QwtAbstractSlider(Qt::Horizontal, parent) { setName(name); initKnob(); } #endif void QwtKnob::initKnob() { #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif d_data = new PrivateData; setScaleDraw(new QwtRoundScaleDraw()); setUpdateTime(50); setTotalAngle( 270.0 ); recalcAngle(); setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); setRange(0.0, 10.0, 1.0); setValue(0.0); } //! Destructor QwtKnob::~QwtKnob() { delete d_data; } /*! \brief Set the symbol of the knob \sa symbol() */ void QwtKnob::setSymbol(QwtKnob::Symbol s) { if ( d_data->symbol != s ) { d_data->symbol = s; update(); } } /*! \return symbol of the knob \sa setSymbol() */ QwtKnob::Symbol QwtKnob::symbol() const { return d_data->symbol; } /*! \brief Set the total angle by which the knob can be turned \param angle Angle in degrees. The default angle is 270 degrees. It is possible to specify an angle of more than 360 degrees so that the knob can be turned several times around its axis. */ void QwtKnob::setTotalAngle (double angle) { if (angle < 10.0) d_data->totalAngle = 10.0; else d_data->totalAngle = angle; scaleDraw()->setAngleRange( -0.5 * d_data->totalAngle, 0.5 * d_data->totalAngle); layoutKnob(); } //! Return the total angle double QwtKnob::totalAngle() const { return d_data->totalAngle; } /*! Change the scale draw of the knob For changing the labels of the scales, it is necessary to derive from QwtRoundScaleDraw and overload QwtRoundScaleDraw::label(). \sa scaleDraw() */ void QwtKnob::setScaleDraw(QwtRoundScaleDraw *scaleDraw) { setAbstractScaleDraw(scaleDraw); setTotalAngle(d_data->totalAngle); } /*! \return the scale draw of the knob \sa setScaleDraw() */ const QwtRoundScaleDraw *QwtKnob::scaleDraw() const { return (QwtRoundScaleDraw *)abstractScaleDraw(); } /*! \return the scale draw of the knob \sa setScaleDraw() */ QwtRoundScaleDraw *QwtKnob::scaleDraw() { return (QwtRoundScaleDraw *)abstractScaleDraw(); } /*! \brief Draw the knob \param painter painter \param r Bounding rectangle of the knob (without scale) */ void QwtKnob::drawKnob(QPainter *painter, const QRect &r) { #if QT_VERSION < 0x040000 const QBrush buttonBrush = colorGroup().brush(QColorGroup::Button); const QColor buttonTextColor = colorGroup().buttonText(); const QColor lightColor = colorGroup().light(); const QColor darkColor = colorGroup().dark(); #else const QBrush buttonBrush = palette().brush(QPalette::Button); const QColor buttonTextColor = palette().color(QPalette::ButtonText); const QColor lightColor = palette().color(QPalette::Light); const QColor darkColor = palette().color(QPalette::Dark); #endif const int bw2 = d_data->borderWidth / 2; const int radius = (qwtMin(r.width(), r.height()) - bw2) / 2; const QRect aRect( r.center().x() - radius, r.center().y() - radius, 2 * radius, 2 * radius); // // draw button face // painter->setBrush(buttonBrush); painter->drawEllipse(aRect); // // draw button shades // QPen pn; pn.setWidth(d_data->borderWidth); pn.setColor(lightColor); painter->setPen(pn); painter->drawArc(aRect, 45*16, 180*16); pn.setColor(darkColor); painter->setPen(pn); painter->drawArc(aRect, 225*16, 180*16); // // draw marker // if ( isValid() ) drawMarker(painter, d_data->angle, buttonTextColor); } /*! \brief Notify change of value Sets the knob's value to the nearest multiple of the step size. */ void QwtKnob::valueChange() { recalcAngle(); update(); QwtAbstractSlider::valueChange(); } /*! \brief Determine the value corresponding to a specified position Called by QwtAbstractSlider \param p point */ double QwtKnob::getValue(const QPoint &p) { const double dx = double((rect().x() + rect().width() / 2) - p.x() ); const double dy = double((rect().y() + rect().height() / 2) - p.y() ); const double arc = atan2(-dx,dy) * 180.0 / M_PI; double newValue = 0.5 * (minValue() + maxValue()) + (arc + d_data->nTurns * 360.0) * (maxValue() - minValue()) / d_data->totalAngle; const double oneTurn = fabs(maxValue() - minValue()) * 360.0 / d_data->totalAngle; const double eqValue = value() + mouseOffset(); if (fabs(newValue - eqValue) > 0.5 * oneTurn) { if (newValue < eqValue) newValue += oneTurn; else newValue -= oneTurn; } return newValue; } /*! \brief Set the scrolling mode and direction Called by QwtAbstractSlider \param p Point in question */ void QwtKnob::getScrollMode(const QPoint &p, int &scrollMode, int &direction) { const int r = d_data->knobRect.width() / 2; const int dx = d_data->knobRect.x() + r - p.x(); const int dy = d_data->knobRect.y() + r - p.y(); if ( (dx * dx) + (dy * dy) <= (r * r)) // point is inside the knob { scrollMode = ScrMouse; direction = 0; } else // point lies outside { scrollMode = ScrTimer; double arc = atan2(double(-dx),double(dy)) * 180.0 / M_PI; if ( arc < d_data->angle) direction = -1; else if (arc > d_data->angle) direction = 1; else direction = 0; } } /*! \brief Notify a change of the range Called by QwtAbstractSlider */ void QwtKnob::rangeChange() { if (autoScale()) rescale(minValue(), maxValue()); layoutKnob(); recalcAngle(); } /*! Qt Resize Event */ void QwtKnob::resizeEvent(QResizeEvent *) { layoutKnob( false ); } /*! Recalculate the knob's geometry and layout based on the current rect and fonts. \param update_geometry notify the layout system and call update to redraw the scale */ void QwtKnob::layoutKnob( bool update_geometry ) { const QRect r = rect(); const int radius = d_data->knobWidth / 2; d_data->knobRect.setWidth(2 * radius); d_data->knobRect.setHeight(2 * radius); d_data->knobRect.moveCenter(r.center()); scaleDraw()->setRadius(radius + d_data->scaleDist); scaleDraw()->moveCenter(r.center()); if ( update_geometry ) { updateGeometry(); update(); } } /*! Repaint the knob \param e Paint event */ void QwtKnob::paintEvent(QPaintEvent *e) { const QRect &ur = e->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); draw(paintBuffer.painter(), ur); #else QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); draw(&painter, ur); #endif } } /*! Repaint the knob \param painter Painter \param rect Update rectangle */ void QwtKnob::draw(QPainter *painter, const QRect& rect) { if ( !d_data->knobRect.contains( rect ) ) // event from valueChange() { #if QT_VERSION < 0x040000 scaleDraw()->draw( painter, colorGroup() ); #else scaleDraw()->draw( painter, palette() ); #endif } drawKnob( painter, d_data->knobRect ); if ( hasFocus() ) QwtPainter::drawFocusRect(painter, this); } /*! \brief Draw the marker at the knob's front \param p Painter \param arc Angle of the marker \param c Marker color */ void QwtKnob::drawMarker(QPainter *p, double arc, const QColor &c) { const double rarc = arc * M_PI / 180.0; const double ca = cos(rarc); const double sa = - sin(rarc); int radius = d_data->knobRect.width() / 2 - d_data->borderWidth; if (radius < 3) radius = 3; const int ym = d_data->knobRect.y() + radius + d_data->borderWidth; const int xm = d_data->knobRect.x() + radius + d_data->borderWidth; switch (d_data->symbol) { case Dot: { p->setBrush(c); p->setPen(Qt::NoPen); const double rb = double(qwtMax(radius - 4 - d_data->dotWidth / 2, 0)); p->drawEllipse(xm - qRound(sa * rb) - d_data->dotWidth / 2, ym - qRound(ca * rb) - d_data->dotWidth / 2, d_data->dotWidth, d_data->dotWidth); break; } case Line: { p->setPen(QPen(c, 2)); const double rb = qwtMax(double((radius - 4) / 3.0), 0.0); const double re = qwtMax(double(radius - 4), 0.0); p->drawLine ( xm - qRound(sa * rb), ym - qRound(ca * rb), xm - qRound(sa * re), ym - qRound(ca * re)); break; } } } /*! \brief Change the knob's width. The specified width must be >= 5, or it will be clipped. \param w New width */ void QwtKnob::setKnobWidth(int w) { d_data->knobWidth = qwtMax(w,5); layoutKnob(); } //! Return the width of the knob int QwtKnob::knobWidth() const { return d_data->knobWidth; } /*! \brief Set the knob's border width \param bw new border width */ void QwtKnob::setBorderWidth(int bw) { d_data->borderWidth = qwtMax(bw, 0); layoutKnob(); } //! Return the border width int QwtKnob::borderWidth() const { return d_data->borderWidth; } /*! \brief Recalculate the marker angle corresponding to the current value */ void QwtKnob::recalcAngle() { // // calculate the angle corresponding to the value // if (maxValue() == minValue()) { d_data->angle = 0; d_data->nTurns = 0; } else { d_data->angle = (value() - 0.5 * (minValue() + maxValue())) / (maxValue() - minValue()) * d_data->totalAngle; d_data->nTurns = floor((d_data->angle + 180.0) / 360.0); d_data->angle = d_data->angle - d_data->nTurns * 360.0; } } /*! Recalculates the layout \sa layoutKnob() */ void QwtKnob::scaleChange() { layoutKnob(); } /*! Recalculates the layout \sa layoutKnob() */ void QwtKnob::fontChange(const QFont &f) { QwtAbstractSlider::fontChange( f ); layoutKnob(); } /*! \return minimumSizeHint() */ QSize QwtKnob::sizeHint() const { return minimumSizeHint(); } /*! \brief Return a minimum size hint \warning The return value of QwtKnob::minimumSizeHint() depends on the font and the scale. */ QSize QwtKnob::minimumSizeHint() const { // Add the scale radial thickness to the knobWidth const int sh = scaleDraw()->extent( QPen(), font() ); const int d = 2 * sh + 2 * d_data->scaleDist + d_data->knobWidth; return QSize( d, d ); } qwt5-5.2.3/src/qwt_thermo.cpp0000644000175000017500000005613412052741126015454 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include #include "qwt_math.h" #include "qwt_scale_engine.h" #include "qwt_scale_draw.h" #include "qwt_scale_map.h" #include "qwt_paint_buffer.h" #include "qwt_thermo.h" class QwtThermo::PrivateData { public: PrivateData(): fillBrush(Qt::black), alarmBrush(Qt::white), orientation(Qt::Vertical), scalePos(QwtThermo::LeftScale), borderWidth(2), scaleDist(3), thermoWidth(10), minValue(0.0), maxValue(1.0), value(0.0), alarmLevel(0.0), alarmEnabled(false) { map.setScaleInterval(minValue, maxValue); } QwtScaleMap map; QRect thermoRect; QBrush fillBrush; QBrush alarmBrush; Qt::Orientation orientation; ScalePos scalePos; int borderWidth; int scaleDist; int thermoWidth; double minValue; double maxValue; double value; double alarmLevel; bool alarmEnabled; }; /*! Constructor \param parent Parent widget */ QwtThermo::QwtThermo(QWidget *parent): QWidget(parent) { initThermo(); } #if QT_VERSION < 0x040000 /*! Constructor \param parent Parent widget \param name Object name */ QwtThermo::QwtThermo(QWidget *parent, const char *name): QWidget(parent, name) { initThermo(); } #endif void QwtThermo::initThermo() { #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif d_data = new PrivateData; setRange(d_data->minValue, d_data->maxValue, false); QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); if (d_data->orientation == Qt::Vertical) policy.transpose(); setSizePolicy(policy); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } //! Destructor QwtThermo::~QwtThermo() { delete d_data; } /*! Set the maximum value. \param max Maximum value \sa maxValue(), setMinValue() */ void QwtThermo::setMaxValue(double max) { setRange(d_data->minValue, max); } //! Return the maximum value. double QwtThermo::maxValue() const { return d_data->maxValue; } /*! Set the minimum value. \param min Minimum value \sa minValue(), setMaxValue() */ void QwtThermo::setMinValue(double min) { setRange(min, d_data->maxValue); } //! Return the minimum value. double QwtThermo::minValue() const { return d_data->minValue; } /*! Set the current value. \param value New Value \sa value() */ void QwtThermo::setValue(double value) { if (d_data->value != value) { d_data->value = value; update(); } } //! Return the value. double QwtThermo::value() const { return d_data->value; } /*! \brief Set a scale draw For changing the labels of the scales, it is necessary to derive from QwtScaleDraw and overload QwtScaleDraw::label(). \param scaleDraw ScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of setScaleDraw(). */ void QwtThermo::setScaleDraw(QwtScaleDraw *scaleDraw) { setAbstractScaleDraw(scaleDraw); } /*! \return the scale draw of the thermo \sa setScaleDraw() */ const QwtScaleDraw *QwtThermo::scaleDraw() const { return (QwtScaleDraw *)abstractScaleDraw(); } /*! \return the scale draw of the thermo \sa setScaleDraw() */ QwtScaleDraw *QwtThermo::scaleDraw() { return (QwtScaleDraw *)abstractScaleDraw(); } /*! Qt paint event. event Paint event */ void QwtThermo::paintEvent(QPaintEvent *event) { // Use double-buffering const QRect &ur = event->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); draw(paintBuffer.painter(), ur); #else QPainter painter(this); draw(&painter, ur); #endif } } /*! Draw the whole QwtThermo. \param painter Painter \param rect Update rectangle */ void QwtThermo::draw(QPainter *painter, const QRect& rect) { if ( !d_data->thermoRect.contains(rect) ) { if (d_data->scalePos != NoScale) { #if QT_VERSION < 0x040000 scaleDraw()->draw(painter, colorGroup()); #else scaleDraw()->draw(painter, palette()); #endif } qDrawShadePanel(painter, d_data->thermoRect.x() - d_data->borderWidth, d_data->thermoRect.y() - d_data->borderWidth, d_data->thermoRect.width() + 2 * d_data->borderWidth, d_data->thermoRect.height() + 2 * d_data->borderWidth, #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, d_data->borderWidth, 0); } drawThermo(painter); } //! Qt resize event handler void QwtThermo::resizeEvent(QResizeEvent *) { layoutThermo( false ); } /*! Recalculate the QwtThermo geometry and layout based on the QwtThermo::rect() and the fonts. \param update_geometry notify the layout system and call update to redraw the scale */ void QwtThermo::layoutThermo( bool update_geometry ) { QRect r = rect(); int mbd = 0; if ( d_data->scalePos != NoScale ) { int d1, d2; scaleDraw()->getBorderDistHint(font(), d1, d2); mbd = qwtMax(d1, d2); } if ( d_data->orientation == Qt::Horizontal ) { switch ( d_data->scalePos ) { case TopScale: { d_data->thermoRect.setRect( r.x() + mbd + d_data->borderWidth, r.y() + r.height() - d_data->thermoWidth - 2*d_data->borderWidth, r.width() - 2*(d_data->borderWidth + mbd), d_data->thermoWidth); scaleDraw()->setAlignment(QwtScaleDraw::TopScale); scaleDraw()->move( d_data->thermoRect.x(), d_data->thermoRect.y() - d_data->borderWidth - d_data->scaleDist); scaleDraw()->setLength(d_data->thermoRect.width()); break; } case BottomScale: case NoScale: // like Bottom but without scale default: // inconsistent orientation and scale position // Mapping between values and pixels requires // initialization of the scale geometry { d_data->thermoRect.setRect( r.x() + mbd + d_data->borderWidth, r.y() + d_data->borderWidth, r.width() - 2*(d_data->borderWidth + mbd), d_data->thermoWidth); scaleDraw()->setAlignment(QwtScaleDraw::BottomScale); scaleDraw()->move( d_data->thermoRect.x(), d_data->thermoRect.y() + d_data->thermoRect.height() + d_data->borderWidth + d_data->scaleDist ); scaleDraw()->setLength(d_data->thermoRect.width()); break; } } d_data->map.setPaintInterval(d_data->thermoRect.x(), d_data->thermoRect.x() + d_data->thermoRect.width() - 1); } else // Qt::Vertical { switch ( d_data->scalePos ) { case RightScale: { d_data->thermoRect.setRect( r.x() + d_data->borderWidth, r.y() + mbd + d_data->borderWidth, d_data->thermoWidth, r.height() - 2*(d_data->borderWidth + mbd)); scaleDraw()->setAlignment(QwtScaleDraw::RightScale); scaleDraw()->move( d_data->thermoRect.x() + d_data->thermoRect.width() + d_data->borderWidth + d_data->scaleDist, d_data->thermoRect.y()); scaleDraw()->setLength(d_data->thermoRect.height()); break; } case LeftScale: case NoScale: // like Left but without scale default: // inconsistent orientation and scale position // Mapping between values and pixels requires // initialization of the scale geometry { d_data->thermoRect.setRect( r.x() + r.width() - 2*d_data->borderWidth - d_data->thermoWidth, r.y() + mbd + d_data->borderWidth, d_data->thermoWidth, r.height() - 2*(d_data->borderWidth + mbd)); scaleDraw()->setAlignment(QwtScaleDraw::LeftScale); scaleDraw()->move( d_data->thermoRect.x() - d_data->scaleDist - d_data->borderWidth, d_data->thermoRect.y() ); scaleDraw()->setLength(d_data->thermoRect.height()); break; } } d_data->map.setPaintInterval( d_data->thermoRect.y() + d_data->thermoRect.height() - 1, d_data->thermoRect.y()); } if ( update_geometry ) { updateGeometry(); update(); } } /*! \brief Set the thermometer orientation and the scale position. The scale position NoScale disables the scale. \param o orientation. Possible values are Qt::Horizontal and Qt::Vertical. The default value is Qt::Vertical. \param s Position of the scale. The default value is NoScale. A valid combination of scale position and orientation is enforced: - a horizontal thermometer can have the scale positions TopScale, BottomScale or NoScale; - a vertical thermometer can have the scale positions LeftScale, RightScale or NoScale; - an invalid scale position will default to NoScale. \sa setScalePosition() */ void QwtThermo::setOrientation(Qt::Orientation o, ScalePos s) { if ( o == d_data->orientation && s == d_data->scalePos ) return; switch(o) { case Qt::Horizontal: { if ((s == NoScale) || (s == BottomScale) || (s == TopScale)) d_data->scalePos = s; else d_data->scalePos = NoScale; break; } case Qt::Vertical: { if ((s == NoScale) || (s == LeftScale) || (s == RightScale)) d_data->scalePos = s; else d_data->scalePos = NoScale; break; } } if ( o != d_data->orientation ) { #if QT_VERSION >= 0x040000 if ( !testAttribute(Qt::WA_WState_OwnSizePolicy) ) #else if ( !testWState( WState_OwnSizePolicy ) ) #endif { QSizePolicy sp = sizePolicy(); sp.transpose(); setSizePolicy(sp); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } } d_data->orientation = o; layoutThermo(); } /*! \brief Change the scale position (and thermometer orientation). \param scalePos Position of the scale. A valid combination of scale position and orientation is enforced: - if the new scale position is LeftScale or RightScale, the scale orientation will become Qt::Vertical; - if the new scale position is BottomScale or TopScale, the scale orientation will become Qt::Horizontal; - if the new scale position is NoScale, the scale orientation will not change. \sa setOrientation(), scalePosition() */ void QwtThermo::setScalePosition(ScalePos scalePos) { if ((scalePos == BottomScale) || (scalePos == TopScale)) setOrientation(Qt::Horizontal, scalePos); else if ((scalePos == LeftScale) || (scalePos == RightScale)) setOrientation(Qt::Vertical, scalePos); else setOrientation(d_data->orientation, NoScale); } /*! Return the scale position. \sa setScalePosition() */ QwtThermo::ScalePos QwtThermo::scalePosition() const { return d_data->scalePos; } //! Notify a font change. void QwtThermo::fontChange(const QFont &f) { QWidget::fontChange( f ); layoutThermo(); } //! Notify a scale change. void QwtThermo::scaleChange() { update(); layoutThermo(); } /*! Redraw the liquid in thermometer pipe. \param painter Painter */ void QwtThermo::drawThermo(QPainter *painter) { int alarm = 0, taval = 0; QRect fRect; QRect aRect; QRect bRect; int inverted = ( d_data->maxValue < d_data->minValue ); // // Determine if value exceeds alarm threshold. // Note: The alarm value is allowed to lie // outside the interval (minValue, maxValue). // if (d_data->alarmEnabled) { if (inverted) { alarm = ((d_data->alarmLevel >= d_data->maxValue) && (d_data->alarmLevel <= d_data->minValue) && (d_data->value >= d_data->alarmLevel)); } else { alarm = (( d_data->alarmLevel >= d_data->minValue) && (d_data->alarmLevel <= d_data->maxValue) && (d_data->value >= d_data->alarmLevel)); } } // // transform values // int tval = transform(d_data->value); if (alarm) taval = transform(d_data->alarmLevel); // // calculate recangles // if ( d_data->orientation == Qt::Horizontal ) { if (inverted) { bRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), tval - d_data->thermoRect.x(), d_data->thermoRect.height()); if (alarm) { aRect.setRect(tval, d_data->thermoRect.y(), taval - tval + 1, d_data->thermoRect.height()); fRect.setRect(taval + 1, d_data->thermoRect.y(), d_data->thermoRect.x() + d_data->thermoRect.width() - (taval + 1), d_data->thermoRect.height()); } else { fRect.setRect(tval, d_data->thermoRect.y(), d_data->thermoRect.x() + d_data->thermoRect.width() - tval, d_data->thermoRect.height()); } } else { bRect.setRect(tval + 1, d_data->thermoRect.y(), d_data->thermoRect.width() - (tval + 1 - d_data->thermoRect.x()), d_data->thermoRect.height()); if (alarm) { aRect.setRect(taval, d_data->thermoRect.y(), tval - taval + 1, d_data->thermoRect.height()); fRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), taval - d_data->thermoRect.x(), d_data->thermoRect.height()); } else { fRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), tval - d_data->thermoRect.x() + 1, d_data->thermoRect.height()); } } } else // Qt::Vertical { if (tval < d_data->thermoRect.y()) tval = d_data->thermoRect.y(); else { if (tval > d_data->thermoRect.y() + d_data->thermoRect.height()) tval = d_data->thermoRect.y() + d_data->thermoRect.height(); } if (inverted) { bRect.setRect(d_data->thermoRect.x(), tval + 1, d_data->thermoRect.width(), d_data->thermoRect.height() - (tval + 1 - d_data->thermoRect.y())); if (alarm) { aRect.setRect(d_data->thermoRect.x(), taval, d_data->thermoRect.width(), tval - taval + 1); fRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), d_data->thermoRect.width(), taval - d_data->thermoRect.y()); } else { fRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), d_data->thermoRect.width(), tval - d_data->thermoRect.y() + 1); } } else { bRect.setRect(d_data->thermoRect.x(), d_data->thermoRect.y(), d_data->thermoRect.width(), tval - d_data->thermoRect.y()); if (alarm) { aRect.setRect(d_data->thermoRect.x(),tval, d_data->thermoRect.width(), taval - tval + 1); fRect.setRect(d_data->thermoRect.x(),taval + 1, d_data->thermoRect.width(), d_data->thermoRect.y() + d_data->thermoRect.height() - (taval + 1)); } else { fRect.setRect(d_data->thermoRect.x(),tval, d_data->thermoRect.width(), d_data->thermoRect.y() + d_data->thermoRect.height() - tval); } } } // // paint thermometer // const QColor bgColor = #if QT_VERSION < 0x040000 colorGroup().color(QColorGroup::Background); #else palette().color(QPalette::Background); #endif painter->fillRect(bRect, bgColor); if (alarm) painter->fillRect(aRect, d_data->alarmBrush); painter->fillRect(fRect, d_data->fillBrush); } /*! Set the border width of the pipe. \param width Border width \sa borderWidth() */ void QwtThermo::setBorderWidth(int width) { if ((width >= 0) && (width < (qwtMin(d_data->thermoRect.width(), d_data->thermoRect.height()) + d_data->borderWidth) / 2 - 1)) { d_data->borderWidth = width; layoutThermo(); } } /*! Return the border width of the thermometer pipe. \sa setBorderWidth() */ int QwtThermo::borderWidth() const { return d_data->borderWidth; } /*! \brief Set the range \param vmin value corresponding lower or left end of the thermometer \param vmax value corresponding to the upper or right end of the thermometer \param logarithmic logarithmic mapping, true or false */ void QwtThermo::setRange(double vmin, double vmax, bool logarithmic) { d_data->minValue = vmin; d_data->maxValue = vmax; if ( logarithmic ) setScaleEngine(new QwtLog10ScaleEngine); else setScaleEngine(new QwtLinearScaleEngine); /* There are two different maps, one for the scale, the other for the values. This is confusing and will be changed in the future. TODO ... */ d_data->map.setTransformation(scaleEngine()->transformation()); d_data->map.setScaleInterval(d_data->minValue, d_data->maxValue); if (autoScale()) rescale(d_data->minValue, d_data->maxValue); layoutThermo(); } /*! \brief Change the brush of the liquid. \param brush New brush. The default brush is solid black. \sa fillBrush() */ void QwtThermo::setFillBrush(const QBrush& brush) { d_data->fillBrush = brush; update(); } /*! Return the liquid brush. \sa setFillBrush() */ const QBrush& QwtThermo::fillBrush() const { return d_data->fillBrush; } /*! \brief Change the color of the liquid. \param c New color. The default color is black. \sa fillColor() */ void QwtThermo::setFillColor(const QColor &c) { d_data->fillBrush.setColor(c); update(); } /*! Return the liquid color. \sa setFillColor() */ const QColor &QwtThermo::fillColor() const { return d_data->fillBrush.color(); } /*! \brief Specify the liquid brush above the alarm threshold \param brush New brush. The default is solid white. \sa alarmBrush() */ void QwtThermo::setAlarmBrush(const QBrush& brush) { d_data->alarmBrush = brush; update(); } /*! Return the liquid brush above the alarm threshold. \sa setAlarmBrush() */ const QBrush& QwtThermo::alarmBrush() const { return d_data->alarmBrush; } /*! \brief Specify the liquid color above the alarm threshold \param c New color. The default is white. */ void QwtThermo::setAlarmColor(const QColor &c) { d_data->alarmBrush.setColor(c); update(); } //! Return the liquid color above the alarm threshold. const QColor &QwtThermo::alarmColor() const { return d_data->alarmBrush.color(); } /*! Specify the alarm threshold. \param level Alarm threshold \sa alarmLevel() */ void QwtThermo::setAlarmLevel(double level) { d_data->alarmLevel = level; d_data->alarmEnabled = 1; update(); } /*! Return the alarm threshold. \sa setAlarmLevel() */ double QwtThermo::alarmLevel() const { return d_data->alarmLevel; } /*! Change the width of the pipe. \param width Width of the pipe \sa pipeWidth() */ void QwtThermo::setPipeWidth(int width) { if (width > 0) { d_data->thermoWidth = width; layoutThermo(); } } /*! Return the width of the pipe. \sa setPipeWidth() */ int QwtThermo::pipeWidth() const { return d_data->thermoWidth; } /*! \brief Specify the distance between the pipe's endpoints and the widget's border The margin is used to leave some space for the scale labels. If a large font is used, it is advisable to adjust the margins. \param m New Margin. The default values are 10 for horizontal orientation and 20 for vertical orientation. \warning The margin has no effect if the scale is disabled. \warning This function is a NOOP because margins are determined automatically. */ void QwtThermo::setMargin(int) { } /*! \brief Enable or disable the alarm threshold \param tf true (disabled) or false (enabled) */ void QwtThermo::setAlarmEnabled(bool tf) { d_data->alarmEnabled = tf; update(); } //! Return if the alarm threshold is enabled or disabled. bool QwtThermo::alarmEnabled() const { return d_data->alarmEnabled; } /*! \return the minimum size hint \sa minimumSizeHint() */ QSize QwtThermo::sizeHint() const { return minimumSizeHint(); } /*! \brief Return a minimum size hint \warning The return value depends on the font and the scale. \sa sizeHint() */ QSize QwtThermo::minimumSizeHint() const { int w = 0, h = 0; if ( d_data->scalePos != NoScale ) { const int sdExtent = scaleDraw()->extent( QPen(), font() ); const int sdLength = scaleDraw()->minLength( QPen(), font() ); w = sdLength; h = d_data->thermoWidth + sdExtent + d_data->borderWidth + d_data->scaleDist; } else // no scale { w = 200; h = d_data->thermoWidth; } if ( d_data->orientation == Qt::Vertical ) qSwap(w, h); w += 2 * d_data->borderWidth; h += 2 * d_data->borderWidth; return QSize( w, h ); } int QwtThermo::transform(double value) const { const double min = qwtMin(d_data->map.s1(), d_data->map.s2()); const double max = qwtMax(d_data->map.s1(), d_data->map.s2()); if ( value > max ) value = max; if ( value < min ) value = min; return d_data->map.transform(value); } qwt5-5.2.3/src/qwt_plot_item.h0000644000175000017500000001225412052741123015607 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_ITEM_H #define QWT_PLOT_ITEM_H #include "qwt_global.h" #include "qwt_legend_itemmanager.h" #include "qwt_text.h" #include "qwt_double_rect.h" class QString; class QRect; class QPainter; class QWidget; class QwtPlot; class QwtLegend; class QwtScaleMap; class QwtScaleDiv; /*! \brief Base class for items on the plot canvas A plot item is "something", that can be painted on the plot canvas, or only affects the scales of the plot widget. They can be categorized as: - Representator\n A "Representator" is an item that represents some sort of data on the plot canvas. The different representator classes are organized according to the characteristics of the data: - QwtPlotMarker Represents a point or a horizontal/vertical coordinate - QwtPlotCurve Represents a series of points - QwtPlotSpectrogram ( QwtPlotRasterItem ) Represents raster data - ... - Decorators\n A "Decorator" is an item, that displays additional information, that is not related to any data: - QwtPlotGrid - QwtPlotScaleItem - QwtPlotSvgItem - ... Depending on the QwtPlotItem::ItemAttribute flags, an item is included into autoscaling or has an entry on the legnd. Before misusing the existing item classes it might be better to implement a new type of plot item ( don't implement a watermark as spectrogram ). Deriving a new type of QwtPlotItem primarily means to implement the YourPlotItem::draw() method. \sa The cpuplot example shows the implementation of additional plot items. */ class QWT_EXPORT QwtPlotItem: public QwtLegendItemManager { public: /*! \brief Runtime type information RttiValues is used to cast plot items, without having to enable runtime type information of the compiler. */ enum RttiValues { Rtti_PlotItem = 0, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotHistogram, Rtti_PlotSpectrogram, Rtti_PlotSVG, Rtti_PlotUserItem = 1000 }; /*! Plot Item Attributes - Legend\n The item is represented on the legend. - AutoScale \n The boundingRect() of the item is included in the autoscaling calculation. \sa setItemAttribute(), testItemAttribute() */ enum ItemAttribute { Legend = 1, AutoScale = 2 }; #if QT_VERSION >= 0x040000 //! Render hints enum RenderHint { RenderAntialiased = 1 }; #endif explicit QwtPlotItem(const QwtText &title = QwtText()); virtual ~QwtPlotItem(); void attach(QwtPlot *plot); /*! \brief This method detaches a QwtPlotItem from any QwtPlot it has been associated with. detach() is equivalent to calling attach( NULL ) \sa attach( QwtPlot* plot ) */ void detach() { attach(NULL); } QwtPlot *plot() const; void setTitle(const QString &title); void setTitle(const QwtText &title); const QwtText &title() const; virtual int rtti() const; void setItemAttribute(ItemAttribute, bool on = true); bool testItemAttribute(ItemAttribute) const; #if QT_VERSION >= 0x040000 void setRenderHint(RenderHint, bool on = true); bool testRenderHint(RenderHint) const; #endif double z() const; void setZ(double z); void show(); void hide(); virtual void setVisible(bool); bool isVisible () const; void setAxis(int xAxis, int yAxis); void setXAxis(int axis); int xAxis() const; void setYAxis(int axis); int yAxis() const; virtual void itemChanged(); /*! \brief Draw the item \param painter Painter \param xMap Maps x-values into pixel coordinates. \param yMap Maps y-values into pixel coordinates. \param canvasRect Contents rect of the canvas in painter coordinates */ virtual void draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const = 0; virtual QwtDoubleRect boundingRect() const; virtual void updateLegend(QwtLegend *) const; virtual void updateScaleDiv(const QwtScaleDiv&, const QwtScaleDiv&); virtual QWidget *legendItem() const; QwtDoubleRect scaleRect(const QwtScaleMap &, const QwtScaleMap &) const; QRect paintRect(const QwtScaleMap &, const QwtScaleMap &) const; QRect transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect&) const; QwtDoubleRect invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect&) const; private: // Disabled copy constructor and operator= QwtPlotItem( const QwtPlotItem & ); QwtPlotItem &operator=( const QwtPlotItem & ); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_magnifier.cpp0000644000175000017500000002600112052741126016105 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include "qwt_math.h" #include "qwt_magnifier.h" class QwtMagnifier::PrivateData { public: PrivateData(): isEnabled(false), wheelFactor(0.9), wheelButtonState(Qt::NoButton), mouseFactor(0.95), mouseButton(Qt::RightButton), mouseButtonState(Qt::NoButton), keyFactor(0.9), zoomInKey(Qt::Key_Plus), zoomOutKey(Qt::Key_Minus), #if QT_VERSION < 0x040000 zoomInKeyModifiers(Qt::NoButton), zoomOutKeyModifiers(Qt::NoButton), #else zoomInKeyModifiers(Qt::NoModifier), zoomOutKeyModifiers(Qt::NoModifier), #endif mousePressed(false) { } bool isEnabled; double wheelFactor; int wheelButtonState; double mouseFactor; int mouseButton; int mouseButtonState; double keyFactor; int zoomInKey; int zoomOutKey; int zoomInKeyModifiers; int zoomOutKeyModifiers; bool mousePressed; bool hasMouseTracking; QPoint mousePos; }; /*! Constructor \param parent Widget to be magnified */ QwtMagnifier::QwtMagnifier(QWidget *parent): QObject(parent) { d_data = new PrivateData(); setEnabled(true); } //! Destructor QwtMagnifier::~QwtMagnifier() { delete d_data; } /*! \brief En/disable the magnifier When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed. \param on true or false \sa isEnabled(), eventFilter() */ void QwtMagnifier::setEnabled(bool on) { if ( d_data->isEnabled != on ) { d_data->isEnabled = on; QObject *o = parent(); if ( o ) { if ( d_data->isEnabled ) o->installEventFilter(this); else o->removeEventFilter(this); } } } /*! \return true when enabled, false otherwise \sa setEnabled(), eventFilter() */ bool QwtMagnifier::isEnabled() const { return d_data->isEnabled; } /*! \brief Change the wheel factor The wheel factor defines the ratio between the current range on the parent widget and the zoomed range for each step of the wheel. The default value is 0.9. \param factor Wheel factor \sa wheelFactor(), setWheelButtonState(), setMouseFactor(), setKeyFactor() */ void QwtMagnifier::setWheelFactor(double factor) { d_data->wheelFactor = factor; } /*! \return Wheel factor \sa setWheelFactor() */ double QwtMagnifier::wheelFactor() const { return d_data->wheelFactor; } /*! Assign a mandatory button state for zooming in/out using the wheel. The default button state is Qt::NoButton. \param buttonState Button state \sa wheelButtonState() */ void QwtMagnifier::setWheelButtonState(int buttonState) { d_data->wheelButtonState = buttonState; } /*! \return Wheel button state \sa setWheelButtonState() */ int QwtMagnifier::wheelButtonState() const { return d_data->wheelButtonState; } /*! \brief Change the mouse factor The mouse factor defines the ratio between the current range on the parent widget and the zoomed range for each vertical mouse movement. The default value is 0.95. \param factor Wheel factor \sa mouseFactor(), setMouseButton(), setWheelFactor(), setKeyFactor() */ void QwtMagnifier::setMouseFactor(double factor) { d_data->mouseFactor = factor; } /*! \return Mouse factor \sa setMouseFactor() */ double QwtMagnifier::mouseFactor() const { return d_data->mouseFactor; } /*! Assign the mouse button, that is used for zooming in/out. The default value is Qt::RightButton. \param button Button \param buttonState Button state \sa getMouseButton() */ void QwtMagnifier::setMouseButton(int button, int buttonState) { d_data->mouseButton = button; d_data->mouseButtonState = buttonState; } //! \sa setMouseButton() void QwtMagnifier::getMouseButton( int &button, int &buttonState) const { button = d_data->mouseButton; buttonState = d_data->mouseButtonState; } /*! \brief Change the key factor The key factor defines the ratio between the current range on the parent widget and the zoomed range for each key press of the zoom in/out keys. The default value is 0.9. \param factor Key factor \sa keyFactor(), setZoomInKey(), setZoomOutKey(), setWheelFactor, setMouseFactor() */ void QwtMagnifier::setKeyFactor(double factor) { d_data->keyFactor = factor; } /*! \return Key factor \sa setKeyFactor() */ double QwtMagnifier::keyFactor() const { return d_data->keyFactor; } /*! Assign the key, that is used for zooming in. The default combination is Qt::Key_Plus + Qt::NoModifier. \param key \param modifiers \sa getZoomInKey(), setZoomOutKey() */ void QwtMagnifier::setZoomInKey(int key, int modifiers) { d_data->zoomInKey = key; d_data->zoomInKeyModifiers = modifiers; } //! \sa setZoomInKey() void QwtMagnifier::getZoomInKey(int &key, int &modifiers) const { key = d_data->zoomInKey; modifiers = d_data->zoomInKeyModifiers; } /*! Assign the key, that is used for zooming out. The default combination is Qt::Key_Minus + Qt::NoModifier. \param key \param modifiers \sa getZoomOutKey(), setZoomOutKey() */ void QwtMagnifier::setZoomOutKey(int key, int modifiers) { d_data->zoomOutKey = key; d_data->zoomOutKeyModifiers = modifiers; } //! \sa setZoomOutKey() void QwtMagnifier::getZoomOutKey(int &key, int &modifiers) const { key = d_data->zoomOutKey; modifiers = d_data->zoomOutKeyModifiers; } /*! \brief Event filter When isEnabled() the mouse events of the observed widget are filtered. \sa widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent() widgetKeyReleaseEvent() */ bool QwtMagnifier::eventFilter(QObject *o, QEvent *e) { if ( o && o == parent() ) { switch(e->type() ) { case QEvent::MouseButtonPress: { widgetMousePressEvent((QMouseEvent *)e); break; } case QEvent::MouseMove: { widgetMouseMoveEvent((QMouseEvent *)e); break; } case QEvent::MouseButtonRelease: { widgetMouseReleaseEvent((QMouseEvent *)e); break; } case QEvent::Wheel: { widgetWheelEvent((QWheelEvent *)e); break; } case QEvent::KeyPress: { widgetKeyPressEvent((QKeyEvent *)e); break; } case QEvent::KeyRelease: { widgetKeyReleaseEvent((QKeyEvent *)e); break; } default:; } } return QObject::eventFilter(o, e); } /*! Handle a mouse press event for the observed widget. \param me Mouse event \sa eventFilter(), widgetMouseReleaseEvent(), widgetMouseMoveEvent() */ void QwtMagnifier::widgetMousePressEvent(QMouseEvent *me) { if ( me->button() != d_data->mouseButton || parentWidget() == NULL ) return; #if QT_VERSION < 0x040000 if ( (me->state() & Qt::KeyButtonMask) != (d_data->mouseButtonState & Qt::KeyButtonMask) ) #else if ( (me->modifiers() & Qt::KeyboardModifierMask) != (int)(d_data->mouseButtonState & Qt::KeyboardModifierMask) ) #endif { return; } d_data->hasMouseTracking = parentWidget()->hasMouseTracking(); parentWidget()->setMouseTracking(true); d_data->mousePos = me->pos(); d_data->mousePressed = true; } /*! Handle a mouse release event for the observed widget. \sa eventFilter(), widgetMousePressEvent(), widgetMouseMoveEvent(), */ void QwtMagnifier::widgetMouseReleaseEvent(QMouseEvent *) { if ( d_data->mousePressed && parentWidget() ) { d_data->mousePressed = false; parentWidget()->setMouseTracking(d_data->hasMouseTracking); } } /*! Handle a mouse move event for the observed widget. \param me Mouse event \sa eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), */ void QwtMagnifier::widgetMouseMoveEvent(QMouseEvent *me) { if ( !d_data->mousePressed ) return; const int dy = me->pos().y() - d_data->mousePos.y(); if ( dy != 0 ) { double f = d_data->mouseFactor; if ( dy < 0 ) f = 1 / f; rescale(f); } d_data->mousePos = me->pos(); } /*! Handle a wheel event for the observed widget. \param we Wheel event \sa eventFilter() */ void QwtMagnifier::widgetWheelEvent(QWheelEvent *we) { #if QT_VERSION < 0x040000 if ( (we->state() & Qt::KeyButtonMask) != (d_data->wheelButtonState & Qt::KeyButtonMask) ) #else if ( (we->modifiers() & Qt::KeyboardModifierMask) != (int)(d_data->wheelButtonState & Qt::KeyboardModifierMask) ) #endif { return; } if ( d_data->wheelFactor != 0.0 ) { /* A positive delta indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user. Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of 120 (== 15 * 8). */ double f = ::pow(d_data->wheelFactor, qwtAbs(we->delta() / 120.0)); if ( we->delta() > 0 ) f = 1 / f; rescale(f); } } /*! Handle a key press event for the observed widget. \param ke Key event \sa eventFilter(), widgetKeyReleaseEvent() */ void QwtMagnifier::widgetKeyPressEvent(QKeyEvent *ke) { const int key = ke->key(); #if QT_VERSION < 0x040000 const int state = ke->state(); #else const int state = ke->modifiers(); #endif if ( key == d_data->zoomInKey && state == d_data->zoomInKeyModifiers ) { rescale(d_data->keyFactor); } else if ( key == d_data->zoomOutKey && state == d_data->zoomOutKeyModifiers ) { rescale(1.0 / d_data->keyFactor); } } /*! Handle a key release event for the observed widget. \param ke Key event \sa eventFilter(), widgetKeyReleaseEvent() */ void QwtMagnifier::widgetKeyReleaseEvent(QKeyEvent *) { } //! \return Parent widget, where the rescaling happens QWidget *QwtMagnifier::parentWidget() { if ( parent()->inherits("QWidget") ) return (QWidget *)parent(); return NULL; } //! \return Parent widget, where the rescaling happens const QWidget *QwtMagnifier::parentWidget() const { if ( parent()->inherits("QWidget") ) return (const QWidget *)parent(); return NULL; } qwt5-5.2.3/src/qwt_paint_buffer.cpp0000644000175000017500000001066712052741126016623 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #if QT_VERSION < 0x040000 #include #include #include "qwt_paint_buffer.h" bool QwtPaintBuffer::d_enabled = true; //! Default constructor QwtPaintBuffer::QwtPaintBuffer(): d_device(0), d_painter(0), d_devicePainter(0) { } /*! Create an open paint buffer \param device Device to paint on \param rect Rect to paint on \param painter Painter to paint on device. In case of 0 QwtPaintBuffer uses an internal painter \sa open() */ QwtPaintBuffer::QwtPaintBuffer(QPaintDevice *device, const QRect &rect, QPainter *painter): d_device(0), d_painter(0), d_devicePainter(0) { open(device, rect, painter); } /*! Closes the buffer \sa close() */ QwtPaintBuffer::~QwtPaintBuffer() { close(); } /*! \return Depending on isEnabled() the painter connected to an internal pixmap buffer otherwise the painter connected to the device. */ QPainter *QwtPaintBuffer::painter() { return d_painter; } /*! \return Device to paint on */ const QPaintDevice *QwtPaintBuffer::device() { return d_device; } /*! Enable/Disable double buffering. Please note that this is a global switch for all QwtPaintBuffers, but won't change opened buffers. */ void QwtPaintBuffer::setEnabled(bool enable) { d_enabled = enable; } /*! \return true if double buffering is enabled, false otherwise. */ bool QwtPaintBuffer::isEnabled() { return d_enabled; } /*! Open the buffer \param device Device to paint on \param rect Rect to paint on \param painter Painter to paint on device. In case of 0 QwtPaintBuffer uses an internal painter */ void QwtPaintBuffer::open(QPaintDevice *device, const QRect &rect, QPainter *painter) { close(); if ( device == 0 || !rect.isValid() ) return; d_device = device; d_devicePainter = painter; d_rect = rect; if ( isEnabled() ) { #ifdef Q_WS_X11 if ( d_pixBuffer.x11Screen() != d_device->x11Screen() ) d_pixBuffer.x11SetScreen(d_device->x11Screen()); #endif d_pixBuffer.resize(d_rect.size()); d_painter = new QPainter(); if ( d_device->devType() == QInternal::Widget ) { QWidget *w = (QWidget *)d_device; d_pixBuffer.fill(w, d_rect.topLeft()); d_painter->begin(&d_pixBuffer, w); d_painter->translate(-d_rect.x(), -d_rect.y()); } else { d_painter->begin(&d_pixBuffer); } } else { if ( d_devicePainter ) d_painter = d_devicePainter; else d_painter = new QPainter(d_device); if ( d_device->devType() == QInternal::Widget ) { QWidget *w = (QWidget *)d_device; if ( w->testWFlags( Qt::WNoAutoErase ) ) d_painter->eraseRect(d_rect); } } } /*! Flush the internal pixmap buffer to the device. */ void QwtPaintBuffer::flush() { if ( d_enabled && d_device != 0 && d_rect.isValid()) { // We need a painter to find out if // there is a painter redirection for d_device. QPainter *p; if ( d_devicePainter == 0 ) p = new QPainter(d_device); else p = d_devicePainter; QPaintDevice *device = p->device(); if ( device->isExtDev() ) d_devicePainter->drawPixmap(d_rect.topLeft(), d_pixBuffer); else bitBlt(device, d_rect.topLeft(), &d_pixBuffer ); if ( d_devicePainter == 0 ) delete p; } } /*! Flush the internal pixmap buffer to the device and close the buffer. */ void QwtPaintBuffer::close() { flush(); if ( d_painter ) { if ( d_painter->isActive() ) d_painter->end(); if ( d_painter != d_devicePainter ) delete d_painter; } if ( !d_pixBuffer.isNull() ) d_pixBuffer = QPixmap(); d_device = 0; d_painter = 0; d_devicePainter = 0; } #endif // QT_VERSION < 0x040000 qwt5-5.2.3/src/qwt_plot_picker.cpp0000644000175000017500000002326712052741126016472 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include "qwt_plot.h" #include "qwt_double_rect.h" #include "qwt_scale_div.h" #include "qwt_painter.h" #include "qwt_scale_map.h" #include "qwt_plot_picker.h" /*! \brief Create a plot picker The picker is set to those x- and y-axis of the plot that are enabled. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom. If both or no y-axis are enabled, it is set to QwtPlot::yLeft. \param canvas Plot canvas to observe, also the parent object \sa QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect() */ QwtPlotPicker::QwtPlotPicker(QwtPlotCanvas *canvas): QwtPicker(canvas), d_xAxis(-1), d_yAxis(-1) { if ( !canvas ) return; // attach axes int xAxis = QwtPlot::xBottom; const QwtPlot *plot = QwtPlotPicker::plot(); if ( !plot->axisEnabled(QwtPlot::xBottom) && plot->axisEnabled(QwtPlot::xTop) ) { xAxis = QwtPlot::xTop; } int yAxis = QwtPlot::yLeft; if ( !plot->axisEnabled(QwtPlot::yLeft) && plot->axisEnabled(QwtPlot::yRight) ) { yAxis = QwtPlot::yRight; } setAxis(xAxis, yAxis); } /*! Create a plot picker \param xAxis Set the x axis of the picker \param yAxis Set the y axis of the picker \param canvas Plot canvas to observe, also the parent object \sa QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect() */ QwtPlotPicker::QwtPlotPicker(int xAxis, int yAxis, QwtPlotCanvas *canvas): QwtPicker(canvas), d_xAxis(xAxis), d_yAxis(yAxis) { } /*! Create a plot picker \param xAxis X axis of the picker \param yAxis Y axis of the picker \param selectionFlags Or'd value of SelectionType, RectSelectionType and SelectionMode \param rubberBand Rubberband style \param trackerMode Tracker mode \param canvas Plot canvas to observe, also the parent object \sa QwtPicker, QwtPicker::setSelectionFlags(), QwtPicker::setRubberBand(), QwtPicker::setTrackerMode \sa QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect() */ QwtPlotPicker::QwtPlotPicker(int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *canvas): QwtPicker(selectionFlags, rubberBand, trackerMode, canvas), d_xAxis(xAxis), d_yAxis(yAxis) { } //! Destructor QwtPlotPicker::~QwtPlotPicker() { } //! Return observed plot canvas QwtPlotCanvas *QwtPlotPicker::canvas() { QWidget *w = parentWidget(); if ( w && w->inherits("QwtPlotCanvas") ) return (QwtPlotCanvas *)w; return NULL; } //! Return Observed plot canvas const QwtPlotCanvas *QwtPlotPicker::canvas() const { return ((QwtPlotPicker *)this)->canvas(); } //! Return plot widget, containing the observed plot canvas QwtPlot *QwtPlotPicker::plot() { QObject *w = canvas(); if ( w ) { w = w->parent(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; } return NULL; } //! Return plot widget, containing the observed plot canvas const QwtPlot *QwtPlotPicker::plot() const { return ((QwtPlotPicker *)this)->plot(); } /*! Return normalized bounding rect of the axes \sa QwtPlot::autoReplot(), QwtPlot::replot(). */ QwtDoubleRect QwtPlotPicker::scaleRect() const { QwtDoubleRect rect; if ( plot() ) { const QwtScaleDiv *xs = plot()->axisScaleDiv(xAxis()); const QwtScaleDiv *ys = plot()->axisScaleDiv(yAxis()); if ( xs && ys ) { rect = QwtDoubleRect( xs->lowerBound(), ys->lowerBound(), xs->range(), ys->range() ); rect = rect.normalized(); } } return rect; } /*! Set the x and y axes of the picker \param xAxis X axis \param yAxis Y axis */ void QwtPlotPicker::setAxis(int xAxis, int yAxis) { const QwtPlot *plt = plot(); if ( !plt ) return; if ( xAxis != d_xAxis || yAxis != d_yAxis ) { d_xAxis = xAxis; d_yAxis = yAxis; } } //! Return x axis int QwtPlotPicker::xAxis() const { return d_xAxis; } //! Return y axis int QwtPlotPicker::yAxis() const { return d_yAxis; } /*! Translate a pixel position into a position string \param pos Position in pixel coordinates \return Position string */ QwtText QwtPlotPicker::trackerText(const QPoint &pos) const { return trackerText(invTransform(pos)); } /*! \brief Translate a position into a position string In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position. Otherwise the label contains x and y position separated by a ',' . The format for the double to string conversion is "%.4f". \param pos Position \return Position string */ QwtText QwtPlotPicker::trackerText(const QwtDoublePoint &pos) const { QString text; switch(rubberBand()) { case HLineRubberBand: text.sprintf("%.4f", pos.y()); break; case VLineRubberBand: text.sprintf("%.4f", pos.x()); break; default: text.sprintf("%.4f, %.4f", pos.x(), pos.y()); } return QwtText(text); } /*! Append a point to the selection and update rubberband and tracker. \param pos Additional point \sa isActive, begin(), end(), move(), appended() \note The appended(const QPoint &), appended(const QDoublePoint &) signals are emitted. */ void QwtPlotPicker::append(const QPoint &pos) { QwtPicker::append(pos); emit appended(invTransform(pos)); } /*! Move the last point of the selection \param pos New position \sa isActive, begin(), end(), append() \note The moved(const QPoint &), moved(const QDoublePoint &) signals are emitted. */ void QwtPlotPicker::move(const QPoint &pos) { QwtPicker::move(pos); emit moved(invTransform(pos)); } /*! Close a selection setting the state to inactive. \param ok If true, complete the selection and emit selected signals otherwise discard the selection. \return true if the selection is accepted, false otherwise */ bool QwtPlotPicker::end(bool ok) { ok = QwtPicker::end(ok); if ( !ok ) return false; QwtPlot *plot = QwtPlotPicker::plot(); if ( !plot ) return false; const QwtPolygon &pa = selection(); if ( pa.count() == 0 ) return false; if ( selectionFlags() & PointSelection ) { const QwtDoublePoint pos = invTransform(pa[0]); emit selected(pos); } else if ( (selectionFlags() & RectSelection) && pa.count() >= 2 ) { QPoint p1 = pa[0]; QPoint p2 = pa[int(pa.count() - 1)]; if ( selectionFlags() & CenterToCorner ) { p1.setX(p1.x() - (p2.x() - p1.x())); p1.setY(p1.y() - (p2.y() - p1.y())); } else if ( selectionFlags() & CenterToRadius ) { const int radius = qwtMax(qwtAbs(p2.x() - p1.x()), qwtAbs(p2.y() - p1.y())); p2.setX(p1.x() + radius); p2.setY(p1.y() + radius); p1.setX(p1.x() - radius); p1.setY(p1.y() - radius); } emit selected(invTransform(QRect(p1, p2)).normalized()); } else { QwtArray dpa(pa.count()); for ( int i = 0; i < int(pa.count()); i++ ) dpa[i] = invTransform(pa[i]); emit selected(dpa); } return true; } /*! Translate a rectangle from pixel into plot coordinates \return Rectangle in plot coordinates \sa QwtPlotPicker::transform() */ QwtDoubleRect QwtPlotPicker::invTransform(const QRect &rect) const { QwtScaleMap xMap = plot()->canvasMap(d_xAxis); QwtScaleMap yMap = plot()->canvasMap(d_yAxis); const double left = xMap.invTransform(rect.left()); const double right = xMap.invTransform(rect.right()); const double top = yMap.invTransform(rect.top()); const double bottom = yMap.invTransform(rect.bottom()); return QwtDoubleRect(left, top, right - left, bottom - top); } /*! Translate a rectangle from plot into pixel coordinates \return Rectangle in pixel coordinates \sa QwtPlotPicker::invTransform() */ QRect QwtPlotPicker::transform(const QwtDoubleRect &rect) const { QwtScaleMap xMap = plot()->canvasMap(d_xAxis); QwtScaleMap yMap = plot()->canvasMap(d_yAxis); const int left = xMap.transform(rect.left()); const int right = xMap.transform(rect.right()); const int top = yMap.transform(rect.top()); const int bottom = yMap.transform(rect.bottom()); return QRect(left, top, right - left, bottom - top); } /*! Translate a point from pixel into plot coordinates \return Point in plot coordinates \sa QwtPlotPicker::transform() */ QwtDoublePoint QwtPlotPicker::invTransform(const QPoint &pos) const { QwtScaleMap xMap = plot()->canvasMap(d_xAxis); QwtScaleMap yMap = plot()->canvasMap(d_yAxis); return QwtDoublePoint( xMap.invTransform(pos.x()), yMap.invTransform(pos.y()) ); } /*! Translate a point from plot into pixel coordinates \return Point in pixel coordinates \sa QwtPlotPicker::invTransform() */ QPoint QwtPlotPicker::transform(const QwtDoublePoint &pos) const { QwtScaleMap xMap = plot()->canvasMap(d_xAxis); QwtScaleMap yMap = plot()->canvasMap(d_yAxis); return QPoint( xMap.transform(pos.x()), yMap.transform(pos.y()) ); } qwt5-5.2.3/src/qwt_raster_data.h0000644000175000017500000000644312052741123016107 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_RASTER_DATA_H #define QWT_RASTER_DATA_H 1 #include #include "qwt_global.h" #include "qwt_double_rect.h" #include "qwt_double_interval.h" #if QT_VERSION >= 0x040000 #include #include #if defined(QWT_TEMPLATEDLL) // MOC_SKIP_BEGIN template class QWT_EXPORT QMap; // MOC_SKIP_END #endif #else #include #include "qwt_array.h" #include "qwt_double_rect.h" #if defined(QWT_TEMPLATEDLL) // MOC_SKIP_BEGIN #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT template class QWT_EXPORT QwtArray; #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT #ifndef QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT // by mjo3 #define QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT template class QWT_EXPORT QMap >; #endif //end of QMAP_TEMPLATE_QWTDOUBLEPOINT // MOC_SKIP_END #endif #endif class QwtScaleMap; /*! \brief QwtRasterData defines an interface to any type of raster data. QwtRasterData is an abstract interface, that is used by QwtPlotRasterItem to find the values at the pixels of its raster. Often a raster item is used to display values from a matrix. Then the derived raster data class needs to implement some sort of resampling, that maps the raster of the matrix into the requested raster of the raster item ( depending on resolution and scales of the canvas ). */ class QWT_EXPORT QwtRasterData { public: #if QT_VERSION >= 0x040000 typedef QMap ContourLines; #else typedef QMap > ContourLines; #endif //! Attribute to modify the contour algorithm enum ConrecAttribute { IgnoreAllVerticesOnLevel = 1, IgnoreOutOfRange = 2 }; QwtRasterData(); QwtRasterData(const QwtDoubleRect &); virtual ~QwtRasterData(); //! Clone the data virtual QwtRasterData *copy() const = 0; virtual void setBoundingRect(const QwtDoubleRect &); QwtDoubleRect boundingRect() const; virtual QSize rasterHint(const QwtDoubleRect &) const; virtual void initRaster(const QwtDoubleRect &, const QSize& raster); virtual void discardRaster(); /*! \return the value at a raster position \param x X value in plot coordinates \param y Y value in plot coordinates */ virtual double value(double x, double y) const = 0; //! \return the range of the values virtual QwtDoubleInterval range() const = 0; #if QT_VERSION >= 0x040000 virtual ContourLines contourLines(const QwtDoubleRect &rect, const QSize &raster, const QList &levels, int flags) const; #else virtual ContourLines contourLines(const QwtDoubleRect &rect, const QSize &raster, const QValueList &levels, int flags) const; #endif class Contour3DPoint; class ContourPlane; private: QwtDoubleRect d_boundingRect; }; #endif qwt5-5.2.3/src/qwt_slider.cpp0000644000175000017500000005336012052741126015436 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include "qwt_painter.h" #include "qwt_paint_buffer.h" #include "qwt_scale_draw.h" #include "qwt_scale_map.h" #include "qwt_slider.h" class QwtSlider::PrivateData { public: QRect sliderRect; int thumbLength; int thumbWidth; int borderWidth; int scaleDist; int xMargin; int yMargin; QwtSlider::ScalePos scalePos; QwtSlider::BGSTYLE bgStyle; /* Scale and values might have different maps. This is confusing and I can't see strong arguments for such a feature. TODO ... */ QwtScaleMap map; // linear map mutable QSize sizeHintCache; }; /*! \brief Constructor \param parent parent widget \param orientation Orientation of the slider. Can be Qt::Horizontal or Qt::Vertical. Defaults to Qt::Horizontal. \param scalePos Position of the scale. Defaults to QwtSlider::NoScale. \param bgStyle Background style. QwtSlider::BgTrough draws the slider button in a trough, QwtSlider::BgSlot draws a slot underneath the button. An or-combination of both may also be used. The default is QwtSlider::BgTrough. QwtSlider enforces valid combinations of its orientation and scale position. If the combination is invalid, the scale position will be set to NoScale. Valid combinations are: - Qt::Horizonal with NoScale, TopScale, or BottomScale; - Qt::Vertical with NoScale, LeftScale, or RightScale. */ QwtSlider::QwtSlider(QWidget *parent, Qt::Orientation orientation, ScalePos scalePos, BGSTYLE bgStyle): QwtAbstractSlider(orientation, parent) { initSlider(orientation, scalePos, bgStyle); } #if QT_VERSION < 0x040000 /*! \brief Constructor Build a horizontal slider with no scale and BgTrough as background style \param parent parent widget \param name Object name */ QwtSlider::QwtSlider(QWidget *parent, const char* name): QwtAbstractSlider(Qt::Horizontal, parent) { setName(name); initSlider(Qt::Horizontal, NoScale, BgTrough); } #endif void QwtSlider::initSlider(Qt::Orientation orientation, ScalePos scalePos, BGSTYLE bgStyle) { if (orientation == Qt::Vertical) setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); else setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif d_data = new QwtSlider::PrivateData; d_data->borderWidth = 2; d_data->scaleDist = 4; d_data->scalePos = scalePos; d_data->xMargin = 0; d_data->yMargin = 0; d_data->bgStyle = bgStyle; if (bgStyle == BgSlot) { d_data->thumbLength = 16; d_data->thumbWidth = 30; } else { d_data->thumbLength = 31; d_data->thumbWidth = 16; } d_data->sliderRect.setRect(0,0,8,8); QwtScaleDraw::Alignment align; if ( orientation == Qt::Vertical ) { // enforce a valid combination of scale position and orientation if ((d_data->scalePos == BottomScale) || (d_data->scalePos == TopScale)) d_data->scalePos = NoScale; // adopt the policy of layoutSlider (NoScale lays out like Left) if (d_data->scalePos == RightScale) align = QwtScaleDraw::RightScale; else align = QwtScaleDraw::LeftScale; } else { // enforce a valid combination of scale position and orientation if ((d_data->scalePos == LeftScale) || (d_data->scalePos == RightScale)) d_data->scalePos = NoScale; // adopt the policy of layoutSlider (NoScale lays out like Bottom) if (d_data->scalePos == TopScale) align = QwtScaleDraw::TopScale; else align = QwtScaleDraw::BottomScale; } scaleDraw()->setAlignment(align); scaleDraw()->setLength(100); setRange(0.0, 100.0, 1.0); setValue(0.0); } QwtSlider::~QwtSlider() { delete d_data; } /*! \brief Set the orientation. \param o Orientation. Allowed values are Qt::Horizontal and Qt::Vertical. If the new orientation and the old scale position are an invalid combination, the scale position will be set to QwtSlider::NoScale. \sa QwtAbstractSlider::orientation() */ void QwtSlider::setOrientation(Qt::Orientation o) { if ( o == orientation() ) return; if (o == Qt::Horizontal) { if ((d_data->scalePos == LeftScale) || (d_data->scalePos == RightScale)) d_data->scalePos = NoScale; } else // if (o == Qt::Vertical) { if ((d_data->scalePos == BottomScale) || (d_data->scalePos == TopScale)) d_data->scalePos = NoScale; } #if QT_VERSION >= 0x040000 if ( !testAttribute(Qt::WA_WState_OwnSizePolicy) ) #else if ( !testWState( WState_OwnSizePolicy ) ) #endif { QSizePolicy sp = sizePolicy(); sp.transpose(); setSizePolicy(sp); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } QwtAbstractSlider::setOrientation(o); layoutSlider(); } /*! \brief Change the scale position (and slider orientation). \param s Position of the scale. A valid combination of scale position and orientation is enforced: - if the new scale position is Left or Right, the scale orientation will become Qt::Vertical; - if the new scale position is Bottom or Top the scale orientation will become Qt::Horizontal; - if the new scale position is QwtSlider::NoScale, the scale orientation will not change. */ void QwtSlider::setScalePosition(ScalePos s) { if ( d_data->scalePos == s ) return; d_data->scalePos = s; switch(d_data->scalePos) { case BottomScale: { setOrientation(Qt::Horizontal); scaleDraw()->setAlignment(QwtScaleDraw::BottomScale); break; } case TopScale: { setOrientation(Qt::Horizontal); scaleDraw()->setAlignment(QwtScaleDraw::TopScale); break; } case LeftScale: { setOrientation(Qt::Vertical); scaleDraw()->setAlignment(QwtScaleDraw::LeftScale); break; } case RightScale: { setOrientation(Qt::Vertical); scaleDraw()->setAlignment(QwtScaleDraw::RightScale); break; } default: { // nothing } } layoutSlider(); } //! Return the scale position. QwtSlider::ScalePos QwtSlider::scalePosition() const { return d_data->scalePos; } /*! \brief Change the slider's border width \param bd border width */ void QwtSlider::setBorderWidth(int bd) { if ( bd < 0 ) bd = 0; if ( bd != d_data->borderWidth ) { d_data->borderWidth = bd; layoutSlider(); } } /*! \brief Set the slider's thumb length \param thumbLength new length */ void QwtSlider::setThumbLength(int thumbLength) { if ( thumbLength < 8 ) thumbLength = 8; if ( thumbLength != d_data->thumbLength ) { d_data->thumbLength = thumbLength; layoutSlider(); } } /*! \brief Change the width of the thumb \param w new width */ void QwtSlider::setThumbWidth(int w) { if ( w < 4 ) w = 4; if ( d_data->thumbWidth != w ) { d_data->thumbWidth = w; layoutSlider(); } } /*! \brief Set a scale draw For changing the labels of the scales, it is necessary to derive from QwtScaleDraw and overload QwtScaleDraw::label(). \param scaleDraw ScaleDraw object, that has to be created with new and will be deleted in ~QwtSlider or the next call of setScaleDraw(). */ void QwtSlider::setScaleDraw(QwtScaleDraw *scaleDraw) { const QwtScaleDraw *previousScaleDraw = this->scaleDraw(); if ( scaleDraw == NULL || scaleDraw == previousScaleDraw ) return; if ( previousScaleDraw ) scaleDraw->setAlignment(previousScaleDraw->alignment()); setAbstractScaleDraw(scaleDraw); layoutSlider(); } /*! \return the scale draw of the slider \sa setScaleDraw() */ const QwtScaleDraw *QwtSlider::scaleDraw() const { return (QwtScaleDraw *)abstractScaleDraw(); } /*! \return the scale draw of the slider \sa setScaleDraw() */ QwtScaleDraw *QwtSlider::scaleDraw() { return (QwtScaleDraw *)abstractScaleDraw(); } //! Notify changed scale void QwtSlider::scaleChange() { layoutSlider(); } //! Notify change in font void QwtSlider::fontChange(const QFont &f) { QwtAbstractSlider::fontChange( f ); layoutSlider(); } /*! Draw the slider into the specified rectangle. \param painter Painter \param r Rectangle */ void QwtSlider::drawSlider(QPainter *painter, const QRect &r) { QRect cr(r); if (d_data->bgStyle & BgTrough) { qDrawShadePanel(painter, r.x(), r.y(), r.width(), r.height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, d_data->borderWidth,0); cr.setRect(r.x() + d_data->borderWidth, r.y() + d_data->borderWidth, r.width() - 2 * d_data->borderWidth, r.height() - 2 * d_data->borderWidth); painter->fillRect(cr.x(), cr.y(), cr.width(), cr.height(), #if QT_VERSION < 0x040000 colorGroup().brush(QColorGroup::Mid) #else palette().brush(QPalette::Mid) #endif ); } if ( d_data->bgStyle & BgSlot) { int ws = 4; int ds = d_data->thumbLength / 2 - 4; if ( ds < 1 ) ds = 1; QRect rSlot; if (orientation() == Qt::Horizontal) { if ( cr.height() & 1 ) ws++; rSlot = QRect(cr.x() + ds, cr.y() + (cr.height() - ws) / 2, cr.width() - 2 * ds, ws); } else { if ( cr.width() & 1 ) ws++; rSlot = QRect(cr.x() + (cr.width() - ws) / 2, cr.y() + ds, ws, cr.height() - 2 * ds); } painter->fillRect(rSlot.x(), rSlot.y(), rSlot.width(), rSlot.height(), #if QT_VERSION < 0x040000 colorGroup().brush(QColorGroup::Dark) #else palette().brush(QPalette::Dark) #endif ); qDrawShadePanel(painter, rSlot.x(), rSlot.y(), rSlot.width(), rSlot.height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, 1 ,0); } if ( isValid() ) drawThumb(painter, cr, xyPosition(value())); } /*! Draw the thumb at a position \param painter Painter \param sliderRect Bounding rectangle of the slider \param pos Position of the slider thumb */ void QwtSlider::drawThumb(QPainter *painter, const QRect &sliderRect, int pos) { pos++; // shade line points one pixel below if (orientation() == Qt::Horizontal) { qDrawShadePanel(painter, pos - d_data->thumbLength / 2, sliderRect.y(), d_data->thumbLength, sliderRect.height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif false, d_data->borderWidth, #if QT_VERSION < 0x040000 &colorGroup().brush(QColorGroup::Button) #else &palette().brush(QPalette::Button) #endif ); qDrawShadeLine(painter, pos, sliderRect.y(), pos, sliderRect.y() + sliderRect.height() - 2, #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, 1); } else // Vertical { qDrawShadePanel(painter, sliderRect.x(), pos - d_data->thumbLength / 2, sliderRect.width(), d_data->thumbLength, #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif false, d_data->borderWidth, #if QT_VERSION < 0x040000 &colorGroup().brush(QColorGroup::Button) #else &palette().brush(QPalette::Button) #endif ); qDrawShadeLine(painter, sliderRect.x(), pos, sliderRect.x() + sliderRect.width() - 2, pos, #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, 1); } } /*! Find the x/y position for a given value v \param value Value */ int QwtSlider::xyPosition(double value) const { return d_data->map.transform(value); } /*! Determine the value corresponding to a specified mouse location. \param pos Mouse position */ double QwtSlider::getValue(const QPoint &pos) { return d_data->map.invTransform( orientation() == Qt::Horizontal ? pos.x() : pos.y()); } /*! \brief Determine scrolling mode and direction \param p point \param scrollMode Scrolling mode \param direction Direction */ void QwtSlider::getScrollMode(const QPoint &p, int &scrollMode, int &direction ) { if (!d_data->sliderRect.contains(p)) { scrollMode = ScrNone; direction = 0; return; } const int pos = ( orientation() == Qt::Horizontal ) ? p.x() : p.y(); const int markerPos = xyPosition(value()); if ((pos > markerPos - d_data->thumbLength / 2) && (pos < markerPos + d_data->thumbLength / 2)) { scrollMode = ScrMouse; direction = 0; return; } scrollMode = ScrPage; direction = (pos > markerPos) ? 1 : -1; if ( scaleDraw()->map().p1() > scaleDraw()->map().p2() ) direction = -direction; } /*! Qt paint event \param event Paint event */ void QwtSlider::paintEvent(QPaintEvent *event) { const QRect &ur = event->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); draw(paintBuffer.painter(), ur); #else QPainter painter(this); draw(&painter, ur); #endif } } //! Draw the QwtSlider void QwtSlider::draw(QPainter *painter, const QRect&) { if (d_data->scalePos != NoScale) { #if QT_VERSION < 0x040000 scaleDraw()->draw(painter, colorGroup()); #else scaleDraw()->draw(painter, palette()); #endif } drawSlider(painter, d_data->sliderRect); if ( hasFocus() ) QwtPainter::drawFocusRect(painter, this, d_data->sliderRect); } //! Qt resize event void QwtSlider::resizeEvent(QResizeEvent *) { layoutSlider( false ); } /*! Recalculate the slider's geometry and layout based on the current rect and fonts. \param update_geometry notify the layout system and call update to redraw the scale */ void QwtSlider::layoutSlider( bool update_geometry ) { int sliderWidth = d_data->thumbWidth; int sld1 = d_data->thumbLength / 2 - 1; int sld2 = d_data->thumbLength / 2 + d_data->thumbLength % 2; if ( d_data->bgStyle & BgTrough ) { sliderWidth += 2 * d_data->borderWidth; sld1 += d_data->borderWidth; sld2 += d_data->borderWidth; } int scd = 0; if ( d_data->scalePos != NoScale ) { int d1, d2; scaleDraw()->getBorderDistHint(font(), d1, d2); scd = qwtMax(d1, d2); } int slo = scd - sld1; if ( slo < 0 ) slo = 0; int x, y, length; const QRect r = rect(); if (orientation() == Qt::Horizontal) { switch (d_data->scalePos) { case TopScale: { d_data->sliderRect.setRect( r.x() + d_data->xMargin + slo, r.y() + r.height() - d_data->yMargin - sliderWidth, r.width() - 2 * d_data->xMargin - 2 * slo, sliderWidth); x = d_data->sliderRect.x() + sld1; y = d_data->sliderRect.y() - d_data->scaleDist; break; } case BottomScale: { d_data->sliderRect.setRect( r.x() + d_data->xMargin + slo, r.y() + d_data->yMargin, r.width() - 2 * d_data->xMargin - 2 * slo, sliderWidth); x = d_data->sliderRect.x() + sld1; y = d_data->sliderRect.y() + d_data->sliderRect.height() + d_data->scaleDist; break; } case NoScale: // like Bottom, but no scale. See QwtSlider(). default: // inconsistent orientation and scale position { d_data->sliderRect.setRect( r.x() + d_data->xMargin + slo, r.y() + d_data->yMargin, r.width() - 2 * d_data->xMargin - 2 * slo, sliderWidth); x = d_data->sliderRect.x() + sld1; y = 0; break; } } length = d_data->sliderRect.width() - (sld1 + sld2); } else // if (orientation() == Qt::Vertical { switch (d_data->scalePos) { case RightScale: d_data->sliderRect.setRect( r.x() + d_data->xMargin, r.y() + d_data->yMargin + slo, sliderWidth, r.height() - 2 * d_data->yMargin - 2 * slo); x = d_data->sliderRect.x() + d_data->sliderRect.width() + d_data->scaleDist; y = d_data->sliderRect.y() + sld1; break; case LeftScale: d_data->sliderRect.setRect( r.x() + r.width() - sliderWidth - d_data->xMargin, r.y() + d_data->yMargin + slo, sliderWidth, r.height() - 2 * d_data->yMargin - 2 * slo); x = d_data->sliderRect.x() - d_data->scaleDist; y = d_data->sliderRect.y() + sld1; break; case NoScale: // like Left, but no scale. See QwtSlider(). default: // inconsistent orientation and scale position d_data->sliderRect.setRect( r.x() + r.width() - sliderWidth - d_data->xMargin, r.y() + d_data->yMargin + slo, sliderWidth, r.height() - 2 * d_data->yMargin - 2 * slo); x = 0; y = d_data->sliderRect.y() + sld1; break; } length = d_data->sliderRect.height() - (sld1 + sld2); } scaleDraw()->move(x, y); scaleDraw()->setLength(length); d_data->map.setPaintXInterval(scaleDraw()->map().p1(), scaleDraw()->map().p2()); if ( update_geometry ) { d_data->sizeHintCache = QSize(); // invalidate updateGeometry(); update(); } } //! Notify change of value void QwtSlider::valueChange() { QwtAbstractSlider::valueChange(); update(); } //! Notify change of range void QwtSlider::rangeChange() { d_data->map.setScaleInterval(minValue(), maxValue()); if (autoScale()) rescale(minValue(), maxValue()); QwtAbstractSlider::rangeChange(); layoutSlider(); } /*! \brief Set distances between the widget's border and internals. \param xMargin Horizontal margin \param yMargin Vertical margin */ void QwtSlider::setMargins(int xMargin, int yMargin) { if ( xMargin < 0 ) xMargin = 0; if ( yMargin < 0 ) yMargin = 0; if ( xMargin != d_data->xMargin || yMargin != d_data->yMargin ) { d_data->xMargin = xMargin; d_data->yMargin = yMargin; layoutSlider(); } } /*! Set the background style. */ void QwtSlider::setBgStyle(BGSTYLE st) { d_data->bgStyle = st; layoutSlider(); } /*! \return the background style. */ QwtSlider::BGSTYLE QwtSlider::bgStyle() const { return d_data->bgStyle; } /*! \return the thumb length. */ int QwtSlider::thumbLength() const { return d_data->thumbLength; } /*! \return the thumb width. */ int QwtSlider::thumbWidth() const { return d_data->thumbWidth; } /*! \return the border width. */ int QwtSlider::borderWidth() const { return d_data->borderWidth; } /*! \return QwtSlider::minimumSizeHint() */ QSize QwtSlider::sizeHint() const { return minimumSizeHint(); } /*! \brief Return a minimum size hint \warning The return value of QwtSlider::minimumSizeHint() depends on the font and the scale. */ QSize QwtSlider::minimumSizeHint() const { if (!d_data->sizeHintCache.isEmpty()) return d_data->sizeHintCache; int sliderWidth = d_data->thumbWidth; if (d_data->bgStyle & BgTrough) sliderWidth += 2 * d_data->borderWidth; int w = 0, h = 0; if (d_data->scalePos != NoScale) { int d1, d2; scaleDraw()->getBorderDistHint(font(), d1, d2); int msMbd = qwtMax(d1, d2); int mbd = d_data->thumbLength / 2; if (d_data->bgStyle & BgTrough) mbd += d_data->borderWidth; if ( mbd < msMbd ) mbd = msMbd; const int sdExtent = scaleDraw()->extent( QPen(), font() ); const int sdLength = scaleDraw()->minLength( QPen(), font() ); h = sliderWidth + sdExtent + d_data->scaleDist; w = sdLength - 2 * msMbd + 2 * mbd; } else // no scale { w = 200; h = sliderWidth; } if ( orientation() == Qt::Vertical ) qSwap(w, h); w += 2 * d_data->xMargin; h += 2 * d_data->yMargin; d_data->sizeHintCache = QSize(w, h); return d_data->sizeHintCache; } qwt5-5.2.3/src/qwt_scale_draw.h0000644000175000017500000000575112052741123015723 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SCALE_DRAW_H #define QWT_SCALE_DRAW_H #include #include "qwt_global.h" #include "qwt_abstract_scale_draw.h" /*! \brief A class for drawing scales QwtScaleDraw can be used to draw linear or logarithmic scales. A scale has a position, an alignment and a length, which can be specified . The labels can be rotated and aligned to the ticks using setLabelRotation() and setLabelAlignment(). After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member. */ class QWT_EXPORT QwtScaleDraw: public QwtAbstractScaleDraw { public: /*! Alignment of the scale draw \sa setAlignment(), alignment() */ enum Alignment { BottomScale, TopScale, LeftScale, RightScale }; QwtScaleDraw(); QwtScaleDraw(const QwtScaleDraw &); virtual ~QwtScaleDraw(); QwtScaleDraw &operator=(const QwtScaleDraw &other); void getBorderDistHint(const QFont &, int &start, int &end) const; int minLabelDist(const QFont &) const; int minLength(const QPen &, const QFont &) const; virtual int extent(const QPen &, const QFont &) const; void move(int x, int y); void move(const QPoint &); void setLength(int length); Alignment alignment() const; void setAlignment(Alignment); Qt::Orientation orientation() const; QPoint pos() const; int length() const; #if QT_VERSION < 0x040000 void setLabelAlignment(int); int labelAlignment() const; #else void setLabelAlignment(Qt::Alignment); Qt::Alignment labelAlignment() const; #endif void setLabelRotation(double rotation); double labelRotation() const; int maxLabelHeight(const QFont &) const; int maxLabelWidth(const QFont &) const; QPoint labelPosition(double val) const; QRect labelRect(const QFont &, double val) const; QSize labelSize(const QFont &, double val) const; QRect boundingLabelRect(const QFont &, double val) const; protected: #if QT_VERSION < 0x040000 QWMatrix labelMatrix(const QPoint &, const QSize &) const; #else QMatrix labelMatrix(const QPoint &, const QSize &) const; #endif virtual void drawTick(QPainter *p, double val, int len) const; virtual void drawBackbone(QPainter *p) const; virtual void drawLabel(QPainter *p, double val) const; private: void updateMap(); class PrivateData; PrivateData *d_data; }; /*! Move the position of the scale \sa move(const QPoint &) */ inline void QwtScaleDraw::move(int x, int y) { move(QPoint(x, y)); } #endif qwt5-5.2.3/src/qwt_plot_scaleitem.cpp0000644000175000017500000002566312052741126017165 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_scale_map.h" #include "qwt_plot_scaleitem.h" #include "qwt_double_interval.h" class QwtPlotScaleItem::PrivateData { public: PrivateData(): position(0.0), borderDistance(-1), scaleDivFromAxis(true), scaleDraw(new QwtScaleDraw()) { } ~PrivateData() { delete scaleDraw; } #if QT_VERSION < 0x040000 QColorGroup colorGroup; #else QPalette palette; #endif QFont font; double position; int borderDistance; bool scaleDivFromAxis; QwtScaleDraw *scaleDraw; QRect canvasRectCache; }; /*! \brief Constructor for scale item at the position pos. \param alignment In case of QwtScaleDraw::BottomScale/QwtScaleDraw::TopScale the scale item is corresponding to the xAxis(), otherwise it corresponds to the yAxis(). \param pos x or y position, depending on the corresponding axis. \sa setPosition(), setAlignment() */ QwtPlotScaleItem::QwtPlotScaleItem( QwtScaleDraw::Alignment alignment, const double pos): QwtPlotItem(QwtText("Scale")) { d_data = new PrivateData; d_data->position = pos; d_data->scaleDraw->setAlignment(alignment); setZ(11.0); } //! Destructor QwtPlotScaleItem::~QwtPlotScaleItem() { delete d_data; } //! \return QwtPlotItem::Rtti_PlotScale int QwtPlotScaleItem::rtti() const { return QwtPlotItem::Rtti_PlotScale; } /*! \brief Assign a scale division When assigning a scaleDiv the scale division won't be synchronized with the corresponding axis anymore. \param scaleDiv Scale division \sa scaleDiv(), setScaleDivFromAxis(), isScaleDivFromAxis() */ void QwtPlotScaleItem::setScaleDiv(const QwtScaleDiv& scaleDiv) { d_data->scaleDivFromAxis = false; d_data->scaleDraw->setScaleDiv(scaleDiv); } //! \return Scale division const QwtScaleDiv& QwtPlotScaleItem::scaleDiv() const { return d_data->scaleDraw->scaleDiv(); } /*! Enable/Disable the synchronization of the scale division with the corresponding axis. \param on true/false \sa isScaleDivFromAxis() */ void QwtPlotScaleItem::setScaleDivFromAxis(bool on) { if ( on != d_data->scaleDivFromAxis ) { d_data->scaleDivFromAxis = on; if ( on ) { const QwtPlot *plt = plot(); if ( plt ) { updateScaleDiv( *plt->axisScaleDiv(xAxis()), *plt->axisScaleDiv(yAxis()) ); itemChanged(); } } } } /*! \return True, if the synchronization of the scale division with the corresponding axis is enabled. \sa setScaleDiv(), setScaleDivFromAxis() */ bool QwtPlotScaleItem::isScaleDivFromAxis() const { return d_data->scaleDivFromAxis; } #if QT_VERSION < 0x040000 /*! Set the color group \sa QwtAbstractScaleDraw::draw(), colorGroup() */ void QwtPlotScaleItem::setColorGroup(const QColorGroup &colorGroup) { if ( colorGroup != d_data->colorGroup ) { d_data->colorGroup = colorGroup; itemChanged(); } } /*! \return color group \sa setColorGroup() */ QColorGroup QwtPlotScaleItem::colorGroup() const { return d_data->colorGroup; } #else /*! Set the palette \sa QwtAbstractScaleDraw::draw(), palette() */ void QwtPlotScaleItem::setPalette(const QPalette &palette) { if ( palette != d_data->palette ) { d_data->palette = palette; itemChanged(); } } /*! \return palette \sa setPalette() */ QPalette QwtPlotScaleItem::palette() const { return d_data->palette; } #endif /*! Change the tick label font \sa font() */ void QwtPlotScaleItem::setFont(const QFont &font) { if ( font != d_data->font ) { d_data->font = font; itemChanged(); } } /*! \return tick label font \sa setFont() */ QFont QwtPlotScaleItem::font() const { return d_data->font; } /*! \brief Set a scale draw \param scaleDraw object responsible for drawing scales. The main use case for replacing the default QwtScaleDraw is to overload QwtAbstractScaleDraw::label, to replace or swallow tick labels. \sa scaleDraw() */ void QwtPlotScaleItem::setScaleDraw(QwtScaleDraw *scaleDraw) { if ( scaleDraw == NULL ) return; if ( scaleDraw != d_data->scaleDraw ) delete d_data->scaleDraw; d_data->scaleDraw = scaleDraw; const QwtPlot *plt = plot(); if ( plt ) { updateScaleDiv( *plt->axisScaleDiv(xAxis()), *plt->axisScaleDiv(yAxis()) ); } itemChanged(); } /*! \return Scale draw \sa setScaleDraw() */ const QwtScaleDraw *QwtPlotScaleItem::scaleDraw() const { return d_data->scaleDraw; } /*! \return Scale draw \sa setScaleDraw() */ QwtScaleDraw *QwtPlotScaleItem::scaleDraw() { return d_data->scaleDraw; } /*! Change the position of the scale The position is interpreted as y value for horizontal axes and as x value for vertical axes. The border distance is set to -1. \param pos New position \sa position(), setAlignment() */ void QwtPlotScaleItem::setPosition(double pos) { if ( d_data->position != pos ) { d_data->position = pos; d_data->borderDistance = -1; itemChanged(); } } /*! \return Position of the scale \sa setPosition(), setAlignment() */ double QwtPlotScaleItem::position() const { return d_data->position; } /*! \brief Align the scale to the canvas If distance is >= 0 the scale will be aligned to a border of the contents rect of the canvas. If alignment() is QwtScaleDraw::LeftScale, the scale will be aligned to the right border, if it is QwtScaleDraw::TopScale it will be aligned to the bottom (and vice versa), If distance is < 0 the scale will be at the position(). \param distance Number of pixels between the canvas border and the backbone of the scale. \sa setPosition(), borderDistance() */ void QwtPlotScaleItem::setBorderDistance(int distance) { if ( distance < 0 ) distance = -1; if ( distance != d_data->borderDistance ) { d_data->borderDistance = distance; itemChanged(); } } /*! \return Distance from a canvas border \sa setBorderDistance(), setPosition() */ int QwtPlotScaleItem::borderDistance() const { return d_data->borderDistance; } /*! Change the alignment of the scale The alignment sets the orientation of the scale and the position of the ticks: - QwtScaleDraw::BottomScale: horizontal, ticks below - QwtScaleDraw::TopScale: horizontal, ticks above - QwtScaleDraw::LeftScale: vertical, ticks left - QwtScaleDraw::RightScale: vertical, ticks right For horizontal scales the position corresponds to QwtPlotItem::yAxis(), otherwise to QwtPlotItem::xAxis(). \sa scaleDraw(), QwtScaleDraw::alignment(), setPosition() */ void QwtPlotScaleItem::setAlignment(QwtScaleDraw::Alignment alignment) { QwtScaleDraw *sd = d_data->scaleDraw; if ( sd->alignment() != alignment ) { sd->setAlignment(alignment); itemChanged(); } } /*! \brief Draw the scale */ void QwtPlotScaleItem::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { if ( canvasRect != d_data->canvasRectCache ) { QwtPlotScaleItem* that = (QwtPlotScaleItem*)this; that->updateBorders(); } QPen pen = painter->pen(); pen.setStyle(Qt::SolidLine); painter->setPen(pen); int pw = painter->pen().width(); if ( pw == 0 ) pw = 1; QwtScaleDraw *sd = d_data->scaleDraw; if ( sd->orientation() == Qt::Horizontal ) { int y; if ( d_data->borderDistance >= 0 ) { if ( sd->alignment() == QwtScaleDraw::BottomScale ) y = canvasRect.top() + d_data->borderDistance; else { y = canvasRect.bottom() - d_data->borderDistance - pw + 1; } } else { y = yMap.transform(d_data->position); } if ( y < canvasRect.top() || y > canvasRect.bottom() ) return; sd->move(canvasRect.left(), y); sd->setLength(canvasRect.width() - 1); sd->setTransformation(xMap.transformation()->copy()); } else // == Qt::Vertical { int x; if ( d_data->borderDistance >= 0 ) { if ( sd->alignment() == QwtScaleDraw::RightScale ) x = canvasRect.left() + d_data->borderDistance; else { x = canvasRect.right() - d_data->borderDistance - pw + 1; } } else { x = xMap.transform(d_data->position); } if ( x < canvasRect.left() || x > canvasRect.right() ) return; sd->move(x, canvasRect.top()); sd->setLength(canvasRect.height() - 1); sd->setTransformation(yMap.transformation()->copy()); } painter->setFont(d_data->font); #if QT_VERSION < 0x040000 sd->draw(painter, d_data->colorGroup); #else sd->draw(painter, d_data->palette); #endif } /*! \brief Update the item to changes of the axes scale division In case of isScaleDivFromAxis(), the scale draw is synchronized to the correspond axis. \param xScaleDiv Scale division of the x-axis \param yScaleDiv Scale division of the y-axis \sa QwtPlot::updateAxes() */ void QwtPlotScaleItem::updateScaleDiv(const QwtScaleDiv& xScaleDiv, const QwtScaleDiv& yScaleDiv) { QwtScaleDraw *sd = d_data->scaleDraw; if ( d_data->scaleDivFromAxis && sd ) { sd->setScaleDiv( sd->orientation() == Qt::Horizontal ? xScaleDiv : yScaleDiv); updateBorders(); } } void QwtPlotScaleItem::updateBorders() { const QwtPlot *plt = plot(); if ( plt == NULL || !d_data->scaleDivFromAxis ) return; const QRect r = plt->canvas()->contentsRect(); d_data->canvasRectCache = r; QwtDoubleInterval interval; if ( d_data->scaleDraw->orientation() == Qt::Horizontal ) { const QwtScaleMap map = plt->canvasMap(xAxis()); interval.setMinValue(map.invTransform(r.left())); interval.setMaxValue(map.invTransform(r.right())); } else { const QwtScaleMap map = plt->canvasMap(yAxis()); interval.setMinValue(map.invTransform(r.bottom())); interval.setMaxValue(map.invTransform(r.top())); } QwtScaleDiv scaleDiv = d_data->scaleDraw->scaleDiv(); scaleDiv.setInterval(interval); d_data->scaleDraw->setScaleDiv(scaleDiv); } qwt5-5.2.3/src/qwt_text.cpp0000644000175000017500000004126312052741126015137 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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 #include #include #include #include #include #include #include "qwt_painter.h" #include "qwt_text_engine.h" #include "qwt_text.h" #if QT_VERSION >= 0x040000 #include #include #endif class QwtTextEngineDict { public: QwtTextEngineDict(); ~QwtTextEngineDict(); void setTextEngine(QwtText::TextFormat, QwtTextEngine *); const QwtTextEngine *textEngine(QwtText::TextFormat) const; const QwtTextEngine *textEngine(const QString &, QwtText::TextFormat) const; private: typedef QMap EngineMap; inline const QwtTextEngine *engine(EngineMap::const_iterator &it) const { #if QT_VERSION < 0x040000 return it.data(); #else return it.value(); #endif } EngineMap d_map; }; QwtTextEngineDict::QwtTextEngineDict() { d_map.insert(QwtText::PlainText, new QwtPlainTextEngine()); #ifndef QT_NO_RICHTEXT d_map.insert(QwtText::RichText, new QwtRichTextEngine()); #endif } QwtTextEngineDict::~QwtTextEngineDict() { for ( EngineMap::const_iterator it = d_map.begin(); it != d_map.end(); ++it ) { QwtTextEngine *textEngine = (QwtTextEngine *)engine(it); delete textEngine; } } const QwtTextEngine *QwtTextEngineDict::textEngine(const QString& text, QwtText::TextFormat format) const { if ( format == QwtText::AutoText ) { for ( EngineMap::const_iterator it = d_map.begin(); it != d_map.end(); ++it ) { if ( it.key() != QwtText::PlainText ) { const QwtTextEngine *e = engine(it); if ( e && e->mightRender(text) ) return (QwtTextEngine *)e; } } } EngineMap::const_iterator it = d_map.find(format); if ( it != d_map.end() ) { const QwtTextEngine *e = engine(it); if ( e ) return e; } it = d_map.find(QwtText::PlainText); return engine(it); } void QwtTextEngineDict::setTextEngine(QwtText::TextFormat format, QwtTextEngine *engine) { if ( format == QwtText::AutoText ) return; if ( format == QwtText::PlainText && engine == NULL ) return; EngineMap::const_iterator it = d_map.find(format); if ( it != d_map.end() ) { const QwtTextEngine *e = this->engine(it); if ( e ) delete e; d_map.remove(format); } if ( engine != NULL ) d_map.insert(format, engine); } const QwtTextEngine *QwtTextEngineDict::textEngine( QwtText::TextFormat format) const { const QwtTextEngine *e = NULL; EngineMap::const_iterator it = d_map.find(format); if ( it != d_map.end() ) e = engine(it); return e; } static QwtTextEngineDict *engineDict = NULL; class QwtText::PrivateData { public: PrivateData(): renderFlags(Qt::AlignCenter), backgroundPen(Qt::NoPen), backgroundBrush(Qt::NoBrush), paintAttributes(0), layoutAttributes(0), textEngine(NULL) { } int renderFlags; QString text; QFont font; QColor color; QPen backgroundPen; QBrush backgroundBrush; int paintAttributes; int layoutAttributes; const QwtTextEngine *textEngine; }; class QwtText::LayoutCache { public: void invalidate() { textSize = QSize(); } QFont font; QSize textSize; }; /*! Constructor \param text Text content \param textFormat Text format */ QwtText::QwtText(const QString &text, QwtText::TextFormat textFormat) { d_data = new PrivateData; d_data->text = text; d_data->textEngine = textEngine(text, textFormat); d_layoutCache = new LayoutCache; } //! Copy constructor QwtText::QwtText(const QwtText &other) { d_data = new PrivateData; *d_data = *other.d_data; d_layoutCache = new LayoutCache; *d_layoutCache = *other.d_layoutCache; } //! Destructor QwtText::~QwtText() { delete d_data; delete d_layoutCache; } //! Assignment operator QwtText &QwtText::operator=(const QwtText &other) { *d_data = *other.d_data; *d_layoutCache = *other.d_layoutCache; return *this; } //! Relational operator int QwtText::operator==(const QwtText &other) const { return d_data->renderFlags == other.d_data->renderFlags && d_data->text == other.d_data->text && d_data->font == other.d_data->font && d_data->color == other.d_data->color && d_data->backgroundPen == other.d_data->backgroundPen && d_data->backgroundBrush == other.d_data->backgroundBrush && d_data->paintAttributes == other.d_data->paintAttributes && d_data->textEngine == other.d_data->textEngine; } //! Relational operator int QwtText::operator!=(const QwtText &other) const // invalidate { return !(other == *this); } /*! Assign a new text content \param text Text content \param textFormat Text format \sa text() */ void QwtText::setText(const QString &text, QwtText::TextFormat textFormat) { d_data->text = text; d_data->textEngine = textEngine(text, textFormat); d_layoutCache->invalidate(); } /*! Return the text. \sa setText() */ QString QwtText::text() const { return d_data->text; } /*! \brief Change the render flags The default setting is Qt::AlignCenter \param renderFlags Bitwise OR of the flags used like in QPainter::drawText \sa renderFlags(), QwtTextEngine::draw() \note Some renderFlags might have no effect, depending on the text format. */ void QwtText::setRenderFlags(int renderFlags) { if ( renderFlags != d_data->renderFlags ) { d_data->renderFlags = renderFlags; d_layoutCache->invalidate(); } } /*! \return Render flags \sa setRenderFlags() */ int QwtText::renderFlags() const { return d_data->renderFlags; } /*! Set the font. \param font Font \note Setting the font might have no effect, when the text contains control sequences for setting fonts. */ void QwtText::setFont(const QFont &font) { d_data->font = font; setPaintAttribute(PaintUsingTextFont); } //! Return the font. QFont QwtText::font() const { return d_data->font; } /*! Return the font of the text, if it has one. Otherwise return defaultFont. \param defaultFont Default font \sa setFont(), font(), PaintAttributes */ QFont QwtText::usedFont(const QFont &defaultFont) const { if ( d_data->paintAttributes & PaintUsingTextFont ) return d_data->font; return defaultFont; } /*! Set the pen color used for painting the text. \param color Color \note Setting the color might have no effect, when the text contains control sequences for setting colors. */ void QwtText::setColor(const QColor &color) { d_data->color = color; setPaintAttribute(PaintUsingTextColor); } //! Return the pen color, used for painting the text QColor QwtText::color() const { return d_data->color; } /*! Return the color of the text, if it has one. Otherwise return defaultColor. \param defaultColor Default color \sa setColor(), color(), PaintAttributes */ QColor QwtText::usedColor(const QColor &defaultColor) const { if ( d_data->paintAttributes & PaintUsingTextColor ) return d_data->color; return defaultColor; } /*! Set the background pen \param pen Background pen \sa backgroundPen(), setBackgroundBrush() */ void QwtText::setBackgroundPen(const QPen &pen) { d_data->backgroundPen = pen; setPaintAttribute(PaintBackground); } /*! \return Background pen \sa setBackgroundPen(), backgroundBrush() */ QPen QwtText::backgroundPen() const { return d_data->backgroundPen; } /*! Set the background brush \param brush Background brush \sa backgroundBrush(), setBackgroundPen() */ void QwtText::setBackgroundBrush(const QBrush &brush) { d_data->backgroundBrush = brush; setPaintAttribute(PaintBackground); } /*! \return Background brush \sa setBackgroundBrush(), backgroundPen() */ QBrush QwtText::backgroundBrush() const { return d_data->backgroundBrush; } /*! Change a paint attribute \param attribute Paint attribute \param on On/Off \note Used by setFont(), setColor(), setBackgroundPen() and setBackgroundBrush() \sa testPaintAttribute() */ void QwtText::setPaintAttribute(PaintAttribute attribute, bool on) { if ( on ) d_data->paintAttributes |= attribute; else d_data->paintAttributes &= ~attribute; } /*! Test a paint attribute \param attribute Paint attribute \return true, if attribute is enabled \sa setPaintAttribute() */ bool QwtText::testPaintAttribute(PaintAttribute attribute) const { return d_data->paintAttributes & attribute; } /*! Change a layout attribute \param attribute Layout attribute \param on On/Off \sa testLayoutAttribute() */ void QwtText::setLayoutAttribute(LayoutAttribute attribute, bool on) { if ( on ) d_data->layoutAttributes |= attribute; else d_data->layoutAttributes &= ~attribute; } /*! Test a layout attribute \param attribute Layout attribute \return true, if attribute is enabled \sa setLayoutAttribute() */ bool QwtText::testLayoutAttribute(LayoutAttribute attribute) const { return d_data->layoutAttributes | attribute; } /*! Find the height for a given width \param defaultFont Font, used for the calculation if the text has no font \param width Width \return Calculated height */ int QwtText::heightForWidth(int width, const QFont &defaultFont) const { const QwtMetricsMap map = QwtPainter::metricsMap(); width = map.layoutToScreenX(width); #if QT_VERSION < 0x040000 const QFont font = usedFont(defaultFont); #else // We want to calculate in screen metrics. So // we need a font that uses screen metrics const QFont font(usedFont(defaultFont), QApplication::desktop()); #endif int h = 0; if ( d_data->layoutAttributes & MinimumLayout ) { int left, right, top, bottom; d_data->textEngine->textMargins(font, d_data->text, left, right, top, bottom); h = d_data->textEngine->heightForWidth( font, d_data->renderFlags, d_data->text, width + left + right); h -= top + bottom; } else { h = d_data->textEngine->heightForWidth( font, d_data->renderFlags, d_data->text, width); } h = map.screenToLayoutY(h); return h; } /*! Find the height for a given width \param defaultFont Font, used for the calculation if the text has no font \return Calculated height */ /*! Returns the size, that is needed to render text \param defaultFont Font of the text \return Caluclated size */ QSize QwtText::textSize(const QFont &defaultFont) const { #if QT_VERSION < 0x040000 const QFont font(usedFont(defaultFont)); #else // We want to calculate in screen metrics. So // we need a font that uses screen metrics const QFont font(usedFont(defaultFont), QApplication::desktop()); #endif if ( !d_layoutCache->textSize.isValid() || d_layoutCache->font != font ) { d_layoutCache->textSize = d_data->textEngine->textSize( font, d_data->renderFlags, d_data->text); d_layoutCache->font = font; } QSize sz = d_layoutCache->textSize; const QwtMetricsMap map = QwtPainter::metricsMap(); if ( d_data->layoutAttributes & MinimumLayout ) { int left, right, top, bottom; d_data->textEngine->textMargins(font, d_data->text, left, right, top, bottom); sz -= QSize(left + right, top + bottom); #if QT_VERSION >= 0x040000 if ( !map.isIdentity() ) { #ifdef __GNUC__ #endif /* When printing in high resolution, the tick labels of are cut of. We need to find out why, but for the moment we add a couple of pixels instead. */ sz += QSize(3, 2); } #endif } sz = map.screenToLayout(sz); return sz; } /*! Draw a text into a rectangle \param painter Painter \param rect Rectangle */ void QwtText::draw(QPainter *painter, const QRect &rect) const { if ( d_data->paintAttributes & PaintBackground ) { if ( d_data->backgroundPen != Qt::NoPen || d_data->backgroundBrush != Qt::NoBrush ) { painter->save(); painter->setPen(QwtPainter::scaledPen(d_data->backgroundPen)); painter->setBrush(d_data->backgroundBrush); #if QT_VERSION < 0x040000 QwtPainter::drawRect(painter, rect); #else const QRect r(rect.x(), rect.y(), rect.width() - 1, rect.height() - 1); QwtPainter::drawRect(painter, r); #endif painter->restore(); } } painter->save(); if ( d_data->paintAttributes & PaintUsingTextFont ) { painter->setFont(d_data->font); } if ( d_data->paintAttributes & PaintUsingTextColor ) { if ( d_data->color.isValid() ) painter->setPen(d_data->color); } QRect expandedRect = rect; if ( d_data->layoutAttributes & MinimumLayout ) { #if QT_VERSION < 0x040000 const QFont font(painter->font()); #else // We want to calculate in screen metrics. So // we need a font that uses screen metrics const QFont font(painter->font(), QApplication::desktop()); #endif int left, right, top, bottom; d_data->textEngine->textMargins( font, d_data->text, left, right, top, bottom); const QwtMetricsMap map = QwtPainter::metricsMap(); left = map.screenToLayoutX(left); right = map.screenToLayoutX(right); top = map.screenToLayoutY(top); bottom = map.screenToLayoutY(bottom); expandedRect.setTop(rect.top() - top); expandedRect.setBottom(rect.bottom() + bottom); expandedRect.setLeft(rect.left() - left); expandedRect.setRight(rect.right() + right); } d_data->textEngine->draw(painter, expandedRect, d_data->renderFlags, d_data->text); painter->restore(); } /*! Find the text engine for a text format In case of QwtText::AutoText the first text engine (beside QwtPlainTextEngine) is returned, where QwtTextEngine::mightRender returns true. If there is none QwtPlainTextEngine is returnd. If no text engine is registered for the format QwtPlainTextEngine is returnd. \param text Text, needed in case of AutoText \param format Text format */ const QwtTextEngine *QwtText::textEngine(const QString &text, QwtText::TextFormat format) { if ( engineDict == NULL ) { /* Note: engineDict is allocated, the first time it is used, but never deleted, because there is no known last access time. So don't be irritated, if it is reported as a memory leak from your memory profiler. */ engineDict = new QwtTextEngineDict(); } return engineDict->textEngine(text, format); } /*! Assign/Replace a text engine for a text format With setTextEngine it is possible to extend Qwt with other types of text formats. Owner of a commercial Qt license can build the qwtmathml library, that is based on the MathML renderer, that is included in MML Widget component of the Qt solutions package. For QwtText::PlainText it is not allowed to assign a engine == NULL. \param format Text format \param engine Text engine \sa QwtMathMLTextEngine \warning Using QwtText::AutoText does nothing. */ void QwtText::setTextEngine(QwtText::TextFormat format, QwtTextEngine *engine) { if ( engineDict == NULL ) engineDict = new QwtTextEngineDict(); engineDict->setTextEngine(format, engine); } /*! \brief Find the text engine for a text format textEngine can be used to find out if a text format is supported. F.e, if one wants to use MathML labels, the MathML renderer from the commercial Qt solutions package might be required, that is not available in Qt Open Source Edition environments. \param format Text format \return The text engine, or NULL if no engine is available. */ const QwtTextEngine *QwtText::textEngine(QwtText::TextFormat format) { if ( engineDict == NULL ) engineDict = new QwtTextEngineDict(); return engineDict->textEngine(format); } qwt5-5.2.3/src/qwt_counter.h0000644000175000017500000001063412052741123015272 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_COUNTER_H #define QWT_COUNTER_H #include #include "qwt_global.h" #include "qwt_double_range.h" /*! \brief The Counter Widget A Counter consists of a label displaying a number and one ore more (up to three) push buttons on each side of the label which can be used to increment or decrement the counter's value. A Counter has a range from a minimum value to a maximum value and a step size. The range can be specified using QwtDblRange::setRange(). The counter's value is an integer multiple of the step size. The number of steps by which a button increments or decrements the value can be specified using QwtCounter::setIncSteps(). The number of buttons can be changed with QwtCounter::setNumButtons(). Holding the space bar down with focus on a button is the fastest method to step through the counter values. When the counter underflows/overflows, the focus is set to the smallest up/down button and counting is disabled. Counting is re-enabled on a button release event (mouse or space bar). Example: \code #include "../include/qwt_counter.h> QwtCounter *cnt; cnt = new QwtCounter(parent, name); cnt->setRange(0.0, 100.0, 1.0); // From 0.0 to 100, step 1.0 cnt->setNumButtons(2); // Two buttons each side cnt->setIncSteps(QwtCounter::Button1, 1); // Button 1 increments 1 step cnt->setIncSteps(QwtCounter::Button2, 20); // Button 2 increments 20 steps connect(cnt, SIGNAL(valueChanged(double)), my_class, SLOT(newValue(double))); \endcode */ class QWT_EXPORT QwtCounter : public QWidget, public QwtDoubleRange { Q_OBJECT Q_PROPERTY( int numButtons READ numButtons WRITE setNumButtons ) Q_PROPERTY( double basicstep READ step WRITE setStep ) Q_PROPERTY( double minValue READ minVal WRITE setMinValue ) Q_PROPERTY( double maxValue READ maxVal WRITE setMaxValue ) Q_PROPERTY( int stepButton1 READ stepButton1 WRITE setStepButton1 ) Q_PROPERTY( int stepButton2 READ stepButton2 WRITE setStepButton2 ) Q_PROPERTY( int stepButton3 READ stepButton3 WRITE setStepButton3 ) Q_PROPERTY( double value READ value WRITE setValue ) Q_PROPERTY( bool editable READ editable WRITE setEditable ) public: /*! Button index */ enum Button { Button1, Button2, Button3, ButtonCnt }; explicit QwtCounter(QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtCounter(QWidget *parent, const char *name); #endif virtual ~QwtCounter(); bool editable() const; void setEditable(bool); void setNumButtons(int n); int numButtons() const; void setIncSteps(QwtCounter::Button btn, int nSteps); int incSteps(QwtCounter::Button btn) const; virtual void setValue(double); virtual QSize sizeHint() const; virtual void polish(); // a set of dummies to help the designer double step() const; void setStep(double s); double minVal() const; void setMinValue(double m); double maxVal() const; void setMaxValue(double m); void setStepButton1(int nSteps); int stepButton1() const; void setStepButton2(int nSteps); int stepButton2() const; void setStepButton3(int nSteps); int stepButton3() const; virtual double value() const; signals: /*! This signal is emitted when a button has been released \param value The new value */ void buttonReleased (double value); /*! This signal is emitted when the counter's value has changed \param value The new value */ void valueChanged (double value); protected: virtual bool event(QEvent *); virtual void wheelEvent(QWheelEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void rangeChange(); private slots: void btnReleased(); void btnClicked(); void textChanged(); private: void initCounter(); void updateButtons(); void showNum(double); virtual void valueChange(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_printfilter.cpp0000644000175000017500000004342212052741126017552 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include "qwt_plot.h" #include "qwt_plot_grid.h" #include "qwt_plot_curve.h" #include "qwt_plot_marker.h" #include "qwt_symbol.h" #include "qwt_legend.h" #include "qwt_legend_item.h" #include "qwt_scale_widget.h" #include "qwt_text_label.h" #include "qwt_plot_canvas.h" #include "qwt_plot_printfilter.h" #if QT_VERSION < 0x040000 typedef QColorGroup Palette; #else typedef QPalette Palette; #endif static bool hasBackgroundColor( const QWidget *widget ) { #if QT_VERSION < 0x040000 return ( widget->backgroundMode() != Qt::FixedPixmap ); #else const QBrush brush = widget->palette().brush( widget->backgroundRole() ); return ( brush.style() <= Qt::DiagCrossPattern ); #endif } class QwtPlotPrintFilter::PrivateData { public: PrivateData(): options(QwtPlotPrintFilter::PrintAll), cache(NULL) { } ~PrivateData() { delete cache; } class Cache { public: QColor titleColor; QFont titleFont; QwtText scaleTitle[QwtPlot::axisCnt]; QColor scaleColor[QwtPlot::axisCnt]; QFont scaleFont[QwtPlot::axisCnt]; QColor scaleTitleColor[QwtPlot::axisCnt]; QFont scaleTitleFont[QwtPlot::axisCnt]; QMap legendFonts; QColor widgetBackground; QColor canvasBackground; QColor gridColors[2]; QMap curveColors; QMap curveSymbolBrushColors; QMap curveSymbolPenColors; QMap markerFonts; QMap markerLabelColors; QMap markerLineColors; QMap markerSymbolBrushColors; QMap markerSymbolPenColors; }; int options; mutable Cache *cache; }; /*! Sets filter options to PrintAll */ QwtPlotPrintFilter::QwtPlotPrintFilter() { d_data = new PrivateData; } //! Destructor QwtPlotPrintFilter::~QwtPlotPrintFilter() { delete d_data; } /*! \brief Set plot print options \param options Or'd QwtPlotPrintFilter::Options values \sa options() */ void QwtPlotPrintFilter::setOptions(int options) { d_data->options = options; } /*! \brief Get plot print options \sa setOptions() */ int QwtPlotPrintFilter::options() const { return d_data->options; } /*! \brief Modifies a color for printing \param c Color to be modified \param item Type of item where the color belongs \return Modified color. In case of !(QwtPlotPrintFilter::options() & PrintBackground) MajorGrid is modified to Qt::darkGray, MinorGrid to Qt::gray. All other colors are returned unmodified. */ QColor QwtPlotPrintFilter::color(const QColor &c, Item item) const { if ( !(options() & PrintBackground)) { switch(item) { case MajorGrid: return Qt::darkGray; case MinorGrid: return Qt::gray; default:; } } return c; } /*! \brief Modifies a font for printing \param f Font to be modified \param item Type of item where the font belongs All fonts are returned unmodified */ QFont QwtPlotPrintFilter::font(const QFont &f, Item) const { return f; } /*! Change color and fonts of a plot \sa apply() */ void QwtPlotPrintFilter::apply(QwtPlot *plot) const { const bool doAutoReplot = plot->autoReplot(); plot->setAutoReplot(false); delete d_data->cache; d_data->cache = new PrivateData::Cache; PrivateData::Cache &cache = *d_data->cache; if ( plot->titleLabel() ) { QwtTextLabel* title = plot->titleLabel(); if ( title->text().testPaintAttribute(QwtText::PaintUsingTextColor) ) { QwtText text = title->text(); cache.titleColor = text.color(); text.setColor(color(cache.titleColor, Title)); title->setText(text); } else { QPalette palette = title->palette(); cache.titleColor = palette.color( QPalette::Active, Palette::Text); title->setPalette(palette); palette.setColor(QPalette::Active, Palette::Text, color(cache.titleColor, Title)); title->setPalette(palette); } if ( title->text().testPaintAttribute(QwtText::PaintUsingTextFont) ) { QwtText text = title->text(); cache.titleFont = text.font(); text.setFont(font(cache.titleFont, Title)); title->setText(text); } else { cache.titleFont = title->font(); title->setFont(font(cache.titleFont, Title)); } } if ( plot->legend() ) { #if QT_VERSION < 0x040000 QValueList list = plot->legend()->legendItems(); for ( QValueListIterator it = list.begin(); it != list.end(); ++it ) #else QList list = plot->legend()->legendItems(); for ( QList::iterator it = list.begin(); it != list.end(); ++it ) #endif { QWidget *w = *it; cache.legendFonts.insert(w, w->font()); w->setFont(font(w->font(), Legend)); if ( w->inherits("QwtLegendItem") ) { QwtLegendItem *label = (QwtLegendItem *)w; QwtSymbol symbol = label->symbol(); QPen pen = symbol.pen(); QBrush brush = symbol.brush(); pen.setColor(color(pen.color(), CurveSymbol)); brush.setColor(color(brush.color(), CurveSymbol)); symbol.setPen(pen); symbol.setBrush(brush); label->setSymbol(symbol); pen = label->curvePen(); pen.setColor(color(pen.color(), Curve)); label->setCurvePen(pen); } } } for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { QwtScaleWidget *scaleWidget = plot->axisWidget(axis); if ( scaleWidget ) { cache.scaleColor[axis] = scaleWidget->palette().color( QPalette::Active, Palette::Foreground); QPalette palette = scaleWidget->palette(); palette.setColor(QPalette::Active, Palette::Foreground, color(cache.scaleColor[axis], AxisScale)); scaleWidget->setPalette(palette); cache.scaleFont[axis] = scaleWidget->font(); scaleWidget->setFont(font(cache.scaleFont[axis], AxisScale)); cache.scaleTitle[axis] = scaleWidget->title(); QwtText scaleTitle = scaleWidget->title(); if ( scaleTitle.testPaintAttribute(QwtText::PaintUsingTextColor) ) { cache.scaleTitleColor[axis] = scaleTitle.color(); scaleTitle.setColor( color(cache.scaleTitleColor[axis], AxisTitle)); } if ( scaleTitle.testPaintAttribute(QwtText::PaintUsingTextFont) ) { cache.scaleTitleFont[axis] = scaleTitle.font(); scaleTitle.setFont( font(cache.scaleTitleFont[axis], AxisTitle)); } scaleWidget->setTitle(scaleTitle); int startDist, endDist; scaleWidget->getBorderDistHint(startDist, endDist); scaleWidget->setBorderDist(startDist, endDist); } } if ( hasBackgroundColor(plot) ) { QPalette p = plot->palette(); cache.widgetBackground = plot->palette().color( QPalette::Active, Palette::Background); p.setColor(QPalette::Active, Palette::Background, color(cache.widgetBackground, WidgetBackground)); plot->setPalette(p); } if ( hasBackgroundColor(plot->canvas())) { cache.canvasBackground = plot->canvasBackground(); plot->setCanvasBackground(color(cache.canvasBackground, CanvasBackground)); } const QwtPlotItemList& itmList = plot->itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { apply(*it); } plot->setAutoReplot(doAutoReplot); } void QwtPlotPrintFilter::apply(QwtPlotItem *item) const { PrivateData::Cache &cache = *d_data->cache; switch(item->rtti()) { case QwtPlotItem::Rtti_PlotGrid: { QwtPlotGrid *grid = (QwtPlotGrid *)item; QPen pen = grid->majPen(); cache.gridColors[0] = pen.color(); pen.setColor(color(pen.color(), MajorGrid)); grid->setMajPen(pen); pen = grid->minPen(); cache.gridColors[1] = pen.color(); pen.setColor(color(pen.color(), MinorGrid)); grid->setMinPen(pen); break; } case QwtPlotItem::Rtti_PlotCurve: { QwtPlotCurve *c = (QwtPlotCurve *)item; QwtSymbol symbol = c->symbol(); QPen pen = symbol.pen(); cache.curveSymbolPenColors.insert(c, pen.color()); pen.setColor(color(pen.color(), CurveSymbol)); symbol.setPen(pen); QBrush brush = symbol.brush(); cache.curveSymbolBrushColors.insert(c, brush.color()); brush.setColor(color(brush.color(), CurveSymbol)); symbol.setBrush(brush); c->setSymbol(symbol); pen = c->pen(); cache.curveColors.insert(c, pen.color()); pen.setColor(color(pen.color(), Curve)); c->setPen(pen); break; } case QwtPlotItem::Rtti_PlotMarker: { QwtPlotMarker *m = (QwtPlotMarker *)item; QwtText label = m->label(); cache.markerFonts.insert(m, label.font()); label.setFont(font(label.font(), Marker)); cache.markerLabelColors.insert(m, label.color()); label.setColor(color(label.color(), Marker)); m->setLabel(label); QPen pen = m->linePen(); cache.markerLineColors.insert(m, pen.color()); pen.setColor(color(pen.color(), Marker)); m->setLinePen(pen); QwtSymbol symbol = m->symbol(); pen = symbol.pen(); cache.markerSymbolPenColors.insert(m, pen.color()); pen.setColor(color(pen.color(), MarkerSymbol)); symbol.setPen(pen); QBrush brush = symbol.brush(); cache.markerSymbolBrushColors.insert(m, brush.color()); brush.setColor(color(brush.color(), MarkerSymbol)); symbol.setBrush(brush); m->setSymbol(symbol); break; } default: break; } } /*! Reset color and fonts of a plot \sa apply() */ void QwtPlotPrintFilter::reset(QwtPlot *plot) const { if ( d_data->cache == 0 ) return; const bool doAutoReplot = plot->autoReplot(); plot->setAutoReplot(false); const PrivateData::Cache &cache = *d_data->cache; if ( plot->titleLabel() ) { QwtTextLabel* title = plot->titleLabel(); if ( title->text().testPaintAttribute(QwtText::PaintUsingTextColor) ) { QwtText text = title->text(); text.setColor(cache.titleColor); title->setText(text); } else { QPalette palette = title->palette(); palette.setColor( QPalette::Active, Palette::Text, cache.titleColor); title->setPalette(palette); } if ( title->text().testPaintAttribute(QwtText::PaintUsingTextFont) ) { QwtText text = title->text(); text.setFont(cache.titleFont); title->setText(text); } else { title->setFont(cache.titleFont); } } if ( plot->legend() ) { #if QT_VERSION < 0x040000 QValueList list = plot->legend()->legendItems(); for ( QValueListIterator it = list.begin(); it != list.end(); ++it ) #else QList list = plot->legend()->legendItems(); for ( QList::iterator it = list.begin(); it != list.end(); ++it ) #endif { QWidget *w = *it; if ( cache.legendFonts.contains(w) ) w->setFont(cache.legendFonts[w]); if ( w->inherits("QwtLegendItem") ) { QwtLegendItem *label = (QwtLegendItem *)w; const QwtPlotItem *plotItem = (const QwtPlotItem*)plot->legend()->find(label); QwtSymbol symbol = label->symbol(); if ( cache.curveSymbolPenColors.contains(plotItem) ) { QPen pen = symbol.pen(); pen.setColor(cache.curveSymbolPenColors[plotItem]); symbol.setPen(pen); } if ( cache.curveSymbolBrushColors.contains(plotItem) ) { QBrush brush = symbol.brush(); brush.setColor(cache.curveSymbolBrushColors[plotItem]); symbol.setBrush(brush); } label->setSymbol(symbol); if ( cache.curveColors.contains(plotItem) ) { QPen pen = label->curvePen(); pen.setColor(cache.curveColors[plotItem]); label->setCurvePen(pen); } } } } for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { QwtScaleWidget *scaleWidget = plot->axisWidget(axis); if ( scaleWidget ) { QPalette palette = scaleWidget->palette(); palette.setColor(QPalette::Active, Palette::Foreground, cache.scaleColor[axis]); scaleWidget->setPalette(palette); scaleWidget->setFont(cache.scaleFont[axis]); scaleWidget->setTitle(cache.scaleTitle[axis]); int startDist, endDist; scaleWidget->getBorderDistHint(startDist, endDist); scaleWidget->setBorderDist(startDist, endDist); } } if ( hasBackgroundColor(plot) ) { QPalette p = plot->palette(); p.setColor(QPalette::Active, Palette::Background, cache.widgetBackground); plot->setPalette(p); } if ( hasBackgroundColor(plot->canvas()) ) { plot->setCanvasBackground(cache.canvasBackground); } const QwtPlotItemList& itmList = plot->itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { reset(*it); } delete d_data->cache; d_data->cache = 0; plot->setAutoReplot(doAutoReplot); } void QwtPlotPrintFilter::reset(QwtPlotItem *item) const { if ( d_data->cache == 0 ) return; const PrivateData::Cache &cache = *d_data->cache; switch(item->rtti()) { case QwtPlotItem::Rtti_PlotGrid: { QwtPlotGrid *grid = (QwtPlotGrid *)item; QPen pen = grid->majPen(); pen.setColor(cache.gridColors[0]); grid->setMajPen(pen); pen = grid->minPen(); pen.setColor(cache.gridColors[1]); grid->setMinPen(pen); break; } case QwtPlotItem::Rtti_PlotCurve: { QwtPlotCurve *c = (QwtPlotCurve *)item; QwtSymbol symbol = c->symbol(); if ( cache.curveSymbolPenColors.contains(c) ) { symbol.setPen(cache.curveSymbolPenColors[c]); } if ( cache.curveSymbolBrushColors.contains(c) ) { QBrush brush = symbol.brush(); brush.setColor(cache.curveSymbolBrushColors[c]); symbol.setBrush(brush); } c->setSymbol(symbol); if ( cache.curveColors.contains(c) ) { QPen pen = c->pen(); pen.setColor(cache.curveColors[c]); c->setPen(pen); } break; } case QwtPlotItem::Rtti_PlotMarker: { QwtPlotMarker *m = (QwtPlotMarker *)item; if ( cache.markerFonts.contains(m) ) { QwtText label = m->label(); label.setFont(cache.markerFonts[m]); m->setLabel(label); } if ( cache.markerLabelColors.contains(m) ) { QwtText label = m->label(); label.setColor(cache.markerLabelColors[m]); m->setLabel(label); } if ( cache.markerLineColors.contains(m) ) { QPen pen = m->linePen(); pen.setColor(cache.markerLineColors[m]); m->setLinePen(pen); } QwtSymbol symbol = m->symbol(); if ( cache.markerSymbolPenColors.contains(m) ) { QPen pen = symbol.pen(); pen.setColor(cache.markerSymbolPenColors[m]); symbol.setPen(pen); } if ( cache.markerSymbolBrushColors.contains(m) ) { QBrush brush = symbol.brush(); brush.setColor(cache.markerSymbolBrushColors[m]); symbol.setBrush(brush); } m->setSymbol(symbol); break; } default: break; } } qwt5-5.2.3/src/qwt_abstract_scale_draw.h0000644000175000017500000000701512052741123017601 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ABSTRACT_SCALE_DRAW_H #define QWT_ABSTRACT_SCALE_DRAW_H #include "qwt_global.h" #include "qwt_scale_div.h" #include "qwt_text.h" #if QT_VERSION < 0x040000 class QColorGroup; #else class QPalette; #endif class QPainter; class QFont; class QwtScaleTransformation; class QwtScaleMap; /*! \brief A abstract base class for drawing scales QwtAbstractScaleDraw can be used to draw linear or logarithmic scales. After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member. */ class QWT_EXPORT QwtAbstractScaleDraw { public: /*! Components of a scale - Backbone - Ticks - Labels \sa enableComponent(), hasComponent */ enum ScaleComponent { Backbone = 1, Ticks = 2, Labels = 4 }; QwtAbstractScaleDraw(); QwtAbstractScaleDraw( const QwtAbstractScaleDraw & ); virtual ~QwtAbstractScaleDraw(); QwtAbstractScaleDraw &operator=(const QwtAbstractScaleDraw &); void setScaleDiv(const QwtScaleDiv &s); const QwtScaleDiv& scaleDiv() const; void setTransformation(QwtScaleTransformation *); const QwtScaleMap &map() const; void enableComponent(ScaleComponent, bool enable = true); bool hasComponent(ScaleComponent) const; void setTickLength(QwtScaleDiv::TickType, int length); int tickLength(QwtScaleDiv::TickType) const; int majTickLength() const; void setSpacing(int margin); int spacing() const; #if QT_VERSION < 0x040000 virtual void draw(QPainter *, const QColorGroup &) const; #else virtual void draw(QPainter *, const QPalette &) const; #endif virtual QwtText label(double) const; /*! Calculate the extent The extent is the distcance from the baseline to the outermost pixel of the scale draw in opposite to its orientation. It is at least minimumExtent() pixels. \sa setMinimumExtent(), minimumExtent() */ virtual int extent(const QPen &, const QFont &) const = 0; void setMinimumExtent(int); int minimumExtent() const; QwtScaleMap &scaleMap(); protected: /*! Draw a tick \param painter Painter \param value Value of the tick \param len Lenght of the tick \sa drawBackbone(), drawLabel() */ virtual void drawTick(QPainter *painter, double value, int len) const = 0; /*! Draws the baseline of the scale \param painter Painter \sa drawTick(), drawLabel() */ virtual void drawBackbone(QPainter *painter) const = 0; /*! Draws the label for a major scale tick \param painter Painter \param value Value \sa drawTick, drawBackbone */ virtual void drawLabel(QPainter *painter, double value) const = 0; void invalidateCache(); const QwtText &tickLabel(const QFont &, double value) const; private: int operator==(const QwtAbstractScaleDraw &) const; int operator!=(const QwtAbstractScaleDraw &) const; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_curve_fitter.cpp0000644000175000017500000001327012052741126016651 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_math.h" #include "qwt_spline.h" #include "qwt_curve_fitter.h" //! Constructor QwtCurveFitter::QwtCurveFitter() { } //! Destructor QwtCurveFitter::~QwtCurveFitter() { } class QwtSplineCurveFitter::PrivateData { public: PrivateData(): fitMode(QwtSplineCurveFitter::Auto), splineSize(250) { } QwtSpline spline; QwtSplineCurveFitter::FitMode fitMode; int splineSize; }; //! Constructor QwtSplineCurveFitter::QwtSplineCurveFitter() { d_data = new PrivateData; } //! Destructor QwtSplineCurveFitter::~QwtSplineCurveFitter() { delete d_data; } /*! Select the algorithm used for building the spline \param mode Mode representing a spline algorithm \sa fitMode() */ void QwtSplineCurveFitter::setFitMode(FitMode mode) { d_data->fitMode = mode; } /*! \return Mode representing a spline algorithm \sa setFitMode() */ QwtSplineCurveFitter::FitMode QwtSplineCurveFitter::fitMode() const { return d_data->fitMode; } void QwtSplineCurveFitter::setSpline(const QwtSpline &spline) { d_data->spline = spline; d_data->spline.reset(); } const QwtSpline &QwtSplineCurveFitter::spline() const { return d_data->spline; } QwtSpline &QwtSplineCurveFitter::spline() { return d_data->spline; } /*! Assign a spline size ( has to be at least 10 points ) \param splineSize Spline size \sa splineSize() */ void QwtSplineCurveFitter::setSplineSize(int splineSize) { d_data->splineSize = qwtMax(splineSize, 10); } /*! \return Spline size \sa setSplineSize() */ int QwtSplineCurveFitter::splineSize() const { return d_data->splineSize; } /*! Find a curve which has the best fit to a series of data points \param points Series of data points \return Curve points */ #if QT_VERSION < 0x040000 QwtArray QwtSplineCurveFitter::fitCurve( const QwtArray & points) const #else QPolygonF QwtSplineCurveFitter::fitCurve(const QPolygonF &points) const #endif { const int size = (int)points.size(); if ( size <= 2 ) return points; FitMode fitMode = d_data->fitMode; if ( fitMode == Auto ) { fitMode = Spline; const QwtDoublePoint *p = points.data(); for ( int i = 1; i < size; i++ ) { if ( p[i].x() <= p[i-1].x() ) { fitMode = ParametricSpline; break; } }; } if ( fitMode == ParametricSpline ) return fitParametric(points); else return fitSpline(points); } #if QT_VERSION < 0x040000 QwtArray QwtSplineCurveFitter::fitSpline( const QwtArray &points) const #else QPolygonF QwtSplineCurveFitter::fitSpline( const QPolygonF &points) const #endif { d_data->spline.setPoints(points); if ( !d_data->spline.isValid() ) return points; #if QT_VERSION < 0x040000 QwtArray fittedPoints(d_data->splineSize); #else QPolygonF fittedPoints(d_data->splineSize); #endif const double x1 = points[0].x(); const double x2 = points[int(points.size() - 1)].x(); const double dx = x2 - x1; const double delta = dx / (d_data->splineSize - 1); for (int i = 0; i < d_data->splineSize; i++) { QwtDoublePoint &p = fittedPoints[i]; const double v = x1 + i * delta; const double sv = d_data->spline.value(v); p.setX(v); p.setY(sv); } d_data->spline.reset(); return fittedPoints; } #if QT_VERSION < 0x040000 QwtArray QwtSplineCurveFitter::fitParametric( const QwtArray &points) const #else QPolygonF QwtSplineCurveFitter::fitParametric( const QPolygonF &points) const #endif { int i; const int size = points.size(); #if QT_VERSION < 0x040000 QwtArray fittedPoints(d_data->splineSize); QwtArray splinePointsX(size); QwtArray splinePointsY(size); #else QPolygonF fittedPoints(d_data->splineSize); QPolygonF splinePointsX(size); QPolygonF splinePointsY(size); #endif const QwtDoublePoint *p = points.data(); QwtDoublePoint *spX = splinePointsX.data(); QwtDoublePoint *spY = splinePointsY.data(); double param = 0.0; for (i = 0; i < size; i++) { const double x = p[i].x(); const double y = p[i].y(); if ( i > 0 ) { const double delta = sqrt( qwtSqr(x - spX[i-1].y()) + qwtSqr( y - spY[i-1].y() ) ); param += qwtMax(delta, 1.0); } spX[i].setX(param); spX[i].setY(x); spY[i].setX(param); spY[i].setY(y); } d_data->spline.setPoints(splinePointsX); if ( !d_data->spline.isValid() ) return points; const double deltaX = splinePointsX[size - 1].x() / (d_data->splineSize-1); for (i = 0; i < d_data->splineSize; i++) { const double dtmp = i * deltaX; fittedPoints[i].setX( d_data->spline.value(dtmp)); } d_data->spline.setPoints(splinePointsY); if ( !d_data->spline.isValid() ) return points; const double deltaY = splinePointsY[size - 1].x() / (d_data->splineSize-1); for (i = 0; i < d_data->splineSize; i++) { const double dtmp = i * deltaY; fittedPoints[i].setY(d_data->spline.value(dtmp)); } return fittedPoints; } qwt5-5.2.3/src/qwt_plot_rasteritem.cpp0000644000175000017500000001671512052741126017374 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include "qwt_legend.h" #include "qwt_legend_item.h" #include "qwt_scale_map.h" #include "qwt_plot_rasteritem.h" class QwtPlotRasterItem::PrivateData { public: PrivateData(): alpha(-1) { cache.policy = QwtPlotRasterItem::NoCache; } int alpha; struct ImageCache { QwtPlotRasterItem::CachePolicy policy; QwtDoubleRect rect; QSize size; QImage image; } cache; }; static QImage toRgba(const QImage& image, int alpha) { if ( alpha < 0 || alpha >= 255 ) return image; #if QT_VERSION < 0x040000 QImage alphaImage(image.size(), 32); alphaImage.setAlphaBuffer(true); #else QImage alphaImage(image.size(), QImage::Format_ARGB32); #endif const QRgb mask1 = qRgba(0, 0, 0, alpha); const QRgb mask2 = qRgba(255, 255, 255, 0); const QRgb mask3 = qRgba(0, 0, 0, 255); const int w = image.size().width(); const int h = image.size().height(); if ( image.depth() == 8 ) { for ( int y = 0; y < h; y++ ) { QRgb* alphaLine = (QRgb*)alphaImage.scanLine(y); const unsigned char *line = image.scanLine(y); for ( int x = 0; x < w; x++ ) *alphaLine++ = (image.color(*line++) & mask2) | mask1; } } else if ( image.depth() == 32 ) { for ( int y = 0; y < h; y++ ) { QRgb* alphaLine = (QRgb*)alphaImage.scanLine(y); const QRgb* line = (const QRgb*) image.scanLine(y); for ( int x = 0; x < w; x++ ) { const QRgb rgb = *line++; if ( rgb & mask3 ) // alpha != 0 *alphaLine++ = (rgb & mask2) | mask1; else *alphaLine++ = rgb; } } } return alphaImage; } //! Constructor QwtPlotRasterItem::QwtPlotRasterItem(const QString& title): QwtPlotItem(QwtText(title)) { init(); } //! Constructor QwtPlotRasterItem::QwtPlotRasterItem(const QwtText& title): QwtPlotItem(title) { init(); } //! Destructor QwtPlotRasterItem::~QwtPlotRasterItem() { delete d_data; } void QwtPlotRasterItem::init() { d_data = new PrivateData(); setItemAttribute(QwtPlotItem::AutoScale, true); setItemAttribute(QwtPlotItem::Legend, false); setZ(8.0); } /*! \brief Set an alpha value for the raster data Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily. The alpha value is a value [0, 255] to control the transparency of the image. 0 represents a fully transparent color, while 255 represents a fully opaque color. \param alpha Alpha value - alpha >= 0\n All alpha values of the pixels returned by renderImage() will be set to alpha, beside those with an alpha value of 0 (invalid pixels). - alpha < 0 The alpha values returned by renderImage() are not changed. The default alpha value is -1. \sa alpha() */ void QwtPlotRasterItem::setAlpha(int alpha) { if ( alpha < 0 ) alpha = -1; if ( alpha > 255 ) alpha = 255; if ( alpha != d_data->alpha ) { d_data->alpha = alpha; itemChanged(); } } /*! \return Alpha value of the raster item \sa setAlpha() */ int QwtPlotRasterItem::alpha() const { return d_data->alpha; } /*! Change the cache policy The default policy is NoCache \param policy Cache policy \sa CachePolicy, cachePolicy() */ void QwtPlotRasterItem::setCachePolicy( QwtPlotRasterItem::CachePolicy policy) { if ( d_data->cache.policy != policy ) { d_data->cache.policy = policy; invalidateCache(); itemChanged(); } } /*! \return Cache policy \sa CachePolicy, setCachePolicy() */ QwtPlotRasterItem::CachePolicy QwtPlotRasterItem::cachePolicy() const { return d_data->cache.policy; } /*! Invalidate the paint cache \sa setCachePolicy() */ void QwtPlotRasterItem::invalidateCache() { d_data->cache.image = QImage(); d_data->cache.rect = QwtDoubleRect(); d_data->cache.size = QSize(); } /*! \brief Returns the recommended raster for a given rect. F.e the raster hint can be used to limit the resolution of the image that is rendered. The default implementation returns an invalid size (QSize()), what means: no hint. */ QSize QwtPlotRasterItem::rasterHint(const QwtDoubleRect &) const { return QSize(); } /*! \brief Draw the raster data \param painter Painter \param xMap X-Scale Map \param yMap Y-Scale Map \param canvasRect Contents rect of the plot canvas */ void QwtPlotRasterItem::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const { if ( canvasRect.isEmpty() || d_data->alpha == 0 ) return; QwtDoubleRect area = invTransform(xMap, yMap, canvasRect); if ( boundingRect().isValid() ) area &= boundingRect(); const QRect paintRect = transform(xMap, yMap, area); if ( !paintRect.isValid() ) return; QImage image; bool doCache = true; if ( painter->device()->devType() == QInternal::Printer || painter->device()->devType() == QInternal::Picture ) { doCache = false; } if ( !doCache || d_data->cache.policy == NoCache ) { image = renderImage(xMap, yMap, area); if ( d_data->alpha >= 0 && d_data->alpha < 255 ) image = toRgba(image, d_data->alpha); } else if ( d_data->cache.policy == PaintCache ) { if ( d_data->cache.image.isNull() || d_data->cache.rect != area || d_data->cache.size != paintRect.size() ) { d_data->cache.image = renderImage(xMap, yMap, area); d_data->cache.rect = area; d_data->cache.size = paintRect.size(); } image = d_data->cache.image; if ( d_data->alpha >= 0 && d_data->alpha < 255 ) image = toRgba(image, d_data->alpha); } else if ( d_data->cache.policy == ScreenCache ) { const QSize screenSize = QApplication::desktop()->screenGeometry().size(); if ( paintRect.width() > screenSize.width() || paintRect.height() > screenSize.height() ) { image = renderImage(xMap, yMap, area); } else { if ( d_data->cache.image.isNull() || d_data->cache.rect != area ) { QwtScaleMap cacheXMap = xMap; cacheXMap.setPaintInterval( 0, screenSize.width()); QwtScaleMap cacheYMap = yMap; cacheYMap.setPaintInterval(screenSize.height(), 0); d_data->cache.image = renderImage( cacheXMap, cacheYMap, area); d_data->cache.rect = area; d_data->cache.size = paintRect.size(); } image = d_data->cache.image; } image = toRgba(image, d_data->alpha); } painter->drawImage(paintRect, image); } qwt5-5.2.3/src/qwt_compass_rose.h0000644000175000017500000000446212052741123016312 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_COMPASS_ROSE_H #define QWT_COMPASS_ROSE_H 1 #include #include "qwt_global.h" class QPainter; /*! \brief Abstract base class for a compass rose */ class QWT_EXPORT QwtCompassRose { public: virtual ~QwtCompassRose() {}; //! Assign a palette virtual void setPalette(const QPalette &p) { d_palette = p; } //! \return Current palette const QPalette &palette() const { return d_palette; } /*! Draw the rose \param painter Painter \param center Center point \param radius Radius of the rose \param north Position \param colorGroup Color group */ virtual void draw(QPainter *painter, const QPoint ¢er, int radius, double north, QPalette::ColorGroup colorGroup = QPalette::Active) const = 0; private: QPalette d_palette; }; /*! \brief A simple rose for QwtCompass */ class QWT_EXPORT QwtSimpleCompassRose: public QwtCompassRose { public: QwtSimpleCompassRose(int numThorns = 8, int numThornLevels = -1); void setWidth(double w); //! \sa setWidth() double width() const { return d_width; } void setNumThorns(int count); int numThorns() const; void setNumThornLevels(int count); int numThornLevels() const; void setShrinkFactor(double factor) { d_shrinkFactor = factor; } double shrinkFactor() const { return d_shrinkFactor; } virtual void draw(QPainter *, const QPoint ¢er, int radius, double north, QPalette::ColorGroup = QPalette::Active) const; static void drawRose(QPainter *, #if QT_VERSION < 0x040000 const QColorGroup &, #else const QPalette &, #endif const QPoint ¢er, int radius, double origin, double width, int numThorns, int numThornLevels, double shrinkFactor); private: double d_width; int d_numThorns; int d_numThornLevels; double d_shrinkFactor; }; #endif // QWT_COMPASS_ROSE_H qwt5-5.2.3/src/qwt_plot_svgitem.h0000644000175000017500000000321512052741123016324 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_SVGITEM_H #define QWT_PLOT_SVGITEM_H #include #include #include "qwt_double_rect.h" #include "qwt_plot_item.h" #if QT_VERSION >= 0x040100 class QSvgRenderer; class QByteArray; #endif /*! \brief A plot item, which displays data in Scalable Vector Graphics (SVG) format. SVG images are often used to display maps */ class QWT_EXPORT QwtPlotSvgItem: public QwtPlotItem { public: explicit QwtPlotSvgItem(const QString& title = QString::null ); explicit QwtPlotSvgItem(const QwtText& title ); virtual ~QwtPlotSvgItem(); bool loadFile(const QwtDoubleRect&, const QString &fileName); bool loadData(const QwtDoubleRect&, const QByteArray &); virtual QwtDoubleRect boundingRect() const; virtual void draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const; virtual int rtti() const; protected: #if QT_VERSION >= 0x040100 const QSvgRenderer &renderer() const; QSvgRenderer &renderer(); #endif void render(QPainter *painter, const QwtDoubleRect &viewBox, const QRect &rect) const; QwtDoubleRect viewBox(const QwtDoubleRect &area) const; private: void init(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_magnifier.h0000644000175000017500000000262112052741123016607 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_MAGNIFIER_H #define QWT_PLOT_MAGNIFIER_H 1 #include "qwt_global.h" #include "qwt_magnifier.h" class QwtPlotCanvas; class QwtPlot; /*! \brief QwtPlotMagnifier provides zooming, by magnifying in steps. Using QwtPlotMagnifier a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction. Together with QwtPlotZoomer and QwtPlotPanner it is possible to implement individual and powerful navigation of the plot canvas. \sa QwtPlotZoomer, QwtPlotPanner, QwtPlot */ class QWT_EXPORT QwtPlotMagnifier: public QwtMagnifier { Q_OBJECT public: explicit QwtPlotMagnifier(QwtPlotCanvas *); virtual ~QwtPlotMagnifier(); void setAxisEnabled(int axis, bool on); bool isAxisEnabled(int axis) const; QwtPlotCanvas *canvas(); const QwtPlotCanvas *canvas() const; QwtPlot *plot(); const QwtPlot *plot() const; protected: virtual void rescale(double factor); private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_axis.cpp0000644000175000017500000003657212052741126016164 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include "qwt_plot.h" #include "qwt_math.h" #include "qwt_scale_widget.h" #include "qwt_scale_div.h" #include "qwt_scale_engine.h" class QwtPlot::AxisData { public: bool isEnabled; bool doAutoScale; double minValue; double maxValue; double stepSize; int maxMajor; int maxMinor; QwtScaleDiv scaleDiv; QwtScaleEngine *scaleEngine; QwtScaleWidget *scaleWidget; }; //! Initialize axes void QwtPlot::initAxesData() { int axisId; for( axisId = 0; axisId < axisCnt; axisId++) d_axisData[axisId] = new AxisData; d_axisData[yLeft]->scaleWidget = new QwtScaleWidget(QwtScaleDraw::LeftScale, this); d_axisData[yRight]->scaleWidget = new QwtScaleWidget(QwtScaleDraw::RightScale, this); d_axisData[xTop]->scaleWidget = new QwtScaleWidget(QwtScaleDraw::TopScale, this); d_axisData[xBottom]->scaleWidget = new QwtScaleWidget(QwtScaleDraw::BottomScale, this); QFont fscl(fontInfo().family(), 10); QFont fttl(fontInfo().family(), 12, QFont::Bold); for(axisId = 0; axisId < axisCnt; axisId++) { AxisData &d = *d_axisData[axisId]; d.scaleWidget->setFont(fscl); d.scaleWidget->setMargin(2); QwtText text = d.scaleWidget->title(); text.setFont(fttl); d.scaleWidget->setTitle(text); d.doAutoScale = true; d.minValue = 0.0; d.maxValue = 1000.0; d.stepSize = 0.0; d.maxMinor = 5; d.maxMajor = 8; d.scaleEngine = new QwtLinearScaleEngine; d.scaleDiv.invalidate(); } d_axisData[yLeft]->isEnabled = true; d_axisData[yRight]->isEnabled = false; d_axisData[xBottom]->isEnabled = true; d_axisData[xTop]->isEnabled = false; } void QwtPlot::deleteAxesData() { for( int axisId = 0; axisId < axisCnt; axisId++) { delete d_axisData[axisId]->scaleEngine; delete d_axisData[axisId]; d_axisData[axisId] = NULL; } } /*! \return specified axis, or NULL if axisId is invalid. \param axisId axis index */ const QwtScaleWidget *QwtPlot::axisWidget(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->scaleWidget; return NULL; } /*! \return specified axis, or NULL if axisId is invalid. \param axisId axis index */ QwtScaleWidget *QwtPlot::axisWidget(int axisId) { if (axisValid(axisId)) return d_axisData[axisId]->scaleWidget; return NULL; } /*! Change the scale engine for an axis \param axisId axis index \param scaleEngine Scale engine \sa axisScaleEngine() */ void QwtPlot::setAxisScaleEngine(int axisId, QwtScaleEngine *scaleEngine) { if (axisValid(axisId) && scaleEngine != NULL ) { AxisData &d = *d_axisData[axisId]; delete d.scaleEngine; d.scaleEngine = scaleEngine; d.scaleDiv.invalidate(); autoRefresh(); } } /*! \param axisId axis index \return Scale engine for a specific axis */ QwtScaleEngine *QwtPlot::axisScaleEngine(int axisId) { if (axisValid(axisId)) return d_axisData[axisId]->scaleEngine; else return NULL; } /*! \param axisId axis index \return Scale engine for a specific axis */ const QwtScaleEngine *QwtPlot::axisScaleEngine(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->scaleEngine; else return NULL; } /*! \return \c true if autoscaling is enabled \param axisId axis index */ bool QwtPlot::axisAutoScale(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->doAutoScale; else return false; } /*! \return \c true if a specified axis is enabled \param axisId axis index */ bool QwtPlot::axisEnabled(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->isEnabled; else return false; } /*! \return the font of the scale labels for a specified axis \param axisId axis index */ QFont QwtPlot::axisFont(int axisId) const { if (axisValid(axisId)) return axisWidget(axisId)->font(); else return QFont(); } /*! \return the maximum number of major ticks for a specified axis \param axisId axis index sa setAxisMaxMajor() */ int QwtPlot::axisMaxMajor(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->maxMajor; else return 0; } /*! \return the maximum number of minor ticks for a specified axis \param axisId axis index sa setAxisMaxMinor() */ int QwtPlot::axisMaxMinor(int axisId) const { if (axisValid(axisId)) return d_axisData[axisId]->maxMinor; else return 0; } /*! \brief Return the scale division of a specified axis axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale. \param axisId axis index \return Scale division \sa QwtScaleDiv, setAxisScaleDiv() */ const QwtScaleDiv *QwtPlot::axisScaleDiv(int axisId) const { if (!axisValid(axisId)) return NULL; return &d_axisData[axisId]->scaleDiv; } /*! \brief Return the scale division of a specified axis axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale. \param axisId axis index \return Scale division \sa QwtScaleDiv, setAxisScaleDiv() */ QwtScaleDiv *QwtPlot::axisScaleDiv(int axisId) { if (!axisValid(axisId)) return NULL; return &d_axisData[axisId]->scaleDiv; } /*! \returns the scale draw of a specified axis \param axisId axis index \return specified scaleDraw for axis, or NULL if axis is invalid. \sa QwtScaleDraw */ const QwtScaleDraw *QwtPlot::axisScaleDraw(int axisId) const { if (!axisValid(axisId)) return NULL; return axisWidget(axisId)->scaleDraw(); } /*! \returns the scale draw of a specified axis \param axisId axis index \return specified scaleDraw for axis, or NULL if axis is invalid. \sa QwtScaleDraw */ QwtScaleDraw *QwtPlot::axisScaleDraw(int axisId) { if (!axisValid(axisId)) return NULL; return axisWidget(axisId)->scaleDraw(); } /*! Return the step size parameter, that has been set in setAxisScale. This doesn't need to be the step size of the current scale. \param axisId axis index \return step size parameter value \sa setAxisScale() */ double QwtPlot::axisStepSize(int axisId) const { if (!axisValid(axisId)) return 0; return d_axisData[axisId]->stepSize; } /*! \return the title of a specified axis \param axisId axis index */ QwtText QwtPlot::axisTitle(int axisId) const { if (axisValid(axisId)) return axisWidget(axisId)->title(); else return QwtText(); } /*! \brief Enable or disable a specified axis When an axis is disabled, this only means that it is not visible on the screen. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal. Only xBottom and yLeft are enabled by default. \param axisId axis index \param tf \c true (enabled) or \c false (disabled) */ void QwtPlot::enableAxis(int axisId, bool tf) { if (axisValid(axisId) && tf != d_axisData[axisId]->isEnabled) { d_axisData[axisId]->isEnabled = tf; updateLayout(); } } /*! Transform the x or y coordinate of a position in the drawing region into a value. \param axisId axis index \param pos position \warning The position can be an x or a y coordinate, depending on the specified axis. */ double QwtPlot::invTransform(int axisId, int pos) const { if (axisValid(axisId)) return(canvasMap(axisId).invTransform(pos)); else return 0.0; } /*! \brief Transform a value into a coordinate in the plotting region \param axisId axis index \param value value \return X or y coordinate in the plotting region corresponding to the value. */ int QwtPlot::transform(int axisId, double value) const { if (axisValid(axisId)) return(canvasMap(axisId).transform(value)); else return 0; } /*! \brief Change the font of an axis \param axisId axis index \param f font \warning This function changes the font of the tick labels, not of the axis title. */ void QwtPlot::setAxisFont(int axisId, const QFont &f) { if (axisValid(axisId)) axisWidget(axisId)->setFont(f); } /*! \brief Enable autoscaling for a specified axis This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling is enabled by default. \param axisId axis index \sa setAxisScale(), setAxisScaleDiv() */ void QwtPlot::setAxisAutoScale(int axisId) { if (axisValid(axisId) && !d_axisData[axisId]->doAutoScale ) { d_axisData[axisId]->doAutoScale = true; autoRefresh(); } } /*! \brief Disable autoscaling and specify a fixed scale for a selected axis. \param axisId axis index \param min \param max minimum and maximum of the scale \param stepSize Major step size. If step == 0, the step size is calculated automatically using the maxMajor setting. \sa setAxisMaxMajor(), setAxisAutoScale() */ void QwtPlot::setAxisScale(int axisId, double min, double max, double stepSize) { if (axisValid(axisId)) { AxisData &d = *d_axisData[axisId]; d.doAutoScale = false; d.scaleDiv.invalidate(); d.minValue = min; d.maxValue = max; d.stepSize = stepSize; autoRefresh(); } } /*! \brief Disable autoscaling and specify a fixed scale for a selected axis. \param axisId axis index \param scaleDiv Scale division \sa setAxisScale(), setAxisAutoScale() */ void QwtPlot::setAxisScaleDiv(int axisId, const QwtScaleDiv &scaleDiv) { if (axisValid(axisId)) { AxisData &d = *d_axisData[axisId]; d.doAutoScale = false; d.scaleDiv = scaleDiv; autoRefresh(); } } /*! \brief Set a scale draw \param axisId axis index \param scaleDraw object responsible for drawing scales. By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object ). \sa QwtScaleDraw, QwtScaleWidget \warning The attributes of scaleDraw will be overwritten by those of the previous QwtScaleDraw. */ void QwtPlot::setAxisScaleDraw(int axisId, QwtScaleDraw *scaleDraw) { if (axisValid(axisId)) { axisWidget(axisId)->setScaleDraw(scaleDraw); autoRefresh(); } } /*! Change the alignment of the tick labels \param axisId axis index \param alignment Or'd Qt::AlignmentFlags \sa QwtScaleDraw::setLabelAlignment() */ #if QT_VERSION < 0x040000 void QwtPlot::setAxisLabelAlignment(int axisId, int alignment) #else void QwtPlot::setAxisLabelAlignment(int axisId, Qt::Alignment alignment) #endif { if (axisValid(axisId)) axisWidget(axisId)->setLabelAlignment(alignment); } /*! Rotate all tick labels \param axisId axis index \param rotation Angle in degrees. When changing the label rotation, the label alignment might be adjusted too. \sa QwtScaleDraw::setLabelRotation(), setAxisLabelAlignment() */ void QwtPlot::setAxisLabelRotation(int axisId, double rotation) { if (axisValid(axisId)) axisWidget(axisId)->setLabelRotation(rotation); } /*! Set the maximum number of minor scale intervals for a specified axis \param axisId axis index \param maxMinor maximum number of minor steps \sa axisMaxMinor() */ void QwtPlot::setAxisMaxMinor(int axisId, int maxMinor) { if (axisValid(axisId)) { if ( maxMinor < 0 ) maxMinor = 0; if ( maxMinor > 100 ) maxMinor = 100; AxisData &d = *d_axisData[axisId]; if ( maxMinor != d.maxMinor ) { d.maxMinor = maxMinor; d.scaleDiv.invalidate(); autoRefresh(); } } } /*! Set the maximum number of major scale intervals for a specified axis \param axisId axis index \param maxMajor maximum number of major steps \sa axisMaxMajor() */ void QwtPlot::setAxisMaxMajor(int axisId, int maxMajor) { if (axisValid(axisId)) { if ( maxMajor < 1 ) maxMajor = 1; if ( maxMajor > 1000 ) maxMajor = 10000; AxisData &d = *d_axisData[axisId]; if ( maxMajor != d.maxMajor ) { d.maxMajor = maxMajor; d.scaleDiv.invalidate(); autoRefresh(); } } } /*! \brief Change the title of a specified axis \param axisId axis index \param title axis title */ void QwtPlot::setAxisTitle(int axisId, const QString &title) { if (axisValid(axisId)) axisWidget(axisId)->setTitle(title); } /*! \brief Change the title of a specified axis \param axisId axis index \param title axis title */ void QwtPlot::setAxisTitle(int axisId, const QwtText &title) { if (axisValid(axisId)) axisWidget(axisId)->setTitle(title); } //! Rebuild the scales void QwtPlot::updateAxes() { // Find bounding interval of the item data // for all axes, where autoscaling is enabled QwtDoubleInterval intv[axisCnt]; const QwtPlotItemList& itmList = itemList(); QwtPlotItemIterator it; for ( it = itmList.begin(); it != itmList.end(); ++it ) { const QwtPlotItem *item = *it; if ( !item->testItemAttribute(QwtPlotItem::AutoScale) ) continue; if ( axisAutoScale(item->xAxis()) || axisAutoScale(item->yAxis()) ) { const QwtDoubleRect rect = item->boundingRect(); intv[item->xAxis()] |= QwtDoubleInterval(rect.left(), rect.right()); intv[item->yAxis()] |= QwtDoubleInterval(rect.top(), rect.bottom()); } } // Adjust scales for (int axisId = 0; axisId < axisCnt; axisId++) { AxisData &d = *d_axisData[axisId]; double minValue = d.minValue; double maxValue = d.maxValue; double stepSize = d.stepSize; if ( d.doAutoScale && intv[axisId].isValid() ) { d.scaleDiv.invalidate(); minValue = intv[axisId].minValue(); maxValue = intv[axisId].maxValue(); d.scaleEngine->autoScale(d.maxMajor, minValue, maxValue, stepSize); } if ( !d.scaleDiv.isValid() ) { d.scaleDiv = d.scaleEngine->divideScale( minValue, maxValue, d.maxMajor, d.maxMinor, stepSize); } QwtScaleWidget *scaleWidget = axisWidget(axisId); scaleWidget->setScaleDiv( d.scaleEngine->transformation(), d.scaleDiv); int startDist, endDist; scaleWidget->getBorderDistHint(startDist, endDist); scaleWidget->setBorderDist(startDist, endDist); } for ( it = itmList.begin(); it != itmList.end(); ++it ) { QwtPlotItem *item = *it; item->updateScaleDiv( *axisScaleDiv(item->xAxis()), *axisScaleDiv(item->yAxis())); } } qwt5-5.2.3/src/qwt_color_map.h0000644000175000017500000001261212052741123015564 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_COLOR_MAP_H #define QWT_COLOR_MAP_H #include #include #if QT_VERSION < 0x040000 #include #else #include #endif #include "qwt_array.h" #include "qwt_double_interval.h" #if defined(QWT_TEMPLATEDLL) // MOC_SKIP_BEGIN template class QWT_EXPORT QwtArray; // MOC_SKIP_END #endif /*! \brief QwtColorMap is used to map values into colors. For displaying 3D data on a 2D plane the 3rd dimension is often displayed using colors, like f.e in a spectrogram. Each color map is optimized to return colors for only one of the following image formats: - QImage::Format_Indexed8\n - QImage::Format_ARGB32\n \sa QwtPlotSpectrogram, QwtScaleWidget */ class QWT_EXPORT QwtColorMap { public: /*! - RGB\n The map is intended to map into QRgb values. - Indexed\n The map is intended to map into 8 bit values, that are indices into the color table. \sa rgb(), colorIndex(), colorTable() */ enum Format { RGB, Indexed }; QwtColorMap(Format = QwtColorMap::RGB ); virtual ~QwtColorMap(); Format format() const; //! Clone the color map virtual QwtColorMap *copy() const = 0; /*! Map a value of a given interval into a rgb value. \param interval Range for the values \param value Value \return rgb value, corresponding to value */ virtual QRgb rgb( const QwtDoubleInterval &interval, double value) const = 0; /*! Map a value of a given interval into a color index \param interval Range for the values \param value Value \return color index, corresponding to value */ virtual unsigned char colorIndex( const QwtDoubleInterval &interval, double value) const = 0; QColor color(const QwtDoubleInterval &, double value) const; #if QT_VERSION < 0x040000 virtual QValueVector colorTable(const QwtDoubleInterval &) const; #else virtual QVector colorTable(const QwtDoubleInterval &) const; #endif private: Format d_format; }; /*! \brief QwtLinearColorMap builds a color map from color stops. A color stop is a color at a specific position. The valid range for the positions is [0.0, 1.0]. When mapping a value into a color it is translated into this interval. If mode() == FixedColors the color is calculated from the next lower color stop. If mode() == ScaledColors the color is calculated by interpolating the colors of the adjacent stops. */ class QWT_EXPORT QwtLinearColorMap: public QwtColorMap { public: /*! Mode of color map \sa setMode(), mode() */ enum Mode { FixedColors, ScaledColors }; QwtLinearColorMap(QwtColorMap::Format = QwtColorMap::RGB); QwtLinearColorMap( const QColor &from, const QColor &to, QwtColorMap::Format = QwtColorMap::RGB); QwtLinearColorMap(const QwtLinearColorMap &); virtual ~QwtLinearColorMap(); QwtLinearColorMap &operator=(const QwtLinearColorMap &); virtual QwtColorMap *copy() const; void setMode(Mode); Mode mode() const; void setColorInterval(const QColor &color1, const QColor &color2); void addColorStop(double value, const QColor&); QwtArray colorStops() const; QColor color1() const; QColor color2() const; virtual QRgb rgb(const QwtDoubleInterval &, double value) const; virtual unsigned char colorIndex( const QwtDoubleInterval &, double value) const; class ColorStops; private: class PrivateData; PrivateData *d_data; }; /*! \brief QwtAlphaColorMap variies the alpha value of a color */ class QWT_EXPORT QwtAlphaColorMap: public QwtColorMap { public: QwtAlphaColorMap(const QColor & = QColor(Qt::gray)); QwtAlphaColorMap(const QwtAlphaColorMap &); virtual ~QwtAlphaColorMap(); QwtAlphaColorMap &operator=(const QwtAlphaColorMap &); virtual QwtColorMap *copy() const; void setColor(const QColor &); QColor color() const; virtual QRgb rgb(const QwtDoubleInterval &, double value) const; private: virtual unsigned char colorIndex( const QwtDoubleInterval &, double value) const; class PrivateData; PrivateData *d_data; }; /*! Map a value into a color \param interval Valid interval for values \param value Value \return Color corresponding to value \warning This method is slow for Indexed color maps. If it is necessary to map many values, its better to get the color table once and find the color using colorIndex(). */ inline QColor QwtColorMap::color( const QwtDoubleInterval &interval, double value) const { if ( d_format == RGB ) { return QColor( rgb(interval, value) ); } else { const unsigned int index = colorIndex(interval, value); return colorTable(interval)[index]; // slow } } /*! \return Intended format of the color map \sa Format */ inline QwtColorMap::Format QwtColorMap::format() const { return d_format; } #endif qwt5-5.2.3/src/qwt_global.h0000644000175000017500000000241212052741123015046 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_GLOBAL_H #define QWT_GLOBAL_H #include #if QT_VERSION < 0x040000 #include #endif // QWT_VERSION is (major << 16) + (minor << 8) + patch. #define QWT_VERSION 0x050203 #define QWT_VERSION_STR "5.2.3" #if defined(Q_WS_WIN) || defined(Q_WS_S60) #if defined(_MSC_VER) /* MSVC Compiler */ /* template-class specialization 'identifier' is already instantiated */ #pragma warning(disable: 4660) #endif // _MSC_VER #ifdef QWT_DLL #if defined(QWT_MAKEDLL) // create a Qwt DLL library #define QWT_EXPORT __declspec(dllexport) #define QWT_TEMPLATEDLL #else // use a Qwt DLL library #define QWT_EXPORT __declspec(dllimport) #endif #endif // QWT_DLL #endif // Q_WS_WIN || Q_WS_S60 #ifndef QWT_EXPORT #define QWT_EXPORT #endif // #define QWT_NO_COMPAT 1 // disable withdrawn functionality #endif // QWT_GLOBAL_H qwt5-5.2.3/src/qwt_abstract_scale.h0000644000175000017500000000345712052741123016572 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_ABSTRACT_SCALE_H #define QWT_ABSTRACT_SCALE_H #include "qwt_global.h" class QwtScaleEngine; class QwtAbstractScaleDraw; class QwtScaleDiv; class QwtScaleMap; class QwtDoubleInterval; /*! \brief An abstract base class for classes containing a scale QwtAbstractScale is used to provide classes with a QwtScaleDraw, and a QwtScaleDiv. The QwtScaleDiv might be set explicitely or calculated by a QwtScaleEngine. */ class QWT_EXPORT QwtAbstractScale { public: QwtAbstractScale(); virtual ~QwtAbstractScale(); void setScale(double vmin, double vmax, double step = 0.0); void setScale(const QwtDoubleInterval &, double step = 0.0); void setScale(const QwtScaleDiv &s); void setAutoScale(); bool autoScale() const; void setScaleMaxMajor( int ticks); int scaleMaxMinor() const; void setScaleMaxMinor( int ticks); int scaleMaxMajor() const; void setScaleEngine(QwtScaleEngine *); const QwtScaleEngine *scaleEngine() const; QwtScaleEngine *scaleEngine(); const QwtScaleMap &scaleMap() const; protected: void rescale(double vmin, double vmax, double step = 0.0); void setAbstractScaleDraw(QwtAbstractScaleDraw *); const QwtAbstractScaleDraw *abstractScaleDraw() const; QwtAbstractScaleDraw *abstractScaleDraw(); virtual void scaleChange(); private: void updateScaleDraw(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_scale_widget.h0000644000175000017500000000641112052741123016243 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SCALE_WIDGET_H #define QWT_SCALE_WIDGET_H #include #include #include #include #include "qwt_global.h" #include "qwt_text.h" #include "qwt_scale_draw.h" class QPainter; class QwtScaleTransformation; class QwtScaleDiv; class QwtColorMap; /*! \brief A Widget which contains a scale This Widget can be used to decorate composite widgets with a scale. */ class QWT_EXPORT QwtScaleWidget : public QWidget { Q_OBJECT public: explicit QwtScaleWidget(QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtScaleWidget(QWidget *parent, const char *name); #endif explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL); virtual ~QwtScaleWidget(); signals: //! Signal emitted, whenever the scale divison changes void scaleDivChanged(); public: void setTitle(const QString &title); void setTitle(const QwtText &title); QwtText title() const; void setBorderDist(int start, int end); int startBorderDist() const; int endBorderDist() const; void getBorderDistHint(int &start, int &end) const; void getMinBorderDist(int &start, int &end) const; void setMinBorderDist(int start, int end); void setMargin(int); int margin() const; void setSpacing(int td); int spacing() const; void setPenWidth(int); int penWidth() const; void setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd); void setScaleDraw(QwtScaleDraw *); const QwtScaleDraw *scaleDraw() const; QwtScaleDraw *scaleDraw(); #if QT_VERSION < 0x040000 void setLabelAlignment(int); #else void setLabelAlignment(Qt::Alignment); #endif void setLabelRotation(double rotation); void setColorBarEnabled(bool); bool isColorBarEnabled() const; void setColorBarWidth(int); int colorBarWidth() const; void setColorMap(const QwtDoubleInterval &, const QwtColorMap &); QwtDoubleInterval colorBarInterval() const; const QwtColorMap &colorMap() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; int titleHeightForWidth(int width) const; int dimForLength(int length, const QFont &scaleFont) const; void drawColorBar(QPainter *painter, const QRect &rect) const; void drawTitle(QPainter *painter, QwtScaleDraw::Alignment, const QRect &rect) const; void setAlignment(QwtScaleDraw::Alignment); QwtScaleDraw::Alignment alignment() const; QRect colorBarRect(const QRect&) const; protected: virtual void paintEvent(QPaintEvent *e); virtual void resizeEvent(QResizeEvent *e); #if QT_VERSION < 0x040000 virtual void fontChange(const QFont &oldfont); #endif void draw(QPainter *p) const; void scaleChange(); void layoutScale( bool update = true ); private: void initScale(QwtScaleDraw::Alignment); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_panner.cpp0000644000175000017500000000740312052741126016472 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include "qwt_scale_div.h" #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_plot_panner.h" class QwtPlotPanner::PrivateData { public: PrivateData() { for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) isAxisEnabled[axis] = true; } bool isAxisEnabled[QwtPlot::axisCnt]; }; /*! \brief Create a plot panner The panner is enabled for all axes \param canvas Plot canvas to pan, also the parent object \sa setAxisEnabled() */ QwtPlotPanner::QwtPlotPanner(QwtPlotCanvas *canvas): QwtPanner(canvas) { d_data = new PrivateData(); connect(this, SIGNAL(panned(int, int)), SLOT(moveCanvas(int, int))); } //! Destructor QwtPlotPanner::~QwtPlotPanner() { delete d_data; } /*! \brief En/Disable an axis Axes that are enabled will be synchronized to the result of panning. All other axes will remain unchanged. \param axis Axis, see QwtPlot::Axis \param on On/Off \sa isAxisEnabled(), moveCanvas() */ void QwtPlotPanner::setAxisEnabled(int axis, bool on) { if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->isAxisEnabled[axis] = on; } /*! Test if an axis is enabled \param axis Axis, see QwtPlot::Axis \return True, if the axis is enabled \sa setAxisEnabled(), moveCanvas() */ bool QwtPlotPanner::isAxisEnabled(int axis) const { if ( axis >= 0 && axis < QwtPlot::axisCnt ) return d_data->isAxisEnabled[axis]; return true; } //! Return observed plot canvas QwtPlotCanvas *QwtPlotPanner::canvas() { QWidget *w = parentWidget(); if ( w && w->inherits("QwtPlotCanvas") ) return (QwtPlotCanvas *)w; return NULL; } //! Return Observed plot canvas const QwtPlotCanvas *QwtPlotPanner::canvas() const { return ((QwtPlotPanner *)this)->canvas(); } //! Return plot widget, containing the observed plot canvas QwtPlot *QwtPlotPanner::plot() { QObject *w = canvas(); if ( w ) { w = w->parent(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; } return NULL; } //! Return plot widget, containing the observed plot canvas const QwtPlot *QwtPlotPanner::plot() const { return ((QwtPlotPanner *)this)->plot(); } /*! Adjust the enabled axes according to dx/dy \param dx Pixel offset in x direction \param dy Pixel offset in y direction \sa QwtPanner::panned() */ void QwtPlotPanner::moveCanvas(int dx, int dy) { if ( dx == 0 && dy == 0 ) return; QwtPlot *plot = QwtPlotPanner::plot(); if ( plot == NULL ) return; const bool doAutoReplot = plot->autoReplot(); plot->setAutoReplot(false); for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) { if ( !d_data->isAxisEnabled[axis] ) continue; const QwtScaleMap map = plot->canvasMap(axis); const int i1 = map.transform(plot->axisScaleDiv(axis)->lowerBound()); const int i2 = map.transform(plot->axisScaleDiv(axis)->upperBound()); double d1, d2; if ( axis == QwtPlot::xBottom || axis == QwtPlot::xTop ) { d1 = map.invTransform(i1 - dx); d2 = map.invTransform(i2 - dx); } else { d1 = map.invTransform(i1 - dy); d2 = map.invTransform(i2 - dy); } plot->setAxisScale(axis, d1, d2); } plot->setAutoReplot(doAutoReplot); plot->replot(); } qwt5-5.2.3/src/qwt_abstract_slider.cpp0000644000175000017500000003106712052741125017320 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include "qwt_abstract_slider.h" #include "qwt_math.h" #ifndef WHEEL_DELTA #define WHEEL_DELTA 120 #endif class QwtAbstractSlider::PrivateData { public: PrivateData(): scrollMode(ScrNone), mouseOffset(0.0), tracking(true), tmrID(0), updTime(150), mass(0.0), readOnly(false) { } int scrollMode; double mouseOffset; int direction; int tracking; int tmrID; int updTime; int timerTick; QTime time; double speed; double mass; Qt::Orientation orientation; bool readOnly; }; /*! \brief Constructor \param orientation Orientation \param parent Parent widget */ QwtAbstractSlider::QwtAbstractSlider( Qt::Orientation orientation, QWidget *parent): QWidget(parent, NULL) { d_data = new QwtAbstractSlider::PrivateData; d_data->orientation = orientation; #if QT_VERSION >= 0x040000 using namespace Qt; #endif setFocusPolicy(TabFocus); } //! Destructor QwtAbstractSlider::~QwtAbstractSlider() { if(d_data->tmrID) killTimer(d_data->tmrID); delete d_data; } /*! En/Disable read only mode In read only mode the slider can't be controlled by mouse or keyboard. \param readOnly Enables in case of true \sa isReadOnly() */ void QwtAbstractSlider::setReadOnly(bool readOnly) { d_data->readOnly = readOnly; update(); } /*! In read only mode the slider can't be controlled by mouse or keyboard. \return true if read only \sa setReadOnly() */ bool QwtAbstractSlider::isReadOnly() const { return d_data->readOnly; } /*! \brief Set the orientation. \param o Orientation. Allowed values are Qt::Horizontal and Qt::Vertical. */ void QwtAbstractSlider::setOrientation(Qt::Orientation o) { d_data->orientation = o; } /*! \return Orientation \sa setOrientation() */ Qt::Orientation QwtAbstractSlider::orientation() const { return d_data->orientation; } //! Stop updating if automatic scrolling is active void QwtAbstractSlider::stopMoving() { if(d_data->tmrID) { killTimer(d_data->tmrID); d_data->tmrID = 0; } } /*! \brief Specify the update interval for automatic scrolling \param t update interval in milliseconds \sa getScrollMode() */ void QwtAbstractSlider::setUpdateTime(int t) { if (t < 50) t = 50; d_data->updTime = t; } /*! Mouse press event handler \param e Mouse event */ void QwtAbstractSlider::mousePressEvent(QMouseEvent *e) { if ( isReadOnly() ) { e->ignore(); return; } if ( !isValid() ) return; const QPoint &p = e->pos(); d_data->timerTick = 0; getScrollMode(p, d_data->scrollMode, d_data->direction); stopMoving(); switch(d_data->scrollMode) { case ScrPage: case ScrTimer: d_data->mouseOffset = 0; d_data->tmrID = startTimer(qwtMax(250, 2 * d_data->updTime)); break; case ScrMouse: d_data->time.start(); d_data->speed = 0; d_data->mouseOffset = getValue(p) - value(); emit sliderPressed(); break; default: d_data->mouseOffset = 0; d_data->direction = 0; break; } } //! Emits a valueChanged() signal if necessary void QwtAbstractSlider::buttonReleased() { if ((!d_data->tracking) || (value() != prevValue())) emit valueChanged(value()); } /*! Mouse Release Event handler \param e Mouse event */ void QwtAbstractSlider::mouseReleaseEvent(QMouseEvent *e) { if ( isReadOnly() ) { e->ignore(); return; } if ( !isValid() ) return; const double inc = step(); switch(d_data->scrollMode) { case ScrMouse: { setPosition(e->pos()); d_data->direction = 0; d_data->mouseOffset = 0; if (d_data->mass > 0.0) { const int ms = d_data->time.elapsed(); if ((fabs(d_data->speed) > 0.0) && (ms < 50)) d_data->tmrID = startTimer(d_data->updTime); } else { d_data->scrollMode = ScrNone; buttonReleased(); } emit sliderReleased(); break; } case ScrDirect: { setPosition(e->pos()); d_data->direction = 0; d_data->mouseOffset = 0; d_data->scrollMode = ScrNone; buttonReleased(); break; } case ScrPage: { stopMoving(); if (!d_data->timerTick) QwtDoubleRange::incPages(d_data->direction); d_data->timerTick = 0; buttonReleased(); d_data->scrollMode = ScrNone; break; } case ScrTimer: { stopMoving(); if (!d_data->timerTick) QwtDoubleRange::fitValue(value() + double(d_data->direction) * inc); d_data->timerTick = 0; buttonReleased(); d_data->scrollMode = ScrNone; break; } default: { d_data->scrollMode = ScrNone; buttonReleased(); } } } /*! Move the slider to a specified point, adjust the value and emit signals if necessary. */ void QwtAbstractSlider::setPosition(const QPoint &p) { QwtDoubleRange::fitValue(getValue(p) - d_data->mouseOffset); } /*! \brief Enables or disables tracking. If tracking is enabled, the slider emits a valueChanged() signal whenever its value changes (the default behaviour). If tracking is disabled, the value changed() signal will only be emitted if:
  • the user releases the mouse button and the value has changed or
  • at the end of automatic scrolling.
Tracking is enabled by default. \param enable \c true (enable) or \c false (disable) tracking. */ void QwtAbstractSlider::setTracking(bool enable) { d_data->tracking = enable; } /*! Mouse Move Event handler \param e Mouse event */ void QwtAbstractSlider::mouseMoveEvent(QMouseEvent *e) { if ( isReadOnly() ) { e->ignore(); return; } if ( !isValid() ) return; if (d_data->scrollMode == ScrMouse ) { setPosition(e->pos()); if (d_data->mass > 0.0) { double ms = double(d_data->time.elapsed()); if (ms < 1.0) ms = 1.0; d_data->speed = (exactValue() - exactPrevValue()) / ms; d_data->time.start(); } if (value() != prevValue()) emit sliderMoved(value()); } } /*! Wheel Event handler \param e Whell event */ void QwtAbstractSlider::wheelEvent(QWheelEvent *e) { if ( isReadOnly() ) { e->ignore(); return; } if ( !isValid() ) return; int mode = ScrNone, direction = 0; // Give derived classes a chance to say ScrNone getScrollMode(e->pos(), mode, direction); if ( mode != ScrNone ) { const int inc = e->delta() / WHEEL_DELTA; QwtDoubleRange::incPages(inc); if (value() != prevValue()) emit sliderMoved(value()); } } /*! Handles key events - Key_Down, KeyLeft\n Decrement by 1 - Key_Up, Key_Right\n Increment by 1 \param e Key event \sa isReadOnly() */ void QwtAbstractSlider::keyPressEvent(QKeyEvent *e) { if ( isReadOnly() ) { e->ignore(); return; } if ( !isValid() ) return; int increment = 0; switch ( e->key() ) { case Qt::Key_Down: if ( orientation() == Qt::Vertical ) increment = -1; break; case Qt::Key_Up: if ( orientation() == Qt::Vertical ) increment = 1; break; case Qt::Key_Left: if ( orientation() == Qt::Horizontal ) increment = -1; break; case Qt::Key_Right: if ( orientation() == Qt::Horizontal ) increment = 1; break; default:; e->ignore(); } if ( increment != 0 ) { QwtDoubleRange::incValue(increment); if (value() != prevValue()) emit sliderMoved(value()); } } /*! Qt timer event \param e Timer event */ void QwtAbstractSlider::timerEvent(QTimerEvent *) { const double inc = step(); switch (d_data->scrollMode) { case ScrMouse: { if (d_data->mass > 0.0) { d_data->speed *= exp( - double(d_data->updTime) * 0.001 / d_data->mass ); const double newval = exactValue() + d_data->speed * double(d_data->updTime); QwtDoubleRange::fitValue(newval); // stop if d_data->speed < one step per second if (fabs(d_data->speed) < 0.001 * fabs(step())) { d_data->speed = 0; stopMoving(); buttonReleased(); } } else stopMoving(); break; } case ScrPage: { QwtDoubleRange::incPages(d_data->direction); if (!d_data->timerTick) { killTimer(d_data->tmrID); d_data->tmrID = startTimer(d_data->updTime); } break; } case ScrTimer: { QwtDoubleRange::fitValue(value() + double(d_data->direction) * inc); if (!d_data->timerTick) { killTimer(d_data->tmrID); d_data->tmrID = startTimer(d_data->updTime); } break; } default: { stopMoving(); break; } } d_data->timerTick = 1; } /*! Notify change of value This function can be reimplemented by derived classes in order to keep track of changes, i.e. repaint the widget. The default implementation emits a valueChanged() signal if tracking is enabled. */ void QwtAbstractSlider::valueChange() { if (d_data->tracking) emit valueChanged(value()); } /*! \brief Set the slider's mass for flywheel effect. If the slider's mass is greater then 0, it will continue to move after the mouse button has been released. Its speed decreases with time at a rate depending on the slider's mass. A large mass means that it will continue to move for a long time. Derived widgets may overload this function to make it public. \param val New mass in kg \bug If the mass is smaller than 1g, it is set to zero. The maximal mass is limited to 100kg. \sa mass() */ void QwtAbstractSlider::setMass(double val) { if (val < 0.001) d_data->mass = 0.0; else if (val > 100.0) d_data->mass = 100.0; else d_data->mass = val; } /*! \return mass \sa setMass() */ double QwtAbstractSlider::mass() const { return d_data->mass; } /*! \brief Move the slider to a specified value This function can be used to move the slider to a value which is not an integer multiple of the step size. \param val new value \sa fitValue() */ void QwtAbstractSlider::setValue(double val) { if (d_data->scrollMode == ScrMouse) stopMoving(); QwtDoubleRange::setValue(val); } /*! \brief Set the slider's value to the nearest integer multiple of the step size. \param value Value \sa setValue(), incValue() */ void QwtAbstractSlider::fitValue(double value) { if (d_data->scrollMode == ScrMouse) stopMoving(); QwtDoubleRange::fitValue(value); } /*! \brief Increment the value by a specified number of steps \param steps number of steps \sa setValue() */ void QwtAbstractSlider::incValue(int steps) { if (d_data->scrollMode == ScrMouse) stopMoving(); QwtDoubleRange::incValue(steps); } void QwtAbstractSlider::setMouseOffset(double offset) { d_data->mouseOffset = offset; } double QwtAbstractSlider::mouseOffset() const { return d_data->mouseOffset; } int QwtAbstractSlider::scrollMode() const { return d_data->scrollMode; } qwt5-5.2.3/src/qwt_curve_fitter.h0000644000175000017500000000511612052741123016313 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_CURVE_FITTER_H #define QWT_CURVE_FITTER_H #include "qwt_global.h" #include "qwt_double_rect.h" class QwtSpline; #if QT_VERSION >= 0x040000 #include #else #include "qwt_array.h" #endif // MOC_SKIP_BEGIN #if defined(QWT_TEMPLATEDLL) #if QT_VERSION < 0x040000 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT template class QWT_EXPORT QwtArray; #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT #endif #endif // MOC_SKIP_END /*! \brief Abstract base class for a curve fitter */ class QWT_EXPORT QwtCurveFitter { public: virtual ~QwtCurveFitter(); #if QT_VERSION < 0x040000 virtual QwtArray fitCurve( const QwtArray&) const = 0; #else /*! Find a curve which has the best fit to a series of data points \param polygon Series of data points \return Curve points */ virtual QPolygonF fitCurve(const QPolygonF &polygon) const = 0; #endif protected: QwtCurveFitter(); private: QwtCurveFitter( const QwtCurveFitter & ); QwtCurveFitter &operator=( const QwtCurveFitter & ); }; /*! \brief A curve fitter using cubic splines */ class QWT_EXPORT QwtSplineCurveFitter: public QwtCurveFitter { public: enum FitMode { Auto, Spline, ParametricSpline }; QwtSplineCurveFitter(); virtual ~QwtSplineCurveFitter(); void setFitMode(FitMode); FitMode fitMode() const; void setSpline(const QwtSpline&); const QwtSpline &spline() const; QwtSpline &spline(); void setSplineSize(int size); int splineSize() const; #if QT_VERSION < 0x040000 virtual QwtArray fitCurve( const QwtArray &) const; #else virtual QPolygonF fitCurve(const QPolygonF &) const; #endif private: #if QT_VERSION < 0x040000 QwtArray fitSpline( const QwtArray &) const; QwtArray fitParametric( const QwtArray &) const; #else QPolygonF fitSpline(const QPolygonF &) const; QPolygonF fitParametric(const QPolygonF &) const; #endif class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_scale_div.h0000644000175000017500000000520512052741123015542 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SCALE_DIV_H #define QWT_SCALE_DIV_H #include "qwt_global.h" #include "qwt_valuelist.h" #include "qwt_double_interval.h" class QwtDoubleInterval; /*! \brief A class representing a scale division A scale division consists of its limits and 3 list of tick values qualified as major, medium and minor ticks. In most cases scale divisions are calculated by a QwtScaleEngine. \sa subDivideInto(), subDivide() */ class QWT_EXPORT QwtScaleDiv { public: //! Scale tick types enum TickType { NoTick = -1, MinorTick, MediumTick, MajorTick, NTickTypes }; explicit QwtScaleDiv(); explicit QwtScaleDiv(const QwtDoubleInterval &, QwtValueList[NTickTypes]); explicit QwtScaleDiv(double lowerBound, double upperBound, QwtValueList[NTickTypes]); int operator==(const QwtScaleDiv &s) const; int operator!=(const QwtScaleDiv &s) const; void setInterval(double lowerBound, double upperBound); void setInterval(const QwtDoubleInterval &); QwtDoubleInterval interval() const; double lowerBound() const; double upperBound() const; double range() const; bool contains(double v) const; void setTicks(int type, const QwtValueList &); const QwtValueList &ticks(int type) const; void invalidate(); bool isValid() const; void invert(); private: double d_lowerBound; double d_upperBound; QwtValueList d_ticks[NTickTypes]; bool d_isValid; }; /*! Change the interval \param lowerBound lower bound \param upperBound upper bound */ inline void QwtScaleDiv::setInterval(double lowerBound, double upperBound) { d_lowerBound = lowerBound; d_upperBound = upperBound; } /*! \return lowerBound -> upperBound */ inline QwtDoubleInterval QwtScaleDiv::interval() const { return QwtDoubleInterval(d_lowerBound, d_upperBound); } /*! \return lower bound \sa upperBound() */ inline double QwtScaleDiv::lowerBound() const { return d_lowerBound; } /*! \return upper bound \sa lowerBound() */ inline double QwtScaleDiv::upperBound() const { return d_upperBound; } /*! \return upperBound() - lowerBound() */ inline double QwtScaleDiv::range() const { return d_upperBound - d_lowerBound; } #endif qwt5-5.2.3/src/qwt_dyngrid_layout.cpp0000644000175000017500000004046012052741126017206 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include "qwt_dyngrid_layout.h" #include "qwt_math.h" #if QT_VERSION < 0x040000 #include #else #include #endif class QwtDynGridLayout::PrivateData { public: #if QT_VERSION < 0x040000 class LayoutIterator: public QGLayoutIterator { public: LayoutIterator(PrivateData *data): d_data(data) { d_iterator = d_data->itemList.begin(); } virtual QLayoutItem *current() { if (d_iterator == d_data->itemList.end()) return NULL; return *d_iterator; } virtual QLayoutItem *next() { if (d_iterator == d_data->itemList.end()) return NULL; d_iterator++; if (d_iterator == d_data->itemList.end()) return NULL; return *d_iterator; } virtual QLayoutItem *takeCurrent() { if ( d_iterator == d_data->itemList.end() ) return NULL; QLayoutItem *item = *d_iterator; d_data->isDirty = true; d_iterator = d_data->itemList.remove(d_iterator); return item; } private: QValueListIterator d_iterator; QwtDynGridLayout::PrivateData *d_data; }; #endif PrivateData(): isDirty(true) { } #if QT_VERSION < 0x040000 typedef QValueList LayoutItemList; #else typedef QList LayoutItemList; #endif mutable LayoutItemList itemList; uint maxCols; uint numRows; uint numCols; #if QT_VERSION < 0x040000 QSizePolicy::ExpandData expanding; #else Qt::Orientations expanding; #endif bool isDirty; QwtArray itemSizeHints; }; /*! \param parent Parent widget \param margin Margin \param spacing Spacing */ QwtDynGridLayout::QwtDynGridLayout(QWidget *parent, int margin, int spacing): QLayout(parent) { init(); setSpacing(spacing); setMargin(margin); } #if QT_VERSION < 0x040000 /*! \param parent Parent widget \param spacing Spacing */ QwtDynGridLayout::QwtDynGridLayout(QLayout *parent, int spacing): QLayout(parent, spacing) { init(); } #endif /*! \param spacing Spacing */ QwtDynGridLayout::QwtDynGridLayout(int spacing) { init(); setSpacing(spacing); } /*! Initialize the layout with default values. */ void QwtDynGridLayout::init() { d_data = new QwtDynGridLayout::PrivateData; d_data->maxCols = d_data->numRows = d_data->numCols = 0; #if QT_VERSION < 0x040000 d_data->expanding = QSizePolicy::NoDirection; setSupportsMargin(true); #else d_data->expanding = 0; #endif } //! Destructor QwtDynGridLayout::~QwtDynGridLayout() { #if QT_VERSION < 0x040000 deleteAllItems(); #endif delete d_data; } //! Invalidate all internal caches void QwtDynGridLayout::invalidate() { d_data->isDirty = true; QLayout::invalidate(); } void QwtDynGridLayout::updateLayoutCache() { d_data->itemSizeHints.resize(itemCount()); int index = 0; for (PrivateData::LayoutItemList::iterator it = d_data->itemList.begin(); it != d_data->itemList.end(); ++it, index++) { d_data->itemSizeHints[int(index)] = (*it)->sizeHint(); } d_data->isDirty = false; } /*! Limit the number of columns. \param maxCols upper limit, 0 means unlimited \sa maxCols() */ void QwtDynGridLayout::setMaxCols(uint maxCols) { d_data->maxCols = maxCols; } /*! Return the upper limit for the number of columns. 0 means unlimited, what is the default. \sa setMaxCols() */ uint QwtDynGridLayout::maxCols() const { return d_data->maxCols; } //! Adds item to the next free position. void QwtDynGridLayout::addItem(QLayoutItem *item) { d_data->itemList.append(item); invalidate(); } /*! \return true if this layout is empty. */ bool QwtDynGridLayout::isEmpty() const { return d_data->itemList.isEmpty(); } /*! \return number of layout items */ uint QwtDynGridLayout::itemCount() const { return d_data->itemList.count(); } #if QT_VERSION < 0x040000 /*! \return An iterator over the children of this layout. */ QLayoutIterator QwtDynGridLayout::iterator() { return QLayoutIterator( new QwtDynGridLayout::PrivateData::LayoutIterator(d_data) ); } void QwtDynGridLayout::setExpanding(QSizePolicy::ExpandData expanding) { d_data->expanding = expanding; } QSizePolicy::ExpandData QwtDynGridLayout::expanding() const { return d_data->expanding; } #else // QT_VERSION >= 0x040000 /*! Find the item at a spcific index \param index Index \sa takeAt() */ QLayoutItem *QwtDynGridLayout::itemAt( int index ) const { if ( index < 0 || index >= d_data->itemList.count() ) return NULL; return d_data->itemList.at(index); } /*! Find the item at a spcific index and remove it from the layout \param index Index \sa itemAt() */ QLayoutItem *QwtDynGridLayout::takeAt( int index ) { if ( index < 0 || index >= d_data->itemList.count() ) return NULL; d_data->isDirty = true; return d_data->itemList.takeAt(index); } //! \return Number of items in the layout int QwtDynGridLayout::count() const { return d_data->itemList.count(); } /*! Set whether this layout can make use of more space than sizeHint(). A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions. The default value is 0. \param expanding Or'd orientations \sa expandingDirections() */ void QwtDynGridLayout::setExpandingDirections(Qt::Orientations expanding) { d_data->expanding = expanding; } /*! Returns whether this layout can make use of more space than sizeHint(). A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions. \sa setExpandingDirections() */ Qt::Orientations QwtDynGridLayout::expandingDirections() const { return d_data->expanding; } #endif /*! Reorganizes columns and rows and resizes managed widgets within the rectangle rect. \param rect Layout geometry */ void QwtDynGridLayout::setGeometry(const QRect &rect) { QLayout::setGeometry(rect); if ( isEmpty() ) return; d_data->numCols = columnsForWidth(rect.width()); d_data->numRows = itemCount() / d_data->numCols; if ( itemCount() % d_data->numCols ) d_data->numRows++; #if QT_VERSION < 0x040000 QValueList itemGeometries = layoutItems(rect, d_data->numCols); #else QList itemGeometries = layoutItems(rect, d_data->numCols); #endif int index = 0; for (PrivateData::LayoutItemList::iterator it = d_data->itemList.begin(); it != d_data->itemList.end(); ++it) { QWidget *w = (*it)->widget(); if ( w ) { w->setGeometry(itemGeometries[index]); index++; } } } /*! Calculate the number of columns for a given width. It tries to use as many columns as possible (limited by maxCols()) \param width Available width for all columns \sa maxCols(), setMaxCols() */ uint QwtDynGridLayout::columnsForWidth(int width) const { if ( isEmpty() ) return 0; uint maxCols = itemCount(); if ( d_data->maxCols > 0 ) maxCols = qwtMin( d_data->maxCols, maxCols ); if ( maxRowWidth( maxCols ) <= width ) return maxCols; for ( uint numCols = 2; numCols <= maxCols; numCols++ ) { const int rowWidth = maxRowWidth(numCols); if ( rowWidth > width ) return numCols - 1; } return 1; // At least 1 column } /*! Calculate the width of a layout for a given number of columns. \param numCols Given number of columns \param itemWidth Array of the width hints for all items */ int QwtDynGridLayout::maxRowWidth(int numCols) const { int col; QwtArray colWidth(numCols); for ( col = 0; col < (int)numCols; col++ ) colWidth[col] = 0; if ( d_data->isDirty ) ((QwtDynGridLayout*)this)->updateLayoutCache(); for ( uint index = 0; index < (uint)d_data->itemSizeHints.count(); index++ ) { col = index % numCols; colWidth[col] = qwtMax(colWidth[col], d_data->itemSizeHints[int(index)].width()); } int rowWidth = 2 * margin() + (numCols - 1) * spacing(); for ( col = 0; col < (int)numCols; col++ ) rowWidth += colWidth[col]; return rowWidth; } /*! \return the maximum width of all layout items */ int QwtDynGridLayout::maxItemWidth() const { if ( isEmpty() ) return 0; if ( d_data->isDirty ) ((QwtDynGridLayout*)this)->updateLayoutCache(); int w = 0; for ( uint i = 0; i < (uint)d_data->itemSizeHints.count(); i++ ) { const int itemW = d_data->itemSizeHints[int(i)].width(); if ( itemW > w ) w = itemW; } return w; } /*! Calculate the geometries of the layout items for a layout with numCols columns and a given rect. \param rect Rect where to place the items \param numCols Number of columns \return item geometries */ #if QT_VERSION < 0x040000 QValueList QwtDynGridLayout::layoutItems(const QRect &rect, uint numCols) const #else QList QwtDynGridLayout::layoutItems(const QRect &rect, uint numCols) const #endif { #if QT_VERSION < 0x040000 QValueList itemGeometries; #else QList itemGeometries; #endif if ( numCols == 0 || isEmpty() ) return itemGeometries; uint numRows = itemCount() / numCols; if ( numCols % itemCount() ) numRows++; if ( numRows == 0 ) return itemGeometries; QwtArray rowHeight(numRows); QwtArray colWidth(numCols); layoutGrid(numCols, rowHeight, colWidth); bool expandH, expandV; #if QT_VERSION >= 0x040000 expandH = expandingDirections() & Qt::Horizontal; expandV = expandingDirections() & Qt::Vertical; #else expandH = expanding() & QSizePolicy::Horizontally; expandV = expanding() & QSizePolicy::Vertically; #endif if ( expandH || expandV ) stretchGrid(rect, numCols, rowHeight, colWidth); QwtDynGridLayout *that = (QwtDynGridLayout *)this; const int maxCols = d_data->maxCols; that->d_data->maxCols = numCols; const QRect alignedRect = alignmentRect(rect); that->d_data->maxCols = maxCols; const int xOffset = expandH ? 0 : alignedRect.x(); const int yOffset = expandV ? 0 : alignedRect.y(); QwtArray colX(numCols); QwtArray rowY(numRows); const int xySpace = spacing(); rowY[0] = yOffset + margin(); for ( int r = 1; r < (int)numRows; r++ ) rowY[r] = rowY[r-1] + rowHeight[r-1] + xySpace; colX[0] = xOffset + margin(); for ( int c = 1; c < (int)numCols; c++ ) colX[c] = colX[c-1] + colWidth[c-1] + xySpace; const int itemCount = d_data->itemList.size(); for ( int i = 0; i < itemCount; i++ ) { const int row = i / numCols; const int col = i % numCols; QRect itemGeometry(colX[col], rowY[row], colWidth[col], rowHeight[row]); itemGeometries.append(itemGeometry); } return itemGeometries; } /*! Calculate the dimensions for the columns and rows for a grid of numCols columns. \param numCols Number of columns. \param rowHeight Array where to fill in the calculated row heights. \param colWidth Array where to fill in the calculated column widths. */ void QwtDynGridLayout::layoutGrid(uint numCols, QwtArray& rowHeight, QwtArray& colWidth) const { if ( numCols <= 0 ) return; if ( d_data->isDirty ) ((QwtDynGridLayout*)this)->updateLayoutCache(); for ( uint index = 0; index < (uint)d_data->itemSizeHints.count(); index++ ) { const int row = index / numCols; const int col = index % numCols; const QSize &size = d_data->itemSizeHints[int(index)]; rowHeight[row] = (col == 0) ? size.height() : qwtMax(rowHeight[row], size.height()); colWidth[col] = (row == 0) ? size.width() : qwtMax(colWidth[col], size.width()); } } /*! \return true: QwtDynGridLayout implements heightForWidth. \sa heightForWidth() */ bool QwtDynGridLayout::hasHeightForWidth() const { return true; } /*! \return The preferred height for this layout, given the width w. \sa hasHeightForWidth() */ int QwtDynGridLayout::heightForWidth(int width) const { if ( isEmpty() ) return 0; const uint numCols = columnsForWidth(width); uint numRows = itemCount() / numCols; if ( itemCount() % numCols ) numRows++; QwtArray rowHeight(numRows); QwtArray colWidth(numCols); layoutGrid(numCols, rowHeight, colWidth); int h = 2 * margin() + (numRows - 1) * spacing(); for ( int row = 0; row < (int)numRows; row++ ) h += rowHeight[row]; return h; } /*! Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect. Rows and columns are stretched with the same factor. \sa setExpanding(), expanding() */ void QwtDynGridLayout::stretchGrid(const QRect &rect, uint numCols, QwtArray& rowHeight, QwtArray& colWidth) const { if ( numCols == 0 || isEmpty() ) return; bool expandH, expandV; #if QT_VERSION >= 0x040000 expandH = expandingDirections() & Qt::Horizontal; expandV = expandingDirections() & Qt::Vertical; #else expandH = expanding() & QSizePolicy::Horizontally; expandV = expanding() & QSizePolicy::Vertically; #endif if ( expandH ) { int xDelta = rect.width() - 2 * margin() - (numCols - 1) * spacing(); for ( int col = 0; col < (int)numCols; col++ ) xDelta -= colWidth[col]; if ( xDelta > 0 ) { for ( int col = 0; col < (int)numCols; col++ ) { const int space = xDelta / (numCols - col); colWidth[col] += space; xDelta -= space; } } } if ( expandV ) { uint numRows = itemCount() / numCols; if ( itemCount() % numCols ) numRows++; int yDelta = rect.height() - 2 * margin() - (numRows - 1) * spacing(); for ( int row = 0; row < (int)numRows; row++ ) yDelta -= rowHeight[row]; if ( yDelta > 0 ) { for ( int row = 0; row < (int)numRows; row++ ) { const int space = yDelta / (numRows - row); rowHeight[row] += space; yDelta -= space; } } } } /*! Return the size hint. If maxCols() > 0 it is the size for a grid with maxCols() columns, otherwise it is the size for a grid with only one row. \sa maxCols(), setMaxCols() */ QSize QwtDynGridLayout::sizeHint() const { if ( isEmpty() ) return QSize(); const uint numCols = (d_data->maxCols > 0 ) ? d_data->maxCols : itemCount(); uint numRows = itemCount() / numCols; if ( itemCount() % numCols ) numRows++; QwtArray rowHeight(numRows); QwtArray colWidth(numCols); layoutGrid(numCols, rowHeight, colWidth); int h = 2 * margin() + (numRows - 1) * spacing(); for ( int row = 0; row < (int)numRows; row++ ) h += rowHeight[row]; int w = 2 * margin() + (numCols - 1) * spacing(); for ( int col = 0; col < (int)numCols; col++ ) w += colWidth[col]; return QSize(w, h); } /*! \return Number of rows of the current layout. \sa numCols() \warning The number of rows might change whenever the geometry changes */ uint QwtDynGridLayout::numRows() const { return d_data->numRows; } /*! \return Number of columns of the current layout. \sa numRows() \warning The number of columns might change whenever the geometry changes */ uint QwtDynGridLayout::numCols() const { return d_data->numCols; } qwt5-5.2.3/src/qwt_math.h0000644000175000017500000000770312052741123014547 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_MATH_H #define QWT_MATH_H #include #include #include "qwt_global.h" #include "qwt_double_rect.h" #if QT_VERSION < 0x040000 #define qwtMax QMAX #define qwtMin QMIN #define qwtAbs QABS #else // QT_VERSION >= 0x040000 #define qwtMax qMax #define qwtMin qMin #define qwtAbs qAbs #endif #ifndef LOG10_2 #define LOG10_2 0.30102999566398119802 /* log10(2) */ #endif #ifndef LOG10_3 #define LOG10_3 0.47712125471966243540 /* log10(3) */ #endif #ifndef LOG10_5 #define LOG10_5 0.69897000433601885749 /* log10(5) */ #endif #ifndef M_2PI #define M_2PI 6.28318530717958623200 /* 2 pi */ #endif #ifndef LOG_MIN //! Mininum value for logarithmic scales #define LOG_MIN 1.0e-100 #endif #ifndef LOG_MAX //! Maximum value for logarithmic scales #define LOG_MAX 1.0e100 #endif #ifndef M_E #define M_E 2.7182818284590452354 /* e */ #endif #ifndef M_LOG2E #define M_LOG2E 1.4426950408889634074 /* log_2 e */ #endif #ifndef M_LOG10E #define M_LOG10E 0.43429448190325182765 /* log_10 e */ #endif #ifndef M_LN2 #define M_LN2 0.69314718055994530942 /* log_e 2 */ #endif #ifndef M_LN10 #define M_LN10 2.30258509299404568402 /* log_e 10 */ #endif #ifndef M_PI #define M_PI 3.14159265358979323846 /* pi */ #endif #ifndef M_PI_2 #define M_PI_2 1.57079632679489661923 /* pi/2 */ #endif #ifndef M_PI_4 #define M_PI_4 0.78539816339744830962 /* pi/4 */ #endif #ifndef M_1_PI #define M_1_PI 0.31830988618379067154 /* 1/pi */ #endif #ifndef M_2_PI #define M_2_PI 0.63661977236758134308 /* 2/pi */ #endif #ifndef M_2_SQRTPI #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ #endif #ifndef M_SQRT2 #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ #endif #ifndef M_SQRT1_2 #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ #endif QWT_EXPORT double qwtGetMin(const double *array, int size); QWT_EXPORT double qwtGetMax(const double *array, int size); //! Return the sign inline int qwtSign(double x) { if (x > 0.0) return 1; else if (x < 0.0) return (-1); else return 0; } //! Return the square of a number inline double qwtSqr(const double x) { return x*x; } /*! \brief Limit a value to fit into a specified interval \param x Input value \param x1 First interval boundary \param x2 Second interval boundary */ template T qwtLim(const T& x, const T& x1, const T& x2) { T rv; T xmin, xmax; xmin = qwtMin(x1, x2); xmax = qwtMax(x1, x2); if ( x < xmin ) rv = xmin; else if ( x > xmax ) rv = xmax; else rv = x; return rv; } inline QPoint qwtPolar2Pos(const QPoint &pole, double radius, double angle) { const double x = pole.x() + radius * ::cos(angle); const double y = pole.y() - radius * ::sin(angle); return QPoint(qRound(x), qRound(y)); } inline QPoint qwtDegree2Pos(const QPoint &pole, double radius, double angle) { return qwtPolar2Pos(pole, radius, angle / 180.0 * M_PI); } inline QwtDoublePoint qwtPolar2Pos(const QwtDoublePoint &pole, double radius, double angle) { const double x = pole.x() + radius * ::cos(angle); const double y = pole.y() - radius * ::sin(angle); return QPoint(qRound(x), qRound(y)); } inline QwtDoublePoint qwtDegree2Pos(const QwtDoublePoint &pole, double radius, double angle) { return qwtPolar2Pos(pole, radius, angle / 180.0 * M_PI); } //! Rounding of doubles, like qRound for integers inline double qwtRound(double value) { return ::floor(value + 0.5); // MSVC has no ::round(). } #endif qwt5-5.2.3/src/qwt_plot_dict.cpp0000644000175000017500000001070312052741126016127 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include "qwt_plot_dict.h" class QwtPlotDict::PrivateData { public: #if QT_VERSION < 0x040000 class ItemList: public QValueList #else class ItemList: public QList #endif { public: void insertItem(QwtPlotItem *item) { if ( item == NULL ) return; // Unfortunately there is no inSort operation // for lists in Qt4. The implementation below // is slow, but there shouldn't be many plot items. #ifdef __GNUC__ #endif #if QT_VERSION < 0x040000 QValueListIterator it; #else QList::Iterator it; #endif for ( it = begin(); it != end(); ++it ) { if ( *it == item ) return; if ( (*it)->z() > item->z() ) { insert(it, item); return; } } append(item); } void removeItem(QwtPlotItem *item) { if ( item == NULL ) return; int i = 0; #if QT_VERSION < 0x040000 QValueListIterator it; #else QList::Iterator it; #endif for ( it = begin(); it != end(); ++it ) { if ( item == *it ) { #if QT_VERSION < 0x040000 remove(it); #else removeAt(i); #endif return; } i++; } } }; ItemList itemList; bool autoDelete; }; /*! Constructor Auto deletion is enabled. \sa setAutoDelete(), attachItem() */ QwtPlotDict::QwtPlotDict() { d_data = new QwtPlotDict::PrivateData; d_data->autoDelete = true; } /*! Destructor If autoDelete is on, all attached items will be deleted \sa setAutoDelete(), autoDelete(), attachItem() */ QwtPlotDict::~QwtPlotDict() { detachItems(QwtPlotItem::Rtti_PlotItem, d_data->autoDelete); delete d_data; } /*! En/Disable Auto deletion If Auto deletion is on all attached plot items will be deleted in the destructor of QwtPlotDict. The default value is on. \sa autoDelete(), attachItem() */ void QwtPlotDict::setAutoDelete(bool autoDelete) { d_data->autoDelete = autoDelete; } /*! \return true if auto deletion is enabled \sa setAutoDelete(), attachItem() */ bool QwtPlotDict::autoDelete() const { return d_data->autoDelete; } /*! Attach/Detach a plot item Attached items will be deleted in the destructor, if auto deletion is enabled (default). Manually detached items are not deleted. \param item Plot item to attach/detach \ on If true attach, else detach the item \sa setAutoDelete(), ~QwtPlotDict() */ void QwtPlotDict::attachItem(QwtPlotItem *item, bool on) { if ( on ) d_data->itemList.insertItem(item); else d_data->itemList.removeItem(item); } /*! Detach items from the dictionary \param rtti In case of QwtPlotItem::Rtti_PlotItem detach all items otherwise only those items of the type rtti. \param autoDelete If true, delete all detached items */ void QwtPlotDict::detachItems(int rtti, bool autoDelete) { PrivateData::ItemList list = d_data->itemList; QwtPlotItemIterator it = list.begin(); while ( it != list.end() ) { QwtPlotItem *item = *it; ++it; // increment before removing item from the list if ( rtti == QwtPlotItem::Rtti_PlotItem || item->rtti() == rtti ) { item->attach(NULL); if ( autoDelete ) delete item; } } } //! \brief A QwtPlotItemList of all attached plot items. /// /// Use caution when iterating these lists, as removing/detaching an item will /// invalidate the iterator. Instead you can place pointers to objects to be /// removed in a removal list, and traverse that list later. //! \return List of all attached plot items. const QwtPlotItemList &QwtPlotDict::itemList() const { return d_data->itemList; } qwt5-5.2.3/src/qwt_dial.h0000644000175000017500000001361712052741123014530 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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_DIAL_H #define QWT_DIAL_H 1 #include #include #include "qwt_global.h" #include "qwt_abstract_slider.h" #include "qwt_round_scale_draw.h" class QwtDialNeedle; class QwtDial; /*! \brief A special scale draw made for QwtDial \sa QwtDial, QwtCompass */ class QWT_EXPORT QwtDialScaleDraw: public QwtRoundScaleDraw { public: explicit QwtDialScaleDraw(QwtDial *); virtual QwtText label(double value) const; void setPenWidth(uint); uint penWidth() const; private: QwtDial *d_parent; int d_penWidth; }; /*! \brief QwtDial class provides a rounded range control. QwtDial is intended as base class for dial widgets like speedometers, compass widgets, clocks ... \image html dials2.png A dial contains a scale and a needle indicating the current value of the dial. Depending on Mode one of them is fixed and the other is rotating. If not isReadOnly() the dial can be rotated by dragging the mouse or using keyboard inputs (see keyPressEvent()). A dial might be wrapping, what means a rotation below/above one limit continues on the other limit (f.e compass). The scale might cover any arc of the dial, its values are related to the origin() of the dial. Qwt is missing a set of good looking needles (QwtDialNeedle). Contributions are very welcome. \sa QwtCompass, QwtAnalogClock, QwtDialNeedle \note The examples/dials example shows different types of dials. */ class QWT_EXPORT QwtDial: public QwtAbstractSlider { Q_OBJECT Q_ENUMS(Shadow) Q_ENUMS(Mode) Q_ENUMS(Direction) Q_PROPERTY(bool visibleBackground READ hasVisibleBackground WRITE showBackground) Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth) Q_PROPERTY(Shadow frameShadow READ frameShadow WRITE setFrameShadow) Q_PROPERTY(Mode mode READ mode WRITE setMode) Q_PROPERTY(double origin READ origin WRITE setOrigin) Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping) Q_PROPERTY(Direction direction READ direction WRITE setDirection) friend class QwtDialScaleDraw; public: /*! \brief Frame shadow Unfortunately it is not possible to use QFrame::Shadow as a property of a widget that is not derived from QFrame. The following enum is made for the designer only. It is safe to use QFrame::Shadow instead. */ enum Shadow { Plain = QFrame::Plain, Raised = QFrame::Raised, Sunken = QFrame::Sunken }; //! see QwtDial::setScaleOptions enum ScaleOptions { ScaleBackbone = 1, ScaleTicks = 2, ScaleLabel = 4 }; /*! In case of RotateNeedle the needle is rotating, in case of RotateScale, the needle points to origin() and the scale is rotating. */ enum Mode { RotateNeedle, RotateScale }; /*! Direction of the dial */ enum Direction { Clockwise, CounterClockwise }; explicit QwtDial( QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtDial( QWidget *parent, const char *name); #endif virtual ~QwtDial(); void setFrameShadow(Shadow); Shadow frameShadow() const; bool hasVisibleBackground() const; void showBackground(bool); void setLineWidth(int); int lineWidth() const; void setMode(Mode); Mode mode() const; virtual void setWrapping(bool); bool wrapping() const; virtual void setScale(int maxMajIntv, int maxMinIntv, double step = 0.0); void setScaleArc(double min, double max); void setScaleOptions(int); void setScaleTicks(int minLen, int medLen, int majLen, int penWidth = 1); double minScaleArc() const; double maxScaleArc() const; virtual void setOrigin(double); double origin() const; void setDirection(Direction); Direction direction() const; virtual void setNeedle(QwtDialNeedle *); const QwtDialNeedle *needle() const; QwtDialNeedle *needle(); QRect boundingRect() const; QRect contentsRect() const; virtual QRect scaleContentsRect() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; virtual void setScaleDraw(QwtDialScaleDraw *); QwtDialScaleDraw *scaleDraw(); const QwtDialScaleDraw *scaleDraw() const; protected: virtual void paintEvent(QPaintEvent *); virtual void resizeEvent(QResizeEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void updateMask(); virtual void drawFrame(QPainter *p); virtual void drawContents(QPainter *) const; virtual void drawFocusIndicator(QPainter *) const; virtual void drawScale(QPainter *, const QPoint ¢er, int radius, double origin, double arcMin, double arcMax) const; /*! Draw the contents inside the scale Paints nothing. \param painter Painter \param center Center of the contents circle \param radius Radius of the contents circle */ virtual void drawScaleContents(QPainter *painter, const QPoint ¢er, int radius) const; virtual void drawNeedle(QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const; virtual QwtText scaleLabel(double) const; void updateScale(); virtual void rangeChange(); virtual void valueChange(); virtual double getValue(const QPoint &); virtual void getScrollMode(const QPoint &, int &scrollMode, int &direction); private: void initDial(); class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_magnifier.cpp0000644000175000017500000000660612052741126017154 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include "qwt_plot.h" #include "qwt_plot_canvas.h" #include "qwt_scale_div.h" #include "qwt_plot_magnifier.h" class QwtPlotMagnifier::PrivateData { public: PrivateData() { for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) isAxisEnabled[axis] = true; } bool isAxisEnabled[QwtPlot::axisCnt]; }; /*! Constructor \param canvas Plot canvas to be magnified */ QwtPlotMagnifier::QwtPlotMagnifier(QwtPlotCanvas *canvas): QwtMagnifier(canvas) { d_data = new PrivateData(); } //! Destructor QwtPlotMagnifier::~QwtPlotMagnifier() { delete d_data; } /*! \brief En/Disable an axis Axes that are enabled will be synchronized to the result of panning. All other axes will remain unchanged. \param axis Axis, see QwtPlot::Axis \param on On/Off \sa isAxisEnabled() */ void QwtPlotMagnifier::setAxisEnabled(int axis, bool on) { if ( axis >= 0 && axis < QwtPlot::axisCnt ) d_data->isAxisEnabled[axis] = on; } /*! Test if an axis is enabled \param axis Axis, see QwtPlot::Axis \return True, if the axis is enabled \sa setAxisEnabled() */ bool QwtPlotMagnifier::isAxisEnabled(int axis) const { if ( axis >= 0 && axis < QwtPlot::axisCnt ) return d_data->isAxisEnabled[axis]; return true; } //! Return observed plot canvas QwtPlotCanvas *QwtPlotMagnifier::canvas() { QObject *w = parent(); if ( w && w->inherits("QwtPlotCanvas") ) return (QwtPlotCanvas *)w; return NULL; } //! Return Observed plot canvas const QwtPlotCanvas *QwtPlotMagnifier::canvas() const { return ((QwtPlotMagnifier *)this)->canvas(); } //! Return plot widget, containing the observed plot canvas QwtPlot *QwtPlotMagnifier::plot() { QObject *w = canvas(); if ( w ) { w = w->parent(); if ( w && w->inherits("QwtPlot") ) return (QwtPlot *)w; } return NULL; } //! Return plot widget, containing the observed plot canvas const QwtPlot *QwtPlotMagnifier::plot() const { return ((QwtPlotMagnifier *)this)->plot(); } /*! Zoom in/out the axes scales \param factor A value < 1.0 zooms in, a value > 1.0 zooms out. */ void QwtPlotMagnifier::rescale(double factor) { factor = qwtAbs(factor); if ( factor == 1.0 || factor == 0.0 ) return; bool doReplot = false; QwtPlot* plt = plot(); const bool autoReplot = plt->autoReplot(); plt->setAutoReplot(false); for ( int axisId = 0; axisId < QwtPlot::axisCnt; axisId++ ) { const QwtScaleDiv *scaleDiv = plt->axisScaleDiv(axisId); if ( isAxisEnabled(axisId) && scaleDiv->isValid() ) { const double center = scaleDiv->lowerBound() + scaleDiv->range() / 2; const double width_2 = scaleDiv->range() / 2 * factor; plt->setAxisScale(axisId, center - width_2, center + width_2); doReplot = true; } } plt->setAutoReplot(autoReplot); if ( doReplot ) plt->replot(); } qwt5-5.2.3/src/qwt_abstract_scale_draw.cpp0000644000175000017500000002247012052741126020141 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include #include #include "qwt_math.h" #include "qwt_text.h" #include "qwt_painter.h" #include "qwt_scale_map.h" #include "qwt_scale_draw.h" class QwtAbstractScaleDraw::PrivateData { public: PrivateData(): components(Backbone | Ticks | Labels), spacing(4), minExtent(0) { tickLength[QwtScaleDiv::MinorTick] = 4; tickLength[QwtScaleDiv::MediumTick] = 6; tickLength[QwtScaleDiv::MajorTick] = 8; } int components; QwtScaleMap map; QwtScaleDiv scldiv; int spacing; int tickLength[QwtScaleDiv::NTickTypes]; int minExtent; QMap labelCache; }; /*! \brief Constructor The range of the scale is initialized to [0, 100], The spacing (distance between ticks and labels) is set to 4, the tick lengths are set to 4,6 and 8 pixels */ QwtAbstractScaleDraw::QwtAbstractScaleDraw() { d_data = new QwtAbstractScaleDraw::PrivateData; } //! Copy constructor QwtAbstractScaleDraw::QwtAbstractScaleDraw(const QwtAbstractScaleDraw &other) { d_data = new QwtAbstractScaleDraw::PrivateData(*other.d_data); } //! Destructor QwtAbstractScaleDraw::~QwtAbstractScaleDraw() { delete d_data; } //! Assignment operator QwtAbstractScaleDraw &QwtAbstractScaleDraw::operator=(const QwtAbstractScaleDraw &other) { *d_data = *other.d_data; return *this; } /*! En/Disable a component of the scale \param component Scale component \param enable On/Off \sa hasComponent() */ void QwtAbstractScaleDraw::enableComponent( ScaleComponent component, bool enable) { if ( enable ) d_data->components |= component; else d_data->components &= ~component; } /*! Check if a component is enabled \sa enableComponent() */ bool QwtAbstractScaleDraw::hasComponent(ScaleComponent component) const { return (d_data->components & component); } /*! Change the scale division \param sd New scale division */ void QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &sd) { d_data->scldiv = sd; d_data->map.setScaleInterval(sd.lowerBound(), sd.upperBound()); d_data->labelCache.clear(); } /*! Change the transformation of the scale \param transformation New scale transformation */ void QwtAbstractScaleDraw::setTransformation( QwtScaleTransformation *transformation) { d_data->map.setTransformation(transformation); } //! \return Map how to translate between scale and pixel values const QwtScaleMap &QwtAbstractScaleDraw::map() const { return d_data->map; } //! \return Map how to translate between scale and pixel values QwtScaleMap &QwtAbstractScaleDraw::scaleMap() { return d_data->map; } //! \return scale division const QwtScaleDiv& QwtAbstractScaleDraw::scaleDiv() const { return d_data->scldiv; } #if QT_VERSION < 0x040000 /*! \brief Draw the scale \param painter The painter \param colorGroup Color group, text color is used for the labels, foreground color for ticks and backbone */ void QwtAbstractScaleDraw::draw(QPainter *painter, const QColorGroup& colorGroup) const #else /*! \brief Draw the scale \param painter The painter \param palette Palette, text color is used for the labels, foreground color for ticks and backbone */ void QwtAbstractScaleDraw::draw(QPainter *painter, const QPalette& palette) const #endif { if ( hasComponent(QwtAbstractScaleDraw::Labels) ) { painter->save(); #if QT_VERSION < 0x040000 painter->setPen(colorGroup.text()); // ignore pen style #else painter->setPen(palette.color(QPalette::Text)); // ignore pen style #endif const QwtValueList &majorTicks = d_data->scldiv.ticks(QwtScaleDiv::MajorTick); for (int i = 0; i < (int)majorTicks.count(); i++) { const double v = majorTicks[i]; if ( d_data->scldiv.contains(v) ) drawLabel(painter, majorTicks[i]); } painter->restore(); } if ( hasComponent(QwtAbstractScaleDraw::Ticks) ) { painter->save(); QPen pen = painter->pen(); #if QT_VERSION < 0x040000 pen.setColor(colorGroup.foreground()); #else pen.setColor(palette.color(QPalette::Foreground)); #endif painter->setPen(pen); for ( int tickType = QwtScaleDiv::MinorTick; tickType < QwtScaleDiv::NTickTypes; tickType++ ) { const QwtValueList &ticks = d_data->scldiv.ticks(tickType); for (int i = 0; i < (int)ticks.count(); i++) { const double v = ticks[i]; if ( d_data->scldiv.contains(v) ) drawTick(painter, v, d_data->tickLength[tickType]); } } painter->restore(); } if ( hasComponent(QwtAbstractScaleDraw::Backbone) ) { painter->save(); QPen pen = painter->pen(); #if QT_VERSION < 0x040000 pen.setColor(colorGroup.foreground()); #else pen.setColor(palette.color(QPalette::Foreground)); #endif painter->setPen(pen); drawBackbone(painter); painter->restore(); } } /*! \brief Set the spacing between tick and labels The spacing is the distance between ticks and labels. The default spacing is 4 pixels. \param spacing Spacing \sa spacing() */ void QwtAbstractScaleDraw::setSpacing(int spacing) { if ( spacing < 0 ) spacing = 0; d_data->spacing = spacing; } /*! \brief Get the spacing The spacing is the distance between ticks and labels. The default spacing is 4 pixels. \sa setSpacing() */ int QwtAbstractScaleDraw::spacing() const { return d_data->spacing; } /*! \brief Set a minimum for the extent The extent is calculated from the coomponents of the scale draw. In situations, where the labels are changing and the layout depends on the extent (f.e scrolling a scale), setting an upper limit as minimum extent will avoid jumps of the layout. \param minExtent Minimum extent \sa extent(), minimumExtent() */ void QwtAbstractScaleDraw::setMinimumExtent(int minExtent) { if ( minExtent < 0 ) minExtent = 0; d_data->minExtent = minExtent; } /*! Get the minimum extent \sa extent(), setMinimumExtent() */ int QwtAbstractScaleDraw::minimumExtent() const { return d_data->minExtent; } /*! Set the length of the ticks \param tickType Tick type \param length New length \warning the length is limited to [0..1000] */ void QwtAbstractScaleDraw::setTickLength( QwtScaleDiv::TickType tickType, int length) { if ( tickType < QwtScaleDiv::MinorTick || tickType > QwtScaleDiv::MajorTick ) { return; } if ( length < 0 ) length = 0; const int maxTickLen = 1000; if ( length > maxTickLen ) length = 1000; d_data->tickLength[tickType] = length; } /*! Return the length of the ticks \sa setTickLength(), majTickLength() */ int QwtAbstractScaleDraw::tickLength(QwtScaleDiv::TickType tickType) const { if ( tickType < QwtScaleDiv::MinorTick || tickType > QwtScaleDiv::MajorTick ) { return 0; } return d_data->tickLength[tickType]; } /*! The same as QwtAbstractScaleDraw::tickLength(QwtScaleDiv::MajorTick). */ int QwtAbstractScaleDraw::majTickLength() const { return d_data->tickLength[QwtScaleDiv::MajorTick]; } /*! \brief Convert a value into its representing label The value is converted to a plain text using QLocale::system().toString(value). This method is often overloaded by applications to have individual labels. \param value Value \return Label string. */ QwtText QwtAbstractScaleDraw::label(double value) const { return QLocale::system().toString(value); } /*! \brief Convert a value into its representing label and cache it. The conversion between value and label is called very often in the layout and painting code. Unfortunately the calculation of the label sizes might be slow (really slow for rich text in Qt4), so it's necessary to cache the labels. \param font Font \param value Value \return Tick label */ const QwtText &QwtAbstractScaleDraw::tickLabel( const QFont &font, double value) const { QMap::const_iterator it = d_data->labelCache.find(value); if ( it == d_data->labelCache.end() ) { QwtText lbl = label(value); lbl.setRenderFlags(0); lbl.setLayoutAttribute(QwtText::MinimumLayout); (void)lbl.textSize(font); // initialize the internal cache it = d_data->labelCache.insert(value, lbl); } return (*it); } /*! Invalidate the cache used by QwtAbstractScaleDraw::tickLabel The cache is invalidated, when a new QwtScaleDiv is set. If the labels need to be changed. while the same QwtScaleDiv is set, QwtAbstractScaleDraw::invalidateCache needs to be called manually. */ void QwtAbstractScaleDraw::invalidateCache() { d_data->labelCache.clear(); } qwt5-5.2.3/src/qwt_thermo.h0000644000175000017500000001172112052741123015107 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_THERMO_H #define QWT_THERMO_H #include #include #include #include #include "qwt_global.h" #include "qwt_abstract_scale.h" class QwtScaleDraw; /*! \brief The Thermometer Widget QwtThermo is a widget which displays a value in an interval. It supports: - a horizontal or vertical layout; - a range; - a scale; - an alarm level. \image html sysinfo.png By default, the scale and range run over the same interval of values. QwtAbstractScale::setScale() changes the interval of the scale and allows easy conversion between physical units. The example shows how to make the scale indicate in degrees Fahrenheit and to set the value in degrees Kelvin: \code #include #include double Kelvin2Fahrenheit(double kelvin) { // see http://en.wikipedia.org/wiki/Kelvin return 1.8*kelvin - 459.67; } int main(int argc, char **argv) { const double minKelvin = 0.0; const double maxKelvin = 500.0; QApplication a(argc, argv); QwtThermo t; t.setRange(minKelvin, maxKelvin); t.setScale(Kelvin2Fahrenheit(minKelvin), Kelvin2Fahrenheit(maxKelvin)); // set the value in Kelvin but the scale displays in Fahrenheit // 273.15 Kelvin = 0 Celsius = 32 Fahrenheit t.setValue(273.15); a.setMainWidget(&t); t.show(); return a.exec(); } \endcode \todo Improve the support for a logarithmic range and/or scale. */ class QWT_EXPORT QwtThermo: public QWidget, public QwtAbstractScale { Q_OBJECT Q_ENUMS( ScalePos ) Q_PROPERTY( QBrush alarmBrush READ alarmBrush WRITE setAlarmBrush ) Q_PROPERTY( QColor alarmColor READ alarmColor WRITE setAlarmColor ) Q_PROPERTY( bool alarmEnabled READ alarmEnabled WRITE setAlarmEnabled ) Q_PROPERTY( double alarmLevel READ alarmLevel WRITE setAlarmLevel ) Q_PROPERTY( ScalePos scalePosition READ scalePosition WRITE setScalePosition ) Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth ) Q_PROPERTY( QBrush fillBrush READ fillBrush WRITE setFillBrush ) Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor ) Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue ) Q_PROPERTY( double minValue READ minValue WRITE setMinValue ) Q_PROPERTY( int pipeWidth READ pipeWidth WRITE setPipeWidth ) Q_PROPERTY( double value READ value WRITE setValue ) public: /* Scale position. QwtThermo tries to enforce valid combinations of its orientation and scale position: - Qt::Horizonal combines with NoScale, TopScale and BottomScale - Qt::Vertical combines with NoScale, LeftScale and RightScale \sa setOrientation(), setScalePosition() */ enum ScalePos { NoScale, LeftScale, RightScale, TopScale, BottomScale }; explicit QwtThermo(QWidget *parent = NULL); #if QT_VERSION < 0x040000 explicit QwtThermo(QWidget *parent, const char *name); #endif virtual ~QwtThermo(); void setOrientation(Qt::Orientation o, ScalePos s); void setScalePosition(ScalePos s); ScalePos scalePosition() const; void setBorderWidth(int w); int borderWidth() const; void setFillBrush(const QBrush &b); const QBrush &fillBrush() const; void setFillColor(const QColor &c); const QColor &fillColor() const; void setAlarmBrush(const QBrush &b); const QBrush &alarmBrush() const; void setAlarmColor(const QColor &c); const QColor &alarmColor() const; void setAlarmLevel(double v); double alarmLevel() const; void setAlarmEnabled(bool tf); bool alarmEnabled() const; void setPipeWidth(int w); int pipeWidth() const; void setMaxValue(double v); double maxValue() const; void setMinValue(double v); double minValue() const; double value() const; void setRange(double vmin, double vmax, bool lg = false); void setMargin(int m); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setScaleDraw(QwtScaleDraw *); const QwtScaleDraw *scaleDraw() const; public slots: void setValue(double val); protected: void draw(QPainter *p, const QRect& update_rect); void drawThermo(QPainter *p); void layoutThermo( bool update = true ); virtual void scaleChange(); virtual void fontChange(const QFont &oldFont); virtual void paintEvent(QPaintEvent *e); virtual void resizeEvent(QResizeEvent *e); QwtScaleDraw *scaleDraw(); private: void initThermo(); int transform(double v) const; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_plot_rescaler.h0000644000175000017500000000710112052741123016444 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_RESCALER_H #define QWT_PLOT_RESCALER_H 1 #include "qwt_global.h" #include "qwt_double_rect.h" #include "qwt_double_interval.h" #include "qwt_plot.h" #include class QwtPlotCanvas; class QResizeEvent; /*! \brief QwtPlotRescaler takes care of fixed aspect ratios for plot scales QwtPlotRescaler autoadjusts the axes of a QwtPlot according to fixed aspect ratios. */ class QWT_EXPORT QwtPlotRescaler: public QObject { public: /*! \brief Rescale Policy The rescale policy defines how to rescale the reference axis and their depending axes. - Fixed The interval of the reference axis remains unchanged, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio. - Expanding The interval of the reference axis will be shrinked/expanded, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio. The interval, that is represented by one pixel is fixed. - Fitting The intervals of the axes are calculated, so that all axes include their minimal interval. */ enum RescalePolicy { Fixed, Expanding, Fitting }; enum ExpandingDirection { ExpandUp, ExpandDown, ExpandBoth }; explicit QwtPlotRescaler(QwtPlotCanvas *, int referenceAxis = QwtPlot::xBottom, RescalePolicy = Expanding ); virtual ~QwtPlotRescaler(); void setEnabled(bool); bool isEnabled() const; void setRescalePolicy(RescalePolicy); RescalePolicy rescalePolicy() const; void setExpandingDirection(ExpandingDirection); void setExpandingDirection(int axis, ExpandingDirection); ExpandingDirection expandingDirection(int axis) const; void setReferenceAxis(int axis); int referenceAxis() const; void setAspectRatio(double ratio); void setAspectRatio(int axis, double ratio); double aspectRatio(int axis) const; void setIntervalHint(int axis, const QwtDoubleInterval&); QwtDoubleInterval intervalHint(int axis) const; QwtPlotCanvas *canvas(); const QwtPlotCanvas *canvas() const; QwtPlot *plot(); const QwtPlot *plot() const; virtual bool eventFilter(QObject *, QEvent *); void rescale() const; protected: virtual void canvasResizeEvent(QResizeEvent *); virtual void rescale(const QSize &oldSize, const QSize &newSize) const; virtual QwtDoubleInterval expandScale( int axis, const QSize &oldSize, const QSize &newSize) const; virtual QwtDoubleInterval syncScale( int axis, const QwtDoubleInterval& reference, const QSize &size) const; virtual void updateScales( QwtDoubleInterval intervals[QwtPlot::axisCnt]) const; Qt::Orientation orientation(int axis) const; QwtDoubleInterval interval(int axis) const; QwtDoubleInterval expandInterval(const QwtDoubleInterval &, double width, ExpandingDirection) const; private: double pixelDist(int axis, const QSize &) const; class AxisData; class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_magnifier.h0000644000175000017500000000434112052741123015552 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_MAGNIFIER_H #define QWT_MAGNIFIER_H 1 #include "qwt_global.h" #include class QWidget; class QMouseEvent; class QWheelEvent; class QKeyEvent; /*! \brief QwtMagnifier provides zooming, by magnifying in steps. Using QwtMagnifier a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction. */ class QWT_EXPORT QwtMagnifier: public QObject { Q_OBJECT public: explicit QwtMagnifier(QWidget *); virtual ~QwtMagnifier(); QWidget *parentWidget(); const QWidget *parentWidget() const; void setEnabled(bool); bool isEnabled() const; // mouse void setMouseFactor(double); double mouseFactor() const; void setMouseButton(int button, int buttonState = Qt::NoButton); void getMouseButton(int &button, int &buttonState) const; // mouse wheel void setWheelFactor(double); double wheelFactor() const; void setWheelButtonState(int buttonState); int wheelButtonState() const; // keyboard void setKeyFactor(double); double keyFactor() const; void setZoomInKey(int key, int modifiers); void getZoomInKey(int &key, int &modifiers) const; void setZoomOutKey(int key, int modifiers); void getZoomOutKey(int &key, int &modifiers) const; virtual bool eventFilter(QObject *, QEvent *); protected: /*! Rescale the parent widget \param factor Scale factor */ virtual void rescale(double factor) = 0; virtual void widgetMousePressEvent(QMouseEvent *); virtual void widgetMouseReleaseEvent(QMouseEvent *); virtual void widgetMouseMoveEvent(QMouseEvent *); virtual void widgetWheelEvent(QWheelEvent *); virtual void widgetKeyPressEvent(QKeyEvent *); virtual void widgetKeyReleaseEvent(QKeyEvent *); private: class PrivateData; PrivateData *d_data; }; #endif qwt5-5.2.3/src/qwt_scale_widget.cpp0000644000175000017500000005261312052741126016606 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * 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 #include #include #include "qwt_painter.h" #include "qwt_color_map.h" #include "qwt_scale_widget.h" #include "qwt_scale_map.h" #include "qwt_math.h" #include "qwt_paint_buffer.h" #include "qwt_scale_div.h" #include "qwt_text.h" class QwtScaleWidget::PrivateData { public: PrivateData(): scaleDraw(NULL) { colorBar.colorMap = NULL; } ~PrivateData() { delete scaleDraw; delete colorBar.colorMap; } QwtScaleDraw *scaleDraw; int borderDist[2]; int minBorderDist[2]; int scaleLength; int margin; int penWidth; int titleOffset; int spacing; QwtText title; struct t_colorBar { bool isEnabled; int width; QwtDoubleInterval interval; QwtColorMap *colorMap; } colorBar; }; /*! \brief Create a scale with the position QwtScaleWidget::Left \param parent Parent widget */ QwtScaleWidget::QwtScaleWidget(QWidget *parent): QWidget(parent) { initScale(QwtScaleDraw::LeftScale); } #if QT_VERSION < 0x040000 /*! \brief Create a scale with the position QwtScaleWidget::Left \param parent Parent widget \param name Object name */ QwtScaleWidget::QwtScaleWidget(QWidget *parent, const char *name): QWidget(parent, name) { initScale(QwtScaleDraw::LeftScale); } #endif /*! \brief Constructor \param align Alignment. \param parent Parent widget */ QwtScaleWidget::QwtScaleWidget( QwtScaleDraw::Alignment align, QWidget *parent): QWidget(parent) { initScale(align); } //! Destructor QwtScaleWidget::~QwtScaleWidget() { delete d_data; } //! Initialize the scale void QwtScaleWidget::initScale(QwtScaleDraw::Alignment align) { d_data = new PrivateData; #if QT_VERSION < 0x040000 setWFlags(Qt::WNoAutoErase); #endif d_data->borderDist[0] = 0; d_data->borderDist[1] = 0; d_data->minBorderDist[0] = 0; d_data->minBorderDist[1] = 0; d_data->margin = 4; d_data->penWidth = 0; d_data->titleOffset = 0; d_data->spacing = 2; d_data->scaleDraw = new QwtScaleDraw; d_data->scaleDraw->setAlignment(align); d_data->scaleDraw->setLength(10); d_data->colorBar.colorMap = new QwtLinearColorMap(); d_data->colorBar.isEnabled = false; d_data->colorBar.width = 10; const int flags = Qt::AlignHCenter #if QT_VERSION < 0x040000 | Qt::WordBreak | Qt::ExpandTabs; #else | Qt::TextExpandTabs | Qt::TextWordWrap; #endif d_data->title.setRenderFlags(flags); d_data->title.setFont(font()); QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); if ( d_data->scaleDraw->orientation() == Qt::Vertical ) policy.transpose(); setSizePolicy(policy); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } /*! Give title new text contents \param title New title \sa title(), setTitle(const QwtText &); */ void QwtScaleWidget::setTitle(const QString &title) { if ( d_data->title.text() != title ) { d_data->title.setText(title); layoutScale(); } } /*! Give title new text contents \param title New title \sa title() \warning The title flags are interpreted in direction of the label, AlignTop, AlignBottom can't be set as the title will always be aligned to the scale. */ void QwtScaleWidget::setTitle(const QwtText &title) { QwtText t = title; const int flags = title.renderFlags() & ~(Qt::AlignTop | Qt::AlignBottom); t.setRenderFlags(flags); if (t != d_data->title) { d_data->title = t; layoutScale(); } } /*! Change the alignment \param alignment New alignment \sa alignment() */ void QwtScaleWidget::setAlignment(QwtScaleDraw::Alignment alignment) { if ( d_data->scaleDraw ) d_data->scaleDraw->setAlignment( alignment ); #if QT_VERSION >= 0x040000 if ( !testAttribute(Qt::WA_WState_OwnSizePolicy) ) #else if ( !testWState( WState_OwnSizePolicy ) ) #endif { QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); if ( d_data->scaleDraw->orientation() == Qt::Vertical ) policy.transpose(); setSizePolicy(policy); #if QT_VERSION >= 0x040000 setAttribute(Qt::WA_WState_OwnSizePolicy, false); #else clearWState( WState_OwnSizePolicy ); #endif } layoutScale(); } /*! \return position \sa setPosition() */ QwtScaleDraw::Alignment QwtScaleWidget::alignment() const { if (!scaleDraw()) return QwtScaleDraw::LeftScale; return scaleDraw()->alignment(); } /*! Specify distances of the scale's endpoints from the widget's borders. The actual borders will never be less than minimum border distance. \param dist1 Left or top Distance \param dist2 Right or bottom distance \sa borderDist() */ void QwtScaleWidget::setBorderDist(int dist1, int dist2) { if ( dist1 != d_data->borderDist[0] || dist2 != d_data->borderDist[1] ) { d_data->borderDist[0] = dist1; d_data->borderDist[1] = dist2; layoutScale(); } } /*! \brief Specify the margin to the colorBar/base line. \param margin Margin \sa margin() */ void QwtScaleWidget::setMargin(int margin) { margin = qwtMax( 0, margin ); if ( margin != d_data->margin ) { d_data->margin = margin; layoutScale(); } } /*! \brief Specify the distance between color bar, scale and title \param spacing Spacing \sa spacing() */ void QwtScaleWidget::setSpacing(int spacing) { spacing = qwtMax( 0, spacing ); if ( spacing != d_data->spacing ) { d_data->spacing = spacing; layoutScale(); } } /*! \brief Specify the width of the scale pen \param width Pen width \sa penWidth() */ void QwtScaleWidget::setPenWidth(int width) { if ( width < 0 ) width = 0; if ( width != d_data->penWidth ) { d_data->penWidth = width; layoutScale(); } } /*! \brief Change the alignment for the labels. \sa QwtScaleDraw::setLabelAlignment(), setLabelRotation() */ #if QT_VERSION < 0x040000 void QwtScaleWidget::setLabelAlignment(int alignment) #else void QwtScaleWidget::setLabelAlignment(Qt::Alignment alignment) #endif { d_data->scaleDraw->setLabelAlignment(alignment); layoutScale(); } /*! \brief Change the rotation for the labels. See QwtScaleDraw::setLabelRotation(). \param rotation Rotation \sa QwtScaleDraw::setLabelRotation(), setLabelFlags() */ void QwtScaleWidget::setLabelRotation(double rotation) { d_data->scaleDraw->setLabelRotation(rotation); layoutScale(); } /*! Set a scale draw sd has to be created with new and will be deleted in ~QwtScaleWidget() or the next call of setScaleDraw(). \param sd ScaleDraw object \sa scaleDraw() */ void QwtScaleWidget::setScaleDraw(QwtScaleDraw *sd) { if ( sd == NULL || sd == d_data->scaleDraw ) return; if ( d_data->scaleDraw ) sd->setAlignment(d_data->scaleDraw->alignment()); delete d_data->scaleDraw; d_data->scaleDraw = sd; layoutScale(); } /*! scaleDraw of this scale \sa setScaleDraw(), QwtScaleDraw::setScaleDraw() */ const QwtScaleDraw *QwtScaleWidget::scaleDraw() const { return d_data->scaleDraw; } /*! scaleDraw of this scale \sa QwtScaleDraw::setScaleDraw() */ QwtScaleDraw *QwtScaleWidget::scaleDraw() { return d_data->scaleDraw; } /*! \return title \sa setTitle() */ QwtText QwtScaleWidget::title() const { return d_data->title; } /*! \return start border distance \sa setBorderDist() */ int QwtScaleWidget::startBorderDist() const { return d_data->borderDist[0]; } /*! \return end border distance \sa setBorderDist() */ int QwtScaleWidget::endBorderDist() const { return d_data->borderDist[1]; } /*! \return margin \sa setMargin() */ int QwtScaleWidget::margin() const { return d_data->margin; } /*! \return distance between scale and title \sa setMargin() */ int QwtScaleWidget::spacing() const { return d_data->spacing; } /*! \return Scale pen width \sa setPenWidth() */ int QwtScaleWidget::penWidth() const { return d_data->penWidth; } /*! \brief paintEvent */ void QwtScaleWidget::paintEvent(QPaintEvent *e) { const QRect &ur = e->rect(); if ( ur.isValid() ) { #if QT_VERSION < 0x040000 QwtPaintBuffer paintBuffer(this, ur); draw(paintBuffer.painter()); #else QPainter painter(this); draw(&painter); #endif } } /*! \brief draw the scale */ void QwtScaleWidget::draw(QPainter *painter) const { painter->save(); QPen scalePen = painter->pen(); scalePen.setWidth(d_data->penWidth); painter->setPen(scalePen); #if QT_VERSION < 0x040000 d_data->scaleDraw->draw(painter, colorGroup()); #else d_data->scaleDraw->draw(painter, palette()); #endif painter->restore(); if ( d_data->colorBar.isEnabled && d_data->colorBar.width > 0 && d_data->colorBar.interval.isValid() ) { drawColorBar(painter, colorBarRect(rect())); } QRect r = rect(); if ( d_data->scaleDraw->orientation() == Qt::Horizontal ) { r.setLeft(r.left() + d_data->borderDist[0]); r.setWidth(r.width() - d_data->borderDist[1]); } else { r.setTop(r.top() + d_data->borderDist[0]); r.setHeight(r.height() - d_data->borderDist[1]); } if ( !d_data->title.isEmpty() ) { QRect tr = r; switch(d_data->scaleDraw->alignment()) { case QwtScaleDraw::LeftScale: tr.setRight( r.right() - d_data->titleOffset ); break; case QwtScaleDraw::RightScale: tr.setLeft( r.left() + d_data->titleOffset ); break; case QwtScaleDraw::BottomScale: tr.setTop( r.top() + d_data->titleOffset ); break; case QwtScaleDraw::TopScale: default: tr.setBottom( r.bottom() - d_data->titleOffset ); break; } drawTitle(painter, d_data->scaleDraw->alignment(), tr); } } QRect QwtScaleWidget::colorBarRect(const QRect& rect) const { QRect cr = rect; if ( d_data->scaleDraw->orientation() == Qt::Horizontal ) { cr.setLeft(cr.left() + d_data->borderDist[0]); cr.setWidth(cr.width() - d_data->borderDist[1] + 1); } else { cr.setTop(cr.top() + d_data->borderDist[0]); cr.setHeight(cr.height() - d_data->borderDist[1] + 1); } switch(d_data->scaleDraw->alignment()) { case QwtScaleDraw::LeftScale: { cr.setLeft( cr.right() - d_data->margin - d_data->colorBar.width + 1 ); cr.setWidth(d_data->colorBar.width); break; } case QwtScaleDraw::RightScale: { cr.setLeft( cr.left() + d_data->margin ); cr.setWidth(d_data->colorBar.width); break; } case QwtScaleDraw::BottomScale: { cr.setTop( cr.top() + d_data->margin ); cr.setHeight(d_data->colorBar.width); break; } case QwtScaleDraw::TopScale: { cr.setTop( cr.bottom() - d_data->margin - d_data->colorBar.width + 1 ); cr.setHeight(d_data->colorBar.width); break; } } return cr; } /*! \brief resizeEvent */ void QwtScaleWidget::resizeEvent(QResizeEvent *) { layoutScale(false); } //! Recalculate the scale's geometry and layout based on // the current rect and fonts. // \param update_geometry notify the layout system and call update // to redraw the scale void QwtScaleWidget::layoutScale( bool update_geometry ) { int bd0, bd1; getBorderDistHint(bd0, bd1); if ( d_data->borderDist[0] > bd0 ) bd0 = d_data->borderDist[0]; if ( d_data->borderDist[1] > bd1 ) bd1 = d_data->borderDist[1]; int colorBarWidth = 0; if ( d_data->colorBar.isEnabled && d_data->colorBar.interval.isValid() ) colorBarWidth = d_data->colorBar.width + d_data->spacing; const QRect r = rect(); int x, y, length; if ( d_data->scaleDraw->orientation() == Qt::Vertical ) { y = r.top() + bd0; length = r.height() - (bd0 + bd1); if ( d_data->scaleDraw->alignment() == QwtScaleDraw::LeftScale ) x = r.right() - d_data->margin - colorBarWidth; else x = r.left() + d_data->margin + colorBarWidth; } else { x = r.left() + bd0; length = r.width() - (bd0 + bd1); if ( d_data->scaleDraw->alignment() == QwtScaleDraw::BottomScale ) y = r.top() + d_data->margin + colorBarWidth; else y = r.bottom() - d_data->margin - colorBarWidth; } d_data->scaleDraw->move(x, y); d_data->scaleDraw->setLength(length); d_data->titleOffset = d_data->margin + d_data->spacing + colorBarWidth + d_data->scaleDraw->extent(QPen(Qt::black, d_data->penWidth), font()); if ( update_geometry ) { updateGeometry(); update(); } } void QwtScaleWidget::drawColorBar(QPainter *painter, const QRect& rect) const { if ( !d_data->colorBar.interval.isValid() ) return; const QwtScaleDraw* sd = d_data->scaleDraw; QwtPainter::drawColorBar(painter, *d_data->colorBar.colorMap, d_data->colorBar.interval.normalized(), sd->map(), sd->orientation(), rect); } /*! Rotate and paint a title according to its position into a given rectangle. \param painter Painter \param align Alignment \param rect Bounding rectangle */ void QwtScaleWidget::drawTitle(QPainter *painter, QwtScaleDraw::Alignment align, const QRect &rect) const { QRect r; double angle; int flags = d_data->title.renderFlags() & ~(Qt::AlignTop | Qt::AlignBottom | Qt::AlignVCenter); switch(align) { case QwtScaleDraw::LeftScale: flags |= Qt::AlignTop; angle = -90.0; r.setRect(rect.left(), rect.bottom(), rect.height(), rect.width()); break; case QwtScaleDraw::RightScale: flags |= Qt::AlignTop; angle = 90.0; r.setRect(rect.right(), rect.top(), rect.height(), rect.width()); break; case QwtScaleDraw::TopScale: flags |= Qt::AlignTop; angle = 0.0; r = rect; break; case QwtScaleDraw::BottomScale: default: flags |= Qt::AlignBottom; angle = 0.0; r = rect; break; } painter->save(); painter->setFont(font()); #if QT_VERSION < 0x040000 painter->setPen(colorGroup().color(QColorGroup::Text)); #else painter->setPen(palette().color(QPalette::Text)); #endif const QwtMetricsMap metricsMap = QwtPainter::metricsMap(); QwtPainter::resetMetricsMap(); r = metricsMap.layoutToDevice(r); painter->translate(r.x(), r.y()); if (angle != 0.0) painter->rotate(angle); QwtText title = d_data->title; title.setRenderFlags(flags); title.draw(painter, QRect(0, 0, r.width(), r.height())); QwtPainter::setMetricsMap(metricsMap); // restore metrics map painter->restore(); } /*! \brief Notify a change of the scale This virtual function can be overloaded by derived classes. The default implementation updates the geometry and repaints the widget. */ void QwtScaleWidget::scaleChange() { layoutScale(); } /*! \return a size hint */ QSize QwtScaleWidget::sizeHint() const { return minimumSizeHint(); } /*! \return a minimum size hint */ QSize QwtScaleWidget::minimumSizeHint() const { const Qt::Orientation o = d_data->scaleDraw->orientation(); // Border Distance cannot be less than the scale borderDistHint // Note, the borderDistHint is already included in minHeight/minWidth int length = 0; int mbd1, mbd2; getBorderDistHint(mbd1, mbd2); length += qwtMax( 0, d_data->borderDist[0] - mbd1 ); length += qwtMax( 0, d_data->borderDist[1] - mbd2 ); length += d_data->scaleDraw->minLength( QPen(Qt::black, d_data->penWidth), font()); int dim = dimForLength(length, font()); if ( length < dim ) { // compensate for long titles length = dim; dim = dimForLength(length, font()); } QSize size(length + 2, dim); if ( o == Qt::Vertical ) size.transpose(); return size; } /*! \brief Find the height of the title for a given width. \param width Width \return height Height */ int QwtScaleWidget::titleHeightForWidth(int width) const { return d_data->title.heightForWidth(width, font()); } /*! \brief Find the minimum dimension for a given length. dim is the height, length the width seen in direction of the title. \param length width for horizontal, height for vertical scales \param scaleFont Font of the scale \return height for horizontal, width for vertical scales */ int QwtScaleWidget::dimForLength(int length, const QFont &scaleFont) const { int dim = d_data->margin; dim += d_data->scaleDraw->extent( QPen(Qt::black, d_data->penWidth), scaleFont); if ( !d_data->title.isEmpty() ) dim += titleHeightForWidth(length) + d_data->spacing; if ( d_data->colorBar.isEnabled && d_data->colorBar.interval.isValid() ) dim += d_data->colorBar.width + d_data->spacing; return dim; } /*! \brief Calculate a hint for the border distances. This member function calculates the distance of the scale's endpoints from the widget borders which is required for the mark labels to fit into the widget. The maximum of this distance an the minimum border distance is returned. \warning
  • The minimum border distance depends on the font.
\sa setMinBorderDist(), getMinBorderDist(), setBorderDist() */ void QwtScaleWidget::getBorderDistHint(int &start, int &end) const { d_data->scaleDraw->getBorderDistHint(font(), start, end); if ( start < d_data->minBorderDist[0] ) start = d_data->minBorderDist[0]; if ( end < d_data->minBorderDist[1] ) end = d_data->minBorderDist[1]; } /*! Set a minimum value for the distances of the scale's endpoints from the widget borders. This is useful to avoid that the scales are "jumping", when the tick labels or their positions change often. \param start Minimum for the start border \param end Minimum for the end border \sa getMinBorderDist(), getBorderDistHint() */ void QwtScaleWidget::setMinBorderDist(int start, int end) { d_data->minBorderDist[0] = start; d_data->minBorderDist[1] = end; } /*! Get the minimum value for the distances of the scale's endpoints from the widget borders. \sa setMinBorderDist(), getBorderDistHint() */ void QwtScaleWidget::getMinBorderDist(int &start, int &end) const { start = d_data->minBorderDist[0]; end = d_data->minBorderDist[1]; } #if QT_VERSION < 0x040000 /*! \brief Notify a change of the font This virtual function may be overloaded by derived widgets. The default implementation resizes the scale and repaints the widget. \param oldFont Previous font */ void QwtScaleWidget::fontChange(const QFont &oldFont) { QWidget::fontChange( oldFont ); layoutScale(); } #endif /*! \brief Assign a scale division The scale division determines where to set the tick marks. \param transformation Transformation, needed to translate between scale and pixal values \param scaleDiv Scale Division \sa For more information about scale divisions, see QwtScaleDiv. */ void QwtScaleWidget::setScaleDiv( QwtScaleTransformation *transformation, const QwtScaleDiv &scaleDiv) { QwtScaleDraw *sd = d_data->scaleDraw; if (sd->scaleDiv() != scaleDiv || sd->map().transformation()->type() != transformation->type() ) { sd->setTransformation(transformation); sd->setScaleDiv(scaleDiv); layoutScale(); emit scaleDivChanged(); } else delete transformation; } void QwtScaleWidget::setColorBarEnabled(bool on) { if ( on != d_data->colorBar.isEnabled ) { d_data->colorBar.isEnabled = on; layoutScale(); } } bool QwtScaleWidget::isColorBarEnabled() const { return d_data->colorBar.isEnabled; } void QwtScaleWidget::setColorBarWidth(int width) { if ( width != d_data->colorBar.width ) { d_data->colorBar.width = width; if ( isColorBarEnabled() ) layoutScale(); } } int QwtScaleWidget::colorBarWidth() const { return d_data->colorBar.width; } QwtDoubleInterval QwtScaleWidget::colorBarInterval() const { return d_data->colorBar.interval; } void QwtScaleWidget::setColorMap(const QwtDoubleInterval &interval, const QwtColorMap &colorMap) { d_data->colorBar.interval = interval; delete d_data->colorBar.colorMap; d_data->colorBar.colorMap = colorMap.copy(); if ( isColorBarEnabled() ) layoutScale(); } const QwtColorMap &QwtScaleWidget::colorMap() const { return *d_data->colorBar.colorMap; } qwt5-5.2.3/admin/0000755000175000017500000000000012052741244013050 5ustar gudjongudjonqwt5-5.2.3/admin/no-qt-keywords.sh0000755000175000017500000000050212052741122016302 0ustar gudjongudjon#! /bin/sh find src -name "qwt_*.h" | xargs grep -l 'signals:' | xargs sed -i "s/signals:/Q_SIGNALS:/" find src -name "qwt_*.h" | xargs grep -l 'slots:' | xargs sed -i "s/slots:/Q_SLOTS:/" find src -name "qwt_*.cpp" | xargs grep -l 'emit ' | xargs sed -i "s/emit /Q_EMIT /" echo "CONFIG += no_keywords" >> src/src.pro qwt5-5.2.3/README0000644000175000017500000000162212052741122012634 0ustar gudjongudjon The Qwt Widget Library ---------------------- Qwt is an extension to the libraries of the Qt Project. The Qwt library contains widgets and components which are primarily useful for technical and scientifical purposes. It includes a 2-D plotting widget, different kinds of sliders, and much more. Qwt is hosted at http://qwt.sf.net Installation ------------ Read INSTALL how to build and install Qwt. Copyright --------- Qwt Widget Library Copyright (C) 1997 Josef Wilgen Copyright (C) 2002 Uwe Rathmann Qwt is published under the Qwt License, Version 1.0. You should have received a copy of this licence in the file COPYING. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. qwt5-5.2.3/qwtconfig.pri0000644000175000017500000001022512052741127014475 0ustar gudjongudjon###################################################################### # Install paths ###################################################################### VER_MAJ = 5 VER_MIN = 2 VER_PAT = 3 VERSION = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT} unix { INSTALLBASE = /usr/local/qwt-$$VERSION } win32 { INSTALLBASE = C:/Qwt-$$VERSION } target.path = $$INSTALLBASE/lib headers.path = $$INSTALLBASE/include doc.path = $$INSTALLBASE/doc ###################################################################### # qmake internal options ###################################################################### CONFIG += qt # Also for Qtopia Core! CONFIG += warn_on CONFIG += thread CONFIG += silent ###################################################################### # release/debug mode # If you want to build both DEBUG_SUFFIX and RELEASE_SUFFIX # have to differ to avoid, that they overwrite each other. ###################################################################### VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt 3 CONFIG += release # release/debug } else { # Qt 4 win32 { # On Windows you can't mix release and debug libraries. # The designer is built in release mode. If you like to use it # you need a release version. For your own application development you # might need a debug version. # Enable debug_and_release + build_all if you want to build both. CONFIG += release # release/debug/debug_and_release #CONFIG += debug_and_release #CONFIG += build_all } else { CONFIG += release # release/debug } } ###################################################################### # If you want to have different names for the debug and release # versions you can add a suffix rule below. ###################################################################### DEBUG_SUFFIX = RELEASE_SUFFIX = win32 { DEBUG_SUFFIX = d } ###################################################################### # Build the static/shared libraries. # If QwtDll is enabled, a shared library is built, otherwise # it will be a static library. ###################################################################### CONFIG += QwtDll ###################################################################### # QwtPlot enables all classes, that are needed to use the QwtPlot # widget. ###################################################################### CONFIG += QwtPlot ###################################################################### # QwtWidgets enables all classes, that are needed to use the all other # widgets (sliders, dials, ...), beside QwtPlot. ###################################################################### CONFIG += QwtWidgets ###################################################################### # If you want to display svg imageson the plot canvas, enable the # line below. Note that Qwt needs the svg+xml, when enabling # QwtSVGItem. ###################################################################### #CONFIG += QwtSVGItem ###################################################################### # You can use the MathML renderer of the Qt solutions package to # enable MathML support in Qwt. # If you want this, copy # qtmmlwidget.h + qtmmlwidget.cpp to # textengines/mathml and enable # the line below. ###################################################################### #CONFIG += QwtMathML ###################################################################### # If you want to build the Qwt designer plugin, # enable the line below. # Otherwise you have to build it from the designer directory. ###################################################################### CONFIG += QwtDesigner ###################################################################### # If you want to auto build the examples, enable the line below # Otherwise you have to build them from the examples directory. ###################################################################### #CONFIG += QwtExamples qwt5-5.2.3/INSTALL0000644000175000017500000001111212052741121012777 0ustar gudjongudjonIntroduction ============ Qwt uses qmake to build all its components and examples. qmake is part of a Qt distribution. qmake reads project files, that contain the options and rules how to build a certain project. A project file ends with the suffix "*.pro". Files that end with the suffix "*.pri" are included by the project files and contain definitions, that are common for several project files. qwtconfig.pri is read by all project files of the Qwt package. So the first step is to edit qwtconfig.pri to adjust it to your needs. MathML Extension ================ Qwt/Qt4 supports the MathML render engine from the Qt solutions package, that is only available with a commercial Qt license. You need a release of qtmmlwidget >= 2.1. Copy the files qtmmlwidget.[cpp|h] to textengines/mathml. Documentation ========================== Qwt includes a class documentation, that is available in various formats: - Html files - PDF document - Qt Compressed Help (*.qch ) for the Qt assistant or creator. You can load it "Edit Preferences" -> "Documentation" -> "Add..." - Man pages ( UNIX only ) A) Unix Qt3/Qt4 ========================== qmake qwt.pro make make install If you have installed a shared library it's path has to be known to the run-time linker of your operating system. On Linux systems read "man ldconfig" ( or google for it ). Another option is to use the LD_LIBRARY_PATH (on some systems LIBPATH is used instead, on MacOSX it is called DYLD_LIBRARY_PATH) environment variable. If you only want to check the Qwt examples without installing something, you can set the LD_LIBRARY_PATH to the lib directory of your local build. If you didn't enable autobuilding of the examples in qwtconfig.pri you have to build the examples this way: cd examples qmake examples.pro make B) Win32/MSVC Qt3/Qt4 ===================== Please read the qmake documentation how to convert your *.pro files into your development environment. F.e MSVC with nmake: qmake qwt.pro nmake nmake install If you didn't enable autobuilding of the examples in qwtconfig.pri you have to build the examples this way: cd examples qmake examples.pro nmake admin/msvc-qmake.bat helps users of Visual Studio users to generate makefiles or project files (.dsp for MSVC-6.0 or vcproj for MSVC.NET) for Qwt. To generate makefiles, type: "admin\msvc-qmake" To generate project files, type: "admin\msvc-qmake vc" When you have built a Qwt DLL you need to add the following define to your compiler flags: QWT_DLL. Windows doesn't like mixing of debug and release binaries. Most of the problems with using the Qwt designer plugin are because of trying to load a Qwt debug library into a designer release executable. C) Win32/MinGW Qt4 ================== C1) Windows Shell Start a Windows Shell, where Qt4 is initialized. ( F.e. with "Programs->Qt by Trolltech ...->Qt 4.x.x Command Prompt" ). qmake qwt.pro make make install If you didn't enable autobuilding of the examples in qwtconfig.pri you have to build the examples this way: cd examples qmake examples.pro make C2) MSYS Shell Qt >= 4.3.0 Support for the MSYS Shell has been improved in Qt 4.3.0. Now building Qwt from the MSYS Shell works exactly like in UNIX or in the Windows Shell - or at least it should: because of a bug in Qt 4.3.0 you always have to do a "qmake -r". C3) MSYS Shell Qt < 4.3.0 For Qt < 4.3.0 you have to set the MINGW_IN_SHELL variable. make will run into errors with the subdirs target, that can be ignored (make -i). export MINGW_IN_SHELL=1; qmake make -i make -i install If you didn't enable autobuilding of the examples in qwtconfig.pri you have to build the examples this way: cd examples qmake examples.pro make -i C1-C3) When you have built a Qwt DLL you need to add QWT_DLL to your compiler flags. If you are using qmake for your own builds this done by adding the following line to your profile: "DEFINES += QWT_DLL". Windows doesn't like mixing of debug and release binaries. Most of the problems with using the Qwt designer plugin are because of trying to load a Qwt debug library into a designer release executable. D) MacOSX Well, the Mac is only another Unix system. So read the instructions in A). In the recent Qt4 releases the default target of qmake is to generate XCode project files instead of makefiles. So you might need to do the following: qmake -spec macx-g++ qwt.pro ... E) Qt Embedded -------- I only tested Qwt with Qt Embedded in qvfb (Virtual Framebuffer Devivce) Emulator on my Linux box. To build Qwt for the emulator was as simple as for a regular Unix build. F) Symbian -------- I never tried this platform myself. Good luck ! qwt5-5.2.3/designer/0000755000175000017500000000000012052741127013560 5ustar gudjongudjonqwt5-5.2.3/designer/designer.pro0000644000175000017500000000634612052741127016113 0ustar gudjongudjon# -*- mode: sh -*- ########################### # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ############################################## QWT_ROOT = .. include ( $${QWT_ROOT}/qwtconfig.pri ) contains(CONFIG, QwtDesigner) { CONFIG += warn_on SUFFIX_STR = VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt 3 debug { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } else { CONFIG(debug, debug|release) { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } TEMPLATE = lib MOC_DIR = moc OBJECTS_DIR = obj$${SUFFIX_STR} DESTDIR = plugins/designer INCLUDEPATH += $${QWT_ROOT}/src DEPENDPATH += $${QWT_ROOT}/src LIBNAME = qwt$${SUFFIX_STR} contains(CONFIG, QwtDll) { win32 { DEFINES += QT_DLL QWT_DLL LIBNAME = $${LIBNAME}$${VER_MAJ} } } !contains(CONFIG, QwtPlot) { DEFINES += NO_QWT_PLOT } !contains(CONFIG, QwtWidgets) { DEFINES += NO_QWT_WIDGETS } unix:LIBS += -L$${QWT_ROOT}/lib -l$${LIBNAME} win32-msvc:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-msvc.net:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-msvc2002:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-msvc2003:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-msvc2005:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-msvc2008:LIBS += $${QWT_ROOT}/lib/$${LIBNAME}.lib win32-g++:LIBS += -L$${QWT_ROOT}/lib -l$${LIBNAME} # isEmpty(QT_VERSION) does not work with Qt-4.1.0/MinGW VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt 3 TARGET = qwtplugin$${SUFFIX_STR} CONFIG += qt plugin UI_DIR = ui HEADERS += qwtplugin.h SOURCES += qwtplugin.cpp target.path = $(QTDIR)/plugins/designer INSTALLS += target IMAGES += \ pixmaps/qwtplot.png \ pixmaps/qwtanalogclock.png \ pixmaps/qwtcounter.png \ pixmaps/qwtcompass.png \ pixmaps/qwtdial.png \ pixmaps/qwtknob.png \ pixmaps/qwtscale.png \ pixmaps/qwtslider.png \ pixmaps/qwtthermo.png \ pixmaps/qwtwheel.png \ pixmaps/qwtwidget.png } else { # Qt 4 TARGET = qwt_designer_plugin$${SUFFIX_STR} CONFIG += qt designer plugin RCC_DIR = resources HEADERS += \ qwt_designer_plugin.h SOURCES += \ qwt_designer_plugin.cpp contains(CONFIG, QwtPlot) { HEADERS += \ qwt_designer_plotdialog.h SOURCES += \ qwt_designer_plotdialog.cpp } RESOURCES += \ qwt_designer_plugin.qrc target.path = $$[QT_INSTALL_PLUGINS]/designer INSTALLS += target } } else { TEMPLATE = subdirs # do nothing } qwt5-5.2.3/designer/qwt_designer_plotdialog.h0000644000175000017500000000143412052741123020640 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DESIGNER_PLOTDIALOG_H #define QWT_DESIGNER_PLOTDIALOG_H #include #if QT_VERSION < 0x040000 #ifdef __GNUC__ #error This code is Qt4 only #endif #endif #include namespace QwtDesignerPlugin { class PlotDialog: public QDialog { Q_OBJECT public: PlotDialog(const QString &properties, QWidget *parent = NULL); signals: void edited(const QString&); }; } #endif qwt5-5.2.3/designer/qwt_designer_plotdialog.cpp0000644000175000017500000000247112052741126021200 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #include #include #include #include #include "qwt_designer_plotdialog.h" using namespace QwtDesignerPlugin; PlotDialog::PlotDialog(const QString &properties, QWidget *parent): QDialog(parent) { setWindowTitle("Plot Properties"); QLineEdit *lineEdit = new QLineEdit(properties); connect(lineEdit, SIGNAL(textChanged(const QString &)), SIGNAL(edited(const QString &))); QTabWidget *tabWidget = new QTabWidget(this); tabWidget->addTab(lineEdit, "General"); QPushButton *closeButton = new QPushButton("Close"); connect(closeButton, SIGNAL(clicked()), this, SLOT(accept())); QHBoxLayout *buttonLayout = new QHBoxLayout; buttonLayout->addStretch(1); buttonLayout->addWidget(closeButton); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(tabWidget); mainLayout->addLayout(buttonLayout); setLayout(mainLayout); } qwt5-5.2.3/designer/pixmaps/0000755000175000017500000000000012052741115015236 5ustar gudjongudjonqwt5-5.2.3/designer/pixmaps/qwtscale.png0000644000175000017500000000056512052741115017575 0ustar gudjongudjon‰PNG  IHDRÄ´l;+tEXtCreation TimeSo 27 Okt 2002 16:13:22 +0100Ś:x{tIMEŇ #«Ëuß pHYs đ đB¬4gAMA±Ź üaÍIDATxÚcdŔtô¦T)oŇl@ü#Ż\Ęy‚.É€ôń\öńZ bŇ şäúĂ7_Ô\z™hČe2Pď˘5 f&Ű`hÄ<))»sdÇŽČRÜ@ĚI‰‹9€+ĐPOt)Hä‘íb¬8#b°ç>Ę"ŹwîŤ<8 NÎëéűrdÁ‚ČRx#Ź‘s6)Häy-żDŽ‹‡Päá‰8 (ňpĺ: (çá«ó€Řc“§`J/O ůIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtwidget.png0000644000175000017500000000206612052741115017767 0ustar gudjongudjon‰PNG  IHDRójś tIMEŇ 2±đNÇ pHYs  ŇÝ~ügAMA±Ź üaPLTE÷÷÷˙˙˙!!˙))˙11˙99˙BB˙RR˙ZZ˙cc˙kk˙ss˙{{˙„„˙ŚŚ˙””˙śś˙ĄĄ˙­­˙µµ˙˝˝˙ĆĆ˙ÎÎ˙ÖÖ˙ŢŢ˙çç˙ďď˙÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙!jő tRNS˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙\\íŤIDATxÚ˝Ý Ă …ŤĐúSł¶®[Ôóţoą¸«môr[äđA89Q¸,őSܢѡ}â渶™ß C­“ĚŞ_` Ęä. Đ”a "Š:ÍŁl (­÷ Ą«`ż[Ŕę±3’Ëin•ť\ödăa*ř.¸8ăÓ^ÇŤě Ühéq¨”z‘’É—˙~đ řye4šÓT|IEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtanalogclock.png0000644000175000017500000000064612052741115020763 0ustar gudjongudjon‰PNG  IHDRKÖűlmIDATxśťT1ŽÂ@ 4KX±ŹŘ2•…D‹¶ŁGâTH4<ńZ¤Hô‘"^ŕŠÎe^Ŕ®đťe6ËÝTkíÎxě803<ď}Á^Ĺ ,KxE‘ńď÷{a±XčSD”4MÓčK+ä,˙v»-—ËÓéÔM)Ą”R۶jöE‚™Ż×ëjµzKV bWĹIp>ź×ëµđ‰•–5KěX•í÷űÝn÷)żČ‰®•kšFěŮ{żŮllć·Čě‡ďB.—Ëv»%˘ĚQ=źO(Ľ÷ZB·ě~;óůś™Ýt:BëËFđ(BÚ‚žB˛Ď¬aUUEa` ,”ÂĚĹd2řúÜl6«ëúO´ ™Năń8»űŐ—Ś†„ÄuŠ!"ýÍF´m›Rę÷o»(‡˛,ü쏣.[‘ýär¶|Đ}ŃUů„Śvk© "ŹÇ·äŞŞ2>H/zRuŃ]+_ ľýpcIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtdial.png0000644000175000017500000000066112052741115017414 0ustar gudjongudjon‰PNG  IHDRKÖűlxIDATxśť”1ŽÂ0EgcŤ+P†¤¦âô\‚žp´‘¸A*šp„¤ !!QPP#AP¤-~Ö Éf÷W–=˙y<ÉL/Ë2:ÔŞ śťŻŹţ<Ď™Ůăyž ŤF‘ žÍgišj­Ť1óůÜąm»ÝZ¤Tř“$ń}±XHg†ň±IОţőz]üaZŹS¬étJDçó٢(*Šbą\:¶D°,ס(ʲ\­VÔ*™("˘8ŽŤ1Nţ-BÖúz˝Vc RpžÝžÎd2ÁŢ)z–eIsjĚ\!|ßďry]0*"‡Ôą‚A…ĐZSs!fźö ă/µh׫ĚĽŮlţx}‘ńxŚ”ţę?ŹdpŤŘQeYbˇĐm輎”Űíö|>÷ű=A č§g;R.—Ëý~?ťNÖčŽô˝7´ŰíYkýx<¨>r$E‚ Ďó™™űý>väŕ{›ťőŃZW=ćńŧ6_ćcIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtwheel.png0000644000175000017500000000045212052741115017605 0ustar gudjongudjon‰PNG  IHDRójś *tEXtCreation TimeMi 9 Okt 2002 22:53:00 +0100ŠYOtIMEŇ 8Ľ+«· pHYsĂĂÇo¨dgAMA±Ź üa'PLTEűłűűűuuu×××áááňňňęęęĆĆĆ˝˝˝łłłˇˇˇ†††}}}«ˇ|]tRNS@ćŘfCIDATxÚÍŹ7 ĂČŃË˙ßKLa ś)JÝ@ =0óć.+kmÖ5ů“ —ĎňřµŐŤóyĐóŕů!Ő‹®AĂ2ÉIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtplot.png0000644000175000017500000000103712052741115017457 0ustar gudjongudjon‰PNG  IHDRÄ´l;*tEXtCreation TimeMi 9 Okt 2002 21:24:30 +0100rű*¨tIMEŇ !Abxó pHYs đ đB¬4gAMA±Ź üaxIDATxÚc`tb\˙©e#6CoĽúĆHžqŔ4(‚âŚ( ó‚hŞąh«„ÔF± ,Â"|Š ÂĹ".9‹M^ÉAŞ{š»ş¶=Đ‚y@qAŠ‚â‚–¤÷9%źovoű˙ýű÷˙.žűASâű ń,Š\ĚČΞŔˇŞÉÄi`ćł«j0đű‡˛201e]ÍG–Á Čú˙ë— Ż‡ /Ô&Fŕ(ć˙?¨0qó¸’e0ł P# ‹Ż“;Š8»ş·Ť#3ł p.Đr6˘ )>+Íáó˙÷ď~żPf÷Q‚‡•ŤA$˝€•‘‘ŃŚUZ¶Ýp&,2ž•dł%)&Îĺ@C…Eó*ŘAŢGś†¦?„’ł˙}ů\Ϧ¨ŇÔË “Ă–Đ™ŮŘMYĄdß „Çőóyř=eâáů…ĂcůÜ}?ţ¸|^çďűwOőNÝú‹U%…H/˛~FtIr FÔ(Äpşxč>tşaş® !J©R b·Z-¬•´Â!Ąô^˛išív›R:Ľn@„Pš¦…ĺr3ĆŇ4 “ÉÄ0Ś;ůź>µţţ'ÉçÁç˘lş®»®;üw€ëş®i!¤V«Ý“ ŹÇá‹ňőë,˶qBeYÜák ™Ičt:ă(ŠľYŕşßýńgüüą˙óOŰ Ó4Ç‚ €bUmŰŽăxmA?üí÷鯿,~üAa|Oť”˛hą¨ŠKz)‚ueŞtÝWŻ˘ŁľűěŮ®;RJMÓŠgnóétŠ !˯˲µ\.«oßRĎľ|ą›źeYĺryMÁůx4¦$ŽăŃh Ęvyřř±˙ô©Ú1XJ†a†Á ×ëíµönonł,Ł rµúş˛,Ë4M„;:ň|źfBH×uBH…~Îą¦iBĆX™•ĎßźĂćg_­VŤzŮ @ĄRQJĄięűľaĄRił2¦i¶š­łwgĹŕÖÓVąšÍf"­‘BĄT±˝rwµĆŮ»3!D|kXJ9Ť+•JŁŐŔ€E*”R›}Ăs›sÎoonĎßźo®,Ř˝;=Ď›ĎçŐjµ^Żs›J(!$Š˘étúńĂÇ{› ˙ëÖąý5j@ŁIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtcounter.png0000644000175000017500000000200212052741115020151 0ustar gudjongudjon‰PNG  IHDRÄ´l;tIMEŇ  -*jĆ pHYs  ŇÝ~ügAMA±Ź üa‘IDATxÚ­•[hYĆż\mjŇ4i.˝Ĺ4IˇFĽSDĹŰRʲ "ú$Ë®>m|e—…EAEÄŰ Š˘ ŠÝATvŰ.·ŐÖZ5±5mĹqš›i&é43Ç9'Ú&ŠšŠL8'śüć;ß˙źsT(ąe=IňľDf»É®[Şws-ýhŘ´Ť ßëBK­–&ŞŚsgŤN¤!©µ¸Ä/" ËZ0|ń„*˙†ĆE¤u‰Ť5řý~¸\.L¦’ jµ„čőzź˘}Ď Ô§ŇŇíS§ÚÖÖ†ććfŤFčtşĎB%™(n'‘spVĚA €ÓéĶ?5ÍÔbš Ż×Ë ‹Ą$(UBq®3‚í§x6Šl6‹ů>(“eL3­ŻŻgNKuOO‚Oeq˙ů8ţíIÁfÔcĎ;S<ŞR·_čöĆ/’yřŃŽ>xkm°VšóŮ/žÂÉ;CMˇý|/úF“ołÍb,‘Á3^€$Éŕ&¦đ04ŚX<ĄšĹŕ_Ż>ÄÎËý@ĎwŹ`ăńnÜä±rďV°Swźăz?‡żűÂ@<‚D"‰“×ţÁŁp„µ…€Ă[–â‚y_[.¬h¬‚ŰVŽ…»o˛.čAtŕ?8^ A 7 čËŹE°\ ţ”(tíľ»Jˇő¬µm^p¨ ±č|Hąś˛BéeĄFukqń>–keůLAZĺÁʧ‚x™áźç@]e2™LŃo ý×|\}Éž?K‹ččÇË×YđĘó:›ĂSnš4Źc[—č:ĚIdznűĄăGÚŘřç3÷°ĚmA…A«DˇGKa$A[MD˙X©ˇřu<^D€,wEw(Šßż_ŔZŠuÉw~ľbăĺ+"1ť»Ö°śżi2áńX Ýá(á˙ać‚řv±†·V‹·.®FkÁĽ}}ăLľ«=Óă9:-|5X :É(4‰,Ú\µŐ¨v*ŽUębÇĄJĄŠn{vl›6J•€6ŕkPć6]wLĎÓśŇ2’$AŁŃ”/ÓëĐTW…#`5ÂăvŁ®¶#Żř<žüńTšť©˘(ćŰĄD×§G¶ŻĂhÄ[E9ěv;n{Řm’—rĐ˙¶˙ ™­dY&‚ ŽăŘsöĘ5BYÓo§Wýââ_7ČÇOf ďxD.t\g zq°nďk^¦oY卼IEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtthermo.png0000644000175000017500000000110412052741115017772 0ustar gudjongudjon‰PNG  IHDR ”s*tEXtCreation TimeMi 9 Okt 2002 23:03:11 +0100LE1’tIMEŇ Ž_1 pHYsttk$łÖgAMA±Ź üaťIDATxÚŤSŮjÂPÍćR"bDQ|ĐD˘âw´Źýd_„V+B«"(¦Z—¨‘şŇŁW4Ęmé„™›™3çÎLŘrąĚüžjµ*IŇňMÓâńřb±Ŕůn·ëőzą\Îăńpđ9Ž[­Vűý^„Ůl†“ŃhÔl6+•J$QUő̇ Ľ×'„Ăaآ(¶Z-ä_ę-źĎw8Ŕ‡Bä4Ť˘ú˝>Ů–eůýţÉdR(ęőúÝ=ÎĚ(¶Űm(‚[*•Čy§c-—›+_&“qg‡CÇaŢ?ä×—7]/"÷ĚgF»Ý®Őj¶m}ßkĆř|`9ţ¦n,‹eYpŐ—ÍfEńz˝0ŕ˘ŰćtJąŻr‚ű,Ë”¸ńx }dnÉdr0Đ뚦 }čöfsěB,Łě ëz:ťFF {Ŕş†vĺ›Ďçč.‹é‘ľđOÚv™ťŹ‹‰}t>,bżß‡č“Dćé1¨©Ď©Tжżnâđ—-wëCŢ? ĆÍ˝őIEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtslider.png0000644000175000017500000000070412052741115017763 0ustar gudjongudjon‰PNG  IHDRÄ´l;tIMEŇ  0fĚ…  pHYs  ŇÝ~ügAMA±Ź üaSIDATxÚc`ĂüGuKşţ“Şź źä§oźŽ\>fűT’d8)Š…Á,0ŁŰ˙˙ ˙!v1b*<}í$#;îŕ`bfŕUdřşâ*#Ü`& ˇ˙™ř…ŘŘyа1iC¦220±°1ĽřđA˘*á˙‹¶Ś`˙122‰Ş2Z§0č*j-gÁĐĘ-¬ĚԌݱ@‡Ľ˙őźáîĹ ’" Ëa.ćSfx÷óñł‹ż3°ł°20xŮŁhţúé)Ăí«k°ĚÉÎÁ ,.ËŕŕČ "*4¸ bđו×%*ăţKüűÎ ! ĚŔÎʆˇ™ť•ťABP«Á@9a~iI%'mFHŕŕ ŚJÇ—î^bŘ}é8ĂąkǶ´­Ç©#xUH* }:FiS+(2oˇ—¤„ń(€ąđ`YzŮŘ IEND®B`‚qwt5-5.2.3/designer/pixmaps/qwtknob.png0000644000175000017500000000144712052741115017437 0ustar gudjongudjon‰PNG  IHDRKÖűl*tEXtCreation TimeMi 9 Okt 2002 23:12:07 +0100Ís°ČtIMEŇ  @3…_ pHYsĂĂÇo¨dgAMA±Ź üa€IDATxÚ­TkkÓPnÓ[Ö&ݲ^ŇvuuĆŞ“µ›–!ţařAđŹüÂD𳂸1ŃŹ~ĐŤ*ëlł®ÝL·^פÍeMşf©oŤ {[•ůä%śóś÷=<ďsN˘ßřô^w1 ¬»©}š–ĺş̇cŘźünzO®Én·‹$]T¬ĽxĹ2lę$?~Xgfzj‚t»:UśŞŞŇPšMEQ›Íf6™oŢŠd3©ł$Řč€ćŹĄşÁ€¸\NŤ¬É2Ľ­(jxüh™ăřç+/%ą•QČ×ćNOęŠŇhS«×»Š˘‚I–JĹŁ×oŢnĹâˇůąÖˇ2,3ś±đX<á&˝˛\ëî\VU],¶m41;63s%0î˙ÝČôä$„–§± Áj…s8ÚŽ0÷y<0đ’dď«U.3ĄbE­P˙äé3^ŕĎ–ŞŹ ­„Ž’¶-Ŕˇ…p(Ýqş?Ů|¸ü`âr@[R›Í}úPřĄĄĂTúŢ °˘ˇ4ľnn  †Űˇň—YŐô^ĆďkťĄmh˘Ż ĂÚql!tőřXJPiŔÔëőKGĐŕ€«őnmýţ˝»¤÷Oęó…B6›EðĹp¨‡ j'ŐŻKA$;µËqBoś 㸮?ŔťĆ < µ©j™ťźŮůő-Ůz˝Ĺb†8ĎÎĹŘâ'%5"šRËŮIEND®B`‚qwt5-5.2.3/designer/qwt_designer_plugin.h0000644000175000017500000001240112052741123017774 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_DESIGNER_PLUGIN_H #define QWT_DESIGNER_PLUGIN_H #include #if QT_VERSION < 0x040000 #ifdef __GNUC__ #error This code is Qt4 only #endif #endif #include #include #include namespace QwtDesignerPlugin { class CustomWidgetInterface: public QObject, public QDesignerCustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: CustomWidgetInterface(QObject *parent); virtual bool isContainer() const; virtual bool isInitialized() const; virtual QIcon icon() const; virtual QString codeTemplate() const; virtual QString domXml() const; virtual QString group() const; virtual QString includeFile() const; virtual QString name() const; virtual QString toolTip() const; virtual QString whatsThis() const; virtual void initialize(QDesignerFormEditorInterface *); protected: QString d_name; QString d_include; QString d_toolTip; QString d_whatsThis; QString d_domXml; QString d_codeTemplate; QIcon d_icon; private: bool d_isInitialized; }; class CustomWidgetCollectionInterface: public QObject, public QDesignerCustomWidgetCollectionInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) public: CustomWidgetCollectionInterface(QObject *parent = NULL); virtual QList customWidgets() const; private: QList d_plugins; }; #ifndef NO_QWT_PLOT class PlotInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: PlotInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class AnalogClockInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: AnalogClockInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class CompassInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: CompassInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class CounterInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: CounterInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class DialInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: DialInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class KnobInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: KnobInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_PLOT class ScaleWidgetInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: ScaleWidgetInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class SliderInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: SliderInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif class TextLabelInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: TextLabelInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #ifndef NO_QWT_WIDGETS class ThermoInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: ThermoInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif #ifndef NO_QWT_WIDGETS class WheelInterface: public CustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: WheelInterface(QObject *parent); virtual QWidget *createWidget(QWidget *parent); }; #endif class TaskMenuFactory: public QExtensionFactory { Q_OBJECT public: TaskMenuFactory(QExtensionManager *parent = 0); protected: QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const; }; class TaskMenuExtension: public QObject, public QDesignerTaskMenuExtension { Q_OBJECT Q_INTERFACES(QDesignerTaskMenuExtension) public: TaskMenuExtension(QWidget *widget, QObject *parent); QAction *preferredEditAction() const; QList taskActions() const; private slots: void editProperties(); void applyProperties(const QString &); private: QAction *d_editAction; QWidget *d_widget; }; }; #endif qwt5-5.2.3/designer/qwtplugin.h0000644000175000017500000000210212052741123015752 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLUGIN_H #define QWT_PLUGIN_H #include #if QT_VERSION >= 0x040000 #ifdef __GNUC__ #error This code is Qt3 only #endif This code is Qt3 only #endif #include class QT_WIDGET_PLUGIN_EXPORT QwtPlugin: public QWidgetPlugin { public: QwtPlugin(); QStringList keys() const; QWidget* create( const QString &classname, QWidget* parent = 0, const char* name = 0 ); QString group( const QString& ) const; QIconSet iconSet( const QString& ) const; QString includeFile( const QString& ) const; QString toolTip( const QString& ) const; QString whatsThis( const QString& ) const; bool isContainer( const QString& ) const; }; #endif qwt5-5.2.3/designer/qwt_designer_plugin.qrc0000644000175000017500000000104212052741115020332 0ustar gudjongudjon pixmaps/qwtplot.png pixmaps/qwtanalogclock.png pixmaps/qwtcounter.png pixmaps/qwtcompass.png pixmaps/qwtdial.png pixmaps/qwtknob.png pixmaps/qwtscale.png pixmaps/qwtslider.png pixmaps/qwtthermo.png pixmaps/qwtwheel.png pixmaps/qwtwidget.png qwt5-5.2.3/designer/qwt_designer_plugin.cpp0000644000175000017500000002757412052741126020353 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #if defined(_MSC_VER) /* MSVC Compiler */ #pragma warning ( disable : 4786 ) #endif #include #include #include #include #include #include #include #include #include "qwt_designer_plugin.h" #ifndef NO_QWT_PLOT #include "qwt_designer_plotdialog.h" #include "qwt_plot.h" #include "qwt_scale_widget.h" #endif #ifndef NO_QWT_WIDGETS #include "qwt_counter.h" #include "qwt_wheel.h" #include "qwt_thermo.h" #include "qwt_knob.h" #include "qwt_slider.h" #include "qwt_analog_clock.h" #include "qwt_compass.h" #endif #include "qwt_text_label.h" using namespace QwtDesignerPlugin; CustomWidgetInterface::CustomWidgetInterface(QObject *parent): QObject(parent), d_isInitialized(false) { } bool CustomWidgetInterface::isContainer() const { return false; } bool CustomWidgetInterface::isInitialized() const { return d_isInitialized; } QIcon CustomWidgetInterface::icon() const { return d_icon; } QString CustomWidgetInterface::codeTemplate() const { return d_codeTemplate; } QString CustomWidgetInterface::domXml() const { return d_domXml; } QString CustomWidgetInterface::group() const { return "Qwt Widgets"; } QString CustomWidgetInterface::includeFile() const { return d_include; } QString CustomWidgetInterface::name() const { return d_name; } QString CustomWidgetInterface::toolTip() const { return d_toolTip; } QString CustomWidgetInterface::whatsThis() const { return d_whatsThis; } void CustomWidgetInterface::initialize( QDesignerFormEditorInterface *formEditor) { if ( d_isInitialized ) return; QExtensionManager *manager = formEditor->extensionManager(); if ( manager ) { manager->registerExtensions(new TaskMenuFactory(manager), Q_TYPEID(QDesignerTaskMenuExtension)); } d_isInitialized = true; } #ifndef NO_QWT_PLOT PlotInterface::PlotInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtPlot"; d_include = "qwt_plot.h"; d_icon = QPixmap(":/pixmaps/qwtplot.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 400\n" " 200\n" " \n" " \n" "\n"; } QWidget *PlotInterface::createWidget(QWidget *parent) { return new QwtPlot(parent); } #endif #ifndef NO_QWT_WIDGETS AnalogClockInterface::AnalogClockInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtAnalogClock"; d_include = "qwt_analog_clock.h"; d_icon = QPixmap(":/pixmaps/qwtanalogclock.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 200\n" " 200\n" " \n" " \n" " \n" " 4\n" " \n" "\n"; } QWidget *AnalogClockInterface::createWidget(QWidget *parent) { return new QwtAnalogClock(parent); } #endif #ifndef NO_QWT_WIDGETS CompassInterface::CompassInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtCompass"; d_include = "qwt_compass.h"; d_icon = QPixmap(":/pixmaps/qwtcompass.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 200\n" " 200\n" " \n" " \n" " \n" " 4\n" " \n" "\n"; } QWidget *CompassInterface::createWidget(QWidget *parent) { return new QwtCompass(parent); } #endif #ifndef NO_QWT_WIDGETS CounterInterface::CounterInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtCounter"; d_include = "qwt_counter.h"; d_icon = QPixmap(":/pixmaps/qwtcounter.png"); d_domXml = "\n" "\n"; } QWidget *CounterInterface::createWidget(QWidget *parent) { return new QwtCounter(parent); } #endif #ifndef NO_QWT_WIDGETS DialInterface::DialInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtDial"; d_include = "qwt_dial.h"; d_icon = QPixmap(":/pixmaps/qwtdial.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 200\n" " 200\n" " \n" " \n" " \n" " 4\n" " \n" "\n"; } QWidget *DialInterface::createWidget(QWidget *parent) { return new QwtDial(parent); } #endif #ifndef NO_QWT_WIDGETS KnobInterface::KnobInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtKnob"; d_include = "qwt_knob.h"; d_icon = QPixmap(":/pixmaps/qwtknob.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 100\n" " 100\n" " \n" " \n" "\n"; } QWidget *KnobInterface::createWidget(QWidget *parent) { return new QwtKnob(parent); } #endif #ifndef NO_QWT_PLOT ScaleWidgetInterface::ScaleWidgetInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtScaleWidget"; d_include = "qwt_scale_widget.h"; d_icon = QPixmap(":/pixmaps/qwtscale.png"); d_domXml = "\n" "\n"; } QWidget *ScaleWidgetInterface::createWidget(QWidget *parent) { return new QwtScaleWidget(QwtScaleDraw::LeftScale, parent); } #endif #ifndef NO_QWT_WIDGETS SliderInterface::SliderInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtSlider"; d_include = "qwt_slider.h"; d_icon = QPixmap(":/pixmaps/qwtslider.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 200\n" " 60\n" " \n" " \n" "\n"; } QWidget *SliderInterface::createWidget(QWidget *parent) { QwtSlider *slider = new QwtSlider(parent); #if 0 slider->setScalePosition(QwtSlider::Bottom); slider->setRange(0.0, 10.0, 1.0, 0); slider->setValue(3.0); #endif return slider; } #endif TextLabelInterface::TextLabelInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtTextLabel"; d_include = "qwt_text_label.h"; d_icon = QPixmap(":/pixmaps/qwtwidget.png"); d_domXml = "\n" " \n" " \n" " 0\n" " 0\n" " 100\n" " 20\n" " \n" " \n" "\n"; } QWidget *TextLabelInterface::createWidget(QWidget *parent) { return new QwtTextLabel(parent); } #ifndef NO_QWT_WIDGETS ThermoInterface::ThermoInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtThermo"; d_include = "qwt_thermo.h"; d_icon = QPixmap(":/pixmaps/qwtthermo.png"); d_domXml = "\n" "\n"; } QWidget *ThermoInterface::createWidget(QWidget *parent) { return new QwtThermo(parent); } #endif #ifndef NO_QWT_WIDGETS WheelInterface::WheelInterface(QObject *parent): CustomWidgetInterface(parent) { d_name = "QwtWheel"; d_include = "qwt_wheel.h"; d_icon = QPixmap(":/pixmaps/qwtwheel.png"); d_domXml = "\n" "\n"; } QWidget *WheelInterface::createWidget(QWidget *parent) { return new QwtWheel(parent); } #endif CustomWidgetCollectionInterface::CustomWidgetCollectionInterface( QObject *parent): QObject(parent) { #ifndef NO_QWT_PLOT d_plugins.append(new PlotInterface(this)); d_plugins.append(new ScaleWidgetInterface(this)); #endif #ifndef NO_QWT_WIDGETS d_plugins.append(new AnalogClockInterface(this)); d_plugins.append(new CompassInterface(this)); d_plugins.append(new CounterInterface(this)); d_plugins.append(new DialInterface(this)); d_plugins.append(new KnobInterface(this)); d_plugins.append(new SliderInterface(this)); d_plugins.append(new ThermoInterface(this)); d_plugins.append(new WheelInterface(this)); #endif d_plugins.append(new TextLabelInterface(this)); } QList CustomWidgetCollectionInterface::customWidgets(void) const { return d_plugins; } TaskMenuFactory::TaskMenuFactory(QExtensionManager *parent): QExtensionFactory(parent) { } QObject *TaskMenuFactory::createExtension( QObject *object, const QString &iid, QObject *parent) const { if (iid == Q_TYPEID(QDesignerTaskMenuExtension)) { #ifndef NO_QWT_PLOT if (QwtPlot *plot = qobject_cast(object)) return new TaskMenuExtension(plot, parent); #endif #ifndef NO_QWT_WIDGETS if (QwtDial *dial = qobject_cast(object)) return new TaskMenuExtension(dial, parent); #endif } return QExtensionFactory::createExtension(object, iid, parent); } TaskMenuExtension::TaskMenuExtension(QWidget *widget, QObject *parent): QObject(parent), d_widget(widget) { d_editAction = new QAction(tr("Edit Qwt Attributes ..."), this); connect(d_editAction, SIGNAL(triggered()), this, SLOT(editProperties())); } QList TaskMenuExtension::taskActions() const { QList list; list.append(d_editAction); return list; } QAction *TaskMenuExtension::preferredEditAction() const { return d_editAction; } void TaskMenuExtension::editProperties() { const QVariant v = d_widget->property("propertiesDocument"); if ( v.type() != QVariant::String ) return; #ifndef NO_QWT_PLOT QString properties = v.toString(); if ( qobject_cast(d_widget) ) { PlotDialog dialog(properties); connect(&dialog, SIGNAL(edited(const QString&)), SLOT(applyProperties(const QString &))); (void)dialog.exec(); return; } #endif static QErrorMessage *errorMessage = NULL; if ( errorMessage == NULL ) errorMessage = new QErrorMessage(); errorMessage->showMessage("Not implemented yet."); } void TaskMenuExtension::applyProperties(const QString &properties) { QDesignerFormWindowInterface *formWindow = QDesignerFormWindowInterface::findFormWindow(d_widget); if ( formWindow && formWindow->cursor() ) formWindow->cursor()->setProperty("propertiesDocument", properties); } Q_EXPORT_PLUGIN2(QwtDesignerPlugin, CustomWidgetCollectionInterface) qwt5-5.2.3/designer/qwtplugin.cpp0000644000175000017500000001215712052741126016323 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #if defined(_MSC_VER) /* MSVC Compiler */ #pragma warning ( disable : 4786 ) #endif #include #include #include #include #include "qwtplugin.h" #include "qwt_text_label.h" #ifndef NO_QWT_PLOT #include "qwt_plot.h" #include "qwt_scale_widget.h" #endif #ifndef NO_QWT_WIDGETS #include "qwt_counter.h" #include "qwt_wheel.h" #include "qwt_thermo.h" #include "qwt_knob.h" #include "qwt_slider.h" #include "qwt_analog_clock.h" #include "qwt_compass.h" #endif namespace { struct Entry { Entry() {} Entry( QString _classname, QString _header, QString _pixmap, QString _tooltip, QString _whatshis): classname(_classname), header(_header), pixmap(_pixmap), tooltip(_tooltip), whatshis(_whatshis) {} QString classname; QString header; QString pixmap; QString tooltip; QString whatshis; }; QValueList vec; const Entry *entry(const QString& str) { for ( uint i = 0; i < vec.count(); i++ ) { if (str == vec[i].classname) return &vec[i]; } return NULL; } } QwtPlugin::QwtPlugin() { #ifndef NO_QWT_PLOT vec.append(Entry("QwtPlot", "qwt_plot.h", "qwtplot.png", "QwtPlot", "whatsthis")); vec.append(Entry("QwtScaleWidget", "qwt_scale_widget.h", "qwtscale.png", "QwtScaleWidget", "whatsthis")); #endif #ifndef NO_QWT_WIDGETS vec.append(Entry("QwtAnalogClock", "qwt_analog_clock.h", "qwtanalogclock.png", "QwtAnalogClock", "whatsthis")); vec.append(Entry("QwtCompass", "qwt_compass.h", "qwtcompass.png", "QwtCompass", "whatsthis")); vec.append(Entry("QwtCounter", "qwt_counter.h", "qwtcounter.png", "QwtCounter", "whatsthis")); vec.append(Entry("QwtDial", "qwt_dial.h", "qwtdial.png", "QwtDial", "whatsthis")); vec.append(Entry("QwtKnob", "qwt_knob.h", "qwtknob.png", "QwtKnob", "whatsthis")); vec.append(Entry("QwtSlider", "qwt_slider.h", "qwtslider.png", "QwtSlider", "whatsthis")); vec.append(Entry("QwtThermo", "qwt_thermo.h", "qwtthermo.png", "QwtThermo", "whatsthis")); vec.append(Entry("QwtWheel", "qwt_wheel.h", "qwtwheel.png", "QwtWheel", "whatsthis")); #endif vec.append(Entry("QwtTextLabel", "qwt_text_label.h", "qwtwidget.png", "QwtTextLabel", "whatsthis")); } QWidget* QwtPlugin::create(const QString &key, QWidget* parent, const char* name) { QWidget *w = NULL; #ifndef NO_QWT_PLOT if ( key == "QwtPlot" ) w = new QwtPlot( parent ); else if ( key == "QwtScaleWidget" ) w = new QwtScaleWidget( QwtScaleDraw::LeftScale, parent); #endif #ifndef NO_QWT_WIDGETS if ( key == "QwtAnalogClock" ) w = new QwtAnalogClock( parent); else if ( key == "QwtCounter" ) w = new QwtCounter( parent); else if ( key == "QwtCompass" ) w = new QwtCompass( parent); else if ( key == "QwtDial" ) w = new QwtDial( parent); else if ( key == "QwtWheel" ) w = new QwtWheel( parent); else if ( key == "QwtThermo" ) w = new QwtThermo( parent); else if ( key == "QwtKnob" ) w = new QwtKnob( parent); else if ( key == "QwtSlider" ) w = new QwtSlider( parent); #endif if ( key == "QwtTextLabel" ) w = new QwtTextLabel( parent); if ( w ) w->setName(name); return w; } QStringList QwtPlugin::keys() const { QStringList list; for (unsigned i = 0; i < vec.count(); i++) list += vec[i].classname; return list; } QString QwtPlugin::group( const QString& feature ) const { if (entry(feature) != NULL ) return QString("Qwt"); return QString::null; } QIconSet QwtPlugin::iconSet( const QString& pmap) const { QString pixmapKey("qwtwidget.png"); if (entry(pmap) != NULL ) pixmapKey = entry(pmap)->pixmap; const QMimeSource *ms = QMimeSourceFactory::defaultFactory()->data(pixmapKey); QPixmap pixmap; QImageDrag::decode(ms, pixmap); return QIconSet(pixmap); } QString QwtPlugin::includeFile( const QString& feature ) const { if (entry(feature) != NULL) return entry(feature)->header; return QString::null; } QString QwtPlugin::toolTip( const QString& feature ) const { if (entry(feature) != NULL ) return entry(feature)->tooltip; return QString::null; } QString QwtPlugin::whatsThis( const QString& feature ) const { if (entry(feature) != NULL) return entry(feature)->whatshis; return QString::null; } bool QwtPlugin::isContainer( const QString& ) const { return false; } Q_EXPORT_PLUGIN( QwtPlugin ) qwt5-5.2.3/COPYING0000644000175000017500000006645212052741122013023 0ustar gudjongudjon Qwt License Version 1.0, January 1, 2003 The Qwt library and included programs are provided under the terms of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following exceptions: 1. Widgets that are subclassed from Qwt widgets do not constitute a derivative work. 2. Static linking of applications and widgets to the Qwt library does not constitute a derivative work and does not require the author to provide source code for the application or widget, use the shared Qwt libraries, or link their applications or widgets against a user-supplied version of Qwt. If you link the application or widget to a modified version of Qwt, then the changes to Qwt must be provided under the terms of the LGPL in sections 1, 2, and 4. 3. You do not have to provide a copy of the Qwt license with programs that are linked to the Qwt library, nor do you have to identify the Qwt license in your program or documentation as required by section 6 of the LGPL. However, programs must still identify their use of Qwt. The following example statement can be included in user documentation to satisfy this requirement: [program/widget] is based in part on the work of the Qwt project (http://qwt.sf.net). ---------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! qwt5-5.2.3/doc/0000755000175000017500000000000012052741243012524 5ustar gudjongudjonqwt5-5.2.3/doc/qwt.dox0000644000175000017500000001234112052741120014046 0ustar gudjongudjon/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ /* This file contains NO source code, just some documentation for doxygen to parse. */ /*! \mainpage Qwt - Qt Widgets for Technical Applications The Qwt library contains GUI Components and utility classes which are primarily useful for programs with a technical background. Beside a 2D plot widget it provides scales, sliders, dials, compasses, thermometers, wheels and knobs to control or display values, arrays, or ranges of type double. \image html plot.png \if homepage \section homepage Project page The official project page is hosted at sourceforge \endif \section license License Qwt is distributed under the terms of the \ref qwtlicense. \section platforms Platforms Qwt 5.x might be usable in all environments where you find Qt. It is compatible with Qt 3.3.x and Qt 4.x, but the documentation is generated for Qt 4.x.\n \section screenshotsonmainpage Screenshots - \ref curvescreenshots\n - \ref scatterscreenshots\n - \ref spectrogramscreenshots\n - \ref histogramscreenshots\n - \ref controlscreenshots\n \latexonly Screenshots are only available in the HTML docs.\endlatexonly \section downloads Downloads Stable releases, prereleases and snapshots are available at the Qwt project page. For getting a snapshot with all bugfixes for the latest 5.2 release: \code svn co https://qwt.svn.sourceforge.net/svnroot/qwt/branches/qwt-5.2 \endcode For getting a development snapshot from the SVN repository: \code svn co https://qwt.svn.sourceforge.net/svnroot/qwt/trunk/qwt \endcode Qwt doesn't distribute binary packages, but today all major Linux distributors offer one. Note, that these packages often don't include the examples. \section installonmainpage Installation Have a look at the qwt.pro project file. It is prepared for building dynamic libraries in Win32 and Unix/X11 environments. If you don't know what to do with it, read the file \ref qwtinstall and/or the Qt documentation. Once you have build the library you have to install all files from the lib, include and doc directories. \section support Support - Mailing list\n For all kind of Qwt related questions use the Qwt mailing list.\n If you prefer newsgroups use the mail to news gateway of Gmane. - Forum\n Qt Centre is a great resource for Qt related questions. It has a sub forum, that is dedicated to Qwt related questions. - Individual support\n If you are looking for individual support, or need someone who implements your Qwt component/application contact support@qwt-project.org. Sending requests to this address without a good reason for not using public support channels might be silently ignored. \section relatedprojects Related Projects QwtPolar, a polar plot widget.\n QwtPlot3D, an OpenGL 3D plot widget.\n QtiPlot, data analysis and scientific plotting tool, using QwtPlot. \section languagebindings Language Bindings PyQwt, a set of Qwt Python bindings.\n Korundum/QtRuby, including a set of Qwt Ruby bindings.\n \section donations Donations Sourceforge offers a Donation System via PayPal. You can use it, if you like to support the development of Qwt. \section credits Credits: \par Authors: Uwe Rathmann, Josef Wilgen ( <= Qwt 0.2 ) \par Project admin: Uwe Rathmann \ */ /*! \page qwtlicense Qwt License, Version 1.0 \include "COPYING" */ /*! \page qwtinstall INSTALL \include "INSTALL" */ /*! \page curvescreenshots Curve Plots \image html plot.png \image html sinus.png \image html cpuplot.png \image html graph.png \image html curves.png */ /*! \page scatterscreenshots Scatter Plot \image html scatterplot.png */ /*! \page spectrogramscreenshots Spectrogram, Contour Plot \image html spectrogram1.png \image html spectrogram2.png \image html spectrogram3.png /*! \page histogramscreenshots Histogram \image html histogram.png */ /*! \page controlscreenshots Dials, Compasses, Knobs, Wheels, Sliders, Thermos \image html radio.png \image html sliders.png \image html dials1.png \image html dials2.png \image html sysinfo.png */ qwt5-5.2.3/doc/html/0000755000175000017500000000000012052741243013470 5ustar gudjongudjonqwt5-5.2.3/doc/html/class_qwt_data__inherit__graph.png0000644000175000017500000001556012052741153022377 0ustar gudjongudjon‰PNG  IHDR“pTŮ ®bKGD˙˙˙ ˝§“%IDATxśíÝy Ôů˙đĎg$Ť}%©|©MJŤJŠPQÖÚ0]Ž«RDm×néňÝ’RbeuMű]GEúéřféŇvĐÄ·RŠD®qŤëóűcö;;;Ă3ćŕőřëcć3ďĎËçež>óąĹ0 Ą‚“wĐc\ĺÉP>\ĺCw@:8ťť-ď*¤ĚÉÉiË–-ň®("Ž-ö(ŠŽ;VOOOŢ…HMmmmII ü}‚.Á6W˙áĺĺeoo/ď*¤ćÖ­[»wď–w@AÁ~.€ňä(H.€ňä(H.€ňc‹Kuuő™3gňóó[[[Éd˛ťťťźźź†††—TTT¬Zµ*++«˘˘ÂĎĎŹ÷ @055ýî»ď¬­­?űB)˙Ŕ6×€ňîÝ»ŔŔ@uuő#GŽdffîŮł§˛˛2((¨­­í G ‰7oŢĽyófZZš««ëŽ;Ţ˝{×§5Đ%H®äčŃŁÎÎÎ!!!ĆĆĆjjjfff?ýô“¶¶öŮłg7nÜššŠ HCCCrr2‚ ŤŤŤ~~~,ËÁÁˇąą™?‰DrwwwqqIJJâ=ňöíŰ5kÖĚť;—JĄfee577 ľPčYąüú ?ä(ÚŰŰ <==DQÔÓÓóŢ˝{666Oź>E¤¨¨H]]˝°°AÂÂBSSSŤĆŰÔŇŇŇsÚ´i/^ĽŕMź+ŹúH®dÄÇŹomm ™?~VV–‡‡‡ľľ~ZZ‚ ÖÖÖ,ËŇŇA‰'~úô‰·“KWW÷˙ř‡»»{kk+ďXˇĂÂ… Ż^˝add„ ¶¶¶źź_HHČęŐ«gÎśiddÎ!Ź}Vľ«(;¸?W?˘hxxx/îrĂd2+**FŹÝEI„w—řű]‚m®NEEEc ń ąĘ’  | ąĘ’  | ąĘ’  |ŕşĹţăńăÇ_r§-ÁăePÎgpąŠ"(Úí ü»P ÎDí'lllňňňDFńxMa@&†¨¨čáńÚNS]Ýo˝^ŠŠ!‚ LfµĹ"‚čč,PSĹĺ~bł[8ś&§…ĂiĺpZyĆBÄĆĆćÁ.ôK\ý›Í}÷®ţĹ‹š˛˛Ú’’ŞââŞĘJ:‹ĹFŹÇqąŻ× ZÇÄ,EĹlítŹĂáNŽ HQŃ®7#đ?~kĎžKüńx‚`ÎźŤ«ęëk™čŽ©;aÂpOĎÉ’, ô?đi±ź IJOĚápq8”@ŔłŮ.÷Ż˙IA<gg7ćđáĹ˝‹-Aîß/kld vď^ŮŚc$)xőj{‡óŻ]áĺ)ŻB>ŁóÍ›Ú7oęđxĂ0'§±ÚÚę’,ô3°‡ľźx˙žÎ›ŕr1&“-[ČŘ,á"ZZ:˛łKřűŃ9nvvIKK‡„ĂňmÜ8wĂgÁě"đ'Ď1f÷îKłgGž?źĎfs» ,\Ę­ĄĺSDÄĺ)Söää”ĆĆ.KO_§˘ňgrˇ(B$âSRV››ŠäKüç?Ď„6č¸\ěúőg’ŹĚ÷ý÷.ÁÁÎü-/6›ł{÷7±±Ë<řŃÁÁbóćsS§î=qâŽTöŻe‡ßµk—Ľk˝ŃŮÉNH¸H{ů˛fűöQQT ‹aęę*,7?żśËĹp84.ÎÇŢŢ\*‹Ű˝ű˙*+ĎţCQ¤­­ÓËkŠTĆç±µÝŘŘ^TT‰Ăˇ“&™lÚ4AiĐěŮK—NkogĆÄüNŁýÁĺbăÇIr(;8Uůp8Üää‡GŽdµµu¬_ď´|ąťşú_G ŚN eťŢľż—Żďt©,±®®uâÄpŃťhx<úäÉîˇC5Ą˛ öm»”ôŕ·ßíěĚ„ž­ŻoKH¸uęT®şşŠżżm@€=‰$Ńa ¤ ą”LffÁáĂ×ËËëf­]ë Ł3Xtž˘˘Ęššć9sľ’ÖBOźÎ ĎÝÍD ŕvďöXľ|†´Äa›ÍłIŐŘČ8}:71ń6Ź_±bF@Ŕ,itk ’Kiäç—ďŰ—ůřńŰ%K¦;éČlŃ..ŃĎžUŠnsápĄĄńŐ«âľM¶ďĐéŚS§rďpą\?żëÖÍÖŇ‚V H.%P^^·˙ŐË— mmÇüđĂ‚ †ËréUUt eow'(Šćçď6L[–% jkë¤ŃîĆĹÝ`ł9TŞMp°“t?˝ĹÉĄĐjk[Ł˘®Ą¦ć™›ţřŁ›č~hjj÷đ8ÖŇň‰÷#ďĐžš‘÷Ł––zzú:ą_ťĂ`t&'?ŚŤÍf0‹٬[稯O’oI OAr)¨ÖÖŽěÓ§sőôH۶Í_°`BŻ/“–®Ŕ@‚ ~ň.¤ íí̤¤qq9­­‹O]·n¶ľľ–Ľ‹}’Ká0™ěÄÄŰńń7ńxÜ÷ß»P©…:üŻČÉĹóéó·ßüü󍆆6*•:ÇĐPnfAäR \.–”ô &ć÷¦¦ög˙«Ę»(aŠź\<,'55/::«ľľŐÝ}bXŘ\]y¤’KQÜ˝ű*""óůó*?ż68K~™aQ–äâa±8O˘ŁłŞŞčîîCCçŚ9TŢE)€«䯸¸ŠJŤ§R㍍ɷnmÝ»×CacKé‰x/Ż)·ooŤŠ˘>yňÎÎî§Ŕ@Úë×µň® H ’KžŢľ­ ¤Íť{Ëĺ^ľĽ!!ÁĎÔ¶¤Ź—_wîl‹Ź÷--ý0kÖţŔ@Ú«Wĺ]č=¸›ł|ÔŐµ’«ĎÝ»W‘ůěŮűE‹lÂÂćŔYÝ ÇÎÎĚÎÎ,/ďMTÔĽĽâ¦LąiÓ<Řů¨ČŕŘb*)ů@ĄĆ{zĆ ąqcKd¤7Ä–"ŁPLĎť[›‘±^[[ťJŤwwŹůý÷çň. t ¶ąúDEECDÄĺ+W )ÓĚĚ ÖÖ°÷DiP(¦Ši~~yllŽźß kk“ŕ`''§± rÝ(ŕä’˛††¶®¦¦ćŤ­—ś §;(«)SFŇh«?~“íďŇÂÂ0$ÄYq®{\RÓŃÁ:yňNlě 55bTuáÂÉpş˛ł¶6ˇŃV•”|8zô÷Ő«Ďš›¬^íťUpݢđn ťĹ`t®_ď¸b…ť$_%­ŕ”ëşE)*-­ŽŹżqńâ“1cô׬qřö[k<vË $—¤23 ˘˘ţSQѰjŐ¬  ŮrżÇ^_°ÉĹóâEM\\ÎĹ‹OFŤŇ šíáaM @~É$Wď=|řfßľ˙+(¨\ĽŘfÆ9rĽŁ±, đäây÷®!..'%ĺá°a:ëÖ9.Zdů%c\˝QZZ˝kWFnîK77«Ťçš™Č»"Ůä⫨hŤÍIMÍ30Đ ĺă3]UvË$WĎ|üŘq9=ý±µµÉŽn“'Ź”wE˛É%äý{zB­˙űž®®f` =ä—l@r}©––OÇŽĺś:•k` µu«ë€=@ÉŐĄŞ*úńă·~űíľ¦¦ÚwßÍZąr&˙KF@_€äúĽÎNö‰·ăân¨Ş6nś7ŔŻ”†äCč+¸żűÎ^Sľ‚»O@r‰Ă;ÝáČ‘¬¶¶Žőëť–/·SWď·§;|!H®Ďjhh;sćî/żÜ&ń˗ϰ'‘ ż¤ ’«[™™‡_//ݵv­ŽÎ`yW¤ ąľPc#ăôéÜÄÄŰx<~ĹŠłH¤Aň.Ş˙€äęBQQĺľ}—ďÝ{µdÉÔŕ`g##yW¤@ ąz„Ngś:•{âD.‡Ăńó›1Îř“ H®żyű¶ţ§ź®\ľ\hk;ć‡L0\Ţ)H®^hkë¤ŃîĆĹÝ`±8‹٬_蠟§)$ןjk[Ł˘®Ą¦ć™›ţřŁ\)ÝH®^c0:““ĆĆf·µu.^Ţ·´ô˝ý~?żĹĹUň®KAő˙‹ÚŚÎcDzďh?î ‡"ĂáP77«yóƧ§?>zôwW×Ăß|3iófW8Z&`ćĚ™ň.GúP”@&{Ş©ŤAi–ŽŽNii)&1Ą[ç‚. d{‘gÍš%y§0 ;věŚ+WS3%“©xü@?mU´ŰCŹ˘hhhč´iÓäX˘˛đööNMMőöö–pXç}íţýűŃŃŃ4ŽDy{{WVV†……I>řr]vPřÓâÔ©S˝ĽĽdX€uŢ·¤’Y|LJfÉX—({čý $@ů@r”$@ů@r”Oo’ëÍ›7ľľľ***&&&ˇˇˇMMMâ_ňß˙ţWMío·â^µjŠ˘iii˝( »E ˙ŁŞŞ:yňäěě앤Č$_çyyy®®®ZZZšššÓ§OĎĘĘBţľŇPŐŐŐőôôüđáĂŽŮŁg…ćěÇÍB$ë—t›"!ˇbxŢż/÷ö8ąJKK§L™B"‘nÝşE§ÓÓŇŇ^ľ|9mÚ´Ď6FP{{űąsçĎž=ŰÓÄPUU坥öáÇ•+Wzxx”––Jq|y‘|ťĚť;wÁ‚eee•••ţţţŹ=BV†aEEEjjjÝŤcnnŢŃŃ!•_Şż6 ‘FżzÔ”ľ&X Ź‘‘"÷ „ HjjŞřÓgĎž,ř—˵łł stt>>ĽiˇęęęK˙łľd]IkÉ׹˝˝}dd¤ŕ[¶l‰(--Zi>ÔŐŐĺMÓéôeË–‘Éd##Ł­[·2™LţüĽfýňË/d2Y__?))Ih•¶µµęéé 6lÓ¦M,K¨ż2kVjjŞĐßyŻyyyyyy}v6 ű•››Ű»¦ľ)ŇŇŇZZZüüü† 2bÄ_ý•?r—ăőĂ0ŃżŃÇeÜÁž%Wss3‡{ýúµĐăiiiŁGŹŽŠŠruuĹ0,%%…D"ą¸¸đ¦---…~O‡¸¸8 Ă&Ož|äČţşPQQY±bEuuµŕ4†aß|óÍîÝ»?}ú”¨§§‡aXgg§––ÖłgĎ0 +,,ÔŇŇ*((Z•ׯ_·°°ŕM‹Ž X’čłź%łä’|ť·´´ŕp¸ŞŞ*ŃÁ…úňáÇ%K–Ě™3‡÷#•JýúëŻ?~üřňĺËńăÇ8p@0ą ´nÝşććć}űö Ť¶rĺJźşşş˛˛2 …-Ô_™5KĆÉ%yżzÝŃ7EGG‡żżż››[MMÍ«Wݬ­­ů#w9Žřž ’{{–\eee(ОX,ˇÇź>}Ş©©Y\\¬©©Éb±‚‚‚~řá‰Äfł×¬YłeËÁşËËË544š››1 ;věؤI“řëAŢ&ŕ4†a%%% Ĺbť9s†?ÎŇĄK÷ěŮaŘöíŰ—/_.ş* ´µµ»Apţ.ÇOfÉ%ů:óć Š˘GtpˇÍ{MMM77·ĘĘJ Ă:::p8Ü›7oxs¦ĄĄŤ?^đÝĹß‚~ţüąĐ*e2™D"±©©‰÷Ú7nLž\^^~ěŘ1wwwAćÍ›—žž^SScaaaooáÂ…ŞŞŞéÓ§óçÇ0ŚFŁĹÇÇ<ţÜŃŃ‘FŁńžĽ˙ şľľ~ĺĘ• Ź=Ú»w/†yóć˝|ů2==ťÁ`Ěž=[´Ú+W®P(1#_AHľÎI$’­­í‰'‡=xđŕµk×Ä,×ŔŔA·oßň~,//ç˙]ňąYľľ>Źçosµµµĺçç‹I˙h"Ť~‰ń٦˝)ôőő…ć?Ž$7€’q{|®ŘŘŘ™3gb¶fÍš#F´´´üóź˙ÔÖÖNJJBÄĹĹĹ×××ÉÉ EQ{{űµk×Ι3‡H$ň>­°X¬?ţřăăÇŹ‹/<řĎŻŚ^´hŃÎť;÷ďßßÝ˙Ü8$<Čápš››µ´´ äââ˛víÚE‹ ýŰohh8wîÜ©S§?~ÜÝü’şż§k¦ďH¸Î‰DâˇC‡ěííq8ś··÷ A.\¸śś|ëÖ-1 UUUőđđذaCbbbsssxxřŇĄKĹ×É_˘ŞŞŞ§§ghhhdd$—Ë 055 ěňUý¬YÄý3ňg›"ô¦PUUĄR©!!!‰‰‰mmmĽlęEsĹO?:"_¶ďćőë×>>>úúú***¦¦¦aaa“'OÇ0¬ĄĄ…÷>Á0¬˛˛AÄÄD ĂZ[[ÍÍÍyźŘ©TŞŕhőőőáÚµk‚ź„…>EďÚµ‹D"Ť5*##ĂÂÂÂÉɉ÷xrr2‚ yyyŘß?‰Dkkëśś1#đKjhhčn|1ľp]IkIÖyCC†aąąąÎÎÎZZZ¶¶¶YYYX÷ű_yęëë/^=}ú´/”ĐŐ«WÇŚ#űĺb2O.QňZçJG.É%JfýzSüúëŻ555Ľé‹/ň˙)‘.;(ť«ÔÔÔ¬¬¬¤2Ô—{˙ţýˇC‡|||dĽ\!—uzM6ý}Sdddlßľ˝ĄĄĺÝ»w‘‘‘Ľ}mý€_·hiiÉd2CBBä]ŠBôM[__odddii9bÄm۶ɱ<)RâoĐhll”w (Ń7…ÁĄK—äRLźRâm.Ŕ€ÉP>\ĺÉP>Â{č÷íŰ—(—R,Xç}ęăÇŹRíÎť;ÎÎÎR|V—ü[ríßżźwţ>ř,©üĂ:ďk:::’\Ú"(((H*ă€é˛űŽkP °ź  | ąĘ’  | ąĘç˙k,‡€¤ČIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot__inherit__graph.md50000644000175000017500000000004012052741141022325 0ustar gudjongudjon116fcbb88386c800749d5aecefb489e4qwt5-5.2.3/doc/html/qwt__plot__zoomer_8h_source.html0000644000175000017500000004253212052741135022105 0ustar gudjongudjon Qwt User's Guide: qwt_plot_zoomer.h Source File
Qwt User's Guide  5.2.3
qwt_plot_zoomer.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_PLOT_ZOOMER_H
13 #define QWT_PLOT_ZOOMER_H
14 
15 #include <qglobal.h>
16 #if QT_VERSION < 0x040000
17 #include <qvaluestack.h>
18 #else
19 #include <qstack.h>
20 #endif
21 
22 #include "qwt_double_rect.h"
23 #include "qwt_plot_picker.h"
24 
49 class QWT_EXPORT QwtPlotZoomer: public QwtPlotPicker
50 {
51  Q_OBJECT
52 public:
53  explicit QwtPlotZoomer(QwtPlotCanvas *, bool doReplot = true);
54  explicit QwtPlotZoomer(int xAxis, int yAxis,
55  QwtPlotCanvas *, bool doReplot = true);
56  explicit QwtPlotZoomer(int xAxis, int yAxis, int selectionFlags,
57  DisplayMode trackerMode, QwtPlotCanvas *,
58  bool doReplot = true);
59 
60  virtual ~QwtPlotZoomer();
61 
62  virtual void setZoomBase(bool doReplot = true);
63  virtual void setZoomBase(const QwtDoubleRect &);
64 
65  QwtDoubleRect zoomBase() const;
66  QwtDoubleRect zoomRect() const;
67 
68  virtual void setAxis(int xAxis, int yAxis);
69 
70  void setMaxStackDepth(int);
71  int maxStackDepth() const;
72 
73 #if QT_VERSION < 0x040000
74  const QValueStack<QwtDoubleRect> &zoomStack() const;
75  void setZoomStack(const QValueStack<QwtDoubleRect> &,
76  int zoomRectIndex = -1);
77 #else
78  const QStack<QwtDoubleRect> &zoomStack() const;
79  void setZoomStack(const QStack<QwtDoubleRect> &,
80  int zoomRectIndex = -1);
81 #endif
82  uint zoomRectIndex() const;
83 
84  virtual void setSelectionFlags(int);
85 
86 public slots:
87  void moveBy(double x, double y);
88  virtual void move(double x, double y);
89 
90  virtual void zoom(const QwtDoubleRect &);
91  virtual void zoom(int up);
92 
93 signals:
101  void zoomed(const QwtDoubleRect &rect);
102 
103 protected:
104  virtual void rescale();
105 
106  virtual QwtDoubleSize minZoomSize() const;
107 
108  virtual void widgetMouseReleaseEvent(QMouseEvent *);
109  virtual void widgetKeyPressEvent(QKeyEvent *);
110 
111  virtual void begin();
112  virtual bool end(bool ok = true);
113  virtual bool accept(QwtPolygon &) const;
114 
115 private:
116  void init(int selectionFlags, DisplayMode trackerMode, bool doReplot);
117 
118  class PrivateData;
119  PrivateData *d_data;
120 };
121 
122 #endif
qwt5-5.2.3/doc/html/class_qwt_abstract_scale.html0000644000175000017500000006702412052741163021422 0ustar gudjongudjon Qwt User's Guide: QwtAbstractScale Class Reference
QwtAbstractScale Class Reference

#include <qwt_abstract_scale.h>

Inheritance diagram for QwtAbstractScale:

List of all members.

Public Member Functions

 QwtAbstractScale ()
virtual ~QwtAbstractScale ()
bool autoScale () const
const QwtScaleEnginescaleEngine () const
QwtScaleEnginescaleEngine ()
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
void setAutoScale ()
void setScale (double vmin, double vmax, double step=0.0)
void setScale (const QwtDoubleInterval &, double step=0.0)
void setScale (const QwtScaleDiv &s)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)

Protected Member Functions

const QwtAbstractScaleDrawabstractScaleDraw () const
QwtAbstractScaleDrawabstractScaleDraw ()
void rescale (double vmin, double vmax, double step=0.0)
virtual void scaleChange ()
void setAbstractScaleDraw (QwtAbstractScaleDraw *)

Detailed Description

An abstract base class for classes containing a scale.

QwtAbstractScale is used to provide classes with a QwtScaleDraw, and a QwtScaleDiv. The QwtScaleDiv might be set explicitely or calculated by a QwtScaleEngine.


Constructor & Destructor Documentation

QwtAbstractScale::QwtAbstractScale ( )

Constructor

Creates a default QwtScaleDraw and a QwtLinearScaleEngine. Autoscaling is enabled, and the stepSize is initialized by 0.0.


Member Function Documentation

const QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw ( ) const
protected
Returns:
Scale draw
See also:
setAbstractScaleDraw()
QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw ( )
protected
Returns:
Scale draw
See also:
setAbstractScaleDraw()
bool QwtAbstractScale::autoScale ( ) const
Returns:
true if autoscaling is enabled
void QwtAbstractScale::rescale ( double  vmin,
double  vmax,
double  stepSize = 0.0 
)
protected

Recalculate the scale division and update the scale draw.

Parameters:
vminLower limit of the scale interval
vmaxUpper limit of the scale interval
stepSizeMajor step size
See also:
scaleChange()
void QwtAbstractScale::scaleChange ( )
protectedvirtual

Notify changed scale.

Dummy empty implementation, intended to be overloaded by derived classes

Reimplemented in QwtThermo, and QwtSlider.

const QwtScaleEngine * QwtAbstractScale::scaleEngine ( ) const
Returns:
Scale engine
See also:
setScaleEngine()
QwtScaleEngine * QwtAbstractScale::scaleEngine ( )
Returns:
Scale engine
See also:
setScaleEngine()
const QwtScaleMap & QwtAbstractScale::scaleMap ( ) const
int QwtAbstractScale::scaleMaxMajor ( ) const
Returns:
Max. number of major tick intervals The default value is 5.
int QwtAbstractScale::scaleMaxMinor ( ) const
Returns:
Max. number of minor tick intervals The default value is 3.
void QwtAbstractScale::setAbstractScaleDraw ( QwtAbstractScaleDraw scaleDraw)
protected

Set a scale draw.

scaleDraw has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setAbstractScaleDraw.

void QwtAbstractScale::setAutoScale ( )

Advise the widget to control the scale range internally.

Autoscaling is on by default.

See also:
setScale(), autoScale()
void QwtAbstractScale::setScale ( double  vmin,
double  vmax,
double  stepSize = 0.0 
)

Specify a scale.

Disable autoscaling and define a scale by an interval and a step size

Parameters:
vminlower limit of the scale interval
vmaxupper limit of the scale interval
stepSizemajor step size
See also:
setAutoScale()
void QwtAbstractScale::setScale ( const QwtDoubleInterval interval,
double  stepSize = 0.0 
)

Specify a scale.

Disable autoscaling and define a scale by an interval and a step size

Parameters:
intervalInterval
stepSizemajor step size
See also:
setAutoScale()
void QwtAbstractScale::setScale ( const QwtScaleDiv scaleDiv)

Specify a scale.

Disable autoscaling and define a scale by a scale division

Parameters:
scaleDivScale division
See also:
setAutoScale()
void QwtAbstractScale::setScaleEngine ( QwtScaleEngine scaleEngine)

Set a scale engine.

The scale engine is responsible for calculating the scale division, and in case of auto scaling how to align the scale.

scaleEngine has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setScaleEngine.

void QwtAbstractScale::setScaleMaxMajor ( int  ticks)

Set the maximum number of major tick intervals.

The scale's major ticks are calculated automatically such that the number of major intervals does not exceed ticks. The default value is 5.

Parameters:
ticksmaximal number of major ticks.
See also:
QwtAbstractScaleDraw
void QwtAbstractScale::setScaleMaxMinor ( int  ticks)

Set the maximum number of minor tick intervals.

The scale's minor ticks are calculated automatically such that the number of minor intervals does not exceed ticks. The default value is 3.

Parameters:
ticks
See also:
QwtAbstractScaleDraw
qwt5-5.2.3/doc/html/inherit_graph_2.md50000644000175000017500000000004012052741151017133 0ustar gudjongudjonf19b60703035fedc7d98b05f459726aeqwt5-5.2.3/doc/html/radio.png0000644000175000017500000004652212052741136015306 0ustar gudjongudjon‰PNG  IHDR™ő”dy IDATxśíÝy\Tőţ?đĎgpŘ7ŮŃÜ.WŔrMńşdF^—ĚŔ,SoŢTJY4×[ÝD4+ ĹÔ˛Dí¦VßPşár“L-‰sE„d@vśfůüţřŘi~303ç|?ţ!gÎśy^3g>gÎöÁ‡BĹÄÄ đM|ÂJ!óÇĺË—Y,=#`»ô ôĺżA_đôĺżA_đôĺżA_đôĺżA_đôĺżń˛/?}úôś9sFŽńĎţó·ß~3<ÝňęęęĂÂÂ"##SRRÔj5ťŢŇҲ~ýúđđđČČČôôtŤFĂV…„ÎEB!ĄĄĄ‹-’H$«V­jlld«H¤?Iް°0<<ś­Ú(}*•Ę”””qăĆI$’¸¸8cÔW!ÖBH}}ý„ !̔Ϋ ýd˛˛út«B×ăëdĄ«3ĹÜhyÚSô˝ˇl­;ÝzŻą°úhă__ŢĐаbĹŠE‹ť?ţűďż KLL$„t9ť­"׬Y#‹Oť:őůçź_¸páŕÁtzjjjMMMNNÎţűß˙fee±Uˇľ"5Ͳeˆ –››{ěر¶¶¶ 6p­H„!D&“­[·ŽĹí!ĂîÚµ«¨¨čСC§Oź‰D)))Ü©#ë‹T*]¶lŮŚ3d2™öt}«‰ĺWźnUČâşÓÝ$BrąÜb«ŹT*}íµ×Ś/Ź•u§[666˛ľúčŕ__.‰śťť1Ćc:ĹËËËŔtË«««ËËË[»v­łłs@@@bbâ·ß~KQ«ŐŮŮŮqqqnnn X°`‹}y}}=-ŇÉÉÉßßź‰’JĄ•••ńńńöööžžž±±±?˙ü3[Ev™$óhrrň¨QŁŘŞŤŇ÷^k4š#GެYłĆÇÇÇŃŃqëÖ­IIIÜ©qc}ńńńŮľ}űţýűµ'j4şš¸şş2«‰ľéÜ©Ĺu§[uR–\}|||věء]žľďCםneČ…ŐG‡đÁłpŚ˝˝}RRŇ«ŻľJwĹâoľůcÜĺtV*ěčč@ ÷·“„BaEEB¨¦¦F.—6ŚN ĘČČ`ĄBEúűű_şt‰N$„ś;wnŕŔ\+!ôí·ßÖŐŐ­[·N»w·<}Ö××766ž9sfńâĹ“&MzăŤ7ěíí9R!§ÖúVî¬>ú*áÔşô×IáÂ꣯<î¬;Š‹ĹIII±±±!Śqż~ýX_}ř÷»\­V'''Ďš5ëÜąs'Nś JKKŁ[yť§łRˇ——×СCSSSĺrąT*MKKS*•!…B! E"ťM,·¶¶˛Rˇv‘---UUUL‘!¤¦¦fÆ ™™™˙ú׿X/R;IBHeeezzzrr2ÓEqŞB„\.§u;v,;;»ˇˇáÝwßĺN…śZ_tĐŐÄĆƆţâaV}ÓąS!Ĺ‘uéŻS*•raőŃ÷}ČťuéĎPŁŃ$''?űěłçÎť;~ü8VţőĺR©T*•®^˝ÚÉÉÉÇÇgůňĺgÎś10ÝňAJJĘÍ›7###.\îčč‹Ĺ*•ŠţNBµ´´ŘŮٱR!BcÜe‘t×ţýűgÎś©V«żúę«ŕŕ`¶ŠÔ—äşuëXß©e B„ĐÚµk]\\čîÖÓ§OsŞBî¬/:čjŇŢŢNw0«‰ľéÜ©SëŽ:9˛účű>äÎşôgȬ>ŽŽŽŢŢŢ\X}ř·ŹÝÖÖVg }ďőMgE@@ŔŢ˝{é˙żúę«   „»»»ŁŁăµk×BCCBWŻ^%%%,–§ó}Č©uG_†\}ř÷»ÜĂĂC"‘lÝşU&“UUUmßľ=** cÜĺt¶ŠŚŽŽŢąsg{{űµk×vďŢ=wî\ڱ@ >}zZZZcccyyůľ}űfĚÁV…„¦ČëׯÓ"Bܵk‹ŰÚşL˛¸¸¸¤¤¤¤¤äčŃŁ666,väú* …S§NÝĽyscccUUUzzúÔ©S9U!§Ömcşš455UTT0«‰ľéÜ©k뎾:éşS\\ĚâęŁďűk뎾 ÝÝÝéę#—Ë«««ą°úđŻ/GmÝşµ©©iâĉłgĎ2dH||Ľáé–·iÓ¦3gÎDDDÄĹĹ-Y˛děرtz||Ľ§§ç”)SćÎť5sćL¶*ě\ddd$ƸşşZ.—O0!$$$88888X"‘p§H&IîĐWá믿®Ńhž|ňÉgź}vذaË—/çZ…ÜY_tč[M¸łútY ×Ö}ur‡ľň¸łî(’k«>tčB(&&ćňĺËě–€îÚ˝g//—€}9ŔoĐ—ü}9Ŕo}§/g÷¶ Ćŕ~…ErżBć"ą_!âC‘ÜŻńˇHîW8_dßéË€‡ôĺzq|+ ńˇBEš÷+D|(’ű">Éý OŠ4!čË~ăz_nňm+sl¬qżHî/ĐË|hŽe>„ 4Ç2ąż@s,ó!\ [¸Ţ—Ŕ0čË~ľŕ7®Ź­Ňgfŕ5Vz7Ćî={…l×đśÍŕŘÇđôĺż»Ź}÷ž˝f­ťmKýŕ'´uăxůˇC{W;–˝şÄň/ź°!´-őËż.Oß&=ĆősßLâÖíJËżč¶ÔXy]8^đôĺżA_đôĺżA_đôĺżA_đôĺżA_đôĺżA_đôĺżA_nń +``–Ń÷ÇIŁĂŹ}•±}ąĺ‡â€1ŚíË/_ľlÖ:Đ3pĽŕ7čË~ľŕ7čË~3öÜ·Ý{öšµŽ‡Ů¶ÔŕÔB=żËYűčĄîÝ+&-őC3ŐÁ%—KŘ.čř]đ[ßż‡+§=ń–1çTÁďr€ŁŚ<§ ~—ŔĂN¶í«ŕw9c±2ň$†»4w ˝\>ü.€‡E|ÂĘĹŻ,bţ´¶¶îň˙Bëű]µ°ëîÝ»÷€%ď/AĄR1•JĄž˙«ş¨úó˙TYŮmýKPţń¬®_NĹĚ ÔSŹęőPţÇ—SvőrŞ®^N{„ĐşőoŇ˙´¶¶Ň˙ą+~—ü}9ŔoĐ—üÖŤăĺŰR?؆úú9ĂŮ.č&c—Ă• 7ű»ň¸ Ž—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—üĆéńËu¦`Ś/]ş„1~ŕs !eeeŃŃŃĆĚđ§űň’’„Đ­[·˘ŁŁ/^ĽŘ­çbŚyä‘î> ŕžíc'„ÜşuK"‘B´˙O˙“™™1nܸ¬¬,ĂŹŇĄ555%&&J$’I“&}ňÉ'‰„ÝÖ=ŔłľÜĄRy÷îÝÜÜÜůóçđî¨n]>š””D9uęÔţýűOž$/jázł|žý.Ç{{{/\¸péŇĄÖÖÖ111gĎžíńŇ6nÜřć›oNś8100pÁ‚[¶l1a©Ŕ5ĆüÂ|„:„Љ‰ą|ů2ŰŰéÇÜĽyówß}Çv!`Çg»ĐC†;čÝ{öňěwąiĹÄÄ<ńÄ .lnnŢ·o_dd$Ű€ą<ä?Řú6ţ/7ˇäääsçÎŤ=zĆŚnnnË—/g»" ŰęßĺC‡ÍĚĚd»  Węßĺ@}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9Ŕo÷ÇV‰OXÉnč™ű}ů¶ÔŘ­=ź°ňĎ1Oaz€Źŕx9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9ŔoĐ—ü}9#„Ô××O0ÂLiiiYż~}xxxdddzzşFŁa·H|¬™!|đ,€Ń¤Ré¦M›ŠŠŠ …öôÔÔÔšššśś™Lëçç7kÖ,¶ŠÔÁÇšµA_Ŕ”|||¶oß^VVÍLÔh4ŮŮŮ»víruuuuu]°`AVVVúĹÝ{öę{h[ę=Ľ›Ź5k}ěĚ®¦¦F.—6ŚţtëÖ-.[ę&\ĹŁšáw9łS(BˇĐĆĆ!D‹Ĺ­­­ťg Ö·„’’ć˙‹_yŮEęŕQÍĐ—0;±X¬R©ÚŰŰE"B¨ĄĄĹÎήólÚťź6ýĄůđ¨fŘÇŔěÜÝÝŻ]»F˙ĽzőęŕÁŮ-éxT3ôĺĚc<}úô´´´¦¦¦ŠŠŠ}űöÍ1í˘€G5C_Ŕâăă===§L™2wîܨ¨¨™3g˛]ŃńĄf8^ŔÄ0ĆŹ<ňČĹ‹µ§ŘŮŮmŢĽyóćÍ,fkfô©ßĺ?üđCHHHppppppHHČôéÓŮ®¨/ăŃ‘ú$Čź]?ŕ”>ő»ĽĽĽ|ĆŚ›6mb»‡_îÔWAţě‚üwô©ßĺż˙ţ{@@ŰU<,č‘âââ\]]é‘Ř.ę!ůł ňśŇ×~——””|öŮg„'žxbÝşuööölŐguľ#RFF»%=T vAţfĹĘŐä˝ÄnÍ}Ş/W(üqSSÓúőë·lŮ’śśĚvQ}–‘wDfůł ň7«Îw_á~ďÎnÍÝÇN),, gĆž3Ffffbb˘X,öőő]ľ|ynn®ńĎU*•)))ăĆŤ“H$qqqŤŤŤÝ.š·JKK-Z$‘H"""V­ZedŰ™;"Ń÷Hß‘şDéŮ‹öI?» Đp´/—ËĺëÖ­ëÖyˇUUUˇˇˇuuuôO+++z×=#íÚµ«¨¨čСC§Oź‰D)))Ý«ź!jµzٲeÆ ËÍÍ=věX[[ۆ Śynoî¤Ńhzö˘} äĎ.ČôíË“““GŤŐ­§ôďßđŕÁďż˙ľ\.Ż®®ÎČČ:uŞ‘ĎŐh4GŽYłfŤŹŹŹŁŁăÖ­[“’’ş_5/IĄŇĘĘĘřřx‡ţýűÇĆĆţüóĎĆ<±7wDb^ÔŢŢŢÓÓÓří{ vAţ oŕ\_NÉÎή««›?~·ž(>üđĂşşşqăĆ=÷ÜsC† Yľ|ą‘Ď­ŻŻoll^‘Ď—š9÷»|Ýşu ^^^–|QşUľvíZşËëôéÓ–,Ŕ»ăŃ?5MffćĚ™3ŐjőW_}5|řps@Ńh4ű÷ďg^”ű'©šäĎ.Čź|Ľ"źG5sîwyaaaaaáŞU«čź!!!ú††5!OOO[[[•JE˙T«ŐÝ:oŽwŠ‹‹µ˙ĚČČ8}útffćŕÁéN? `^tČ!–yEî€üŮůł‚ŹWäó¨fÎőĺ´ç&„”••EGGtw żţú+Ć844Ôř§…©S§nŢĽyíÚµ …"==ÝřóćxŤŇŃŃqđŕÁcÇŽą»»÷l!=śyQ77·ž˝hßůł ň·$#ŻČçÔ. ŐĚąľĽ÷ňóóĺry·V-„Đ믿ž””ôä“OZ[[Oź>Ýřóćř®şşZ&“M0ţ‰1‰DÚ#=PŻ®®–ËĺĚ‹"„lllşő˘}äĎ.Čßb+ňé^O}WäëŰËJÉŁš9Ú—w{ÎÜŢ˙}‹˝G`Ś-pCG`` Î~·äĎ.Čß’+ňCBBP7ŻČg ŹjćÜąoĆËËË»rĺJ·ćżzőŞůęéóhŕFމŹ›äĎ.Čż—zsE>[xT3×űň‚‚}ëĎÍ›7łłłŤ_Ô‰'._ľÜy:]ënܸŃó*űx—™*p„®äĎ.Č߬z|E>‹řR3×űňÖÖÖ 60gk4hľUĄK7oŢôóóë<]ĄR%''744ôĽĘ>„®T*;o?™$pBR©„ŔőüŮů›sE~~~ţůóçăâ₞w@ÁĂuţ™°T†ik6+Ž–ĹřŰßţćěě|čСÎ 4¨´´ÔřE•––4¨óôC‡ůřřt÷–±}Ő¸qă,xDDDĎ«ě» vAţ€§Ěޗ߸qcáÂ…‰$,,lÁ‚EEEÝ]Â믿ľgĎžĆĆFť-ez93Šat6ť+@!ŤŤŤ{öěyýő×»[ŇşăŐÝ3çÍ­gc͡?ojjŇ™N/Ú©ŻŻ7f!t¶Î×ů455ő8pŠ6ŞÇO·Čź]?x¨÷ô@Ě™¨„ť;w¶··÷`!ćÓ±ćBăÁÓŔ×­[§ó(ýibLŕú~”ĐŔ{v.(!¤gŤbäĎ.ȟ׸pĹvw±[łyűňęęꪪŞeË–YYYÉd2‘HäééŮĺ,]şô™gž‰ŽŽ¦ë=ćtáÂ…BńÎ;ďÔÖÖşşşz{{;:::88888`Ś‹‹‹›››ďÝ»w÷î݆†777—Ë—/6L(Ň»;•––ćää|óÍ7˝lćÍ›7Ož<ůĹ_ôr9¦EÇšűöŰo{đ\&đAѬ:::ňňň ĹćÍ›»řСC­­­Ńc6÷2đŢ4Ę vAţĽÖůBAî÷îěÖlŢľÜÇÇçâĹ‹eeeô<~;;»ýű÷???ßŢŢţ/ů‹öť1Ć...ŻĽňĘÖ­[wîÜyăĆŤoľů&''gřđá ™:uŞĹĘd˛#GŽTVV¦ĄĄÝĽy3**ęŮgź4hĐÖ­[_yĺťů !ůůůNNNĚ­űô!„BŢyçť+V0C-±Žňí·ßÖŐŐ­[·ÎđjO Ň™îěěĚ~ýúőÎŰŰŰë»Ű%ýő@ß¶m[çŔťťť;?+//ďŮ(ÖAţě‚üÁCČě÷Ўw}ątéRuuőĆŤ“““8 ofŤFłzőę]»vůřřč<óŮgźMź>]ŁŃ,\¸đСCFÖŕŕŕđňË/Ó˙×ÔÔ;v,11ŃŢŢ^&“ĹÄÄtžżŞŞjÍš5~řˇ1 ?ţĽR©;v¬‘ĹX€ńcÍ1{{{ë|7Í™3G'pwwwcîVŤ1f§#Ai>gÎťů !Ć^YYŮăô, ňgäB:Ź] řřřÄĆĆ^ż~ÝŔlŁFŤŠŽŽNHHhkkcÎX!„ÜĽy3..ÎĆĆ&666;;;&&ĆřŽ\‡§§ç˘E‹˛˛˛žzę)ŚńŠ+nŢĽ©ýZmmm ˙řÇ?{ě1cř駟Λ7ĎbC2čCĎż !„?Ö\DD \ˇPhO/--]ľ|9xtt´‡‡GÚ1öôô|ůĺ—µ×9XˇPĐŔ}ôQ‹be=ăAţě‚üÁCÓ«/bbbşu餑*++ź~úéüü|ş˙ą  `őęŐß˙˝§BÖŻ_Ź˘Ł«TŞ´´´śśś„„„§ź~şËkűÄb±H$R*•cˇPŘŻ_?„Pkk«JĄ"„ŘŘŘ(Š–––ÎOÔh4ß|óÍÎť;g̱téRˇPb^ÝU÷Îť;Ď=÷Ü?ü ‰XďΝҾK%=ÇçťwŢA)•JíŔ1ĆÚí"„`ŚűőëgccóŔŔéĚÚĎ%„hNŹ#jżşôkšů“ˇ4.KüŮůs!¤ˇˇaöě٧Oź¦9BZ[[7mÚtňäI›9sćĽöÚkĆ_®LßÇÝ{ö"„ŇRuwcDB˝éČĚ]óâW^Ö™°ŰűÎw÷ž˝ćÝÇîíííďďżgĎžE‹Ý»w/###**ęĎzë­·,X°˙ţ¨¨¨U«Vyyy=zTűŽö„ˇPčŕŕ@qww·±±Ń^g”J%BHű  ©¶¶cÜÜܬŃhčüŕŮgźť2eĘĆŤ_}őŐM›6ĺää”––îŰ·ĎČţď˙5jwŽ”SÝkŽž™™©¸­­­vŞVVVLŕ¶¶¶ĚtB˝“Ź“““öüíííLŕô;~-Κ5«g3ß\·nÝŠŽŽćň@?» vŃŁ›6m***ŇŮᑚšZSS“““#“ÉbccýüüfÍšĹVťÚřXłóöĺ %%%99ůăŹ?¶··ź:uj||<}(//cÜůBIzźť”””9sć|ţůçóćÍ›7oó(Ó‹{xxĐk:::ŞŞď …"ĄJĄŃµZ­Ń„@€­¬¬¬ˇĐJĄępwsĄ÷`ňôôĽ{÷®\.W©TtÝł··÷Ýw8mkk»wďŢ.GÂAýüóĎ"‘häȑ̔ .„……™22łˇ‡……uŢ`kk›ššCńŵ玎Žôg„R©”VU …"•Z­VkÔjµZ­AYY ¬¬¬¬¬¬„V¸ŻŻ/ú#p™LF/¤ÁŰŰŰoٲĺŕÁ4đO?ýTűË‘Aąpá‚Nŕüůł ň·Ś±ŹŹĎöíŰé¶3]ŁŃdggďÚµËŐŐŐŐŐuÁ‚YYYéůXłłźű6tčĐĚĚĚ.Z·nÝ×D{em·n݋ű±±ĚŤě !VVVNNNnnn"‘H­Vß©¬˛˛¶):!«u– ŃŤFĄDµ#BČi­ť­Ť‡‡›ŻŻ/ý™.“ÉÔj5]oé Ľ{÷îĘĘJşjëččHOO˙î»ďvěء=ťłăŇŁ®Ćšc·¶¶ÖůFc׾Ű0˝‚ŔŐŐ•^)­¶Z·µµ#„P{›öl \y˙n»w¤µvv6HŁfŻ««ÓţŤBO2 {{{kCŻ9ě2p„…Đë1Čź]?×ÔÔÔČĺrć\ý   .R<Ş™µ{¸†‡‡9r¤´´tŢĽyeeeÚgźüűß˙NKK›9s&łĘ‰ĹâŔŔ@oookkëÚş†ß+k:”š6Eúc]2€ÎЦčhkWÝ‘ÖÖÖ5X[[űúúúúúŠĹbfž_|q×®]k×®-((Đ®§¬¬lŢĽyGŽ:t¨9Ұ€&đŰ·ok?tńâĹ·Ţz+--M{ËI,0ŔËË‹~GZŰޡľ˙Efś¶¶öV…˛˛ę~ŕ>>>~~~b±Éö…^صkך5ktľ›nßľÍţŔËůňgäĎ:…B! ™C˘b±¸µµµólÁzXĽ^„xU3k}9ÝćMMMŤŽŽž?ţ—_~I§—””¬^˝:%%…é55Ť““S@@€ťť]MmÝiŤĽEŃÝű224ŤĽEqGZSWßŕŕŕŕŕŕŔÜGiذa~řáęŐ«™ŁS_~ůĺüůóŁŁŁSSS]\\¸s‚[¸¸¸l۶Ť~äČz2Nqq1 |ذaLëśťťýýýiŕ•Uµ2ys’A·`ŚŐjŤLŢVYUK÷÷÷wttdýË_ţBżté­çČ‘#4đm۶uľôź× vAţćŁ}ľyÄb±JĄjoo§ó´´´ty4łD¨Ů0łďc7 c¶fÍvcëĽ IDATšłgĎĆĹĹ%$$¤¤¤Ś1!Džžžžžž„şúFyK;2â‡ř)•toXŁ›«łźźźJĄjľwOhe%}ôŃÍ›7żńĆ©©©Ű¶m«ŞŞĘĚĚ8p  ZË Ď=÷\çŔµo&ďîîÎ.“+Á4Đ!TZv§ËG1ĆJĄŞ˝˝!ěćęěďď_VVÖÔÜl#!„FŚŃ9đ¬Áůł ň7cú-wwwGGÇk×®…„„ „®^˝Úł{Ůš k6€㤠0ŕŔţţţ111&L`Ö+Śq˙ţý===ĺň–Ꚇ{˛VťKDzŚ.瞬µ¦¶ˇ±±ńđ‘Ż~řáGfëlÔ¨QˇˇˇŃŃŃC† 9pŕďÖ+Ă0ĆÜż?ř#0Ćô//Żűß­—ÉŰL8Ŕź@ ÉŰŞďÖ744>ňŐ™3g5 }ŃŃŁG3ďßżŕŔĽŢ˙aäĎ.Čź-ăéÓ§§ĄĄ555UTTěŰ·Ź9¨ÁY<Ş™}9ĆX$řůů=ýôÓĚtwwwWWצ¦ćĆfąBŃnňĎ7Ƹµ­˝ún}G{ÇíŰĺg~<Ë<4mÚ4z¶|ź\ŻD"Q`` vŕ„777xÓ˝–6…Y†ŠimST×4ĐŔ8óçö ÜÓÓłó‰}äĎ.ČźńńńžžžS¦L™;wnTT”ö™†śĹ—š9Ń—B***233ÓŇŇčE#ôą§§g{{»ĽEÁśj6¶vź>c|ăFiaa=06zôčm۶eddTWW÷řŘ<—ýţűďűöíKKK“H$tŠ‹‹ \&W(•*3mÁ;»~S§ÝĽ¨čť>jÔ¨m۶íرăîÝ»ćx]®üŮů›s“$˝ŢxóćÍůůůçĎźŹ‹‹3án“ŕcÍ ®”µcÇŽ^x! €ţiooďíí­Ńh›äJ•Ú¬żŚ‹‹ŰÔ©Ó!ůďÜ©¤ÓćĎźĎŮ+z‰H÷.ŠĹbxSs‹ReĆ-'ĘĹĹőďźN˙ý÷;tOc```\äĎ.Čô1,ôĺyyy'Nśččč`~ďŢľ}űÂ… tß=ßÍËËK ÔÖ5¶´Zh Ź<2úń1ăS˙űž9kńůçź?sć s ˝\NNÎ/żüb™ŞL‚ śţIݞcGś—@omSXŕĆř‘Ahŕ'OýŹąŃ \űE>®ňgä,ôĺăÇĎž={ÇŽĺĺ儏>ú襗^‹ĹtŮÉÉÉÖÖönMmK«%Ö+¦ŞQýű÷W©ÔEż^˘[Ęb±řĄ—^ú裏!ĺĺĺ©©©S¦LůňË/»ĽOg1oßľ˝ĽĽ!D§÷‘Fą¸¸ĐŔĺ-‚)<<‚ţëĄűWöë׏Ž*//OIIácŕ: vAţŕa`ޱU (//˙ú믳˛˛|}}kkk˙ď˙ţŹŢ¶c…^űÇŽboíÎÍ)Mküß&0Ó)LŕĆ|zI@ţäßK<ÍpŤiîű&•J+++ăăămllbcc-ZdĚŻ_ż®Ńhč~şŤlmm]YY­V÷䎉ÝuďŢ˝­ďmůĎBţ:<¸ˇˇŢŰŰÇÉÉqŕ€GĘn—ýţűťˇCcŚ5Íőë×xod‘Häěě¬}C///sTNďő¸sçNoooŚńÖ­[Ť| üŻý+ťâččHW©Ôl]káŕč@żs§ň/Æ"„†®Ńh®]»6tčPĂžĺĐ{?ů÷ódšŹŻżż˙ĄK—aĽĎť;gäMOOž<Él#3§nZ ­MR•„śś˙F=5éóĎ÷ …Âĺq _~•ĺĺu´˘ŕĐP„PIÉe¦¤'ź|ňŁ #„ěíí“’’V¬X!‘HFŹýé§źnٲĹő×××766ž9sfܸqk×®•ËĺĆć8ČÄ›˘555ożývffćżţő/fb^^^ffć©S§®\ąŇÜܬ=~~ţرcé˙éŃŁŽŽŽÖ¶˙o(xÓ"„TWW˝űʲW—ÔÜ˝+‘„ÍΉ‹_ˇ˝GËĎĎ!TWWŻVß?ůnܸq:c577_ąrĺÔ©S™™™żţú+ť¨V«“““gÍšuîÜą'NĄĄĄ™ŁrąśRYYyěرěě솆†wß}—yT'pí{ÝhŽ˘wkô'sđ÷ @ŐŐŐ«ţ¸´W'pBH—ÎÁ| :ň7 Ţĺo!¤óéStä–––őëׇ‡‡GFF¦§§3Z±ŽŹ5ë0ŮŘ*ŤćŔ;wîś?đÁÖwe2™ĂĘ××Ě}až•••ÎśBˇĐÝĂŁ®¶¶ŞŞ: Ŕ!4lذłgĎľű••:­đőő}ôŃGéĄR©T*]˝zµ˝˝˝““ÓňĺËăââLU?=IcĚěY»v-=g066vůňĺÚ3w+pdŠájz clmmÍîďď‡ţü˝÷Ţ3řs0!Čň7ľäo<ŤFłlٲ‰'¦¦¦¶¶¶nܸqÆ ô@~jjjMMMNNŽL&‹ŤŤőóó›5kŰő"ÄĎšu¬/ĎČČ8}útffćŕÁuVŚćĎććfúéĽzőŞX,¶··§ÓéçŇJ(ÂŘ,÷]şyóĆë×ä#„¦<őď·72;Ő; ś›{ş®ľžöĺööövvvnnn‰„®QNNNťźŐů2Pć¸CďiźéééikkËlĹ«ŐjíSó´'„Ü»wO;pú}Š••5B–ľöŻ3xm]ťżżĆŘÁÁA'pGGÇÎ_¸†s0-Čň7îço<ćô)‘HdooĎś>ĄŃh˛łłwíÚĺęęęęęş`Á‚¬¬,Žô‹|¬Y‡iúňööö;vĚÝÝý3;99999Y[[_ąr…™N?‘jµé÷`tttěĚH˙hçĄRŮßËë­'EEM50?ĆŘŮĹ!t÷n 3144tČ!ăÇŹ7đD‰D˛uëÖ•+WĘĺňíŰ·GEE™ŞÚ¬¬¬¦Nťşyóćµk×*Šôôô©S»nĆŘw÷ĘÚÎśť]P÷7>Ó‚ü)ČźzŘň7Śž>E˙OaNźŞ©©‘ËĺĚÄAAAÜąa-kÖašľĽşşZ&“M0ţIŻýĐ9ŔÜŮďż˙Îě,BśűƢ6•ŠŠň.Zx«ô&Ćxá?­\ąÚ¶«Áäuíš{÷î1S ĐÔÔôŔ'nÝş599yâĉ"‘hÚ´ińńń˝)Ţ€×_=))éÉ'ź´¶¶ž>}ş1űÖş \eęŔ{¦_OďA&ůSżIđ.˙"„ÔÖÖfddś:uŠŢÉNˇP…Bş«’Ţżµµµó»ĽăŠeđ±f†iúňŔŔŔ\ŻP(ÚŰ˙<ë„î2y_ŢżżĆčŻĂß|kCXX¸‘ĆÄýú!„Ú´ÎÂł±±©­­}ŕÝÝÝSSS{\­‘č^¸÷ßż[ϲLŕ=ÓłŔ{–CďAţäo*üĘż3íłB„íÓ§ú÷Ĺ*•Ş˝˝ť&ßŇŇb×ŐĎ*}]‰ÉűK>Öl€ÉŽ—÷!Dűł­­­L&ÓhL|⛍ŤÍžŹ?óňň6ţHĆŘήBDĄ5b’­­-ß?í2pµZĂ…Qülmíú^ŕ: vAţćŁÝ™BÓ§† ÂLwwwwttĽvíZHHBčęŐ«fˇÖ?đ±fŘü·´´č¬E]nňô^@@`ĎN Ń^—¬¬¬ZZZLW ,xŹő±Ŕu@ţě‚ü-ŁŁŁăŕÁ»víŇéö0ĆÓ§OOKKkjjި¨Ř·oߌ3Ř*RkÖÁB_N©««»páÂożý¦ýaĄG&ĚúÖ(!¤­­!lmýç]kŞŞŞčP‰uuu¬WŘ]·˛b˙G BHˇh38‹…™äĎ.Čß’Ş««ĺrů„ BBB‚% ýÎŚŹŹ÷ôôś2eĘÜąsŁ˘˘´ďŰĂ.>Ö¬ĂrűŘóňňŽ?^ZZZZZŠ4h••UMÍźçm҆­¬¬Ěq*{wµ´¶"„ěěţÜ#×ŘŘŘŘظsçN¦ţ#F<ńġˇˇ¬Uiń[~<şÎú@ŕ: vAţl ,..îň!;;»Í›7oŢĽŮÂ%=kÖaŃăĺAAAS¦L4h››ĆřôéÓß}÷óčýű)ZY!dˇŇ h‘· „µ'ţă˙8q"!¤ľľž~Gpö@8˝V°ËŔ…Üř.kŐ8B¨®®Žë€üŮů‡‡ĺúrť;Ć „Ľ˝˝éýŚî—""„›éľoĆ#„456 „ú÷˙óîuR©ÔŰŰ!„1vwwwww5jk%ÁŘŔ9pâB¨©©é !Ä‹Ŕu@ţě‚üÁC…ÍĎ±ŻŻŻöf&˝\DŁa˙G9B¨är BČÝÍŤ™RYYéççÇ^E& 8ÝÇČ©Ŕ=´î5Ô×ůł ň}›×¤988´··—––ŇS[ZZÚŰŰÝ\]Ú¤ľŚŰ¬T*U]m-!ÄŰűţĄĄĄĄ®®®ĚífyĘŢŢľ˝˝ýćÍ› Â3WVŐ±¸/„˘8çŔŐŐU,łR’™@ţě‚üy„ w_é.vkfł/GŤ3ćÜąs´/§Çˇ}||úŮٶ)ŘąčÎťßBîîn̰+çÎť3f ‹%™ |Đ AôO¸ťťMk«Ǧ{ ßďT „ÜÝÝčnOÔ‡×ůł ňç‹Îw_á~ďÎnͬíc§wËCĺääĐ)Ěv±ZÍň^Ż’K—BÁÁĂ™’ľűî;Śqmm-ď®FÓ¦8bR˛Ř.BHÉŻ—BÇ˙•™ČÎVUćůł ň}E—ÓQG‹ŠŠÎž={öěŮęęęŰ·o·µµŃű1Éd2ĄRéŐߣ˛ŞVĄR[~Ż!äŢ=YŮí[á?:ĄĄĄE.—WVV>űěłC† ‘H$ŁGŹ~ôŃG»çčC­Vw\ˇPĐ»dÜ»wĎÓÓÓ«żÇi-[§ČĘţÜßĎ—Naź={¶vŕťG§ĺ>Čź]?xHřw9ÝOÎ ˛˘-??őęŐ&Lزe‹ťťÝÚµksss·nÝúÔSO}ńĹ!ڱZ­®­­µ˛˛˛ł±˛ĄLůá‡Óá!CŰŮŮŃ®úČ‘#aaa|đAnnîkŻ˝¦R©¶lŮ2a„իWk_’Hď“™’’bî[=BNź>=gÎś‘#GFDDüóź˙üí·ßGóóóW­Ze p„x?;Ö†JüáL.8ť˘/đU«Vé\j ůůCţ˝Çßüő!„ܸqcáÂ…‰$,,lÁ‚EEE„ú»hýúőááá‘‘‘éééܹĎŹ5ë0e_.•J—-[6cĆ ™LÖĺ ăÇŹ˙ú믏9˛xńb‰DB73çÍ›÷Ĺ_0Ý^sssGG‡›«łHdÝĺBĚŞˇˇáVéM„Px¸„NQ«Ő_|ńĹĽyóBVVV‰$>>ţČ‘#_ýőرcuŢ×5kÖĹâS§N}ţůç.\8xđ Y«mll\±bŢE‹Îź?˙ý÷߇……%&&jĎ@?|ř08Ć®R©čů>2™Śnm-´đöÝňŁŹŽ1¦çŃŔ1ĆLŕ‡îxCCáć›äů÷ßóׇ’0bÄÜÜÜÜÜÜÇ|őęŐôˇÔÔÔšššśśśü÷ż˙ÍĘĘb·TkÖaĘľÜÇÇgűöíű÷ďďňŃđđđiÓ¦yxxhOÄÖ¬ĺóŘ©—^z‰Ž4G7ś›››]\\ú{zÜ­©—·´Yć4!$/ďÂÝ»w…BáŁ#B™mä={ö¬_żŢ%ĐËU™[O…ÂŠŠ 3VŚX,NJJŠŤŤEaŚűőë÷Í7ßóD&pzŢlcc# ŐÔ·¶Yî ‚üü<řĐ:Ą[ŰŰŰ'%%˝úę«ô+X,Ů|Sü!˙Ţŕ{ţúřřřŢşu‹ŢşÜÖÖ–ţŔ«©©‘ËĺÆ Łłedd°Y¨>Ö¬÷Psđđ`ť&,žĺľś"•JW¬XQWWwňäÉňňr:].—WUUaŚ­…¨­­Ő¬§BęęëľýöĆřńŃ~śMZ^^~ňäÉşşş·ŢzK*•>p ǧ¤¤ÜĽy322ráÂ…ááá:wW6 ú ˇŃIĄŇŐ«W;::z{{/_ľüĚ™3\‚T*MHH ßľ}›5¤Ű@hEm]|XM«®ľ.;ű(Ćxô¨p?şäöíŰ4đ7ŢxC*•ÓÚ|'''#›ßKżvC ˙žáoţúhż/t ĆX x{{ÇĆĆ^ż~!$‹U*U{{;ť§ĄĄĄË1gKô€š cóúňŽŽŽÝ»wÇÄÄ=ztٲe~řˇFŁ!„‚ćććŰ·oüɧYßüź\ŢőÉt&Q__äĐ!BČŕÁBCC=vţöŰo'&&=zÔßß?&&f÷îÝztŚq@@ŔŢ˝{‹ŠŠŽ?îíídňjéG¤¸¸cĚlÎ3lll <·ŁŁc×®]4đ¬¬,8Ó˘ĆĆƲ˛˛Ź?ů4+뙬ŮLŰOô|ź/&„ 28$$™ţöŰo'$$deeŃŔwíÚE[čÓÝć›äĎ€ü{€ďůëŁýľTVV†††2ý_GG˝c¦»»»ŁŁăµk×čS®^˝Ş3X8ÔܬőĺłfÍ’JĄ‡^˛d‰H$Љ‰ikkű裏yšš›…Vššš}źî­(/7ůľ/BHŮ­Ň˙ÜßŃŃîîî6.ňĎ-ĄĄĄą¸¸Ěž=[$-Y˛äđáĂW®\™5kÖŐ«W ,-::zçÎťíííׯ_ß˝{÷ÜąsM[°www‰D˛uëVą\^]]˝}űö¨¨(}3ççç3/^Ľ¸sŕăć{÷hŕźíÝ[QQnŽšËnÝúü@&8ł/‘ţÜsωD˘Ĺ‹3_ąrEߢ<<JűĽÍŢÔIÉĎżđóO?!„ü'?1ÉĘęţ˝_ľřâ‹Ă‡ďŰ·ĎŢŢ^űµÎž=+‹ő>§W(ţűß˙ţí·ßĽĽĽ–,YňěłĎö˛Î¶˘ľľ>99ůěŮł"‘hÚ´i+W®Ô·mNŹĐn‘L&ŁĎ™3‡NW«5Ú‡…Eęjµş  Ź ü‰I­­…´‡˘;88h·îÜąsGŐŐŐŮ|s€ü!ăő˝üőˇß„ÉÉÉ—.]˛··ź:uęĘ•+E"BHˇPlܸńäÉ“ÖÖÖĎ?˙ü˛eËŚ§.88îµŢ˝g/B(-őCÝ×E!ÔłŽŚŹ5kŰ˝g݉űňŢ+//_¸pá[o˝5aÂşvi4š˘˘Ků1ĆŢŢ>“žě®5šPĎÔŐŐť:uânu5!dĚŃĂ˙DßBHnnnRRŇľ}űLĐn#„TTTĐŔéHÉTaař“źtuuíÍö!¤ˇˇáäÉă4đÇňçI§Oź¦űűűs˙>z¦ůł ňç‹ő‹&dÉľśפió÷÷_˛dÉöíŰüqz@H Śů¨»»Űń§ŞŞ¤d|dФ‰OŘ;ôdÔ˛ććć~Č-»UŠ …“źŕĎ<ÚŢŢţöŰo'%%=$Ł bŚ™Ŕ™Ó5{l„‡‡{Îń“UUŇű÷ |dФI“Ĺâ~Ýý®!„Čd÷rs˙ üÉÉ“ł !LŕĂ–Sg?» Đgp®/żxńâŽ;Ţ{ď=ťťEţţ~ó_zˇ°°¨¸ärŮ­ŇOn•>2hPđđ`?˙@ˇĐĘđ:FQ©Ôw~//ľt©ěvťřŘc#BC‚é^†ŤŤÍ¦M›Ö­[÷ᇆ‡‡›Ľu\C)(( kźJ1ö÷÷{iŢܢ˘K—ŠKţ <8ÄĎ/€î4L©TÝąSQüëŻÚ‡×y[[[&đ°°°‡íw äĎ.ČôÚÇN׫+VčG ! …âç ůׯß`>÷î#ŮOl/¶‹űőłłë‡jkkmimm‘É›š›JJŠë´F6tHDD­­­ľ5'??ź–Ńç×.cZÚÚÚz!Ż@'đÇ)¶ż¸­­BHˇhkimm‘·455ęţ—aCĂÂFöëׯËĺóľ÷U?» }ěpëxąń=(!¤Mˇ(ż]ńŰ•+uuő]ÍLŇťčććú×  aÆ<đ칇aíęn[ŰÚz¸1§Š<<ŰOäĎ.ȟ㺼9 ÇűrkćĘńňî®Wă~vvAAĂ‚‚†©ŐꪪęĘJi}CL&S´):”J„ČZdkgëŕŕŕŐßÓÓÓÓŰŰËřóQ1Ćááá~řa^»ŔĂÂÂŚ™źţ—ż Őh4Ri•TZe pďnŤ ĆŢW·ź´Aţě‚ü9®óŤV,së·Ţ`·fNôĺoľůfJJŠD"éîs­¬¬üü|™ÓILY»>ţřcć~Ľ}C~~> ÜČ/2ĆŘĘĘĘßßĎßßÄçjo?ő˝Ŕu@ţě‚üAßÉľ!ôî»ďjÄĚÚĄP(Ř®ĹôŢ}÷ÝĐĐP¶«ĐE·źúdŕ: vAţ ŹáD_Îĺ}J\®­Ç8Ű(şýÄvfÇŮ6BţězHňćŔ‰qŇô=„ÂÂÂđđpz«Í–––őëׇ‡‡GFF¦§§›uЬăcÍČÂ}9_BчŢ3r„ ĚťáąůNÓ"µ§p°H#ń±-|¬Y>¶…Ź5ëĂ÷¶ČĺňuëÖ1E¦¦¦ÖÔÔäää8pŕż˙ýoVV»ĺu‰Ź5# ďcgB‘Éd±±±~~~łfͲd˝!•J7mÚTTT¤s4‹SŤâE‘Fâc[řXł>|l kÖ§o´%99yÔ¨Qß~ű-BHŁŃdggďÚµËŐŐŐŐŐuÁ‚YYY,žŹ5#Kţ.W«ŐŮŮŮqqqnnn  ˇXěŐ{ĎÇÇgűöíű÷ďמHß鸸8WW×ŔŔ@ÖĺăăłcÇí" !kkkŁS …P(¤7ç&„ĹâÖÖÖÎOdń:r„“‡ó IDAT>Ö̰\_NCaî®/~1ňťfW_JžŹmácÍúđ±-|¬YŽ·…viăK—.­[·.!!ÁËË«¬ěţéĹb±JĄjoo§ő·´´ŘŮŮu^Hç;®t¶-őm臶ć.Y®/§ˇtttĐžO_(übä;m>!!!ôD<¦ľ”<×ÚůCţ–Äń¶hż ………………«V­˘†„„\ştÉŃŃńÚµk!!!ˇ«WŻ<¸ݞ-Ő”="kî’ĺúrwww ˝ECŹCá¦Q˝|§{¬¸¸řóôĄäąÖČň·$µ…ö‘„˛˛˛ččč‚‚„ĐôéÓÓŇŇŢ˙ý{÷îíŰ·ď•W^éÁ’ÍwÇu>Ö̰ܹo€†ŇŘŘX^^ľoßľ3fXěŐÍcLŐÔÔTQQÁÁFaŚűLň|l kÖ‡ŹmácÍúô¶ÄÇÇ{zzN™2eîÜąQQQ3gÎd»˘ăKÍ˝ľś/ˇt /Ĺ‹"ŤÄǶđ±f}řŘ>Ö¬żÚ‚1~ä‘G.^ĽHG§´łłŰĽys~~ţůóçăââŚAÎňřX3âÔřĺč®Ý{örtF‚ľŕ7čË~ľŕ7čË~ăb_ţůçźGEE1CÎBjkkCCC ÜâÖ­[‰ÄRö·nÝ  ť6mÚž={];#„Ш Ěz‰yG´óÄÎkĽ_˝ŃݵăˇuĺĘ••JeĚĚjµzéŇĄŹ>úheeedd¤Nž•••!!!!!!ąąąÚÓµ?ÉúŢBČŽ;BBBŚé JJJ´×ŻÇ{lţüů×®]c^Hßő­S´9:sVVVŇĺçććęĚŻÝ:OHHÓ:ŹńÍAÜěËź~úéššš_~ů…™râĉ >śĹŞú*‘HTRRRRR’——7iҤ˝{÷˛]ŃĂ®¸¸¸¸¸řčŃŁ666ĹĹĹôÝa»¨‡¬&w÷îÝ‹/ţôÓO!µZÝy;;»ââbťQŰutůľ`Ś_{í5ăŽĂŃĺüôÓOcĆŚyăŤ7Bôâňî¶ éiNż~ýhs0ĆúžH×ôK—.é|Ě^}őUă›ĂĹľÜĹĹe„ ŮŮŮĚ”śśśéÓ§cŚ ! aaacÇŽ}çťwÚŰŰ™íí-&ťí8‰DňŃG…‡‡GDDLź+“ÉÖ­[7jÔ¨Ç|Ó¦Mííí,´śU666˙űß•J%3ĺ§ź~zć™gFŚ1yň䬬,ťíJBÎ t:M;333""bܸqĚôćććU«V…‡‡GFF¦§§k4BÄn¤ňňňŹ?ţX"‘”——wÎŤywţóź˙üío _ż~=3ÜBŇî ă׎ŁGŹ>ýôÓ#FŚ6mÚůóçéw‘ÎD–aQ]~Ţ!S¦Likk ę©§d2˝űµľ%Ô××/_ľ\"‘<ůä“999ťçéüľôŚŤŤÍ¤I“nßľŤţ˙ý[MMM‰‰‰‰dҤIź|ň‰öOäŚ=:22ň«Żľ"„0Í1°ç†iÎäÉ“;7clkkŰăćp±/G=óĚ3999ô˝ŻŞŞúő×_˙ţ÷żÓ‡Ţ|óM„ĐÉ“':TXXČěŽ0¬ŁŁC©Tž9sfÉ’%[¶lqqq9wîÜË/żśžžNgHJJ˛±±9qâÄ‘#G®\ą’––f¦¦qVGGDZcÇ‚‚‚Bt›éŐW_ť={vAAA\\Ü{ď˝§3ccŁľ”JĺÝ»wsssçĎź˙Á÷HJJ"„ś:uęË/ż<{öěW_}… öîP(555?üđżżżľÜ:::ňňňŽ=zäȑ˗/ďرC{ vŹłvBßzë­·ß~;??˙Ĺ_ܰaB¨©©©óćA—ź·ăÇŹ;883˙1°„7ß|SŁŃśŻ÷ź7™LöăŹ?®[·ÎĹĹĹĎĎďµ×^cęň}én…„G}”.çńÇ˙â‹/´•Ëĺ§NťZłfŤ‹‹‹ŻŻď’%K´źkggG;c^ëŢ˝{´9®®®ţţţÚÍioo§g H$ں۲[ͱÜ8iÝbee5}úôcÇŽŃ]+/ĽđťŢĐĐ Ľ˝˝B„??żÚÚZ} ŃÎÂÚÚšŽ(´˙O­ŻŻW©TŁFŤ˘Ň}ćiçD"zpHŁŃ'%%ݸqcĺĘ•ˇ˝{÷~ţůçC† ńńńéüDBľ¬­­ťťťŃ˙ź0ĆŘËËK{¶úúzµZÍÄŽâÔŽ\ckkëŕŕ€ ć&č{A0`@cc#3¤ÝÝZ;hżsçÎĎ?˙|ëÖ­Ë–-›8q˘‹‹‹ÎÄI“&±Ů*‹čýç­±±Q řůů!„!ţţţĚCŢăaŚůĺˇPR(Ű·oß°asÔuúÖňőőe˛¶¶vrr˘ éVs…h7ÇĆƆŽÉFašłbĹŠn5‡Ł}9BhćĚ™łgĎ.***++›ZÓÔÔtďŢ˝={ö¨TŞćććλ}´ghjjb®$Ô†1vtt7nÜ|pďŢ˝7ndgg‡‡‡ÓwsűöírąüˇŤ˝şĚŤykč@ËéééĚY&úžĹR řÇȵCŁŃ¬X±˘¨¨H­V×ÖÖŇ/®.'ö=2™ěŢZ[[ J)µZÝĺ7%‹ÇŹ˙Î;ď466JĄŇť;wvž§Ë÷Ąg¬­­•J%S!ĆŘÉÉiüřńď˝÷-ŕçf©ŐjµZÝĺľqڱ˝˝=mNCCCeeeçćĐĎOqqqĎšĂŃľśzć™gîÜą3mÚ4í‰7nT«Ő“'OŽŽŽ9räâĹ‹™‡0ĆŢŢŢ .\şté¤I“hük%%%ÝąsgҤIS¦LQ*•kÖ¬1Y3¸Ť9ň4bÄůóç;;;'''cŚ=<</^üŇK/Íž={ňäÉC‡?~üŻżţĘ<ŃÝÝÝđ :’““ŰŰŰ'NśřňË//Z´häČ‘č!Ž˝—ôĺ&‰&MšţňË/ó, OwׇÄÄÄÄÄݰ°cÇŽmÚ´ !ÔĺÄ>†2nܸ1cĆŚ3fěرk×®EúĽąşşöďßěرűöŰo#„&Ož<{öěŃŁG3Ó»|_zŮşËPçj´Ť7vttLś8166vöěŮVVVúžŢ›ć0ÇËCCC{Üó'TVVΚ5+//ŻÇK¸uëVtttĎ.7ěÇÜĽył‘g[#„čőYłf]¸pˇgG!eeeĆ4Ć<şłk×®öööššš}űöéÜŮŤS /Ŕmmmťďáj z×™3gš°äääsçÎŤ=zĆŚnnnË—/ďîZ[[iszpŐ\FF†ńÍ}ěŹÁ>v€÷ /ř úr€ßţŻyĄ„ő/âÁIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_raster_item__inherit__graph.md50000644000175000017500000000004012052741142024724 0ustar gudjongudjon062cd39a7f966fe503b3285d8f3ec3faqwt5-5.2.3/doc/html/class_qwt_compass_magnet_needle.html0000644000175000017500000004473312052741164022767 0ustar gudjongudjon Qwt User's Guide: QwtCompassMagnetNeedle Class Reference

#include <qwt_dial_needle.h>

Inheritance diagram for QwtCompassMagnetNeedle:

List of all members.

Public Types

enum  Style {
  TriangleStyle,
  ThinStyle
}

Public Member Functions

 QwtCompassMagnetNeedle (Style=TriangleStyle, const QColor &light=Qt::white, const QColor &dark=Qt::red)
virtual void draw (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const
- Public Member Functions inherited from QwtDialNeedle
 QwtDialNeedle ()
virtual ~QwtDialNeedle ()
const QPalette & palette () const
virtual void setPalette (const QPalette &)

Static Public Member Functions

static void drawThinNeedle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)
static void drawTriangleNeedle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)

Static Protected Member Functions

static void drawPointer (QPainter *painter, const QBrush &brush, int colorOffset, const QPoint &center, int length, int width, double direction)
- Static Protected Member Functions inherited from QwtDialNeedle
static void drawKnob (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)

Detailed Description

A magnet needle for compass widgets.

A magnet needle points to two opposite directions indicating north and south.

The following colors are used:

  • QColorGroup::Light
    Used for pointing south
  • QColorGroup::Dark
    Used for pointing north
  • QColorGroup::Base
    Knob (ThinStyle only)
See also:
QwtDial, QwtCompass

Member Function Documentation

void QwtCompassMagnetNeedle::draw ( QPainter *  painter,
const QPoint &  center,
int  length,
double  direction,
QPalette::ColorGroup  colorGroup = QPalette::Active 
) const
virtual

Draw the needle

Parameters:
painterPainter
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
colorGroupColor group, used for painting

Implements QwtDialNeedle.

void QwtCompassMagnetNeedle::drawPointer ( QPainter *  painter,
const QBrush &  brush,
int  colorOffset,
const QPoint &  center,
int  length,
int  width,
double  direction 
)
staticprotected

Draw a compass needle

Parameters:
painterPainter
brushBrush
colorOffsetColor offset
centerCenter, where the needle starts
lengthLength of the needle
widthWidth of the needle
directionDirection
void QwtCompassMagnetNeedle::drawThinNeedle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
double  direction 
)
static

Draw a compass needle

Parameters:
painterPainter
palettePalette
colorGroupColor group
centerCenter, where the needle starts
lengthLength of the needle
directionDirection
void QwtCompassMagnetNeedle::drawTriangleNeedle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
double  direction 
)
static

Draw a compass needle

Parameters:
painterPainter
palettePalette
colorGroupColor group
centerCenter, where the needle starts
lengthLength of the needle
directionDirection
qwt5-5.2.3/doc/html/ftv2lastnode.png0000644000175000017500000000012612052741134016607 0ustar gudjongudjon‰PNG  IHDRÉŞ|IDATxíݱðřScOŹx@ –¨y}IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_wheel__inherit__graph.md50000644000175000017500000000004012052741143022455 0ustar gudjongudjon68a782c03c7b5007527cba32fd069378qwt5-5.2.3/doc/html/functions_enum.html0000644000175000017500000002477312052741152017426 0ustar gudjongudjon Qwt User's Guide: Class Members - Enumerations
 

- a -

- b -

- c -

- d -

- f -

- h -

- i -

- k -

- l -

- m -

- o -

- p -

- r -

- s -

- t -

qwt5-5.2.3/doc/html/class_qwt_scale_div-members.html0000644000175000017500000002071312052741142022020 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleDiv Member List

This is the complete list of members for QwtScaleDiv, including all inherited members.

contains(double v) const QwtScaleDiv
interval() const QwtScaleDivinline
invalidate()QwtScaleDiv
invert()QwtScaleDiv
isValid() const QwtScaleDiv
lowerBound() const QwtScaleDivinline
MajorTick enum value (defined in QwtScaleDiv)QwtScaleDiv
MediumTick enum value (defined in QwtScaleDiv)QwtScaleDiv
MinorTick enum value (defined in QwtScaleDiv)QwtScaleDiv
NoTick enum value (defined in QwtScaleDiv)QwtScaleDiv
NTickTypes enum value (defined in QwtScaleDiv)QwtScaleDiv
operator!=(const QwtScaleDiv &s) const QwtScaleDiv
operator==(const QwtScaleDiv &s) const QwtScaleDiv
QwtScaleDiv()QwtScaleDivexplicit
QwtScaleDiv(const QwtDoubleInterval &, QwtValueList[NTickTypes])QwtScaleDivexplicit
QwtScaleDiv(double lowerBound, double upperBound, QwtValueList[NTickTypes])QwtScaleDivexplicit
range() const QwtScaleDivinline
setInterval(double lowerBound, double upperBound)QwtScaleDivinline
setInterval(const QwtDoubleInterval &)QwtScaleDiv
setTicks(int type, const QwtValueList &)QwtScaleDiv
ticks(int type) const QwtScaleDiv
TickType enum nameQwtScaleDiv
upperBound() const QwtScaleDivinline
qwt5-5.2.3/doc/html/class_qwt_plot_raster_item__inherit__graph.map0000644000175000017500000000074412052741157025035 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_compass_wind_arrow__inherit__graph.md50000644000175000017500000000004012052741137025254 0ustar gudjongudjon069d584081cfc29936c1b3e0751e2445qwt5-5.2.3/doc/html/class_qwt_plot_dict__inherit__graph.map0000644000175000017500000000023112052741156023430 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_array_data-members.html0000644000175000017500000001343412052741137022204 0ustar gudjongudjon Qwt User's Guide: Member List
QwtArrayData Member List

This is the complete list of members for QwtArrayData, including all inherited members.

boundingRect() const QwtArrayDatavirtual
copy() const QwtArrayDatavirtual
operator=(const QwtArrayData &)QwtArrayData
QwtData::operator=(const QwtData &)QwtDataprotected
QwtArrayData(const QwtArray< double > &x, const QwtArray< double > &y)QwtArrayData
QwtArrayData(const double *x, const double *y, size_t size)QwtArrayData
QwtData()QwtData
size() const QwtArrayDatavirtual
x(size_t i) const QwtArrayDatavirtual
xData() const QwtArrayData
y(size_t i) const QwtArrayDatavirtual
yData() const QwtArrayData
~QwtData()QwtDatavirtual
qwt5-5.2.3/doc/html/class_qwt_picker_machine__inherit__graph.png0000644000175000017500000004371112052741156024431 0ustar gudjongudjon‰PNG  IHDR{đn\SóbKGD˙˙˙ ˝§“ IDATxśíťy@GßÇgC.Á0 (—Šŕ­ "€‚U)ҢśŢE.E}ĽµV«âŠEĄúhAQÄłŐŠđ(GE)ärßáNHöýcű¦1 áÁůü•ĚĚÎď;“ÝofgwgEČśĽ@ /č8Dv@Ç@ ˛:‘xy € >üřńcy«€ $h4Zxx8…BNDŕµ*Hw@ÄÔÔtÔ¨Qň0DGG_ż~}ůňĺ‰pŚé."{"AÄá<‘Đq 쀎@dt"; ă@ ŮŇ—°X,www "‘¨ŁŁX__/}“ěěl2™Ś}@„ ÓéÎÎÎĄĄĄÂe¤×Đ RRR.\¨¬¬LˇPĚĚĚ=z$"©§qĄ´˘âE:gńâĹÂą(Šjkk÷´íťÉîuöč8>ÉdÎ1JĄ>}ú´®®.&&&''gÖ¬Y]šŽ‰„ţ?d2yÍš5¶¶¶>üúők;;»E‹ĺĺĺ{zz:::¦ĄĄ ô.ng­H÷CŕńřÄÄÄĘĘJAJBBB÷űV:ýÔĂ@!n¸~ýşô2sçÎőóóNáóů›6mš7o^pp0Š˘%%%€C‡ˇ(ZVV&Ľ+&%% «(Š&''ÓétE™L¦ ‹Íf{yyŃh4±k×.á\>źďĺĺekkŰÚÚŠ˘hSSÓşuëÔŐŐGŚÄĺr™L¦¶¶ö©S§†Ęd2­¬¬Ž9"q۶mTŘ‹¸Â›´EŃşşş•+WŇh´‘#Gţç?˙áp8±´µµĎź?Ź…¸zőjUU•H縺ş;vLPł······ \ff¦‰‰ ™LÖŇŇş|ů˛tŮaaaÆ SWWŹŚŚn‹¸ ¬ńΔľ3 ťě3Đq ݢKÇihhŔápůůů"é111cĆŚ9zôčÂ… Q˝ví•Jµ··Ç>OžźżvíÚąsç¶´´`%W­ZĺććVUU•——gbbrâÄ &“I$˝˝˝ËĘĘŘl6‡+))o‹DIÝŚ+Ą(Šş¸¸,Y˛¤˘˘"''gҤI‡Ž5dČŤ7644üđĂÇWňđáĂÉ“'cUµ´´¨ŞŞĆÇÇ Â}ýő×űöíkmm WWW—"A,†††H q;SĘ΀Ň{ştśĽĽ<AÄ˙úŇÓÓ)Jff&…Bárą>>>;wî¤R©6lضm›đľ.<äˇP(‹/...F…އÇăľöěŮł´´4,×××—@ TVVbY‡@ Ô××c_ź|ř …H$Ňét'ůŔÄáp+W®Ľté ""ÂÝÝ]8799ŮÂÂÂÔÔ4..NşléÄs;ëĚ^Ň7P©TKKËÓ§O RŽ?^PPpúôiŔ‚ bccËËË ­¬¬nŢĽYRRbffÖŁ(  8P#444""" ŕÝ»wmmml6{ܸqŻ^˝Úľ};ŔŢŢ>,,ĚĚĚ A++«3gÎĚ›7Ź@ `§6\.·;!H$’““ÓćÍ›«««sss7nÜČăń8ŽD"{yyůřř`%ťťť«««+++]]]CBBDj;věXppđľ}űLćű÷ďŹ=ô)qĄ‹wtt ¨¬¬ĚÍÍÝłgĎŠ+¤o"Ţ9†††:::Ř쌢˘˘ ó<_[[Ěăń:“ÝSşÓ™ÝĄË“1í޵*EóóóÝÜÜ ‘HÔÓÓŰ´i“±±ńž={PełŮ»ÔR\\ GQ´±±ŃŔŔ€Bˇ<ţ\ä*ŹáŮŠšššożýVUUuřđáß˙˝Hn]]ťşşú•+W°Ďnnn4ŤFŁ­^˝şĄĄEüBRRR’­­íСC•••ÍÍÍ=z„v2sÜ͸â!„©®®ţöŰo‡ 6bÄ­[·Š\«l(ř,±sBCCńńń"[íÝ»—JĄŽ=:..ÎĐĐĐĆƦKŮâŃ%ćJěĚÎÚ(@â>×Çt AÄ×:émmmŮŮŮS§NíUωű <«‚ô/d2Ú Dt"; ă@ ŮČč8Dv@Ç@ ˛:‘đí1îßW«±H„ÇCą\>™¬Đ! r:¤[ššž?ľ?jVPP"“őI$]"qDKK›ťŘQ ˛‡BˇLš4I$Ţs ‘%%uf>|ůçźů<út;» öö“őôÔä- ŇŹ@ÇČ”ĽĽĘ;wŇ>ĚüűD++[Ű 66ăi´ˇň–‘Đq ˛ °°ćÎťôŰ·Ół˛J ŞťÝÄůó'š›Ź%‘ŕyý—tH?’ź_÷ęîÝ799ĺZZ´eËŚ-š:nś†ĽuAätHßS_ßrëÖ«¸¸Wiiď)˛˝ý¤%K¦YXčăńđnŚ/č8>Çă?}š}ăFęÇ™ 8;»‰Ó¬­ Dxęůč8> #Ł82ňĺÝ»oŘěÖٳǮ\9kţü‰pŽ"tHďijjŹ‹{uýzĘ_˝g0¨K—»¸ŚË·.Čç tHo`2ËžܽűZAçädäělll¬‹Ău˝08ä :¤ (úěYî… IŹżĄÓ‡ş»›»ą™©©Qä­ 2`€Žé -‘‘/##_ÖXXčŻ^=gŢĽńpPé)Đq ]PSÓtţ|BDÄ‹¦¦6{űÉ«WĎ™1CWޢ x5Ň)ĺĺ aaDFľ$p+WšyyÍÖÔT•·(ČŔŽq ČÍ­8zô·ű÷ßhh(Ż_oíęjިH”·(Č`:ä#ŢżŻ yű—††ň† Öß~kJ&ä- 2x€Žů‡˘˘šßoŢLŐҢůůŮ::N'ŕâX>Îă@@~~ĺ‘#żŢż˙fâÄ‘.xŰŘŚ×=Ň'Ŕ1ÎMUUcHČŁČČ—::ô€€ůK–LUP€[Búč8_(ÍÍígĎ>={ö:}čÖ­ ¦Á›k 2:ÎG{{ÇĎ?'ś9ó„HT ˛˙ć›™p Ě€ó8_<?**9$ä›ÝęďoëĺeŻyCd tś/…»w_;öĹŞôđ` ׆Čč8źÔÔ‚ýű殮,^<ő矽ƌQ—·"Č— tśÁLEEáC˘ŁSőő5""ÖĚ›7^ŢŠ _<(d0Âátś9?vě¶©S÷\˝ú˛Ł÷éuž>}ZŢ{+dŔ`ii)q/‚ת!ż˙ţvĎž¸ňňźą>>óúę1…ĺË—oÚ´©Oj b^ľ|yâÄ ‰ŢĎŞyy•;wĆ$%ĺ8;oßţŐđá*}[˙¨QŁ–-[Ö·uBRĆ1Đq ÍÍí‡=řĺ—çşşj7n|7{öXy+‚@$g0ťzčЦ¦¶Ý»—xxĂ'0!ź-Đq699ĺ»vĹ>ž·t©ŃÎť‹ ey+‚@¤g ÂĺňBCăOź~¬©©zĺĘZ++y+‚@ş:΀$-­ (čƇµ›7Ű­]kOŁ řߣ¶¶yÝşËK–ś;–ńüůNźyźˇÝ°X,www "‘¨ŁŁX__/}“ěěl2™Ś}@„ ÓéÎÎÎĄĄĄÂe¤×Đ RRR.\¨¬¬LˇPĚĚĚ=z$"©§qEZAˇPlllŢ˝{×#U"}˛xńbá\Eµµµ{ÚäÎÔöşëz tśDtt޵őá´´÷—/Ż÷d0¨ňV$&“9cĆ *•úôéÓşşşśśśYłfui:H$’ŕ†±ŚŚ 2™ĽfÍ€A[[[ź ~ýúµťťÝ˘E‹ňňňŠ‹‹===ÓŇŇzW¸EEEăÇŹ÷ööîµH<źXYY)HIHHč~—J§ź:V2ź~+*D×®\yNS3p׮؆†VąhX¶lٲeËş,6wî\???á>źoaa±iÓ¦yóćŁ(ZRR8t芢eeeÂ;dRR’𱊢hrr2ťNGQ”Éd ˛Řl¶——ŤFc0»víÎĺóů^^^¶¶¶­­­(Š655­[·N]]}ÄAAA\.—Édjkkź:ujčСL&ÓĘĘęČ‘#·mŰvŕŔA…˝+Ľ FZZšŞŞ*öY\’xÍUUU"}âęęzěŘ1A…ŢŢŢŢŢŢ‚(™™™&&&d2YKKëňĺËŇŐ†…… 6L]]=22R¸ XĎś?ŰäęŐ«RKáúőëťy tśĎťŽ^hčc=˝­˙ü3_ŽJşă8 8.?_TgLLĚ1cŽ=şpáBEŻ]»FĄRííí±Ď“'O–xxŁ(ZZZęęę:ţ|‘,OOO‡ĘĘJ&“9jÔ¨ŘŘX,—ĎçŻ]»vîÜą---XÉU«VąąąUUUĺĺ噜8q‚Éd‰Dooﲲ26›ŤĂáJJJÄŰ"QR7㊴˘®®Î×××ŮŮą3IRjÔöđáĂÉ“'c5´´´¨ŞŞĆÇÇ ˘|ýő×űöíkmm WWW—˘Aꆆ†~řACCC¤ĄC† ٸq#–;|řp)‚Ąg ’‘Qlk¬ĄµůčŃ_ŰÚşřcéoşă8yyy‚˙¦§§S(”ĚĚL …Âĺr}||vîÜIĄR;::6lذmŰ6áť^xČCˇP/^\\\Ś ŹÇ |íŮłgiiiX®ŻŻ/@¨¬¬Ä˛8@¨ŻŻÇľ>yňÄŘŘ •a±X‚đxž;wśîÇi€JĄćĺĺu&IJÍ<OSS3==EѨ¨([[[a_ËĘĘjnnćrą—.]’®PUU…˘čŰ·oE(1W˘`é»Çó8ź)\.ďäÉß—,9Éăˇqq~›7/ ‘Ŕ…E555AŠŠŠDŇKJJ444&L ˘˘’–––””äęęJ§ÓÓÓÓěíí… ŹŘlöť;wFŽ)\ ¬¬ŚĎçëęţójPsss###@{{;‹Ĺš2eĘńăÇ%ą\®ŠŠ 6;wîÜÂÂB‘HTSSĐh4Lžpý™™™áááâ­ë~\‘V477{zz®^˝ş3IťŐ, ‡[ąrĺĄK—îîîÂąÉÉɦ¦¦qqqŇŐ‰D:ťŽU(ŢFńÜÎú°—H÷*\ČĘ*±µ ÖŃ :yňw§CŢrţˇ›ó8ÖÖÖ‚ŻÇŽc±XvvvAAA(Š®YłfË–-ęęę|>ßŰŰ{۶mĘĘʧłł*aYmmm8®¨¨Kż˙ţ­[·L&@hkkKMM%“ÉL&+©   řnjjz˙ţ˝HŮłg˙÷ż˙äîîîčč(.©űqĹ[ńúők%%ĄÎ$uVł€¬¬,55µââb•ććfAzUU‡KMMEQôďż˙–®V LĽ~‰ąwúóŁ( Ç8§ăŔ{vvÇ”•‡$$üÇĎĎć3Ľř-ťĐĐĐ€€€wď޵µµ±ŮěqăĆ˝zőjűöí{{ű°°0333A¬¬¬Îś93oŢ<€ťÚpąÜî„ ‘HNNN›7o®®®ÎÍÍݸq#ŹÇŕp8‰dllěĺĺĺăă•tvv ¬®®®¬¬tuu ©íرcÁÁÁűöíc2™ďßż?zôhTTTPPЧÄGQQ±µµµŁŁC˘$‰5‹÷‰ˇˇˇŽŽ6;ٍ¨(HÇf<_[[Ěăń:SŰSşÓ‡=@şWAdÉë×EVV‡FŹŢń‚ĎçË[Ž(Ýă (šźźďććĆ`0D˘žžŢ¦M›ŚŤŤ÷ě٢(›Í&Ř5—ââb@xx8Š˘ŤŤŤ ĺůóç]ŽqP­©©ůöŰoUUU‡ţý÷ß‹äÖŐŐ©««_ąrűěććFŁŃh4ÚęŐ«[ZZÄ III¶¶¶C‡UVV677ôčÚÉ?7㊇`łŮ ×®]“(IbÍű$44/zďŢ˝T*uôčŃqqq†††666]Şíć§3ÁR2Ćëă|p8ÁÁżť;÷ÇŚşÇŹ«­M“·" ,_ľpăĆŤ^lŰÖÖ–ťť=uęÔľůąqㆋ‹‹Do“‘žŚŚâ€€¨˘˘šťW¬0”ďĂ$“ÉĐn :Ž|áryGŽüzîÜFF:ŹoŃѡË[Ňż@Ç‘˙ý! ŕj~~Ő¶m ׯ·†Żß…| @Ç‘(Š^şôl˙ţ»şşj÷îLś¨)oEŚ€Ž#kŞŞŁž>ÍްaîÖ­öîâ7ň)@Ç‘)·n˝Úľ=šFŁÜ˝0mš–Ľĺ@ ˛:ŽŚhjjß±ăćÍ›i«VÍŮąsQ_˝ŃX@Ç‘)),_ß+ÍÍí.xŰŰO’·śŢ“hkk+łpř–%.—@ŁUË,(äÓ©¨¨č, :N˙"¸ţmeepěŘ7jjy+ę=ťÝżß·p8 l6©ˇŘĐ@jiÁ†ĺŽÍŚw) ZTUUW¬X!1 ŢsÜŹĽ_˝qc$“Y¶oß×őÖľOEŃśśŠÔÔ‚¤¤ś”VE›@P05mb˘kb˘7}ş¶’IŢ!}tśţâÁŚ  ëęęÔĐĐ•đú·(Šţý÷‡””‚ÔÔ‚ääüĘĘF"?s¦ć2FF:ŠŠDyk„ô ĐqúžööŽ}űâ._~áîn¶gŹś$ĆŔ\&))'%Ą =˝°şş‰D›čÍ™Ł?c†î¤I#‡ .3řŽÓÇĽ}[˛~ý/ŤŤ­§OŻ´°Đ—·9Ă磙™˙¸Ě«W…55M ;c˛°Đ?^ʇwZY@ÇéK~ţ9ńŔ»¦¦ŁOťZ1 '‰?.——ž^šZ“ž^ŘÔÔNĄÁΠË@ ăô őő-›6]űý÷·˙ůĎ ćâp_Ö$±°ËĽzUŘÜÜ®¬¬ť.™čN  ź`@ÇéRS ľű.‚Çăź9ă6kÖhyË‘\.ďĎ?óSRXŘSss»ŞŞŇěŮc-,ôgĚĐ3Fş Dč8źźŹž8ńđäÉß­­ OśřvŘ0%y+ę_8śŽädć2ýőľĄ…CŁ 53caˇoaˇ˙y.$ů¬€ŽÓ{ŘěV˙«ńńY›7/đőµ¬gRíí))¬ÄÄś”VffIk+gÄ3ł1&&zĐe =:N/ÉĚ,Y»öR[÷ěYw=yËécÚڸؤLRRNVVIGÔ¨a––ăfĚĐ51Ń.é5ĐqzĂ™3ń‡??â‰ßR(2zE|Ăf·%'秤\F[›†ť.™č2Ęň @Çé«JI‰Ä`P…››Ű·ląq˙ţ›Ý»—¬Ze1Đ\`ł[Ţa÷ţb.ŁŻŻ]Ɔ.é ăH†ĹŞ˛¶>¬ŞŞż…FŠ%fg—­Ys©©©-,ĚÝÔt ^“jhhILĚÁ\ćíŰ>ť4i$v{ćĚŃęę_čmDŮG(Š::†ľzU02ŇŽŽöÁăq·o§]ź>]ű§źÜ4P¨ŻoIJĘÁîýÍĎŻDQtâÄ‘Ř@fęT­/öfEěŽ#_~y±cÇM>((ŕV¬0ŁPH?ýôÄŰŰâż˙]2PÖ ­­m~ţ<s™ĽĽ €Ŕe¦O×p¦ @ÇĄĽĽaöě­­AÇ 2}şÖÚµV‹ËčŤK\.ŻwľVVV˙ěY.¶ňCaa  0uŞö´ä´iÚC‡Âe r®Č%ĘîÝ·¸\ŢÇ>Śfd|Í%áĆƶîFG§]¸ŕeeeĐťMJJę^ĽČvSÓŃÎÎĆpqČgtśŹxř0óţý7"‰( ř|ÔĂăçřř­ýzWń“'ĚM›˘jk[ř|ţŁG™RçÇş§OłSRX©©……5Řâ2ËŔĹe ź3đ¬ę_ZZ8?VT°ů|ľx.Ż0{öŘČȵýqoqEEĂ–-7?ÎÂálţHG‡ţâĹNá2EE5Ř-yŘBypqČ@ŽqţĺرߪŞ$Ű 4!á]CC‹Şjs"#_îŰw›Ăé`v(,¬©Şj¬­m^Ž[\főę9pŮČŽqţ!3łÄŢţŹ'ÚD"ľŁG&,ääd4w®a--­ şžŤ Ŕk0ŃĐP.+«'ńÓ¦i™™Ť15 Ď 8Ć.—çăĂáx<–‚Çăx<ţ!D{űÉË—Ď03Ó·k/đůčĹ‹I‡Ýçpx( Ä}ŹWĐŐĄź>˝ÂČH‡D‚?dweřß˙žĺĺU (ŔlA€……ľŁŁ‘ťÝÄţxlŠĹŞ ¸ú×_…( <Ćär;**Řffcú<:"GDĎŞ˘ŁŁëęęäĄF.47w„„äsą|ÚÚŠ“&)ŹO2¤żnóËÍmŠŽ.árů]žÎ"ňöí**Šý¤¤§|űäSX¶l™ŞŞŞHâGcś,_ľ\†’>¨TKŹÝÖ–SZÚüňe˙Ć"“őUTěDŘŃř(Š"€Ź®‚ˇ(šśĚ˛ł›Řż‚şÇ»o@zÍË—/˙÷ż˙‰$~ä8MMM€?ţřCv˘ľTš›9őőí íuum í íőőm55mµµ­ŤŤíÍÍ\¬X[Wľ:`űĽÎé&Ë—/onnO‡ó8ňAI‰¨¤DÔÔ”üĺ޽߫¨0~üń¸ˇáp @úxCÇç‚ D"Ú dđČč8Dv@Ç@ ˛Ł—ŽSVVöăŹ?:99ŮÚÚ~óÍ7gÎśÁ®eHˇ¨¨hţüůŘk!öěŮSSS#\Fz = ·cÇáDE]\\zZ›D˝SŐ'pąĽěě2ą„–‹Ĺrww×ĐĐ ‰:::őőőŇ7ÉÎÎ&“ÉŘD:ťîěě\ZZ*\Fz =B8‰D266~üřqO+‘R§H:+ßťvaŐ.^ĽX8EQmmíž6\bÄŢu`/čŤă®[·NQQ1$$äîÝ»ß˙}qq±ŹŹO—¦#€@ üń˙\Ľx‘H$´´´=zÔ IŇQPPxóćŤđ~˙ć͛N?i–źŹţůgţ¶mŃ'îš;÷Čť;鲌.&“9cĆ *•úôéÓşşşśśśYłfui:H$ú˙dddÉä5kÖ ÚÚÚú\° \iiéŞU«™Lf_Ő)҉tż]x<>11±˛˛R’ĐýŽ•N?uŻ8˝qś“'OÚÚÚúűűkii‘Éd}}ýüQEEĺ—_~ŮĽyóőë×555ÖÖÖQQQ€ÚÚZkkk.—kmmÝĐĐ \ŤF[ştivv6řxĽĐŇŇräČ''§‹/ o‚˘č‘#G¶lŮÂápmmmÇŹwtttvv>{ö,ŹÇ+**úć›obcc.\XTT„ĂáfÍšőűďż jxô葥ĄĄŕëű÷ď7lŘ`ggçââ"°ŹÎÜąsgÉ’%ŽŽŽŘ˙ˇđŘí›oľąwď¶I||Ľ®®ÎÄÄäňĺË</##ĂÉÉ)66–Ďçżyófć̙…±ÁöYQQqęÔ©[·n.ĐŃŃńűďżGDD¨¨¨¨¨¨ěŢ˝3@hhčożýM"‘°’Ź=Š‹‹SRRRVV^»víąsçLLL:::Ö®]«˘˘‚ť=±Ů켼Ľ1cĆ<ţ|ܸq4Úż«®^˝ZCCCAAŹÇc7Jv&EQOOOEEE Á߀öövá\‰ňDüş3 Şbc˙ŠŤ}UPPE (pą<@GGgË÷ČźŞŞ*E1‹FOOŻ˘˘bÁ‚űöíëččHJJňőő=}ú4ŹÇKHH°··.ŚýĄcź)Š••Ő… „ pąÜČČČwďŢ©©©©©©EEE ţţţ˙űß˙JJJ† ‚•üĺ—_ŞŞŞ”••étúˇC‡¶nÝş`Á‡sčĐ!555ńSQVöĎÔ ŕŕÁÚÚÚx<ž@ `tLFNNÁ`0»víúć›o¤7ˇ˝˝=::://O]]]]]}ďŢ˝{÷î]˛d‰ zkkëž={¨TŞŁŁăţýűĹ{ŘĆƦ¦¦ćőë×S§N˝}ű¶±±ń#ąť‰ď+E÷îÝŰY q{2 @\a—ôŘqTTT•••ÇtZuuő°aĂttt†úîÝ»ŚŚŚ˙ţ÷żńńńąąąŻ_ż .L ¤Ď}ÔÖÖňů| ěëĉEEE\.·´´tôčŃŃŃŃŘąqmmmGGǢE‹Dâńxě‚ ¶¶¶żýöŰĆŤ=z$2×Ëd28€ ŔI;€Çă±1šÄÁ…xngňş$;{ŘěŮ?âp¶Bf7â (úóωâ+Ąö9D˘¦ô2jjj‚éé}ôZä’’ Ť &¨¨¨¤ĄĄ%%%EEEEEEĄ§§'$$üôÓOÂ…I$’ô …˛˛2>źŻ««‹}577dgg···łX¬)S¦?~;3*++ărąÂŽŮ‘HÄ>Hl¦`Ç.–śśĽrĺJAFŤ%,CGGű*Đ#Ą ĺĺĺÁ&zzz>|.@$±± 'ůä‡Ă­\ąňŇĄK!!!îîîÂąť‰ď+éÄs;ëÉ^ĐcÇÁ†$±±±>>>XJttôěŮłccc±ö$%%ŐÖÖjiiMť:5!!ˇşşz„ R¦ëĹÁ9­ŞŞÂ, 99™Ëĺjiiáńřďż˙žĹbůůůŮŮŮiii©ŞŞâp¸;wî())ÚÚÚ„˙dŘŮٸ¸¸Ľ}űvßľ}XzCCĂ‘#GÂÂÂĆŤWPPśś,E€ôłń\‰ňşßÝaȢ ž/olÄŁhĂ+*•jiiyúôiÁÉ6uúôiŔ‚ bccËËË ­¬¬nŢĽYRRbff–źźß}% đáĂě¸zđŕ‡Ă100 111˙ý·………‡‡‡ÁPPP¨©©Áţš››«««[[[Ąü÷ďß711Á> ŠUWWŻZµ*99ŮŘŘ833ó×_Čx˙ţ=v<t©űŢDäo»;çČ–––AAA/^ĽŽŽ.**ęR¤x_őt7–Ř“]J•Hož«ň÷÷÷óóCQÔÁÁÁ`477»»»:›—211ůńÇŤŚŚ™:ujHH±±1ŹG„Ďçws‰@ Ě™3',,,  ±±ńäÉ“ëׯ B ĆŤgoorüřq`iiyćĚ™uëÖˇ(Z‘ëĆŤ...˝[­‚ĂáŤ׬ëöíۧ¦¦văĆ ‘ôĚĚ’[·ţЉI«¬l$ńN‡‚îŔĄ˛㸸¸ônµŠ¶¶¶ěěě©Seô~A™ikk‹ťąÄĹĹíر#++Kޢ>°Ő”Ä÷á>űĂ$‰Đnú›‰5wď^ňęŐľŘŘŤ..3†%óx|•!ňÖŐd2yđŮ ř—ałŮ………Ř­[ňV4€ëă rśˇC‡Ou9ŢÇăIxĂNßŇý7äČä®oc• ŘľńY-ŽůĚńôôO} đ$ľ×jÓÔÄÝ»÷/ě-Ŕşş”3Ô§L¦¤Ô_‡zVVÝĄK9oŔ˝ř Ü7 ź‚ŤŤŤř[€EçËäüů„}űâP ‚ A3ł1˖Ͱł›HˇôýâŻUUŤ;wĆÜ»÷‡Ăa‹QHD__ăéÓm}‘#Đq€ĎG/>™™ůA° ‡ ‚˘čÔ©Zß|3ÓÁaZź[Ď￿ݼůZCC«Äµo…™3GŘéHpş 2H€Žó™™%ööÇx<ŃŢPP@ř|@"á,äělvÄn-f Čč8ńňeľłóń>!pŁFŃ>ܬ¤D’¸aźđä sóćkµµ-|>ßÍmÖÁť.ŔŢŇÂůëŻ÷))¬””‚äd‡Óˇ­M›1C×ÄDĎĘĘ`äHŃ ČgtQüýŻÄĹ˝âr˙=ÁÁá!Cééőr5éîÓŘŘvŕŔÝčč´ Ľ¬¬Dßm"‘ÖVÎßHM-Ŕ†?íí˙şĎś9úZZ´®«€@dtQęęšÍͲ٭|ţ?= ČĚ™şžžK–ČhY).—G (t]Nڶ6nFF±°ű0T=ěäkÜ8Ť>— ôč8¸y3Íß˙ Ö18ňÝwsQüôÓOOó={Äq­şŁź•U’””“’RđçźůŤŤmű̡kb˘;iŇHx1Dö@Ç‘Š˘K—†ľzU„˘ŔŘXűúőďđxÜóçyß}÷‹ŠŠâůóžn° ě>ÉÉůlv›šĹÔt4tŚŽ#«ĘÚú°ŞŞR|üm(–XVVżvíĺěě˛ŕŕĺ_-újÚŹÇű¶$%Ą;ůjhhˇÓ‡N›¦Ť]tź8qd\Ś@0 ăt ‹UĄ¤Db0¨Â‰üÇś9ďěl|äČňĎçIËŢ!ě>II9őő-C‡’¦MÓž3GĆ ÝiÓ´{7ťttśŢ÷jË–şşôóç=utčň–Ó7đxüĽĽJĚzž=Ë­«kVR"MźÝŇ—@Çé%™™%k×^bł[Ožtť7oĽĽĺô=……5II9II9ĎźçÖÖ6+*ŤŚtLLtMLôfÎÔ(ÓçĎ č8˝‡Ínő÷żúčŃŰ ¬·m[8‡ű¤¤°^ĽČ+-­2„8q˘&vżŹ‰‰|ĐŇ} ă|*Ńѩ۷ß=ZýÜ9ŹAs†%…š”VjjÁÓ§Ů>Ô ††#,,ô±“Ż>±éo ăôąąë×˙R\\sřđrGÇz «Ü'!á]qq-Ź?^ÓÂBßÄDwćĚŃTjß/-č@ÇéÚŰ;~řáî… ‰ÎÎƇ/2ä‹[S˘˘˘!%Ą›ú),¬QPŔM ‰Ýď3gŽľ˛ň粒!Dľ@ÇéK<ČŘĽůşş:ĺÜ9Ź/ům™÷II)ČÉ)WPŔŤ­ŽÝďcaˇ˙ů¬Ł ‘=Đqúęľű."3óĂţýŽ+VĚ’·ůSYŮśśŹÝňó÷ßŔ%~ľd ăô=ííűöĹ]şôÜÝÝlďŢŻádŞ€ŞŞĆ?˙ü×}P…Kü|i@Çé/<Č ş®®N ]9q˘¦Ľĺ|vTW7Ą§b'_™™ř|.ńó%§©®n şţäIÖşuÖ[·Úâv>‘Ćƶׯ‹sÄÝ.ń3Č€ŽÓďDG§îŘŁŻĎ ]©«Űďkző+‡~üřqż†ŕrń­­C››››•ÚŰI2ąUO/>Ü>€ Ńhááá E< :Ž,(,¬ńő˝ňömÉöí_­^=GŢrz‚ ¦¦¦ŁFŤ’M8.WˇˇŘŢ® ©Ů$›>!::úúőëË—/Ď‚÷§ËmmZlěĆ“'íŰwűĺËĽŕ`—{Ť&00P➲ÜN–:ľdđxÜćÍ ââüĚ2këĂŹgÉ[" ăČ##í_ ś5k´§çĎÜ“ř6NdGÖ(++ž=ëâń|Á‚ă™™%ňVČč8ňÁŮŮ8)i‡¶6mÁ‚c»wßjoď·"D@Ç‘jj”‹˝ĂÂÜcbŇě쎽~]$oEHżGÎ,^<őŹ?¶ikÓ–,9yŕŔ=g0 vX,–»»»††‘HÔŃŃ ¬ŻŻ—ľIvv6™LĆ> BĐétggçŇŇRá2ŇkčÂáH$’±±ń§ßp$Ň …bccóîÝ»žV"Ü!‹/ÎEQT[[»§í•ŘE˝ë·^Gţ0ÔK—V<č|ůň3;»coŢË[Ń'Ád2gĚAĄRź>}ZWW“““3kÖ¬.MG‰DB˙źŚŚ 2™ĽfÍ€A[[[ź „+--]µj•ŁŁ#“Éě«:Q-**?~Ľ··wŻkĂăń‰‰‰•••‚”„„„î÷§tú©W;…|6Ő8;‡Žµé‡îr8ň–#Ŕőëץ—™;w®źźźp źĎ·°°Ř´iÓĽyó‚Q-)):tEѲ˛2á2))IřpEQ499™N§Ł(Ęd2Yl6ŰËË‹FŁ1Ś]»v çňů|///[[ŰÖÖVE›ššÖ­[§®®>bÄ   .—Ëd2µµµOť:5tčĐ[·n‰„óóósssĂ*c2™™™™&&&d2YKKëňĺËÆ ÓÖÖŽŔŞÖ‰‘––¦ŞŞŠ}×#ŢśŞŞ*‘quu=vě BooooooA”δI좰°°aÆ©««GFF «ĹÚ{ţüyl“«WŻJ,)ű tśĎ >źńbôč­ÖÖ‡32Šĺ-G”.§ˇˇ‡Ăĺç狤ÇÄÄŚ3ćčŃŁ .DQôÚµkT*ŐŢŢű>>XIggçŔŔŔęęęĘĘJWW×ÎŞ­©© »xńâŽ;D˛°ŁŹÇ×ÖÖóxĽ††‰äâââďď_QQ‘źźŕŔΞ`TTTlmmíčč¨GbsÄ;ÄĐĐPGG›ťQTüw­čδI좞ңě]Úäs ľľyË–ë#Fş»‡—–ÖÉKčĆEŃüü|777A$őôô6mÚdllĽgĎEŮl6@Ŕ.»ÂĂĂQmll400 P(Ďź?ďrŚ˘hMMÍ·ß~«ŞŞ:|řđďż˙^$·®®N]]ýĘ•+Řg777ŤFŁŃVŻ^ÝŇŇ"ňg.8‚‘‘Q||Ľx8E÷îÝKĄRGŹghhhccUîęęJĄRőőőĎś9CˇPÄ7ÄZ­  píÚ5‰z$6Gb‡„††0…ÂQ$j“ŢEÝăt&X:Röč8‰/ňĚÍŚ÷źđđŹ/{ÝtqZ[[±YĎAFDDDyy9öůÖ­[ŘE.”ýžU $fÍýřń77ó}űn;9…ććVČ[Qw!“ÉS§N•·Šľ'..nÇŽl6»°°đČ‘#ňVôąg€A&vî\tëÖĆúú{űăgÎÄĂ%/äHhhhuuőČ‘#'Ož¬­­ŤÍUA¤×ëţţ{Phhüń㏮]KŮżßŃĘĘ@ޢľD444nßľ-o 8ƨ ó_ĽŘ9mšÖŠç—/˙éÝ»ry‹‚@ş:ÎŔ†Á ž:µâţý€ććöůóŹîŢ}«±Q†OĺA =:Î``ęT­»wŽu‰‹{5gÎŹŃŃ©(|Eäł:Î ‡C–-›ńěŮöE‹¦nÚtméŇ3Lf©ĽEA ˘Ŕ™ăA…˛˛âţýŽß|c˛sg¬­íQ''Ł˝{żîŰ7ŐÄÇÇ÷ŐĘ,/ř†ĽÁ źŹ^˝úçˇC÷ üÖ­ –/7QPčńě¬YłţüóĎOŻ2¸ˇP(ÉÉɆ††âYĐq3 -ÇŹ?ştéŮčŃę;w.š7oĽĽAľt ă ~ĘËŽ•áâĹ$<·|ą‰ŻŻŤş:ĽŽé ă@:ĄĽĽ!,ěŹČČ—nĺJ3/ŻŮššŞňŘ@ÇtAMMÓůó /ššÚěí'Ż^=gĆ Ý®7@$Ň-¸\Ţożýů2))GOOÍÓs¶««©˘"QŢş  č8ž‘’ÂşxńŮŻżf¨Ş*ş»›»ą™ÁG% Ý:¤7°Ů­7n¤†‡'””Ô™›Źuv6^Ľx*ĽŞéč8ŢĂĺň~ýőďk×’ß©©Q–.5vq1;–!o]Ďč8> ľľĺŢ˝7˙űß3&łT__cŮ2c—™túPyë‚|v@Çô|>úâEnTTň8ÎÎn˘Ă4kkřĚDtHßÓĐĐű*.îUZÚ{ …lo?iÉ’iúx<|LôK:¤©«k~ü8ëŢ˝7üÁ$đ66ăťťŤ­¬ ŕ[_,Đq ˛ °°ćÎťôŰ·Ół˛J ŞťÝÄůó'š›Ź%‘ŕ ×—tLÉË«Ľs'ý·ßţÎĚ,QT$ZYŘÚN°±OŁÁić/č8ůPRR÷đaćoże&'çóxüéÓuěě&ŘŰOÖÓKľf ă@zChh¨ŻŻoźT… xI‹DŇ%“őZZŤŤĎú¤Zě±´´|úô©ô2Đq ˝aůňĺĹĹĹ›6męĂ:;:ř\.Č8ł3 yůňĺ‰'şôřëBzɨQŁ–-[&oĎ…nŽ]ŕýDv@Ç@ ˛:‘Đq 쀎@dtH˙Âb±ÜÝÝ544D˘ŽŽN```}}˝ôM˛łłÉd2ö‚N§;;;—–– —‘^CŹ®ŁôHĚâĹ‹…QŐÖÖîiP‰:űUĽ ă@ú&“9cĆ *•úôéÓşşşśśśYłfui:H$ú˙dddÉä5kÖ ÚÚÚú\pgáäŹOLL¬¬¬¤$$$tżë¤ÓOßŇ;žfIDATŘ%Đq ýČĆŤW®\j`` ¤¤dddtďŢ=55µýű÷ŰŘŘ=zPZZŠ ČáÇĺĺĺ‚¶··#R]]-\Ű#üüüRRRŔÇŃŤŤŤŢŢŢt:]CCc÷îÝ› (ęíí=ţ|ěčjnn^ż~=ÁĐÔÔܲeKGGGvv¶ŽŽÎéÓ§)Jvvvgáőőőnnnt:}Ô¨QŰ·oçrą‚’<;v¬ŕ«ˇˇalllcc٧§'ŤFÓŃŃ‰ŚŚ¨ŻÓŽ5!** +©  °hѢČČHAÍÎÎ΂Żoßľť9sć!C´µµůĺé˝qöěYŤĆ`0®\ą>HJŚ.ŢWÝřÁ»:¤ż`łŮOź>ő÷÷ND$ ŕÎť;öööüń ))‰JĄ&$$&OžĚd2±±ťN޶¬¬ěäɓӧO äççW[[Ëd2ź>}zůňĺ[·naé(Š®_żľ°°đöíŰŘŃĺďďßŇŇňöíŰÄÄÄÄÄÄĐĐP¬Úׯ_çććH ·~ýz6›ť••őäÉ“ű÷ďź8qBPŇĆĆ¦ŞŞ*33‘‘QVVöŐW_aŞ˛˛˛?~"(,±žĘĘĘŚŚ ‹ĺëë»yófAaŹË—/cź[[[oÝşµbĹ Aî®]»ľú꫺şşÝ»woٲEJop8śĚĚĚ‚‚??ż   ‘”]b_ő(Ňs–-[¶lŮ2éeňňňárą"éééé %33“Bˇpą\źť;wR©ÔŽŽŽ 6l۶Mŕ8L&Sx_ĄP(‹/...Ʋ°2ŹÇçççc•?{ö,-- Ëőőő%•••X‡Ă!őőőŘ×'Ožc!°2Rµµµáp8‹…m3iŇ$EW¬Xńý÷ߣ(şcÇ///L• ü­[·°’ťŐ¨ŞŞBQôíŰ·‚¶“H$ʧ©©™žžŽ˘hTT”­­­pЬ¬¬ććf.—{éŇ%é˝ŃYý‚V‹äJě+é?÷őë×»ă'pŚé/ÔÔÔ)**I/))ŃĐĐ0a‚ŠŠJZZZRR’««+ťNOOOOHH°··.,<±ÂfłďÜą3räHáeee|>_W÷ź—ö™››ÚŰŰY,Ö”)SŽ?.(ÉĺrUTT°‰áąsçD˘šššôpĺĺ嬞žŢ‡„e,]şM\ż~ÝŐŐS%(/×Y=D"Đáp’8nĺĘ•—.]DDD¸»» ç&''[XXššĆĹĹIďŤÎęÇĎí¬Ż>č8ţ‚JĄZZZž>}Zrüřń‚‚‚Ó§O;88,X[^^nhhheeuóćÍ’’33łEa0Áń˙ŕÁěđ#111aaa!!!Ř ÁPPPüo755Ą¦¦é2І†ŕýű÷Řׂ‚‚áÇ X°`ANNNlllssóÜąs1UÂĺĄ×#E‡‡ÇŐ«W?|řđâĹ '''AzuuőŞU«Îť;—––¶˙~é˝!˝ŤâąťőŐ§ŇŹ„††FDDĽ{÷®­­ŤÍfŹ7îŐ«WŰ·oŘŰۇ……™™™!beeućĚ™yóćAx<žđÔ¬H$’““ÓćÍ›«««sss7nÜČăń8ŽD"{yyůřř`%ťťť«««+++]]]…§WşŚâččPYY™››»gĎáůŔ!Cěííżűî;,´‹‹‹żżEEE~~ţ°ŁşËzÄ144ÔŃŃńôôtppPTT¤c^€Çăkkky<^CCCg˝ŃS>ĄŻ¤ŇŹŚ?>%%Ą¶¶ÖŇŇRYY9""Â××W[[űÔ©S›ööv €µµuSSvJĄ©©9fĚŤV[[Űť(çÎťĂăńúúú–––^^^K—.Î=xđ`ffćŐ«WgĎžíčč000?~ĽşşúÁ»ß–sçÎ)))aĂ1{{{ÁL­€ĄK—VTTä§ź~˘P(úúú .ôňň"ݬGŹřřx‘S*55µ={öXZZš899Ť;»Ś%˝7şĎ§ô•4şśé@ÄéÎĚqg´¶¶bSˇ ěąŕkDDDyy9öůÖ­[†††rŇ%#ŕĚ1ä3…L&Oť:UŢ*ú>;vĚÍÍM·cÇ6›]XXxäČlę é&OžĚáp„o> ­®®9rääÉ“µµµ±©+\éħś444nßľ-1ź3pŚ@dt"; ă@ ŮČ8s é%‰‰‰¶¶¶ňVů\¨¨¨čN1č8Ţ€=7PUUíň‰ ßÉ @d śÇ@ ˛:‘Đq 쀎@dÇ˙ ˝Ë.1az^IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_6.png0000644000175000017500000001565712052741161017263 0ustar gudjongudjon‰PNG  IHDR‹ĐžbKGD˙˙˙ ˝§“dIDATxśíťyXSWúÇď ŮHP¶€l¦¨0t$đý!(A&¸°#µ}´…q´Ë´ŕP;(˘}ŠuZ™:UgD \Đâ22ę A±A¤˛Ć1a'$ç÷ÇťfŇ1`ÎçáŹsĎňŢ÷ž{ľ9 çŢ‹ÄPÁéÚD—@@ (A1hđşv2&÷îÝűüóĎuíĹŚ!99yٲe/[ …«@zKddä˝{÷|||tíČ «¨ěěě—-{˝fr7Ő‰ŚŚś\A8€4P bĐ@@ (Ađ:ĐĐĐCŁŃD˘łłs||ü‹/4©©©!“ÉŞ1ďľű.Š˘<O[^ŐÔÔ ż@"‘ ĆÍ›7_ĘĄi `Ć#ĽĽĽ(JaaˇX,ćńxµµµ>>>ăj@•ľľľěě쀀€3gÎhŃ7‰´¶¶ĆĆƲX,@ EűZ@ô‡ĂápĆͶjŐŞ¸¸8Ő…Báë뛚š hiiA$%%ĐÖÖ¦ÚD"ŕĚ™3‹/~ôč@xţü9fG 899}ýőצ¦¦ąąąĘ°@ ¨®®ööö&“ÉŽŽŽ§Oźäç绸¸(}puu=xđ RqqqŃŃŃXXÍ‚H$Rui¤}­ÔŐH ô—‰ÜT‰D‚ĂáęëëŐây<ž‹‹Ë‘#GBBBçĎź§P(L& {xxŐÖąrĺĘoľůŔ`0ľúę+,R ‰Äm۶µµµ©†čďďĎČȰ¶¶ R©Ô‡*++©TjEE…š ÜÜܰđH Ş.ŤL}őş8šŮ`żßŽŽŽjńt:](ďÚµëÎť;rąĽ¨¨ÉdŞfnll,--ŤŠŠBdëÖ­ŞŁ ˇˇˇ””Ť¦ţňË/÷îÝ‹Çă ‚D"A„H$†††ććć"’••µ~ýz‰¤ć•ŤŤŤ˛˙iAÍ©Zn…ŮXYYˇ(úěŮ3:ť®ßŇŇBŁŃ-ZdnnÎçó‹‹‹333333ËËË‹ŠŠNś8ˇšůôéÓ ,@D&“uuuUWWżů曂‰D+++,›j¸¤¤$** EQĄť 6$''öŮgYYYß~űíHo…Bˇ­­­ J4§j“Iôéa‚ÝúĘ•+÷ěŮŁ ż`[|'·z`` ¦¦fÉ’%Úvj®]»¶{÷îÚÚÚi>ď¤ë öŻ'd2yú[sssZZZttô4ź÷U€€h ʎˇˇÝ»wëÚ‘—N‚!ZŁ««K×.Ľ4°€4P bĐ@@ 8 ÖkNž<©!Ăđ0Ŕáť6—ô“††µÝP @Y¶lYNNÎűďż?2 EŤH$ú¬Yż!ÄâüÁÁ§Óďžľˇü÷óK˙<ĂxđŕçÜÜ—/—?ŢíááŔb-]żŢÓĘĘL×~ÍT f÷ď7\ľ\™ź_ŮŢ.ńđp`ł!!vvćşökĆ ×44rsË.]ŞxňDčěląaghč’… işöëő @ Ą\niNż¶¶ÝĘĘlÝşßr8 Ź)~4Ä Đ#ş».^,ĎÉ)-+kś5‹±”Ífxz:ÁŐę© @÷ô÷]ąRyĺJeQŃc@p°;›ÍX±b!‰×č¦(ť1<¬ř׿—/W\ż^Ý×7´rĄ[hčâ5kޤPŚuíš0ÝJKźrąüüü*±¸×Ëk^XŘ’ĐĐĹ4Ú”<ňŃ ŔôQW÷<+ëţĹ‹š›Ĺtş‹µtÝşßÎźoŁkż 8Ęśrž=ëĚÉ)˝|ą˛¶¶ÝƆÂf{±Ů ¸”©'Ŕ`ŞčěěÉÍ}půrEYY#•:kýzϰ°Ĺ Ć<¸oGŻ€Đ2˝˝WŻVaK:FF¸µk=–řů-$ag«Ź@h™L^XXĂĺňoÜx4<,˙eIÇťB™î÷}C^ (€WBą¤sĺJĄDŇĎ`8s8^k×zĚžm2~a0I>lÎÎ.˝v­Şµő…‹‹őĆŤŢááKíígëÚ/ČËđr46vđx|lIÇŃŃ‚ĂaŔÝi3(äÇţţ÷çÖÄĆ®+OGGO^Ţ.—_UŐdaa±.鼴 –VđŐW×¶¶ć|ţç(ú«ÝÓ3xíZ—Ëż{·ŽL&0™îpIç5ĂpđâEß{ďťľ{÷‰BńßČËŰĺíMGD&“˙řăC.—űöc…řű»˛ŮŚŐ«‘Éťş Ń>úK&´ĹÄd…eë'Ś.\(ÎÉ)˝qă'©´˙˙ţoţáĂ‘«W/27źĄ[o!S‡!öW®TĆĹýcxX><¬PŤ71!őö:;[FD,e±–Â]:†€a @ˇ_~™˙—żüAÔ/E‘¤¤íŰýtáD7ĐH*íď˝îÜ©KóFFFMÓěD·Jđřq{TÔIˇP:<,׍DÂ?ztpÖ,â´9Ń-ę›?~}í°´\Ädmikný‚ ßşőÓ”Őö(řůůéşz^üýýÇŞő!ĐíŰ·—-[–0µ·}zŮş5ÉĚLab˘ţŮÚ‘ (:ÍŰxnßľďăă3ť'5(îÝ»wěر±RG™888p8ś©tiş‰ŚŚ}Z$) ŠD"µÔq]Ĺ–ł˛˛”‡ĎźK32ŠĚŁvvńż·ł‹·µÝýžA-˘ćۨĽbm‹D"˙Çuiű÷ď?xđ @ P»%%%–––XX,GEEYXXŘŰŰôŃGCCCĘüŔÉÉéäÉ“666çÎťS»M===ďż˙ľµµµťťÝŢ˝{e2Vä믿655ÍÍÍť¶••5˛ť+™Ś$ ‡«ŻŻW‹çńx...GŽ ś?žBˇ0™L,ěááˇZ}j×_PPŕć憅#""8Đßßź‘‘amm­–dę¸`Ť¬»{ŕěŮ»k×›;7ŢŢ>AµÝëł^˝¶ĄR)‡kiii\íF´¶¶nٲ%((;ܸqăşuë„Bamm­»»űˇC‡Tď ±±ń‡~(‘Hľřâ [[[5k±±±ŃŃŃ"‘¨®®ÎŰŰűرc€H$n۶­­­m:€fLf7¨H$8::ŞĹÓétˇP|ŕŔáááâââ]»vĄ§§Ëĺň˘˘"&“©Á¦ŤŤŤňwëË/żtrrÂăńA"‘¨ĺÔś:*xüśż˙˝îăŹ?ˇ(ŞP€‘{ˇ1d˙ű˝‰ŘÔD˘ťć Ż^Űmô'÷Ń_533ó÷÷˙ţűď±řśśśşş:kkkkk뤤¤¤¤¤uëÖ) ö÷÷'&&R(‹•śś¬jS&“ť9sF$Q©TKKË”””}űö Ą¤¤XYYŤĽMiĐŔd`ee…˘čłgĎÔ>LŮŇŇBŁŃ-ZdnnÎçó‹‹‹333333ËËË‹ŠŠNś8ˇÁ¦P(´µµĹÂ%%%QQQ(Š:8ŚňMÍ©ŁB"9ńů"E°OCΞžÁ}ű˛'hV+É 4gxőÚ¶°°Ŕň«ÖXuuő˝{÷|}}I$ҨĂúöövAśťť±C:ťŢÜܬšH$ZZZ"‚Ă©Ď$ŰÚÚd2™ąů˙>afee…Á#™Ň É€BˇřůůĄ§§+÷=z”ĹbĄ§§‡‡‡#|áÂ…ööv777.—ŰŇҲ|ůňúúú±lćçç{{{#ŇŃŃRÂ`0Ş««Ż]»¦šMsęXôöVüńŹ;{{-¸\ľD҇ÇŤµ-ÔŇŇ´˘âŔëA+ (Š ;4dxőÚ¦P(o˝őÖ_˙ú×ţwi©©©ÝÝÝľľľcťë1çÍ›‡ ČÓ§O• TĹóѱ±±122ęěě¤R©‚ôöövttô÷÷k(2Ą @“| ćřńă+V¬ěرĂÉÉI*•.\¸ĐÜÜüÜąs‚0™ĚŔŔ@l'ęÎť;‚‚Š˘rą\&“©šęěěĚÎÎ>uęTYYňËX ŹÇwuuĄ¦¦Ęĺr‰D˘,8j*VËt:%2’•”~÷n]vöýüüŞÁÁaE ĹxeuĎ+Ö6@HKKó÷÷Çáp‘‘‘ĆĆĆ\.733ł°°PĂII$‹ĹÚłgOFF†D"ILL÷CĽĘ3’H$6›řđa…B±}űv:ť>ꏑijcŁ6'ŕ* ľľ>::ÚĆƆH$Ňéô„„‘JĄXĄšššÉČČtww»şşš™™ÝąsGé@đôôĽuë–ŇrRR…ByăŤ7ňňňÜÜÜ•;;;G¦Žë*2b˘Ůß?téRyTÔI{ű„ąsăçÎŤ×ŰI0Ć«Ôvgg' ¸¸xőęŐ¦¦¦T*ő­·Ţş~ý:m5B•ŽŽŽÍ›7Ď™3ÇÎÎnßľ}j«@ʂʰęĹbqtt´……………Ĺ»ďľŰ××§VdÚ€öWƢżżżĽĽ|re§ Ť¬˝ýĹwß±µÝckŻ·‰ŢÖ¶ľˇýU ± “ÉK–,ѢÁiŔƆúŢ{~ď˝ç×ŘŘ‘—÷ŔÇÇE×M”™XŰz=ŻggË={‚tídş›á  Ä €4PĆ &Á8Ü¬ŠŠNc㊠äDÝŤŚŕ ţf¸ČČČŰ·o»»»ëʡ© ¤¤ÇÔtŮ3§¦Fľýöô˝ĄEQwwwř"Ţ©B(>|řڱL˝řŕ¦ŢĄé&<ÜA._pűö˙> 7ß´ź—”¤¤¤`[ SÄěŮł5lâ0”wľůćÖź˙śŹ †+vt´řĎţ8}nAtŤˇ vQýđĂŔ~x×Ř8ÖŹ7âpÓěD·Š0VŻ^TPđ{‡9xĽŃČÔáaąP(­Ş‚oH7 e¤Jw÷Ŕśýç?ŞSEétK™LńěYçoXłXKY¬ĄóćŤţôäµÁ€  -íÇcÇn(ßťŠÇ}úičűďű?~Ü~ĺJ—Ë˙ůçÎ haa‹7l`8;[ęÚeČ”` Ŕ¸t©b÷î +är‡–•%ŮŘP°$…đůO/_®ĽxńAGGʇ‡›Í˙­••™n}†h‚ ••M[·ţőůón//ç‹ăFfËwďÖĺä”^»öp`@¶t©‡ă±ÔÔtüŻ @ôC‚ "Q÷ŃŁ×Ůl†§§“†l˛7qąüÂÂ]±b!›Ív'F™OCf P/ŤDŇwýú#.—˙ď?13#- [˛j•Ü@1<­­/®^­ârůUUM4uíÚĹaa‹±oÍCf PZ[8âńĘ;ćĎ·Y·n ‹ĺI§Ă%Ô€6©ŞjĘÉá_şT.u/X@ăpl¶—re ˘‡@hą\QVÖČĺňóňôő yz:s8^ááż53›Â7ĽC&Ŕ288|űöc.—˙ăŹQőó[ş84t±±1ü·ľ0HĄýŐW®Tţë_‚YłAAo†…-YąŇ ʇ G: `Zio—\ąRyůrEiéÓŮłMÖ®ő`ł^^ó4Ľ42Ą@č†'O„—.•çć>hhŮŰĎ_şqŁ·‹‹µ®ý28 tĚăÇí\.źË- ĄŘŢ;ÇËŃŃB×~ PzrďÝ… eIź§§sXŘk©……©®]{ÍĐ/†††‹Š_ľ\‘ź_%—+°…ُ÷nJ€ĐS¤Ň‚‚‡ŘÂo´ző"6›áďď ÷Ţi(}G,îÍĎŻĘÉ)ĺó©TăĐĐĹpáH‹@Ěš›Ĺ/>ČĘş_W÷ÜÎÎśÉôŚôrwźÖ—¸Ľ~@膜ś±X<‰‚€¦¦ţęjiuµ´ŻOîŕ`ĽfŤŤ˝˝±Ö=|-™={6‡ĂůU”¶żÇźüü|mÜM‰älnŚÇĎц5C!??_ő^Ä»AőŤžžç­©EQ¬ň•Ŕ˝( bĐ@@ (A1h ôš†††ŤF$ťťťăăă_ĽxˇąHMM ™Lƨ –––l6»µµuÜ‚Sš3ÍÍÍŞń$‰Á`ÜĽySłí:  ż/// …RXX(‹y<^mm­ŹŹĎ¸PB"‘” ŢUUUd2yűöíSęóťÁ°··WŤommŤŤŤe±X`úÜšâ˙ů@F!++k"5żjŐŞ¸¸8Ő…Báë뛚š hiiA$%%ĐÖÖ¦zg‹‹‹ŐÚ\II‰ĄĄ%‹ĹQQQööö}ôŃĐĐ@ Ŕňçç绸¸(Kąşşňx<©TşuëÖ9sć899ť={ViyT;NNN'Ož´°°°±±9wî@i\Ť‘ńqqqŃŃŃX¸şşÚŰŰ›L&;::ž>}Z$)ŻN$©ĄŽ[źA˛˛˛~3‘bí2H$W__ŻĎăń\\\Ž98ţ<…Ba2™XŘĂĂC٤ÔÚVkkë–-[‚‚‚°ĂŤ7®[·N(ÖÖÖş»»:tH™ppJĄbßŐŞ¬¬¤R©ďĽóNXXX{{ű“'O<==•–Gµcllüá‡J$’/ľřÂÖÖv¤3JFƸąąaáô÷÷gddX[[«ĺ™:.PzÁDPWW‡˘¨L&S‹///733«®®633“Éd|đÁ§ź~JˇP†‡‡wěر˙~U¨vfffaaaMMM€×ĐĐ€ŮäńxîîîŞmëí·ßţÓźţřä“O~÷»ß áńxeţÜÜ\,çXv°_hŔŁGŹFuAääd0š***ĚÍͱđO?ýÔŰŰ+“É~řᇑŞ™:.#·Bč)VVV(Š>{öŚN˙Ő»[ZZh4Ú˘E‹ĚÍÍů|~qqqffffffyyyQQщ'T3“H¤‘ĆŰŰŰqvvĆétzssłj† 6$''öŮgYYYß~űm[[›BˇPćź7ožf;D"ŃŇŇAî“̱śQC(ÚÚÚbá’’’¨¨(EFćÔś:Aŕ$XOˇP(~~~éééĘŁGŹ>}ú4===<<Aŕŕŕ .´··»ąąůűűsąÜ–––ĺË—OÄ8ŤFC¤±±;|úô©˛Ía×ÖÖ^¸pˇ··wŐŞUŘW\Uók¶ó*Ď*äçç{{{#ŇŃŃűÝwßńůüäädµlšS'ěô—ăÇŹŻX±°cÇ'''©TşpáBssósçÎ!Âd2cbbQő÷÷ßąsgPP@@QT.—Ëd2 –I$‹ĹÚłgOFF†D"ILLTű¨±±1“ÉÜąsç¦M›p8‰DÚ¸qăîÝ»322zzz<5ńqíĽťťťŮŮ٧NťÂľűß! ßŐŐ•šš*—Ë%‰ňęFMĄR©/}Ö‰Śś Úe‚«@€úúúččh"‘H§Ó Fbb"@*•„´´4@SS‚ €îînWWW33ł;wîhwttlŢĽyÎś9vvvűöíS]ÂČĚĚDäţýűءX,޲e …BY°`Á7ß|cff6;cÍČ•¨Î ‚§§ç­[·”©III ĺŤ7ŢČËËsss T^]ggçČÔqë“`}`âIyyąvý•«WŻÎź?_yxöěŮööv,ś››«\¨™YŚśĚ0Čdň’%K¦ú,ÍÍÍiiiŃŃŃĘĽĽĽO>ůD*•ţüóχĆć!ŻPQđđđÚ˝{·2ćřńăöööNNNü±ÝÓ"p …®®.µŤvńâEť83ĄŔbĐ@@ (A1h   \Ҧ¦¦Č«mL¬ň•ŔW#ꆫWŻöööęÚ ĂÄÄ$$$D5 bĐŔ9Ä €4P bĐü?بJÉĎ;ÜĹIEND®B`‚qwt5-5.2.3/doc/html/functions_0x70.html0000644000175000017500000003217012052741151017145 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- p -

qwt5-5.2.3/doc/html/qwt__plot__canvas_8h_source.html0000644000175000017500000003052012052741135022037 0ustar gudjongudjon Qwt User's Guide: qwt_plot_canvas.h Source File
Qwt User's Guide  5.2.3
qwt_plot_canvas.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_PLOT_CANVAS_H
13 #define QWT_PLOT_CANVAS_H
14 
15 #include <qframe.h>
16 #include <qpen.h>
17 #include "qwt_global.h"
18 
19 class QwtPlot;
20 class QPixmap;
21 
26 class QWT_EXPORT QwtPlotCanvas : public QFrame
27 {
28  Q_OBJECT
29 
30 public:
31 
54  {
55  PaintCached = 1,
56  PaintPacked = 2
57  };
58 
78  {
79  NoFocusIndicator,
80  CanvasFocusIndicator,
81  ItemFocusIndicator
82  };
83 
84  explicit QwtPlotCanvas(QwtPlot *);
85  virtual ~QwtPlotCanvas();
86 
87  QwtPlot *plot();
88  const QwtPlot *plot() const;
89 
90  void setFocusIndicator(FocusIndicator);
91  FocusIndicator focusIndicator() const;
92 
93  void setPaintAttribute(PaintAttribute, bool on = true);
94  bool testPaintAttribute(PaintAttribute) const;
95 
96  QPixmap *paintCache();
97  const QPixmap *paintCache() const;
98  void invalidatePaintCache();
99 
100  void replot();
101 
102 protected:
103  virtual void hideEvent(QHideEvent *);
104 
105  virtual void paintEvent(QPaintEvent *);
106 
107  virtual void drawContents(QPainter *);
108  virtual void drawFocusIndicator(QPainter *);
109 
110  void drawCanvas(QPainter *painter = NULL);
111 
112 private:
113  void setSystemBackground(bool);
114 
115  class PrivateData;
116  PrivateData *d_data;
117 };
118 
119 #endif
qwt5-5.2.3/doc/html/class_qwt_event_pattern__inherit__graph.map0000644000175000017500000000075512052741154024336 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_6.md50000644000175000017500000000004012052741151017137 0ustar gudjongudjon26c779fd764f554607bbd3771b766863qwt5-5.2.3/doc/html/inherit_graph_31.png0000644000175000017500000000323312052741163017326 0ustar gudjongudjon‰PNG  IHDRs%ţöA[bKGD˙˙˙ ˝§“PIDAThíšoHS_ÇĎ˝nnFwMnŰ,IÍ ·ţHI+¤š…LúG¤ÔjŁV!aČfʨÄţ@č(h´7Š/̆i/"za´’¤-R¶¬9ňŁÍ5·ś[»nç÷âÂk•ż±k÷óęÜç9ç{ľ÷Ůą÷nC „€†Đż]Ŕ? í,UĐÎRí,U0âŽűűű›ššţJ)‹Çőz=†a±A$îŮ ŞŞŞżż_,/lm‹ÁĐŮŮYUUŚďY€X,~đŕÁBUő/€ ČĎAzźĄ ÚYŞ ťĄ ÚYŞ ťĄŠäťµŰí …"+++===//O­VOMMý~ÉÇŹŮl69‘ËĺŮŮŮ/^ ˙«€Xµ„YAöíŰ„ćććţfU IŇY«ŐşeˇóüůsŹÇÓŐŐőéÓ'±XüGsI „ĺĺĺŔd2y<ÁĐ××W[[›\1ż‚Á`ĽxńÂétF#FŁqž¦8—ĘĘĘĘĘJř'$Immml$‰”––ÖŐŐ•••577C'&&7nÜ€:ŽŘ“ľ˙A@ ]ţáÇ#GŽcźĎwňäIÇAcc#,))ałŮ999mmmB«ŐĘb±Čěôôtuu5źĎ_ąre}}=AdV&“iµÚčY”JĄR©Ś®J¨™››«Őjy<ž@ hhh âŹn:;;ăqÇóqÖëő˘(:<<ďęę*((hii©¨¨€ŢżźĂáHĄRr\TTőbvvvÆ ÝÝÝn·;Nçĉp:ťV«uŐŞU>„}ZTTDΙ™™ÉĚĚěí퍮J¨™––¶wďŢŻ_ż ¬]»–ě’ß“2gm6‚ ?_LłŮŚaŘŕŕ †aAÔÔÔ\şt‰ĂáĚÎΞ={VŁŃÄzáőzu:Ýţýűq‰DŤŤŤ~żB … Fô˛őőő™L&ˇĹbńűýA´¶¶’"QµP(Äd2§¦¦Č%Ďž=+..&łáp8;;Űl6C;::öěŮ[CBM€Íf#'tttlܸ19g“Ůgy<‚ ŁŁŁqń‰‰‰¬¬¬őë×są\“ÉôňĺK™L¶|ůrłŮl4ĄRiěd‡SSSóčŃ#—ËŐÖÖöęŐ«cÇŽG$Y˝z59műöí›7oĽ~ýş´´tëÖ­===qçu8Apą\A‘H$###d EŃăÇŹ·¶¶ÚŰŰ E섚(Šćçç“cˇP8>>ž„E$»ĎîÚµKĄREµZ­Ýn///ŻŻŻ‡ž9s¦ˇˇĎçG"ĄR©Ńh–-[ …˘ýR]]-‘Hb߼yă8„0 ˘(:::JĆ?~ÜÝÝírąP}űö-„p`` ®gÁ`ZZZ´g§§§ż|ůÍZ,Ź766Ćĺrý~4ţ+M€Ýn'Ą Ăşuë®g:ť®˝˝]ĄR AźĎWXXřîÝ» .¤RéÝ»w·mۆ ČÎť;ďÜąSVVĆd2 ‡ĂA( ŁŃŘŇŇ2>> ‡††®_żN>!±X¬C‡ť?~rrňóçĎçÎť ‡Ăd­ ăŰ·oÍÍÍápŘëőF‹a±X‡V«Ő“““N§S&“Ýşu+š‰DyyyäŢ˝dÉ’¸–J¨©R©\.—Ĺbijj"?IÉçô<{B8<<,—ËAzzz~~~]]]qqńĺË—!„>źŹÉd’7ĺ±±1€^݇~˙ţ](bćv»ź}zff&6«Óé˝˝˝pî}ďWš·oßÎÉÉáóůjµ: %׳É;ű3@€ĽW,^b}ź? ťMĺŰ-›ÍŢ´iS 5ô÷TA;;ˇP S"E;K´łTA;K´łT‘ŕWq»Ý~ďŢ˝…/ĺ_#îůV«Őţ튆Y,–8'ă˙#C“*č}–*hg©‚v–*hg©â?Ů:Pj€×bIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_event_pattern_1_1_key_pattern-members.html0000644000175000017500000000710512052741140026010 0ustar gudjongudjon Qwt User's Guide: Member List
QwtEventPattern::KeyPattern Member List

This is the complete list of members for QwtEventPattern::KeyPattern, including all inherited members.

key (defined in QwtEventPattern::KeyPattern)QwtEventPattern::KeyPattern
KeyPattern(int k=0, int st=Qt::NoButton) (defined in QwtEventPattern::KeyPattern)QwtEventPattern::KeyPatterninline
state (defined in QwtEventPattern::KeyPattern)QwtEventPattern::KeyPattern
qwt5-5.2.3/doc/html/class_qwt_dial__inherit__graph.png0000644000175000017500000002400612052741153022372 0ustar gudjongudjon‰PNG  IHDRů® ÖbKGD˙˙˙ ˝§“ IDATxśíÝi\×Ţđ3Y j–@pޱh[EDĹ*ŕHĄë‚Ëm][¨ÖjÝű RĹVA+˛ăJką˘EŻEQ ADP‘-,°$’ĺżGkn6.„đőë×ď˝÷ŢĘ•+{a\ŤAş¬Ż[·nůňĺÇŹ·´´4hФI“®]»f``°gĎžYłf:tPRR‚aŘ?ü(++Ă0ĚĘĘęíŰ·†UVV*»âp8kÖ¬Yąrĺľ}űđ–ššooďÁ>|űöíR©TőlÝěĚýăŹ?rą\CCĂőë׿}űVµČ†††€€.—;tčĐ/żüR&“5{zzz+V¬P>Çx<Ţ”)S `jjŹeff6xđ`##ŁČČH|Ëşş:___‡cffváÂe=펨Č•u‘HtűöíŔŔ@ŐF Ă6nÜxĺĘggç””@jj*›ÍľsçŕÎť;ÖÖÖ|>?­<¸Yźź|ňIzz:~; @$ĺääÜşuëúőëGŹ}W%oßľMNN~úôé­[·~˙ý÷ýű÷«ŢŘŘŘČăńţüóĎ?˙üóřńăÍvŻ©© wttÄܵk×'ź|" żţúë/żüoYYYëׯ߲e ޸aÆęęęśśśäääcÇŽu|DM5…»»»»»{ŰŰäççc&•J›µgdd°X¬ěěl‹%•J×®]»sçN6›-“ÉÖ¬YłuëVeÖ•7”233uuu!„‰„BˇŕíqqqăÇŹWÝ^µ@~~>Ţiii©Ľ·©©‰N§×ÔÔŕ÷ŢşuËÖÖ¶ĺ2‰Íf+{ČÉÉihhJĄçÎťS˘˘˘BČăń”=Óh4e… mŚŘ˘˘ÚݬďШkÚe``€aŘëׯÍÍÍUŰ‹‹‹ŤŚŚĆŽ«««›žžžšš™‘‘qçÎť“'O¶Ńgyyą±±1 ¬¬ `ff†·›››żyóć]{Q(e cĆŚ)//WŢUZZ*•JuuuUËhkkK$ĽĄ±±qűöíţţţř/˘´´´ĺË—c6|řpĺ^ZZZřo! …˘ěYˇP(+1bDŰ#jr­aŘlöôéÓCBB”-GŽ),, quuĚť;7>>ľ¬¬ĚĘĘjĆŚ±±±ĹĹĹS§NmŁĎëׯŰŮŮŚŚŚ/_ľÄŰ ńçüďŐuŞŃW(Ę-óóóMLL”wqą\*•Ş<ËÖ××?|ř°Ů \ąr%Ţ^YYąjŐŞS§NĄ§§ďŮłGąMËëU¸\nł ;>˘& ě7JwëČBČăń8N```nn®X, ˘ÓéUUUÂřřx&“éćć!Ś`2™‹-‚ćććŇh´¦¦&Ő5IeeĺÉ“'™LćłgĎđ–Ĺ‹»¸¸”——çĺĺŤ?~ďŢ˝řÉ>))©˘˘ÂŮŮYąŔ P(... ;;{ôčŃGŹUíŮÓÓÓĎĎŻ˘˘˘ĽĽÜĹĹeăĆŤ-×Nyyy E*•  Ă222ŞŞŞ|||h4ZMMM«k'ˇ——ׂ ĘĘĘňóómmm Ć»Flw&A[Ă.ëÂ/^x{{są\---ssóÍ›7ŰÚÚAE"ťN?|ř0„°¨¨!¬««ł´´d±X÷îÝSž&čtú¤I“ţýď+{®¬¬ôňňŇ××2dČW_}ŐÔÔ! błŮC† ąxń˘2ë»wďÖ××722Ú¶m›L&SM¤P(ôööćp8Çßßż±±±eÖE"•J˝té„088Íf[XX$&&ZYYÍš5ë]Y …ź~ú)›Í=zô‰'X,Ö»FlwQÖ Óń¬·$‹322ş·žľéüůóeeeří„„++«.wŐď˛N®őú»0 ˘«č ‰‰‰;vě‰DŻ^˝:pŕţW I ¬“ËńăÇ+++‡ fmmmjjş}űv˘+ę=äzÍ122ş|ů2ŃUť×˛@YGČe! ”u„,4ęoÓ‚‚‚Ó§O]ŇWý·9|ř0ŃsŮT*‹ÁEt]Áb±rrr>ěť 9źűŐOíŘî\jBÂú)SĚŰßQZŻI&S$$¤]‹ćCY'Ňť;ą"‘÷X*•]ކCY'R|üc*• hl|{űv.Ńĺh8”uÂ466ݸńD&“¨T,.-czĘ:a’“yĘu‹L¦ří·§ oŰŢQĘ:abcÓU˙—śL&ży“G\9šeť55Ť))ąrąę ľX\\:a‘Ę:1’’˛šµ(Š;wž … „ÔC(ëĉIW(ZyďÚµ'˝_ I ¬ ¬¬6-­ ĺ;ÖÂŘXMü°ŠľeťWŻfR©­ĚĽBÓÓ_•–vôST‘NAY'@\Ü#üeő– WŻ˘eLŹĐ¨kzű‹qă†VTđŰ2™B"‘2™ÚĘ{-,4đóĺútť#Á®\É /)yç'ú"Ý­a˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖŇ€Ďçëéé=—]Aˇ ÔÖ6!şŠ.š>}:ŃGľ4äű’˛˛˛„Batt4Ń…Čýű÷ŹíO_}Ł!YÇą»»]‰ŔţöM[h˝ŽĘ:B(ëY ¬#d˛Žé˛^PPŕăăcdd¤ĄĄeff¶iÓ¦ššš¶wÉÍÍe0Ş-ţţţ†ĹĹŵ±M»ęŐÝ_˝zĺíí=tčĐŚ9rÇŽb±Xu›wŤĄf ýą˛Îçó'OžĚfłoßľ- ăââňňňěííŰŤ»ŞĆĆĆččhGGÇž+µmÂ9sćpąÜôôtˇPs÷îÝ 6¨ncii)‘Hް/"úͬîŐ‘Ç2sćĚ 6¨¶(ŠŹ>úhóćÍŽŽŽ„öďß!,--Uť«ŠŠ aDDÄűďżĎăńčtş@ ŔűáóůÚÚÚÇŽ344400X·nťD"FGGŹ3†Á`Ś;Vő­®ÔÔTSSÓ˙űż˙c2™|>?;;ŰÎÎŽÁ`„‡‡ă}ŠD"???‡ĂĺrwíÚUQQˇÜ=33Ă0±X¬| YYYK—.UV˘zBXUUĺáᡣŁcbb˛{÷ne{}}ýęŐ« ‡ ňŻýK*•ňů|ŐÂÔźóľŁ?ŐÚ†ŽĚ{mm-…ByńâEłö¸¸¸‘#G:thŢĽyÂK—.±Ůlgggü¶µµµjh „'Nś€ÚÚÚ;v oäóů€ůóç———?}útÔ¨QÁÁÁµµµt:=99Y"‘„††ZXX¨QKKkĺĘ•ĄĄĄB77·ożýV,‡……â}úúúşşş >ź?|řđřřxĺî2™lܸqóćÍKHH¨ŞŞR}8­f}É’%ŽŽŽĹĹĹĎž=;v¬˛}ŐŞUŢŢŢůůůvvvGŹmVšsާô§ZŰĐ‘yĎĎĎÇ0L*•6kĎČČ`±XŮŮŮ,K*•®]»vçÎťl6[&“­YłfëÖ­Şˇ),,d2™µµµ‰'âíxÖóóóń###---«««µµµ#"" …D"Q "@ůk!''§ˇˇA*•ž;wß ©©‰FŁ)ź™wďŢMOOW­¤¶¶öřńă...ÇĘĘj×®] °µ¬‹Ĺb …ňěŮ3|ÇŘŘXĺt:˝¦¦ożuë–­­młÂÔśó>Ą?ŐÚuÎë×®]5j„přđá÷ďß·¶¶ćńxććć>|ď˝÷nßľ­š°ŕŕ`ŤĆĺrą\®ľľ>ŕéÓ§B>źOˇP ľŮăÇŹőôô „üńÇěŮłŮl¶ŁŁăšť×•5ś={vâĉ“&MrssĂ7xőę•j‡¸fżap …âÁ3gÎtss­eýĺË—†Éĺr|űŚŚ ĺÍ´Í SsÎűýmĘfł§Oź˘l9räHaaaHH««+`îÜąńńńeeeVVV3fĚŤŤ-..ž:uŞr{axxxhhhfffff&ŹÇstt ÇďU(/_ľÄoççç›H$ťß˙] 8::zzzŞÖa~ٞ˛rŐŞU§NťJOOßłgŢČĺroŢĽÁĽqăFbb˘r߀€GGGe?“'OŢżjjj«ÜŘŘð‚‚üÇÂÂBĺT*Uy^ŻŻŻřđˇjaš†ĐgZ·éŕ9†Çăq8śŔŔŔÜÜ\±XD§Ó đ%o||<“ÉÄĎŽL&sѢEÂÜÜ\ŤÖÔÔ”’’2pŕŔúúze‡aaaĆĆĆ2™ ?Ż»¸¸‚ěěěŃŁG=z´ľľžÉd¦ĄĄI$’#GŽXYY)»R=C  Ă222ŞŞŞ|||h4žż%K–¸»»WTTäĺĺŤ1"66Vąű˝{÷¨TęÁ‹ŠŠÄbqnn®«««ŻŻ/|ÇzÝĂĂcÎś9%%%Ďź?ź0a‚˛ÝÓÓÓĎĎŻ˘˘˘ĽĽÜĹĹeăĆŤ­ţęPgÎűŽţTk:>ď/^ĽđööćrąZZZććć›7o¶µµ ‚ŠD":ť~řđaaQQ ,, BXWWgiiÉb±,Xŕéé©Ú[ee%ŤFKJJâóů»wďÖ××722Ú¶m›L&ž={ÖÄÄ„Á`Lž<9--MŮŐ˝{÷T#Ěfł-,,­¬¬fÍš!¬ŞŞňňňŇÓÓ366Ţ˝{·j%UUUIIIÓ§Og2™ 3fĚÖ­[ßľ} ßý:ڧ§§®®îđáĂýőWe»P(ôööćp8Çßßż±±QłŽÁţvef«˘ŁŁńva_‰D’››kccÓíUi6ućś$ZŻż Á@A'”u„,PÖ˛@YGČe! ”u„,PֲШĎĚprr"ş)//'ş„ÎѬ;99ůúú644]H§ŐÔh—• 5JHĄö›7epzzzË–-#şŠNĐ÷MűŻeËNĄ¤äţřă§î®Eáő:‘jj˙ü3,!á1ѵh>”u"]ą’ ¦¦>«¨¨#¸M‡˛N¤Ř؇řðkמ]ކCY'LIIÍŁGŻ @ˇPÄÄ<$ş" ‡˛NË—3¨T @ˇOžU]”&CY'LLĚCą\®ü‘FŁ\ľśA`=eťyyeąąĄŞŻ÷Ędňčh´ŚéA(ëĸr%“N§Ş¶@ňóËssKßµ ˘&”u@Ł˘HĄňfíZZ4´Śé9(ëČĘzS\,lŮŢÔ$‹‰yŢÉî!(ëHL|L§·~%RIIÍăÇŻ{ą’@Y'@RŇSą\®ĄEkůěÖ­˘ ÔLčÚ/$'礥ýý)\EEŐ÷ďżđđřß…_~~˘KPiš eť`W®d„—”ô§/ í§Đ! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGČe! ”u„,PÖ˛@YGȢőoíApBˇ0&&¦G‡ČÎNź>ÝŁŁčééą»»÷č}ú^Ť¶řůůť;wŽč*şÇőë×çÍ›GtDBçő¶444Ě1#((čBÔĺŕŕP__OtCëu„,PÖ˛@YGČe! ”u„,PÖ»Giiéľ}ű-Zäää´téŇ'N´űşÇëׯgĎžŤßpř/''§Ő«W?zô¨Ů6m÷€tĘz7xőęŐęŐ«xěر«WŻîŢ˝»¨¨híÚµ™ŹN§§¤¤¤¤¤ÄĹĹÍ›7ď믿~őęŔÄÄäćÍ›=Y;‰ ¬wüŃÉÉ)00ĐÄÄ„Á`Ś=zßľ}şşş[¶l‰ŠŠTUU988DFFŞ««V¬X!•Jjkk•]±ŮlWWWggç‹/‚žą_ľ|ąfÍš9sćxzz˘'@ ¬««±±133sÉ’%ŞŤ†-Y˛ä?˙ůĎ”)S222YYY|ňä ŕÉ“'ćććááářé\GG§YźöööĎž=kÖřóĎ?ŰŰŰ_˝zŐÇÇ'44´'“fBYWWMM ŔĐаY»±±±P(´łł{úô©\.ĎĘĘZ´hŃÓ§O Ĺ“'O¦L™ŇFźzzzUUUÍýýý===©T*ŤFkhhčŢGA(ëęŇŐŐ‚fí•••úúúfffL&óŮłgYYYłfÍŇŃŃyţüyfffŰY …§Y#źĎ_ż~ý_|q÷îÝî}$˛®®ÚŘŘÄÇÇ+[bbbJKKăăă§M›°łłKMM­®®611±±±ąsçNeeĺرcŰčóţýű–––Ş-µµµزeË©S§V®\ŮCŹEłˇ¬wŔŔŔ›7o?~Ľ¨¨¨©©©ˇˇÁÇÇçůóçË–-ŘŮŮ]ľ|yܸq†ŮŘŘ$&&Nś8‘FŁa¦P(d2™jW"‘čňĺËIIIË—/WmÇ/GĄR©uuu—.]R(hÓY(ëÝŔÔÔô§ź~Ş«« üä“OnŢĽąpáB.—4i’T*µ¶¶L0A,ă Á:ÔŐŐµ®®AĆÁÁańâĹ7nÜŘ»wď°aĂT‡ĐŐŐ]±bE```@@ŔÇL[ sűöí.÷€aZTę@™¬Fť2h4}ą\ˇ¬ýMߍÉdŞł»@ď›¶E(&''wm_ąŢ»W–”T¤PŔ={lµ´¨]­áíž=Ź ˘Í›gbggHĄb]čdĐ A$˙Đ/€˛Ţ „W®dîŮsĄ´´B8mÚ¨/ÔéíăŹ÷˝xQIˇ€aĂôwîś?ţűÖ•Ä“ZŻwł«W3§Műţ‹/Η–Öŕç‘Ő«g¨Ó!†a_|1Ă€B߼©6íű«W3ŃIŞłĐy˝ŰüpT7”NčĽŢ +Ľ˝ĂÜÜB˛ł‹xĐ eĺĘŹÔ_ohiŃ|}?¤Ńţ^ń+Čă•xxś\˛äÄ“'EjöO輮 îŕÁ—.=“ËĺÍîŐÖ¦=y˛›Í ţ@ĺĺ"[Űo•Ď"%Ť*—+fδڱcľ••±úi0t^ďşü|Á´i{/]z —+ZťN§şąMě– ¸\¶łłµňÔ®$“É!„wî<›=űPAAE·ŚĄ©PÖ»N*•Ëdňw­P¤RůŞUwăp«WO—Éš?Łp ¦§7Á wăpše˝ë¬¬ŚoÜŘĚf¤Ó›O#•J±ł1nÜĐnnŇ$3S*µůXt:ŐÄ„óÇ˙2D·‡Ó<(ëj±˛2ľqc#—«K§˙cuˇP(üý§wűp3Š,Ůi4Ę1ĆWŻnŕrŮÝ>ś†AYW×СzcÇ10`)ăŽa`đ`ÖÜąă»}¬yó¬ ŘĘU•JŐÖ¦¤Í`huűXše]-ÂŤ#SSóŽűÔÎnŤF˙}©żÝ˝h4Ęgź}LˇPT*ĹŮy\b↼Ľ2ź°¦&µ®–!”uµěŰwýňĺǡˇ>~8ęüůϧO·Ä_M_ş´­ŹőR‡—×T*ćć6áäIź±c‡\¸đůăÇŻÖ¬‰hůŠ$ň骟~J2dSLĚCe‹T*˙aawztÜŘ؇!!É …BŮ’ššgjúŻ­[Ł{tÜţe˝‹˘˘ ˛éÇ˙ şż%%e ľů‡n]Hß…˛Ţ·nńML¶%]Č?ŕOżĐТ éŁĐ˙Őč´GŹ^úűźus›äJt-˙ŕá1ą˘B´gĎ]Ý=÷C˙…˛Ţ9ůů‚+ÎL™b~čgĽ|íZGˇ°ńË/ŁY,Ć'źĽOt9} Ęz'””Ô,]:b„ÁĎ?ű5{ó¨ďŘąs~m­xÝş úúL{{ ˘ËéCĐuŽU[۸páq™Lž¸A_Ńĺ´E.W¬]{>%%7&ć këáD—ÓW ¬wXÜäáq˛´´öĘ•Ŕ~qىT*÷ő=óäIQb↑#›ż 9ˇ÷’Ú'“)"ňó+.\řĽ_@§SĎśńł°0ôô }óFHt9}Ęzű¶oŹ˝{÷ů… ź[Zö§˙ 1`€Öąs«X,†§gheeGżiUˇ¬·ăСߢ˘Ň~úÉgŇ$S˘ké4=˝AQQrąÂÇ'¬ľţ-Ńĺ e˝-gÎüyäČďűö-qrj뫼ú2.WçŇĄ€’ˇźß™·oI}}Ęú;]ą’śřŐWÎË–Ů]‹ZĚĚGF®ÉÎ. —ÉČ{}ĘzëîÜy¶~ý…U«>޸q6ѵt++ă >OMÍ۲ĺi_yCYoĹÓ§o>ű쬳łu_» @“&™ţňËĘÄÄÇ{÷^#şbP‰®ˇo)(¨pw?9a‚ééÓľ=ń˙-dj:ŘĚlđž=W úäÉ#.§·ˇkţA ¨[¶ěÔСz§Oűö٫ԱpáÄÚZńÎťq::úűß!ť…˛ţ?"‘ŘËë'Ťzńâj&S›črzŠŻď´ŞŞúmŰbŮě Ř]NďAY˙[S“lŐŞ_Ş«ë/_îë—»¨oË–9őő’uë.°XŚ3,‰.§—hÔz´ËärE@@DvvÉĹ‹&&˘Ëé ß|ă˛x±íŞUgÓÓ ‰®Ą— ¬ŔÎťq))ü_~YIžŹDÄ0ěŕAË+~ÎË+#şśŢ€˛Ž»yńâ_§N­ ŰŐŢT*ĺřńĺ––FK—ţTTTMt9=ŽěYżxńŻűţű%łgŹ#ş0ôsçü ŮžžˇAŃĺô,Rgýúő'[·ĆlŮ2gůrr˝ú¦ŠĹbüúëç4ĹËë§ÚÚF˘ËéAäÍzZZÁşuüü>ÜĽyѵŚĂaFE­©«/_&7]NO!é˙KâńŠ/>>c†ĺÉ“>Jźű/Ň„(,¬ps ±±1ůůç•ö†1NR»ŠŠŞ—/›0Á4$d9 şŇááţ÷ďçoÚ©PhŕtYݍ¨óô 54d……őÝĎ ŠŤŤÉŮłţ×®e~ýu<ѵt?re˝ˇáíŠg¨TŠf_ ŽiÓFž:µâüů˙;v“čZş‰˛ŢÔ$óóűĄ´´ćÂ…Ď9˛ayfĎwä×Áżť9ó'ѵt'˛\ŁPŔŤ#ł˛ŠÖ›š’â*u,Yb+‰żů&ÁŔ€ĺę:črşY˛ţő×ńIIYżţşšřŕáĂ5ę“]!}çsŇ‹ŠŠţúë/ő—FGG{zzş»»wKUѧ¦±bbb˘˘˘<<<𛿳iÓ&ĺ}H·Ă3ÚŤ˝uWW©Ů—Ahţߦ‚CYGČe! ”u„,PÖ˛čJÖ |||ŚŚŚ´´´ĚĚĚ6mÚTSSÓö.ąąą CµĹßß𸸸.в·Ž{đŕÁĽyótttX,ÖÔ©So޼ٵŐ©ˇ7©°Zť±ţ¨ÓYçóů“'OfłŮ·oß …qqqyyyöööíΠŞĆĆĆččhGGÇΠŽĚĚĚ9sćĚź????ż¨¨Č××wáÂ…ééé˝YCoR˙`iÔŚ©~‰5 **Şí/şž9sㆠT[,:ĘŇŻIDAT ĹG}´yófGGÇB‹‹‹ű÷––ŞWQQ!Śx˙ý÷y<ťNx?|>ßÔÔôôéÓ‡Ëĺ^ĽxoĎÎζłłc0&&&ááář–ÚÚÚř˝Bˇpůňĺgذa۶mkjj‚ŠD˘+Včë뛚šž?^ąńŚ38 ZüÖ­[÷îÝŰ‘ýüüđÂvíÚĄZBˇđóósrr‹Ĺí~MxTTTł9ďšöŁţÁz׌ÁÖ& ?‚‡Ň××700¸pá®]»ttt ”ÎÔÔôđáĂ\.÷Ë/ż”JĄ°µC !ŚŽŽ3f Á;vě­[·Zmi[ł<>>ßEˇP|ţůç3gÎllllsÚ˙Ö›YW˙`µ1c°µ‰âóů4í«ŻľŞ««űî»ď0 SŢĆŹ&źĎ§R©óçĎ///úôé¨QŁđç[ËC\[[K§Ó“““%Ihh¨……EË–vgI­¬çççc†?Uedd°X¬ěěl‹%•J×®]»sçN6›-“ÉÖ¬YłuëVŐ02™ĚÚÚZaHHČĉńv>źŻ<ńóx<ĺö999 R©ôÜąsxٞ7‰DBˇP đ-ăââĆŹßÔÔDŁŃ”Ť řƆÉĺň–Ź«#*Cs÷îÝôôt|—őë׫ţjjWof]ýŐĆŚµ:Q|>źBˇH$!ŹÇS˝­}zHH˛ĺČ‘#………!!!®®®€ąsçĆÇÇ—••YYYÍ1#66¶¸¸xęÔ©Ęí!„ááᡡˇ™™™™™™<ĎŃŃ1<<żkqyQeeĺŞU«Nť:•žžľgĎžf÷^ľ|‰˙XXXhllĚĺr›5*‹ź6mÚ™3gT{8xđ`RRRG:ÄŹ ŕĆŤř!ˇÓéqqqˇˇˇÇŽËÍÍíč$öőV3ÖęDu¤*…BˇÜ+??ßŘظŐC,‘Httt~˙ýw@ŕčččééٲĄÓ3ŇĆ9żU<ŹĂáćććŠĹâ   :ťn``PUU!ŚŹŹg2™nnnÂ&“ąhŃ"ann.ŤFkjjJII8p`}}˝˛Ă°°0ccc™L¦şÎQކeddTUUůřřĐh´ššŐ-/^¬şjÄ˙lňňňÂ×ëůůů¶¶¶ ß8--mŔ€ÁÁÁ999………¤Óé÷îÝk·Ă%K–¸»»WTTäĺĺŤ1"66Vu—5kÖĚś9łÝ_©°×˙6Uó`ÁwĎlm˘Z=‚Ş·ń5Ś‹‹‹@ ŕńxVVV{÷îmő×××3™Ě´´4‰DräČ++«–-í>| Îz÷âĹ ooo.—«ĄĄennľyóf[[Ű   ˇH$˘Ó釆 „uuu–––,kÁ‚žžžŞ˝UVVŇh´¤¤¤wÍTpp0›Í¶°°HLL´˛˛š5k–꽕••^^^úúúC† ůꫯđ#$ ?ýôS6›=zôč'N°X,ĺp©©©NNNL&SGGgÚ´i7oŢl6\«VUUyyyéééďŢ˝¶x-ČĐĐđ×_mwęz9ëP˝…?%Zť1ŘÚDu$ëÚÚÚ!!!&&&†††›6m§·ĺ!†ž={ÖÄÄ„Á`Lž<9--­Ő–¶uCÖ[‹Ĺ]ر‡ś?ľ¬¬ żťĐ‘s@ďčý¬·DŕÁjör\Oęümú. ĂƦ}óNbbâŽ;D"Ń«WŻ8€/O\_;X˝F3݇9~üxeeĺ°aì­­MMM·oßNtEń4óóaŚŚŚ._ľLtHs–––‰„¨Ń5óĽŽ -ˇ¬#d˛ŽĘ:BÍ˙6ý÷ż˙Ý©+Ń‘NyôčQ7övúôéněMó©ľöţÁ]Žćł··W˙]ʧü8+ä]X,VNNŽrŇ4üóD ­×˛@YGČe! ”u„,ţěîÄ~‹fĎ*IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_dial-members.html0000644000175000017500000010414512052741137021006 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDial Member List

This is the complete list of members for QwtDial, including all inherited members.

boundingRect() const QwtDial
Clockwise enum value (defined in QwtDial)QwtDial
contentsRect() const QwtDial
CounterClockwise enum value (defined in QwtDial)QwtDial
direction() const QwtDial
Direction enum nameQwtDial
drawContents(QPainter *) const QwtDialprotectedvirtual
drawFocusIndicator(QPainter *) const QwtDialprotectedvirtual
drawFrame(QPainter *p)QwtDialprotectedvirtual
drawNeedle(QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const QwtDialprotectedvirtual
drawScale(QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const QwtDialprotectedvirtual
drawScaleContents(QPainter *painter, const QPoint &center, int radius) const QwtDialprotectedvirtual
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
frameShadow() const QwtDial
getScrollMode(const QPoint &, int &scrollMode, int &direction)QwtDialprotectedvirtual
getValue(const QPoint &)QwtDialprotectedvirtual
hasVisibleBackground() const QwtDial
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *)QwtDialprotectedvirtual
lineWidth() const QwtDial
mass() const QwtAbstractSlidervirtual
maxScaleArc() const QwtDial
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtDialvirtual
minScaleArc() const QwtDial
minValue() const QwtDoubleRange
Mode enum nameQwtDial
mode() const QwtDial
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
needle() const QwtDial
needle()QwtDial
orientation() const QwtAbstractSlider
origin() const QwtDial
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *)QwtDialprotectedvirtual
periodic() const QwtDoubleRange
Plain enum value (defined in QwtDial)QwtDial
prevValue() const QwtDoubleRangeprotected
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtDial(QWidget *parent=NULL)QwtDialexplicit
QwtDialScaleDraw (defined in QwtDial)QwtDialfriend
QwtDoubleRange()QwtDoubleRange
Raised enum value (defined in QwtDial)QwtDial
rangeChange()QwtDialprotectedvirtual
resizeEvent(QResizeEvent *)QwtDialprotectedvirtual
RotateNeedle enum value (defined in QwtDial)QwtDial
RotateScale enum value (defined in QwtDial)QwtDial
ScaleBackbone enum value (defined in QwtDial)QwtDial
scaleContentsRect() const QwtDialvirtual
scaleDraw()QwtDial
scaleDraw() const QwtDial
ScaleLabel enum value (defined in QwtDial)QwtDial
scaleLabel(double) const QwtDialprotectedvirtual
ScaleOptions enum nameQwtDial
ScaleTicks enum value (defined in QwtDial)QwtDial
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrollMode enum nameQwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setDirection(Direction)QwtDial
setFrameShadow(Shadow)QwtDial
setLineWidth(int)QwtDial
setMass(double val)QwtAbstractSlidervirtual
setMode(Mode)QwtDial
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setNeedle(QwtDialNeedle *)QwtDialvirtual
setOrientation(Qt::Orientation o)QwtAbstractSlidervirtual
setOrigin(double)QwtDialvirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setScale(int maxMajIntv, int maxMinIntv, double step=0.0)QwtDialvirtual
setScaleArc(double min, double max)QwtDial
setScaleDraw(QwtDialScaleDraw *)QwtDialvirtual
setScaleOptions(int)QwtDial
setScaleTicks(int minLen, int medLen, int majLen, int penWidth=1)QwtDial
setStep(double)QwtDoubleRange
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
setWrapping(bool)QwtDialvirtual
Shadow enum nameQwtDial
showBackground(bool)QwtDial
sizeHint() const QwtDialvirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
Sunken enum value (defined in QwtDial)QwtDial
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
updateMask()QwtDialprotectedvirtual
updateScale()QwtDialprotected
value() const QwtDoubleRange
valueChange()QwtDialprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
wrapping() const QwtDial
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtDial()QwtDialvirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/class_qwt_picker_click_point_machine__inherit__graph.md50000644000175000017500000000004012052741140026665 0ustar gudjongudjonbb1e70d3092bff09118c82b6ff89b5f2qwt5-5.2.3/doc/html/class_qwt_picker-members.html0000644000175000017500000010537312052741140021350 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPicker Member List

This is the complete list of members for QwtPicker, including all inherited members.

accept(QwtPolygon &selection) const QwtPickerprotectedvirtual
ActiveOnly enum value (defined in QwtPicker)QwtPicker
AlwaysOff enum value (defined in QwtPicker)QwtPicker
AlwaysOn enum value (defined in QwtPicker)QwtPicker
append(const QPoint &)QwtPickerprotectedvirtual
appended(const QPoint &pos)QwtPickersignal
begin()QwtPickerprotectedvirtual
CenterToCorner enum value (defined in QwtPicker)QwtPicker
CenterToRadius enum value (defined in QwtPicker)QwtPicker
changed(const QwtPolygon &pa)QwtPickersignal
ClickSelection enum value (defined in QwtPicker)QwtPicker
CornerToCorner enum value (defined in QwtPicker)QwtPicker
CrossRubberBand enum value (defined in QwtPicker)QwtPicker
DisplayMode enum nameQwtPicker
DragSelection enum value (defined in QwtPicker)QwtPicker
drawRubberBand(QPainter *) const QwtPickervirtual
drawTracker(QPainter *) const QwtPickervirtual
EllipseRubberBand enum value (defined in QwtPicker)QwtPicker
end(bool ok=true)QwtPickerprotectedvirtual
eventFilter(QObject *, QEvent *)QwtPickervirtual
HLineRubberBand enum value (defined in QwtPicker)QwtPicker
initKeyPattern()QwtEventPattern
initMousePattern(int numButtons)QwtEventPattern
isActive() const QwtPicker
isEnabled() const QwtPicker
KeepSize enum value (defined in QwtPicker)QwtPicker
KeyAbort enum value (defined in QwtEventPattern)QwtEventPattern
KeyDown enum value (defined in QwtEventPattern)QwtEventPattern
KeyHome enum value (defined in QwtEventPattern)QwtEventPattern
KeyLeft enum value (defined in QwtEventPattern)QwtEventPattern
keyMatch(uint pattern, const QKeyEvent *) const QwtEventPattern
keyMatch(const KeyPattern &, const QKeyEvent *) const QwtEventPatternprotectedvirtual
keyPattern() const QwtEventPattern
keyPattern()QwtEventPattern
KeyPatternCode enum nameQwtEventPattern
KeyPatternCount enum value (defined in QwtEventPattern)QwtEventPattern
KeyRedo enum value (defined in QwtEventPattern)QwtEventPattern
KeyRight enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect1 enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect2 enum value (defined in QwtEventPattern)QwtEventPattern
KeyUndo enum value (defined in QwtEventPattern)QwtEventPattern
KeyUp enum value (defined in QwtEventPattern)QwtEventPattern
mouseMatch(uint pattern, const QMouseEvent *) const QwtEventPattern
mouseMatch(const MousePattern &, const QMouseEvent *) const QwtEventPatternprotectedvirtual
mousePattern() const QwtEventPattern
mousePattern()QwtEventPattern
MousePatternCode enum nameQwtEventPattern
MousePatternCount enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect1 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect2 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect3 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect4 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect5 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect6 enum value (defined in QwtEventPattern)QwtEventPattern
move(const QPoint &)QwtPickerprotectedvirtual
moved(const QPoint &pos)QwtPickersignal
NoRubberBand enum value (defined in QwtPicker)QwtPicker
NoSelection enum value (defined in QwtPicker)QwtPicker
parentWidget()QwtPicker
parentWidget() const QwtPicker
pickRect() const QwtPickervirtual
PointSelection enum value (defined in QwtPicker)QwtPicker
PolygonRubberBand enum value (defined in QwtPicker)QwtPicker
PolygonSelection enum value (defined in QwtPicker)QwtPicker
QwtEventPattern()QwtEventPattern
QwtPicker(QWidget *parent)QwtPickerexplicit
QwtPicker(int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)QwtPickerexplicit
RectRubberBand enum value (defined in QwtPicker)QwtPicker
RectSelection enum value (defined in QwtPicker)QwtPicker
RectSelectionType enum nameQwtPicker
reset()QwtPickerprotectedvirtual
resizeMode() const QwtPicker
ResizeMode enum nameQwtPicker
rubberBand() const QwtPicker
RubberBand enum nameQwtPicker
rubberBandPen() const QwtPicker
rubberBandWidget() const QwtPickerprotected
selected(const QwtPolygon &pa)QwtPickersignal
selection() const QwtPicker
selectionFlags() const QwtPicker
SelectionMode enum nameQwtPicker
SelectionType enum nameQwtPicker
setEnabled(bool)QwtPickervirtual
setKeyPattern(uint pattern, int key, int state=Qt::NoButton)QwtEventPattern
setKeyPattern(const QwtArray< KeyPattern > &)QwtEventPattern
setMousePattern(uint pattern, int button, int state=Qt::NoButton)QwtEventPattern
setMousePattern(const QwtArray< MousePattern > &)QwtEventPattern
setResizeMode(ResizeMode)QwtPickervirtual
setRubberBand(RubberBand)QwtPickervirtual
setRubberBandPen(const QPen &)QwtPickervirtual
setSelectionFlags(int)QwtPickervirtual
setTrackerFont(const QFont &)QwtPickervirtual
setTrackerMode(DisplayMode)QwtPickervirtual
setTrackerPen(const QPen &)QwtPickervirtual
stateMachine(int) const QwtPickerprotectedvirtual
Stretch enum value (defined in QwtPicker)QwtPicker
stretchSelection(const QSize &oldSize, const QSize &newSize)QwtPickerprotectedvirtual
trackerFont() const QwtPicker
trackerMode() const QwtPicker
trackerPen() const QwtPicker
trackerPosition() const QwtPicker
trackerRect(const QFont &) const QwtPicker
trackerText(const QPoint &pos) const QwtPickervirtual
trackerWidget() const QwtPickerprotected
transition(const QEvent *)QwtPickerprotectedvirtual
updateDisplay()QwtPickerprotectedvirtual
UserRubberBand enum value (defined in QwtPicker)QwtPicker
VLineRubberBand enum value (defined in QwtPicker)QwtPicker
widgetKeyPressEvent(QKeyEvent *)QwtPickerprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtPickerprotectedvirtual
widgetLeaveEvent(QEvent *)QwtPickerprotectedvirtual
widgetMouseDoubleClickEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetWheelEvent(QWheelEvent *)QwtPickerprotectedvirtual
~QwtEventPattern()QwtEventPatternvirtual
~QwtPicker()QwtPickervirtual
qwt5-5.2.3/doc/html/class_qwt_panner-members.html0000644000175000017500000002046012052741140021347 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPanner Member List

This is the complete list of members for QwtPanner, including all inherited members.

cursor() const QwtPanner
eventFilter(QObject *, QEvent *)QwtPannervirtual
getAbortKey(int &key, int &state) const QwtPanner
getMouseButton(int &button, int &buttonState) const QwtPanner
isEnabled() const QwtPanner
isOrientationEnabled(Qt::Orientation) const QwtPanner
moved(int dx, int dy)QwtPannersignal
orientations() const QwtPanner
paintEvent(QPaintEvent *)QwtPannerprotectedvirtual
panned(int dx, int dy)QwtPannersignal
QwtPanner(QWidget *parent)QwtPanner
setAbortKey(int key, int state=Qt::NoButton)QwtPanner
setCursor(const QCursor &)QwtPanner
setEnabled(bool)QwtPanner
setMouseButton(int button, int buttonState=Qt::NoButton)QwtPanner
setOrientations(Qt::Orientations)QwtPanner
widgetKeyPressEvent(QKeyEvent *)QwtPannerprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtPannerprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtPannerprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtPannerprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtPannerprotectedvirtual
~QwtPanner()QwtPannervirtual
qwt5-5.2.3/doc/html/class_qwt_plot_grid__inherit__graph.map0000644000175000017500000000051212052741156023434 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_color_map__inherit__graph.png0000644000175000017500000001374512052741152023443 0ustar gudjongudjon‰PNG  IHDR,p+$ÚbKGD˙˙˙ ˝§“šIDATxśíÝi@×Úŕ™l@€ 6XÜđşˇ"‚T‘˘(˛( ű"•Z­U©¶^Dm#ÁŤ],öZą.(.•ReÓ"(ěBŘ%$óýűĺNĂ.I†ĺ<żÂ™™sŢ™××Y23Ŕď`ĽE8E8E8#áŔ¨ńäÉ“ŕĹ(Ŕ`08Ž˘˘"ŢŚ0¸::HöööłfÍÂ;‘.###>>ŢŢŢď@F °'‚YłfáĹH—‘‘wŁ 8'ś"ś"ś"ś"ś"żŞŞŞ#GŽŘÚÚš™™mذ!<<Ľµµµ˙EĘËËżüňKáźĹĹĹ{öěY˝zµ………żżvvö ě“˝{÷bqppd€„€"ł·oßúřřP©ÔS§NĄĄĄ:t¨˘˘ÂĎĎoŔ:*))ٵk—ÁĺË—V®\ąoßľ—/_?6"‘——×ÔÔ$lÉËË|`€„€"łź~úÉĚĚ, €ÍfËĘĘNź>ýČ‘#t:=666000>>‚ ††“«WŻBôáĂwwwŹgbbÂĺrĂĂĂťťť­¬¬čtş‚‚š5klmmŃťakkë?˙ůO+++{{{‡ÓÝÝŤşçÔňňň 6¤¤¤XXX”——˙üç?ÂEŇÓÓ—-[&üóÍ›7ľľľćććéééˇ=$&&ÚŘŘŘÚÚFFFňů|élÉńˇ8µ··çćć®_żŰĂđúőë?~Ľxńâśś‚ž?NĄRóňň ĘËËÓŇŇŠ‰‰!“É÷îÝ#“ÉyyyfffŘ6mÚäěě AЉ'ÚÚÚbbbNś8ńűďż'%%agëujCCCIIÉĄK—Řl6A+W®üí·ßĐů?~üřđáCěXQQQiiinnnhc]]]NNNttthhčÇE†ˇ8ˇGzęęę"퍍Ťzzz/^ĽŕóůĎź?·µµ}ńâ…@ ČËË[Ľx±pN.— AŠŠJĎÎy<^FF†żż?ťNź4i’‡‡vźÖ×ÔîîîM›6 ;\¸passsII AŹ=š1cÁvâíííŕŕ@$I$R[[Ú(Đn?˙üsOOOt (Bq˘ÓéŐÖÖŠ´××׫¨¨LžP„âDĄRuttRRR„-‰‰‰UUU)))†††éééeff~řđÍfëččÜżżľľ{S8•Jť={öŻżţŠí6...++ Ý›UWWŁŤUUUŘf_Sa ŇÜÜüÎť;uuuFFFÂv.—éĺĺ%lGDŘmeeeŻ{i`8@ŠY@@@zzúéÓ§+**şşşÚÚÚÜÜÜţúë/ô¤NOOďúőëłgφaXGG'55uÁ‚$ †a@€^hٲeK|||LLĚŰ·o«««ăăăďŢ˝ëŕŕ@&“—.]zúô馦¦wďŢ]¸p{:×˙T,MMM‹uôčQCCCa;ú< ‘Hlii‰‹‹Â#R´Ű·oßFGG÷Ő-đÉ@Š™¦¦ćŮłg[ZZVŻ^ťžžnccĂd2“““!Z¸p!ŹÇ›;w.AóçĎďčč@ŹEUUU'NśheeŐŇҢ­­’źźďëëëííýđáĂ#GŽ {ËŔŔ@99977·íŰ·ëéé988`‡î*–ąąůłgĎĚÍͱŤt:ÝÝÝ= `óćÍFFF“&MB!“Éşşş>>>v |đ<á`ŮŰŰ×ŐŐ}ÚŁL]]]ĺĺĺS§N{T’V^^îíí=¤‹1&&&ŕyÂ!{Bi P(ٱéE8Eô‡Íf/% !ŕ !ŕ !ŕ !ŕ ĽňpŢżăĆ ĽŁĆP„ĄŻŻź*éČd¦Ľü|2Y˝ˇ!A č~‡22l%Ą/ŰŰ_´·żÚ‡ßa˙ćĚ™#éQĆpÇĚHÁăńÓŇrĎž˝—ź_ A˛˛|VÖ~yy™ĐíŰ…nn‚‰Dxőęy›6-[°@sřÝâŠĺĺ ΫWźtvňD€ =jçâb ®!ÖŻĎĘ*íî‰>_ ©ÉظŃČÉIźJĄkŕ“"Ä ‚ ·oFFfb`0ĹÇÇxĹŠô|řP„ŇźuŕŔµÖÖŹĐ˙?‡E"´µ'ÜşµSěőđúu­±ńQ>ż—t@0}:3:zăçź«‰w\`@ŕ{Bi»u+żµő#‚ ˝ţ÷×Ý-8p`­$öHS¦¨;:ę“H˝d\ @ôęUMaá{±Ź ˇ´ť:ĺ4mš:™Lě9‰D",_>ó‹/¦IhčÝ»-ČäŢż”"ŕÍ›ŤWŻž'ˇˇ~€"”6M6>ŢWUULÝř˛oźĄä†f0¶l1éy˝‡D"¬[§»˙ZÉ ô!LĄŕ`{€=8$‘ëÖéjkkHtčÍ›Mh4Yěá.‰DTSSüápU/ q•UęçwiĆ …B"ţűOź@€żývµ¤‡–——ůúë•Âr#‘S§Şutđ\]9\®Äo¦zŠPÚ~ů%×Î±vZÚvdža†H$˘»»!‹Ą$…śť L Ăd2qŇ$ĺ¤$˙›7wÖŐµ¬ZuňÍ›z)E(U±±Źýü.zz~áJ&ML´ĂÂś!¦PRz• …BÚ»w ‚ ĘĘÔ¤$yMMƵk[©TŠŤMXQ¸@*mŕ{Bé9|řFxřťďľ[ăçgŠmĎČ(VT”]¸p˛Ô"ë×stt>Ă~+ŘÜÜáćvţĺËęŘXďE‹>—Z0(BiýűSbbýřă:CĽĂéSGG—ŹOĚŁG%çÎą›šţďpĆ P„Çăń®ÜĽůüĚ·U«Fú3>|ľ`×®„¤¤?‚í7lX<đŔ°ç %«µőŁ—WT^^ĹĹ‹›$÷-Ľ‰„ĐPůŔŔřĆĆv__Ľ#ű@JPCC««+§˘âCB–yó>Ă;śÁ‚axß>KK)((őǶ˝{WŻ% ˇ¤TV6::žíčŕ]»¶uęTŃ_,ůĽ˝Ť””äăęꚏßĐëM§€X€"”˘˘*'§HůÄD?&“†w8źČÎnťNőń‰ár;""ÜdeÉxG46 3â—ť]ćęz~útfl¬·’ďp†ëɓמžçgÍšíMŁÉâΊPĚîŢ-ڴ邾ţÇCNnŚĽ<˘¸¸ĘÉ)’N§^˝ęĂdJă¶žqč‹Óőë9žžQ––:.xŹ™ „ H[[#5uëÇŹÝVVaŕÖ6±E(6‘‘[¶\ܸqé‰cđ2›ÍHMÝŞ¨(kmýsAA%ŢáŚ)ŕpT<ľqćĚÝ˝{W‹Ü’6Ć47wxxDľŹ‰ń^ĽX ďpĆP„ĂŐÝ-ص+>99;$ÄÁÁAďp$®««Űß˙RzzAx¸ x_,@ËÇŹÝľľ±÷îť=ënn>ďp¤„ĎěŮ“÷ôŘ1;''}ĽĂőŔ÷„ź®ĄĄÓË+ęůów—/ű,Y2Ž~ ›H$۱X´]»ŰĆö¸€"üDőő­..çŢżoLLÜ2w%M\` \I§S‚R««›´ľ"*P„źâÍ›zGÇł0 §Ąm×ÔżŻŻŢ¸ŃN§îÜÇ嶇†nčőrŔ€@Yaá{gçHUUĹË—}ÔŐńgëÖéŇhr›7Çrą‘‘îŕÖ¶O.Ě MVV©»{ÔŚ¬ŘXoMďpFŠgĎŢşşr´´TccżRV–Ç;śQf¬}§,Q·o::FNMHđµ`fJŠ˙ű÷\[ŰÓŐŐ\ĽĂe@V\ÜSOĎ(kë‘‘î 8Ś5c+5u+ŹÇ·˛úą´´ďpFP„rćĚÝŔŔxăăÇíĹř‹ecĚgꩤ¦nŁÓ©66ačOťÎ € Č©˙úWćÁÖŢŢFx‡3 ´µ}ôöŽÎÎ~ĺid4ďpFP„ýéîĆ]»öghč;»Ex‡3jđxü­[/ýö[~XłĄĄŢáŚt űÔŮÉŰĽ9öÁ—‘‘îffłđg”áó{÷&_ąňű‘#ëĹř»ßc¸ŔĐ»ććNOĎó•W®řčëOÁ;śŃ‡H$;fÇf«ěŢťXSĂ \‰wD#(Â^ÔÔp#›šÚŻ_1…w8Łźź)•*łJccűˇC6ŕÖ¶^"UVVçčI$RS·˛Ůă÷–4qńôü‚N§nß~Ą©©ýäIGpk[Oŕśđo *ťť#ŐŐi—/ű¨©Ť÷[ŇÄčáĂW^^˙š?_3*ĘKAAďpFP„˙óôi©»űyvT”§Ľ<ř‡"fąąĺ..ç45/nRQ·¶ýřŢůż~ý5ĎÁ!ÂČhzl¬7¨@IĐŃa_»¶µ¦¦ŮÖöôű÷Mx‡3‚€"„ ş|ůÉćͱvv‹""ÜŔ-i’3móúőmŔÚúçׯkńg¤E…†ţöÍ7‰Ű·›Ű[Ň$mâDĺ_~ `2•,-úóĎ7x‡3"ŚësB JŤŽÎ‰%§"´µµ;;;Ĺ$jlfűÍ=Ańńńýß±|ůňm۶a[ÁŇĄKwîÜijj‚ Hee%AGŹE¤ŞŞ ;\]]‚ ±±±óćÍ+(( “ɵµµh?EEE222čMMÍĐĐP555&“ąk×.ʇNŤPQQQWWżtéşT~~ľžžž¬¬,›Íމ‰AŤŤŤ±AîŢ˝űđáĂ‚466ş¸¸0ŚI“&íŮł§««K8n_S555ţůg…k×®ÉČČ899…†† {öňňňňňöĐ3ž^W§˙Ť<Č\ †rš™™)\}!‘lž;wŽÁ`0™Ě+W® 3´¶¶úřř¨««O0á믿F·I_[ÝţEEEc łńńń˘u÷·?J—Ë%Ż_żiONNž:uęńăÇ-,,‰‹‹ŁŃh«V­B?Ďť;»9111 GDWW÷Ô©Sh#6mD"qÍš5555/^Ľ6mZHHHQQ Ă~~~\.÷Çd±XčRÖÖÖěččŕp8ęęę‚477„ĘĘĘ^WÁÁÁaíÚµ555Ż^˝š3gαcǰ±ő:•BˇxyyUUUˇsŢşukîÜąčüíííĘĘĘwîÜöĐ3ž^W§źŤ<Č\ ’r*’\vŞśśśżż?š8 t†Ť7şşşÖŐŐ•””čééˇ7‘ôşő„Űldv¸EXRRĂpĎrĎÉÉQTTĚĎĎWTTäńx~~~ß}÷ŤFëîîöőőÝ˝{7vs”••)((pą\AÂÂÂ,X€¶cÓAPII Ú~őęŐ9s栍莴  @Ř[aaa[[ŹÇ»páÚXZZ Ă0źĎďgg'@(--E˙LNNF{Fěk*Ačîť“ĎçOś81''ŤÍĚĚ »v=ăéuuúŮČĚĹ I!§aĎÄuuu‘É䦦&tć»wďęęę"}o=tűŹŤĚö,¡ťŞ©©Á0\^^.Ň^YYÉb±fÍšE§Ółłł333ťśśTUUsrrîßżżjŐ*ěĚ111ťťťÓ§Og±XAAAĎž=ËĎĎé@ hiiˇźµµµß˝{A…BQUUE§ ç|úôéŇĄKőőőSSSц„í0??źĂáTWWC4yňd´QKK íŐ×T …˘¦¦†ŤÍĹĹĺÂ… ]ĽxŃÍÍ ;PĎxúZťB,9í_ĎÄUUUńx<:ťĂ0 ĂË—/űö-ÔÇÖn˙±šŮˇ!ŤF[¶lYXX°ĺĉeeeaaaVVV­\ą2%%ĄşşzćĚ™ĆĆĆIII•••K–,ÎŹ HLLLDDDnnnnnnAA©©iLLŚČ@ŕÍ›7čç’’ ‚`Xô­•őőő7nŚŚŚĚÎÎţᇄAž?;gHHČÍ›7Y,AžËĘĘĐžQ}Mí9®»»ű•+WŢ˝{÷řńc[[ŰţăékuFáçt@=7 “É$‰Â=akkëüŃ×Ö.>f3‹Ý-B8*((`0ĹĹĹAAAd2YMM­ˇˇA””kkkAbcclmm)..&‘H]]]÷îÝŁR©­­­Â9ކ†Fww·ČĚÚµkkkk fÎśyřđaěđsmm- Ă999 nnn$ ÍëÓ§Oĺääľ˙ţű²˛˛2™üčŃ#AÖ­[‡=7éą˙©ŘĎ‹-255uww0ž^WgŔ–Áäb0¤Stő1ÚÚÚz=X9Ióôô¬«««©©Y»víöíŰűÚzŘcÝ1Ůអ^ż~íęęĘd2)Š––ÖÎť;uuu‚‚inn&“Éč%¦ŠŠ ‚8‚ ---ÚÚÚŠŠŠ–––ŘŢęëëI$ŇÍ›7EŇĆfłŐŐŐwěŘ!rĄ űůűďż§ŃhS¦LIMMť9sćŠ+ĐöĚĚL333%%%CCĂôôtápŽŽŽ***&Lřć›oDzî*öóéÓ§!şsç΀ńôş:ndi!2Ľś>zôHävggç‹°±±ŃŐŐ•Á`0 ooďööv¤ď­‡ u´gV Qwt User's Guide: QwtPlotItem Class Reference
QwtPlotItem Class Reference

#include <qwt_plot_item.h>

Inheritance diagram for QwtPlotItem:

List of all members.

Public Types

enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
virtual QwtDoubleRect boundingRect () const
void detach ()
virtual void draw (QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const =0
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
virtual int rtti () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Detailed Description

Base class for items on the plot canvas.

A plot item is "something", that can be painted on the plot canvas, or only affects the scales of the plot widget. They can be categorized as:

  • Representator
    A "Representator" is an item that represents some sort of data on the plot canvas. The different representator classes are organized according to the characteristics of the data:

Depending on the QwtPlotItem::ItemAttribute flags, an item is included into autoscaling or has an entry on the legnd.

Before misusing the existing item classes it might be better to implement a new type of plot item ( don't implement a watermark as spectrogram ). Deriving a new type of QwtPlotItem primarily means to implement the YourPlotItem::draw() method.

See also:
The cpuplot example shows the implementation of additional plot items.

Member Enumeration Documentation

Plot Item Attributes

  • Legend
    The item is represented on the legend.
  • AutoScale
    The boundingRect() of the item is included in the autoscaling calculation.
See also:
setItemAttribute(), testItemAttribute()

Runtime type information.

RttiValues is used to cast plot items, without having to enable runtime type information of the compiler.


Constructor & Destructor Documentation

QwtPlotItem::QwtPlotItem ( const QwtText title = QwtText())
explicit

Constructor

Parameters:
titleTitle of the item

Member Function Documentation

void QwtPlotItem::attach ( QwtPlot plot)

Attach the item to a plot.

This method will attach a QwtPlotItem to the QwtPlot argument. It will first detach the QwtPlotItem from any plot from a previous call to attach (if necessary). If a NULL argument is passed, it will detach from any QwtPlot it was attached to.

Parameters:
plotPlot widget
See also:
QwtPlotItem::detach()
QwtDoubleRect QwtPlotItem::boundingRect ( ) const
virtual
Returns:
An invalid bounding rect: QwtDoubleRect(1.0, 1.0, -2.0, -2.0)

Reimplemented in QwtPlotCurve, QwtPlotMarker, QwtPlotSpectrogram, and QwtPlotSvgItem.

void QwtPlotItem::detach ( )
inline

This method detaches a QwtPlotItem from any QwtPlot it has been associated with.

detach() is equivalent to calling attach( NULL )

See also:
attach( QwtPlot* plot )
virtual void QwtPlotItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
pure virtual

Draw the item.

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rect of the canvas in painter coordinates

Implemented in QwtPlotCurve, QwtPlotMarker, QwtPlotScaleItem, QwtPlotSpectrogram, QwtPlotRasterItem, QwtPlotGrid, and QwtPlotSvgItem.

QwtDoubleRect QwtPlotItem::invTransform ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  rect 
) const

Transform a rectangle from paint to scale coordinates

Parameters:
xMapX map
yMapY map
rectRectangle in paint coordinates
Returns:
Rectangle in scale coordinates
See also:
transform()
bool QwtPlotItem::isVisible ( ) const
Returns:
true if visible
See also:
setVisible(), show(), hide()
void QwtPlotItem::itemChanged ( )
virtual

Update the legend and call QwtPlot::autoRefresh for the parent plot.

See also:
updateLegend()
QWidget * QwtPlotItem::legendItem ( ) const
virtual

Allocate the widget that represents the item on the legend.

The default implementation is made for QwtPlotCurve and returns a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend().

Returns:
QwtLegendItem()
See also:
updateLegend() QwtLegend()

Implements QwtLegendItemManager.

QRect QwtPlotItem::paintRect ( const QwtScaleMap xMap,
const QwtScaleMap yMap 
) const

Calculate the bounding paint rect of 2 maps.

Parameters:
xMapX map
yMapX map
Returns:
Bounding rect of the scale maps
int QwtPlotItem::rtti ( ) const
virtual

Return rtti for the specific class represented. QwtPlotItem is simply a virtual interface class, and base classes will implement this method with specific rtti values so a user can differentiate them.

The rtti value is useful for environments, where the runtime type information is disabled and it is not possible to do a dynamic_cast<...>.

Returns:
rtti value
See also:
RttiValues

Reimplemented in QwtPlotCurve, QwtPlotSpectrogram, QwtPlotMarker, QwtPlotScaleItem, QwtPlotSvgItem, and QwtPlotGrid.

QwtDoubleRect QwtPlotItem::scaleRect ( const QwtScaleMap xMap,
const QwtScaleMap yMap 
) const

Calculate the bounding scale rect of 2 maps.

Parameters:
xMapX map
yMapX map
Returns:
Bounding rect of the scale maps
void QwtPlotItem::setAxis ( int  xAxis,
int  yAxis 
)

Set X and Y axis

The item will painted according to the coordinates its Axes.

Parameters:
xAxisX Axis
yAxisY Axis
See also:
setXAxis(), setYAxis(), xAxis(), yAxis()
void QwtPlotItem::setItemAttribute ( ItemAttribute  attribute,
bool  on = true 
)

Toggle an item attribute

Parameters:
attributeAttribute type
ontrue/false
See also:
testItemAttribute(), ItemAttribute
void QwtPlotItem::setRenderHint ( RenderHint  hint,
bool  on = true 
)

Toggle an render hint

Parameters:
hintRender hint
ontrue/false
See also:
testRenderHint(), RenderHint
void QwtPlotItem::setTitle ( const QString &  title)

Set a new title

Parameters:
titleTitle
See also:
title()
void QwtPlotItem::setTitle ( const QwtText title)

Set a new title

Parameters:
titleTitle
See also:
title()
void QwtPlotItem::setVisible ( bool  on)
virtual

Show/Hide the item

Parameters:
onShow if true, otherwise hide
See also:
isVisible(), show(), hide()
void QwtPlotItem::setXAxis ( int  axis)

Set the X axis

The item will painted according to the coordinates its Axes.

Parameters:
axisX Axis
See also:
setAxis(), setYAxis(), xAxis()
void QwtPlotItem::setYAxis ( int  axis)

Set the Y axis

The item will painted according to the coordinates its Axes.

Parameters:
axisY Axis
See also:
setAxis(), setXAxis(), yAxis()
void QwtPlotItem::setZ ( double  z)

Set the z value.

Plot items are painted in increasing z-order.

Parameters:
zZ-value
See also:
z(), QwtPlotDict::itemList()
bool QwtPlotItem::testItemAttribute ( ItemAttribute  attribute) const

Test an item attribute

Parameters:
attributeAttribute type
Returns:
true/false
See also:
setItemAttribute(), ItemAttribute
bool QwtPlotItem::testRenderHint ( RenderHint  hint) const

Test a render hint

Parameters:
hintRender hint
Returns:
true/false
See also:
setRenderHint(), RenderHint
const QwtText & QwtPlotItem::title ( ) const
Returns:
Title of the item
See also:
setTitle()
QRect QwtPlotItem::transform ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QwtDoubleRect &  rect 
) const

Transform a rectangle

Parameters:
xMapX map
yMapY map
rectRectangle in scale coordinates
Returns:
Rectangle in paint coordinates
See also:
invTransform()
void QwtPlotItem::updateLegend ( QwtLegend legend) const
virtual

Update the widget that represents the item on the legend.

updateLegend() is called from itemChanged() to adopt the widget representing the item on the legend to its new configuration.

The default implementation is made for QwtPlotCurve and updates a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend().

Parameters:
legendLegend
See also:
legendItem(), itemChanged(), QwtLegend()

Implements QwtLegendItemManager.

Reimplemented in QwtPlotCurve.

void QwtPlotItem::updateScaleDiv ( const QwtScaleDiv ,
const QwtScaleDiv  
)
virtual

Update the item to changes of the axes scale division.

Update the item, when the axes of plot have changed. The default implementation does nothing, but items that depend on the scale division (like QwtPlotGrid()) have to reimplement updateScaleDiv()

Parameters:
xScaleDivScale division of the x-axis
yScaleDivScale division of the y-axis
See also:
QwtPlot::updateAxes()

Reimplemented in QwtPlotScaleItem, and QwtPlotGrid.

double QwtPlotItem::z ( ) const

Plot items are painted in increasing z-order.

Returns:
setZ(), QwtPlotDict::itemList()
qwt5-5.2.3/doc/html/class_qwt_plot_item__inherit__graph.map0000644000175000017500000000237212052741156023453 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_polygon_f_data__inherit__graph.md50000644000175000017500000000004012052741142024335 0ustar gudjongudjon84f5ec41fc3eb539474a3b754e633c77qwt5-5.2.3/doc/html/class_qwt_math_m_l_text_engine__inherit__graph.md50000644000175000017500000000004012052741140025517 0ustar gudjongudjonb9fc2fc22cdad875fba6659f3b599e8cqwt5-5.2.3/doc/html/knob.png0000644000175000017500000001441312052741140015126 0ustar gudjongudjon‰PNG  IHDRieÁ"ZŇIDATxśí\yXSWÚ?' „a ›`¤´˛ S¨V).­v¤¶÷©Ć)â´¶–bG;¨¨­~_ĹÁGTF°­t¨ X BÔ,„- „,÷|\›ć„$„jżÇß_Éągyßß=÷,ďűžŔ ÂłŕOŚÜ™ŹÜ™ŹÜ™ŹÜ™ŹÜ™ŹÜ™Ňł`h\ż~}Ó¦M!„ĐÇǧ¸¸řY 5Ď)w|>áÂ…»wď~Ö‚ ‡çô›}ôč‘··÷ł–b<§ÜńůüŠŠŠéÓ§GDD|ôŃG …âYK4žSîT*UxxxYYŮ™3g?~ĽgĎžg-ŃsîB·nÝ Ă~#‘źźź””DĄR=<<6oŢ\QQa|YŤF“••’ŘŮŮi˛ĐĆaĚąS(;věŔ0Ěř""‘(88X*•â‰D"™L6ľř‘#GęęęNžFmŤaż»uëÖ­[·>üđCüoPPĐ`ßwqq±±±Ńjµř_ťNgŇÓĎ€†`łŮCrń4đx„đčŃŁ`0wjµúŔ—.]:tčaúáÇŤ§‡üdřš~×®]"‘hďŢ˝>>>¸ˇ›7o¦¦¦ćää.lmm]]]) BH*ëTöö›äşŐ@ ŘRČNLˇ\.—Éd˝˝˝ú§÷îÝ۰aĂ—_~˘—§µµuűöí,k×®]ö6fŔŘńn@)Jll,„0--ŤN§¶mŰ–••Ąŕ0 ł··÷ôô$“Éíig—BŐŻ1»]„ZŁU(ű4µ˝˝ťť]żJĄÂŰb2™S¦LIII™:uŞ««+ŕôéÓiii«WŻNNN¦P(Ł$XÜ?ŰŇŇ‚żŘÄÄÄ>ř 33sňäÉ„@`2™...!YGWŹĽ0zđ>kG·e:ÚZ[[»{zHD">‰ß¸qă‹/ľČÎÎţúëŻńĎÂ××w´Jţ ŰQ||| ĽĽĽâă㣣Łńtˇ«««‹‹‹Bˇ·wôČ{!„Ł'ŻBŘ#ďm—ttvvž:sýúôŔ´iÓ‚—,YâççWPPŕăă3úő°0wB2™ěíííééůĆočÓťśś»şş;»*UżEXĐno_ż¸M¦îW·¶ňüOĄţŃüů󽼼đŮܲíZ;„ĐÇóóó÷ďß !Ä0ŚÁ`¸¸¸ô÷÷+”*ŤfۧĄ`mC™·`„°©©ůÖ­: Ă „_ýőáÇĹb±y“ŇÓ`yŰçˇC‡Ţ{ď=}ä!ŤFc±X†uv)4ZťĹ{B¨M,îęę‡Tf\Ü|„·öćăÇ<Ź··÷ňĺËÍX… ŹQqWSSsĺʵZ­ź­­­ŐŐŐoľů&řm~pss#i§˛×äČ c —ËWŻJX»fEgçS»ďřńÓg@Ëţ} ß{–.]úăŹ?¶¶¶âyBjµş´´ôż˙ýŻŮMŹŠ;aaaáŰoż}čĐ!>źŹĘÍÍMHH R©B„Á°±±ik—({UcŃăÔjőFÎżţzŹ $’•^Şđđi®®®Z­®î—ŰřľŤJĄ&$$äćć"„ř|~vvöś9sNź>mccc¶XŁđůüłgĎyxxH$’sçÎá;v!›Í&‘H‘D«¸[=0 KٶőBŃ977Ö©3çÝÜX†ŻG*•śČľ÷Ţ;4* T*çĚ™ăëëűřńăĄK—ľńĆăĆŤŤCô»ććć5kÖ„„„„‡‡řá‡#ĆMŽ7.))éňĺËÎÎÎŃŃѶ¶¶x:Á “ɲŽ.µÚüđ0Čř|×…˘st:ý›ăy,–ű€~íčč8ž=Ŕĺ>q«ŰÚÚÎś9ÓÓÓóňĺËëׯ‘¸ňňňwŢygęÔ©ááák×®˝{÷î€ ąÓét›6mň÷÷ݍ¨(..îëëűěłĎŚŃ„L&óx<ýHG$ťťťu:]źJ=_knÎÁüĽď¬¬¬ĺő÷Â| !|őŐPSŻ÷7âňĺËډîéččHNN^łfÍO?ýtíÚµĐĐФ¤¤yr' Á–-[čtş««+‡Ăąqă†1úÜżðŔŔ@ś):ťnee%Kt:ĚâÜ](:÷Őľ/!„{öî›1#rČú!„ †ťŻĎxŔŁGŹń”I“&a6ĽŐnű2\Ŕ†hGńňň2tŻUUUą‰ąző*ŢéŔoű$‘d´FůśŚBč矫Ҷ§ „R>ÜľđÍEĂçźÜŇÚŇĐpÇogáő×_Ż­­Ń}AŁŃŇÓÓ7lŘ€ëBĄR;’ž:϶··ďÚµ+??˙ŁŹ>Ň'ÖÔÔäçç—••566vwwćçrązS(„ÉdŞŐęŢ>Őđ"šŠ_˝·‘óFŁYľbŐzΦ{´§§@*•étO&«¨¨¨EÝÝÝŤŤŤeeeůůůżüň ž¨Óé222-ZTUUuĺĘ•€€€ýű÷¨|ű†a999łgĎ>sćĚ_˘H$Ş­­Ĺ?m€‡‡‡»»»ŻŻoccŁ~ôĄR©ÖÖÖ"q›Ţ®;z „ÄbŃÚŐ+ärůÂ7}Ľs—1ĄH$’“łłT"‰ÄŢŢ^˙ĘĘĘ˝{÷ ‚Zxxxč˝őBˇP(¦¦¦âĆęÍ›7'&&¬|p{‡.//ĎĎĎź0aÂÍĂĂĂĂĂĂő»»»ńćďÝ»GĄRő ÜžL$‘!´ŘL.—Ż]˝B,ÍťűĆž˝űŚ%“'UT”Ke2ś;ŤFˇPLfHHNÁ\jđşWĘąëďď˙ţűď‹‹‹Ť oŔ˝VVV†A`xŔŽNg™ŠŃŰ«DMťşď«lăĂ`!„öŽ€¶¶v}bpp°źźß«Żľ:LAggç}űöm۶MˇP|!—Ë5Ť›«3îčůă?^„POŹĽĄőĐŰËOQ*• …B ,^ĽŘĎĎ/$$$""bĘ”)Á źÚďđďnČR.—›šš˝gĎ …’––VQQ±oßľąsçâŃőBťN'‘HD"ņüLVȡë×Ë€~~ôQO§Nť ýꫯ***6nܨŐj÷ěŮťššjxĽ_ó'%%…††FFFfee ą7ÚÇ( wďŢ]WW§R©Q¸\n[[Ű´iÓ Ă¬BÍÍÍ7nĽxń"ľFkăđěcÔjµóćÍ;tč›Í6ěe‰w-ŕ![¸.k×®e±X)))===©©©qqqoŚşßą»» ›?ţ€řtá„ |}}ËĘĘđťN'“ÉŮŠ€ź^0‹“Ź'eW/C'O˛ýmg]VVćëë;Ř ëěěüÖ[oé‰Čd˛ššš´´4áĺĺ•””tńâĹÁ Y8%!!ˇ  @«Őâ«âîîn•JĺęâLµµŚé „jjŞŰÚÚH$Ň”ÉÁx„‚FŁ9věŘßţö7cjŔ÷”zë‰Dzřđáŕlćnúôéüî5<J,cćěä@µý,+-Üřů'„ĐěY1ÖÖÖx/ËČČ P(F´pss{饗˛łł•JĄH$ÚżżF3Ä‚ÁbÜ!„„Barr˛T*˝ző*źĎÇÓ …H$‚Z‘@__ŻŰF“dʤ/C§G„{z> ÔćóůWŻ^•JĄź|ň‰P(ń €feeńxĽČČČ•+W†…… Řă°ĚúN­V=z4>>> ŕÂ… ›6mĘĚĚÄ0 …ęîînmmýćŰďŠÎźS(äŁońiÉd§NžDMŔ"řŘ·k×®¤¤¤ .ŕ©GŹ5ŚÝ ˇ··÷ńăÇëęę._ľĚb±głwµµµ‹- …………ëÖ­#“Éńńń}}}ąąąú<]ÝÝ$"©˝˝=ď»ăů|‹Ź}ˇ–Í˙űý µşßɉůűÎa˙ţýożý6™L^·n]aaaccă˘E‹†ąq!´dÉü0čýű÷Ź=úî»ďÎöÔ8(üÔâ’%KFtôÔÔÔ „ M!…B±bĹŠřřřĄK—0 CüűZyk+1}zXŘ4‹„ă38—[}ăçźŢŢ^łg˝F$>YëţđĂ………yyy4Ͱ­ĘĘJ*•ú´á!ÔÔÔô駟޽{×ÍÍmÝşu‹/śm ď!ăóů+W®üä“O˘ŁŁőgęęnskoBY,÷×fÍ6Ć“9<¤RiYŮ•6±!4cFDŕÄ|~DUTT¤§§çĺĺŤŃő—cȆa………§Nťúţűď =A>ş|Ą ˙l}Çł_‹™EŁ›cŐčîîľ~˝˘ĺA3€D"Íž{Żq¨TŞąs禧§GEEy¦ÓTŚ!w\.799ůË/żŚ0ü^đąĺÖ­şú†'wSŚgł'NňôG"‡˙ŠBZ­îń#~ýíŰ-­-xâ+ŻLš4 Ś?»cÇŽĚȨ̌ťu%Ć„;„Pmmmrrň0r#„T*ŐŤjîýűMzťťśť§ľ2Ő–JŁŇ¨T[[ w­ö*{{•rEWwWCC˝ÔŔµę˙’_xx¨ŤŤÍÓÇß_ff&toY5Ç„;ă%Fő©TüÖ‡wĄRŮP™™Lljţţ~#Î6ĆĽEłaaîF#«N§‰ÄPÖŃ!—ËU}*µF"[‘m(6t:ÝÍŐĹĹĹ…ĹrÓ2ŤÄő> sÇĺrwîÜ™‘‘ˇ?=ř<@˙Fżů曣Ť‡ĺą#“Ɇ6‰ç—mĚď™ýŚçâ·?)ĚäN©Tţýď ‹ŚŚ>>+V¬(**2Łžg…!= †áJ9::Ž7ÎĄĚá®˝˝]ˇPč'ű€€€QĎs3”2‡;<ĽN0MĄR /ř“WJoŁ7F)s¸ŁR©Z­w”JĺóĺipĄôçmŤQĘîśśśěěě~ýőWüď˝{÷đËěţÔ0C)s¸# ,Řżgg'źĎĎËËÓßąóç„WŞ««ëáÇĆ(ećúnË–-...sćĚy÷Ýwcccő§đţÔ0U©{2óńbOf>^pg>^pg>^pg>ţ$ΤL}ÂŰIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_event_pattern_1_1_mouse_pattern-members.html0000644000175000017500000000717112052741140026353 0ustar gudjongudjon Qwt User's Guide: Member List
QwtEventPattern::MousePattern Member List

This is the complete list of members for QwtEventPattern::MousePattern, including all inherited members.

button (defined in QwtEventPattern::MousePattern)QwtEventPattern::MousePattern
MousePattern(int btn=Qt::NoButton, int st=Qt::NoButton) (defined in QwtEventPattern::MousePattern)QwtEventPattern::MousePatterninline
state (defined in QwtEventPattern::MousePattern)QwtEventPattern::MousePattern
qwt5-5.2.3/doc/html/class_qwt_plain_text_engine__inherit__graph.png0000644000175000017500000000671512052741156025167 0ustar gudjongudjon‰PNG  IHDR•pIĄ)bKGD˙˙˙ ˝§“ ‚IDATxśíťkPWÇĎ’(B„«8@©rQËPµPlą)˝`[ąÇZR;Ôją„K•i;µt޵čP ’©-Ĺ$P`ÚyAËÍ©¶`x!h GB ÜB6Éűaß7I!ăĆóűŔdOöyž˙ŮvĎŮMŘE €ŕ3c €¬čľţáčľ!ęyăĆŤcÇŽ­˘”g–ČČČěělýb˝çźď˝÷ŢŤ7‚ő ‡`<|řđćÍ›z» ˙ţf±X+Éa±X z‡Ăńß@˙đ ôß@˙đ ôß< ˙x<^bb˘‹‹‹ąąą§§gFF†H$ŇÂĺr---±×&tŻ®LĹĺrŐó°ŮěeőEUŘÓ€Áýëîî~ůĺ—ÉdrSSÓřřxeeĺýű÷—´P‰BˇP(ÝÝÝŠ˙ŁźŐ qqqËĘŕëë;77§_uC`p˙RRRöďßĎ`0|}}׬YłuëÖşş:GGÇăÇŹGFFćĺĺůî»ďA???‰D‚ Čč訖äÓÓÓ‡rvvvss;r䊢L&sË–-(Š233###—LĹĺr===Ďź?ďŕŕŕââRVV†µ‹Ĺâ?üJĄzzz^ĽxQą+_hŚR—´j›R†őorr˛©©‰N§«6"’žž^SSŐŘŘhmm%“ÉÍÍÍ€ććfĺŢćŕŕ %?ťNź™™ą{÷nKKKKK Ářä“O(J^^^[[‹Ĺb±Xş¤áp8</555++ kLKK …÷îÝ»zőj~~ľŽQę’–ąÍ–‰B_âăăăă㵯óĎ?˙ "•J´wttŘŘŘÜąsÇĆĆF*•&''ůĺ—d2EŃÇggg/8ZŞ? Ĺüü<‰D‰DŘâďż˙ľmŰ6…BŃŰŰKĄR˝˝˝kkkU»»»Ő»ß×ׇµ˙űďż …âîÝ»ŘĘóóóD"‘ÇăaÉ«««•ITł©Gi”¤…ňňň•¸`ŘýĎŃŃA>źż ýŃŁG...›6m˘P(ííí­­­űöísppčččhnnŽŠŠŇ%ůĐĐT*ĄP(ŘLdÇŽ//ݍ¨(©Tşk×®!ęăź§§'ŔÜÜŰ;ÍĚĚ”Éĺr9ö.ŕůçźW 1JŁ$ĂaX˙ČdrXXXAA˛ĺĚ™3}}}ŃŃŃ€·Ţz«ŞŞJ řůů…‡‡łŮěGŹmßľ]—äÎÎÎAůaźššjkk´··755Q©TŐşÚQźĐ:;;úűű±Ĺľľ>Ł4J2źż0ŚŇŇŇôôôžžžąąąÉÉIźż˙ţűóĎ?DEEmßľAđđđÂÂÂť;w’H$Ad2™T*Ő’ŮÂÂ"...##ctttdddßľ}ůůů‰„FŁĺçççääô÷÷ë’Jcň„„:ť><<ÜŰŰ›››«ËI‹FIËŞ»\ îßĆŤ˙úë/ˇPfkk[ZZšššęááqöěY@dd¤D" DDDLMMaO77·őë×S©TˇP¨%9“ÉDQÔ××wăĆŤNNNß~űíW_}ĺăăűâ‹/~úé§ü±j*l"ŞJzzúbÉĎť;gccăíí˝k×®H$]ú«.iyŰkąč=rę2YŚŮŮŮŽŽ˝K?JKKöşşşÚĎĎĎUžęůËbXZZĄ´î\ľ|ů‹/ľśś8uę6`?mŔëź‹Â`0FGG×­[çďďďáá ŘO+úţÝ´qqqąr励U,Ü˙đ ôß@˙đ ô߬hţÂăń~üńÇŐ’ňlrëÖ­Ĺë}ćxúôéUę‚á@,-76Ć–±ÁÁÁz» ˙ﯟ~nŢ썉a8’›cl-†Â”Çżęę[Ř_•[‹ˇ0Y˙ćçŃŞŞŔÄÄLKKʱĺ “őŻ©‰;3#fUU+›#<Ŭ••·3ŠĘűŤ3;;olEÁ4ý›ž–üç?wPT†-J$hCĂ=ăJ2¦éźŞy33¤˛˛Ýz ‡iúWYŮ®ús•76r''gŤ(É@ BátKË}™ě±s…BńëŻcI2&č_]]—zŁBˇ¨¨0ÁC¨ úÇf·©_T’Ë7oöOE’á05˙E·n Čĺ. fµµvM\cjţŐÖv.vAEe••¦v"ojżyá'WW˛rqjJbiI"˙÷1ÝĽŮÍHş …)˙X»6ɤíŢý´˙VQoLířů¬ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?|ýĂ7Đ?śŁz3Đîîn …blE«‰……»™™•±U¬&Ş–=ö˙ďG$}ýő×ĆŃNEEEKKKJJОEĂý ÂĂĂźś"ČrŔQŞ ˙đ ôß@˙đ ôß@˙đŤž÷Ď*))ikk‹ĹT*5$$„FŁY[[k áóůIIIőőő|>źFŁ)ŰÉdr@@@ZZ•JU®Ł=Ăb%"""Ô±GĚëÂb 1rrrÂÂÂtLĄ‹ÚUA˙RSSwîÜ™źźďääÄçó‹‹‹“““ µ[¨„D");666Ćd2ż˙ţű“'OjŹrww׾90«VeĂ©*ÔŹ%Ő® ú?řá‡×_ťN§»»»[ZZz{{ź8q‚BˇüňË/YYYŘ]ÇĆĆ"""ĘĘĘBˇ0""‚FŁIĄŇ‰‰ÇnÂIĄRcccą\î‚*ýýý‡~óÍ7° Áçóßxă ěĹŢ˝{ëęꢣŁcbb®]»¶¤ćąąą3gÎěŮł'..ŽÉdĘd˛šššĘd2Ŕąs粲˛S¨d±ş333'OžÜ˝{÷Ţ˝{”"µ«U—¤»J–íßĚĚLggg\\śj#‚ qqqüńGPPPGG€ĂáXYYuuuşşşĽĽĽ.\¸@"‘mmmUcÇĆĆŘlö† úůçźkkk‹ŠŠĽ+‰x<^YYYLLŚú»ęH$’’’’łgĎvuuUWWżűî»ÖÖÖĺĺĺ\.·±±1''g1…KÖ-((‹Ĺ.\8}ú4›ÍÖ=j¤%{ˇÎ˛ý‰D''§í®®®ăăă·oß–Éd'&&ćöíŰrąĽ««+((HueěcŽ‘8;;{ôčŃ “’’‘Hśžž^đ.öśw++«ÉÉIíšQ­ŻŻOKKłµµ]»víÁŻ^˝Š Č‘#GĘËËsss333ml{Ě•ŞB @ ±.Š˘ )))vvvnnn|đşŤQę’´÷B#Ë˙° Ü###®®®ŞíŁŁŁöööžžžÖÖÖ===çرc×®]{đŕAgggFF†ęĘşŚ.ÝÝÝąąą‚¨VD"ŰKTď3żBˇEŃwŢygA/\]]‚‚îÜąóĘ+Ż,ѨĎç«× …rąÜĹĹ[\°YS»¤ĺ˛l˙¬¬¬ŞŞŞ’““±–ŠŠŠ×^{­ŞŞęŐW_¶¶¶ …Bww÷€€€ćććŃŃŃM›6 ę^ebbâÔ©SEEE>>>}}}ţůç‚t±M‰ťťť™™YMMÍš5ksssŘ×ÓÓÓŮŮioo_UU«K*őşvvv@€9744¤c”FIËEźů ťNŻŻŻg0>śźźźžžNLL|đŕÁűďż ĽrĺĘćÍ› ¸|ůň–-[D"‚ rąEQ]J`w•%b±řŇĄKrą\ýŞ;$),,¬°°pbbB$?~śÍfKĄŇ'N¤¤¤=z´¤¤D ,Kˇjň;v0ŚńńńÁÁÁ‹/ęňŮŇ(IŹ®é㟇‡“É‹Ĺt:ýí·ß®ŻŻßłgŹłłsee%`ëÖ­R©ÔßßđŇK/ÍÎÎbź››[tt´X,^˛…BˇŃht:ýСCˇˇˇëÖ­[á·Z™™™2™,11‘FŁŮŮŮ%%%»»»‡††zyyEGGçĺĺ©*T˙ ĆbÉÓÓÓź{îąýű÷gggGEE‰:ŐÔ%éŃŻÇîźĚb±t?áUe~~žĎçŻ_ż^ŹXĽÓĐаmŰ6ě@zýúőź~ú©¤¤Ä…ľůćGGG‹ĄlYµëgćććϦy€ëׯź?~fffxxřŇĄKŘ<ŕÉŻ®t:}bb">>ţŁŹ>rvvĆćOS{~€Q°··ĎÍÍ5Ji¸˙áčľţáčľŃ0ůěłĎžĽ.đxĽČČHŐ–ÇÎßÇÇÇ333WrĄ bhRRRBCC•‹&ţü*“Žřú‡o řú‡oţ ,äšAa•ł©IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_4.map0000644000175000017500000000047212052741161017237 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_scale_item__inherit__graph.md50000644000175000017500000000004012052741142024513 0ustar gudjongudjon6cd704ebb0cd32aed29c39ed2513ba9eqwt5-5.2.3/doc/html/class_qwt_picker_polygon_machine-members.html0000644000175000017500000001320012052741141024567 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPickerPolygonMachine Member List

This is the complete list of members for QwtPickerPolygonMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)QwtPickerPolygonMachinevirtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/qwt__data_8h_source.html0000644000175000017500000006131512052741134020305 0ustar gudjongudjon Qwt User's Guide: qwt_data.h Source File
Qwt User's Guide  5.2.3
qwt_data.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_DATA_H
13 #define QWT_DATA_H 1
14 
15 #include "qwt_global.h"
16 #include "qwt_array.h"
17 #include "qwt_double_rect.h"
18 #if QT_VERSION >= 0x040000
19 #include <QPolygonF>
20 #endif
21 
22 // MOC_SKIP_BEGIN
23 
24 #if defined(QWT_TEMPLATEDLL)
25 
26 template class QWT_EXPORT QwtArray<double>;
27 
28 #if QT_VERSION < 0x040000
29 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
30 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
31 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
32 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
33 #endif
34 
35 #endif
36 
37 // MOC_SKIP_END
38 
47 class QWT_EXPORT QwtData
48 {
49 public:
50  QwtData();
51  virtual ~QwtData();
52 
54  virtual QwtData *copy() const = 0;
55 
57  virtual size_t size() const = 0;
58 
64  virtual double x(size_t i) const = 0;
70  virtual double y(size_t i) const = 0;
71 
72  virtual QwtDoubleRect boundingRect() const;
73 
74 protected:
78  QwtData &operator=(const QwtData &);
79 };
80 
81 
85 class QWT_EXPORT QwtPolygonFData: public QwtData
86 {
87 public:
88 #if QT_VERSION < 0x040000
89  QwtPolygonFData(const QwtArray<QwtDoublePoint> &);
90 #else
91  QwtPolygonFData(const QPolygonF &);
92 #endif
93 
95  virtual QwtData *copy() const;
96 
97  virtual size_t size() const;
98  virtual double x(size_t i) const;
99  virtual double y(size_t i) const;
100 
101 #if QT_VERSION < 0x040000
102  const QwtArray<QwtDoublePoint> &data() const;
103 #else
104  const QPolygonF &data() const;
105 #endif
106 
107 private:
108 #if QT_VERSION < 0x040000
109  QwtArray<QwtDoublePoint> d_data;
110 #else
111  QPolygonF d_data;
112 #endif
113 };
114 
119 class QWT_EXPORT QwtArrayData: public QwtData
120 {
121 public:
122  QwtArrayData(const QwtArray<double> &x, const QwtArray<double> &y);
123  QwtArrayData(const double *x, const double *y, size_t size);
125  virtual QwtData *copy() const;
126 
127  virtual size_t size() const;
128  virtual double x(size_t i) const;
129  virtual double y(size_t i) const;
130 
131  const QwtArray<double> &xData() const;
132  const QwtArray<double> &yData() const;
133 
134  virtual QwtDoubleRect boundingRect() const;
135 
136 private:
137  QwtArray<double> d_x;
138  QwtArray<double> d_y;
139 };
140 
144 class QWT_EXPORT QwtCPointerData: public QwtData
145 {
146 public:
147  QwtCPointerData(const double *x, const double *y, size_t size);
149  virtual QwtData *copy() const;
150 
151  virtual size_t size() const;
152  virtual double x(size_t i) const;
153  virtual double y(size_t i) const;
154 
155  const double *xData() const;
156  const double *yData() const;
157 
158  virtual QwtDoubleRect boundingRect() const;
159 
160 private:
161  const double *d_x;
162  const double *d_y;
163  size_t d_size;
164 };
165 
166 #endif // !QWT_DATA
qwt5-5.2.3/doc/html/functions_func_0x6e.html0000644000175000017500000001246612052741152020253 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- n -

qwt5-5.2.3/doc/html/qwt__plot__grid_8h_source.html0000644000175000017500000003330112052741135021511 0ustar gudjongudjon Qwt User's Guide: qwt_plot_grid.h Source File
Qwt User's Guide  5.2.3
qwt_plot_grid.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_GRID_H
11 #define QWT_PLOT_GRID_H
12 
13 #include "qwt_global.h"
14 #include "qwt_plot_item.h"
15 #include "qwt_scale_div.h"
16 
17 class QPainter;
18 class QPen;
19 class QwtScaleMap;
20 class QwtScaleDiv;
21 
34 class QWT_EXPORT QwtPlotGrid: public QwtPlotItem
35 {
36 public:
37  explicit QwtPlotGrid();
38  virtual ~QwtPlotGrid();
39 
40  virtual int rtti() const;
41 
42  void enableX(bool tf);
43  bool xEnabled() const;
44 
45  void enableY(bool tf);
46  bool yEnabled() const;
47 
48  void enableXMin(bool tf);
49  bool xMinEnabled() const;
50 
51  void enableYMin(bool tf);
52  bool yMinEnabled() const;
53 
54  void setXDiv(const QwtScaleDiv &sx);
55  const QwtScaleDiv &xScaleDiv() const;
56 
57  void setYDiv(const QwtScaleDiv &sy);
58  const QwtScaleDiv &yScaleDiv() const;
59 
60  void setPen(const QPen &p);
61 
62  void setMajPen(const QPen &p);
63  const QPen& majPen() const;
64 
65  void setMinPen(const QPen &p);
66  const QPen& minPen() const;
67 
68  virtual void draw(QPainter *p,
69  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
70  const QRect &rect) const;
71 
72  virtual void updateScaleDiv(const QwtScaleDiv &xMap,
73  const QwtScaleDiv &yMap);
74 
75 private:
76  void drawLines(QPainter *painter, const QRect &,
77  Qt::Orientation orientation, const QwtScaleMap &,
78  const QwtValueList &) const;
79 
80  class PrivateData;
81  PrivateData *d_data;
82 };
83 
84 #endif
qwt5-5.2.3/doc/html/class_qwt_plot_marker-members.html0000644000175000017500000005711112052741141022407 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotMarker Member List

This is the complete list of members for QwtPlotMarker, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotMarkervirtual
Cross enum value (defined in QwtPlotMarker)QwtPlotMarker
detach()QwtPlotIteminline
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const QwtPlotMarkervirtual
drawAt(QPainter *, const QRect &, const QPoint &) const QwtPlotMarkerprotected
hide()QwtPlotItem
HLine enum value (defined in QwtPlotMarker)QwtPlotMarker
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
label() const QwtPlotMarker
labelAlignment() const QwtPlotMarker
labelOrientation() const QwtPlotMarker
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
linePen() const QwtPlotMarker
lineStyle() const QwtPlotMarker
LineStyle enum nameQwtPlotMarker
NoLine enum value (defined in QwtPlotMarker)QwtPlotMarker
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
QwtPlotMarker()QwtPlotMarkerexplicit
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotMarkervirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setLabel(const QwtText &)QwtPlotMarker
setLabelAlignment(Qt::Alignment)QwtPlotMarker
setLabelOrientation(Qt::Orientation)QwtPlotMarker
setLinePen(const QPen &p)QwtPlotMarker
setLineStyle(LineStyle st)QwtPlotMarker
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setSpacing(int)QwtPlotMarker
setSymbol(const QwtSymbol &s)QwtPlotMarker
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setValue(double, double)QwtPlotMarker
setValue(const QwtDoublePoint &)QwtPlotMarker
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setXValue(double)QwtPlotMarker
setYAxis(int axis)QwtPlotItem
setYValue(double)QwtPlotMarker
setZ(double z)QwtPlotItem
show()QwtPlotItem
spacing() const QwtPlotMarker
symbol() const QwtPlotMarker
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
value() const QwtPlotMarker
VLine enum value (defined in QwtPlotMarker)QwtPlotMarker
xAxis() const QwtPlotItem
xValue() const QwtPlotMarker
yAxis() const QwtPlotItem
yValue() const QwtPlotMarker
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
~QwtPlotMarker()QwtPlotMarkervirtual
qwt5-5.2.3/doc/html/class_qwt_legend_item.html0000644000175000017500000011501712052741164020721 0ustar gudjongudjon Qwt User's Guide: QwtLegendItem Class Reference

#include <qwt_legend_item.h>

Inheritance diagram for QwtLegendItem:

List of all members.

Public Types

enum  IdentifierMode {
  NoIdentifier = 0,
  ShowLine = 1,
  ShowSymbol = 2,
  ShowText = 4
}

Public Slots

void setChecked (bool on)
- Public Slots inherited from QwtTextLabel
void clear ()
void setText (const QString &, QwtText::TextFormat textFormat=QwtText::AutoText)

Signals

void checked (bool)
void clicked ()
void pressed ()
void released ()

Public Member Functions

 QwtLegendItem (QWidget *parent=0)
 QwtLegendItem (const QwtSymbol &, const QPen &, const QwtText &, QWidget *parent=0)
virtual ~QwtLegendItem ()
const QPen & curvePen () const
virtual void drawIdentifier (QPainter *, const QRect &) const
virtual void drawItem (QPainter *p, const QRect &) const
int identifierMode () const
int identifierWidth () const
bool isChecked () const
QwtLegend::LegendItemMode itemMode () const
void setCurvePen (const QPen &)
void setIdentifierMode (int)
void setIdentifierWidth (int width)
void setItemMode (QwtLegend::LegendItemMode)
void setSpacing (int spacing)
void setSymbol (const QwtSymbol &)
virtual void setText (const QwtText &)
virtual QSize sizeHint () const
int spacing () const
const QwtSymbolsymbol () const
- Public Member Functions inherited from QwtTextLabel
 QwtTextLabel (QWidget *parent=NULL)
 QwtTextLabel (const QwtText &, QWidget *parent=NULL)
virtual ~QwtTextLabel ()
virtual int heightForWidth (int) const
int indent () const
int margin () const
virtual QSize minimumSizeHint () const
void setIndent (int)
void setMargin (int)
const QwtTexttext () const
QRect textRect () const

Protected Member Functions

virtual void drawText (QPainter *, const QRect &)
bool isDown () const
virtual void keyPressEvent (QKeyEvent *)
virtual void keyReleaseEvent (QKeyEvent *)
virtual void mousePressEvent (QMouseEvent *)
virtual void mouseReleaseEvent (QMouseEvent *)
virtual void paintEvent (QPaintEvent *)
void setDown (bool)
- Protected Member Functions inherited from QwtTextLabel
virtual void drawContents (QPainter *)

Detailed Description

A legend label.

QwtLegendItem represents a curve on a legend. It displays an curve identifier with an explaining text. The identifier might be a combination of curve symbol and line. In readonly mode it behaves like a label, otherwise like an unstylish push button.

See also:
QwtLegend, QwtPlotCurve

Member Enumeration Documentation

Identifier mode.

Default is ShowLine | ShowText

See also:
identifierMode(), setIdentifierMode()

Constructor & Destructor Documentation

QwtLegendItem::QwtLegendItem ( QWidget *  parent = 0)
explicit
Parameters:
parentParent widget
QwtLegendItem::QwtLegendItem ( const QwtSymbol symbol,
const QPen &  curvePen,
const QwtText text,
QWidget *  parent = 0 
)
explicit
Parameters:
symbolCurve symbol
curvePenCurve pen
textLabel text
parentParent widget

Member Function Documentation

const QPen & QwtLegendItem::curvePen ( ) const
Returns:
The curve pen.
See also:
setCurvePen()
void QwtLegendItem::drawIdentifier ( QPainter *  painter,
const QRect &  rect 
) const
virtual

Paint the identifier to a given rect.

Parameters:
painterPainter
rectRect where to paint
void QwtLegendItem::drawItem ( QPainter *  painter,
const QRect &  rect 
) const
virtual

Draw the legend item to a given rect.

Parameters:
painterPainter
rectRect where to paint the button
int QwtLegendItem::identifierMode ( ) const

Or'd values of IdentifierMode.

See also:
setIdentifierMode(), IdentifierMode
int QwtLegendItem::identifierWidth ( ) const

Return the width of the identifier

See also:
setIdentifierWidth()
QwtLegend::LegendItemMode QwtLegendItem::itemMode ( ) const

Return the item mode

See also:
setItemMode()
void QwtLegendItem::setChecked ( bool  on)
slot

Check/Uncheck a the item

Parameters:
oncheck/uncheck
See also:
setItemMode()
void QwtLegendItem::setCurvePen ( const QPen &  pen)

Set curve pen.

Parameters:
penCurve pen
See also:
curvePen()
void QwtLegendItem::setIdentifierMode ( int  mode)

Set identifier mode. Default is ShowLine | ShowText.

Parameters:
modeOr'd values of IdentifierMode
See also:
identifierMode()
void QwtLegendItem::setIdentifierWidth ( int  width)

Set the width for the identifier Default is 8 pixels

Parameters:
widthNew width
See also:
identifierMode(), identifierWidth()
void QwtLegendItem::setItemMode ( QwtLegend::LegendItemMode  mode)

Set the item mode The default is QwtLegend::ReadOnlyItem

Parameters:
modeItem mode
See also:
itemMode()
void QwtLegendItem::setSpacing ( int  spacing)

Change the spacing

Parameters:
spacingSpacing
See also:
spacing(), identifierWidth(), QwtTextLabel::margin()
void QwtLegendItem::setSymbol ( const QwtSymbol symbol)

Set curve symbol.

Parameters:
symbolSymbol
See also:
symbol()
void QwtLegendItem::setText ( const QwtText text)
virtual

Set the text to the legend item

Parameters:
textText label
See also:
QwtTextLabel::text()

Reimplemented from QwtTextLabel.

int QwtLegendItem::spacing ( ) const

Return the spacing

See also:
setSpacing(), identifierWidth(), QwtTextLabel::margin()
const QwtSymbol & QwtLegendItem::symbol ( ) const
Returns:
The curve symbol.
See also:
setSymbol()
qwt5-5.2.3/doc/html/class_qwt_compass_rose__inherit__graph.md50000644000175000017500000000004012052741137024051 0ustar gudjongudjonf2c094c56162334aae71e2091eb81e8cqwt5-5.2.3/doc/html/qwt__panner_8h_source.html0000644000175000017500000003110012052741135020645 0ustar gudjongudjon Qwt User's Guide: qwt_panner.h Source File
Qwt User's Guide  5.2.3
qwt_panner.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PANNER_H
11 #define QWT_PANNER_H 1
12 
13 #include <qnamespace.h>
14 #include <qwidget.h>
15 #include "qwt_global.h"
16 
17 class QCursor;
18 
35 class QWT_EXPORT QwtPanner: public QWidget
36 {
37  Q_OBJECT
38 
39 public:
40  QwtPanner(QWidget* parent);
41  virtual ~QwtPanner();
42 
43  void setEnabled(bool);
44  bool isEnabled() const;
45 
46  void setMouseButton(int button, int buttonState = Qt::NoButton);
47  void getMouseButton(int &button, int &buttonState) const;
48  void setAbortKey(int key, int state = Qt::NoButton);
49  void getAbortKey(int &key, int &state) const;
50 
51  void setCursor(const QCursor &);
52  const QCursor cursor() const;
53 
54 #if QT_VERSION >= 0x040000
55  void setOrientations(Qt::Orientations);
56  Qt::Orientations orientations() const;
57 #else
58  void enableOrientation(Qt::Orientation, bool enable);
59 #endif
60 
61  bool isOrientationEnabled(Qt::Orientation) const;
62 
63  virtual bool eventFilter(QObject *, QEvent *);
64 
65 signals:
72  void panned(int dx, int dy);
73 
81  void moved(int dx, int dy);
82 
83 protected:
84  virtual void widgetMousePressEvent(QMouseEvent *);
85  virtual void widgetMouseReleaseEvent(QMouseEvent *);
86  virtual void widgetMouseMoveEvent(QMouseEvent *);
87  virtual void widgetKeyPressEvent(QKeyEvent *);
88  virtual void widgetKeyReleaseEvent(QKeyEvent *);
89 
90  virtual void paintEvent(QPaintEvent *);
91 
92 private:
93 #ifndef QT_NO_CURSOR
94  void showCursor(bool);
95 #endif
96 
97  class PrivateData;
98  PrivateData *d_data;
99 };
100 
101 #endif
qwt5-5.2.3/doc/html/inherit_graph_20.md50000644000175000017500000000004012052741151017213 0ustar gudjongudjon8a49f00b9cb322ed1cd2468c8b63937cqwt5-5.2.3/doc/html/ftv2link.png0000644000175000017500000000135212052741134015735 0ustar gudjongudjon‰PNG  IHDRÚ}\±IDATxíťMOS[…źžsúa?-XZ(PD4‚ AWbu`b 77wäHFĆCËÔÂ˙ŕ/`vo„APňq‹P @ ­űÝč980 îŕ¤+»§Ýy×^ďZď9SWą\83g‰3'°Nâçlą¸_bŻp ďĺűĆVÜÖˇ€ź×"¬Ö†X€d]Đŕ3“ÉĂÄĚ™xŤź ßMŕś[<çSPkvc—hČ'…™^Ĺm™hŘ7 `Ű™¦ èŔĺráq›‘śľ!daeKźţĆŐ:Ě*ł_דâči?I–eP*B7źżĺô!ąÝgr6Ër6oKbëţăđôrI”ËTüŞŚ¨xóö=›ů˘&‰(e+ßóÄkýÇ`ëÁÜb.“¸ĐW×w0Ą°jŃzN™¬|©WE㵢aŻ6[öX†AkÓů*/ś¨‰€ÉŹY­ ˙V’§–u˛jÂ>1W *˝·°PGŽz˙¨/Eg{ źÇâaoŠÁVú:čż™¤1$ôR§W,–Şŕ¨@ŠË56ľŔÔÜ-Ťľ,mę¸Î/ćčą– ňr5ĄT*S(Vf8ö9u’ ŐŁw›ůóa=Í<{ҡUŚ÷rŻ+ÉĺdDĎF$č°…Łéż`zţ»ÎúöN‘µÜ®0Q3Ł~_^ËóâŻN=vpTŕ±LťžT}îkq†Ňm<ĽÎÓ?ZhżXŁď_ţÝĄ[) `gęĂa_Ô*äÔ2`'=ő´F˙2EâÁPú ÷»›l=8‹Wv°%THqÉż<"¤ďGľĆxH{#ĆÖ«aÔJŐއ—m‹„ çńKs˙ŕńVŠŘˇ°·MâŇ^Ť TÁ– Ý›rĄß˝řmü˙_™?ŞWİ÷#uIEND®B`‚qwt5-5.2.3/doc/html/jquery.js0000644000175000017500000026726112052741134015362 0ustar gudjongudjon/*! jQuery v1.7.1 jquery.com | jquery.org/license */ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() {for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) {if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); qwt5-5.2.3/doc/html/pages.html0000644000175000017500000000700312052741151015453 0ustar gudjongudjon Qwt User's Guide: Related Pages
Qwt User's Guide  5.2.3
Related Pages
qwt5-5.2.3/doc/html/class_qwt_plain_text_engine__inherit__graph.map0000644000175000017500000000026412052741156025151 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_symbol.html0000644000175000017500000005065012052741143017750 0ustar gudjongudjon Qwt User's Guide: QwtSymbol Class Reference
QwtSymbol Class Reference

#include <qwt_symbol.h>

List of all members.

Public Types

enum  Style {
  NoSymbol = -1,
  Ellipse,
  Rect,
  Diamond,
  Triangle,
  DTriangle,
  UTriangle,
  LTriangle,
  RTriangle,
  Cross,
  XCross,
  HLine,
  VLine,
  Star1,
  Star2,
  Hexagon,
  StyleCnt
}

Public Member Functions

 QwtSymbol ()
 QwtSymbol (Style st, const QBrush &bd, const QPen &pn, const QSize &s)
virtual ~QwtSymbol ()
const QBrush & brush () const
virtual QwtSymbolclone () const
void draw (QPainter *p, const QPoint &pt) const
void draw (QPainter *p, int x, int y) const
virtual void draw (QPainter *p, const QRect &r) const
bool operator!= (const QwtSymbol &) const
virtual bool operator== (const QwtSymbol &) const
const QPen & pen () const
void setBrush (const QBrush &b)
void setPen (const QPen &p)
void setSize (const QSize &s)
void setSize (int a, int b=-1)
void setStyle (Style s)
const QSize & size () const
Style style () const

Detailed Description

A class for drawing symbols.


Member Enumeration Documentation

Style

See also:
setStyle(), style()

Constructor & Destructor Documentation

QwtSymbol::QwtSymbol ( )

Default Constructor

The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'.

QwtSymbol::QwtSymbol ( QwtSymbol::Style  style,
const QBrush &  brush,
const QPen &  pen,
const QSize &  size 
)

Constructor.

Parameters:
styleSymbol Style
brushbrush to fill the interior
penoutline pen
sizesize

Member Function Documentation

QwtSymbol * QwtSymbol::clone ( ) const
virtual

Allocate and return a symbol with the same attributes

Returns:
Cloned symbol
void QwtSymbol::draw ( QPainter *  painter,
const QPoint &  pos 
) const

Draw the symbol at a specified point.

Parameters:
painterPainter
posCenter of the symbol
void QwtSymbol::draw ( QPainter *  painter,
const QRect &  r 
) const
virtual

Draw the symbol into a bounding rectangle.

This function assumes that the painter has been initialized with brush and pen before. This allows a much more performant implementation when painting many symbols with the same brush and pen like in curves.

Parameters:
painterPainter
rBounding rectangle
void QwtSymbol::setBrush ( const QBrush &  brush)

Assign a brush.

The brush is used to draw the interior of the symbol.

Parameters:
brushBrush
void QwtSymbol::setPen ( const QPen &  pen)

Assign a pen

The pen is used to draw the symbol's outline.

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penPen
See also:
pen(), setBrush(), QwtPainter::scaledPen()
void QwtSymbol::setSize ( const QSize &  size)

Set the symbol's size

Parameters:
sizeSize
void QwtSymbol::setSize ( int  width,
int  height = -1 
)

Specify the symbol's size.

If the 'h' parameter is left out or less than 0, and the 'w' parameter is greater than or equal to 0, the symbol size will be set to (w,w).

Parameters:
widthWidth
heightHeight (defaults to -1)
void QwtSymbol::setStyle ( QwtSymbol::Style  s)

Specify the symbol style.

The following styles are defined:

NoSymbol
No Style. The symbol cannot be drawn.
Ellipse
Ellipse or circle
Rect
Rectangle
Diamond
Diamond
Triangle
Triangle pointing upwards
DTriangle
Triangle pointing downwards
UTriangle
Triangle pointing upwards
LTriangle
Triangle pointing left
RTriangle
Triangle pointing right
Cross
Cross (+)
XCross
Diagonal cross (X)
HLine
Horizontal line
VLine
Vertical line
Star1
X combined with +
Star2
Six-pointed star
Hexagon
Hexagon
Parameters:
sstyle
qwt5-5.2.3/doc/html/class_qwt_dial_scale_draw-members.html0000644000175000017500000003566112052741137023200 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDialScaleDraw Member List

This is the complete list of members for QwtDialScaleDraw, including all inherited members.

Backbone enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
center() const QwtRoundScaleDraw
draw(QPainter *, const QPalette &) const QwtAbstractScaleDrawvirtual
drawBackbone(QPainter *p) const QwtRoundScaleDrawprotectedvirtual
drawLabel(QPainter *p, double val) const QwtRoundScaleDrawprotectedvirtual
drawTick(QPainter *p, double val, int len) const QwtRoundScaleDrawprotectedvirtual
enableComponent(ScaleComponent, bool enable=true)QwtAbstractScaleDraw
extent(const QPen &, const QFont &) const QwtRoundScaleDrawvirtual
hasComponent(ScaleComponent) const QwtAbstractScaleDraw
invalidateCache()QwtAbstractScaleDrawprotected
label(double value) const QwtDialScaleDrawvirtual
Labels enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
majTickLength() const QwtAbstractScaleDraw
map() const QwtAbstractScaleDraw
minimumExtent() const QwtAbstractScaleDraw
moveCenter(int x, int y)QwtRoundScaleDrawinline
moveCenter(const QPoint &)QwtRoundScaleDraw
operator=(const QwtRoundScaleDraw &other)QwtRoundScaleDraw
QwtAbstractScaleDraw::operator=(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
penWidth() const QwtDialScaleDraw
QwtAbstractScaleDraw()QwtAbstractScaleDraw
QwtAbstractScaleDraw(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
QwtDialScaleDraw(QwtDial *)QwtDialScaleDrawexplicit
QwtRoundScaleDraw()QwtRoundScaleDraw
QwtRoundScaleDraw(const QwtRoundScaleDraw &)QwtRoundScaleDraw
radius() const QwtRoundScaleDraw
ScaleComponent enum nameQwtAbstractScaleDraw
scaleDiv() const QwtAbstractScaleDraw
scaleMap()QwtAbstractScaleDraw
setAngleRange(double angle1, double angle2)QwtRoundScaleDraw
setMinimumExtent(int)QwtAbstractScaleDraw
setPenWidth(uint)QwtDialScaleDraw
setRadius(int radius)QwtRoundScaleDraw
setScaleDiv(const QwtScaleDiv &s)QwtAbstractScaleDraw
setSpacing(int margin)QwtAbstractScaleDraw
setTickLength(QwtScaleDiv::TickType, int length)QwtAbstractScaleDraw
setTransformation(QwtScaleTransformation *)QwtAbstractScaleDraw
spacing() const QwtAbstractScaleDraw
tickLabel(const QFont &, double value) const QwtAbstractScaleDrawprotected
tickLength(QwtScaleDiv::TickType) const QwtAbstractScaleDraw
Ticks enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
~QwtAbstractScaleDraw()QwtAbstractScaleDrawvirtual
~QwtRoundScaleDraw()QwtRoundScaleDrawvirtual
qwt5-5.2.3/doc/html/class_qwt_array_data__inherit__graph.png0000644000175000017500000000550512052741152023572 0ustar gudjongudjon‰PNG  IHDRmp›ŇiDbKGD˙˙˙ ˝§“ úIDATxśíťkLŮŔĎТµ˘]µ(¸*ľ‚ Ĺ*TŠ ‚qń…¨ĺF|D¸ŕ·MŃ F|mŔw4QŚ(Ř®ŠŻ˛"ŹŞ,^´ę->)EhˇTD`Úąfť[‹TZNią9żäĚ9sţóďŻg^ĄsŠĆÉŢ üź€<Ây„ňşuÝt:Ý–-[4 ÜlěÎ,X`EGĚşóuNNNLLLtt´}–ŇŇR>źź““cE_+Ç#‰u›tXÖŻ_ou_t|„ňäČ#G8ŘÜcmm­H$ňôôtvvž4iRRRR{{»ů.ŐŐŐL&“,`ßpqq™7oŢŁGŹŇqč±­GĄR9ţ|‹UTTÔÖÖ&‹ßĽyĂçóŞ’ÂĹĹ… ‚ šššâââVŻ^­T*mšł•VqăĆŤô MHH0®1 ÁÁÁÉÉÉK–,IOO'˘±±přđa‚ >|ř`ś›L&Ł<’$$$lŢĽ™,ż|ů’Çă1™L.—{ůňĺ––ŞcKK‹Ië@^Ttttttô `CŹZ­ÖÉÉ©¦¦Ć¤^,O™2ĺčŃŁ‘‘‘A\ż~ťĹbEDDĺ9sć(•JRU JĄľľľdyŐŞU©©©]]].\pww7YżoëOŚÇAÝϧĄĄ… .—kRďííÝÜÜĽ|ůňÔÔTÇe2Ů®]»222ôz}qqqDD„™Ô=xđ ——ťNg0Z­ÖdMó­Đ±ˇÇqăĆa¦R©Ľ˝˝Ťë===gÎśÉfłËËËe2YvvvvvveeeqqńéÓ§ÍÄlnnćp8dବlÓ¦M†Mś8±ďšć[ˇcĂó ‹ĹZĽxqFFUsüřńşşşŚŚŚ¨¨(ŔňĺË%ÉÇŹ}}}CBBnŢĽŮŘظpáB31ďÝ»Çăń­­­qqqçÎť+//?pŕ€Éjć[m Ç# 33S ±}űv//ŻŽŽŽiÓ¦±Ůěk×®"""D"QXX†a!!!;věXşt)ÁŔ0LŻ×÷öö‡R«Ő999—.]ި¨ßÍt:]ŁŃ¤§§ëőz­VKuüaë¨QŁlřR­;¬đ|MDMMÍćÍ›=<<śťť˝˝˝“““çÍ›—’’BDGGÁ8věA € .ˇÓé¦Oź>räȧOźRy2Ś€€€‚‚*ňľ}űX,–ŹŹĎ­[·|}}èŽjµşoëOSuĐóutuuUVVZ×צ ĆŁî ™L¦źźßĐoצ űk8 Źp@á€<Ây„ň‡AÝĎś?VŽ@mm­ÉG`Ýeç«WŻFŽ őUôĆdţJŁ Í¶ŔńăÇ­bĄÇ!Ł´ô‡óŻßŰ;‘źŕčÇÇ?˙¬ ˙â¸Á޹á=öôŕI%@«ýRRňÚŢéá=UůŇ  Ńś$’ {§c‡ö(WĐhN7_\7ż˙®in¶ů?ő­Ŕ=65µWTÔ ?x€FsĘËűÁPµ;Žč1/ŻŞż‡(p\/;âąmż`>>î‹Züüą›ÉdĐé˙ĽĺłfŤ·S^ć°ňů™ˇä—_’ΞŤýí7‡ţW­#î×ĂäČ#G8 Źp@á€<Ây„ňäČ#G8 Źp@á€<Ây„ňäČ#G8 Źp@á€<Ây„ňäČ#G8 Źp@á€<Ây„ň ㇂‚ěťÎpqá:9ąÚ; SŘl¶R©¤Ô}÷ýđ'OžDGGĎ1Ă^É #RSS ĹôéÓÉEÓďŮĎ1#$$d¨“†¤¦¦/˘ă#G8 Źp@á€<ÂÁŹ>|8tčĐš5kÂĂĂ7lŘpęÔ©Ďź?›ď˘R©–.]j\“žž. KJJ¬H żMżOΤ;đ”Ĺëëëăăă]]]Ož<™——·˙ţ†††ť;wţTĄ1ÝÝÝEEEţţţR©ÔŇĚŔ`0 Ĺbqddäž={ęëë!Ć7Ĺ˙řăŹđđđÄÄD.—Ëd2§NťzčĐ!6›}ĺʕݻw“óćŞŐjˇPťť Đh4Bˇ066¶··W(’S˘s8ś„„„çĎźSżµ R©6lŘ ‘H"##źźOŽÁÇŹ a’ŐčŃŁŐj5YîÁó­Á˛çŻŮl6ŕÓ§OÔäü$­­­nnn“&M1bÄëׯ ĹŢ˝{ Ţľ}[UU•””dĽ˛T*íéé!÷JÇu:]]]ÝäÉ“t:ťÜ„IY©T¦ĄĄafü ‚¬¬,‘HTXXśśÜ7۶¶¶1cƉ@aľu XćŃŐŐŐĎĎO"‘ěÜą“¬ÉÍÍ ’H$‹-đx<™L¦Ńh¸\®źź_qqqkkëĚ™3›ššČő ‚JĄIII|>ź¬IKK“JĄŰ¶mO4C•µZí‘#GÎś93mÚ´şşş˛˛2˛žÇă|ŘügČŠŮłg_şyâ†čřäČ#G8ü´&EläZ5IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_round_scale_draw__inherit__graph.map0000644000175000017500000000051212052741160024757 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_dict.html0000644000175000017500000002601512052741164020425 0ustar gudjongudjon Qwt User's Guide: QwtPlotDict Class Reference
QwtPlotDict Class Reference

#include <qwt_plot_dict.h>

Inheritance diagram for QwtPlotDict:

List of all members.

Public Member Functions

 QwtPlotDict ()
 ~QwtPlotDict ()
bool autoDelete () const
void detachItems (int rtti=QwtPlotItem::Rtti_PlotItem, bool autoDelete=true)
const QwtPlotItemList & itemList () const
void setAutoDelete (bool)

Friends

class QwtPlotItem

Detailed Description

A dictionary for plot items.

QwtPlotDict organizes plot items in increasing z-order. If autoDelete() is enabled, all attached items will be deleted in the destructor of the dictionary.

See also:
QwtPlotItem::attach(), QwtPlotItem::detach(), QwtPlotItem::z()

Constructor & Destructor Documentation

QwtPlotDict::QwtPlotDict ( )
explicit

Constructor

Auto deletion is enabled.

See also:
setAutoDelete(), attachItem()
QwtPlotDict::~QwtPlotDict ( )

Destructor

If autoDelete is on, all attached items will be deleted

See also:
setAutoDelete(), autoDelete(), attachItem()

Member Function Documentation

bool QwtPlotDict::autoDelete ( ) const
Returns:
true if auto deletion is enabled
See also:
setAutoDelete(), attachItem()
void QwtPlotDict::detachItems ( int  rtti = QwtPlotItem::Rtti_PlotItem,
bool  autoDelete = true 
)

Detach items from the dictionary

Parameters:
rttiIn case of QwtPlotItem::Rtti_PlotItem detach all items otherwise only those items of the type rtti.
autoDeleteIf true, delete all detached items
const QwtPlotItemList & QwtPlotDict::itemList ( ) const

A QwtPlotItemList of all attached plot items.

Use caution when iterating these lists, as removing/detaching an item will invalidate the iterator. Instead you can place pointers to objects to be removed in a removal list, and traverse that list later.

Returns:
List of all attached plot items.
void QwtPlotDict::setAutoDelete ( bool  autoDelete)

En/Disable Auto deletion

If Auto deletion is on all attached plot items will be deleted in the destructor of QwtPlotDict. The default value is on.

See also:
autoDelete(), attachItem()
qwt5-5.2.3/doc/html/inherit_graph_34.png0000644000175000017500000000245512052741163017336 0ustar gudjongudjon‰PNG  IHDR[%˘|bKGD˙˙˙ ˝§“âIDAThí™k({Çżgs­í™ą<4uć–(JMJ~…ÜE ĺ ZÍĄđĎPî—”Ç"—Ä4amiîł™¶|˙N­ó?ë÷ß<8ŻGź˝Ď÷óÝçóŢ÷ű=gBhH0ě]ŔŻv„ íÚ*äĎĎĎĄĄĄöŞĆö$''777“„|Ż™™™ÉÍÍÍÉɱyaöáęęj{{›r·uř>>DzIIIAAN§S«ŐQQQ}}}¶pD­V#ňŮ~ą\ÎfłŹŽŽŘl¶Ńh¬¬¬lmmEQÔd2UTT477›ű!l‰DG(¶µµ˝ĽĽ­Ôj51lrr244Ô˘#ťN!T(„řţţîččřřřH䮬¬DDDXáČŹĎ.—‹ Čĺĺ%E×h4ŢŢŢÁÁÁîîî2™l}}=//ĎÓÓS.—Ż­­Ą§§“Ł(ZYYą´´¤ÓéFGG·¶¶ňóó‰K # €1 »ľľ¶X†“““§§'1žPnnnŚFŁ»»;‚ ‚$&&^\\ü´;`ĹÉŠ˘h\\ÜŔŔ€Yéíí=;;‹Ĺ€´´´………ŰŰ[ˇP?77§ŃhbbbĚăËËË“’’AČČH‰D˛ľľN(çççD¬V«}||,– EáńxL&ÓĽF ĂîîîO»ŔŞ“UˇPp8śÚÚZ•J…ăx{{»ŁŁ#—Ë%………‹•••!c±XŮŮŮB•JĺŕŕđţţľąąÉd2ĄRéŐŐŽă*•J,™·H$ş»»S(Bˇ°łłÓâ®1o@rś››[\\¬Óé´Z­H$Ş««łĹ®íěě<<<ÄĹĹąąąŤŹŹWWWóůüţţ~@rrňŰŰ[ll, !!Á`0[ĆĎĎO p8 Ă–—————…Bˇ‡‡‡X,Ć0lxxÜŮŮ9%%%"""!!!--­©©éż644d2™0 ňňňęę겢;kÖEp—ËĺÖĺš!˙ŕ6௭‹¸¸¸„‡‡˙­Ůěýż†ĘďrÄFĎé_ň»ů ĐŽPˇˇB;BĹÂۉ‘‘Ű×aööö,¨ä‡…BÁfłm^=‰ŽŽ¦<ˇýëť  Ď‘ĎĐŽPˇˇB;BĺĎ›&űˇÖÜDIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_scale_arithmetic.html0000644000175000017500000002767712052741142021757 0ustar gudjongudjon Qwt User's Guide: QwtScaleArithmetic Class Reference
QwtScaleArithmetic Class Reference

#include <qwt_scale_engine.h>

List of all members.

Static Public Member Functions

static double ceil125 (double x)
static double ceilEps (double value, double intervalSize)
static int compareEps (double value1, double value2, double intervalSize)
static double divideEps (double interval, double steps)
static double floor125 (double x)
static double floorEps (double value, double intervalSize)

Detailed Description

Arithmetic including a tolerance.


Member Function Documentation

double QwtScaleArithmetic::ceil125 ( double  x)
static

Find the smallest value out of {1,2,5}*10^n with an integer number n which is greater than or equal to x

Parameters:
xInput value
double QwtScaleArithmetic::ceilEps ( double  value,
double  intervalSize 
)
static

Ceil a value, relative to an interval

Parameters:
valueValue to ceil
intervalSizeInterval size
See also:
floorEps()
int QwtScaleArithmetic::compareEps ( double  value1,
double  value2,
double  intervalSize 
)
static

Compare 2 values, relative to an interval.

Values are "equal", when : $\cdot value2 - value1 <= abs(intervalSize * 10e^{-6})$

Parameters:
value1First value to compare
value2Second value to compare
intervalSizeinterval size
Returns:
0: if equal, -1: if value2 > value1, 1: if value1 > value2
double QwtScaleArithmetic::divideEps ( double  intervalSize,
double  numSteps 
)
static

Divide an interval into steps.

$stepSize = (intervalSize - intervalSize * 10e^{-6}) / numSteps$

Parameters:
intervalSizeInterval size
numStepsNumber of steps
Returns:
Step size
double QwtScaleArithmetic::floor125 ( double  x)
static

Find the largest value out of {1,2,5}*10^n with an integer number n which is smaller than or equal to x.

Parameters:
xInput value
double QwtScaleArithmetic::floorEps ( double  value,
double  intervalSize 
)
static

Floor a value, relative to an interval

Parameters:
valueValue to floor
intervalSizeInterval size
See also:
floorEps()
qwt5-5.2.3/doc/html/sliders.png0000644000175000017500000002213412052741143015644 0ustar gudjongudjon‰PNG  IHDRH7Ţŕ)q IDATxśíÝLwţÇńDVnŐk˘rZŃ@‰QhrÖrÜŹr„ĐZŁ&—Ňśg*°ô‡Ť —ś \´ P8ęőh“ë5&GAăŐ^Ą&mz˝j©ČEí-`‰t‰ě* »óýcrűݰ,ěÎţÝŮç#ţÁ~ŮĎgŮóëó/]ş$ ajo"ŘšB°4…`h ÁĐ‚  )@S6€¦lM!ŘšB°4…`h ÁĐ‚  )@S6€¦lM!ŘšB°4…`h ÁĐ‚  )áj@űŢ8ú–˛×ęééńî`ÔĄxWČ´·CřÁ ×R{>‘řĐCjÂđđđ¦M›:;;m-fłąŞŞęĚ™3:ťnË–-;wî óŐéI’Îť;·sçN[ËŠ+ÚŰŰ}ÔťŤ?·ŃžZŰ«îOY]›źđŽ@000PUUŐŐŐ566fß^WW744túôéŃŃѢ˘˘ĄK—nܸŃwĂčëë+((¨¬¬EŃw˝Láçm´ççí ź˛Š\Šëááᬬ,űłŮ\QQ‘–––‘‘Q__oµZgnâââ^ýőcÇŽŮZ$I˛X,ĄĄĄŃŃŃńńń………mmm>ĆŤ7|đAźv1…˙·Ńžź·7@~Ę*š%ŘvîÜ™źź?::jßnKţăÇŹź:uʶśµűČGß’˙­^˝Ú§644d2™’’’ä—«V­ęííőiŹ}}}ťťťŹ>úč#Ź<˛gĎ“ÉäÓî5¶Ńž˙·×‘ş{ŔĎf 6ד?Ôţ"4cll,<<<""B~©×ëďÜąăëÓÓÓ?účŁ'N|÷ÝwŻĽňŠO»ÔŘĆ)˝űy{§Š{ŔĎ”\csLţĆĆĆÚ¨%99Y’$A.]şäl˝^?99911ˇÓéA0›Í‘‘‘ŢĆš5kAEńâĹ‹˘(¶¶¶Ęí?úŃŹJJJĘĘĘĽŰť#?lŁ3ŞlŻ#÷€˙) 6gÉďâ_ňńiÍđ»@îîîY—‰‰‰Y¸pá•+WRRRA¸|ůrBB‚w‡a˙«=88řë_˙úăŹ?ŽŽŽaÎś9¶ ßńĂ6:ŁĘö:Rqřź’{=mÉ/ż´%żłö).9ˇt('ŠbXXX^^Ţ‘#GŚFc___KKK~~ľďz\´hQBBBMMŤŮlţţűďsss}םĚĎŰhO•íťÂ˙?eu) 6[ňË/mÉď¬@€3 ±±±ŮŮŮ۶mËÉÉ)((đ]_˘(ľöÚk·nÝĘĚĚ|ňÉ'KJJ|םŤ?·ŃžZŰëH­=ŕnźŠEQE9ůkjjnßľÝŇҲcÇgíľ4O¬\ąňüůóö-‘‘‘ŐŐŐŐŐŐ~č]Ĺřřř7ß|Ó}Ůóç6ÚSk{Őý)«KácçÎ’?tţ"@p‘$I~Sľ“Bnq|ěR’$Ż´«»±@séÍőäťżŕ]ß\˝*q¸îPCcłwßÜő‰6lŘŕ•v­NčmNŘ‹‹‹khh°S«Ő*?vµ|ůrŰc—Ţj ‚ !ĘŮD Ţj &AF°ňđHů±KůaUI’¦<Žéy{ŕ[łfŤZŹŮ¨Řµş˝‡f×ţG°!yň‹*?v9>>.?-;ĺqLĎۨ…S‘Qî>ŽÉă›SĚpÄL×ë:člbk츻®í±Ë‘‘‘ëׯŰ&bđV;µ¨|*’żAŕ Ż †dggĎť;wëÖ­öŹczĄ€*T6ű&Bľ#Šâ”Ç1EQt÷qLß‚7Ź Ů˙1:w|Á† FpD°ˇËĂó˙ž¬®b×®Ľ]‡‚ AŚS‘ž`ŹA«61>š8â96€_I’táÂ…´´4[)™·*@qÄhÄGßR{ĐšĂu‡zzzĽţ¶&“©ĽĽÜ1·ĽUŠ#61Of0łĂu‡|ôΕ••ëÖ­ło‘$Éb±Č ˘ŁŁăăă=©Ĺ‚×Ř%>ôÚCFńsĎş¸¤ˇěEÁťŹTCŮ‹ąÉ–$I'OžĽuëVyyůÉ“'íżĺXޱ±QY/€ŔâVŞůt$đşúúúwŢyçîÝ»Sľ%W€’«d‚ŕI(‚ €źôţ·ßëK"đÉW DQĽxńbyyyYYŮâĹ‹Ż]»6e1ąÔÄÄ„\ÝĐ“ PŞEŕ9žcźýďć… .\¸°k×.ůerr˛í»¶ P)))‚g T 6ÇŹ!˘î"Ě€ŕ"˙ÎJ’tíڵ͛7ůĺ—r»(ж P555·oßniiٱc‡˛^¸+ šŢŢŢÔÔTůkÁ›ťť˝m۶śśĹ ¸Ćđ+ű2Röő¤ĽUŠ#6€¦pÄŔ\ż5ź›řá!‚ AŚ»"Y"ŘÄł)|7D¸Ćh©Č8b4Âł°Á#6€¦lMQůT$ÓhĽKĺ`łż«Ť»¸Ý€#nA#Ě8â@S6€¦lM!ŘšB°4Ea°ť={vË–-?ýéOÓÓÓ÷»ßýűß˙–ŰÍfsEEEZZZFFF}}˝ŐjőŢPť’`űá‡^xá…íŰ·öŮgüńÚµkźţyů[uuuCCC§Oź>~üř©S§ÚÚÚĽ:Zfˇ$Ř"""î»ď>QEQ”[/^,I’Ĺbéčč(--ŤŽŽŽŹŹ/,,$Ř~¦äíůóçďßż˙ąçž“$I˝^˙·żýM„ˇˇ!“É”””$/¶jŐŞĆĆF/Ž‚™G8Rl‹Ą˛˛răĆŤ/ľř˘|QíČ‘#ŐŐŐcccáááňbz˝ţÎť;Ž«‡ćÔYĹĎ=ëú”vaŔ‘’`xůĺ—çĎź˙ă˙¸¤¤¤´´T˝^?99911ˇÓéA0›Í‘‘‘Ž«;ű0 ÍŔsDŞ€'”ŰĽyó¦´ČIłpáÂ+W®¤¤¤‚půňĺ„„χ¨%˝˙íW{ qJnyŕRSS<8:::88ŘĐĐ““#ŠbXXX^^Ţ‘#GŚFc___KKK~~ľ×G Ŕ >ÇvđŕÁ‘‘‘ź˙üç›6mJLL4 r»Á`ŤŤÍÎÎ޶m[NNNAA÷† Ŕě–­‰‰‰©««slŹŚŚ¬®®®®®ölT(Ä”ZM!ŘšB°4…`h ÁĐ‚  )B‚$IĂĂĂYYYňĚÝr‹ců@I’ÜjWwŁLKáslŢÂü𪪪®®®±±1űv[ůŔŃŃѢ˘˘ĄK—nذÁ­öŤ7ŞłIśS9Řě'DÖvČ1µ±Šâââ®]»¶yóf[ŁŐjíččhnnŽŠŠŠŠŠ’ËnذÁ­v‚ @*[č8\wČĹ%‰@˙pV>ĐÝv†`ó+f÷÷.gGů®Ôi“ËĘ…)$I˛•t·@ !ŘÄ<)4*——KăÚĘşŰ ĐpW$B”­| üŇV>ĐÝv†`C[cÇÝuEQ”ËŽŚŚ\ż~ÝV>ĐÝv†S‘bžśŠÁ`08p ;;{îÜą[·nµ•t·@@!ŘDQ\ąrĺůóçí[ś•t·@@!ŘÄěĎ@zxô@361ÂĚŢGßR{ĐšĂu‡zzzÔ…۸y0 ×§•4ޱi{-ř§"%>ôÚCđąâçžuqIy·ćý …¨yŞ›ăÇQwfłŮ… ®±J®OPÇTvę’$éÎť;UUUgÎśŃét[¶lŮąs§(Š˘(Ú–ůä“OŠ‹‹ĺŞR˘(ĆÇÇ···+î‘`ř–łRP6}}}ůůůUUU^éŽ`óNtx×Ř€Ŕ笔ý27nÜxđÁ˝Ő#Áć'¤š/f@ŕsĄäS__ߥK—ŢyçI’~ůË_–——Ďź?_qŹ›źp«Ä7WŻŞ=„€"űçpݡ†Ćf˙ôĺJɧ±±±ôôô?˙ůĎ###ŻĽňJeeĄâ 6€ąRň©µµŐ¶pIIIYY™'=ň€6‚'łűđŹ™K>I’488’’rëÖ-ąeÎś9r*Ć‚×ŘŢé$üýău¶’O555·oßniiٱc‡ý‹-JHH¨©©ůýďo2™sss=é‘`B‹ß®¬řŽë3Ź( ý€¦-ůÔŰŰ»yóćóçĎ‹˘řÚkŻ8p 33SŻ×ççç—””xŇÁđ!g%˘ě+IĹÇÇżůć›ŢęQĺ`ăŇŔ»T6űk$„ŔsśŠDcć‘ĺúŚĚŤ‚4ŘVŻ^íĘbö÷/ą˛ŠˇěĹgvüVů°`łĐDVaflľŔ/4Ź[Ő!ŔŤb€ëH5@ĐÁŔu===jL©Đ…ÁvďŢ˝ÚÚÚĚĚĚÔÔÔŇŇRŁŃ(·›ÍćŠŠŠ´´´ŚŚŚúúz«Ő꽡0;…ÁÖÜÜÜŐŐőŢ{ďť={6""˘¶¶Vn·•I=~üř©S§ÚÚÚĽ7T`*&AŕHÉ56«Őúţűď755ĹĹĹ ‚pđŕAA$I˛•IŤŽŽŽŽŽ–ˤnܸQAÜÁWp»?GJ‚mxxŘh4ž;wî™gž™řĹ/~±wď^˝^ďJ™Tůâţ.ÂB’`3™L’$ő÷÷···ß»woďŢ˝Żľúęţýűĺ2©¶::Ó–IÜ™:‹ŰýîRlr…ďÝ»wëőzAŠŠŠär™Ô‰‰ yiˤ ÎOq™ŕ9%7ŹÄĆĆΛ7orrR~i±X䣴™Ë¤ŕJ‚-<<<77·şşÚh4Ö××çć抢&—I5Ť}}}---ůůů^13Px»˙K/˝dµZüń'žx"))ÉVíÔ`0ÄĆĆfggo۶-''G.“ €ß(śRkÁ‚555ŽíÓ–IU†› č”Z¤@™ťŮĹŞio}KţâpÝ!f€ Aŕ(@ paŔQ€žŠ@‚  )@S6€¦¨|óóCĽKĺ`łż«ŤxŽS‘M!ŘšB°4…`h ÁĐ‚  )B‚$IĂĂĂYYY’$ŮZĚfsEEEZZZFFF}}˝Őj•$iÚvuŔ-Ěîí¨ŞŞęęęłoŻ««:}úôččhQQŃŇĄK7lŘ0műĆŤU;·qÄí‹‹‹khh8vě}ŁŐjíčč(--ŤŠŠZľ|yaaa[[Ű í‚Á†544d2™’’’ä—«V­ęí흡@°PíT$hÁsÎţąR€tll,<<\§Ó ‚ I’^ŻżsçÎ í‚…jÁćřŃCÔÁ]žTĐÖëő“““ăăă‚ ÍćČČČÚ NE"­±ăîş111 .ĽrĺŠüňňĺË 3´‚Ř%;î®+Šb^^Ţ‘#GFFF®_żŢŇŇ’źź?C;€`A°!t †ŘŘŘěěěm۶ĺääĚÜ (đ‚ýČ™ÚDQ\ąrĺůóçí["##««««««§,ě¬@P ŘŕWĹĎ=«lCŮ‹ŽŤžÜ<@«6ř[ďűŐ0ŤŐ«WŰż”˙–:\wȾ噿ő÷°ŕ>‚ AĚőS‘€SRMĹ‘Ŕ-‚aŻ›rF Á»"šB°’$éŰożÝľ}{jjjzzú®]»ŚFŁ}q(ÇrQ÷îÝ«­­ÍĚĚLMM---•—wVFĘľ/×ëI©lžĚđ˙P—Őj-..NJJęěělooż{÷îľ}űA$i`` ¸¸8??ttÔ~•ććć®®®÷Ţ{ďěŮłµµµr»­\ÔńăÇOť:ĺXUcÖlTľĆfŤ„Ď&¸‹kl€şúűű CDDÄüůó‹ŠŠ¶oß.‚(Šrą¨k×®m޼ٶĽ$Iďż˙~SSÓ’%KDQ77W­\”(ŠaaaňFŁ±ŻŻoćzR@ˇ›7ošL¦¬¬¬äädůÁ›ÔÔÔ)ĎźMńŇK/Y­ÖÇü‰'žHJJ*))‘ۧ-ŐŰŰ›šš:ĂÓâT$üJŮ„{†˛Ľ>ž[ľ|yww·łďN[.jÁ‚555Ž O[.Ę~u×ëIy!Ř.\¸đěłĎţë_˙Ál6WUUť9sF§ÓmٲeçÎťaaâ˙ąrĂóőy‘˛dě˝ ŕQ°I’d2™ĘËËmS›Řž -**Zşt©łč˛ĽRÜ<˘€·nĐž)ek¦ĹŢ žNUVV®[·NI’äGÇKKKŁŁŁăăăĺ'Ă˝1H`zÜ<Ŕ‘GÁvňäÉ[·n=őÔSňK·ž Ŕ”źŠěďﯯŻçťwîŢ˝+·¸řd8sB|Gy°•———••-^ĽřÚµkr‹íÉpůŮrgO†;;kDŕ<§<Řľúę« .ěÚµK~™’’ňő×_»ţd8ľ ü[ww·|Ńţ>ĐétÝÝÝn=€/xůmÁpŕŔěěěąsçnÝşu†'ĂĎq»?G^6eO†ž#Ěŕ]SfĆQ6QTÇ´ Ć0W$‚ <łă·jŢÁ@S6€¦lMáüŠëóą~BPÜH¬r°ń«jzhÚöo®^•ż8\w¨ˇ±ŮŹ# iž|Ě­YłF­ŐUěZÝŐ=ďZńşÁEĺ`ł˙!…ÎNř×ŘšÂ561¦Ôŕ`C#Ě8âT$@S6J¨x¸¬î‘zČnx!ŘšB°!ŠăžPë=tř6€¦lM!Řš˘ÚslL đŐŽŘ.9Pk$€–H’4<<ś••%I’­Ĺl6WTT¤ĄĄeddÔ××[­VI’Üj÷¤÷O>ůdŤťĽĽ<Ż÷ţí·ßnßľ=555==}×®]FŁQnwöVî¶+ëý“O>INN–·:999//Ď»˝K’ôÍ7ß<ýôÓ©©©k×®-,,ěęęrwßzřLśŠ´c`` ¸¸8??ttÔľ˝®®nhhčôéÓÇŹ?uęT[[›˛ve˝÷őőtww˶··‹˘čĹŢ-KqqqRRRggg{{űÝ»w÷íŰç· źˇ÷ľľľüü|y«»»»ŰŰ۽ۻ$Ieee?üpgggggçúőë_~ůeżmx #Ří‹‹khh8vě}ŁŐjíčč(--ŤŠŠZľ|yaaˇü±ĺn»˛ŢA¸qăĆ>8ĄŃ‹˝ ô÷÷ † ,Z´¨¨¨čóĎ?—$Éb±Čo/ż•»íłnő´˝;Űpďö~óćÍÁÁÁââb˝^o±X"""bccě[Ĺ?ń€E°!$¸x‚NÝAúČĐĐÉdJJJ’_®ZµŞ··WA»b}}}ťťťŹ>úč#Ź<˛gĎ“É$I’{_¶lŮĹ‹u:ťüňÓO?]±b…ß6ÜYď¶ _ż~˝mĂ˝Ű{\\Ü… nܸńđĂgdd455íÝ»×oČ6hź»'č4fll,<<\§ÓÉ'őzýť;w´{2€ôôôŹ>účĉß}÷Ý+ŻĽâŁŢ‡††ţđ‡?´¶¶îŮłÇöVňw§táz»˛ŢgŢp/öľbĹŠŻżţúď˙űÚµk+++…ř‰«Ž`öąu‚N{ôzýäääřř¸|´j6›###´+#ŠbkkëóĎ?Ż×ëăââJJJ:;;˝Ţ»Őjmmm-((°X,'NśX˝zµí­&&&äe¦táz»˛ŢA°mřO~ň“)îĹŢEQ [˛dIQQŃŐ«Wµâ€`CŇŢégbbb.\xĺĘůĺĺË—´+388’’rëÖ-ůCsÎś9ňA‰w{olllkkkmmÝż˙˘E‹ä#żm¸cď’$Ů6\^ĆŢßßź’’b ¤‰‰‰ůóçűsĂÁ† ¶Ć WÖŐŢégDQĚËË;räČČČČőë×[ZZňóó´+łhѢ„„„ššłŮüý÷ß766ćććz·÷ńńńwß}·ąą911Qţi ˙;Ž‘ßĘh4öőőÉoĺnű¬8mďön2™nŢĽ)o¸w{_˛dɲeËŽ=:66644ÔŘŘ““Ł`ßz÷'61ǧ!]&R{§_f`0bccłłł·mŰ–““SPP ¬]Q_{íµ[·neff>ů䓉‰‰%%%ŢíýćÍ›ŁŁŁYYY¶'ĆRSSý¶áÓö.•Ż7\ĹÚÚÚ/ľřbýúő›6mJHH0 ~Űđ@&ΓŃkÖ¬qw0o}Kţâpݡžž Ę äA&>ô[k?÷¬ »QĘĽqô-gű᛫Wĺ/×jhlžv™âçžµß!SŽĚfţĎ#Iҵk×6oŢüĺ—_ĘV[­ÖĚĚ̦¦¦äädAţú׿ž>}úí·ßvg"Ő¦Ô<çÉźe¶Ó/555·oßniiٱc‡Ç@-śŠDčŇŘé2•ŹŘ ž°˙˙3óŃ›(Š+W®<ţĽ}Kddduuuuuµ‡ŔďT6ű#Bî ś+ħ"šB°4…»"Ä\żĆ tlb„GśŠh GlbśŠŕHa°}űí·ŐŐŐ]]]sćĚůŮĎ~VQQq˙ý÷ ‚`6›«ŞŞÎś9ŁÓé¶lٲsçΰ0 á+„GJRÇb±'%%uvv¶··ß˝{wßľ}ň·B¤r# `) ¶ţţ~Á°`Á‚E‹}ţůç’$Y,ąrcttt||Ľ†+7–’`[¶lŮĹ‹u:ťüňÓO?]±b…J•ËŁ›GäŇv}ôŃźţô'á•ĺ*±‚óĘŤLťoá掛Őj=~üxSSÓŻ~ő«'NÄĆĆ ˙«Ü811!Ě9«ÜčěŔ»3Ž[ccăŮłg[[[䲍’$ĹÄÄ,\¸đĘ•+)))‚ \ľ|9!!Á›`6J®±ŤŹŹżűî»ÍÍ͉‰‰rŞ ‚ —B—+7ŤĆľľľ–––üü|ŻŽ€Y(9b»yóćččhVV–üRŹҕÁ`8pŕ@vvöÜąs·nÝJĺF€ź) ¶ĺË—;»¶AĺF€şR AŚ»"8"ŘÄ3ŽČ )@S6€¦lMQůć¦Ńx—ĘÁfW!wq»?GÜîŹ FpÄ56€¦lM!ŘšB°4…`h ÁĐ‚  )@Sx@AŚ™G8R-Ř@ ž#Ě8R-Ř?’:€ç¸ĆĐ‚  )@S6€¦lM!ŘšB°4…`h ÁĐ‚  )B‚$IĂĂĂYYYj€Ď©<»?óCÂŞŞŞşşşĆĆĆÔ źS9Řě§B&äŕ#qqq ×®]ŰĽyłÚcŕsśŠh …FÄśĺS§ e‚é`ZśŠh ÁĐ‚  )^ľĆf6›«ŞŞÎś9ŁÓé¶lٲsçΰ0˛ł;\wȧď/ŠâĘ•+Ďź?ďÓ^/[]]ÝĐĐĐéÓ§GGG‹ŠŠ–.]şqăFďvMjhlV{4›‡S‹ĄŁŁŁ´´4:::>>ľ°°°­­Í‹ďŔ¬ĽlCCC&“)))I~ąjŐŞŢŢ^/ľ?łňć©Č±±±đđđůĄ^ŻżsçŽăbLťđo›^ŻźśśśĐét‚ ÍćČČHÇĹx®ŕ;Ţ<łpáÂ+W®Č//_ľśŕĹ÷`VŢ ¶°°°ĽĽĽ#GŽŤĆľľľ–––üü|/ľ?łňňíţáŔŮŮŮsçÎÝşukAAwß _?ü:^¶ČČČęęęęęjďľ­3===ţé, )”­ńN™€ßÜ|ďk«WŻVĽ®Ćεz˛+dŰ!|`h ×ŘšB°4…`h ÁĐ‚  )@S6€¦lM!Řšâ§`»wď^mmmfffjjjii©Ńh´˙îđđpVV–ăZ’$™ÍćŠŠŠ´´´ŚŚü‰IDATŚúúz«Őęź{Wrrň;)))’$ÍĽO4łíÓşpáBZZšüő7ß|óôÓO§¦¦®]»¶°°°««Ë~II’÷žC4ü4 rsssWW×{ď˝7ţüýű÷×ÖÖîßż_„ŞŞŞ®®®±±±iW¬««:}úôččhQQŃŇĄK7nÜčź1{Qww·ü…$IMMMăăă‚ó}bŁŤmźB’$“ÉT^^nµZ%I’$©¬¬ěWżúU}}˝(ŠÇŹůĺ—?üđCŰň˘(N»÷Ŕ›Őj}˙ý÷›ššâââA8xđ í[qqqŻżţzooďćÍ›§]±ŁŁŁąą9*****ް°°­­-¨?Ü˙óź˙ś9sć/ů‹$IÎö‰L{ŰnSYYąnÝş“'O ‚póćÍÁÁÁâââ9s挎ŽFDDÄĆĆ:[Ѷ÷ü8XÁǧ"‡‡‡ŤFăąsç222ŇÓÓwďŢm2™\YqhhČd2%%%É/W­ZŐŰŰëË‘ú$IV«őŹüă /Ľ1ë>ŃҶŰ;yňä­[·žzę)ADQŚ‹‹;ţüŤ7RRR{챦¦¦˝{÷:®eż÷t:ťßG ř#ŘL&“$Iýýýííí?üđĂ«ŻľęĘŠcccááá:ťNEAôzýť;w| Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- h -

qwt5-5.2.3/doc/html/class_qwt_compass__inherit__graph.png0000644000175000017500000001477712052741153023144 0ustar gudjongudjon‰PNG  IHDR…BłbKGD˙˙˙ ˝§“´IDATxśíť{XWţ‡ĎäŇ€— x±®UDŮ}Đ*XĹ  ÔZ‘§V[ÁzY­k«ő˛UŃ­X«>­€[ĺ*čZ©€h­AnŠ(X®áČíüţíüb‚(Ä3zŢÇÇ'sfΙoćef’I2B0ČŔ0tgŔ>Đű@ ě-Xęmmm!!!ÍÍ͆Şć-d×®]Ó§O§& ő×Wńńńţţţľľľ†(ěmäćÍ›...ńńńT K{!őŮ˝âçç§Ń‚Ďh} öŘZ`hŃOÖÖÖgÄ_|ńEKKKď]JKKŤŤŤÉÄź999eddôµj´6ŞĎ%Ô055uww/++ëëŞőJ|”””Lť:•Çăeee‰Ĺ⤤¤¸¸¸ĽP …‘‘„BXSSłjŐ*ooď’’’~TŇW¨őB«ŞŞĆŹüÖŰ qqq-=2{öěĐĐPő•JĺęęşaĂ77·ýű÷C«««űöíÖÖÖŞŻ1''G}»@CCCČÇb±řăŹ?¶°°6lŘÖ­[e2YII µ<ő|přđáÁ[ZZ~ţůç]]]ęK¶··Ż^˝zđŕÁC† Ů´i“\.WźK" ÍĚĚČÇ÷ďßwvv666ŃŃŃä*lmmOś8aaaaeeućĚrI‰D˛bĹ sss[[ŰÓ§O÷˛ĆnI______ő–>ď‰$+++,,L˝‘ őëן?ŢĂĂ#33“Üč</;;ťť=qâDjs 4HcĚ …Bňń§ź~*‘HŠ‹‹Ż^˝šžž~čСçUŇÝÝť‘‘QXXxőęŐË—/ďŰ·O}nXXXgggQQѵk×®]»©Ń˝ĄĄ%::ÚÍÍŤśÜľ}ű‚ ÄbńW_}µyóf˛±ˇˇˇ   ˘˘bÝşu7n$CCC›››‹‹‹322>üňk|)ÔĺĽĚţQ^^N„¶üĽĽűě˙řŹÇS(k֬ٲe‹Ćź¶zßüü|>ź!ěęęb0d{RRŇ»ďľűĽýP^^N¶ź={ÖŢŢžš+“ÉŘlvKK 9÷ęŐ«NNNÚ‡DŹGŤP\\ÜŃŃ!—ËŁ˘˘ÔW!‰ „EEEÔČ,‹Ş0%%Ą—5öľ%aOűG×KzÇŇŇ’ ŞŞ*;;;őöęęjkkkGGG>ź/ srrΞ={öěŮĽĽĽěěěďż˙ľ—1ëëëmlluuu€#FívvvüńÇóz1 ކqăĆŐ××Słjkkĺr9źĎW/`ddÔŐŐE¶tvv~ůĺ—!!!ä}ëÖ­Ź?ţ áÇS˝8ą73 jd•JEU8räČŢ×ŘWú|Ľâńx3gÎN>xđ€Á`Čĺň††‚ ňňňšššY,VKKKŹÇIá˛eË-ZTWWW^^îäädllüĽ5ľpKjŻúăBřčŃŁ€€+++‡cgg·aĂ''§đđpˇD"ałŮ„>}úpňäIa[[›˝˝˝©©éŤ7¨ż6›=eĘ”_ý•ą±±qٲećććC† ůűß˙.“É „ááá<oČ!gÎśˇ|Ś5jçÎťćććÖÖÖ[·nU(ę[M,XXXXXX„„„tvvjűH$L&366B¸cÇŹ7jÔ¨ÔÔTww÷çů‹Ĺ}ôŹÇ;věŃŁGMMMź·Ć×çC©Tš——׿ľôâôéÓuuuäă””‡~ő ^ď>ccăI“&˝ŞŃP&55u۶m‰¤˛˛ňŰoż%ĎšŻ |ýŞĎDFF6666lâĉ¶¶¶_~ůĺ+ĽĎŻw1ÖÖÖçÎťÓÓŕx˙@ ě-°´Ŕ>Т‡óů‰'^o'—źy÷WTTdjjj Út06Ădұrˇ®ŕ™ď'Ň”ßäăąrĄëîÝ>†®EWŢ„óGJĘň…BečZt…ö>d2Err µµóÚ5´ľśĐhď#+«´łłŔd2’“ďş]ˇ˝Ź¤¤;L& P¨.]*Je†®H'číŁŁŁűňĺű …’śěîV\ąRlŘ’t„Ţ>Ôe ")IhŔzt‡Ţ>’’„ęq+ŞĚĚR‰DjŔ’t„Ć>š›;®]{ T>óBxńbˇJŇűHK»§Ý!LH ń!‹Ć>sµ/.¨Tđ÷ßŐ×·¤$ݡ«Źšš–;w*UŞ.ö0™Ś zŘuh]}\¸˙Ľ o …2)‰®o éúůů¨QmlxÔd{{·±1›Ĺúߟׄ C T—®Ľ ×wC†|ńĂ+<=i˙…#şŻŢT°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě1Ôo†5cĆ C—ÓOŚŚ †‰ˇ«čfff%%%”‚g~?xíÚµ/ľřÂĹĹĹPĹ˝…řůůŘŰŰ““šżçś>}:ÎŻ5 řüŘZ`h} öýńˇKX*EHHAIII˝,ó’Cő őî•••C‡0`ŔčŃŁ·mŰ&•JÁłŃ®=®KÇzˇĎ>tKtvvĆÇÇ»ąąĹÄÄôµ€W„pîÜąVVVBˇP,'$$\ż~=44T}{{{*ďő•E‹‹ë=ňHǰT2^1&&ć/ůKQQ›Ínhh Çé1B?nÜ8cccGGÇřřxj¨śś[[ŰďľűŽËĺ–””hžB%ÉĘ•+ÉŔÓíŰ·‹D"Ş{~~>AR©”z"~ř!ÔJe%ç655ůůů 8P ěÜął÷`VőÂzߞۼo>Z[[ ĆŁGŹ4Ú“’’FŹ}ŕŔůóçCcccy<ž‡‡ůX=,•dÖ¬YGŹ…:99>|ňX¸pa}}}aaá1cvěŘŃÚÚĘfł322şşşŽ;6jÔ(őŤĹáp‚kkk!„‹/ţú믥RéÉ“'LŽäĺĺŐĐĐPRR2|řđäädŞ»Bˇ0aÂüůóSRRȤ>Š},]şÔÍÍ­şşş¬¬ĚŃŃ‘j_µjU@@€H$*//wvv&c÷Ô ÓŁÝĂR!„Ź?ćrą­­­Â#GŽLžŕńxnnn·oßÖŘ?¨Nť:5yňä)S¦,^Ľ\ ˛˛R}@íBˇJĄş}űöěŮłÉKmOžłľüţŃgP·°ÔE‹ůűű«ŹÖŘŘČb±.]şÔc*„đÔ©SŔŘŘxęÔ©·nÝRĎ]UÚÚ§¦¦¦eË–™™™ŮŘŘěÜąS˝’¦¦¦K—.Íś9“Ëĺ0`ܸq[¶léîî~žŹ¦¦&>ź?|řđźţąOÁ¬úőˇÍŰ–úĘşś?žÇŰ–Şođő+´Ŕ>Đű@ ě-°´Ŕ>ĐBóű>ß|óÍÉ“' R hÜżý_˙úם;ôKP*‰‡ͬ­;řünC×ŇgŢyçť333rňM¸ź~||îúőgfĎvřĎ>1t-şň&ś?RRî@dg—µ¶vş]ˇ˝‘¨íúő@Ŕůóů†.GWhď#--źü°Bkčrt…ö>âă…dŠ”J…ÂĘÚÚ>|ÍAčíŁŞŞ© ŕ)•ęĹd2RSó [’ŽĐŰÇąsyTf@©T%$ĐűEo ąrů˙çsBKKk=j0`I:BcĄĄµĺĺ ä++ 6›™šz×P%éŤ}¤¦Ţĺp4Ż÷ČĺĘŘŘŰ©ç•@WÂÄDˇL¦ĐžU]-.(xúúKz%ĐŐÇÝ»•55=ż´Ąő!‹®>~ýµ‚Ăai˙S*U—.şŔ~B׼Ôĺ˧ËĺJj2>>×ĹeÔđáćää´ivŞKWŢ„ë»çĄbôöŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`hń:~• ‹ő˝–ŚŚŚş:ýţ˛Ö××—şQ•ľĐ÷ý—ÓÓÓőű^#äÝÝőŠŢ÷Źööv¤˙Żâüüü:::ô˝|ţ@ ě-°´Ŕ>Đű@ „|čűYZZJü‰‘‘‘““SFF†Ć2˝Ź€¨řĐ=ö“ŠŞ©©Yµj•··7™;g€ŚM]Đ÷ś¸¸¸—Y‹Ž±ź999‘MˇˇˇđŮ (í Ď—Ďzňőőőőő}©ç¬Hě‰$+++,,L˝‘ őëן?ŢĂĂ#33““Ăăń˛łłŮŮŮ걟 ŇsÁ‚BˇPŁqűöí ,‹Ĺ_}őŐćÍ›őůśú >ČP[@ ŃnggW__?oŢĽśś…B‘““łnÝş7n(•ĘěělŹ^Ć´˛˛Ň؇{öěŮ´i‹ĹbłŮ­­­ŻřiĽ đaiiIDUU•F{uuµµµµŁŁ#źĎ …999}ôŃ Aňňň^裾ľŢĆĆFŁńÖ­[®®®Ó§OW†D $|čű©MzzşłłłzKŹž¨ĘýČ"##gĚ!\łfŤ­­­D"7nźĎ?sć ŔĂĂ#00ĐÝÝť ÷ßíÚµ|đ›Í&3eĺrąúPMMMńńń?ýô“FvyÂd±XÍÍÍű÷ďW*•˛Ř?ăÇŹż}űvssóĚ™3xúôéuëÖ‘)âww÷îînWWWŔ¬YłÚŰŰÉŐСCGŹmaaŃÜÜÜÝÝMľ˙°±±ůńÇĎť;7věXőUXZZ†‡‡Ďś9ÓŮŮŮÇÇgĚ1K—.5Č“í }ż€{É×»=‚Těç[ôz÷yĽ…±źHűx Á>Đű@ ě-°´Ŕ>Đű@ ˝_/árą2Ťîé{Żăţí/^Ôë7ÉššşvíĘ[´Hŕć6Tk¸»»ëűű˘Żăzâüůóő:ţˇCż@‹‹»~řÁWŻ+z Ľ 珤$! ĽĽľĽśĆI^$´÷QTT]Q!p8,R ­ˇ˝Ź””»l6 “)r_ĂéPŻĐۇJr© śšš–»w5?ôĄôö‘›űX$jŁ&9}“ĽHčí:X‘ČdŠädˇR©ęĄ âĐ؇\®LM˝Łžę‹ĄżýVn¨’t‡Ć>®]+kkÓü"(›M$%ÝéqyZ@cÉÉw™L¦FŁ\®JKËďę’÷Ř}čęC*•ý÷ż …R{VW—<3łôő—ôJ «Ź_-‘J{ŻHIˇë!‹®>ŞŞš4’¶)”JHľc§#tÍç”Ë•%%5ÔäĽy۶-ś1ă_€2ÄlĐ ®JÓ Tľ/ÚWŘlćĉĂŐ[ Ť:B×ăŐ› öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`hŃźßGÝĽyóź˙ü§>Şé755CĚĚš @(ÇÝÝ}Ë–-}íŐ~~~YYYŽŽŽ}ířöĐĐĐP\\ÜŹmŰĎß«9::†‡‡÷ŻďŰ@VVÖ×_ÝŹŽřüŘZ`h} öú˝@mmmTTTnnn[[›………««ëŠ+Č;$?ŹŞŞŞ_~ů…ś,--ŤŠŠ*,,„ÚŮŮ999éµfâÇýٞ˛rőęŐ&&&‡ľpáÂÎť;ź>}úŮgźµ··żäĺĺĺ›7ovqqůůçźăăăçÍ›·}űö˛˛2ýŐlpôčăß˙ţ÷ś9s±±ńرc÷îÝËçócbb6nÜHćJ555Íš5ëěŮł€ćććYłf­X±B.—Ďš5«µµőčŃŁË—/÷ňňâóů\.wáÂ…>>>dęf{{űž={ĽĽĽüüüNž<©P(ŞŞŞ>üđĂřřxOOOooďŚŚŚź~úiáÂ…ŢŢŢäŢF.ŕíííăăsüřqĄR xňäÉš5kćÎťëďďOí—YYYsçÎ]ąre^^^Ź-ú@_>:;;óóó5Ě‚Xştéożý6mÚ4ň)Ü»wpďŢ=;;»ččh6›ť™™ÉfłďÝ»7gÎő>ůä“ĺË—""":::˘ŁŁ#""~˙ý÷ÄÄD@ccŁX,Ž‹‹[˛dÉž={äryBBÂ’%KNś8Av‰Dyyy§Nť:xđŕőë×É^?ţřŁ‹‹Ë… Ź;Fż{÷îőë×§ĄĄy{{8p@»EOŰM_>Č\ćÁk´ŰŘŘĹbggçÂÂBĄRYPPŕăăSXX¨R©îÝ»7mÚ4jI2ĐÜÜ\{pą\ž••őůçźóůüaÆ]ąr R©‚ @&ăQŹ% ŮQĄR‘˝FŽąrĺJro ń÷÷g2™,‹ĽĎĽR©$˘±±QĄR-Z´(**J»EŰ ýůŕóů€†Íx766š››Ź1‚Ëĺ–••¸»»8đáÇůůůę>‰žą“ŐăÇŹÓŇŇš››ÖÖÖdŁŤŤ ąL Bý1ŐťL'$ ˛WIIÉşuëÖ®]{ýúur–©©éŢ˝{Ż\ąâăăłiÓ¦GŹi·ĽşMő úňabb2iҤäädŞ%!!ˇ¶¶699ůoűŔŮŮ9''§ąąY Lš4);;»±±QýĄ‰‰É„ ŇÓÓŐ‡ŤŤŤ˝}ű6ąÓÔŐŐ‘Ťµµµ=îFÚ@©^ŐŐŐććć­­­ß~űíĆŤŹ?LÎ’ÉdďĽóÎţýűSSS'OžĽsçNí–ţoš^Ńăů<,,ě—_~‰ŚŚ|úô©L&ëčč |řđ!ypvv>wîÜ„ ‚4iůĐű@ ě-úů~°¦¦&--íŐ–ň&Ń˙i`ß9xđŕ+-ţÍdÚ´iýضt˝źţ› > öŘZ`hńt ż…üS´IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_0.png0000644000175000017500000001635712052741161017253 0ustar gudjongudjon‰PNG  IHDRXŔÁâőbKGD˙˙˙ ˝§“¤IDATxśíÝyTS×Ú0đ}B&l`„$ jĐbmE®C)*¸ąjęŚWÁ»Ô…"8\‡â˘×VKŻC}k-ďm ÖÚ˘(şßŢ뢶Ř(|3†B„)fÚßǦ‘™žßňŹăÎŮűîë@ţÔSă§]Wżđ Áń™ôb±xňäÉl6;--M©T&''Mť:ő…o~#˙ ‘HĆŤŇ{cŚçĚ™ĂĺrE"‘R©<ţüÝ»wĂĂĂ{v+ĆťŞ©© ]´h‘X,îŮMX¤¶¶é˙÷N`౩S?Ť‰IŤŚ<ׇÁęÁńÓ®«…BˇZ­~aőˇ50˝ě§ź~ęÎH›5kVxx¸i‰Á`đőőÝľ}»żż˙áÇ1ĆŐŐŐˇڱT*5ɦ™c,‰ěííÉeĄRąf͇3räČ={öh4±Xl\߸,‹]\\ľţúk‡Ăĺrřár…B±lŮ2[[[@pŕŔr媪*‚ ÚÚÚŚ[ĚÉÉY±bą¬R©ÖŻ_O¶Ećććúřř0™L@`şiŚqssóĆŤťśśvîÜ©ŐjM_%…‡‡C=qâ‹Ĺ‹Ĺć-wÖiATUUYzĽd2U||z@Ŕa>?B ŘáäÉçGđůľľ‡şhŞGôŐř1íjăK]Á!5`Îú•J•––¶mŰ6ÓB‚ """®\ąxűöm„PFF›ÍNOOGĄ§§O0Ář^1b„i݆††„„ňż›6mR©Tůůů·nÝşvíÚ_|ŃY$µµµ999eee[·nݱcY¸qăF…B‘źź˙ß˙ţ—|#!„x<Ţřńă—,Y’’’BŢĂËËëÜągźÁĂĂĂëëëĹbqZZZBBÂĄK—BQQQAAAJĄr˙ţý»víj·ém۶µ¶¶ćĺĺÝąsçÎť;qqqćá‰D"rY*•fgg …Bó–;ë4///ggçgššÔß˙Ëüů˙óî»Ń\‹kBZ­÷›_“z|ü ç»Ú¨‹#8ĆĂźşH5ôî|f,))!B«Ő¶+ĎĘʲ±±ÉÍ͵±±Ńjµaaa}ô›ÍÖét›7oŢ˝{·étˇÝŘfłŮ%%%cµZMˇPĘĘĘČ6“““˝ĽĽ:›s „är9Ć8//Ź,lkkŁP(………äĘ.\0VlllŚ‹‹[°`‡ĂńôôŚŠŠjiiÁk4*•ZZZJ®v÷î]‘H„1ÎĎĎoiiŃjµß}÷ťq‹ä‚FَŃh d•[·ny{{›ĆĚÎζłł3†Z[[K–›·ÜE§˝đx5)éApđ×ÁgçH`9Ă0˙×Oć=2~şčjăK]A1O&“ńů|c¨ĆuĚ[îf§uČÚzü¶m?˙k0č;[ł˛˛ŢÉ)ň… ľ"&Ó­ëzdü´cÚŐF]A4xÇ9Č _`łŮ~~~±±±ĆóHÇŽ[´hQllěÂ… Bsçνxńâ“'O<==gĚqáÂ…ęęęiÓ¦•––vŘŕ°aĂBBBČ·(ŹÇC=~ü|ë–——“o6üÇ)ÓDBD»¦ř|>Aeeedň(//'Ë7mÚT\\|óćM˛ÖäÉ“cbbB\.—l–|ߦ¦¦j4š÷Ţ{/44433ÓŰŰ;77÷úőë¦[árąVVV …ÂÖÖ!ÔŇŇRWWgţÍśk×®ůřř´ µ®®®Ă–;ë´ŤF˛l™Ďµk˙ݵő)•jĄŐvš98VtôÂ6ř*~ůĺ—ýKÖő:=>~Đó]M꬟Ix\YYŮÖÖVPP°páÂuëÖ‘U–.]úá‡Ęĺň˘˘˘ŃŁG_¸pˇ¶¶– ¬¬,…B±víZ*•ÚĐĐ`ş•ĺË—Ż_ż^.—Ëd˛ DDDľZWW÷ĺ—_˛X,ňĽ™éK¶ÜE§uóxétúĚĚŇť;tw˙‡“SÄČ‘ŰűíŮ*ÜŁă§ł®îúúń` 2čuÝ|çcŚKKKą\.ťNwssŰľ}»··wtt4ĆXĄRŃh´ŁGŹbŚ+++Bńńń㦦&ˇPhccsďŢ˝v™CĄRYYYýřăŹăşşş•+W>ÜÉÉé˙ř‡FŁÁGGGłŮl''§~řˇë̡P(–/_ngg7jÔ¨łgĎËŻ_żîççÇb±¬­­ÇŽ»{÷î§Oꫬ\ąŇŢŢžĎç8p€,üřăŹŮl¶»»{JJЧ§g@@€éV”Jepp0‡Ăáp86lhmm5˝xCŁŃ&MštóćMóđ:lą‹Nłôx©ŐÚ˙ü'7,쌋ËNgçČQٶ÷ĂĚ_yüt§«»>‚Cd<`Śáů ×‘wi~ą‘¦V« &NśŘăQÎtqĽŠć+W˛/^|řčQ•JŃjőŽwîěí«x^ĆĎ«ë°˙á:č×L&Ľíű‡µ~ý{ë׿WUĄĽ|ůŃ… çÎ}«Żę Śź^™`±‘#íĂÂüĂÂüű:Đ7ŕ—€,™€eŕlŐURR{ňä­yóĽfĎßí×Ö6UV*$’z‰D‘ž^FĄÚ˝¸`€€Ě1ä”—Ëţż+W˛0ĆůůUŻ9ššÔ••őÉł$QYY_QˇHjµ!Äf3…˘%Z…č{9†üüšĎ>»vë–JĄ !TQQßÍş*•úńc9™**ä‚TÚ¨ŃčB,ĂÍÍŃĹ…3f oöěń..€ĂçŰŇéT„PRRŇĎ?Ë{ożŻYűĚqţüyĄRŮ'ˇ€4iҤI“&˙[ZZ“šššceEÁo&ˇRµ57?e±Ć5ŰÚ4ĹĹ221|Ř×!tĆO_ép<<÷KŔÔÔÔ   ×č-,«©© !T^.˙ěłk×®ĺXYQtşî>˝@ŻÇĆłLUUJrÁ`PÉÄ pţX.pŢxaŢH×ňóó§L™BĆ„©S§ŢżżŻŁxĆOź3ĎeŽWů­&č?ČăX^.?zô˙RR˛ét†NÖ%čt+ˇOfráčČćńŘÝ™F†&¸Î18ŮŘL{˙ýĎ0Fz}g9!„čtĘŢ˝A7Îx]qř=ÇŕD§óu:Á€ét«.VĂ¨Ş‚ËZËŔścpR(’›šÔůůŐ99UżüRúëŻ%Je+A4šy¤ŐęĘËá[OË@ć´X,†ŹŹ›ŹŹŰ† ďcŚËĘäYY’¬,ÉÇĺůů5:ťün.d€Ą s A¸»;ş»;.]ęŤŇhtąąŐŮŮ’¬,‰ŹĎ辎0ŔĽäuޞ˛˛µk×ňx<:ťîęęŮĐĐĐu•‚‚&“iZ˛aĂ‚ ’““»X§›MYÄ´zEEEpp°łłłµµµ‡‡Çľ}űĚź×ř*Á`0ŢŢŢ7nÜxéČ{ ťN}÷]—ßŘŘŐÁÁ/ő,IŔö2™C,Ož<™Íf§ĄĄ)•Ęää䢢˘©S§ľ0yjmmMJJň÷÷OLL|‰zĆxÎś9\.W$)•ĘóçĎß˝{7<<Ľg·b|PWMMMhhč˘E‹LěĎ źhnÖ¬Yááá¦%Á××wűöíţţţ‡ĆWWW#„bbb0ĆR©Ôt‹rącśřöŰoçĺĺŃh´ÚÚZÓ"?~ÜŃŃŃÁÁaË–-jµcś””4věX&“9~üř¤¤$cS...'Nś`±Xb±877×ÇLJÉd ‚„„˛M•Jµ~ýz‡ĂĺrŁ˘˘äň?OëgggŃÖÖfÜ‘śśś+VtX‘,4ß„éC›››7nÜččččää´sçN­Vkţpěđđđŕŕ`˛b×ÁwÖ™ATUUuq€ş˙ôMx gŽĆĆF …RZZÚ®<99ŮĂĂăČ‘#óćÍĂ˙řăŹl6;00\ž0aB»żˇ3gÎ4}útÓű"„ŘlvXXŘĺË—ĺryBBÂýű÷WŻ^ÝEEóMIĄR­VkggG^ź5kVEE…yĘd2>źßťŕ»Ů™đş™¦‘n~Vť9sfDD„ńżGŹ-++›3gÎÎť;1Ć˙űßwíÚĺččh0BBBvďŢmkk«ŃhŚźľÉżČńńńŇ?řűű“uÉŹáeeedËIIIożýv[[Ű0ĆjµúСCŁGŹ6ťs?ŃËĺr …ňŰożaŚ˙ýw˛\­VS(‰DB®síÚµK—.kmܸqÖ¬Y¦»öŕÁ‡ÓYĹ7alM­V[YYçÍÍÍŹ?îđ:Çßţö·îßEgv}€`ÎčU/óÝŞ¸¸¸3gÎDDDŞŐj•J5věŘGŹíÝ»!xęÔ©iÓ¦1cĆŚ“'OúűűÓh4‚ ôz˝V«MOO—Éd+W®äýaĹŠgĎžŐëő! …!—Ëóňň˘˘˘Ö­[§×ëgÍšőŕÁ„“Éd2™Ć¦ĚS •J­ŻŻ?|ř°^Żolld0‹/ޱcG]]]qqń–-[ôz˝±úÚµkÓÓÓŹ9RUUĄV« <8ţ|„P‡;Ü„1±téŇČČČşşşÚÚÚU«V?~Ü4B…BqęÔ©oľůfßľ}ćoó–;ëĚ—8jĐcLÓH÷?«–––są\:ťîćć¶}űvooďččhڱJĄ˘ŃhGŹĹWVV"„âăă1ĆMMMBˇĐĆĆfţüůäyŤęęę¨Tęőë×Ĺb±»»ű†ÎăńöěŮŁÓé0Ćß~ű­@ `2™“'OÎĚĚ46uďŢ=ÓOôü1›ÍvwwOIIńôô Ŕ+Š•+WÚŰŰóůüF˘P(®_żîççÇb±¬­­ÇŽ»{÷î§Oź’­™Wěp¦SĄRĚáp8Ά Z[[Mż€KŁŃ&MštóćMrĺvÓ‘ď¬3»s@Żę±»¬«Őę‚‚‚‰'ľb&Żî–čU=vŻ\&“ i†¸Ë:ËŔ‡˘vw<„[W,™cHŔÜeýŃ#IffIQ‘LŻ7P(ĆřŃŁÇ9Ě1h>ÉÉ©ĚÉ©ĘČ(*-­Őë T*ˇ?źIn0`‚@îîÜ> 0đ@ćś8ś%3g~NŤFŃhôdˇ1gQ©TÎkŹ0°ÁňÁIŁ‘ŇhVTęźiŁCťśě^[T€ÁćSSÓýÇŹ˙óí·_~yK«5čtçŤĆđŻĄ~ţy*źo+p\\8..rÁÝÝńŤ7Ż9lŔ€đÜ/SSS‚‚ú0ĐSX,VSSBHˇhţę«´řřtÁ`~¶ !tđŕb˝K$ŠŠ Eee˝D˘hmŐ „h4+gg{€# wqáŚő,ŻŘŮ {m{·uëÖ×¶ąÁÇŢŢţţýűBˇ°Ż Ńî—Ć©©©---} č)BˇĐËËËřßşşćÓ§ÓâăÓ0FZíźó‚ JJb¬­é¦uź>Ő=yŇHć’Š ąPZZŰŇň!DŁY99ٵ› ¸ş:°Ů/˙|ßÎ,[¶¬˛˛rűöí=Ţň±lٲź~úiٲe}lÚg0IĄ 'OŢ>sćBĎň‡ťÝ°üüݬŢŘŘjšKČ…Ş*Ą^o@ŮÚ3Í%䂳ł=ů…®—CţÉ3} $°A9@o€ëCźo÷é§‹BCß;zô?))1F}÷«ŰÚ›0aŘ„ ŁL µZ}MMi.yđ ěęŐěŠ z~‚Â岹\[cjéá}ĽF9†śŃŁââVGDĚ>yňÖĽy^/®Đ%ÍŠśařú>Wn~Ę+'§ĘxĘ‹Á ňxíŻÉ{xp‡ ŁwĽ@™cňđpüâ‹˝×>A5Ď(Z­ľşZ)‘($’z‰D!‘(rs«SSsęë[B4šŐ¨QĂÉDBć’¶6޵µ®÷‚ĽČŕőˇŃ¬\]G¸şŽhWn~Ę++K"“5R(,w÷†> ĐČ ďuvĘkéŇĺ} +đrĐQ(Ýýâ_YYŮÚµky<ťNwuuŤŚŚlhxÁdĄ  €É|öM⊊Šŕŕ`gggkkkŹ}űöµµµYŞikľJüÁ`x{{߸qâöčW s€O,Ož<™Íf§ĄĄ)•Ęää䢢˘©S§ľ0y0ĆsćĚárą"‘H©Tž?ţîÝ»ááá=¤ńÉÁ555ˇˇˇ‹-2}Ň0 d0ŕmٲeÍš5qqqBˇđŤ7Ţ4iŇŐ«W>ůä“€€€#GŽ „jjj‚řüóĎBOžźÉdľóÎ;'Ožlnn&ojj 1bŹÇŰż?Y——÷—żüĹÚÚÚĹĹ%11±]<---›6mârąÎÎλvíŇéž»ČĎáp6oŢňŮgź!„ \]]cccmll Ě[îl(JuuuŻv,ťĚ6•J•––¶mŰ6ÓB‚ """®\ąxűöm„PFF›ÍNOOGĄ§§O0A,“ó€·ŢzküřńK–,III©ŻŻGyyyť;wŽl*<<Ľľľ^,§ĄĄ%$$\şt !¤T*÷ďßżk×®v!m۶­µµ5//ďÎť;wî܉‹‹3;((H$‘ËR©4;;»¸¸X(š·ÜŮ.xyy9;;÷dWĐm9ŔŔ&—Ë1Ć ]ą›››L&›;wnFF†N§ËČČŘşuë˝{÷ôz}zzz`` qM++«{÷îÍ›7ďŰoż3f̸qăöďßßÚÚŠŇjµß˙ý±cÇ„BáąsçČ :thçÎťT*•FŁ566šnW«Ő&&&ĆĆĆŽ1ÂÝÝ=&&ćěŮłćasą\©TJ.k4šŹ×aËÝŮ^3Č``spp B"‘´+Ż®®ćńxăÇŹ·łł‰D«V­1bDVV–ůź]6›vůňeą\žp˙ţýŐ«W#„¤R©Á`=z4ąÚôéÓ'Mš„ĘĚĚôőőť2eJJJJ»íJĄR­VkggG^ź5kVEE…yŘ2™ŚĎç“Ët:ÝÁÁ\6oą›»Ŕë™ ll6ŰĎĎ/66ÖXrěرňňňŘŘŘ… "„ćÎť{ńâĹ'OžxzzÎ1ăÂ… ŐŐŐÓ¦ýůÝM›6ůűű“ËALž<9&&&##!ÄĺrBUUUä«©©©)))uuuˇˇˇ§Oź‰Dź|ňI»x¸\®••UCCy=Ľąąů·ß~3űÚµk>>>ĆŤ’ ťµüÂ]ŕ5ĚĽ¸¸¸3gÎDDDŞŐj•J5věŘGŹíÝ»!xęÔ©iÓ¦1cĆŚ“'OúűűÓh4‚ ôz˝V«]»vmzzú‘#GŞŞŞÔjuaaáÁçĎźŹb0‹/ޱcG]]]qqń–-[ôz=™¨Tj}}ýáÇőz˝é +±téŇČČČşşşÚÚÚU«V?~Ü4Z…BqęÔ©oľůfßľ}ív¤ł–;Ű…^ďY:™ xăĆŤ{đŕA}}˝źźź­­í™3g¶nÝęâârâÄ „P@@ŔÓ§O}}}B3gÎlnn&Ďó8;;{xxp8ˇPxőęŐ«WŻzzz>|áÂ…BˇđôéÓdă§Oź¦R©cĆŚńóó[ż~ý’%K˘ŁŁýüü|||/^üć›o.]şÔ4žŻľúJ§Ó …ÂqăĆ9:::t!D~Ź‹ >ź˙ď˙űňĺËcĆŚi·#ťµÜŮ.ĐWŕ.ë ˙z•»¬«Őę‚‚‚‰'ötP Üeôs€Á‰Édń´@ďĚŔ29X2Ë@ć`Č,™€eŕ™€ _»sçÎěŮłű: Ŕs s€ţ+,,¬ŻCŘÖ­[yôř 9ËŔu–ĚŔ29X2ËüyŐ»şÎIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_8.png0000644000175000017500000000331612052741161017252 0ustar gudjongudjon‰PNG  IHDR%Z65bKGD˙˙˙ ˝§“IDAThí™ohRßÇϵéŚéE¦¦-¶ĚőG‰E0űł‚ęÁ$[Ĺ&ÁŐz°QĂU¬?´2’¨ m„cP=H•$‚es#F$8jÎŰ2Ťj›Ń,ל˛ó{pů^î×9ëg}ż]ľ»ŻGç~Îý||źóľç\="B@C=ZMvhc( m EˇŤˇ(×###—.]ú#R–2z˝~űöíä’ń­¬ľľ~dd¤ŞŞęß¶¤Á'üÁä`ćŠ,Ľ‰ćĄľľ~a~ÇPÚŠBCQhc( m EÉ߯×ŰŘŘ(‹Y,–D"9yňd,Ëť‚a›ÍĆČ_*Š˙WQí‡ÁßŇ›żR0OcÜn÷–-[PŚFŁfłybb˘ŞŞę‡ŢB!„SSSMMMű÷ďw»Ýů‰ůO’§1'Nśhhhčéé‘ÉdEEE•••Ź? …z˝ľşşúćÍ›€©©)Anܸđűý‚Čĺňd2‰ H8&Jńůü–––ŁGŹ^»v ŹÄb1ŤF#JKKĎź?źJĄČŹ^ĆcxëÖ-‘H´bĹŠÖÖÖd2I™H$š››E"ŃŞU«ÚŰŰÓé4Ń…aD"éëëb±Řh4†Ăa˛Ľ…ąxŠÁ`ŕrąk×®íččŔKA&“éóů\.×¶mŰ–/_ľzőęţţţü&– câńřŕŕ V«%ikk{ôč‘R©|ţü9`xxEQ»Ý°Űí›6mr»ÝřB5kjjŢnnnŽÇăăăă6›Íjµvww/¦$™L ĽyóĆfł=}úôúőëä^­V;33ărą††††††zzzČ˝Á`đőë×^Ż·µµőôéÓ€,/kîôôôččč»wďt:ťĹbÁëL¦ť;w®Ył¦ŁŁŁ¦¦&Ť^Ľx±˝˝=ʉýđďÔŐŐŐŐŐÁśx<AR©TFÜétrąÜ±±1.—›JĄŽ?~áÂEÓétKKËŮłg‰‘ ‚ŃŃQŹ!śťťe0^ŻŹ›Í把 ňýä"ŹÇÇŤFŁL&#zçććLf,Ă{m6›BˇČČ …BB—Ë•ˇj±\ÜNá—/_Řl6†aÂ]»vÝ˝{B8>>žH$R©Ô˝{÷fV˛Îy–#™" ůřńŁT*%Ç'''ĹbńĆŤy<žĂá6ŤFŁŃétÚíöŢŢŢ5ŔĘ•+~ż ‘Hđ¸T*ýüůóbY аaÆ@ @tMOO§R)ŹG–MÎe±XřÂe02·ŤĹrY,Ţ@QT©TšÍćÇ;ťN«Ő xůňeCC‚ ĄĄĄ9Fú“äł•ˇ(ş{÷nÁ@Dşşş|>źÁ`Ř·o`ďŢ˝‹Ĺď÷Ëĺň={öL¦ÉÉÉ;vä¨iµZ·nÝ ‹Ĺ€>ŕqźĎ‡˙:l%ű4??OÜéńxĘĘĘ.‘H´lŮ2â©˙öíŰ«WŻČź ČbbË%§¨Őj‹Ĺb2™jkk9N8njjş}ű¶ĂáĐëő9Fúłü̲ZËĺâóůZ­ðďßżët:&“) #‘„Đb±p8śÚÚZa?‡Ă9pŕ„ð‚‚‚ąą9ň‡Ă˝˝˝çíŰ·xäŕÁ*•*LLLTTT\˝z_FOž< …BJĄ’Ř( †JĄ cccëׯďîî&WV«ŐGŽ …B@@ĄRµµµeÝK‰6!/w.N"‘(**Z·nÝłgĎ „Á`A§Ó‰D b±ŘŻley!|˙ţ˝FىD,K*•ž:uJˇPčt:a<g2™ťťťÂOź>úúú „_ż~•Éd\.÷ŋēÁd2+++ńáV:t¨¸¸¸¤¤äĚ™3řLét:EKJJîßżOLnyyů•+WŠ‹‹ĹbńąsçŇé4y.˘Ń¨FŁáóů|>˙رc333ąŤ!äE"‘ąjµş¬¬l~~żĽ|ů2Š˘ĺĺĺ>”ËĺŐŐŐżbL–˙cůűĎÎÎb¶yóć_ZÂKʬsţ;ŹdŘl6íĘď‚>+Ł(´1…6†˘ĐĆPÚŠBCQ˛ś•y˝Ţ;wîüűR–,^Ż7ăÔ€G2ťťťBŰR§««ëżüi(ýގ(´1…6†˘ĐĆP”˙1}FňÍ;ÂIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_panner.html0000644000175000017500000007104012052741164017725 0ustar gudjongudjon Qwt User's Guide: QwtPanner Class Reference

#include <qwt_panner.h>

Inheritance diagram for QwtPanner:

List of all members.

Signals

void moved (int dx, int dy)
void panned (int dx, int dy)

Public Member Functions

 QwtPanner (QWidget *parent)
virtual ~QwtPanner ()
const QCursor cursor () const
virtual bool eventFilter (QObject *, QEvent *)
void getAbortKey (int &key, int &state) const
void getMouseButton (int &button, int &buttonState) const
bool isEnabled () const
bool isOrientationEnabled (Qt::Orientation) const
Qt::Orientations orientations () const
void setAbortKey (int key, int state=Qt::NoButton)
void setCursor (const QCursor &)
void setEnabled (bool)
void setMouseButton (int button, int buttonState=Qt::NoButton)
void setOrientations (Qt::Orientations)

Protected Member Functions

virtual void paintEvent (QPaintEvent *)
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)

Detailed Description

QwtPanner provides panning of a widget.

QwtPanner grabs the contents of a widget, that can be dragged in all directions. The offset between the start and the end position is emitted by the panned signal.

QwtPanner grabs the content of the widget into a pixmap and moves the pixmap around, without initiating any repaint events for the widget. Areas, that are not part of content are not painted while panning in in process. This makes panning fast enough for widgets, where repaints are too slow for mouse movements.

For widgets, where repaints are very fast it might be better to implement panning manually by mapping mouse events into paint events.


Constructor & Destructor Documentation

QwtPanner::QwtPanner ( QWidget *  parent)

Creates an panner that is enabled for the left mouse button.

Parameters:
parentParent widget to be panned

Member Function Documentation

const QCursor QwtPanner::cursor ( ) const
Returns:
Cursor that is active while panning
See also:
setCursor()
bool QwtPanner::eventFilter ( QObject *  o,
QEvent *  e 
)
virtual

Event filter.

When isEnabled() the mouse events of the observed widget are filtered.

See also:
widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent()
bool QwtPanner::isEnabled ( ) const
Returns:
true when enabled, false otherwise
See also:
setEnabled, eventFilter()
bool QwtPanner::isOrientationEnabled ( Qt::Orientation  o) const

Return true if a orientatio is enabled

See also:
orientations(), setOrientations()
void QwtPanner::moved ( int  dx,
int  dy 
)
signal

Signal emitted, while the widget moved, but panning is not finished.

Parameters:
dxOffset in horizontal direction
dyOffset in vertical direction
void QwtPanner::paintEvent ( QPaintEvent *  pe)
protectedvirtual

Paint event.

Repaint the grabbed pixmap on its current position and fill the empty spaces by the background of the parent widget.

Parameters:
pePaint event
void QwtPanner::panned ( int  dx,
int  dy 
)
signal

Signal emitted, when panning is done

Parameters:
dxOffset in horizontal direction
dyOffset in vertical direction
void QwtPanner::setAbortKey ( int  key,
int  state = Qt::NoButton 
)

Change the abort key The defaults are Qt::Key_Escape and Qt::NoButton

Parameters:
keyKey ( See Qt::Keycode )
stateState
void QwtPanner::setCursor ( const QCursor &  cursor)

Change the cursor, that is active while panning The default is the cursor of the parent widget.

Parameters:
cursorNew cursor
See also:
setCursor()
void QwtPanner::setEnabled ( bool  on)

En/disable the panner.

When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed.

Parameters:
ontrue or false
See also:
isEnabled(), eventFilter()
void QwtPanner::setMouseButton ( int  button,
int  buttonState = Qt::NoButton 
)

Change the mouse button The defaults are Qt::LeftButton and Qt::NoButton

void QwtPanner::setOrientations ( Qt::Orientations  o)

Set the orientations, where panning is enabled The default value is in both directions: Qt::Horizontal | Qt::Vertical

/param o Orientation

void QwtPanner::widgetKeyPressEvent ( QKeyEvent *  ke)
protectedvirtual

Handle a key press event for the observed widget.

Parameters:
keKey event
See also:
eventFilter(), widgetKeyReleaseEvent()
void QwtPanner::widgetKeyReleaseEvent ( QKeyEvent *  )
protectedvirtual

Handle a key release event for the observed widget.

See also:
eventFilter(), widgetKeyReleaseEvent()
void QwtPanner::widgetMouseMoveEvent ( QMouseEvent *  me)
protectedvirtual

Handle a mouse move event for the observed widget.

Parameters:
meMouse event
See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent()
void QwtPanner::widgetMousePressEvent ( QMouseEvent *  me)
protectedvirtual

Handle a mouse press event for the observed widget.

Parameters:
meMouse event
See also:
eventFilter(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(),
void QwtPanner::widgetMouseReleaseEvent ( QMouseEvent *  me)
protectedvirtual

Handle a mouse release event for the observed widget.

Parameters:
meMouse event
See also:
eventFilter(), widgetMousePressEvent(), widgetMouseMoveEvent(),
qwt5-5.2.3/doc/html/class_qwt_magnifier__inherit__graph.md50000644000175000017500000000004012052741140023307 0ustar gudjongudjon88f5ad8519727fcca1a4d8a86bb57c42qwt5-5.2.3/doc/html/class_qwt_double_range__inherit__graph.map0000644000175000017500000000204012052741154024073 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__legend__itemmanager_8h_source.html0000644000175000017500000001636712052741135023352 0ustar gudjongudjon Qwt User's Guide: qwt_legend_itemmanager.h Source File
Qwt User's Guide  5.2.3
qwt_legend_itemmanager.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_LEGEND_ITEM_MANAGER_H
13 #define QWT_LEGEND_ITEM_MANAGER_H
14 
15 #include "qwt_global.h"
16 
17 class QwtLegend;
18 class QWidget;
19 
24 class QWT_EXPORT QwtLegendItemManager
25 {
26 public:
29  {
30  }
31 
34  {
35  }
36 
42  virtual void updateLegend(QwtLegend *legend) const = 0;
43 
50  virtual QWidget *legendItem() const = 0;
51 };
52 
53 #endif
54 
qwt5-5.2.3/doc/html/inherit_graph_18.md50000644000175000017500000000004012052741151017222 0ustar gudjongudjonaf4274ffb5447878fddfbcfc07f2fa8bqwt5-5.2.3/doc/html/inherit_graph_10.map0000644000175000017500000000036012052741162017311 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_event_pattern__inherit__graph.md50000644000175000017500000000004012052741140024224 0ustar gudjongudjon7689aef43e7570710f99f3be8a4be116qwt5-5.2.3/doc/html/class_qwt_picker_machine.html0000644000175000017500000001736312052741164021413 0ustar gudjongudjon Qwt User's Guide: QwtPickerMachine Class Reference
QwtPickerMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerMachine:

List of all members.

Public Types

enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList

Public Member Functions

virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const
virtual CommandList transition (const QwtEventPattern &, const QEvent *)=0

Protected Member Functions

 QwtPickerMachine ()

Detailed Description

A state machine for QwtPicker selections.

QwtPickerMachine accepts key and mouse events and translates them into selection commands.

See also:
QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
qwt5-5.2.3/doc/html/class_qwt_knob__inherit__graph.png0000644000175000017500000001745712052741154022427 0ustar gudjongudjon‰PNG  IHDR»ŢŃ}bKGD˙˙˙ ˝§“äIDATxśíÝy\×Úđ3YŘ„°PŮ­BEܵ^m¬[ ‚˛¸€T䂲iQń˝XÔZ[E­V®U¸*‚,ںܪu­·.(Ę"‹Uv[$Ěy˙Hon FČóý9ĚśóĚ~™I2 ĆzŤAw %¨Y€%¨Á’~ĐŘŘčëë[[[KW5rhëÖ­S¦Lˇ» @Bú}ĽäädwwwWWW ’+ż˙ţűÔ©S“““é.P€Őą ¦¶ß¸ąąŃ]  Ľ^€%¨Y€%¨Y€=ĚRqq±———ľľľ‚‚‚‰‰IHHŹÇëz•üü|%%%ń7Ä)**ÚŘŘ\ąrĄ»Hz{kŁôO )jjjÝ™z’ĄĽĽĽI“&q8śëׯ×ŐŐĄ¦¦Nť:ő­q’PTTÄcŚ_ż~˝rĺJgg缼ĽTŇ]’q1ĆĄĄĄ~řˇŹŹO?Ś äAO˛¸lٲ ‹!C†Lś8ńÜąsşşş[·nuppصkBčőë×AěÜą!T^^N„ĄĄekk+AŐŐŐ’®´µµýýý}||věŘ!náńxžžž:::†††7n …ŇG›Gž}űöqą\==˝5kÖ´¶¶JŮÜÜĽzőj.—;lذőë׋D˘[ˇ©©ą|ůrI†sss'Ož¬¬¬lllś ËÄÄ$..NGGG__?11QĽdccŁ···¶¶¶‰‰ÉńăÇ%őĽuD0¸u;K ׯ_ ’n$"88ř§ź~š;wîµk×B·nÝâp87nÜ@ݸqĂÚÚ://O|XĐŃŃéĐçüůó322Ä߯^˝şˇˇáÉ“'WŻ^=ţüž={ŢTIkkë•+W˛łłŻ^˝úË/ż|óÍ7Ň? âóůąąą7oŢĽyófLLL‡Őy<^||Ľ˝˝˝řáćÍ›çĎź_WW÷˙÷ëׯ7VVVfeeŻYł&,,LܸvíÚÚÚÚ'Ož\ąreďŢ˝ď>"ä°”¤¤¤-ť! ;´gffŞ©©ĺä䨩© …€€€‡#‰üýýĂĂĂ%Y’|#ńčŃ# ŚqKK Á(..·§¦¦Ž3FzyéNBEEEâöÄÄD ÉOŰÚÚŘl6ŹÇ˙ôęŐ«666ťO#9ޤ‡'Ož477 …ÂcÇŽIQUU…1ÎÍÍ•ôĚb±$¦§§w1b×{cěęęęęęúÖĹŔ€ 㢮éęęQZZjff&ÝţęŐ+}}ýŃŁGkhhdddÜşu+11111133óĆŤ±±±]ôYQQa``€*//G™ŰÍĚĚţřăŹ7­Ĺ`0$5Ś5Ş˘˘Bňٞ˛2ˇP¨ˇˇ!]6BHQQ±ĄĄEÜÂçó7nÜčëë+>Ţ˝{wٲeAJÖRPPE †¤g’$%šššv="Ý>Çăp8üńţýű%-ŃŃŃĎź?ßżż““BhÎś9iiiĺĺĺ–––ź|ňIJJĘ«WŻ>účŁ.ú<ţĽ­­-BH__!TRR"nţüą8cřżŕJG‹$IÉ’EEEFFF’qą\&“)9J455ÝżżĂ ***>>>âöęęę•+WţđĂ[·n•,CD‡µ¸\n‡ ß}D0ČI¤Ţĺcś››«­­”źź/"##Ůl¶®®nMM Ć8--MUUuÁ‚ă„„UUUŚq~~>‹Ĺjkk“>g«®®ŽŤŤUUU-((·,\¸ĐŃѱ˘˘˘°°pĚ1Ű·o¬.^ĽXUU5wî\É Áptt¬¬¬ĚÉÉ9räž={¤{vww_±bEUUUEE…ŁŁcpppçsËÂÂB! +++ ‚ČĚ̬©©ńňňb±X<Oćą%ĆxńâĹźţyyyyQQ‘ŤŤŤ’’Ň›F|ëž„sĽÁ¤'YÂ?{öĚÓÓ“Ëĺ*((™™…††ÚŘŘDFFbŚŘlöîÝ»1Ć/_ľDĹĹĹaŚ-,,ÔÔÔnßľ-I2›Íž8q⯿ţ*éąşşzńâĹZZZC‡ýňË/ŰÚÚ0Ć‘‘‘gčС'Ož”dÉÜÜ<**JKKK__Æ "‘Hú7ľ®®ÎÓÓS[[[[[Ű××—ĎçwÎRCC“ÉÜ˙uȧâââ—5‚ë/Y˛˛˛RSSóó󣫚ž"””F…ĺííŤtWŇmK—.Ą»@ŤżÜ·u€şs癋KĚŠÓ·owˇ» żĂëĄôôâŻ"Iw-@~ ř,µµ‰ŇŇ2Bőőü›7áF(€6>Kׯçóů­!&“‘–ö€îr€üđYJM}Ŕd2B"yńb–@ĐFwE@N ě,57·ţňKŽHÔ.~ŘÚ*ş|ů ˝%ą5°ł$$„A¤¦fĐXg;K©©Ň·d‰Čk×ň4–äÖÎRmmóÍ›…ííyc|áB]%y6€łtîÜăÎŤăÓ§á4Đ`g)%ĺ~ç‹6H߹󬢢ž–’€<¨Yzýš÷ŕÁ ’”q“Éřůg‡,úÔ@ÍŇĎ??zÓ…„"Q{j*|h úŰ@˝ßąąžGň°©©UI‰ÍbýůÔ`e5ڦş€ü ׉#„† 9thąŁŁ\ÜT Ľźę9ďČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€,@,eĆŚt—ÓCŠŠF † ÝUô„¦¦f^^ĽýŰoż­]»Vz ‹––ş*ě r5}4Ô$JJJęúóő™3g®]»Vş…$ÉéÓ§‡††ÚŰŰ÷ÝwăWŻ^!„ľůćŚqYY™ôpUUUă„„„±cÇććć˛ŮěĘĘJÉ'÷ŠŠŠ{÷îŐÓÓÓŐŐ liiÁ'''Ź5JIIiôčŃŇźEŢşuËŘŘřűďżWUUÍËËËÉɱµµURR222ŠŹŹ÷ŮĐаbĹ mmm.—»yó檪*ÉęŹ="B H6$++ËĂĂCR‰ô7ăšš777uuu##ٍ¨(I{SS“źźźžžŢСC×­[' óňň¤ ëzľË>IIIfS&yľÎ+Š;!=żťç±ë=éęęęęę*ÝŇ˝,Ő××3ŚgĎžuhOMM1bÄ®]»ćÍ›‡1>uę‡Ă™;w®ř{kkké˘1ĆvvvŔŰŘŘěÝ»W2ˇĎ>ű¬˘˘";;ű>زeK}}=›ÍľrĺJKKËÁÍÍÍĄŃ|||ĘĘĘ0Ć ,řꫯA\\śžžž¸Oooo''§ĘĘĘĽĽŔţţűďÖÖÖąąąfff÷ďß˙đĂŻ_ż.˝ ¶lŮÂb±¸\.—ËŐŇŇBegg‹7ŚÁ`$)^ěáÇšššăË—/úé§ÇŢŢţŢ˝{žŘ$5=zt„ 'N\°`x/^Hw(Öá)VŚ$É{÷îÍś9sÁ‚XV–JJJ‚hoo/ź™™)˘Ă9ł®®n‡Âşö>—ŮôÉ\Qć’ŢdÎc×;ł·YÂŰŮŮKîŢ˝»¸¸xöěŮëÖ­ĂńĹëׯ×ÓÓ#IŇÇÇ'<<\]]˝­­MR4I’¦¦¦qqqe˙eoo/^WüDU\\,î999yěرŕŢ˝{ă–––ŻżţÚÔÔTć XUUÁ¸˙>Ć8;;[ÜŢŇŇÂ`0JKKĹËś?>==]˛–źźßĚ™3Ą7íŢ˝{ÚÚÚXV–Z[[ ĆÓ§OĹK¦ĄĄI†`2™’糦¦¦’’™óý&ýüzI¦OćŠ2‡ô&s»Ţ“d)77W[[;(((??_ DFF˛Ůl]]]ń9kZZšŞŞŞřé!!!AUUŐĹĹcśźźĎb±ÚÚÚ®]»¦˘˘ŇÔÔ$é0..ÎŔŔ@$‰źŘ+++srrFŽągĎž¦¦&UUŐ»wď¶´´DGG[ZZJş’žŚĘĘJ‚ 233kjjĽĽĽX,–xż,Z´ČŐŐµŞŞŞ°°ĐÔÔ4%%E˛úíŰ·™Lćwß}÷ňĺK@źźďäääííŤßđzÉÍÍmöěŮŻ_ż~úôéřńă%íîîî+V¬¨ŞŞŞ¨¨ptt ~źł$Ó'sE™CH×Đy»Ţ“d cüěŮ3OOO.—«  `ffjcc‰1nhh`łŮ»wďĆż|ů!‡1nll´°°PSSűüóĎÝÝÝĄ{«®®f±X/^ĚËË377ŹŠŠŇŇŇŇ××ß°aH$Â=zÔČČHIIiҤIwďŢ•tuűömé_Ů-[¶p8ssó3gÎXZZ:88`Śkjj/^¬©©i``%]IMMÍĹ‹?ţřcUUUeeĺQŁF…‡‡·¶¶â7żŹçîˇahhxâÄ I{]]ť§§§¶¶¶¶¶¶ŻŻ/źĎźł„ĺ`úd®(sé™ę<Ź]ďFj˛Ô™@ ČĚĚěÁŠ ˙łÔL_tÎ5×)))Ť7Ž’®@˙éŁ\Ź5 KP˛5 KP˛5 KPŁă=˝¶mŰGK) ÷fÍšEw ˙C’„P¨¨¨8¨ţL";;»Ă˝Y ڱäÁÎť;ŽŇh#wź/­Ző “)c«E˘v’Ä/f»¸ÄôUÎť;Ďx<ń=€düT($ĂĂçö{Q4“»,ii ńń™Îf3ß´€»»­Ľ«{ <|žĂ‡2w#‹Ĺ<ŮL~Ţr»,!„fĘ<4áď?sŰ6‚ úżŞ…Íf9â3mÚÎq‰ČM›>ŁĄ*zÉc–45‡¬\9Íţ˶3ÄâĹ“7mšOWU›Íüö[7mmUëqb±S§Ž4É”ĆÂč"ŹYBůűŰ1™˙ű B]]9;ű%ŹÇ§±ŞĄĽĽ~É’X,ƇHŽN"QűĆŤóč-Ś.rš%-­!ŢŢÓÄO¨A,[6ĺâĹĐúú'§ď+*ęé®nxţĽęóĎ÷±ŮĚóçCNž\mb˘Ăf3ŮlĆ”)f66ňxPBr›%„źß'}öŮŘŻż^dd¤ť’ ¶/\x ĽâÔ•üü2gçý*ÉÉ×ŐUÓŇ’’0t¨†PH†‡ËďI˛Ü}ľ$-1ńNAAůćÍŽ,ÖźĎ)Ż^ŐąşĆ¶·“))††Zô–÷~zň䵇ÇAccí'ü8eI{uuÓË—µăÇŃX˝ä:K2˝~ÍsuŤ E))FFÚt—ó~yřđĹŇĄ‡­¬†;ć;d"ÝĺĽ_ä÷ďM†ŐHO_Ł˘˘¸pá’’jşËyŹdd<_˛äĐر† _@:,É §§vúôßŐÔ”-‚8ýé·ß =<Mť:"!ÁWYYîrŢG%ŮtuŐ’“˙®®®Ľ`Á÷……ĺt—Cł7 –/?ňÉ'‡{+(tü[l Yz#Ő´´@ W×Řüü˛·Ż0HýűßŮ^^qź}6ö‡–wqí€,uE]]%)ÉřpM7·ŘĽýŢ$‰7l8ť”to˙ţĄŽŽăé.g ‚,őśPŘľzuüŻżćĹĹyĎš5šîrzH$"‚N\¸uřđŢŠ÷d©WÚŰɵkOś;÷řđaďŮł­č.§Ű„Âö5kN\ş”s䏝ťÝĺ lĄŢjo'ú)óСĺs玡»śnhm­Zuě÷ß‹âăż:Őśîr<ČÚŰɰ°Séécc=çĎKw9拉Ečë{ôţýçÇŹŻ’ĎŰQ˛D ’Äaa§RR2öî]Ľpˇ ÝĺĽEss«—W\~~yb˘ÜBť*đ·(Ô`0čheevpp"IbW×ItWôFŤŤ-žžqĎžU&'űŹ=ŚîrČe‚Řľ}!A0BCO‘$vw·Ą»"ęęš/ţˇ˛˛!=}Ízt—3¨@–¨DĶmÎL&zJ z{OŁ»˘ż¨©iňđ8ÔŘŘrć̸- ĺ K#⫯0DDD*Ćřýą§˘˘ŢÍí PŘžš0lXo˙=.č ˛D=‚ ¶lY ¬¬°ysI’+WÎxű:}¬¬ŚçęËf3ĎśY«§§Fw9d©Ż„‡Ďc2˙řÇ’Ä_|ń1Ť•””T»ąĹŞ©)'%ůëč¨ŇXÉŕYęCëÖÍQVfGFžáóŰ‚‚fŃRĂóçU®®±\.çäI?uuZjĄľ%ţsşíŰĎ‘$ ů´źGĎË+óđ8hl¬süř*G©źG—7Ą>`Ď`0¶ný‰$qXŘě~÷É“×îî--‡;¶REîŮç KýÁßߎÁ ľúęlK‹0"˘?ţgŢÇ/–,ůaüxŁô۬öČR?ńóűDYYaăĆŚńćÍź÷éX÷ď?÷ô<booyŕ€'©?A–úŐ˛eS âË/“ůü¶;Q~ßąK—rV­Šwvž°kܲżA–úŰ’%S bÝş$ŚŃŽ‹ ĘâtńböęŐńË–}´m›3ܲ˙A–hŕá1YYYaÍšă$‰wîtĄ$N©©ÁÁ‰>>Ó·lq‚ Ńţ~©'Nź>]WW×ËN=Ş?{öő˘EĂFŹćô˛«––ö}űžY[«Ď™Ł×Ë ijjşşşö˛ůYę¶ .ĚźOÍ8VPÚÖV†SŔdŞ··Só/«Ďź??oŢ>>::úÎť;)))!ˇPřŕÁŁGŹFGGßż˙äÉ“ýąä d©Ođx<„ž^ÇŁÔŐŐŮÚÚfgg···geeą¸¸dgg“$ůřńăÉ“'K/L’dHH©©iVV–ä0…jmm]ľ|ąŠŠĘôéÓBBˇđúőëÇ÷ööľ|ů˛xaqŁ©©éŠ+®^˝Ú·›-ß K}BCC!TYY١˝şşZKKËÄÄDUUµ   ++ËÁÁA]]ýéÓ§Ź=ęś%//ŻČČH++«;vH®śd±X⣖äHU[[‹Ň××?400¨ŞŞ/``` n444ěýő¸  Ą>ˇ˘˘2nܸ´´4IËéÓ§ËĘĘŇŇҦM›†˛µµ˝uëVmm­‘‘ѸqănܸQ]]=zô_ţ-‹Ĺrpp@­[·®¤¤$99YÜŢůJp---„PyyąřaYY™¸c,i|őęUçă$ d©Ż]şt)&&ćĺË—mmmÍÍÍ^^^Oź>]şt)BČÖÖöěŮłVVVAŚ7îĚ™3&L`±XA$)yç@LMM-""âÇĚĎĎ—9›Íž>}zLL ŹÇűăŹ?Ž;6kÖ,„AâĆ’’’#GŽĚ™3§6\nA–úб±ńˇC‡‚‚ćĎźéŇ%ggg.—›ššŠš8q˘P(´¶¶FŤ?^ Ođttt† ćääÔŘŘ(Ý›µµµ‡‡ÇÖ­[ů|ľĚᔕ•˝ĽĽ‚mmmÝÝÝBŁFŤňňň ›1c†‹‹Kźo¶ż_ę¶äädww÷žýÍE[[[iié#(ŻŠ*vvvIIInnnt2đŔq©_)((ĽĎA˝Y€%¨Y€%¨Y€%¨Y€pĽnSUUEŮŮŮŃ]H_o č.¸îˇ'.\¸ĐÜÜLw}bČ!pÓÖž,@ x˝5 KP˛5 KPă˙l´Ó‘NĄIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_25.md50000644000175000017500000000004012052741151017220 0ustar gudjongudjona846edda6343815ff38e7cfd39e37418qwt5-5.2.3/doc/html/bdwn.png0000644000175000017500000000022312052741134015124 0ustar gudjongudjon‰PNG  IHDR5ĺZIDATxíťË € DźP–1ńlžmŔ r±j˛.e č†D[ŘÉľŮĎÔĽµ¦ă´Ţ|陣6€Všë3´Ĺ?Ls'(}¬>+ žKó÷Ążch`‚ ^×ŢŤnIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_c_pointer_data-members.html0000644000175000017500000001310312052741137023041 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCPointerData Member List

This is the complete list of members for QwtCPointerData, including all inherited members.

boundingRect() const QwtCPointerDatavirtual
copy() const QwtCPointerDatavirtual
operator=(const QwtCPointerData &)QwtCPointerData
QwtData::operator=(const QwtData &)QwtDataprotected
QwtCPointerData(const double *x, const double *y, size_t size)QwtCPointerData
QwtData()QwtData
size() const QwtCPointerDatavirtual
x(size_t i) const QwtCPointerDatavirtual
xData() const QwtCPointerData
y(size_t i) const QwtCPointerDatavirtual
yData() const QwtCPointerData
~QwtData()QwtDatavirtual
qwt5-5.2.3/doc/html/class_qwt_rich_text_engine-members.html0000644000175000017500000001163112052741142023404 0ustar gudjongudjon Qwt User's Guide: Member List
QwtRichTextEngine Member List

This is the complete list of members for QwtRichTextEngine, including all inherited members.

draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const QwtRichTextEnginevirtual
heightForWidth(const QFont &font, int flags, const QString &text, int width) const QwtRichTextEnginevirtual
mightRender(const QString &) const QwtRichTextEnginevirtual
QwtRichTextEngine()QwtRichTextEngine
QwtTextEngine()QwtTextEngineprotected
textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const QwtRichTextEnginevirtual
textSize(const QFont &font, int flags, const QString &text) const QwtRichTextEnginevirtual
~QwtTextEngine()QwtTextEnginevirtual
qwt5-5.2.3/doc/html/inherit_graph_10.md50000644000175000017500000000004012052741151017212 0ustar gudjongudjonc5914cc5ddb7682d48e325c3838ab3c3qwt5-5.2.3/doc/html/class_qwt_simple_compass_rose__inherit__graph.map0000644000175000017500000000025512052741160025516 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot__inherit__graph.png0000644000175000017500000000510212052741156022436 0ustar gudjongudjon‰PNG  IHDRcp…Y÷bKGD˙˙˙ ˝§“ ÷IDATxśíťyLŰŔO…B%+-”*AŕşÔSK©J‚!Q„ŕ1š)‹AobDH\"@Ś‘h(b ŇV…«÷Z FĽĐľ`+ĆŤ­`)`ˢĄtŢŤ}ă€x†Giď{ç÷Wçë9ß|óë™Ă L Ă‚Ž.ŕ2 2 2‹+~Ăh4fdd :Şça۶m§NťÂG(řź}wîÜIIIŮłgĎĽć\tuu577® \§¶»sçÎ|•ä¤XG !ć)X)X)X)X)Xfięýű÷iii~~~nnnŮŮŮĂĂĂ3wŃh44Íú‚‚Ĺb%%%őööâŰŔgpwwüř1ˇÍĚfÁlL©ŐęŤ7zyyÉd˛ˇˇ!‰DŇŃŃůKY6ÜÝݱď¨T*ŤväČR5Ř2ôöö>|811Q­V¸\îׯ_I ŽššBdZ¶lŮ’™™‰ŹX,–čččśśś­[·aÖÓÓ¸té†aZ­żG…B7…aŘ‹/X,†ajµÚöÖĐĐĐţýű™L¦żż˙éÓ§­îg2338@Č`0:Äd2Ůlö™3gt:ť-N§›á§ő@zL ™L& ńA …’••UWW·}űöĆĆFëÁxyyÉĺr€\._ż~˝íX,ľŻV«--- %ěčرcáőë×Oź>}đŕÁÍ›7–ßŇŇBfffŞŐj™L&‰ Ĺ ~ iSÖO# €îď‹S(fłYˇPś8q˘©©irrR.—oßľßřŰ·o¶‰fŐŞUFŁńúő넵µµ%%%ľľľ+V¬8wî\uuő U±ŮlÂČť¨®®...öńńárą·oßžZ3)H›ňńńˇP(ťťť„xOOŹźźßÚµk FKK‹BˇŘ»w/‹Ĺjmmťj î †şş:|ľľ>@`` u388¸»»{†Şúűű9>˘Őj-KPPu3***,,ŚěÁâ!mĘËËkóćÍeee¶Hqqń‡ĘĘĘqqqR©´ŻŻoőęŐ111b±¸§§gÓ¦M¤öâççřřńŁuóÇ55uńâŧ°°_őCťSSommť]_gcn®~ŤFăńxs•Í A÷}° S° S° S° S° S°LóW¬k×®ÍNĹ«Wݦ‰â/®ÚŰŰ===ç˝°pqń¤ŃV8¶@dd$áĘs–Wäöă÷ß%NVsó;GBÄąć)łŮr÷n ŕîÝéĆżCq.SrąĆ`H$OLL:şśp.SRéß...€±±o2™ĆŃĺü€™3=|¨4›'..‰ÄąN@'2őřq»íŚ3›-ýőŻŃŃoŽ- Ź™‹[(”˙lšÍ“ íŽ+‡łklÔLNâî˘H$Ä?L9g1őçź*BÄb±Čĺo††FRĎTśĹTmm‹Ĺ2ÍwţřC9˙ĹL‹SęëűňâĹ{lĘ·-0 ‹_:¤¤©8…©úú6—i*±X°––OZ-ě!vĹ)LI$ݬ—QSÁ0P_ď'ŕ4żu™Ö­[ŞÓ¬ŻÍfËׯtş»íÝß~óqP]?âč[t"÷ď·r8YŽ®bśâěűG€LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LÁ‚LACęą4üÂ7vbÁw÷˙jů# †Z­&uěäžó|öěŮš5kţ–Ű-((P©T\.ľ é'b}}}cbbČör6 ČvAó,Č,Č,Č,Č,öú6V«­¬¬|ůňĄŃhd2™ŃŃŃééét:}†.ťťť ťťťéé鶸——ŹÇËĚĚd2™¶63găŘiL}úôéčŃŁ%%%őőő………]]]ÇŹĚ@ĄRżsăĆ 77·˘˘"{” Ź]L•––ĆĆĆ …€€Ť¶rĺĘ‹/2ŚŞŞŞÜÜ\ë*tz˝^ Üľ}088(ŇÓÓ'&&Á—/_đŮLćîÝ»5â˘###.\HHHHNN®¨¨Đëő?Ë0'Ě˝©±±±¶¶¶¤¤$|Bˇ$%%=ţ<""˘µµ R©<<<”J%@©T‹D"ëPZ´hľŻ^Ż‹Ĺ+V{)..‰DĹĹĹÍÍÍŹ=úY†9aîç)ëŠÖľľľ„8‡Ăâóů"‘hrrRĄRíÚµK*•Z,ĄRolÖ×<///ŹĐ@&“Ýşu‹Á`0ŚVVV’]_•soŠÁ`>ţLXŐu``ŔŰŰ;00ĐşJ©JĄ:{öě“'OŢľ}ŰÖÖ–ťťŤoLĄRgž­˙Çş”,€Ăáŕ—Ş¶söY‡€T*µEjkkµZ­T*ŤŠŠđů|…B188ŔăńärůŔŔŔÚµkIíĹŰŰ|_ž Őj­űa—](644”——wuu™L¦ŃŃŃ´´´·oßîŰ·ŔçóďßżżnÝ: …ÂăńîÝ»ęęęJˇP,‹Ůl†Ů•JŤŽŽ.//îî¬ŚŤŤ%•,v1µlٲ«WŻŤFˇPßĐĐČfł% ,,lbbbýúő€ 6ŚŹŹ[')‹µtéŇ„„ŁŃł—ÜÜÜ… ¦ĄĄeeeńůü””˛HńĂ{ú%ÉÉÉ:ť.??{2™LťťťË—/źEß9G ÔÔÔ$''Ăw™ż»777'Ń4;Đ},Č,Č,Č,Č,Č,¤ďű”JĺÉ“'íQŠ“CÎÔńăÇíTÇ<KŞ ąkô˙gĐ< 2 2 2ËżúŰš{běs IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_machine__inherit__graph.map0000644000175000017500000000147312052741156024421 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_log10_scale_engine.html0000644000175000017500000004731712052741164022072 0ustar gudjongudjon Qwt User's Guide: QwtLog10ScaleEngine Class Reference
QwtLog10ScaleEngine Class Reference

#include <qwt_scale_engine.h>

Inheritance diagram for QwtLog10ScaleEngine:

List of all members.

Public Member Functions

virtual void autoScale (int maxSteps, double &x1, double &x2, double &stepSize) const
virtual QwtScaleDiv divideScale (double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0.0) const
virtual QwtScaleTransformationtransformation () const
- Public Member Functions inherited from QwtScaleEngine
 QwtScaleEngine ()
virtual ~QwtScaleEngine ()
int attributes () const
double lowerMargin () const
double reference () const
void setAttribute (Attribute, bool on=true)
void setAttributes (int)
void setMargins (double lower, double upper)
void setReference (double reference)
bool testAttribute (Attribute) const
double upperMargin () const

Protected Member Functions

QwtDoubleInterval log10 (const QwtDoubleInterval &) const
QwtDoubleInterval pow10 (const QwtDoubleInterval &) const
- Protected Member Functions inherited from QwtScaleEngine
QwtDoubleInterval buildInterval (double v) const
bool contains (const QwtDoubleInterval &, double val) const
double divideInterval (double interval, int numSteps) const
QwtValueList strip (const QwtValueList &, const QwtDoubleInterval &) const

Additional Inherited Members

- Public Types inherited from QwtScaleEngine
enum  Attribute {
  NoAttribute = 0,
  IncludeReference = 1,
  Symmetric = 2,
  Floating = 4,
  Inverted = 8
}

Detailed Description

A scale engine for logarithmic (base 10) scales.

The step size is measured in decades and the major step size will be adjusted to fit the pattern $\left\{ 1,2,3,5\right\} \cdot 10^{n}$, where n is a natural number including zero.

Warning:
the step size as well as the margins are measured in decades.

Member Function Documentation

void QwtLog10ScaleEngine::autoScale ( int  maxNumSteps,
double &  x1,
double &  x2,
double &  stepSize 
) const
virtual

Align and divide an interval

Parameters:
maxNumStepsMax. number of steps
x1First limit of the interval (In/Out)
x2Second limit of the interval (In/Out)
stepSizeStep size (Out)
See also:
QwtScaleEngine::setAttribute()

Implements QwtScaleEngine.

QwtScaleDiv QwtLog10ScaleEngine::divideScale ( double  x1,
double  x2,
int  maxMajSteps,
int  maxMinSteps,
double  stepSize = 0.0 
) const
virtual

Calculate a scale division.

Parameters:
x1First interval limit
x2Second interval limit
maxMajStepsMaximum for the number of major steps
maxMinStepsMaximum number of minor steps
stepSizeStep size. If stepSize == 0, the scaleEngine calculates one.
See also:
QwtScaleEngine::stepSize(), QwtLog10ScaleEngine::subDivide()

Implements QwtScaleEngine.

QwtDoubleInterval QwtLog10ScaleEngine::log10 ( const QwtDoubleInterval interval) const
protected

Return the interval [log10(interval.minValue(), log10(interval.maxValue]

QwtDoubleInterval QwtLog10ScaleEngine::pow10 ( const QwtDoubleInterval interval) const
protected

Return the interval [pow10(interval.minValue(), pow10(interval.maxValue]

QwtScaleTransformation * QwtLog10ScaleEngine::transformation ( ) const
virtual

Return a transformation, for logarithmic (base 10) scales

Implements QwtScaleEngine.

qwt5-5.2.3/doc/html/class_qwt_plot_panner__inherit__graph.md50000644000175000017500000000004012052741141023670 0ustar gudjongudjon8075d08cec02a876d33db4c4b57fa383qwt5-5.2.3/doc/html/deprecated.html0000644000175000017500000000512612052741136016463 0ustar gudjongudjon Qwt User's Guide: Deprecated List
Qwt User's Guide  5.2.3
Deprecated List
Member QwtPlot::clear ()
Use QwtPlotDeict::detachItems instead
Class QwtPlotPrintFilter
In Qwt 5.0 the design of QwtPlot allows/recommends writing individual QwtPlotItems, that are not known to QwtPlotPrintFilter. So this concept is outdated and QwtPlotPrintFilter will be removed/replaced in Qwt 6.x.
qwt5-5.2.3/doc/html/class_qwt_linear_color_map__inherit__graph.md50000644000175000017500000000004012052741140024653 0ustar gudjongudjon7e25508d69d9c0660762e077ac09fa1cqwt5-5.2.3/doc/html/class_qwt_spline-members.html0000644000175000017500000001631512052741143021365 0ustar gudjongudjon Qwt User's Guide: Member List
QwtSpline Member List

This is the complete list of members for QwtSpline, including all inherited members.

buildNaturalSpline(const QPolygonF &)QwtSplineprotected
buildPeriodicSpline(const QPolygonF &)QwtSplineprotected
coefficientsA() const QwtSpline
coefficientsB() const QwtSpline
coefficientsC() const QwtSpline
d_data (defined in QwtSpline)QwtSplineprotected
isValid() const QwtSpline
Natural enum value (defined in QwtSpline)QwtSpline
operator=(const QwtSpline &)QwtSpline
Periodic enum value (defined in QwtSpline)QwtSpline
points() const QwtSpline
QwtSpline()QwtSpline
QwtSpline(const QwtSpline &)QwtSpline
reset()QwtSpline
setPoints(const QPolygonF &points)QwtSpline
setSplineType(SplineType)QwtSpline
splineType() const QwtSpline
SplineType enum nameQwtSpline
value(double x) const QwtSpline
~QwtSpline()QwtSpline
qwt5-5.2.3/doc/html/qwt__painter_8h_source.html0000644000175000017500000006245412052741135021044 0ustar gudjongudjon Qwt User's Guide: qwt_painter.h Source File
Qwt User's Guide  5.2.3
qwt_painter.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PAINTER_H
11 #define QWT_PAINTER_H
12 
13 #include <qpoint.h>
14 #include <qrect.h>
15 #include <qpen.h>
16 #include "qwt_global.h"
17 #include "qwt_layout_metrics.h"
18 #include "qwt_polygon.h"
19 
20 class QPainter;
21 class QBrush;
22 class QColor;
23 class QWidget;
24 class QwtScaleMap;
25 class QwtColorMap;
26 class QwtDoubleInterval;
27 
28 #if QT_VERSION < 0x040000
29 class QColorGroup;
30 class QSimpleRichText;
31 #else
32 class QPalette;
33 class QTextDocument;
34 #endif
35 
36 #if defined(Q_WS_X11)
37 // Warning: QCOORD_MIN, QCOORD_MAX are wrong on X11.
38 #define QWT_COORD_MAX 16384
39 #define QWT_COORD_MIN (-QWT_COORD_MAX - 1)
40 #else
41 #define QWT_COORD_MAX 2147483647
42 #define QWT_COORD_MIN -QWT_COORD_MAX - 1
43 #endif
44 
63 class QWT_EXPORT QwtPainter
64 {
65 public:
66  static void setMetricsMap(const QPaintDevice *layout,
67  const QPaintDevice *device);
68  static void setMetricsMap(const QwtMetricsMap &);
69  static void resetMetricsMap();
70  static const QwtMetricsMap &metricsMap();
71 
72  static void setDeviceClipping(bool);
73  static bool deviceClipping();
74  static const QRect &deviceClipRect();
75 
76  static void setClipRect(QPainter *, const QRect &);
77 
78  static void drawText(QPainter *, int x, int y,
79  const QString &);
80  static void drawText(QPainter *, const QPoint &,
81  const QString &);
82  static void drawText(QPainter *, int x, int y, int w, int h,
83  int flags, const QString &);
84  static void drawText(QPainter *, const QRect &,
85  int flags, const QString &);
86 
87 #ifndef QT_NO_RICHTEXT
88 #if QT_VERSION < 0x040000
89  static void drawSimpleRichText(QPainter *, const QRect &,
90  int flags, QSimpleRichText &);
91 #else
92  static void drawSimpleRichText(QPainter *, const QRect &,
93  int flags, QTextDocument &);
94 #endif
95 #endif
96 
97  static void drawRect(QPainter *, int x, int y, int w, int h);
98  static void drawRect(QPainter *, const QRect &rect);
99  static void fillRect(QPainter *, const QRect &, const QBrush &);
100 
101  static void drawEllipse(QPainter *, const QRect &);
102  static void drawPie(QPainter *, const QRect & r, int a, int alen);
103 
104  static void drawLine(QPainter *, int x1, int y1, int x2, int y2);
105  static void drawLine(QPainter *, const QPoint &p1, const QPoint &p2);
106  static void drawPolygon(QPainter *, const QwtPolygon &pa);
107  static void drawPolyline(QPainter *, const QwtPolygon &pa);
108  static void drawPoint(QPainter *, int x, int y);
109 
110 #if QT_VERSION < 0x040000
111  static void drawRoundFrame(QPainter *, const QRect &,
112  int width, const QColorGroup &cg, bool sunken);
113 #else
114  static void drawRoundFrame(QPainter *, const QRect &,
115  int width, const QPalette &, bool sunken);
116 #endif
117  static void drawFocusRect(QPainter *, QWidget *);
118  static void drawFocusRect(QPainter *, QWidget *, const QRect &);
119 
120  static void drawColorBar(QPainter *painter,
121  const QwtColorMap &, const QwtDoubleInterval &,
122  const QwtScaleMap &, Qt::Orientation, const QRect &);
123 
124 #if QT_VERSION < 0x040000
125  static void setSVGMode(bool on);
126  static bool isSVGMode();
127 #endif
128 
129  static QPen scaledPen(const QPen &);
130 
131 private:
132  static void drawColoredArc(QPainter *, const QRect &,
133  int peak, int arc, int intervall, const QColor &c1, const QColor &c2);
134 
135  static bool d_deviceClipping;
136  static QwtMetricsMap d_metricsMap;
137 #if QT_VERSION < 0x040000
138  static bool d_SVGMode;
139 #endif
140 };
141 
143 inline void QwtPainter::drawLine(QPainter *painter,
144  const QPoint &p1, const QPoint &p2)
145 {
146  drawLine(painter, p1.x(), p1.y(), p2.x(), p2.y());
147 }
148 
155 {
156  return d_deviceClipping;
157 }
158 
159 #endif
qwt5-5.2.3/doc/html/qwt__interval__data_8h_source.html0000644000175000017500000003074712052741135022356 0ustar gudjongudjon Qwt User's Guide: qwt_interval_data.h Source File
Qwt User's Guide  5.2.3
qwt_interval_data.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_INTERVAL_DATA_H
11 #define QWT_INTERVAL_DATA_H 1
12 
13 #include "qwt_global.h"
14 #include "qwt_math.h"
15 #include "qwt_array.h"
16 #include "qwt_double_interval.h"
17 #include "qwt_double_rect.h"
18 
19 #if defined(_MSC_VER) && (_MSC_VER > 1310)
20 #include <string.h>
21 #endif
22 
23 #if defined(QWT_TEMPLATEDLL)
24 // MOC_SKIP_BEGIN
25 template class QWT_EXPORT QwtArray<QwtDoubleInterval>;
26 template class QWT_EXPORT QwtArray<double>;
27 // MOC_SKIP_END
28 #endif
29 
37 class QWT_EXPORT QwtIntervalData
38 {
39 public:
41  QwtIntervalData(const QwtArray<QwtDoubleInterval> &,
42  const QwtArray<double> &);
43 
44  ~QwtIntervalData();
45 
46  void setData(const QwtArray<QwtDoubleInterval> &,
47  const QwtArray<double> &);
48 
49  size_t size() const;
50  const QwtDoubleInterval &interval(size_t i) const;
51  double value(size_t i) const;
52 
53  QwtDoubleRect boundingRect() const;
54 
55 private:
56  QwtArray<QwtDoubleInterval> d_intervals;
57  QwtArray<double> d_values;
58 };
59 
61 inline size_t QwtIntervalData::size() const
62 {
63  return qwtMin(d_intervals.size(), d_values.size());
64 }
65 
73 inline const QwtDoubleInterval &QwtIntervalData::interval(size_t i) const
74 {
75  return d_intervals[int(i)];
76 }
77 
85 inline double QwtIntervalData::value(size_t i) const
86 {
87  return d_values[int(i)];
88 }
89 
90 #endif
qwt5-5.2.3/doc/html/qwt__dial_8h_source.html0000644000175000017500000007441412052741134020311 0ustar gudjongudjon Qwt User's Guide: qwt_dial.h Source File
Qwt User's Guide  5.2.3
qwt_dial.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_DIAL_H
13 #define QWT_DIAL_H 1
14 
15 #include <qframe.h>
16 #include <qpalette.h>
17 #include "qwt_global.h"
18 #include "qwt_abstract_slider.h"
19 #include "qwt_round_scale_draw.h"
20 
21 class QwtDialNeedle;
22 class QwtDial;
23 
29 class QWT_EXPORT QwtDialScaleDraw: public QwtRoundScaleDraw
30 {
31 public:
32  explicit QwtDialScaleDraw(QwtDial *);
33  virtual QwtText label(double value) const;
34 
35  void setPenWidth(uint);
36  uint penWidth() const;
37 
38 private:
39  QwtDial *d_parent;
40  int d_penWidth;
41 };
42 
67 class QWT_EXPORT QwtDial: public QwtAbstractSlider
68 {
69  Q_OBJECT
70 
71  Q_ENUMS(Shadow)
72  Q_ENUMS(Mode)
73  Q_ENUMS(Direction)
74 
75  Q_PROPERTY(bool visibleBackground READ hasVisibleBackground WRITE showBackground)
76  Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth)
77  Q_PROPERTY(Shadow frameShadow READ frameShadow WRITE setFrameShadow)
78  Q_PROPERTY(Mode mode READ mode WRITE setMode)
79  Q_PROPERTY(double origin READ origin WRITE setOrigin)
80  Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping)
81  Q_PROPERTY(Direction direction READ direction WRITE setDirection)
82 
83  friend class QwtDialScaleDraw;
84 public:
85 
94  enum Shadow
95  {
96  Plain = QFrame::Plain,
97  Raised = QFrame::Raised,
98  Sunken = QFrame::Sunken
99  };
100 
103  {
104  ScaleBackbone = 1,
105  ScaleTicks = 2,
106  ScaleLabel = 4
107  };
108 
114  enum Mode
115  {
116  RotateNeedle,
117  RotateScale
118  };
119 
124  {
125  Clockwise,
126  CounterClockwise
127  };
128 
129  explicit QwtDial( QWidget *parent = NULL);
130 #if QT_VERSION < 0x040000
131  explicit QwtDial( QWidget *parent, const char *name);
132 #endif
133 
134  virtual ~QwtDial();
135 
136  void setFrameShadow(Shadow);
137  Shadow frameShadow() const;
138 
139  bool hasVisibleBackground() const;
140  void showBackground(bool);
141 
142  void setLineWidth(int);
143  int lineWidth() const;
144 
145  void setMode(Mode);
146  Mode mode() const;
147 
148  virtual void setWrapping(bool);
149  bool wrapping() const;
150 
151  virtual void setScale(int maxMajIntv, int maxMinIntv, double step = 0.0);
152 
153  void setScaleArc(double min, double max);
154  void setScaleOptions(int);
155  void setScaleTicks(int minLen, int medLen, int majLen, int penWidth = 1);
156 
157  double minScaleArc() const;
158  double maxScaleArc() const;
159 
160  virtual void setOrigin(double);
161  double origin() const;
162 
163  void setDirection(Direction);
164  Direction direction() const;
165 
166  virtual void setNeedle(QwtDialNeedle *);
167  const QwtDialNeedle *needle() const;
168  QwtDialNeedle *needle();
169 
170  QRect boundingRect() const;
171  QRect contentsRect() const;
172  virtual QRect scaleContentsRect() const;
173 
174  virtual QSize sizeHint() const;
175  virtual QSize minimumSizeHint() const;
176 
177  virtual void setScaleDraw(QwtDialScaleDraw *);
178 
179  QwtDialScaleDraw *scaleDraw();
180  const QwtDialScaleDraw *scaleDraw() const;
181 
182 protected:
183  virtual void paintEvent(QPaintEvent *);
184  virtual void resizeEvent(QResizeEvent *);
185  virtual void keyPressEvent(QKeyEvent *);
186 
187  virtual void updateMask();
188 
189  virtual void drawFrame(QPainter *p);
190  virtual void drawContents(QPainter *) const;
191  virtual void drawFocusIndicator(QPainter *) const;
192 
193  virtual void drawScale(QPainter *, const QPoint &center,
194  int radius, double origin, double arcMin, double arcMax) const;
195 
205  virtual void drawScaleContents(QPainter *painter, const QPoint &center,
206  int radius) const;
207 
208  virtual void drawNeedle(QPainter *, const QPoint &,
209  int radius, double direction, QPalette::ColorGroup) const;
210 
211  virtual QwtText scaleLabel(double) const;
212  void updateScale();
213 
214  virtual void rangeChange();
215  virtual void valueChange();
216 
217  virtual double getValue(const QPoint &);
218  virtual void getScrollMode(const QPoint &,
219  int &scrollMode, int &direction);
220 
221 private:
222  void initDial();
223 
224  class PrivateData;
225  PrivateData *d_data;
226 };
227 
228 #endif
qwt5-5.2.3/doc/html/ftv2vertline.png0000644000175000017500000000012612052741134016626 0ustar gudjongudjon‰PNG  IHDRÉŞ|IDATxíݱðřScOŹx@ –¨y}IEND®B`‚qwt5-5.2.3/doc/html/qwt__plot__panner_8h_source.html0000644000175000017500000002133712052741135022055 0ustar gudjongudjon Qwt User's Guide: qwt_plot_panner.h Source File
Qwt User's Guide  5.2.3
qwt_plot_panner.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_PANNER_H
11 #define QWT_PLOT_PANNER_H 1
12 
13 #include "qwt_global.h"
14 #include "qwt_panner.h"
15 
16 class QwtPlotCanvas;
17 class QwtPlot;
18 
32 class QWT_EXPORT QwtPlotPanner: public QwtPanner
33 {
34  Q_OBJECT
35 
36 public:
37  explicit QwtPlotPanner(QwtPlotCanvas *);
38  virtual ~QwtPlotPanner();
39 
40  QwtPlotCanvas *canvas();
41  const QwtPlotCanvas *canvas() const;
42 
43  QwtPlot *plot();
44  const QwtPlot *plot() const;
45 
46  void setAxisEnabled(int axis, bool on);
47  bool isAxisEnabled(int axis) const;
48 
49 protected slots:
50  virtual void moveCanvas(int dx, int dy);
51 
52 private:
53  class PrivateData;
54  PrivateData *d_data;
55 };
56 
57 #endif
qwt5-5.2.3/doc/html/class_qwt_dial_needle-members.html0000644000175000017500000001016212052741137022315 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDialNeedle Member List

This is the complete list of members for QwtDialNeedle, including all inherited members.

draw(QPainter *painter, const QPoint &center, int length, double direction, QPalette::ColorGroup cg=QPalette::Active) const =0QwtDialNeedlepure virtual
drawKnob(QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)QwtDialNeedleprotectedstatic
palette() const QwtDialNeedle
QwtDialNeedle()QwtDialNeedle
setPalette(const QPalette &)QwtDialNeedlevirtual
~QwtDialNeedle()QwtDialNeedlevirtual
qwt5-5.2.3/doc/html/functions_0x64.html0000644000175000017500000004507612052741151017161 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- d -

qwt5-5.2.3/doc/html/qwt__abstract__scale_8h_source.html0000644000175000017500000003020512052741134022477 0ustar gudjongudjon Qwt User's Guide: qwt_abstract_scale.h Source File
Qwt User's Guide  5.2.3
qwt_abstract_scale.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ABSTRACT_SCALE_H
11 #define QWT_ABSTRACT_SCALE_H
12 
13 #include "qwt_global.h"
14 
15 class QwtScaleEngine;
17 class QwtScaleDiv;
18 class QwtScaleMap;
19 class QwtDoubleInterval;
20 
29 class QWT_EXPORT QwtAbstractScale
30 {
31 public:
33  virtual ~QwtAbstractScale();
34 
35  void setScale(double vmin, double vmax, double step = 0.0);
36  void setScale(const QwtDoubleInterval &, double step = 0.0);
37  void setScale(const QwtScaleDiv &s);
38 
39  void setAutoScale();
40  bool autoScale() const;
41 
42  void setScaleMaxMajor( int ticks);
43  int scaleMaxMinor() const;
44 
45  void setScaleMaxMinor( int ticks);
46  int scaleMaxMajor() const;
47 
48  void setScaleEngine(QwtScaleEngine *);
49  const QwtScaleEngine *scaleEngine() const;
50  QwtScaleEngine *scaleEngine();
51 
52  const QwtScaleMap &scaleMap() const;
53 
54 protected:
55  void rescale(double vmin, double vmax, double step = 0.0);
56 
57  void setAbstractScaleDraw(QwtAbstractScaleDraw *);
58  const QwtAbstractScaleDraw *abstractScaleDraw() const;
59  QwtAbstractScaleDraw *abstractScaleDraw();
60 
61  virtual void scaleChange();
62 
63 private:
64  void updateScaleDraw();
65 
66  class PrivateData;
67  PrivateData *d_data;
68 };
69 
70 #endif
qwt5-5.2.3/doc/html/dir_24fcbade20721d6ed73b69cf81173a70_dep.map0000644000175000017500000000043612052741161022310 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_print_filter-members.html0000644000175000017500000002666312052741142023640 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotPrintFilter Member List

This is the complete list of members for QwtPlotPrintFilter, including all inherited members.

apply(QwtPlot *) const QwtPlotPrintFiltervirtual
apply(QwtPlotItem *) const (defined in QwtPlotPrintFilter)QwtPlotPrintFiltervirtual
AxisScale enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
AxisTitle enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
CanvasBackground enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
color(const QColor &, Item item) const QwtPlotPrintFiltervirtual
Curve enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
CurveSymbol enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
font(const QFont &, Item item) const QwtPlotPrintFiltervirtual
Item enum nameQwtPlotPrintFilter
Legend enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
MajorGrid enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
Marker enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
MarkerSymbol enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
MinorGrid enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
Options enum nameQwtPlotPrintFilter
options() const QwtPlotPrintFilter
PrintAll enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintBackground enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintFrameWithScales enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintGrid enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintLegend enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintMargin enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
PrintTitle enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
QwtPlotPrintFilter()QwtPlotPrintFilterexplicit
reset(QwtPlot *) const QwtPlotPrintFiltervirtual
reset(QwtPlotItem *) const (defined in QwtPlotPrintFilter)QwtPlotPrintFiltervirtual
setOptions(int options)QwtPlotPrintFilter
Title enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
WidgetBackground enum value (defined in QwtPlotPrintFilter)QwtPlotPrintFilter
~QwtPlotPrintFilter()QwtPlotPrintFiltervirtual
qwt5-5.2.3/doc/html/graph_legend.png0000644000175000017500000004250612052741161016623 0ustar gudjongudjon‰PNG  IHDRśŰOëÖbKGD˙˙˙ ˝§“ IDATxśíÝg\SWđ›Í{ĘP®ş-2d‰«.·ÖÖŤ"*j[wu˘u UE·2µ.ٲ0Â̾y)d„Ü<˙ÂÍĎ=99Oî:‡˘(€ŢŹuHꀌ€¤ČHꀌ Šž|đ -ŮH°ćęŠlŮ‚uĐŚ–·F»]®®®[ä˛Iljľű‡CĆŚAŚŤ%FŠŠ—/xĐ;áp¸1cĆËOŁÝ®˘˘˘—/_Ęçł]m'őĐPÄËKâń`$, ńö†¤čĄp8\hh¨—ü4Úí óöö–Ϥ×ÔIÔIÔŃő¤ŽEŚ‘µ%33SAAˇ'f&F»SM.VID¶u=©Ł(Š˘hFF…BA˙%ĆČ‘´5ÚŇŹl˙é÷ĚĚL33łŔŔ@UUŐáŻ6á/8Á AAAÚÚÚúúú!!!‚ęęę–.]*¸}űvÁÄ´´´ŃŁG+**ššš^ąr…N§[[[łX,G§ÓV®\©§§gddäďďĎĺr©ŞŞňööVWW755˝yó¦ŘwdLë¶TĐP9rDKKKWW÷úőëŰ·oWWW×ŐŐ˝rĺ ňoK~ôčQ]]]}}ýÍ›7 Zŕv°X¬ÎÖ…Eä\Ź\S/--MJJĘÎζ˛˛9CyyyrrrnnîÚµk7nÜ(¸nÝşŞŞŞŚŚŚŘŘŘŕŕŕ;wî ˛m۶ɓ'WWWoßľÝßß_[[[řłN[[Ű××·±±1--ŤFŁŃh´S§N!˛bĹŠĘĘĘôôô¨¨¨ĐĐĐžŘA%"ŰŇ’’’ňňň‚‚__ß… ˛Ůěââb__ß­[· –*..~ţüyjjjtttDDÄńăÇE®śË冇‡;;;;v¬ł™››oÝş5??ż;'gP‘ ýÖµ8s"‚ Hyyy‹w…Ż3TTT (š––&Čfł‰Dâ§Oź3'$$Ľ}űEŃôôô††‡sůňeáâÂEH$RMMŤ`‘gĎžŤ1˘©© ŹÇüřQ01<<ĽEx˘…†˘mH=AB»Úh‹lK322đx<“ÉDQ4--­ůëć-yNNŽ`©AµXyIII@@€™™™——Wtt4źĎďH<Í•••íßżż_ż~“&MzđŕŹÇëČ> ç:2§ěic@—î!“É:::íĎ ­­Ť ˙Ď©‚ŇŇR>źß·o_Áżvvv‚Ż^˝Z°`‡kݧqii)‡ĂQWWNŃŃŃ)++CQ´˙ţ‚)ćććâŘ!Y"ŰRAH$…BAŹÇ7-ś ŹÇ÷ë×OđÚĘĘŞ¸¸¸ůjgÍš•––¶téŇׯ_·źÚˇ««űÓO?mٲĺńăÇgĎžőőő ś8qb×Ö&zäô{ó;Ńo|hţy·ľĹQOOŻů<Ź=Š Óé?üđĂąsçŢľ}»gĎžÖ‹áŻËúúú7oŢŕp¸ÜÜ\ÁoŢĽăÇŹ“ÉdOOOźŇŇŇśśśÖ?4'˛-íŕ˛ë×ŻŻ¨¨HOOß±cÇüů󛿜””¤ŁŁăáááááÁăń:QQ@@€……ŵk×6mÚ”śśěââŇٕȕžMęzzzŢŢŢC† Y¸paű3ź;wŽH$ZZZ:::~˙ý÷łfÍŇŃŃ ptt5jÔĚ™3-,,<==ŤŚŚú÷ﯥĄUUUuöěY.—keeeccŁ««»˙~AÎś9Ł®®nccăěěĽiÓ¦ÝA"ŰŇŻ˘P(nnn#FŚ?~Ľ‡‡‡żż‹´´´üýýł˛˛|}}/^ĽxđŕÁÎfooO$_ĽxćääÔŮĹĺ ˝Š  ˝ čÝ$?ôjffćСC™LfÇáńxˇS[éÂ" ˝ ô´.¤ç.,"ç ©2’:€Nł˛˛ęÔąw ÔIÔIm÷ýÔÔH0L%&btKLLLŤü4ÚíJ”ă&˝Ť¤>f rţĽd#AŮ®ćCݵq’ß42v,q3fĚy,íN,BPYë8d¬Ľ6émô(‡:˝ţ›ov îÇݚšĘX‡ 3ĺČmC‡ 3ż m¬Ł‘SRtMýńădÁ!ňčQ2Ö±č¤â;`΢ŰG"Ǥ(©‡†ľFQ”ĎGCC_c €NĘ˝Ś |ĺ#ą—±E~IKR/*Şz˙ľĎGQ”˙î]AQQÖč°†|„ţ AQAúK¤!ë€ä”´$őű÷“DA08"˙~Ć踂0˙ďť×x"RxÓhä—´$ő°°7\.OđšË凅˝Á6ťŚđ9˙ĽćsÜ`LŁ‘_R‘Ô?~ü’•őEx>Š˘YY_>~ü‚iP:†‘†0Ň[MIĂ(ą&IýîÝ÷$ŇÍ%“ ÷î˝Ç*ťPpÁ“˙3OF B1ŠF®aźÔQ˝yó ‡Ăk>‘Íć……˝‘žgč´Er>ű?Óřl$÷2‚@.iŘ'ő¤¤˘’’ęÖÓKJŞ?|(’|<:ˇň Ň(Ş­n,B*ßJ<y‡}RŹx×âÜ»™Lx'ůxtBAHËsďx2R"ńhäĆIťÇ㇇·<÷.ŔfóÂĂßňx|ÉG CP’{µĺąw>ɻР"šwĐs0NęYY_Ş«I$<™LlńG"᫪˛˛Ę°Ť@›i»Á‘<ĄĺŽ„°č-ďŠ= ű]®^}Q[Ű$xťŤ ȸq‚©TĄ ät¤črÎ!ě‡|-‹AŃsůç_˛Ň96QÉ+ě“zs+V#rîÜb¬Đy ^‚ ă°ŽC~aŁÄ’: # ©2’: # ©2’: #_źč۱Ž@ŢAR &ę°Ž@ŢÁéw@F@Rd$u@F@R 9™™™ ]{|$u’ceeĹd2±ŽBfARĐłX,–đµđX<33ÓĚĚ,((H[[[__?$$„N§[[[łX,G§ÓE.ÚI€¤îAR÷˙ărąáááÎÎÎÇŽ9{yyyrrrnnîÚµk7nܨ­­ť‘‘AˇPPŐÖÖÎfnnľuëÖüüüž_@R &5)HM ‚ ź?Ţąs§……ĹÍ›7ůĺ—-[¶ś˝©©) @MMmĆŚUUUm­őÝ»wT*ŐĹĹeňäÉ>äóů=ďI€8Íš5ËŮŮYIIéőëסˇˇ...8Näśd2YpDŽÇ·—Śtuuúé§ěěěŐ«Wź={ÖŇŇňńăÇ=zďI€8©¨¨444ĐéôÚÚÚöçl+Ů‹„˘(ŹÇCQTII‰L&w/F™I€8'%%éččxxxxxxDDDđxĽ.‹Ăáx<‡Ăi>±¨¨( ŔÂÂâÚµk›6mJNNvqqéŔe$ub¦ĄĄĺďďź••ĺëë{ńâĹvpA##Łţýűkii5żÄnooO$_ĽxćääÔ#Ë Š˘XÇđ+V#rîÜb¬Đy ^‚ ăÂZLćńxˇËkíćârŽÔô¬n¦dČčCŻOkÔ ڧŽ58ýČHꀌ€¤ČHꀌ€¤ČHꀌ€¤@Lţ;ž:|xőęUá/nmmm‘»Ů˘<ăă㿺Ȋ+*++ÓÓÓŁ˘˘BCC[G(óźB;`Š··÷íŰ·ŻĂĂĂíěěúöíۢ´µµżZÔB2_¤­•——'''çćć®]»văĆŤ‚‰mŐ˝5˙رcČ×ÚŠćJJJĘËË |}}.\Čfł‹‹‹}}}·nÝ*AdI¶°#čWż;ŇLä}µčŠ‹‹ź?žššqüřq‘+çrąáááÎÎ΂ϮµöK[8›ąąůÖ­[óóóĹĽóŃńo±x*ÚĚěŮłgĎžŤ¶-##Łů˛ŞŞŞS§N-**jqbGřZ0NNŽ`zHH••Uów/Řl6‘Hüôé“`¶„„„·oß¶Ř–‚‚Â… x<Š˘ééé çňĺË‚5TUUQ(”+W®466ňů|&“ÉfłI$RMMŤ`ťĎž=1bD;»ÖÁč8ABCCŰ™ˇýÂD¤ĽĽEQ&“‰ÇăsssKÝşukĐ AÍ‹®őn¶Uží,ŇÔÔ„Çă?~ü(Ţü”ä§ ¨Ęť+ë6tł> ?aŃ1 …ĚĚLEţřăTT9´_ÔTěŻÖĆ*++{ţüyűó´8Ç‹¶j***PMKKLl«î‰¬ůí×íŰÂăńL&S°­ćŻżúé´°kßťî—duĽŐjýŃ´Uí]놽yŁ$PRR`ffćĺĺÍçó[‡Ń~i7WVV¶˙ţ~ýúMš4éÁ‚ď‹Kć«:Ňž·Uí;ř-îZEj˝Źťz•BˇtęrŹďׯźŕő€ĘĘĘZĎSZZĘçóűöí+ř×ÎÎAĚĚĚćŰŞ®®ö÷÷ŹŹŹż|ůň«WŻ,X€ĂግŤďjhh>>#GŽüő×_őôô8Žşşşp+RŘ·e;…I&“ůňA333Áô~ýú g+--m˝›m•g;‹”••ˇ(ÚżÁsss‘AĘާБŹ@HMMmâĉ·nÝZ˛dÉű÷ď>| HërYÔ¬iűČd˛ŕ Ź˙ç4a[uOdÍożn·@"‘(Š`[Í_ ŢmëÓiˇPgż;ŇŻ­Bhżč˙6ěVVVÍ%AfÍš•––¶téŇׯ_·_?Ű)íćtuuúé§-[¶<~üřěŮłľľľÂS\R®ßbqU$q>҆ţ{çEóĎç Ď™äää´^POOŻůRŹ=Šh1ʆ†ĆŠ+>|H§Óřá‡sçν}űvĎž=‚w™L&•J}úôiyyą‹‹‹···žž@ţŞŻŻóćŤw¶§ ďMŐ××GDX†yyyÂŮDîfűĺ)r—››+܊ȨäęSy{°ŕ |xxřôéÓUTTD–PGv_öŠT[[›Íf×ÖÖ §TTT[öÖĄÚVÝYóŰŞŰ"źöµU’íÜŢťďŽtęrujѰ7o”QQQihh ÓéÍ«Hťş EQÁ1ş’’™Lîř‚ĐNµďŕ·X\IlI]CCÍf?yň„N§=zô˙Ŕăׯ__QQ‘––¶m۶%K–´^–BˇĚś9săĆŤt:=;;ŰÇLJÇ㵇Á`Ť5ęź3 DbUUŐáÇy<ÁŕńxÎÎ΂[ś(Ч§§źźťN///ź7o^[W}¤…B™1cĆúőëËËËłłłćĎźŹĂáx<‡Ăą›"ËłýEČd˛§§§ŹŹOiiiNNNëü$ ·ź‚ĐÔ©S333Oť:%¨É"ˡý˘n±BŮ+Rmmm‡+Väĺĺ±X¬wďŢmذaÎś9mÍßVÝYóEÖí¶źöuĽ$ĹňÝ‘NÝ©N‚†===}ÇŽóçĎoţVpppRR’ŽŽŽ‡‡‡‡‡GDDDë&˝-ÂŇn>±¨¨( ŔÂÂâÚµk›6mJNNvqqéŕ %ŁťjßÁo±Ř*Rűgç[yµC( @MMÍĐĐđĎ?˙^177ß˝{·¦¦¦ľľţÖ­[ą\nëkę(ŠVVVÎť;WCCĂŔŔ`÷îݨ¨ëťÓ¦M+))AQtçÎťjjjćććÖÖÖ®®®(Š^ştÉÄÄDAAaäČ‘Ż^˝BQ´şşzáÂ…ZZZZZZ?ţřcccc;»ÖÁč8¤ó×`Úz‹N§Ďť;WSSÓĐĐpóćÍl6»®®ÎĘĘJUUµ˛˛Rän¶.ĎŽ,"¸ńŇŘŘřúőë"Ż©KŕSđ5őŽ|-fóöö611^#l]í5&ű«µ±:x%¸˘˘bĺĘ•ĆĆĆ {÷îĺp8hŰĄ*˛îˇ˘j>*ŞnŁm4>"·ŐüµČO§őś]űîĄ$;˘;×ÔŃúßká %00ĐÄÄDWW×ĎĎŹÍf‹\9źĎôčŃ”)SöíŰ×:ŚŻ–¶pSSÓÝ»w—––v¸TPT˛í9ÚvµG;ü-îBEj˝Ź-ÇSGD,ŁĎöRb,'–¬ĺMXX··7*¦ńÔů®ĎB⪍‚ńÔĹ2 ¸ścIJľžgff:´S7Wńx<Đĺ-vmqyhĎ[ď#t  gu'ŁwqąIÔtôó*Í:ýś: >=©®˙Â&)ăńYŤ€'ŕHJG¤ŕIJx<GV%ŕ8˛ro:ůI€Üi¤sžmËĂp‚ ‚rŰ»9wŁĺ9IĹŐ]pú€ÜQŇ&©č“ů\”ĎEŰËč8Á!ů i ­[ ©—Ëg0 +32Jss+°€ôsÓŔŰëŇOÄ)P‰“ĎXÜ*9)±¨ş©ĺéwŤććć†I(ŞŻWmhPćńđUU&fł……^GV»wďŢ   ‹{l<ű‹Ę®‚OÂĄPx”îŻSäč]&ÍőY…Ĺj “ŃÎt“)%>|ř€u‚ ……5††jDbŻ<2ałŮb\[ę9Šâ9"—Käp<IEĄŽLgHŇ %%ĹÁÁˇťĚś¨ÉWÚlppxÄp¸Ęř}}4´¶ç­÷ń?I}Íš5’ŤGZ|ţ¬U]­€ §Y]Ť$&ć·5'źŹjk«tdťHLLW„Ň)›śťĄ%ü‡ŕP%ľ’ _E‘ݍ„*)ń•”řJŠ|E2ÚŃŽš544Zt9ŮeŇ\ź›š¦§7)+çXY1˙ Ľç,Y˛D,?n]CvĽËĎÂçŁ7n|¸r%qüxó-[ś° ¦kD˘ űîk§ž3™D6Ďb8‹…çpL&‘Í&p8xď?ż& UôôľŇO{Żăŕŕŕăă#ň-f ·(ˇ¶€VĂáZwu…# ‚ăg4pŽ.‚C)nĎ[ďŁý‘CL&gĎžű—.Ĺăń8>żÍÁápÆ™Ţżď+Éؤ‹Ëš~zzTZýO+OŔx"ŹĎăňą‚)"%Ö?vLż1X„)ŤxN •—É$P(n ”ľžŞ¤VaaĺĘ•W’“‹ř|tÇŽi+W:a‘”z˙ľpĘ”ă(Š"ŽDÂăpŹÇçńZ¶o~Č㕪Ş=ţăs5ůĚBŁ ŽQ–Ü€# †ĂUŮŤ÷g|3€oűÇž0ÔxčäÁ“%ôëçě,¨g(ŠćÇĹ]´·ĎŹŤĹ6$iVVV;gÎŮ€€‡Çĺň12Ňčׯ7Ť%/a}úhĚś9ĽťŁ"ďč8 ,lµ˛˛~“µ6i¦¨©™řď}7(źĎcłÓoßfVW›ŘŰ㡧ë˙ŠŠJ›3çLnn…đ+I&fÍáělŤm`RÎÂB˙Ź?âEľE ŕ]]m.\řľť¬ß±ëxŚ"–˘&©ő[ŞdŞ Eđ`şž„+Ki¨-d)j‘&š÷÷Đě…·®ţ\S-3łtůňËůůt.—/B"ćÎ}ŕŔ삂ʨ¨´¨¨´—/?ńůč°a¦îî¶öö–c3¶8<Îěłł$?ŕń˙s}ŹÇ›jšľţůµ¶Ş6V±I­ ±c……ͧŕ+«ďÎźW73Ă((éŇŘČ޲%ěÖ­ÄÖ74ýůç ''řĄŘž¬¬/«W_ÍĘú"lÇüwß}sňä<AFNÖÖ}fĐj ăĄďęŐű*̺щ_{•YMyŃŐčRÔdˇ76Hęmb29{÷Ţżt)‡Cř|ApÁÁ?¸ąý˙^MMc||V||VTTZYY­‰‰–Ą˝˝ĄłłµśśÎjAd^Çáp ćŃóV9­Úŕ¶AźŞŹa„ŇćŮŽIW®đ9śćńD"žDr?pŔĆÓ«Ŕ¤DJJńňĺ—‹‹«y<~‹·H™™űÉdYh…{ÂŰ·y§N=‹ŠJ37×iqĹ@ŔĎ1ěرą˝>ŁŁHEzcA\MŤQ•ÝDV%Ű©™:¨«FV•©ÓťIý+îŢ}żiShSŹÇedě™­ů|45µ8>>+22-11źL&ŽŮ×ÁÁŇĂcąą®äcĆP‹ĽŽGđ¦Ú¦i»Ňn&ŢÜó`OAeÁśQs~™ôËýXG*>EGߣX$ IDATYĽ¸­wÍ›ç˛w/‘"Ź?ąvíďźçó>żeFÇăqNNV×®-Ç$0iĆĺňďÜI<>.=ýł««Íš5ÎŁFő›<ůxrr‘ŕ‡Ź›={ä‘#sÚşs¨7A‘?'§(j’L쩦T­J¸^ţ+E, ©]qqőĆŤ7ll ¦}ućĘĘú/r˘˘Ň"#Ójk›LMµ\]mÝÝmÇŚ1—±kWmiž×ń8|Т Ąă– ¦‡ĽŮ˙hvYö¤A“vMŰ5ĚdÖÁbŚÓĐhmÍoű±ďE‘‘ş¶rz÷„ GRS‹E¶O~Ďž™K–ŘI<(éĹdr®]űűÂÚçĎŐÓ§[ąrĽŤŤˇŕ­ÇŹS~üńEü̙ÎíýÇč˙j¬ä(i‰¸|.Ď ©÷Źź–V••ž’R¬¨H˛łłpsłuuµŃ×§b]ĎbqYÓNO{šúTOMŻŕ`…ř˙cM>Ęüp×ý]ď ßM4yŰ”mŁűŽĆ0T̅Ξ]ü÷ß-ľ†"!Ý´•ă3đ%%Ő«W_MLĚoÝu‡{óf‡ˇˇ:&I›ššĆ‹iÁÁ54°çÍłl™‰‰Vóř|ÔÎnA}îÜч{÷®côšť7ď\FFiUU˝ŕŞ0‰DXľÜé—_¦`–˛˛ľś:s÷î{Ő•+ÇĎť;Z6nέ-f˝;_Z”PËdp5ú)8PMÔu)ĂĹňޤޙ‚‚JÁťóqqy<ľ­­‘››Ť››í A}ä-±%ä$||đaĘĂ!}†řąů-ł/?_b==xpSUžDRÖÖö8~üy@YEeîíŰ8xZANś:zôihčŞË—îÝK<Řvóć;»ţX‡†Ť·oóc˘ŁÓ-,ôÖ¬qž>},ݬÓPĆyľ=ßÔjęHU3–…ź)’I{MM섄쨨´ŚŇŇUGÇnn¶NNVňĐwŁĐ‡˘G˘ŽüůęOkk˙ ţóFĎ#âĺâĄ'ë×§ŢĽiëéé˛w/YUµ<5őú”)ßnÜ8zíZ¬CĂXbbÁŚ'·nťĽzµ3‚ ááo·n˝‰ÇăÓŇöĘR&ëEŁŁÓOťŠyó&oÄľk׺¸şÚČŰŻĐÔĄËÇŹ_˘ŁÓh´¬—/?ˇ(úÍ7¦îî¶nn¶––ňňxwÚç´O†Ľ 1Ö4öuő]鸲ů}v2‰ÇáTú¤mő˙~T^ž<ůâČ‘ywďęŠa`ŘŞŻgą»˙Ö§ŹćŤ+…÷v•–Ö()‘ĺęZ‡Ă‹xwöěóĚĚ/§԰Ş«š=Yî~Ô\Ő°Ł7‚ޤ.ĄŞ«˛ăăł"#SËËëLMµěí-ÝÜlČC‡yôĽăŃÇĎÓÎëŞęnpß°Üaą"Ië $ĺóĂĽĽéô…Ož{~`Vé´aĂŤ§OScbüeţi‘¶46˛˙üóĺůó±eeµÓ¦}łzµł••ÖAu—Ĺ˙ü¦® ŽQHc4Ň9ŞFdSőA tUô!©‹$ui'čŮFřhś‚iÄ377ۉi`]Ď*¬*<yäBüŠĘ*§U~n~TEyiß……Áîî˝˝ťwíÂ: Ü»÷~ĺĘ+/.ť8qÖ±` ¬¬öÔ©›7_#˛l™ăÂ…vşş˝ő®ÔĺoN}ć±řÚÖĘfNTŞf9ú.yÔ{:˝ţůóŚččô¸¸ĚÚZ¦śôlSQWqúůéăŃlj˘Ďxźu.ë4•5±JRnÜxşiÓ¬+Wú:;c‹D•”T»¸ž2eČożyc‹¤ĺĺU;yď^’††Ňš5.ŢŢŁzűŤ5eÉ ŐźšL¨ĐKŚd@R\ţ»wůQQéńńYÉÉEĘĘ”ożíďćfëćf٧'›Ç˛µMµgâÎzrÍe/·tëÄ­Ô^y*˛SîŻXQňöí’uyéh…ÇăĎžý{EEÝÓ§•”äčôlRRá±c‘11éffÚľľnÓ¦}Ó‹.´ˇ|´¶M5‘ńŰ_zHę˝^aa%Ť–źőěYFS{ŕŔ>öö–nn6#Fôí]]GuD=«ţbÂĹŹV5T-ţvńö)ŰűhôÁ:¨ÔTUuŮĹĹpÄi˙Ň*óNźŽ9tčńë ’ĺO¶ą¨¨4ÁmíC‡šřů໏Řô–o.§‘Wü˘®€VS”P‹ŕ‘‘p˝$rI]v0™ś7oň"#Óž>M).®ÖŇRůöŰţ®®6& TS“©‹X,.+řEđއ{ËjËĽGzo›ĽÍRĎë zJ~llř‚“­gĚŔ:–÷ţ}áôé'ýý'úřČ~<˙öíÄ  ¸ÔÔ77Ű^t[{Mł ŽQ@c”§4ŕ‰Ńhµ~®}ľUSÔě5§d$uŮÔbĐw™ěنÍeßxscßĂ}9ĺ9ł†ĎÚ9u§Ťˇ ÖAő¨­[3#"ÇĨaKú÷6Ť7Vő–CŐ® ľňÇńEEU3f [ľÜiŕŔŢôÉŢš“QWÂ6ţVÍÔ‘jĐÂBëĐşK0BĚž{ŢäżqµvÝ=m÷Xó±X%NeÉÉ×§Nuܶmř˛eXÇŇ#îßOZ±"řÂ…ď'MŚu,=âËĆéÓĎBC_„´_Ľxś¶¶čÁW¤ŕÉr’"Á`¸ô D‚¤.ŹŞŞ‡ďQQé FŁ,ől““p7ŕYć3Á1S‡LĹ:"±yqäČ«S§ţ5<1| áŔM6Í=ź€ď•;"TSPpĹÝ}čâĹ?˙Śu,bsöl쯿>¸ßwđ`c¬cŹćŻ n¶nť«”?ĄĆiäß™źaü-µŻ›şŢ`ex,­W¤Zöl•–•őE0č»˝˝Ą»űŔŢŘWeJIĘᧇ˙|ő§©–éŹ-ßŰ}O"ôâăŹWŻF˙üłWXńXY¸i -­dňäă~~îľľnXÇ"\.˙Νijgc33K{ýŕ+XČĚĚ:t(“Éüűúőëť;wţő×_|>Đ A;wîtwwo1h’:hOóAßą\ž°g›‘#űö®ÚąąźĽô×%CuC?7ż^=B̝ŋé?.ŽŠ"«öľßXÍ55±=<Žęꪆ†®–ćŮŽhjb_żţ2((®´´fúôa«VŤ·¶6Ä:¨˙k(ăÄ×Ć1†Ż4Ô±•Ţ1îš'줤¤ńăÇďŰ·oöěŮ$),,ĚĎĎ/..NEE’z{P: ±‘EŁ}ܶíöđá; Ö´míÚk÷î˝g0š°­ňéůëBÖ)®RÔőÓ=đř@=ł뺢N?=dČăő뱤»~ú馵őĎź?WcH·TUŐ˙öŰc[Ű_úőŰĽmŰíÂÂJ¬#ú?zfCâąĎ·çeśžxi\RôćÜŠŚ†vćĎČČ055ýí·ß455utt®]»¶mŰ6*•ŞŁŁÜÎR Ąőë°°°(((ŘÚÚ>{ö EŃúúú+VčęęnÚ´‰Ăá (ZYYéĺĺEĄRMLLvďŢ-\ÜÉÉéСCÍ7´eË–}űö5ßDjję¨QŁLLL„¶Ţnë)2 ’:č´ü|zPPś—×ď&&űôŮđÝw'NťŠţđˇë¸:ެ¶,ŕn€ÚZ5íőÚwŞŞ°Ž¨Ó˛ź<9lhyďÖtÝÓ§)††~$aH×WmŰvŰÜ|łŤÍ/żýö¸˛RŠ~#ć=Żľ>1ĺü°ÄëS~-,ú›ÁeńżşTFF‘HÜĽys]]ÝŢ˝{q8śđµA;KµNę D"EGG3™Ě3gΛ›Ł(úĂ?,\¸°˘˘"''gÔ¨QÇŽCQÔÓÓÓĹĹĄ¤¤äăÇŹ¶¶¶‚Ĺkkkńx|IIIű››>}ú®]»ššš‚‚‚tuuEnWd$2 ’:čşęę†{÷Ţűű‡şĂŔ`ýčŃ{üýCďÝ{__ĎÄ:´Ż«¨«¸ ±NCŐGu]ȺҚR¬#ęś'6ś8°ľ¬ ë@şâËĆŔŰ|}ŻcHed|^»öš‰ÉĆ#vĹ54°°Ž¨%úÇĆÄsźé™í—·–‘‘Çă™L&Š˘iiiÍ_ ó¨ČĄZ'őŞŞ* …rĺĘ•ĆĆF>źĎd2Ůl6‰DŞ©©ĚůěŮł#F455áńřŹ? &†‡‡ ĎÍÍĹáp<ŻýÍĄ§§744p8śË—/·µÝÖS:U&˝$u <˙ÇÂS§˘żűî„‘‘_ßľţ^^żĹIűApmSíńčăúő•×(Ż YW\]ŚuDĹnh¸`gwsî\”˙ő#0©ÂçóçĚ9cg·ŻWüřk!22ŐËëwCCż ŽÜ»÷žÍćb»ADÚ벶N¤7ÝńĄ˘˘˘ÜÝÝŐÔÔ\\\^ż~]PPĐâ⯎ŽN~~~óäýţý{á>‡+,üĎůż”””óçĎ7ßÄĄK—† 6|řđéÓ§·µ]‘Sd$u ftzÝ˝{ď×®˝6`ŔOëÇŚŮłmŰmí#ćÍ_;ę™őÇŁŹ÷ńďC^I^xqavY6ÖuHÉ›7żżż|ë@:'((ÎÄdcRRŻą^˘(—Ë {=aÂő‹˝ző ËhřhéűşW'‹oz¦]óŽÝ ¶oV—“:™LĽŽŠŠĚŮÔÔ$HźL&s˙ţý}űöe2™Ax¤^__źźźĎb±đx|vö?߸۷o 74nܸ;v4ßТE‹fĚ! ¦˘˘ŹÇżyóEŃ”””¶¶ŰzŠJJŠőîîĂ€ŇŇR™:učÔ©Cy<~bâ?ľ_ĽHSR"ŰŮY¸ąŮşşÚH[çŢĘe_ßUŽ«nĽą±÷Á^›6sFÍůyŇĎVúVX‡ÖĂ#F­Y·gŹÉ¸qšććX‡Ó!ééź÷~˝ű!˝ă©t‹{őę áŕ+‡{a5&,ĘGż$5Ć1 h5ŚB–˘&ŃÄž:rŤ„ńpl6űÉ“'#FŚ8zô¨`"ŹÇsvvމ‰2d‚‚‚‚‚…Bńôôôóó;tčźĎ_¶lYż~ýŽ;ćéééăăséŇĄ†††={öW{äČ'''<ďĺ奨¨+śáźF$VUU>|Çă1 "‘Řb»­#‘půH¶ż)€ś(,¬ĽzőĹňĺ—-,¶¬wt<°wď}í#‡#Γ‡bÁć˛_[o·Ć/ĂO99ĺmţ[¬#jŹĂą:i҇u,_×ÔÄvt<0kÖ)Ż\2`0űíńŕÁŰÍĚ6mŰv;/ŻŰxžúĺś–xÓ3íőÉ’/IőüřętíHEŃ€€555CCĂ?˙üłůąq…‘#Gľző EŃęęę… jiiiiiýř㏍ŤŤ(ŠVVVz{{«««_ż~˝ů†âăăÝÜÜTTT¨TŞťť]ddd‹`vîÜ©¦¦fnnammíęę*r»­§Č0xNH”`Đw-ëéÓ”śśrMMe;; WWww[*UŠźĺŁü‡Éw?Řý6˙­«µëžé{ĆôuP˘Ufg_őđµző·7bËWlß~'<ümLŚżˇˇTwB\VĆ8uęYXŘk·l™Ă˘Ev::Řw Pů±‘¤DP3–ť‚AO€¤0#ěŮ&66Sj}ŹÎޱýeîKi!ćÝÄîÚ5÷ÎaĂ°ŽĄMQQiK–\•ź8uď^’††ňš5ÎŢŢŁTU%z¶–žŮČiŕ Çţ7DkOž<™8qbëéżüňËŢ˝{% ’:ŔžpĐ÷ŚŇŇUGÇnn¶NNVnRŰ"!FÚ§ ž"=?;APôÖ˘EUź>-ŽŚ$«HăX™ĺĺu®®‡­çc‹hďŢś8“Ţ·ŻÎşu®’|…ÇFKë â4FCŰŘNÍădÉlČHę@ş}§Ń˛ţţ;Aoľ1uw·usłµ´ÔÇ:4äŧż>úőaĘĂAF6şo”ŞbęËĘ‚]\,§Lq;pëXZBQtÁ‚óůů•‘‘••Ąëě1Úlđ•aĂL}}Ý$6ř ź~Ь. Őż¨ă4ń´­”L¨¦ŽT­Rt ô:ԔޮnHHČŽŹĎŠŚL-/Ż“žAß“‹“‹üíĎWZé[möŘU|:ôäĐ ôŃčłŢmý ‡ $ěŻ<ňőÍţ|ILŚ’ŽÖ±ü##ŁtҤŁ>>.7z`Ë?Ż\¸@űüązúôa+WŽ·±Áfđ>Ťé:čý ©Ţ„NŻţ<#::=..ł¶–ijŞĺęjëîn‹Ő ďů•ůÇ˘Žť§ť§*RýÜüÖ:ŻU"cyî”UWěęŞkk;ýŹ?0 CĹâNśxTEEáöm"ăÇ©©©iĽx‘vůň_ŤŤěyóĆ,[ć`b˘Ős›ă2ůĹ/k i ó FŁŐznCAR˝’pĐ÷řř¬ää"uu%{{KÁ°°zz’î٦¬¶ěXÔ±ŔgĘĺŐN«×»®WWÂě‘­’ׯoxzş:4hάbÚµëîźľŚŠÚÔŁął#>®9sćůŤŻH$Â?Ř/Y2NK«§î(l¤s iŚăóë:Ő¤üÍúĆvÔ$@R˝^aa%Ť–•&čÍF8čű}%9JwE]Ĺéç§OÄśŕŁüUŽ«6{lÖTÖ”ŘÖ›‹Űł'éĘ•ĹQQęff “ľhŃ…“'çÍš5Ă0˛˛ľś:s÷î{Ő•+ÇĎť;şçnÖ+Omxq¨¨"˝‘¨€ď3FÍÔ‘j2ŽŞ Ëä@R˛CĐłMddÚÓ§)ĹĹŐZZ*ß~ŰßŐŐf„jjŠ’‰ˇŽY÷{ěfqXKÇ-Ýâ±ĹP]Ň×kylöµÉ“ÉĘĘsnݰą?ż˘˘ÎŐőđ¸q§O/Ä$AŢľÍ Ś‰ŽN·´Ô[˝ÚYO©Ő•°>—™:R GŞČŘ_nr’:M•QQiQQi/_~’|Ď6ő¬ú‹ =9TY_ąřŰĹŰ&o3Ö”hWç•YYW=<ĆúůŤ^»V’Űúţű‹é韣˘üŐÔ$}˙`ó§ÔFŽěëăăâęj#ŢťÓČ')AÎŇ’:qžm˘˘ŇËĘĆĆšŽŽěí-ÇŹ·VQéŮg¦Ů\öŤ77vßß]XU8gÔś_&ý2@@Źn±ą·çÎŃöďźw÷®ţСۨŔŐ«/~ţůÖíŰ>#Gö•äv9^DÄ»3gžüřĄ'žRŁg4Đ…ńŚĘŹŤŢUŤČb\9bIČAĎ6‘‘i‰‰ů$aÔ¨~–& ęß_·ç6ĘáqB^‡ě´?»,{Ň I»¦íf"‰Î\Q>˙ćś9 ĺĺ źŞď¨žŘPső_ľ\vv¶őňżsgOoK€ĂáM™rśL&ŢąłV2ϰ••Őž:ö‡C–-s\¸ĐNWWś§Çď+ĚĽMWÔ$™:RÍĆS GŞČđd9^Ô\kݳ͸qnn¶..Öâ, EŃÉö=Ü÷*ď•]»]ßír±vűVšË¸}űáşuł®\éëěÜŁŘ»÷ţŐ«/"#7™šöř3ląąÇŹGŢ»—¤ˇˇ´fŤK ľRů±‘ËäëRÁÁa9č ©𬩩şŘŘĚččôŘŘĚş:¦ĄĄľ››­eOôl““°ëŢ®čŚh Śó`őęâWŻ–ÄÄ(¨÷ěÓó Ysćś=zt®—×ČÝPRRá±c‘11éffÚľľnÓ¦}ÓÍó+ŤśÚ–ţPi €N¤@K,÷őë\ÁłďYY_44”ÇŤł°··tw(ŢS»‚Áߦ<ŇgČĎ“~öîŮ©ťU[ěęŞ?tčwçĎ‹}ĺBŐŐ ..‡ÇŚ1˙ý÷|†-**Mp[űС&~~îÝ|Ą2«©Ć( ŐT¤7Ş›*Ěľe#ĆPŔ$uÚ#ô=.î#—ű˙žmFŽě+®üˇčĂ‘¨#×_^·1´ńźŕß#ÄÄÇßś;wr` őŚâ]łĐ?ü‘’R˝ą'žaăńř·o'ĹĄ¦–¸ąŮvë¶v)y]W@«)¤1ę>ł•uI&öTx˛Č HętHSűíŰüČČ´ÇŹ“?®ŃÖVqr˛rsłut´KK-I=ôôPČ«cMc_Wß•Ž+)Dq>q÷, -4tqLŚš‘‘W+ňróć›·n­ű@gL&çÚµż/^¤WĎ1lůr§»˙MĎtŠ±ź›ş©UŐHş†‚ › ©ĐiÍ{¶AQT0č»˝˝ĺŕÁÝía&Źžw<úřą¸szjzÜ7,wX®HO_x<6űęĉ TŞwx8/ÎCŇOźĘ'L8˛l™ă–-“ĸZŁńÂZpđ_őő¬ůóÇţřُnľ®c€ ¤@×ŐÔ4ĆÇg ÎĎ—•Őšh98XÚŰ[:;[w§ńÂŞÂ#‘G‚hAŞ Ş«śVůąůQĹ0JMyjęő)S~ůeř˛eÝ_›‡Ă›:ő‰„żsgť¸ža+-­ůý÷硡ŻÂŹ?Ú/^$H]^ŹŔ_ĺx{˙~äČoďîv¤“ňdtLLşąą®ŹŹK§_©-b˝<^\ň˛ŽÇćëŘ*›:RMÔ5Ě%Ýç<Ň’:=…Çă'&ţĐw%%˛ťť…››­««Ťľ~çN F9řř`UCŐâooź˛˝ŹFź®EĹ(, vwşh‘ĂĎ?wm 55Ť..‡GŤę{ć̢.ݤůŕ+Ç›­[çÚ…§Ô .mw‰=ŐÔŞ¨ŮÝ_*ôjÔ„˘˘Ş¸¸ŹńńYĎźgÔ׳=ŰtvĐw—ü"xĎ=ĺuĺŢ#˝·MŢf©gŮ…`RCCźnÚäfAR3ÝôťŹňo%ŢÚygfić¤A“vLÝ1Ҭťł6UU]vqéëääqěXgĂÎË«pw?ňý÷ă~ţyJ§¬®nřăŹřK—LÎÜącV¬pjç.Âú/ěBŁ Žń9±á#úßké.űăIDAT¨:RÍ=45{dÄd$u°'ô=&&Ł´´FGGŐŃq€››­““Uű”Űó`Ď›ü7®Ö®»§íkŢŃ3ęůqqáóçO={vŔ”Näf‡7mÚI<щgŘJJŞĎžŤ yIˇ–.÷ý÷öššĘíĚźtůË›ŔĎdBźoŐL©ĆßR)jbî~™Ié"ôťFËúűďA=۸ąŮZZę#’ŘbAßWżôůQqSńő!+űŻÄ!şöÜtďZW§4~ÇĂ+*jş~˝đ‡Ětt:ú°Yl,=!® €;Vkřp …˙üĐĐĐ={v‹Ejň™ elaŞx\D  © ĄJKkž=ˉɏĎjh`ŮŘş¸ŘüúëňşşĎm.cŚ ’ÜŃMp8>‚đ:Ůŕpeu|~EEKŽÜÔ”˘<‘3<|řpŇ$qöF€Ü‚«SH)őůóÇÎź?¶ů ďl6) ŔÉÉ ëčÄfüřńőőőXG€Ś€¤€´#đlĽqŁ·ëpŇ F5d$u@F@Rd$u@F@R@¦ş»»wíÝŻ.Ő©Ĺ»¶-@w@R|…‰‰Idd$ÖQľ’:˛©°°pÎś9<6mÚĚ™3cbb„oÝ»wď»ďľ›1cFtt´` “É Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- n -

qwt5-5.2.3/doc/html/qwt__math_8h_source.html0000644000175000017500000007104512052741135020327 0ustar gudjongudjon Qwt User's Guide: qwt_math.h Source File
Qwt User's Guide  5.2.3
qwt_math.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_MATH_H
11 #define QWT_MATH_H
12 
13 #include <math.h>
14 #include <qpoint.h>
15 #include "qwt_global.h"
16 #include "qwt_double_rect.h"
17 
18 #if QT_VERSION < 0x040000
19 
20 #define qwtMax QMAX
21 #define qwtMin QMIN
22 #define qwtAbs QABS
23 
24 #else // QT_VERSION >= 0x040000
25 
26 #define qwtMax qMax
27 #define qwtMin qMin
28 #define qwtAbs qAbs
29 
30 #endif
31 
32 #ifndef LOG10_2
33 #define LOG10_2 0.30102999566398119802 /* log10(2) */
34 #endif
35 
36 #ifndef LOG10_3
37 #define LOG10_3 0.47712125471966243540 /* log10(3) */
38 #endif
39 
40 #ifndef LOG10_5
41 #define LOG10_5 0.69897000433601885749 /* log10(5) */
42 #endif
43 
44 #ifndef M_2PI
45 #define M_2PI 6.28318530717958623200 /* 2 pi */
46 #endif
47 
48 #ifndef LOG_MIN
49 
50 #define LOG_MIN 1.0e-100
51 #endif
52 
53 #ifndef LOG_MAX
54 
55 #define LOG_MAX 1.0e100
56 #endif
57 
58 #ifndef M_E
59 #define M_E 2.7182818284590452354 /* e */
60 #endif
61 
62 #ifndef M_LOG2E
63 #define M_LOG2E 1.4426950408889634074 /* log_2 e */
64 #endif
65 
66 #ifndef M_LOG10E
67 #define M_LOG10E 0.43429448190325182765 /* log_10 e */
68 #endif
69 
70 #ifndef M_LN2
71 #define M_LN2 0.69314718055994530942 /* log_e 2 */
72 #endif
73 
74 #ifndef M_LN10
75 #define M_LN10 2.30258509299404568402 /* log_e 10 */
76 #endif
77 
78 #ifndef M_PI
79 #define M_PI 3.14159265358979323846 /* pi */
80 #endif
81 
82 #ifndef M_PI_2
83 #define M_PI_2 1.57079632679489661923 /* pi/2 */
84 #endif
85 
86 #ifndef M_PI_4
87 #define M_PI_4 0.78539816339744830962 /* pi/4 */
88 #endif
89 
90 #ifndef M_1_PI
91 #define M_1_PI 0.31830988618379067154 /* 1/pi */
92 #endif
93 
94 #ifndef M_2_PI
95 #define M_2_PI 0.63661977236758134308 /* 2/pi */
96 #endif
97 
98 #ifndef M_2_SQRTPI
99 #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
100 #endif
101 
102 #ifndef M_SQRT2
103 #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
104 #endif
105 
106 #ifndef M_SQRT1_2
107 #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
108 #endif
109 
110 QWT_EXPORT double qwtGetMin(const double *array, int size);
111 QWT_EXPORT double qwtGetMax(const double *array, int size);
112 
113 
115 inline int qwtSign(double x)
116 {
117  if (x > 0.0)
118  return 1;
119  else if (x < 0.0)
120  return (-1);
121  else
122  return 0;
123 }
124 
126 inline double qwtSqr(const double x)
127 {
128  return x*x;
129 }
130 
137 template <class T>
138 T qwtLim(const T& x, const T& x1, const T& x2)
139 {
140  T rv;
141  T xmin, xmax;
142 
143  xmin = qwtMin(x1, x2);
144  xmax = qwtMax(x1, x2);
145 
146  if ( x < xmin )
147  rv = xmin;
148  else if ( x > xmax )
149  rv = xmax;
150  else
151  rv = x;
152 
153  return rv;
154 }
155 
156 inline QPoint qwtPolar2Pos(const QPoint &pole,
157  double radius, double angle)
158 {
159  const double x = pole.x() + radius * ::cos(angle);
160  const double y = pole.y() - radius * ::sin(angle);
161 
162  return QPoint(qRound(x), qRound(y));
163 }
164 
165 inline QPoint qwtDegree2Pos(const QPoint &pole,
166  double radius, double angle)
167 {
168  return qwtPolar2Pos(pole, radius, angle / 180.0 * M_PI);
169 }
170 
171 inline QwtDoublePoint qwtPolar2Pos(const QwtDoublePoint &pole,
172  double radius, double angle)
173 {
174  const double x = pole.x() + radius * ::cos(angle);
175  const double y = pole.y() - radius * ::sin(angle);
176 
177  return QPoint(qRound(x), qRound(y));
178 }
179 
180 inline QwtDoublePoint qwtDegree2Pos(const QwtDoublePoint &pole,
181  double radius, double angle)
182 {
183  return qwtPolar2Pos(pole, radius, angle / 180.0 * M_PI);
184 }
185 
187 inline double qwtRound(double value)
188 {
189  return ::floor(value + 0.5); // MSVC has no ::round().
190 }
191 
192 #endif
qwt5-5.2.3/doc/html/ftv2doc.png0000644000175000017500000000135212052741134015545 0ustar gudjongudjon‰PNG  IHDRÚ}\±IDATxíťMOS[…źžsúa?-XZ(PD4‚ AWbu`b 77wäHFĆCËÔÂ˙ŕ/`vo„APňq‹P @ ­űÝč980 îŕ¤+»§Ýy×^ďZď9SWą\83g‰3'°Nâçlą¸_bŻp ďĺűĆVÜÖˇ€ź×"¬Ö†X€d]Đŕ3“ÉĂÄĚ™xŤź ßMŕś[<çSPkvc—hČ'…™^Ĺm™hŘ7 `Ű™¦ èŔĺráq›‘śľ!daeKźţĆŐ:Ě*ł_דâči?I–eP*B7źżĺô!ąÝgr6Ër6oKbëţăđôrI”ËTüŞŚ¨xóö=›ů˘&‰(e+ßóÄkýÇ`ëÁÜb.“¸ĐW×w0Ą°jŃzN™¬|©WE㵢aŻ6[öX†AkÓů*/ś¨‰€ÉŹY­ ˙V’§–u˛jÂ>1W *˝·°PGŽz˙¨/Eg{ źÇâaoŠÁVú:čż™¤1$ôR§W,–Şŕ¨@ŠË56ľŔÔÜ-Ťľ,mę¸Î/ćčą– ňr5ĄT*S(Vf8ö9u’ ŐŁw›ůóa=Í<{ҡUŚ÷rŻ+ÉĺdDĎF$č°…Łéż`zţ»ÎúöN‘µÜ®0Q3Ł~_^ËóâŻN=vpTŕ±LťžT}îkq†Ňm<ĽÎÓ?ZhżXŁď_ţÝĄ[) `gęĂa_Ô*äÔ2`'=ő´F˙2EâÁPú ÷»›l=8‹Wv°%THqÉż<"¤ďGľĆxH{#ĆÖ«aÔJŐއ—m‹„ çńKs˙ŕńVŠŘˇ°·MâŇ^Ť TÁ– Ý›rĄß˝řmü˙_™?ŞWİ÷#uIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_grid-members.html0000644000175000017500000005141412052741141022053 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotGrid Member List

This is the complete list of members for QwtPlotGrid, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotItemvirtual
detach()QwtPlotIteminline
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const QwtPlotGridvirtual
enableX(bool tf)QwtPlotGrid
enableXMin(bool tf)QwtPlotGrid
enableY(bool tf)QwtPlotGrid
enableYMin(bool tf)QwtPlotGrid
hide()QwtPlotItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
majPen() const QwtPlotGrid
minPen() const QwtPlotGrid
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotGrid()QwtPlotGridexplicit
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotGridvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setMajPen(const QPen &p)QwtPlotGrid
setMinPen(const QPen &p)QwtPlotGrid
setPen(const QPen &p)QwtPlotGrid
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setXDiv(const QwtScaleDiv &sx)QwtPlotGrid
setYAxis(int axis)QwtPlotItem
setYDiv(const QwtScaleDiv &sy)QwtPlotGrid
setZ(double z)QwtPlotItem
show()QwtPlotItem
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &xMap, const QwtScaleDiv &yMap)QwtPlotGridvirtual
xAxis() const QwtPlotItem
xEnabled() const QwtPlotGrid
xMinEnabled() const QwtPlotGrid
xScaleDiv() const QwtPlotGrid
yAxis() const QwtPlotItem
yEnabled() const QwtPlotGrid
yMinEnabled() const QwtPlotGrid
yScaleDiv() const QwtPlotGrid
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotGrid()QwtPlotGridvirtual
~QwtPlotItem()QwtPlotItemvirtual
qwt5-5.2.3/doc/html/qwt__plot__picker_8h_source.html0000644000175000017500000003701012052741135022042 0ustar gudjongudjon Qwt User's Guide: qwt_plot_picker.h Source File
Qwt User's Guide  5.2.3
qwt_plot_picker.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_PLOT_PICKER_H
13 #define QWT_PLOT_PICKER_H
14 
15 #include "qwt_double_rect.h"
16 #include "qwt_plot_canvas.h"
17 #include "qwt_picker.h"
18 
19 class QwtPlot;
20 
29 class QWT_EXPORT QwtPlotPicker: public QwtPicker
30 {
31  Q_OBJECT
32 
33 public:
34  explicit QwtPlotPicker(QwtPlotCanvas *);
35  virtual ~QwtPlotPicker();
36 
37  explicit QwtPlotPicker(int xAxis, int yAxis,
38  QwtPlotCanvas *);
39 
40  explicit QwtPlotPicker(int xAxis, int yAxis, int selectionFlags,
41  RubberBand rubberBand, DisplayMode trackerMode,
42  QwtPlotCanvas *);
43 
44  virtual void setAxis(int xAxis, int yAxis);
45 
46  int xAxis() const;
47  int yAxis() const;
48 
49  QwtPlot *plot();
50  const QwtPlot *plot() const;
51 
52  QwtPlotCanvas *canvas();
53  const QwtPlotCanvas *canvas() const;
54 
55 signals:
56 
61  void selected(const QwtDoublePoint &pos);
62 
67  void selected(const QwtDoubleRect &rect);
68 
75  void selected(const QwtArray<QwtDoublePoint> &pa);
76 
83  void appended(const QwtDoublePoint &pos);
84 
92  void moved(const QwtDoublePoint &pos);
93 
94 protected:
95  QwtDoubleRect scaleRect() const;
96 
97  QwtDoubleRect invTransform(const QRect &) const;
98  QRect transform(const QwtDoubleRect &) const;
99 
100  QwtDoublePoint invTransform(const QPoint &) const;
101  QPoint transform(const QwtDoublePoint &) const;
102 
103  virtual QwtText trackerText(const QPoint &) const;
104  virtual QwtText trackerText(const QwtDoublePoint &) const;
105 
106  virtual void move(const QPoint &);
107  virtual void append(const QPoint &);
108  virtual bool end(bool ok = true);
109 
110 private:
111  int d_xAxis;
112  int d_yAxis;
113 };
114 
115 #endif
qwt5-5.2.3/doc/html/class_qwt_legend_item__inherit__graph.md50000644000175000017500000000004012052741140023622 0ustar gudjongudjon32ee431d786f0d017cc0a33c6d291cabqwt5-5.2.3/doc/html/class_qwt_log10_scale_engine__inherit__graph.png0000644000175000017500000001025712052741155025104 0ustar gudjongudjon‰PNG  IHDRŁpý¤WVbKGD˙˙˙ ˝§“dIDATxśíťiTgŰÇď! ›‚„ P°<‚lzh«(*"˘"ZE„S´Z«‡%,z¬űéˇ(U›WMp;DiҤôôôľľ>íE?~lii‰l···Ż[·ÎĹĹĹĘĘjňäÉ»víÔ)Uo?…†QZZjŔ¦ĹHJ·´´Ě1ĂÖÖ¶¦¦¦···¬¬ěÉ“'AAAď†áđđp‰Äfł{{{KJJęęęRSS ›¤……üßDGGëäÁŰŰ[,6+ë ŕâŋڏY°`AjjŞŞEˇPgdd„……>|†áWŻ^rrr`îěěTM˛±±‚ ÁÁAeńćć游8d[ lذÁÁÁD"íŮł1>xđ 00ĐŇŇŇÍÍŤN§Ă0ÜŇҢÔR(~˙ý÷NNN'Nܶm›T*UýT•––ww÷“'O"ţýőWeĐÄÄD{{{ww÷˘˘"¤¬ŇÉHĄ†Ç}ď鍉‰‰‰‰yďaďĹmZ ÔÔÔÉdU#AiiiW®\‰¸yó& ¶¶ÖÖÖ–ĹbX,Ö´iÓ”'ÎßßßĎĎoőęŐ<0uęÔââbÄUjj*ŹÇkii©©©ˇÓé °gĎžeË–őööîÝ»wűöíj)‘Éd‘HôđáĂ[·nÝşu‹FŁiÉ˙íŰ·ÍÍÍ'%%%33S5čŁGŹŞ««Ź=:ĘR:Ĺ50úYŔűÚôłgĎ ţýmhh°±±yđ૫ŤT*MJJÚ˝{·­­­L&ŰşuëŽ;T۟ϧŃh+V¬pppđńńŮłgĎŔŔ ĂCCCx<ţůóçČauuul6†áGŹ HĄŇÂÂBµ744D úúú"üńÇôéÓ[ZZ†źś¶¶6ÄŢÝÝ ĂđÇ•đx<‡ĂA<0ŚámZc©áqß{z Ő¦ s5T;ŽŽŽqą\Uű«WŻśťťýüüD"›Í®­­-.....nhh`±X'NśP=ŘÖÖ6))))) †a6›ýĂ?¬]»–Á`tvv*ŠĎ?˙9lÎś9ČF}}}||<AĂ/ČwvvJĄR"‘¨š!ŔÂÂbř(űřńcssóńăÇĚĚĚ” ŤI“]etU4–Ň×8Ł÷¶µµ ˇR©J …BikkŁR©‘‘‘€%K–”——wuuůřřĚź?ż´´ôŐ«WłgĎVżeË–°°0d‚ 3fäääÔÖÖH$ ŁŁůôÚµk===7n,((`łŮYYYjůH$§l[BˇđîÝ»Zň‡ h¸Ŕ‹/ݶ¶¶Q–Ň)®a1ŇÜ›FŁĄĄĄµ¶¶ŠĹb@0eĘ”ż˙ţ{çÎť€ĽĽĽŮłgC4ţüÜÜܰ°0A\.—JĄ ,ëČ‘#b±¸µµ5;;{ůňĺ ‹¨¨¨ĚĚĚžžž§Oź&''Ëĺň˙ëŻđxŹwřđaą\Îçó•ÉXXXDGG§§§÷ôôĽ}űö›oľŃ8ĐjÁÂÂ"66–L&żyóćůóçŮŮŮĂuŐXJϸú`$Ą}}}ďÜąĂăńBBBĆŤWTT”’’âîî~üřqŔÂ… %Ipp0 44T(FDD\\\&Ožěŕŕŕíí]YYYYYéăăcooéíí]PP€8/((Ŕăń^^^!!!6lX˝zµŁŁăţýűCBBŁ˘˘<==ŐÖKůůů2™ĚŰŰŰ×××ÉÉéŔ‰D˘¶žNKK©F'Nś°±±ńňňZşté† ÂhÎƸFB˙ˇŚb•Ą‘ÁÁÁ††ý0 EEE]]]Č6Áđńńů‡}J«¬‘°´´ 0aúPQQ±k×.@ĐŢŢ~čĐ!dÂń1]÷ţ@h4ZOOŹ««ë´iÓÜÝÝ‘ ÇÇŚ1VY˙/qvvľ|ů˛©łĐ¬MŁLi´€)Ť0ĄŃ‚afd7nÜĺťf ]áp8j÷ >ý—äú˙ĽŔŕp6––ž¦ÎB7(Šţ2ŕ7ź»v•Ö2)3g˘ˇ|: kś–É Ŕ`Ü3u.Ć]JłXŹ‚A@YŮßR©ÜÔét)]^ţ7‡D’ššÇ¦NǨ Hi‘hčÚµ&™LŔá ˛2tuŕ(Rşşúˇ˛Ç–É˙ţ÷ý‰iS2&(Rş´”­ú`L&g2š.cĄűúD7o>–ËU—”PYŰd ´(}ýzłšEˇP°X­˝˝&ÉÇř Eé’¶BˇáQee“ń“1 ¨Pş«‹__Ď~5†áŇRă=‡kZPˇôŐ«Ť8ś†š*0›ÝŢىŠ{3¨Pş¬ě˛Ś «WQŃŁâ92—în˛-“)ÄbéرĘO˙ő/ăýdĆ„ î^Ö•+Ť[¶Đ_żţS'blPŃ{cLiô€)Ť0ĄŃ¦4ZŔ”F ŇhS-`JŁLi´€)Ť0ĄŃ¦4ZŔ”F ŇhS-`JŁLi´€)Ť0ĄŃ¦4ZŔ”F ŇhS-`JŁLi´€)Ť0ĄŃ¦4ZŔ”F ŇhS-`JŁŐ?űž;w®©ÓůÇ13ł¶°p3uĆ€JĄŽřOîĹÄÄřúúš0? PRRâççwéŇ%ĄEým|}}çĎźoÔ¤0ţX,–š§Ń¦4ZŔ”F ŇhS-|ŇťťťŚŠŠZ´hQ\\\nn®P(Ô^„Ëĺ.^ĽXuC¤Ritt´rW&“9rdéŇĄ+W®<{ö,b|óćÍ˘ŁŁĂĂĂ×®]{úôi‰D·72hOËĺ†cřĽWź†Bç˙ mooOII ;zô¨““—Ë={ölRRRnnîرc˙‰‡#‘HîÜąóŰoż Ą1??ż˝˝ýÜąs`çÎť'N ßľ}{PPPAAŤŤM{{;ŤFŁR©Ű¶m3`2ÉdęăÁÍÍMOŁAç6}ěرE‹‘Éd777KKK//݉ÄsçÎeff^ĽxđîÝ»ĐĐĐââbŹÇ MLL”JĄˇˇˇ|>_Ł[ˇPxŕŔČČČ5kÖś:uJ&“D"QNNΊ+âââŞŞŞ”_|@p÷î]kkkeq†™Lćwß}7~üxŹŘŘX&“ůîÝ»ŽŽŽŤ7:88››{zz’ÉäÁÁA¤H$:tčPdddTT”˛xńâĹÖ­[ĂĂĂjIŠĹb …˛jŐŞčččüü|ą|Ä7nqąÜ¸¸¸ĘĘJÄ˙Ť7”A‡×HµĂÓXjôqµ ›Ň"‘¨±±QµĎ@ýçźÎś9łˇˇĐÜÜlmmÝÔÔhjjňđđ ÓéáćÍ›ăĆŤÓč™Bˇ Đét …ň×_•––¨Tj?ťN˙ĺ—_ ‚ŁŁcFFĆúő땏×ßßďĺĺ…ězzz¶··ŰŰŰOš4ißľ}uuuýýýŹ˝{÷"ÇP©T@@§ÓŹ=úűďż×ÖÖÎś9tőęŐ„„„ĽĽ<µ$©TŞD"),,<~üxSSÁĐr®úúú8NqqqTT”ŇŐH5zo©ŃÇ Ý”F^Hëää¤fź0aBooo``ŕýű÷ĺrysssTTÔýű÷ ESSÓĚ™3µ»•JĄ555ÉÉÉD"ŃŐŐuýúőUUU2™¬ŞŞ*99ŮÎÎÎĹĹeÝşuZ< š™™YZZ"»cĆŚA,4mÖ¬Yׯ_ŹŹŹ_ż~ýŮłg‘qqž””D$ÝÜÜöîÝK"‘›6mŠŤŤĹápx<~`ŕż^Ń!“ÉLfjję¸qă&Nś¸yóćęęj$yµqş«« ‘H­­­‘Qf45ŇXJc\]Ńmś&‰€·oßN0AŐŢÓÓ4 ±cǶ¶¶677ďŰ·ďĆŤOź>mllLOO×î–Çăśťť‘Ý &twwóx<…BˇjÔâÁĘĘJˇPĹbDlˇP¤jmm˝rĺĘ•+WÂ0ÜÚÚzňäÉź~ú)++KÍążż?˛ŃŇŇ’ťť AĐđo3ŹÇ“Éd_ýµÚŮĐ8Nsą\<Źt`ĐŢÝ4ši,Ą1®®č¦´µµu@@@yyyRRb)))™;wnyyůś9sµµµ<ĎÍÍ- €Ĺbőôôřůů˝~ýZ‹[{{{@WWRůÎÎN{{{;;;5ٶ¶¶Ož<™6mŕŮłg®®® ĄŁŁBˇ ňööŢĽyóŽ;óîînDŃúúz©T:uęÔC‡ĺĺĺM™2Ą­­­ľľ^5„ťťť™™Ů•+WĆŚ‹Ĺ|>_ËLR}9×<Ľ·FK Ź«ĺTŚ„Î322™Ěd2i4ÚË—/‡††ž>}şvíZ@``ŕĺË—ýýý! ¨¨¨řňË/ńx<A …™g„*H$LŁŃúúú::: -ZD ,X@ŁŃz{{_ż~}ţüůágA•Ĺ‹ź9sćÝ»wçŇĄKË—/ojjşxńbww÷ĐĐĐË—/Ďź??{öl@7o^^^źĎďčč8věBˇ@nëáp¸ţţţ .( Őś@ „„„äććňůüľľľ¬¬,Ť­t­‘ˇâ"謴»»{~~~?™L^¶l“É\µj‰D*++|őŐWR©iX_|ńĹŕŕ 2HŹ?ŢĹĹ%22˛żż_*•.WáČ‘#€ĚĚL++«„„„´´´ŔŔŔŘŘX@ZZš••U||üŽ;"""đxm=ЦM›śťťăăă322–.]ěççwđŕÁŰ·o'&&®X±b÷îÝnnn™™™Čń™™™8nÝşuiiiK–,™7o‘HLLL$“É[¶l™7ož««ëţýűUCdddČĺň„„„ÄÄD;;»M›6Mă4ŤF)Iťj¤=®®¨ßźŢż˙ܵârą“'Oţ€ ´PUU5}út¤Ó«««;}útaaˇaCŁŐčÇtttT˝?m«ˇććć—PWWwęÔ)‘HôćÍ› . SOÖ裾îM&“ů|~LLĚ·ß~K"‘©Ŕ'Ť kôQżEÉŢŢ>;;ŰÔYÖčŁnÓS-`JŁLi´ ľžöđđ@V{ź4gáÂ…#>ďť““sďŢ=Łg…ax<<<’““U-¨{)jÁĆi´€)Ť0ĄŃ¦4Zř_˝ĐZU!ű"bIEND®B`‚qwt5-5.2.3/doc/html/histogramscreenshots.html0000644000175000017500000000344512052741136020643 0ustar gudjongudjon Qwt User's Guide: Histogram
Qwt User's Guide  5.2.3
Histogram
histogram.png
qwt5-5.2.3/doc/html/qwt__scale__widget_8h_source.html0000644000175000017500000005413712052741135022172 0ustar gudjongudjon Qwt User's Guide: qwt_scale_widget.h Source File
Qwt User's Guide  5.2.3
qwt_scale_widget.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_WIDGET_H
11 #define QWT_SCALE_WIDGET_H
12 
13 #include <qwidget.h>
14 #include <qfont.h>
15 #include <qcolor.h>
16 #include <qstring.h>
17 
18 #include "qwt_global.h"
19 #include "qwt_text.h"
20 #include "qwt_scale_draw.h"
21 
22 class QPainter;
24 class QwtScaleDiv;
25 class QwtColorMap;
26 
34 class QWT_EXPORT QwtScaleWidget : public QWidget
35 {
36  Q_OBJECT
37 
38 public:
39  explicit QwtScaleWidget(QWidget *parent = NULL);
40 #if QT_VERSION < 0x040000
41  explicit QwtScaleWidget(QWidget *parent, const char *name);
42 #endif
43  explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL);
44  virtual ~QwtScaleWidget();
45 
46 signals:
48  void scaleDivChanged();
49 
50 public:
51  void setTitle(const QString &title);
52  void setTitle(const QwtText &title);
53  QwtText title() const;
54 
55  void setBorderDist(int start, int end);
56  int startBorderDist() const;
57  int endBorderDist() const;
58 
59  void getBorderDistHint(int &start, int &end) const;
60 
61  void getMinBorderDist(int &start, int &end) const;
62  void setMinBorderDist(int start, int end);
63 
64  void setMargin(int);
65  int margin() const;
66 
67  void setSpacing(int td);
68  int spacing() const;
69 
70  void setPenWidth(int);
71  int penWidth() const;
72 
73  void setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd);
74 
75  void setScaleDraw(QwtScaleDraw *);
76  const QwtScaleDraw *scaleDraw() const;
77  QwtScaleDraw *scaleDraw();
78 
79 #if QT_VERSION < 0x040000
80  void setLabelAlignment(int);
81 #else
82  void setLabelAlignment(Qt::Alignment);
83 #endif
84  void setLabelRotation(double rotation);
85 
86  void setColorBarEnabled(bool);
87  bool isColorBarEnabled() const;
88 
89  void setColorBarWidth(int);
90  int colorBarWidth() const;
91 
92  void setColorMap(const QwtDoubleInterval &, const QwtColorMap &);
93 
94  QwtDoubleInterval colorBarInterval() const;
95  const QwtColorMap &colorMap() const;
96 
97  virtual QSize sizeHint() const;
98  virtual QSize minimumSizeHint() const;
99 
100  int titleHeightForWidth(int width) const;
101  int dimForLength(int length, const QFont &scaleFont) const;
102 
103  void drawColorBar(QPainter *painter, const QRect &rect) const;
104  void drawTitle(QPainter *painter, QwtScaleDraw::Alignment,
105  const QRect &rect) const;
106 
107  void setAlignment(QwtScaleDraw::Alignment);
108  QwtScaleDraw::Alignment alignment() const;
109 
110  QRect colorBarRect(const QRect&) const;
111 
112 protected:
113  virtual void paintEvent(QPaintEvent *e);
114  virtual void resizeEvent(QResizeEvent *e);
115 
116 #if QT_VERSION < 0x040000
117  virtual void fontChange(const QFont &oldfont);
118 #endif
119 
120  void draw(QPainter *p) const;
121 
122  void scaleChange();
123  void layoutScale( bool update = true );
124 
125 private:
126  void initScale(QwtScaleDraw::Alignment);
127 
128  class PrivateData;
129  PrivateData *d_data;
130 };
131 
132 #endif
qwt5-5.2.3/doc/html/functions_func_0x75.html0000644000175000017500000001454112052741152020170 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- u -

qwt5-5.2.3/doc/html/ftv2blank.png0000644000175000017500000000012612052741134016065 0ustar gudjongudjon‰PNG  IHDRÉŞ|IDATxíݱðřScOŹx@ –¨y}IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_12.png0000644000175000017500000000345512052741162017332 0ustar gudjongudjon‰PNG  IHDRĂ%pĘbbKGD˙˙˙ ˝§“âIDATxśí›mL’_ÇĎeČC°Hµ¬5śb›ő˘Ř°>´&•Ó%ŕŇ,‹µÖł¶V+G­¬ÖfVK-“­U®ŚzĄ/[ÍÎtŃ 9Ă­BŠáĎýâşÇ¸/Ç}ýÓîű|^ťëČďűűýäËŮáśAń_“°Ř ţG@NBr‚“ä@!<÷ôô\ştiQJAü-p8ŤFĂd2'1Âw7ĄRŮÓÓ#‹˙lmż‰WŻ^iµZĄR8I\“b±řĺË—Ş*Ä߆aÁ“hź„ ä$9 '!Č9 AČIrßIfły˙ţý|>źJĄ®[·®¦¦frr2rÉd˘Óéř ˘ŁŁ#îb"są\ą\nµZc ÄdAśššÚşukqq±Çă‰1|‰4 q:Éh4nٲ…Ĺb˝}űvbbB§Ó ‹Ĺâ¨fňCŁŃŕ"—Ëă+&˛řçĎźétúáÇÉŹŹ‰‰‰‚‚‚´´4ťNGŁŃbŚZ‚Ť„…đv* …BŁ‘źźęÔ©Ŕ™……‰DrćĚ™‚‚‚úúzˇĹbÜĽyBhłŮ“vww; B¸k×®ÚÚZ|l·Ű)ŠŮlv»ÝGŽáńx«V­:{ö¬×ë5Ťk×®mmmĺp8©©©Ďź?w8Ä{{{ą\.>‰Dt:=--íÉ“'~G¸¤÷îÝKJJzýú5ˇˇŃhÄóĆĆĆ6nܨR©|>^F°~gg§@ đל™™yýúőEi$*­VKś$<Çâ$—Ë•đíŰ7ÂĽN§·nÝÚąs'„đĹ‹,K&“áăěěěŕ1§Oź …B|ÜÜÜ,•J!„*•Ş˛˛ŇápŚŚŚD˘;wîŤFqâÄ —ËuíÚµ•+WÂPďŽŐj-//ß±cţXRRrĺĘ•™™ŤFĂăń†LJĄR:dłŮB .hµZ…BˇR©\XXđ˙)Xßăń°Ůě/_ľ@?}úÄfł?~ü¸D!@š“FFF0 óz˝„yÁŔd2L¦×ë=~üxmm-‹Ĺšźź?zôčůóç[ ţŤŽŽş\.:ťn2™ „۶m{ôčŃÜÜ\bbâää$žâÍ›7›7oĆĂ„ppp0x%”e2™EEE?~üŔ†††¦§§˝^ďăÇŹĂ-!’ŽŤŤůS Ćh4R(”ŚŚ …BÁçóív;>RBXQQqőęUáĹ‹<¸t!ŇI!nK˘’’’‚aŘ÷ďßׯ_8o±Xř|ţ† ’““űűű»»»ŰŰŰŰŰŰ Ă»wďîßżřbŤ6;;,.“Ét:]UU•Á`čěě´Ůl^Ż79990;€JĄrą\@BB­^8q@ooďľ}ű0 [łfM¸#$ĹQ đăóůÔjuEE…\.?pŕ@WW†aáôKKKëęęÔjµV«miiYRŤD%ž`‹%•Jý3·oßmll,..ęőú_ż~ …ÂÜÜÜŽŽ‹Ĺ’““‹xYY™^Żďčč())IJJJMM]¶l™˙Sĺv»űúú@«ź¨ŚŹŹ«Tއö÷÷×ŐŐ…{Y,Ic,€JĄVTT4Íŕŕ`CCCýÂÂÂááa˝^?==ťźźż¤‰Jś6ljjjkk«®®ţúőëěěěÔÔTFFƇ.\¸Éd<ČÉÉÁ0,77·ąąą   11Ă0źĎçőz#(™L¦¦¦¦ŞŞ*ŤF“Ëĺ555ăăăcccĺĺĺwďŢ ‹řż×a ĹétÖ××ű|>—ËĺôbO;+V¬xöě™Z­îëë §Ď`0d2ٱcÇĘĘĘ"Ż‹ŘH8âtRVVÖű÷ďťN§T*ełŮmmm'OžÄż¶oßîńx$ //ĎívËd2ŔęŐ«‡Ăq:ťʇpžT]] Xľ|ůîÝ»=O^^ž«ĄĄe~~>333++‹Çăݸq#dIâáĘNIIą|ů˛T*‰D{öěIOO—Ëĺţ@áW1i QŹs$ÉąsçöîÝűű÷ďpúĄĄĄv»_Ć"đŹ6'„}Sڧ!™™™1 ńĹ"pşşşŇÓÓ»Š(€P;n2oKčtú¦M›HüăçĎź •••‹]H< {·%DvvöÜÜÜéÓ§»xçńa‡·ôAk‚“䀜„ ä$9„Řq›ÍćÖÖÖ?_ âď†pľ„_ !`2™CCCç‹@ÄÚ'!Č9 AČIr@NBĂż¨N‡®ĘA…IEND®B`‚qwt5-5.2.3/doc/html/curvescreenshots.html0000644000175000017500000000405512052741136017770 0ustar gudjongudjon Qwt User's Guide: Curve Plots
Qwt User's Guide  5.2.3
Curve Plots
plot.png
sinus.png
cpuplot.png
graph.png
curves.png
qwt5-5.2.3/doc/html/class_qwt_picker_click_rect_machine__inherit__graph.png0000644000175000017500000001034712052741155026611 0ustar gudjongudjon‰PNG  IHDRĂp,CS&bKGD˙˙˙ ˝§“śIDATxśíťiTWÇď„P4‹(. p, Ĺ iEŔĄÔâQKԢŲZJ«r”ÖŤ–˘ŔőÔ˘"˛)X_Ś«‹Bň‚„BC 1öeŢsšw ILpb°˝żO™»<Ď˙ŢůĎťÉĚ@EňŇZät„ “ Äť!˛^Łß»woßľ}zMŃssóS§NŃh4ýĄ@ôúÝmýúő÷îÝóňňŇ_ 6äĺĺĺćć®_ż^)ô»&ĽĽĽ.^Ľ¨ď,Í ˘ďđ: B ĐIb€N‚t„ “ Ä0^śÄçóCBB¬­­ŤŤŤíííwíÚŐÓÓŁą ŹÇ311Á> 8,,,‚‚‚ÚÚÚđm4GĐ ,ÝęŐ«ń…(ŠÚŮŮéMĄ€±©28ăÂIőőőďľű®™™YYYYwwwAAÁďż˙îĺĺőB3) R©čßpą\“íŰ·śśś†‡‡ L&“ËËË;;;%l6[{µšŃ“f}3.ś±yóćÔÔT''§ &¸»»_ąrĹŇŇ2!!aٲe?üđ ­­ A#GŽ:::™3gŽX,F¤«« íÍ7ßŚŠŠş˙>xţřîëë۶m›………µµőŢ˝{ń]PݶmŰňĺ˱]800feeecc'•Jy<ž˝˝}JJ ŤFăńx$iŐŞUgĎžUDČÎÎ RlÖŐŐyzzľńĆvvvgÎśŃ, ##ĂÜÜÜĘĘęÜąsŕůµÖŢŢţÔ©SX—śś¬ýhy퇗ÂđNęíí-++‹ŽŽĆ"S\\pűöm@EE…™™›Í°ŮěąsçÖ××cK‘……ľo{{ű±cÇćÍ›§”(**J(Ö××—••eeeaĺ(І……µ´´\ľ|Ű…ŃŃŃuuuĺĺĺĺĺĺ©©©XŘšššĆĆF'''“ÉĚĘĘÂ" mÚ´I‘kĎž=+W®ěîîŢ»wo\\ś###µµµÍÍÍQQQ_|ń…’ćÎÎN.—Ëçó###ccc±B•ň ŞOÖ­[·nÝ:Ímššš‘H$JĺŐŐŐ4­¶¶–FŁI$’đđđożýÖĚĚL*•îÜąó«ŻľR8©ľľ?"Ť¶zőęÖÖV¬ k322B&“˙řă,řť;wŞŞŞ°ÚČČH …ŇŮىUŤŚŚP(”žžlóÖ­[óçĎÇR`m°^2™ĚĆƦşşEŃśś___E.E=z400 ‘H2335 <}úEŃşş:ĹpđăRŞU)ď…;››űÂf/á×$KKKARů“'O¬­­]\\čtzUUUEEĹĆŤ-,,Ş««Ůlv@@ľ1ţ:©···¸¸xúôéřííírąü­·ŢÂ6.\čîî‹Ĺ|>˙í·ßNJJR´”H$t:»~˙ý÷[ZZĆĆĆ–––Š€FFF›7oÎĚĚdgg‡„„ŕÓUVV.^Ľř˝÷Ţ»té’fĆĆĆŘšjd¤b_Ś®U'ĎŕŢIfffŢŢŢ)))Š’¤¤¤ććć”””ŔŔ@€żżaaaGGÇś9s–.]šźź˙äÉ“ č”ĹĘĘ đřńclóęŐ«Ř>¦P(éééÉÉÉ<kI"‘}˙ożýT=şb2™çĎźüřńÝ»w †˘Ľ««ë“O>9qâDUUUBB‚fšźŤ®U'ĎŕŢI€ÔÔÔěě솆†áááŢŢ^GGLJ~óÍ7€€€€ôôô  ˛téŇ´´´>ř€Bˇ "“É$‰6)¨T*ÁŤŤíęęjllŚÉd###*•:ţü­[·†‡‡c-‚‚víÚŐŐŐŐŮŮąqăĆääd•1çĚ™coożeË–ŔŔ@SSSE9¶ŹÉd˛P(LLL”Éd"‘Hť]Ń^Ţ+f\8ÉŮŮůţýűBˇĐŰŰ{ҤIŮŮŮ‘‘‘vvvÇŹ,[¶L,/^ĽŕăăÓßߏťÚlllfÎśinn. µÉrâÄ 2™<{ölooď­[·®]»_{đŕÁÚÚÚóçĎ222¤R©“““łłóÔ©S<¨.&“ÉĽyó¦Ň©ÍŇŇ2>>ŢŰŰŰĂĂÁ`Ěš5 űZ§Y€öh/ďU˘÷÷“c{«dxxÇăąąą-ęß‚ ú~?i\¬I*1116zŤżN‚Ľ^@'A: B ĐIb€N‚t„ôţWJ|>˙äÉ“úÎ1üăŹ?z|/ ‰D31™eh/ ŤF{ôč‘^÷µ~ďq˙Ř˝»03ł˘¨(ŇÓÓÁĐZĆ5đ:IR©Ľ¨¨ PTôŔĐZĆ;ĐIš`ły˝˝C€‚‚‡ÉXÝ˙{€NŇDaáC‰—•ń -g\ť¤–ÁÁ‘«W9R© @"!đ§ č$µÜ¸Q§8ŁIĄňŇŇ˙ +i<ť¤–üü*ü»ŻR©ŚĹŞ3śśńt’jzzoßćÉdř[$HAA•ÁŤ{ “Tóź˙p•Jär9›ÝĐÝ=`=ăč$ŐäĺUÉĺ*îŮ^ąÂyőb^  “TĐŃ!Ş¬äŹľűŹ˘h~ţ¸ř“ qt’ JJjH$3#—ŁUU-ííÄü'‰ĐI*((x€ÝF Š‚’x‚SŢß*yquµyú´ű,•ʇ‡%'Rµ3fXŞé÷Żľ đŠ‹k²ÚÚ~2´ń<»A: B ĐIb€N‚t„ “ Äť!č$1@'A: B ĐIb€N‚t„ “ Äť!č$1@'A: B ĐIb€N‚t„ “ Äť!č$1@'A: B ĐIb€N‚t„ “ Äť!č$1@'A˙co‹-2´śq‡‘‘)•jkhă‘””µż Čşuëśťť ¨ňZ——çâârńâEE‰ň,uvv^şté+y ałŮJ%đ: B ĐIb€N‚t„ “ Ä0'µ··:tÁ`řúúnذ!--­żż_s@°|ůrěŽŔŔŔřřřgĎžáŰhŽ0x<Ţ×_˝rĺĘ+VDDDTUU)IŇ5ŻŇ(V¬XŰÚÚŞ“*Ą9Ů˝{7ľEŃŕŕ`]‡¬Ní§N{tvRKK˧ź~jjjšśś\RRrŕŔÖÖÖđđđšI…Bąý7§Oź666NLLŘÚÚ˛X,]őĽ¦¦¦¸¸8//ŻsçÎ]ĽxŃßßĎž= ŠcË‹Enn®˝˝ý‘#GĆ,’D"q8śžž˙˙J‡ĂŃ~J5٧‰UBg';vĚ××7::ÚÖÖÖÄÄdöěه˘ÓégÎś‰ŤŤÍÍÍ<{öĚÇÇ'''  }||L¦D"ńńń‰Dřhćććk×®ĺńxŕůCgppđčŃŁ ăôéÓř.(Š=z4..ndd0<<ś””´fÍš   ŚŚ ™L&6lŘPXX¸bĹ @––¶iÓ¦ŔŔ@:ť>qâÄU«V1 lYÂ[^<4ÍĎĎO `›Ł%ŤŽ,‰đsbddäĺĺuýúuEL‹ĺíí­ŘüóĎ?wîÜéç笰…:µĹĹĹ~řáš5knܸž_ü6lŘpĺʬËÍ›75ÖÝś488XSS„/D$((čîÝ»žžžŐŐŐ.—kjjĘápÇÁÁ!++ ;'Mš„ďűěŮłüüüYłf)%JIIéííÍĘĘJNNľvíZEEVŽ˘hRRRGGÇwß}gllڵ‹Ĺ™™™ÇŹçp8EEEXئ¦¦łgĎZXXp8___|đ;vlÚ´IĺµĎ‹§żż˙ÚµkóćÍS-I)2—ËUš˙ŇŇR,‚X,ľsç^öĎ?˙ěĺĺURR’žž®A­T*mnnľpáÂÚµk-ôôôđůüśśŹ3Z°®čö«\Řň;uęTĄňiÓ¦uww{xxdeeÉd2.—Ë`0 ĺr9‡ĂńôôÄ7ĆDěł©©©››Ű—_~‰o •JŻ_żžťťM§ÓétúŢ˝{;/55µ´´4//ŹJĄb-Y,ÖĄK—&L0iҤ;vś8qÂĂĂC*•îرN§···¦L™˘Íč´Ď«4 l §NťR'飏>RY»»{oooSSÓĚ™3ýőWGGGsssEmhh¨µµ5‰D"“ÉÔ˘(şeËSSÓĹ‹ź9sF)‹X,f2™řZ•‚• mĐÍIt:ĐŮŮ9mÚ4|yWW×”)Sěíí'NśŘĐĐŔĺr÷íŰwóćÍĆĆĆššš]»váS(ͧmˇP(—Ë­­­±MWWW€@ H$mmm3fĚČËËŰľ};ÖR*•®ZµJI!™LĆ>`‡űÓ§Ońîonn®««›;wîó*ŤB,źűěłÜÜܬ¬¬–––ŽŽŽÜÜÜ[·nżLŢŃP©T±X,“ÉTJRyôśŘŮŮY[[>|xáÂ…ŠÓ({_D"őőő]¸pA.— ¨S«+Ú̡6čě$;;»ŚŚŚľľľččč•+W˛X¬5kÖXYYÜÝÝ% v¸żóÎ;CCCŘE’………ŤŤM```__ź6YbccI$ŇÇăďďżdÉ|mhhhss3öŐăóĎ?—Éd!!!L&sňäɡˇˇJˇśśśkkkwîÜzçÎťC‡ą¸¸Ľd^%¦L™‚ Hyyą:IŁ#«ś??ż‡úůůáÓét&“¶dÉ’éÓ§ÇÇÇżP­öĽpµAůý¤řřř1ĽU222"fÎś9בýű÷[ZZâßO"ći‰±±1´ŃżřÜ B ĐIb€N‚t„ “ Äť!ĺűIŘmxD|>ٲej˙ŢíđáĂ Qwt User's Guide: QwtPlotRescaler Class Reference

#include <qwt_plot_rescaler.h>

List of all members.

Public Types

enum  ExpandingDirection {
  ExpandUp,
  ExpandDown,
  ExpandBoth
}
enum  RescalePolicy {
  Fixed,
  Expanding,
  Fitting
}

Public Member Functions

 QwtPlotRescaler (QwtPlotCanvas *, int referenceAxis=QwtPlot::xBottom, RescalePolicy=Expanding)
virtual ~QwtPlotRescaler ()
double aspectRatio (int axis) const
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
virtual bool eventFilter (QObject *, QEvent *)
ExpandingDirection expandingDirection (int axis) const
QwtDoubleInterval intervalHint (int axis) const
bool isEnabled () const
QwtPlotplot ()
const QwtPlotplot () const
int referenceAxis () const
void rescale () const
RescalePolicy rescalePolicy () const
void setAspectRatio (double ratio)
void setAspectRatio (int axis, double ratio)
void setEnabled (bool)
void setExpandingDirection (ExpandingDirection)
void setExpandingDirection (int axis, ExpandingDirection)
void setIntervalHint (int axis, const QwtDoubleInterval &)
void setReferenceAxis (int axis)
void setRescalePolicy (RescalePolicy)

Protected Member Functions

virtual void canvasResizeEvent (QResizeEvent *)
QwtDoubleInterval expandInterval (const QwtDoubleInterval &, double width, ExpandingDirection) const
virtual QwtDoubleInterval expandScale (int axis, const QSize &oldSize, const QSize &newSize) const
QwtDoubleInterval interval (int axis) const
Qt::Orientation orientation (int axis) const
virtual void rescale (const QSize &oldSize, const QSize &newSize) const
virtual QwtDoubleInterval syncScale (int axis, const QwtDoubleInterval &reference, const QSize &size) const
virtual void updateScales (QwtDoubleInterval intervals[QwtPlot::axisCnt]) const

Detailed Description

QwtPlotRescaler takes care of fixed aspect ratios for plot scales.

QwtPlotRescaler autoadjusts the axes of a QwtPlot according to fixed aspect ratios.


Member Enumeration Documentation

Rescale Policy.

The rescale policy defines how to rescale the reference axis and their depending axes.

  • Fixed

    The interval of the reference axis remains unchanged, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.

  • Expanding

    The interval of the reference axis will be shrinked/expanded, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.

    The interval, that is represented by one pixel is fixed.

  • Fitting

    The intervals of the axes are calculated, so that all axes include their minimal interval.


Constructor & Destructor Documentation

QwtPlotRescaler::QwtPlotRescaler ( QwtPlotCanvas canvas,
int  referenceAxis = QwtPlot::xBottom,
RescalePolicy  policy = Expanding 
)
explicit

Constructor

Parameters:
canvasCanvas
referenceAxisReference axis, see RescalePolicy
policyRescale policy
See also:
setRescalePolicy(), setReferenceAxis()

Member Function Documentation

double QwtPlotRescaler::aspectRatio ( int  axis) const

Return aspect ratio between an axis and the reference axis.

Parameters:
axisAxis index ( see QwtPlot::AxisId )
See also:
setAspectRatio()
QwtPlotCanvas * QwtPlotRescaler::canvas ( )
Returns:
plot canvas
const QwtPlotCanvas * QwtPlotRescaler::canvas ( ) const
Returns:
plot canvas
QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection ( int  axis) const

Return direction in which an axis should be expanded

Parameters:
axisAxis index ( see QwtPlot::AxisId )
See also:
setExpandingDirection()
QwtDoubleInterval QwtPlotRescaler::expandInterval ( const QwtDoubleInterval interval,
double  width,
ExpandingDirection  direction 
) const
protected

Expand the interval

Parameters:
intervalInterval to be expanded
widthDistance to be added to the interval
directionDirection of the expand operation
Returns:
Expanded interval
QwtDoubleInterval QwtPlotRescaler::expandScale ( int  axis,
const QSize &  oldSize,
const QSize &  newSize 
) const
protectedvirtual

Calculate the new scale interval of a plot axis

Parameters:
axisAxis index ( see QwtPlot::AxisId )
oldSizePrevious size of the canvas
newSizeNew size of the canvas
Returns:
Calculated new interval for the axis
QwtDoubleInterval QwtPlotRescaler::interval ( int  axis) const
protected

Return interval of an axis

Parameters:
axisAxis index ( see QwtPlot::AxisId )
bool QwtPlotRescaler::isEnabled ( ) const
Returns:
true when enabled, false otherwise
See also:
setEnabled, eventFilter()
Qt::Orientation QwtPlotRescaler::orientation ( int  axis) const
protected

Return orientation of an axis

Parameters:
axisAxis index ( see QwtPlot::AxisId )
QwtPlot * QwtPlotRescaler::plot ( )
Returns:
plot widget
const QwtPlot * QwtPlotRescaler::plot ( ) const
Returns:
plot widget
int QwtPlotRescaler::referenceAxis ( ) const
Returns:
Reference axis ( see RescalePolicy )
See also:
setReferenceAxis()
void QwtPlotRescaler::rescale ( const QSize &  oldSize,
const QSize &  newSize 
) const
protectedvirtual

Adjust the plot axes scales

Parameters:
oldSizePrevious size of the canvas
newSizeNew size of the canvas
QwtPlotRescaler::RescalePolicy QwtPlotRescaler::rescalePolicy ( ) const
Returns:
Rescale policy
See also:
setRescalePolicy()
void QwtPlotRescaler::setAspectRatio ( double  ratio)

Set the aspect ratio between the scale of the reference axis and the other scales. The default ratio is 1.0

Parameters:
ratioAspect ratio
See also:
aspectRatio()
void QwtPlotRescaler::setAspectRatio ( int  axis,
double  ratio 
)

Set the aspect ratio between the scale of the reference axis and another scale. The default ratio is 1.0

Parameters:
axisAxis index ( see QwtPlot::AxisId )
ratioAspect ratio
See also:
aspectRatio()
void QwtPlotRescaler::setEnabled ( bool  on)

En/disable the rescaler.

When enabled is true an event filter is installed for the canvas, otherwise the event filter is removed.

Parameters:
ontrue or false
See also:
isEnabled(), eventFilter()
void QwtPlotRescaler::setExpandingDirection ( ExpandingDirection  direction)

Set the direction in which all axis should be expanded

Parameters:
directionDirection
See also:
expandingDirection()
void QwtPlotRescaler::setExpandingDirection ( int  axis,
ExpandingDirection  direction 
)

Set the direction in which an axis should be expanded

Parameters:
axisAxis index ( see QwtPlot::AxisId )
directionDirection
See also:
expandingDirection()
void QwtPlotRescaler::setReferenceAxis ( int  axis)

Set the reference axis ( see RescalePolicy )

Parameters:
axisAxis index ( QwtPlot::Axis )
See also:
referenceAxis()
void QwtPlotRescaler::setRescalePolicy ( RescalePolicy  policy)

Change the rescale policy

Parameters:
policyRescale policy
See also:
rescalePolicy()
QwtDoubleInterval QwtPlotRescaler::syncScale ( int  axis,
const QwtDoubleInterval reference,
const QSize &  size 
) const
protectedvirtual

Synchronize an axis scale according to the scale of the reference axis

Parameters:
axisAxis index ( see QwtPlot::AxisId )
referenceInterval of the reference axis
sizeSize of the canvas
void QwtPlotRescaler::updateScales ( QwtDoubleInterval  intervals[QwtPlot::axisCnt]) const
protectedvirtual

Update the axes scales

Parameters:
intervalsScale intervals
qwt5-5.2.3/doc/html/class_qwt_scale_draw__inherit__graph.md50000644000175000017500000000004012052741142023454 0ustar gudjongudjone826394120430253a101f84b730272b3qwt5-5.2.3/doc/html/class_qwt_text_engine__inherit__graph.map0000644000175000017500000000075612052741160023767 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial__inherit__graph.md50000644000175000017500000000004012052741137022265 0ustar gudjongudjone2722b7702d9804aab4a2f694755c59fqwt5-5.2.3/doc/html/doxygen.png0000644000175000017500000000730312052741134015655 0ustar gudjongudjon‰PNG  IHDRh ;ŘŠIDATxí]y\•Őş~45%TL Q”PE"q–ŹŰ11±]8a„w*©¨(*â" zŔč`8 ¨‰˘mĹ,’ňŕ„p$%”śBó(8k†Ü÷ýÜű6lňö»§k÷Ç÷[ĎŢß·Ö;?k˝ëßŐŐŐPxŃęĎ't´ĎůČ€zŔÇĹ3_€Q4€g@śm˙ ľň‰âci‰ôç˙{ đÇđ¬ů~˝Á€4:őHcÂü đźÁł„Ş'ŐPĆć P7^hŘŚâ™ zb„cóP¨„ 3‚† Ň}ç˙O˛qÁşNkÝTŰ(É?d Ç~zŹ<’«4ÓǡŘžŢv­zµŮ¦ő¬ZâdŰ,Ë6Ók±]Fz< ľZçsŐ?ěsUř2SÉĺwę1”c`[ě—}%Ń˝.ÔĽ6‚BLZű!F8[ ą…×TéŰ— »Ţ#gó]ĺ:vžu?‡včbŮR?wůŽźľĘĐgbŃÉĚŐ$kF~Ę;عƕ˘ďX®?ÉčlĆŮôőŕ»NĘŞĽ­,ěHC§gAz•ĆlÓş­gŃú ]śjÎńĺM…3ÓÚćoŇł'=‘$Ň÷f}G•źS_‡öčco.ĘČą :óŁ Ăds®Ů:ť1=Ľ{ĺ9?÷ý…zqŰvîÓi‰D’pżË šmŮíoŰâýaÖüEqҵwĚ}ż~{ňj€ç{ôÂşźFNĂ«í[ëOq·ÇOSúXO]°>‚‚mućÄľe¤“5Ë{¨JŐŻŁ(›´«bÂçű’ÍlÓĹ}žďú`éUŢy„ac§Á†ÔCşŠóAkl‘±yĄ†ô˘ůôs÷Ař¬7ÄőôoJ±äÄ ů.ĄBe. Z¬Đ×ÇČöĺą­ů'Ů-PëěŠyF.ž‚žÝÚ€lp&.ęđ•jň7’re’z19»ă§HGíř%śüq°ďüz×c¬_k_")źHJnĐŃ~ĐÖá´äŐ5 µÁq€˙5#¸·îŕ¶+9T‘‚ đŽ÷Rܸrz“Ď´Ěť =Ď…{đáOŁČf ˇÍwg|Ž’Ü/˘Ţ$÷Ż˘ëđúŔ;żŕ¨Ö™âŇĆ­]ŻÜW"Ţ/< ‡÷DĎŕ°˝üB}çyIEc^—=[V“Ýh˛ëMä$l];Kű®¸ýr¦Č*Ĺň ˙tŇő$]•Mź÷´;×I€1čó!‚śő¸M ő¨(fĚć<ÁÎÎň5~zżů¶ž mĚęŐ >–âÚ©âëIÎŢçz;ău[i·eç^ĆÜŮÓłNŢëF6B\}7†»+üŽÓ,Ă'a ˝-yHYż,‘^—ńfú~ß?Hcř¸…¸ńó{Z+4\sĺű·ŻŮ·nߣđ«íFơsŘşëű§Dľ?ň<–Ćvkx0ĹM±ćlذÁIÓx˙d”žÜÉ÷EE»AŞM«g*ČŁYEí7Ű™^[uíý®v[wGĺ†=EdĽn×¶ĆćÖĹlˇ'¨pGÚk+‹ć˘Ŕ¬¨C8ŞŤŤâš2 Çł3HŁß ˇ¨BŇűSĂĹů[wĹ ~xpçútÁćmö¤ĹŁĄiQć­‰AB1Éfى›4uąďěIŇ]Ë6äň%˙†ŹŹ† 1t.’NJph¬zĚ ÎR1Ž"3-"¸‡‹&ěó°1âüžěó[:‡ď„Ľ‘……N m–“W0®_čÜÂś ×ő6ůň&»)Ćěꦬýć}¬ń~»{múů]z˝ŁMŤ•şP~^Îá:eQŤTŮ_*7ŐÄ9É8—·ËŤď 3°¶47E•îÂżu÷“SÉ»UŻ _ NíşôW¬eť¸ÄNÓŹ|»;™ż;ŚćĹd"ȉôřňŤŢµőďľ®˝"čÄ´ÖMM+bYµ‘_ÉćEÝüÎ]P»ąXKĐťI˝ŢĄoE<_ą(„EP±Ś|mÇÁˇ‘Ý,ŠÓ©şşZ±Îßş§×kÝ,kÍMš`Äř…jzeŹU»ć ™Át3ÓŔ˝6—ŇöůË·r¨ŤąŃ}““wö:ťÎ§ůëĽ ż|‚TťťÜµÉQKßç_ÁâŔ™ś”pŃĐó໼Ydâ0!®ŕa –řöçW$ĂÁ‘Á$/\¬$đ 2ŢímŢLH‹ź čdŁHVÜ,:ťň˝»RÍZšJ­a„z*>‹_…NT(ů‚^SVF­Uą8ńEţôńÜóůnd;«®8™\C]ř=Čęm¬Ć:‚´ĆbăDd=Áăßž‹UU5O‹|]ţđ®Pčęv‰á\]2ßě˙"yČ[ďyʧzŁg{Y«{„Ă™ř5©˙;w{N3é­nâĨw§Á˘ÍK˘Ý­űĎ29Idż’ě y)ěPŢň8ŚĹ©Ż‰±@mPÔńwjl,6 áhWŐd öŕ uőmÁp®.™áŁÇ…twöR x­ťBδYcŚxg*vo  yň‘•“[¬?ÜVś0ŇNˇO난~Žó’Ż·h#´Hkýś±8kÓŤß^Ŕq@]ŕÓ“ř,56´Ż÷Í-ÎşU»n…[>]@nîřĎśp›[ś6# €4tënŻ:ŽŇţ}…—8äT9_žY$/´G’K™©ů†•(óŃ’Mř©`źÉdŃş;ůO‹ŹB Ó&P{qöhJÉ+Úé–§¦l2«MďöÝ_1ŃÓ«’t¸˝±l€ëŘya ¦ô©«®˝ĆL^¬žęńš¸ůy.ľŰ˝Š[ u/]˝‹iS}řťN>˛e1™q‡jfÚ&˘©iT\=kĎ›ŔXťô-.84V5đu!TEŤ ţ.ŚOH´¶4—zwTr.ď‰¦Ë xőµ·śÖ„HĆůŁžČHůg Ńhń’T$ßyq¸zţ¨pż´ë< q•róŹ÷š‰w˙ÍŃđ–I]´–ćI˛é˛sÂ"×:Ő–bŐ¦“ČŮL6˘9VĘÓWž§<ć;”3?ý©Mę3AV#µ±ËŢŻ‘Źž KŁUrÝ9!›qát¦HŁŮ+6ÇV…/TS^pĂůqgLP'Ú5E ‚–ŔŢşîÄ Ën"2|ź;®W»Îý"Ö¬TwÖâµtúŽO'› á+W Ă+¦âZĚ–<ŐĆ&nOÝ,IŠŁ06.ÁZ.Çńúřh*INÚ’Oe˝ÉgBXĐÔZóäřä9čü“ťhŇíDSšĄŹˇĘŤ µAŻ/Ôc¸ö“`A§Ż"zĺ|‘ €Ĺź¨ú;HÍ#‚Î|%ÄO«OŕĚÉĐÜD ž mÜđâc–ƤÉÂqm¶uË&~÷núŇË ŁÇĎ€ZŐj =«_n[‡‡÷nN§ĎÝ$_ľbE‚€Ő)ů8ľ?6‘lú“ÍŮćÖ}#bW( śłd-®•ťp&ˇý’śÖa”"9öőņĐ$’Ú›AÜ!ä;ĐŃőč{~áą8‘ťŰŢŁ1ŰÓÉ0ž`˛#´kŇuäNĹÖ Qąbhć ”8űÓMáŽa›•ż”w±h˛˘®qŠć°(bK ‚’ZľŇ%ĐĆémáăÖŤË(Éý‚ŰJ)@> ţ›7% ď{y Á“ľĆŇîohfňô>{p˙.­_Î%±ÉčägëlZŘ\B2B #™¸ÚüŇşp‚hÝšü®[ĄÜ<‹#SpńĚA7’ăŘHt4:ź|g¨tÓL¶*($Ć©»ě…®ů’ó÷$;b›ÔŮ`=¶Ł¦M„MĚÄ5ň«·Çľ“H·ĚH.ĽžHeAîş5}r­dő¨±)ŔT};€Q5iÖ2…O0ü…0óńĂ;óć,Š´˛µë”}g‘Ł]‹7ĺ9ŕ©_{üčîęžC>úhę{ŽŤ .ČěđIIđ€?[Kswz6Ňuíý¬;µ€ç§OĺâJÉa˶ťzv°éd† ¤µâ‚l´é芫Ĺüyľc÷ÁčÖÍ'rŕúĹ™TWŐôÓ°ˇL €|Ę˝ŚĽě­hřBă ÝTëî'ò]KřŹŁěâĎ(=ąKx €ż LĚ,Pý¤Ęµu‡ą…× §Ĺľ÷ŕ1Ý«Äý;żpGDäxZYŰ kfć6¸ůóŹć7®ś®ţ6·ŐoÚľÔH~ň®Ţ¸Źâ 8Uř“pŹ<şw3ˇaŁĎŃ’‘3čĎ"€b-ÎÜşĎ_ŞĹ]+ËM©zü°s“f-ęçhÇăŃýĘăô˙5}ZQNb{Ó?ĺ%˙\SUőŘąIÓć}~}p[śoÔÄ„ęĐMMZáNĹĺ@>Ś„˛á6(?ˇĹé âK˝+ü?Ŕ%ÝÝ·/Ç1‚9áUř?B)”ŐčâŢlČŇęĎ @=ŕůÄŢžk­®ĹIEND®B`‚qwt5-5.2.3/doc/html/functions_func_0x68.html0000644000175000017500000001401712052741152020170 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- h -

qwt5-5.2.3/doc/html/class_qwt_simple_compass_rose.html0000644000175000017500000004646312052741165022524 0ustar gudjongudjon Qwt User's Guide: QwtSimpleCompassRose Class Reference
QwtSimpleCompassRose Class Reference

#include <qwt_compass_rose.h>

Inheritance diagram for QwtSimpleCompassRose:

List of all members.

Public Member Functions

 QwtSimpleCompassRose (int numThorns=8, int numThornLevels=-1)
virtual void draw (QPainter *, const QPoint &center, int radius, double north, QPalette::ColorGroup=QPalette::Active) const
int numThornLevels () const
int numThorns () const
void setNumThornLevels (int count)
void setNumThorns (int count)
void setShrinkFactor (double factor)
void setWidth (double w)
double shrinkFactor () const
double width () const
- Public Member Functions inherited from QwtCompassRose
const QPalette & palette () const
virtual void setPalette (const QPalette &p)

Static Public Member Functions

static void drawRose (QPainter *, const QPalette &, const QPoint &center, int radius, double origin, double width, int numThorns, int numThornLevels, double shrinkFactor)

Detailed Description

A simple rose for QwtCompass.


Constructor & Destructor Documentation

QwtSimpleCompassRose::QwtSimpleCompassRose ( int  numThorns = 8,
int  numThornLevels = -1 
)

Constructor

Parameters:
numThornsNumber of thorns
numThornLevelsNumber of thorn levels

Member Function Documentation

void QwtSimpleCompassRose::draw ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  north,
QPalette::ColorGroup  cg = QPalette::Active 
) const
virtual

Draw the rose

Parameters:
painterPainter
centerCenter point
radiusRadius of the rose
northPosition
cgColor group

Implements QwtCompassRose.

void QwtSimpleCompassRose::drawRose ( QPainter *  painter,
const QPalette &  palette,
const QPoint &  center,
int  radius,
double  north,
double  width,
int  numThorns,
int  numThornLevels,
double  shrinkFactor 
)
static

Draw the rose

Parameters:
painterPainter
palettePalette
centerCenter of the rose
radiusRadius of the rose
northPosition pointing to north
widthWidth of the rose
numThornsNumber of thorns
numThornLevelsNumber of thorn levels
shrinkFactorFactor to shrink the thorns with each level
int QwtSimpleCompassRose::numThornLevels ( ) const
Returns:
Number of thorn levels
See also:
setNumThorns(), setNumThornLevels()
int QwtSimpleCompassRose::numThorns ( ) const
Returns:
Number of thorns
See also:
setNumThorns(), setNumThornLevels()
void QwtSimpleCompassRose::setNumThornLevels ( int  numThornLevels)

Set the of thorns levels

Parameters:
numThornLevelsNumber of thorns levels
See also:
setNumThorns(), numThornLevels()
void QwtSimpleCompassRose::setNumThorns ( int  numThorns)

Set the number of thorns on one level The number is aligned to a multiple of 4, with a minimum of 4

Parameters:
numThornsNumber of thorns
See also:
numThorns(), setNumThornLevels()
void QwtSimpleCompassRose::setWidth ( double  width)

Set the width of the rose heads. Lower value make thinner heads. The range is limited from 0.03 to 0.4.

Parameters:
widthWidth
double QwtSimpleCompassRose::width ( ) const
inline
See also:
setWidth()
qwt5-5.2.3/doc/html/class_qwt_scale_engine.html0000644000175000017500000007631112052741165021065 0ustar gudjongudjon Qwt User's Guide: QwtScaleEngine Class Reference

#include <qwt_scale_engine.h>

Inheritance diagram for QwtScaleEngine:

List of all members.

Public Types

enum  Attribute {
  NoAttribute = 0,
  IncludeReference = 1,
  Symmetric = 2,
  Floating = 4,
  Inverted = 8
}

Public Member Functions

 QwtScaleEngine ()
virtual ~QwtScaleEngine ()
int attributes () const
virtual void autoScale (int maxNumSteps, double &x1, double &x2, double &stepSize) const =0
virtual QwtScaleDiv divideScale (double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize=0.0) const =0
double lowerMargin () const
double reference () const
void setAttribute (Attribute, bool on=true)
void setAttributes (int)
void setMargins (double lower, double upper)
void setReference (double reference)
bool testAttribute (Attribute) const
virtual QwtScaleTransformationtransformation () const =0
double upperMargin () const

Protected Member Functions

QwtDoubleInterval buildInterval (double v) const
bool contains (const QwtDoubleInterval &, double val) const
double divideInterval (double interval, int numSteps) const
QwtValueList strip (const QwtValueList &, const QwtDoubleInterval &) const

Detailed Description

Base class for scale engines.

A scale engine trys to find "reasonable" ranges and step sizes for scales.

The layout of the scale can be varied with setAttribute().

Qwt offers implementations for logarithmic (log10) and linear scales. Contributions for other types of scale engines (date/time, log2 ... ) are welcome.


Member Enumeration Documentation

  • IncludeReference
    Build a scale which includes the reference() value.
  • Symmetric
    Build a scale which is symmetric to the reference() value.
  • Floating
    The endpoints of the scale are supposed to be equal the outmost included values plus the specified margins (see setMargins()). If this attribute is not set, the endpoints of the scale will be integer multiples of the step size.
  • Inverted
    Turn the scale upside down.
See also:
setAttribute(), testAttribute(), reference(), lowerMargin(), upperMargin()

Member Function Documentation

int QwtScaleEngine::attributes ( ) const

Return the scale attributes

See also:
Attribute, setAttributes(), testAttribute()
virtual void QwtScaleEngine::autoScale ( int  maxNumSteps,
double &  x1,
double &  x2,
double &  stepSize 
) const
pure virtual

Align and divide an interval

Parameters:
maxNumStepsMax. number of steps
x1First limit of the interval (In/Out)
x2Second limit of the interval (In/Out)
stepSizeStep size (Return value)

Implemented in QwtLog10ScaleEngine, and QwtLinearScaleEngine.

QwtDoubleInterval QwtScaleEngine::buildInterval ( double  v) const
protected

Build an interval for a value.

In case of v == 0.0 the interval is [-0.5, 0.5], otherwide it is [0.5 * v, 1.5 * v]

bool QwtScaleEngine::contains ( const QwtDoubleInterval interval,
double  value 
) const
protected

Check if an interval "contains" a value

Parameters:
intervalInterval
valueValue
See also:
QwtScaleArithmetic::compareEps()
double QwtScaleEngine::divideInterval ( double  intervalSize,
int  numSteps 
) const
protected

Calculate a step size for an interval size

Parameters:
intervalSizeInterval size
numStepsNumber of steps
Returns:
Step size
virtual QwtScaleDiv QwtScaleEngine::divideScale ( double  x1,
double  x2,
int  maxMajSteps,
int  maxMinSteps,
double  stepSize = 0.0 
) const
pure virtual

Calculate a scale division.

Parameters:
x1First interval limit
x2Second interval limit
maxMajStepsMaximum for the number of major steps
maxMinStepsMaximum number of minor steps
stepSizeStep size. If stepSize == 0.0, the scaleEngine calculates one.

Implemented in QwtLog10ScaleEngine, and QwtLinearScaleEngine.

double QwtScaleEngine::lowerMargin ( ) const
Returns:
the margin at the lower end of the scale The default margin is 0.
See also:
setMargins()
double QwtScaleEngine::reference ( ) const
Returns:
the reference value
See also:
setReference(), setAttribute()
void QwtScaleEngine::setAttribute ( Attribute  attribute,
bool  on = true 
)

Change a scale attribute

Parameters:
attributeAttribute to change
onOn/Off
See also:
Attribute, testAttribute()
void QwtScaleEngine::setAttributes ( int  attributes)

Change the scale attribute

Parameters:
attributesSet scale attributes
See also:
Attribute, attributes()
void QwtScaleEngine::setMargins ( double  lower,
double  upper 
)

Specify margins at the scale's endpoints.

Parameters:
lowerminimum distance between the scale's lower boundary and the smallest enclosed value
upperminimum distance between the scale's upper boundary and the greatest enclosed value

Margins can be used to leave a minimum amount of space between the enclosed intervals and the boundaries of the scale.

Warning:
See also:
upperMargin(), lowerMargin()
void QwtScaleEngine::setReference ( double  r)

Specify a reference point.

Parameters:
rnew reference value

The reference point is needed if options IncludeReference or Symmetric are active. Its default value is 0.0.

See also:
Attribute
QwtValueList QwtScaleEngine::strip ( const QwtValueList &  ticks,
const QwtDoubleInterval interval 
) const
protected

Remove ticks from a list, that are not inside an interval

Parameters:
ticksTick list
intervalInterval
Returns:
Stripped tick list
bool QwtScaleEngine::testAttribute ( Attribute  attribute) const

Check if a attribute is set.

Parameters:
attributeAttribute to be tested
See also:
Attribute, setAttribute()
virtual QwtScaleTransformation* QwtScaleEngine::transformation ( ) const
pure virtual
Returns:
a transformation

Implemented in QwtLog10ScaleEngine, and QwtLinearScaleEngine.

double QwtScaleEngine::upperMargin ( ) const
Returns:
the margin at the upper end of the scale The default margin is 0.
See also:
setMargins()
qwt5-5.2.3/doc/html/class_qwt_alpha_color_map__inherit__graph.map0000644000175000017500000000026112052741152024566 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_0x76.html0000644000175000017500000001410412052741151017150 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- v -

qwt5-5.2.3/doc/html/class_qwt_compass__inherit__graph.md50000644000175000017500000000004012052741137023021 0ustar gudjongudjon5e893351236209a6ac01dbee4c2583bdqwt5-5.2.3/doc/html/class_qwt_plot_item__inherit__graph.md50000644000175000017500000000004012052741141023343 0ustar gudjongudjon559ecd3decb4041d2477c786b7b2510bqwt5-5.2.3/doc/html/class_qwt_math_m_l_text_engine__inherit__graph.png0000644000175000017500000000712312052741155025635 0ustar gudjongudjon‰PNG  IHDRŁpý¤WVbKGD˙˙˙ ˝§“IDATxśíťyPS×ÇĎ%(e ‚ŠJ}l*CĹ‚čDˇme@¶±¬C­0,µNí´ę0u(ŹJ:¶ gXdQ`Ş !@ŰiĄBP TeIG‰@C‹„Ü$ďŹű^š—ÄŘŘžóů+÷$żďýžűĺÜs˛p/&“ÉLŚma PҰ€’†”4,ęWîĚ™3mmmúŐ„“ÜÜÜÍ›7ëQÓďÚð͛7żřâ‹zÔ„ü188¸¶¶VŹšzÓ€¬¬¬„„˝ËBĹÓ8€hž†”4, ¤a% (iX0NŇ###ÉÉÉT*ŐĚĚĚÝÝ=++K h.˛°° cęĐ~ďr©ˇˇ!Uťşş:ťú˘hěYĆIľúę«666333őőőżýö[ppđŠaË‘Éd2™lppĐÜÜ\ö?žĚŚ˘A\\śN ŢŢŢKKKO¶wCb„¤ÓÓÓ÷íŰÇ`0Ľ˝˝źţů€€€–––Ő«Wçć憇‡źŻAĽ¬¬ Çqooo___GGÇĎ>űě“O>ńňňÚłgφ Ţ˙ýwß}WQŠX„+’™™ů8ńóçĎ[[[{zzîÚµëťwŢ!“ÉÚôWŐ’nÇK_čwÚ+­ČÇŁGŹz{{őkFďTVVňx<âqccŁŹŹĎSÚŃ?aEö8,,,üýýŤíb®\ąrüřqˇP8>>~öěYbańwáYIúoÁžž^łfŤźźź››±°ř» ˙ßśüˇR©WŻ^5¶‹'ŤiX@IĂJPҰ ˙Y{{»öß4#Ô222âááˇgQýľ=×ďż< H$k ‹ŰĹĘę7=˙ÇłĎńă ]ŤŤAAú4Ď6pÍÓ8.mlě46ţbl/†®¤Ůě!ˇđ ľţ¦X,1¶WŇ 7I$`qQÔŃ1dl;˘¤—żý–㉄Ő×Ău‡(é¶¶ůǥׯßZX×’!(麺ʼnคÉ0žCKŇÁ"‹5$‘(ľĄÄęë{ŚfČŕŔ’ôµkýJ-R©”Íž™Y0ŠĂKŇ—/÷HĄj>#jiáŢŚQ€"ioö§źFT? ”ÉduuĆůM®á"éćć>IMOĄRYOĎřÄßÇ@‘t}ý/ÄŰhUd2ĐÜ Ĺ Šß‘­_ď25%$ă¸tiIlee.öĺ—WÉ—A¦¦ľC‡.>xđoc14Pś˝% (iX@IĂJPҰ€’†”4, ¤a% (iX@IĂJPҰ€’†”4, ¤a% (iX@IĂJPҰ€’†”4, ¤a% (iX@IĂJPҰ€’†”4, ¤ˇA~Ąoíďîů·ĆÄÄŇÜÜŐŘ. …B”çűçuN:;;}}}ăăăŤhˇGNť:ŐßßďííMlţßmĂÂÂŚ` ń8uę”â&š§a% (iX@IĂJž$鉉‰üüüŘŘؤ¤¤’’’ůůyÍ%\.÷µ×^#Đh´ăÇŹ+>+“ɉ¬X®ú˛5ŐVhęĐÜ ťR‚Ífk/ĄÁ¤ľĐůşˇăăă;vě(**rttärąĺĺĺiii%%%VVVÚ(H$‡#( ŃÂápVü[yš, ŔĺrSSS™Lć_1@&“˙˘‚««ë_TĐŚÎcú‹/ľ Óé®®®žžžůůů ĺ›oľÉÉÉ©©©üńÇ4­ŞŞ Ŕçói4ZJJŠX,¦Ńhłłł&&&ÁÁÁ­­­rM&“*ß;|řpdddbb"“ÉśťťU,455íŢ˝;&&¦­­íżÝXISW––– cbbâââĘĘĘ$ISSÓÁ% ŕüůó999J®TárąIII---ŃŃѱ±±íííDűâââéÓ§wďŢť””ÔÚÚŞtây\•Ş%ťz¤[Ň‹‹‹}}}qqqŠŤ†ĹĹĹýđĂAAA˝˝˝€ţţ~KKK‡ŕp8/^$“É,ËÖÖ°sçÎëׯĺ"‘¨»»;""B.řő×_777'''—––ÚÚÚ*–ă8>::Z]]˝gĎžŇŇRy•fM])..‰DçÎťăp8ŤŤŤoľů¦••UMMÍĐĐ‹Ĺ:yň¤R§Ô"FFFŞŞŞbccĺn‹‹‹çćć.^Ľřůçź×ŐŐi_ĄdI§é–4qZGGGĄvggç™™™ŔŔŔ[·nI$’ţţţŘŘŘ[·nIĄR‡¤ôú€€ˇPx÷î]Ŕ÷ßďĺĺeoo/655511‘D"™šš.,(ß'C&“íßżßŇŇr۶msssZjęŽăL&óČ‘#¶¶¶/ĽđÂÁŰÚÚ0 ;zôhMMM^^^vv¶µµµb 1¸áńx‘H”’’B¸ …„xkkkzzşťťť‹‹ËŰoż­j@m•Ş%ť:ĄŰÇń7ŢxC©ăÎÎÎAAA·oßV˝%ŻÚyšË媺ĺóůR©”JĄ›JGňq}|ś%íŃmL[ZZúűű744Č[._ľ<11ŃĐаuëV@```WWźĎwuuő÷÷głŮÓÓÓëÖ­S•ŠŚŚlooźšš ‘·ĎÎΞ={6''çË/ż÷Üsűöí;věXTT”©©Vs¨Ş%mŞäüyw†„„„©©©'NčTO°ĽĽĚĺr×®]űµŇÚÚşiÓ&â4ŢÝÝýŐW_UTTč}/4­¦¦&!!ŘÔϧˇfff(fíéîîľpáÂâââÇ«««‰%ÎÓ}îmčtúěěl||üśśś%ÎÓŠ»(=k¬Zµ*//ĎŔ;EcPҰ€’†”4,üߊŚĂá|đÁƲ‚xŞü™tZZš} ôΆ ż·…î¦Đ‚ćiX@IĂJPҰđ€„gޢżIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_dial_simple_needle__inherit__graph.png0000644000175000017500000000727712052741154025273 0ustar gudjongudjon‰PNG  IHDRťp‹žĺÝbKGD˙˙˙ ˝§“tIDATxśíťkPWűŔφ‘K Š‚E[ap,Ä‘(µ0@¸gÄ Â¦”ńTŞL/dj‰(¶^  !xÁęĽĺfKťâp+Ąr•{B‘[˛˙űľů‡ŇěaÍłç<űěţ˛gĂYŘ (Šč ¬t8/Ü+śŕ^á÷ 'Dm%‹ĹQQQŁŁŁÚJ¸ IOOßµk—VR!Úú<\XXČ`0BCCµ’mRSSăććVXX¨•lZ;_1´UÖ*d˙ţýZ̆__á÷ '¸W8Á˝Â îNVŔkGG“ÉܰaľľţćÍ›E"‘ć.­­­Řň?Ö¬YăââRVV¦Ňf)ŘlöüUËF9ů?LĄ-tíµĄĄĺťwŢ!“ÉBˇÇăýő×_nnn‹ŞU°fÍEQíďďŹŚŚ¤Óé---{{űéééĄd gÎśéęęZö^ĽúčÚk|||XX‡Ă±··722rvvľs玹ąyzzş——×—_~ čďďGäłĎ> "âŕŕ033 źĎW¤˘R©±±±GŽÉČČsĎ•ććfWW×µk×ÚÚÚćĺĺ©Ô@"‘>účŁčččůĺMLLÄÄÄXXXXYY%''Ëd˛…‚ŁŁŁ BˇŘÚÚrąÜ%¦Ň:ő:>>^QQÁb±”‚$$$Üľ}{ßľ}ĺĺĺ€ęęj2™\YY ¨¬¬Ü±cGKK všš™™©äôőő­­­U ~ňÉ'ľľľBˇ0%%%99y~%©©©]]]ó•łX¬ÉÉÉćććŞŞŞŞŞ*‡łP0::Z >µ‚%éČ˝ŽŽNTUý5;;çwEďŢm\©’tä^ďÜiDQ”Ë…|(†ÜkQŃó'Ôärô÷ßź Ť­HIşfŻýý˘ÇŹ»ĺr5Ązz„’5§24Ŕ쵤¤~ˇÉo™l–Çy‚B§˙ǡc¶lyÍŇ’¬xůüůډHüď[yűv«ŞK¬–ű9€Ť/] ÷÷_Đ ó8ĽšÁ˝Â îNpŻp‚{…Ü+śŕ^á÷ '¸W8Á˝Â îNpŻp‚{…Ü+śŕ^á÷ '¸W8Á˝Â îNpŻp‚{…Ü+śŕ^á÷ '¸W8Á˝Â îNpŻp‚{…Ü+śŕ^á÷ '¸WHQ~qKK‹ňW BĆš56‚áJWń˛ČĘĘRV9çůŤŤŤ"‘(--mĄŠĂY\.·ŞŞ*>>^QóÜ˝{÷ę®"m€}·µ2řőNpŻp‚{…Ü+śŕ^ád™^222‚‚‚Ľ˝˝8páÂ…çĎźkîŇÓÓóţűďc ž˙ĂŰŰ;::úńăÇ*m4g ť;w.$$ÄÇÇçŕÁß~űíĚĚ̢eŃ<==ą\îŰżĐ˙y*e–ăµ»»;::ÚĐĐ𫯾*))9sćLooo\\ܢjH¤ňňňňňrŹ÷ᇦ¤¤twwlllJKK펢hrr˛©©iNNNIIÉ©S§ššš˛˛˛–žaŮ ’››;88řň6ˇ–ăőüůóŢŢŢ,ËĆĆĆŔŔŕÍ7ßĚČČ P(yyyÇŽ+((OOĎüü|Ŕč訧§gxx¸T*őôôű˙˙’É䀀€}űöýřăŹ`î{¶««+66ÖÇLJÁ`¨¨Ďž=‹ŚŚ¤R©úúúoĽń‹Ĺšššsßţ(,,ô÷÷§ÓéeeeWŻ^őóóŁÓéX6¬—ËĄÓéAAA999łłłĘ[™žžfłŮt:=$$äŇĄKŘZ"‘™™9˙°¨mŻ6(‹Oź>íççÇ`0***–ę…xaŻ“““őőő!!!ĘAABBB~űí7WW׺ş:@ccَˇaCC ˇˇÁÎÎ.77;M×­[§’ÓÍÍ­­Mő늮\ąâććVRRÂd2/^Ľ¨Ľjýúő›7oNMM}řđˇX,ŘŮŮĄ¤¤¨dŕóůBˇ°   88řÜąsR©”Ëĺ+ľqdd¤®®îÚµk™™™>,**Rîž••533sýúőŻżţşˇˇáĆŤXśÉdÎÔ¶WĚĚĚĎÍÍÍĚĚ,//źÚôŇyaŻ"‘đÚkŻ©Ä---…B!ŤFkjjšťťmll jjj’Ëĺ ®®®rššš •`TTÁĐÓÓ#‰sŠ&8ή]»îÝ»vřđá«WŻb×Weärů‘#GÖ®]ëîîP,ŹŹŹ+ÄÇÇS(”×_=""BY•L&+--ýřăŹ×­[·qăĆŁGŹ–••a«ôőőŹ?žťťŤ íŐ%IUUUbb"•Jµ¶¶ŽP)[æ—Î ?»10<!d.X°nÝşĐĐĐşş:…Báíí}ŕŔ„Pxx¸żżMMÍíŰ·§NťjîŘą±L&6lئM›ššš>üđCgggÜ2((ČÇÇ§ŞŞęćÍ›“&M˛ČžL—19Ζ-[ZZZ>üđCŠ˘Ěew˙ţűシĽpööv[[ŰóçϛþüňË;wîÔh4IIIŽŽŽ¸W—©vnŮ×-Ŕăń^{í5ĄRŮóN ¦×ôŮ…BAQ”^Ż·¨/** …ׯ_ …z˝>""â˝÷މDaăĆŤ[·níŮťNÇĺrńâ… ¦M›¦Óé8NYY®ĚÎÎĆ»l,“É ®®!TRR‚[j4‹uóćMÜ2##Ł;ş‹Éb±´Z-ŽI/Ó»ŤĆŃŁG!„RRR.\H_Ç7n´µµéőúcÇŽ™{uNµË–ýصµµ=ďAÔ•]\W***ÜÝÝéőUUUR©tҤIb±¸°°°   %%%%%Ą¨¨(//ďóĎ?ď9¬R©Ôëőb±>R©4™Lnnn¸ć©§žęˇ1đx<{{{`±ţsľ»˙>Bhüřńxqܸq}J¸\.źĎÇ1éez_‹µzőęcÇŽĎD"ŃÜąsĚ5ńńńĺĺĺ °xń⬬¬ššOOĎyóćeddTUUÍž=»ç°NNNl6Ű,xkkëĺË—ťśśŕÎť;¸MyyyŤ€˘(‹°ÎÎÎE•••YDče˝ß,kÖ¬ůç?˙yďŢ˝_~ůeٲećz•JµnÝşŁGŹîÚµË\ß9Ő.[>üč%ý™'&&&&''GEEÝĽyS«Ő677Oś8ńĘ•+ďľű.řúú>|xöěŮEÍ›7ďСC>>>\.—˘(ŁŃ¨×ëqFííí|>?(((::ZĄRŐÖÖ®\ąňŕÁ|>?$$$22ňţýűĄĄĄ»wďĆëŮeă.SĺńxAAA›6mR*• …‚ľ'0ć¬złK<==ÝÜÜÂĂÇn®˙ĎQ—Ăihh‹‹3ŤMMM]Fč˛ĺĂoŢB?Iôf~€)-- urrâńxîîî111Ó¦M‹ŤŤE577sąÜýű÷#„*++ )) !ÔŇŇâáá! ţůg‹V­Z…R«Őˇˇˇ‰D"‘¬_żľ˝˝W®\ąR$M0áСCBˇ'Đą1ý”L/×××ă÷ cÇŽýꫯ,¦ć¬ęëë{łËąNbb"ś?ޢţý÷߉DăĆŤËÉÉńôô\°`Awa;·ě÷č™'v‡FŁÁĄ%99দ—łłł===|!ÎŁŘť=°ëĘ`Ę”)ÍLNNÎöíŰ›››ďŢ˝űÉ'źŕ)U18[`¨ß_HLLT©TcĆŚńňňruuĹS«bp¶@źß72R©ôôéÓLgÁ$ł†úń€08Ćx@čržřĹ_ ~„Á¤¬¬ĚâöĐ˙\5*)) … ĺĆ”@đ4›mmk ńńńô]˙?ßg˛B~ýµtٲĵkçěŢ˝ěÁ­ź\¬}~ťýţß`01ť “Xµ:ť!+«ššÚóóo2ť“Xµąąňöö`łYYYż1ť“Xµ™™ż±Ů,0Lß}W¬ŃčÎ1¬×¶¶Žďżżn0ńbG‡á‡n0›XŻt €Ĺ˘23 ̇Y¬×ĚĚBú§ů ÓĹ‹ňćf )1•zĐĐĐ–źËhüź÷Ўoż-f*%f±RΞ˝Öą!”žnĄ§+ő #ărç ©&úő×Ňű÷»ţ<ń“Ť5zP]ÝřŰowM¦..¨łŮ¬3gş8T<ńXŁgÎ\íÁ`ĚĚ´Ć JCý󉏂qăťťEćĹÖÖ€ËáüçOâŮgG3”“XűýF5*úČ‘5˙ˇűÇkRqq±Z­NKKc*ˇF|||~~ţ¦M›ťáßÉ f6ˇCzz:Ł“ů€x@ŔĆx@x,<(++ “JĄ<ĎÍÍ-::ş±±±ç.rą\ ŕEĂŢŢ>((¨şşšŢć, O$CÝ™L6}út‘H”››«V«333oÝş5kÖ¬Ş`†Ď盯– ‚×_ý‘ćüXÂÔ¬ÔÔÔŢŚţâ‹/nŢĽ™^c2™ćĚ™ăăă‡ŞŞŞ€={ö „”J%}í č „.]şdooŹ’Édć—ÔjőęŐ«%É1c¶mۆôuuućšşşşÖÖÖ7ß|ÓŃŃqÔ¨Qożý¶^Ż—Éd®®®űöíłłłspp8yňäŽ;FŽéŕŕpüřńŢlŕŕŕŕŕŕŢmĽgHš››sss###é•EEEE}ýő׾ľľ/^€‚‚‘H”——yyy^^^ć}looOď«T*?ýôÓçž{Îb  6477߸qăÂ… ß|óMrr˛E{{{zMddd{{{III~~~~~~bb"TUUŐÖÖŢ˝{722244T§ÓÝ»w/22r۶mŹt+ L Ř›ăBˇ (JŻ×[Ô …Âëׯ …B˝^ńŢ{ď‰D"Á°qăĆ­[·š÷™L&ŁŻ¬P(ô÷÷ݬ¬D´ăV«e±Xeee8xffćäÉ“é, :ťŽËĺ666âö.\6mšL&c±XZ­!TRRB/[şŮăÁ~ţ‚EQ©ŻŞŞ’JĄ“&M‹Ĺ………))))))EEEyyyźţ9˝1źĎ×jµ=ŚRSSnnnxŃÝÝýŢ˝{=´W*•z˝^,Óó.—Ëçó€ĹbŃË}YcĆŇYŠD˘ąsç&$$kâăăËËË`ńâĹYYY555žžžóćÍËČČ¨ŞŞš={vźF‘JĄpçÎĽX^^îěěÜC{'''6›m>´¶¶^ľ|ąŻ«6ÔŇ@bbbrrrTTÔÍ›7µZmssóĉŻ\ąňî»ď€ŻŻďáÇgĎžMQÔĽyó:äăăĂĺr)Š2Ťz˝ľ7CđůüĄK—FEEŐÖÖŢľ};66vŐŞUť#kř|~PPPtt´JĄŞ­­]ąrĺÁŐúCÝgžyćß˙ţwCCĂÜąsGŽ™śśü׿ţŐŐŐőłĎ>€ tttĚ™3ćĎźßÚÚęëë ŁGŹ?~ĽD"ihhčÍ(GŹ1b>¨řúúľóÎ;ť#ĐkŽ9b0<<<žyćGGÇŹ>úč‘m€A‚±çň¤ĄĄ…„„ôot­V+—˧Ly˘ž¤łbĹ `ęCýxĐ%ŕ “€qKń€@< `âC< 0ţąő… 2›ŔĐá÷ßá…ť±ëHjµ:&&¦­­Ť‘ŃÍŤÔí۶Ri›XÜÁl&°iÓ&¦T°öç|§Ą]ŽŠúç‹/zž<ůÓą0‰µĎ˛ł ňňn65µ3ť “Xµuu-?ýt Ŕ×__e:&±jΞ˝JQ „22űĎ< VíAZZˇÉ„ŔdB……w•ĘŢ~úÉĂz=¨¨¨/.®Ä›ÍĘÉ)b6%±^Nź.âpţX}ŁŃ”žn˝§ëő =ý˛^o2/"„äreii-)1•z —+ŠZüNÁ —ËÎÉąÂTJĚbĄää\áń,Ż©ëőĆS§ţÍH>ŚcŤ „22 u:Cç—ŞŞÔĹĹ•źăXŁW®Ü­®îú-˘Őž¬ŃóçeŹÇéüĎh4}÷ÝďL'ČCú{mŹU«fęőFóbZÚĺYłĆŤk‡gĚpď¦ß“ڵßo€QŁ˘ŹY`Ő„·Ćóˇ3Äń€€! ń€@< `âC< â€x@ŔĆx@ 0Äń€€! ń€@< `âC< â€x@ŔĆx@¨ßCIOOW«ŐŠ~üńÇššÇő—Ň‚mmm6ĘĂ?2ţ›oľŐ!ô“đđđ‡ß‰p|(B_Ůąsç€<Ó†ĚĆx@ 0ÄŔ { T*?ţřăeË–-\¸đ•W^9tč~ŻŃ/˝ô.̧[__OoÓ§~~~o˝őVee~U»çş´—]eđ<¸{÷î›oľ9|řđž9sć>¨¬¬Śx  f¸\îĹ˙ňĺ—_ňxĽ¸¸¸>ĺ@Źššęćć¶wďŢľŻĘČŕyđé§ź.\¸022ŇĹĹE L0áăŹ?‹Ĺ'Nśxë­·RSS ľľ~ţüů)))ĐĐĐ0ţü5kÖčőúůóç755ŃŁI$’ĺË—Ëĺr‹QZ[[?účŁŔŔŔ+V$%%Ő××wA(.Z´¨˘˘/ŢąsgăĆŤ‹- 9wî®ĚÍÍ [´hŃÚµksss顴Zm||üŇĄK‚‚Ž9b4+**^y啬¬,???¶©©©7]ŇŇŇ–.]úăŹ?~ůĺ—K–,Yşt©9‡ÁaůäđáĂ'N,//żtéčtş#FÄĹĹéőú´´´>ř`Ďž=¸Ż­­-‹ĹúúëŻGŚZ­¶©©©ŁŁŁ‡ý×]—ŢŻÝ#eđ扑‘‘çÎťKLL¬¬¬Ôétmmmaaa·oß^µjx{{ź>}úŮgźĄ(jĘ”)999Ď=÷‡Ăˇ(Ęd2 ]żŁŁĂh4"„€Íf·´´ś:uĘd2µµµ™L¦<ĺńx<ĎŠËĺÎť;÷СCMMMŤŤŤ»víĘČČč2Ą~ta„ÁóŔŐŐőČ‘#---‘‘‘ůË_Îť;·téR''§ĚĚL:uŞ^Ż÷ňň€?ýéOŤOěííGŹŘŇŇŇ›QŢzë­aÆ………EEEy{{‡„„ôÁÎÎŽ˘¨üü|±XĽfÍšČČČ 6Ľđ cĆŚ‰ŤŤ›7oŽŤŤ]˛dÉ… ¶mŰFc4ĂÂÂÖ¬Yckk»~ýú.óéGF€ç±¤ĄĄ…„„ôďľłN§«¨¨?~üCć`µěÜąÓÁÁ!--í!ă0|]™Çă †äţ€x@ŔĆx@ 0ÄŔ€Ü_°±±ú}<Â`ţđAćůÎß~űí€|›bđ©Ż×îÚUäďďâă3šé\úÉ‚ ţ{msżŃĎĎo@â >śCݸˇ=r$é\ÄÚç™™… PÜW(j™Î…I¬Ú’’Ş˛˛:ŕń8X«ĹŞ=ČÎľÂĺ˛@§3¤§_©ŇcŠőz`2ˇôôËz˝/VW7^ąRÁlJ b˝\ľ\^W÷Ç'Sxý—ââb@đúëŻ÷>„ТE‹śśś ŐjuzzúO?ý´yóć~­Ťu€ú¤¦¦öÜćĹ_ÜĽy3˝Ćd2Í™3'&&ĆÇÇ'..!TUU{öěA)•JzJtB—.]˛··GÉd2óKjµzőęŐ‰dĚ1۶mĂ ĚŐ«W)ŠŇh4t™^yĺÁŐŐu˙ţýNNNďĽóŽ^ŻGµ¶¶ľůć›ŽŽŽŁFŤzűí·qessóÚµk%‰““ÓŽ;ęęęčIşşş~öŮg6662™Ě"ťN‡»ŻYłĆÎÎÎŐŐ599gŽ0wĽ~ýş···@ pqq9~ü¸ąÁľ}űěěěNž<ącÇŽ‘#G:88ಏ,»ô©uoĆhjjb±XĄĄĄő™™™ăÇŹß·oźźźBčÔ©S"‘Č××—˝ĽĽĚűľłBŐŐŐ+W®|饗,^ ¸˙ţ­[·&OžĽwď^ó«áŮgźőóóËÎÎ®ŻŻ§§!“ÉŘlö’%Kîßż˙űďż?ýôÓŘËuëÖ…††ÖŐŐ) ooď „ÂĂĂkkke2Ůرcł˛˛čIňxĽ×^{M©Tv™ îîďď_SSsűöí©S§vŮńĺ—_Ţąs§FŁIJJrttÄ 8Ζ-[ZZZ>üđCŠ˘ĚeggçŮG]téSëŢŚˇP((ŠÂOtŠŠŠ„Báőë×…Bˇ^ŻŹxď˝÷D"‘Á`ظqăÖ­[é›~x …ţţţ•••ćV«e±Xeee8xffćäÉ“é–455%&&H$OOĎ;v´µµ™+ Ü,%%eňäÉ:ťŽËĺ666âĘ .L›6M§Óq8łĐ?ýôSaaˇE’µµµÝ%»›+łłł;wDݸqŁ­­MŻ×;vĚÜ€ĹbiµZ„PII ˝lqě÷>ęĚŔ˙ŢşEQîîîôúŞŞ*©T:iŇ$±X\XXXPP’’’’’RTT”——÷ůçźÓóů|­¶§?555ŕćć†ÝÝÝďÝ»Go ‰""""""B………۶m[µjUvv6°X,sn÷îÝS*•z˝^,Ó×B©TšL¦§žz ×<˙üó —˙ń´ŹçŕŕĐ]2¸»ąŇ‡Ţ.]ş´zőjŠ˘č·l¸\.źĎÇ©ŇË=l‡dŕC‹D˘ąsç&$$kâăăËËË`ńâĹYYY555žžžóćÍËČČ¨ŞŞš={vźF‘JĄpçÎĽX^^îěěl~uÆ >>>¸LQÔôéÓ÷ěŮSPP€kL&“ąŁBˇpvvvrrbłŮćăAkkëĺË—ťśśŔ¬×·ß~›““CĎÁ|żËdpwzeçŽ*•jÝşuGŹ-,,ܵkWź¶ŔÓ§ŁG/Ź9%%%‰$22R.—k4šŘŘX.—ëŕŕ€OŐYYY666/żü2Bčĉ666Ë–-CÉĺr‡ŁÓé,ćtč/-_ľś~JŢ˝{·9ÂĎ?˙Ěfłăââ*++5Ť\. G˙=,ÔÖÖ–””xzzîŢ˝!˛víÚşşşű÷ďDEE!„‚‚‚‚ëęęnÝşőÔSOeddt—dçdBŻľú*ž(ŠiÓ¦ ‹U¨­­Ą(ި¨¨ľľ>,,ŚĂá466ŇtW~ř}dŮĄO­{?Fiiihh¨““ŹÇswwʉ‰™6mZll,B¨ąą™Ëĺîßż!TYY IIIˇ––ˇPřóĎ?÷Ć•JőꫯÚŮŮŤ5jË–-:ťÎˇľľţ»ďľ›;w®ŤŤÍ°aĂ&Nś¸uëÖŽŽs„„„GGÇččh<·W«Őˇˇˇ‰D"‘¬_żľ˝˝!T__˙ꫯÚÚÚ:;;đÁ=$Ů9sĺĘ•"‘h„ ‡ …¨Óî|˙ý÷E"Ѹqărrr<==,XđDyĐŤFSTTÔŹŽKď·ćĂ“śś\SSËŮŮŮžžž3n?öŃŕ]WS¦L´á†999Ű·oonnľ{÷î'ź|‚§GCrá’¨R©ĆŚăĺĺĺęęúî»ď2ťQ·XÝsş<<ţřcĆŰéÍb°r@l°r@l°r@l°r@ĘČČČČČXąre(Št{(ĘĚĚĚĚĚ\ąrĄ™Ç|őŐWóňňňňň.zL %8˝4ÔÖÖîŢ˝Űé­PVĐ×Ţ˝{c‰‰‰No1X9@_ŁGŹfŚÍś9sÎś9Ś±ŽŽŽM›6mذáÓO?mmm˝öÚkożýö™3g&''geeuľH•™™YUUĹ …BÁ`đĹ_|ăŤ7Nś8‘”””‘‘1cĆŚ‘#Gv¶Ë–-Ű˝{wRRŇôéÓž{î9ĆńĆ\uŐU/˝ôŇ=÷Ü“——÷É'ź¬ZµęŔgÎśéÝ»wVVÖĚ™3ň“źł˛˛cÓ¦Mkmm}ĺ•WÎť;7zôč?ţńŹŰ·ońĹOž<9pŕŔüüü»îşKňd‚V°r@Ü:{ölCCůű—––>őÔSť+ÄńăÇׯ_żgĎž 6\ňţÍÍÍÓ§O˙ä“OŚoß}÷Ýwß}·°°đî»ďfŚÁiÓ¦;v, µ´´üío8p`řăĽńĆÇŽcŚ…BˇăÇŹO›6­©©Éř§ďľűîí·ß~ď˝÷6nÜxýő×w–üă˙hii1ţľ}űöŹ?ţ8[~ěر?üá7ÝtÓŕÁÍŹ &8Cq«´´tÔ…˘ßÝşuڱáÇoٲeűöí?üp(Ş­­­¬¬Ü»wď<ŕrą\.—ßď7îďóů>ěrąrss·mŰćóů ŕrą–/_n¬XeeeµµµˇPhÁ‚o˝őÖôéÓżüňËđľ'Nś(,,ܱcÇ´iÓ^{íµćććäädcŃ2Nćź={ö­·ŢęZrůĺ—ű|ľ×_===Ýĺr©S§îرă‰'ž…Bť `d€óľűî;ĆŘ™3gŞ««‡ 2mÚ´+ŻĽ’1öŁý¨wďޏǸ[ďŢ˝ŤżĽńĆڱôôô ¸Ýîk®ąć±Ç›3gN0ôűýwŢyç›oľérą233§M›Ć›7oŢž={>ýôÓ‹úŢyçť“&Mrą\ڱ!C†,\¸pŔ€ĆëcIIIĆ}:Sá®»î2dclĚ1GŽaŚÍ™3§WŻ^“&MZ˛dIřýÄÂĘqkÖ¬YůůůĆOdq^!’‰'ţűß˙>|řp~~ľŰíľů曇ú«_ý*==ý’÷Ż­­eŚ :´łĹСCŤżÔÔÔt~ýńŹlÜčrą† ľrôďßżóďC‡mooݬ¬\µjUMMM0Ľdë>}úq»ĎżlĐ«WŻ®ßŘ űŔyúÓźžţůűďż˙Ćoěč訪Şňů|S¦L9xđ É÷ptţŕ6îo|íúÓü˛Ë.‹RĹóů|>řŕĆŤ=ĎŻý뢢"+#° V …ęëëý~[[[^^Ţ+ŻĽ˛m۶ůóç‡Bˇöövă—wĂ]wÝuڱ}űöu®+ď˝÷^׺öÚkcť§ĐCˇĐ˘oÉš5kcwß}wiié#Ź<2|řpĂ +cŚť:uꡇz衇žţů`0śśÜů»LW\qE×{6777ncěđáĂO=őÔW_}µ˙ţ?˙ůĎŚ1Ż×;věXĆŘm·Ý …Ţ{ď˝ţóź@ ¤¤äŕÁŃ7Ă8µ^SSSWWwěŘ1㤀jpž€1ĆŇŇ҆ş˙ţ^xá…^0ntą\ýúő3Ţ‘’’bÜ8věŘýű÷3Ćxŕť;w>|xÍš5FV0,\¸Đ8‹>}úô×^{íŰoż]ştéŇĄK].—×ëmllڞ#FŚŘłgχ~xçťwş\®„„ó˙C;@ČĚĺrąÝîgžyćÁĽńĆÝnwż~ý˛łł×­[—śśěrą&Nś8bÄ·ŰÝłgOŁŞgĎžkÖ¬™1cĆ€Ün·×ë9rä‹/ľhü˘”ËĺJMM---=z´ÇăéÝ»÷ôéÓ§L™}K ÇŹßłgO·Ű}ăŤ7÷ë×Ďĺr˝ůć›öO€Y.\@ŽP(´|ůňőë×»ÝînOx¨É¸& ^­°E(5jTccăW\ńúëŻ÷ęŐëĚ™3Ćú~řĂ:˝u–ŕŐ*»L›6- }űí·żůÍoyä‘É“'ź:uĘĺrĺçç;˝i–\vď˝÷2ĆRSSťŢ€xóÓźţôşë®;}úôńăÇŹ=š8räČE‹ >ĽëűůúëŻ^­°‰q’<;;;;;Űém ŻV@l°r@l°r@l°r@l°r@l°r@l°r@l°r@lś|'ŕsĎżä`wÉß‹˙j|â!2tďďĹý˙oĘËËËËË«ŞŞŞŞŞvíÚ•’’RŐĹţóźśśś¤¤¤+ŻĽrÖ¬YŚ~{LćΛ?wŢüĄĄe2 %·ł‚Ę13 %·#T(ąˇB3Ś%ăüő9’““—.]úŃGµ´´×;3,]şô‹/ľXľ|yCCĂěŮłgÎś9yňä(·ÇÄxµę‚u ¶aĂÖůjU˙ţýźyć™uëÖuţs(joo߼yóÜąsűöí;hĐ ÜÜÜŠŠŠH·;3ďů|ëeJng•bf„JnG¨Pr;B…ć]pMŔęęę{ď˝×ȡPčÔ©SăĆŤŰ·oźÇăaŚ8p`Îś9»víşäí»w72-dŽKjiiIHHHLL4ľőz˝MMMQnżHFd‚‡âÄ+ź¸?˛ćFĄ#•í”3I\ÎL´ßĘőz˝mmm­­­F¶IIIQnżHUUŐ%ÖŽ•#7÷·ÂÓň·“Ż#•í”ß‘Ęvʇ™‰$.g&ZćHIIéÓ§ĎŃŁGŤoŹ92xđŕ(·;ç9ÄvŚËWf…tŚű™!4@ĚŚđBó"žç0,[¶ěłĎ>{ňÉ'Ďś93{öě|ĐřŞH·›‘‘‘aÄśç Ąűóڱyó楦¦Ž7nęÔ©ăÇŹź4iRôŰť‚Ě!¶c\% é÷3Ch€á…ć]9ä@ć ĘTć ™ClǸŇ1.Ź’„tŚű™!4@ĚŚđBó9Ŕ,dţB•Ź„tŚËŁ$!ă~f 3#ĽĐŇ1.Ź’„tŚű™!4@ĚŚđBó9Ŕ,©™#ĘŤĺ±ë"Ůő“_Ť?|µ2żro§ä™‘?źufFňvęHe;męŘ2…óü…’ŰYAe€á…’Ű*”ÜŽPˇyČ`2ˇĘÇB:ĆĺQ’Žq?3„™^h2…ĚÁ_¨ň±€Žqy”$¤cÜĎ ˇbf„š‡Ěf!sđŞ|, ¤c\% é÷3Ch€á…ć!s€YČü…* é—GIB:ĆýĚ fFxˇyČęrů|ŃţŮď•”ČÚĆ9¬:,ŕ÷ŰÚ1.Ź’„tŚű™!4@ĚŚđBó9Ôu>sÔÔ\âßęęcČ 2ˇĘÇB:ĆĺQ’Žq?3„™^h2‡ş9@5Čü…* é—GIB:ĆýĚ fFxˇyČęBćŐHĘa.ş±ą;JŢgtÉŰI¨#•í´©cWČęBćŐŕ<ˇävVP fFxˇäv„ %·#Th2‡ş9@5Čü…* é—GIB:ĆýĚ fFxˇyČęBćŐ sđŞ|, ¤c\% é÷3Ch€á…ć!s¨ ™TĚÁ_¨ň±€Žqy”$¤cÜĎ ˇbf„š‡Ěˇ.dP 2ˇĘÇB:ĆĺQ’Žq?3„™^h2‡ş9@5Čü…* é—GIB:ĆýĚ fFxˇyČęBćŐ™#Áé͸Ŕůź•¶ňű»ţŔőůÖçćţ6ÖÇ૲RČŤĘ13 ů fFxˇyjeŰWżźŃ9TGćŐ(|žŁ¦Ć®?a¨ĽŘÍŤĘ13 %·#T(ąˇBó”Ě—<ʂԡ:2¨Fjć隀vëÚQňW® (ş#÷sŠ™Qd; u¤˛ť6uě ™C]Č …ĎsHľ–ÚWeĄ•bf„JnG¨Pr;B…ć!s¨ ™TĚÁťOnT™^(ąˇBÉ횇̡.dP 2ct<ąQ fFxˇäv„ %·#Th2‡ş9@5ČŚŃ9đäFe€á…’Ű*”ÜŽPˇyČęBćŐ s0FçŔ“•bf„JnG¨Pr;B…ć!s¨ ™TĚÁťOnT™^(ąˇBÉíš×MćرcÇłĎ>űß˙ţ7!!!++kţüů7ß|3c, .]ştëÖ­ŹçľűîËËËs»Í.BČ&!s€jşĎ˙űß˙ćĎź?cĆ żßż}űöˇC‡ţîwż3ţ©¸¸8TVV–••mٲĄ˘˘BĆ&Ű€Ę'7*ÄĚ/”ÜŽPˇäv„ Í‹–9łłł n»í¶sçΕ••˝óÎ;ĄĄĄcĆŚ)))ÉĘĘbŚ˝üňË•••ĄĄĄ&["s„ĚŞé>sôęŐkńâĹóçĎ2dČ#Ö¬YłlŮ2ĆX hllLKK3î–žž^]]-a‹í@ĺŔ“•bf„JnG¨Pr;B…ćEËííí&L>|ř‚ ‚Á`AAÁµ×^[TTTSSsĎ=÷|đÁ.—‹1öŮgźM™2eßľ}•‡_Ä©2‡Č šî3G]]]]]Ýď˙ű+®¸˘˙ţsćĚŮ˝{7cĚëő¶µµµ¶¶w IIIáĺUŘ0~T<ąQ fFxˇäv„ %·#Th^´Ěńő×_˙âżxçťwzőęĹŰż˙ŁŹ>úÖ[o…Bˇ±cÇ®^˝Ú8ĎQ^^^YYąfÍ“-qžĂ$dPM÷™Ł_ż~C† ůË_ţŇĐĐpňäɧź~züřń.—ËívgggŻX±˘ľľľ¶¶ÖçóĺääČÚlÁ¨xrŁ2@ĚŚđBÉíJnG¨ĐĽnŢĎqúôé%K–Ľýöۉ‰‰'N\°`ÇăaŚ577nÝşµGŹS¦LÉĎĎÇű9„CćŐzyJJJqqńľ}űü~AA±l0Ć’’’ŠŠŠŢ˙}żß?wî\óˆj¨xrŁ2@ĚŚđBÉíJnG¨Đ<|n•ş9@5řÜ*ĆčxrŁ2@ĚŚđBÉíJnG¨Đ7÷·±v1?ë-VI›!_13Šl'fFťŽf¶Ç ű«UĆ,Çú0|U± yµJĺ )䆙ŰŽP!B´ufŚW«t_9T†ó śç`ěR)Ěľ*+…ܨ 3#ĽPr;B…’Ű*4™C]Č dĆčxrŁ2@ĚŚđBÉíJnG¨ĐúčŁňňň;v$&&>őÔSĆíĹĹĹ@ ˛˛˛¬¬lË–-¶oŻ=¨’sŁ2@*3#2‡đB*Tž™h™ŁŁŁăç?˙ůęŐ«oľůćÎCˇPGGÇ1cJJJ˛˛˛c/żüreeeii©É–Č&!s8™Â!sşĎß|óM}}ýîݻnjsë­·>öŘcŤŤŤŚ±@ ĐŘŘ––fÜ-==˝şşZÂŰĘ!97*¤23ň!s/¤Bĺ™IňoŤŤŤˇPčĉ›6m:wîÜO<±|ůňĹ‹·´´$$$$&&wóz˝MMMáĺá—˙SßőO¸Żš"ůâEÜĺĘĚČ'y; =őTžAn*ĎL´ĚáńxcŹ=öXrrrjjęěŮłwěŘÁóz˝mmm­­­ĆÝ‚Á`RRRxyU6Ś‚•CrnTHefäCć^H…Ę3mĺHMM˝üňËŰÚÚŚoŰŰŰŤś‘’’ҧOźŁGŹ·9rdđŕÁvo¨M¨’sŁ2@*3#2‡đB*Tž™h+GBB„ ŠŠŠęëëOž<ąrĺĘ &¸\.·Űťťť˝bĹŠúúúÚÚZźĎ—““c÷†Ú„Ę!97;čňůxţĚš%|;­ rÄŠĚ!Ľ •g¦›÷s444,^ĽxÇŽ=zôČÎÎ^°`ńVsssaaáÖ­[{ôč1eĘ”üü|ĽźC8e·ęü†ĹÄďgń1óÜHí{ż[e0ő~ŽŢ˝{?ůä“űöí{çťw Śe1–””TTTôţűďűýţąsçš_6TĚÁ_USĂ{¶Ó *G¬Č ©Pyf¨ţÄ…Ęin’ČM‡Ž|pžCx!*ĎL´ßĘŐĎ·žc–ůެr“<@n:tä#y;ĺďۢ y^D5ĎďgŁFŮřř—˘ňĎddaUVčĐ‘2‡đÂůý’]Hĺ™Ń}ĺŔyUVčĐ‘ÎsÄVÓé7Agél˘ňĎÝWdUVčĐ‘2‡đB*TžÝWdUVčĐ‘2‡đB*TžÝWdUVčĐ‘2‡đB*TžÝWdUVčĐ‘2‡đB*TžÝ+™C`•:täĚ!ĽP}ťżaüﯛ*ôűąß¬ŽĚĚ!¬Ę :ňAć^ŚYýUcddaUVčĐ‘2‡đB2śű…ŕn!s s«˛B‡Ž|9„‚u’VŽŚ..ú'ăé—ą„wěz‹™Ż|UĆGÄÚĹüX¬w4_ĹGřvZůĄŁ}ěŢg¬•żť˘:ľźHÝ|Ęş”ú”uźÂź[%äSÖí ĎÓÔÝsO)·(•ú”uÉ3#gß¶ŁĐĆźuuڱóź[%ĺSÖeôâÝ!M}ĘzÜĂyUVčĐ‘Îs/ët_9řr.w:–«%›ůHŢNůű6ˇ˙MĐI÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ël_92Â\tůWő ďhţŞXVŞ|¸& čí´ň׌2v™Ű)Ş#đáű‰„k⚀1W Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:I+‡˛Wv’üŐřcňţBĆSGóU|„o§ůy©Ł}ěŢg„ĚŚäíŐřđýDŇýĘN*re';Řqe'Ą(ue'0 Wvâh„+;qâ;Zá>Ć‘p$y€ÜtčČGňvĘß· ýo‚NşŻ8Ď!°Ę :ňÁyá…`ťî+2‡Ŕ*+tčČ™Cx!X§űĘĚ!°Ę :ňAć^Öéľr s¬˛B‡Ž|9„‚uşŻČ«¬Đˇ#dá…`ťî+2‡Ŕ*+tčČ™Cx!X§űĘĚ!°Ę :ňAć^Öéľr s¬˛B‡Ž|9„‚u No€Ă9VYˇCG>Č áĽQŁÎżń>ż?қ̑99„UYˇCG>Č Áż?Ę?"s s«˛B‡Ž|9„¸>+†ĚńÁ 6Ěř{0,((6lŘ1cV®\ŮŃŃÁŃ[Č«¬Đˇ#dá…`ť©Ě ….\ŘąBĘĘʆ††Ůłg0`ňäÉvn§]9VYˇCG>Č Á:ł™cÉ’%ÇgŚ…BˇöööÍ›7Ďť;·oßľ ĘÍÍ­¨¨°s#m„Ě!°Ę :ňAć^Ö™Z9^{íµÓ§Oß˙ýĆ·@ ±±1--Íř6==˝şşÚ® ´2‡Ŕ*+tčČ™Cx!X×ýĘqâĉ•+W.Y˛Äí>ç–––„„„ÄÄDă[Ż×ŰÔÔ^Ŕ­'‡Ę‘5•í¤Ő‘¶SťŽĐ©űó .|řᇯąćš/ľř¸Ĺëő¶µµµ¶¶z<ĆX0LJJ /4.üNçĹĘ‘5•í¤Ő‘¶SťŽĐ©űĚńá‡>ú裙™™999gĎžÍĘĘJIIéÓ§ĎŃŁGŤ;9rdđŕÁ6o§]pžC`•:täó ÁşîWŽC‡UUUUUU˝ú꫏çСCn·;;;{ĹŠőőőµµµ>ź/''G¶Úç9VYˇCG>8Ď!Ľ¬ă|ůĽyóRSSÇŤ7uęÔńăÇOš4IěfIĚ!°Ę :ňAć^ÖĹđňüŕű÷ď7ţž””TTTTTTdĎVÉĚ!°Ę :ňAć^Öás«9„UYˇCG>Č Á:ÝWdUVčĐ­§IDAT‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ët_99VYˇCG>Č Á:ÝWdUVčĐ‘2‡đB°N÷•™C`•:täĚ!Ľ¬Ó}ĺ@ćXe…ů s/ëtżš¬Ď·žc˙㫲RČMňą‰ęčňů¬>„ßĎFŤ˛ľ%˘H~.äďŰ„ţ7A'ddaUV¨ň#Ŕďwz .†Ě!Ľ¬Ó}ĺŔyUVîXSĂůG=8Ď!Ľ¬Ó}ĺ@ćXeŽ#Ać^ÖIZ9˘\Đ8pyřеŁ_]>ź€?łf ‹ń'ÖQt[%|ćů¶ó’ʬ2;ž ó3ăŔžGÍ13`‡H3ŚkŠ'`Ý^ ׌@ókvżX®Ó'd2qM@E{ VP9 ŔŤĘ M©d<3cá:}„žzě3JpzFĺ47*$4ĄVđ]Ůű“U~˙ůŁH =őšě3jBć qHÎŤĘ M©˘ü~!Cč©Ç>ă d‡äܨ Đ” `÷kĺzęőÚgĚAăś•šŇřFč©Ç>ă ÝW*‡äܨ Đ”Ć7BO=öéľrP9$çFe€„¦4ľzę±Ď8H÷•Ę!97*$4ĄńŤĐSŹ}ĆAşŻTÉąQ ˇ)Ťo„žzě3ÂďVŃ8$çÓ¦v}·AÄ÷xÓ@8BSß9Ŕ d‡äÜoŞ 7 „#4Ąń ™Ě@ć@ćăÄ» Mi|Cć3t_9|ľőű_•#”ÚTľĎ޸X”—Ëěy%M+ňwîŽJíŰşŃýŐ*db˘Ľ\fŰ+iZAć3t_9pžĂQ>ɵŰ?QDŔy0C÷•™ +d0CŇĘk:5–®(úŔ5Á \1†kvŁű-çľ`™¨+ťEy!-lľ& Ť×z3ůř±ě9¸&ŕy¸&`¸& c8Ďp!śç3t_9pž +śç3t_99şBć3t_99şBć3t_99şBć3t˙ôdĐPôŹ9˙1ɲ>Ę™"dd€0?Ę™"ddЕقĚA22€“9(Ň}ĺ@ćp2EşŻČÎBć H÷•™ŔYČus†üóĎ?/**ú裏.»ě˛źýěgÉÉÉŚ±`0¸téŇ­[·z<žűî»///Ďí&ą‘ľ& KěuÂőŔ ¸& EŃ~Ü···ççç§ĄĄíÜąsÓ¦MÍÍÍ‹-2ţ©¸¸8TVV–••mٲĄ˘˘BĘÖŠ÷™Ă,\P‚ĚAQ´ĚQWWwâĉyóćy<žŢ˝{Ďž={ĆŚˇP¨ŁŁcóćÍ%%%}űöíŰ·onnnEEĹäÉ“Ąm´@¤3Çyjün%dŠ˘eŽ}Ž=jÜçČ‘#¶}Kí÷ďçPŢĎAQ´•ăěŮłëׯ/))ąé¦›Ś51ćrąÜnwvvöŠ+ęëëkkk}>_NNŽ”­ç9ś…óE[9Nť:ŐĐĐpűí·gddddddff2Äř§yó楦¦Ž7nęÔ©ăÇŹź4i’”­™ŔYČE;Ďqýő×G:W‘””TTTTTTdĎVÉĚŕ,dŠHľń[ dg!sP¤űĘĚŕ,dŠt_99ś…ĚA‘î+2€ł9(Ň}ĺ@ćp2EşŻČÎBć H÷•™ŔYČéľr s8 ™"ÝWdg!sP¤űĘĚŕ,dŠt_99ś…ĚA‘©+;YĺšĆĺYd^¤Ĺĺóuýö ż5)b•ßĎFŤâx@€xŐő˙xřW3÷1óŐŮ1Ć«H3,iĺčúɉ­"ĆĹÉď÷;˝Ęéú<ü«™ű\ňk珳8ů顤H3,iĺPQMŤÓ[8ĎA’îç9ŔY8ĎAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČŮľrd„ąčĆÓŹť ^uý?ţŐĚ}.ůŐ¸¸ĂO;EšaŰŻěÔőj€†xľ& „Á5éŠ4Ăxµ ś„óaĺ'á<EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP$iĺŔ5´…kŇĺŘ5 ]Ż khפ ×á<EX9ŔI8ĎAVp2EX9ŔIČaĺ'!sP„•ś„ĚAVp2EX9ŔIČaĺ'!sP$é=ä '—Ď'ŁŤßĎFŤ’ŃcČ@žßďôh™ěWSăô€Hś™#  6lĚ1+W®ěčč»Y ,ÎĚQ\\*++fĎž=`Ŕ€É“'‹Ý2POćhoo߼yóÜąsűöí;hĐ ÜÜÜŠŠ á[jâÉ@ ±±1--Íř6==}ŐŞU"7Ş®NäŁ9ŐEÔăwű8ÂbňąűJ!-ěŰCŮ÷ě~˘…? Ť¤ DZ/®.<+GKKKBBBbb˘ń­×ëmjj ż[řĺ˙L‘ókvwőřÝ>Žđ|@îľfFH űöEö=»źhá˘B#™żÄĄöOBWyy9cě–[n1_~ůË_îŰ·Ďăń0Ć8źźżgĎžX{?÷üKڱż˙5ÖÂpťW“S(ąťT™^ȇĐ13 Íذaă[9:::ĆŽ»zőꬬ,ĆXyyyeeĺš5kbÝ+H`¬_NNŽčÍ‹ŤäŹľ!ôI;T™^(ąˇBÉíšÇ“9cÍÍÍ………[·níŃŁÇ”)SňóóÝî!dZŚĚÁů~ޤ¤¤˘˘˘˘˘"‹e€'?· ËEN~nŐÇě`wŕĎʀبőYąśoTUU]ňvµVyCŁËČČY(ąťüB*Ű)żĘvrRŮNîB*Ű)ż0¦*ĽZ±ÁʱÁʱá|ąM¸_׋{™H03‘`f. Ӊə1ŢM̱ÁʱÁʱQë<¨ ç9€V V VŤ+G0,((6lŘ1cV®\ŮŃŃáô9i×®]™™™™™™ŮŮŮĆí:ĎŇ7ß|sűí·w˝%Ňlč6Ká3Łóţ …>˙üó3f 2äÖ[o}ôŃGëëëCˇP( ~¤Űť„-˘ĚĚ®]»2şČÎÎ633J¬ĹĹĹ@ ˛˛˛¬¬lË–-No‘“jkksrrŞŞŞŞŞŞ:´iÓ&ăv=g©®®.///''§ˇˇˇëí‘fCźYŠ43:ď?ůůůiii;wîÜ´iSssó˘E‹ŚŇ|‡‰23µµµ“&M:tč±ĎlÚ´Éĺr±îfĆů•Ł˝˝}óćÍsçÎíŰ·ď ArssăőÉ3éË/żĽîşëşŢ …´ťĄţýű?óĚ3ëÖ­ëĽ%Ňlč6Ká3cĐy˙©««;qâÄĽyózőꕚš:{öěwß}—1ÖŃŃa ˙Ş«®şţúë;‡éöřifŘĄvfbfś_9@cccZZšńmzzzuuµł›ä¬ÚÚÚť;wŽ9rÄŹ?ţxcc#Ă,](Ňl`–ŢűĎŔ<čńxŚŁć˝{÷ŢpĂ ;Lä™aßď0ŁFŤęÜaBˇP·3ăüĘŃŇŇ’h|ëőz›ššśÝ$gµ´´Üzë­Ű¶m۸qăńăÇ—-[Ć0KŠ4%†ý‡1ăߢE‹Ö®]űř㏳ď‡ßůsó˘&üöx>3,ęefśż& ×ëmkkkmmőx<ڱ`0””äôF9iíÚµĆ_Ľ^ďś9s~řa†YşP¤ŮŔ,1˝÷ăÔnYYŮęŐ«ď¸ăŽŤ7^}őŐěűáź={ÖX;/ÚaÂoŹ?‘f†uŮazöěyŃefśĎ)))}úô9zô¨ńí‘#Gěě&9čäÉ“YYY§Oź6ľ˝ě˛ËŚgłÔU¤ŮĐ|–BˇöźU«VUTT¬]»¶°°°ó‡#vaf:wP(ÄbŮaś_9ÜnwvvöŠ+ęëëkkk}>_NNŽÓ嫯ľzđŕÁO>ůdccă©S§V­Z5a—˅Yęi60KLűý§µµuýúő%%%ýsą\ĆđżýöŰcÇŽu?Ňíń'ŇĚtî0Á`𫯾2vfbf”řÄĂććć­[·öčŃcĘ”)ůůůn·óKšSjjj ?řŕŻ×›““3oŢ<ăťg©şşúŢ{ďÝżç-‘fC·Y źť÷źÚÚÚ‰'‡ĎŹÇłoß>ĆXKKËEĂ7^Áż=ţ¦…Eť™ÚÚÚ‹v#vDšăĎŻ&ýŇiФşw°vIEND®B`‚qwt5-5.2.3/doc/html/qwt__scale__map_8h_source.html0000644000175000017500000006404412052741135021462 0ustar gudjongudjon Qwt User's Guide: qwt_scale_map.h Source File
Qwt User's Guide  5.2.3
qwt_scale_map.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_MAP_H
11 #define QWT_SCALE_MAP_H
12 
13 #include "qwt_global.h"
14 #include "qwt_math.h"
15 
19 class QWT_EXPORT QwtScaleTransformation
20 {
21 public:
22  enum Type
23  {
24  Linear,
25  Log10,
26 
27  Other
28  };
29 
30  QwtScaleTransformation(Type type);
31  virtual ~QwtScaleTransformation();
32 
33  virtual double xForm(double x, double s1, double s2,
34  double p1, double p2) const;
35  virtual double invXForm(double x, double p1, double p2,
36  double s1, double s2) const;
37 
38  Type type() const;
39 
40  virtual QwtScaleTransformation *copy() const;
41 
42 private:
45 
46  const Type d_type;
47 };
48 
50 inline QwtScaleTransformation::Type QwtScaleTransformation::type() const
51 {
52  return d_type;
53 }
54 
61 class QWT_EXPORT QwtScaleMap
62 {
63 public:
64  QwtScaleMap();
65  QwtScaleMap(const QwtScaleMap&);
66 
67  ~QwtScaleMap();
68 
69  QwtScaleMap &operator=(const QwtScaleMap &);
70 
71  void setTransformation(QwtScaleTransformation * );
72  const QwtScaleTransformation *transformation() const;
73 
74  void setPaintInterval(int p1, int p2);
75  void setPaintXInterval(double p1, double p2);
76  void setScaleInterval(double s1, double s2);
77 
78  int transform(double x) const;
79  double invTransform(double i) const;
80 
81  double xTransform(double x) const;
82 
83  double p1() const;
84  double p2() const;
85 
86  double s1() const;
87  double s2() const;
88 
89  double pDist() const;
90  double sDist() const;
91 
92  QT_STATIC_CONST double LogMin;
93  QT_STATIC_CONST double LogMax;
94 
95 private:
96  void newFactor();
97 
98  double d_s1, d_s2; // scale interval boundaries
99  double d_p1, d_p2; // paint device interval boundaries
100 
101  double d_cnv; // conversion factor
102 
103  QwtScaleTransformation *d_transformation;
104 };
105 
109 inline double QwtScaleMap::s1() const
110 {
111  return d_s1;
112 }
113 
117 inline double QwtScaleMap::s2() const
118 {
119  return d_s2;
120 }
121 
125 inline double QwtScaleMap::p1() const
126 {
127  return d_p1;
128 }
129 
133 inline double QwtScaleMap::p2() const
134 {
135  return d_p2;
136 }
137 
141 inline double QwtScaleMap::pDist() const
142 {
143  return qwtAbs(d_p2 - d_p1);
144 }
145 
149 inline double QwtScaleMap::sDist() const
150 {
151  return qwtAbs(d_s2 - d_s1);
152 }
153 
160 inline double QwtScaleMap::xTransform(double s) const
161 {
162  // try to inline code from QwtScaleTransformation
163 
164  if ( d_transformation->type() == QwtScaleTransformation::Linear )
165  return d_p1 + (s - d_s1) * d_cnv;
166 
167  if ( d_transformation->type() == QwtScaleTransformation::Log10 )
168  return d_p1 + log(s / d_s1) * d_cnv;
169 
170  return d_transformation->xForm(s, d_s1, d_s2, d_p1, d_p2 );
171 }
172 
180 inline double QwtScaleMap::invTransform(double p) const
181 {
182  return d_transformation->invXForm(p, d_p1, d_p2, d_s1, d_s2 );
183 }
184 
193 inline int QwtScaleMap::transform(double s) const
194 {
195  return qRound(xTransform(s));
196 }
197 
198 #endif
qwt5-5.2.3/doc/html/functions_0x72.html0000644000175000017500000002652312052741151017154 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- r -

qwt5-5.2.3/doc/html/inherit_graph_38.md50000644000175000017500000000004012052741151017224 0ustar gudjongudjon316f4eaa35e0022ea99dc9be5848ce54qwt5-5.2.3/doc/html/qwt__clipper_8h_source.html0000644000175000017500000001544312052741134021033 0ustar gudjongudjon Qwt User's Guide: qwt_clipper.h Source File
Qwt User's Guide  5.2.3
qwt_clipper.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_CLIPPER_H
11 #define QWT_CLIPPER_H
12 
13 #include "qwt_global.h"
14 #include "qwt_array.h"
15 #include "qwt_polygon.h"
16 #include "qwt_double_rect.h"
17 #include "qwt_double_interval.h"
18 
19 class QRect;
20 
25 class QWT_EXPORT QwtClipper
26 {
27 public:
28  static QwtPolygon clipPolygon(const QRect &, const QwtPolygon &);
29  static QwtPolygonF clipPolygonF(const QwtDoubleRect &, const QwtPolygonF &);
30 
31 #if QT_VERSION >= 0x040000
32  static QwtArray<QwtDoubleInterval> clipCircle(
33  const QwtDoubleRect &, const QwtDoublePoint &, double radius);
34 #endif
35 };
36 
37 #endif
qwt5-5.2.3/doc/html/class_qwt_polygon_f_data-members.html0000644000175000017500000001242012052741142023050 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPolygonFData Member List

This is the complete list of members for QwtPolygonFData, including all inherited members.

boundingRect() const QwtDatavirtual
copy() const QwtPolygonFDatavirtual
data() const QwtPolygonFData
operator=(const QwtPolygonFData &)QwtPolygonFData
QwtData::operator=(const QwtData &)QwtDataprotected
QwtData()QwtData
QwtPolygonFData(const QPolygonF &)QwtPolygonFData
size() const QwtPolygonFDatavirtual
x(size_t i) const QwtPolygonFDatavirtual
y(size_t i) const QwtPolygonFDatavirtual
~QwtData()QwtDatavirtual
qwt5-5.2.3/doc/html/inherit_graph_17.md50000644000175000017500000000004012052741151017221 0ustar gudjongudjonf92f60e282ba3cf5462239c1b5240a55qwt5-5.2.3/doc/html/class_qwt_text-members.html0000644000175000017500000003300612052741143021053 0ustar gudjongudjon Qwt User's Guide: Member List
QwtText Member List

This is the complete list of members for QwtText, including all inherited members.

AutoText enum value (defined in QwtText)QwtText
backgroundBrush() const QwtText
backgroundPen() const QwtText
color() const QwtText
draw(QPainter *painter, const QRect &rect) const QwtText
font() const QwtText
heightForWidth(int width, const QFont &=QFont()) const QwtText
isEmpty() const QwtTextinline
isNull() const QwtTextinline
LayoutAttribute enum nameQwtText
MathMLText enum value (defined in QwtText)QwtText
MinimumLayout enum value (defined in QwtText)QwtText
operator!=(const QwtText &) const QwtText
operator=(const QwtText &)QwtText
operator==(const QwtText &) const QwtText
OtherFormat enum value (defined in QwtText)QwtText
PaintAttribute enum nameQwtText
PaintBackground enum value (defined in QwtText)QwtText
PaintUsingTextColor enum value (defined in QwtText)QwtText
PaintUsingTextFont enum value (defined in QwtText)QwtText
PlainText enum value (defined in QwtText)QwtText
QwtText(const QString &=QString::null, TextFormat textFormat=AutoText)QwtText
QwtText(const QwtText &)QwtText
renderFlags() const QwtText
RichText enum value (defined in QwtText)QwtText
setBackgroundBrush(const QBrush &)QwtText
setBackgroundPen(const QPen &)QwtText
setColor(const QColor &)QwtText
setFont(const QFont &)QwtText
setLayoutAttribute(LayoutAttribute, bool on=true)QwtText
setPaintAttribute(PaintAttribute, bool on=true)QwtText
setRenderFlags(int flags)QwtText
setText(const QString &, QwtText::TextFormat textFormat=AutoText)QwtText
setTextEngine(QwtText::TextFormat, QwtTextEngine *)QwtTextstatic
testLayoutAttribute(LayoutAttribute) const QwtText
testPaintAttribute(PaintAttribute) const QwtText
text() const QwtText
textEngine(const QString &text, QwtText::TextFormat=AutoText)QwtTextstatic
textEngine(QwtText::TextFormat)QwtTextstatic
TeXText enum value (defined in QwtText)QwtText
TextFormat enum nameQwtText
textSize(const QFont &=QFont()) const QwtText
usedColor(const QColor &) const QwtText
usedFont(const QFont &) const QwtText
~QwtText()QwtText
qwt5-5.2.3/doc/html/functions_0x6d.html0000644000175000017500000003115012052741151017225 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- m -

qwt5-5.2.3/doc/html/dir_24fcbade20721d6ed73b69cf81173a70_dep.md50000644000175000017500000000004012052741143022207 0ustar gudjongudjon019cf32644d471fd35a9da280a18f8d8qwt5-5.2.3/doc/html/class_qwt_scale_draw-members.html0000644000175000017500000004670512052741142022204 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleDraw Member List

This is the complete list of members for QwtScaleDraw, including all inherited members.

Alignment enum nameQwtScaleDraw
alignment() const QwtScaleDraw
Backbone enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
BottomScale enum value (defined in QwtScaleDraw)QwtScaleDraw
boundingLabelRect(const QFont &, double val) const QwtScaleDraw
draw(QPainter *, const QPalette &) const QwtAbstractScaleDrawvirtual
drawBackbone(QPainter *p) const QwtScaleDrawprotectedvirtual
drawLabel(QPainter *p, double val) const QwtScaleDrawprotectedvirtual
drawTick(QPainter *p, double val, int len) const QwtScaleDrawprotectedvirtual
enableComponent(ScaleComponent, bool enable=true)QwtAbstractScaleDraw
extent(const QPen &, const QFont &) const QwtScaleDrawvirtual
getBorderDistHint(const QFont &, int &start, int &end) const QwtScaleDraw
hasComponent(ScaleComponent) const QwtAbstractScaleDraw
invalidateCache()QwtAbstractScaleDrawprotected
label(double) const QwtAbstractScaleDrawvirtual
labelAlignment() const QwtScaleDraw
labelMatrix(const QPoint &, const QSize &) const QwtScaleDrawprotected
labelPosition(double val) const QwtScaleDraw
labelRect(const QFont &, double val) const QwtScaleDraw
labelRotation() const QwtScaleDraw
Labels enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
labelSize(const QFont &, double val) const QwtScaleDraw
LeftScale enum value (defined in QwtScaleDraw)QwtScaleDraw
length() const QwtScaleDraw
majTickLength() const QwtAbstractScaleDraw
map() const QwtAbstractScaleDraw
maxLabelHeight(const QFont &) const QwtScaleDraw
maxLabelWidth(const QFont &) const QwtScaleDraw
minimumExtent() const QwtAbstractScaleDraw
minLabelDist(const QFont &) const QwtScaleDraw
minLength(const QPen &, const QFont &) const QwtScaleDraw
move(int x, int y)QwtScaleDrawinline
move(const QPoint &)QwtScaleDraw
operator=(const QwtScaleDraw &other)QwtScaleDraw
QwtAbstractScaleDraw::operator=(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
orientation() const QwtScaleDraw
pos() const QwtScaleDraw
QwtAbstractScaleDraw()QwtAbstractScaleDraw
QwtAbstractScaleDraw(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
QwtScaleDraw()QwtScaleDraw
QwtScaleDraw(const QwtScaleDraw &)QwtScaleDraw
RightScale enum value (defined in QwtScaleDraw)QwtScaleDraw
ScaleComponent enum nameQwtAbstractScaleDraw
scaleDiv() const QwtAbstractScaleDraw
scaleMap()QwtAbstractScaleDraw
setAlignment(Alignment)QwtScaleDraw
setLabelAlignment(Qt::Alignment)QwtScaleDraw
setLabelRotation(double rotation)QwtScaleDraw
setLength(int length)QwtScaleDraw
setMinimumExtent(int)QwtAbstractScaleDraw
setScaleDiv(const QwtScaleDiv &s)QwtAbstractScaleDraw
setSpacing(int margin)QwtAbstractScaleDraw
setTickLength(QwtScaleDiv::TickType, int length)QwtAbstractScaleDraw
setTransformation(QwtScaleTransformation *)QwtAbstractScaleDraw
spacing() const QwtAbstractScaleDraw
tickLabel(const QFont &, double value) const QwtAbstractScaleDrawprotected
tickLength(QwtScaleDiv::TickType) const QwtAbstractScaleDraw
Ticks enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
TopScale enum value (defined in QwtScaleDraw)QwtScaleDraw
~QwtAbstractScaleDraw()QwtAbstractScaleDrawvirtual
~QwtScaleDraw()QwtScaleDrawvirtual
qwt5-5.2.3/doc/html/class_qwt_rich_text_engine.html0000644000175000017500000003710312052741165021763 0ustar gudjongudjon Qwt User's Guide: QwtRichTextEngine Class Reference
QwtRichTextEngine Class Reference

#include <qwt_text_engine.h>

Inheritance diagram for QwtRichTextEngine:

List of all members.

Public Member Functions

 QwtRichTextEngine ()
virtual void draw (QPainter *painter, const QRect &rect, int flags, const QString &text) const
virtual int heightForWidth (const QFont &font, int flags, const QString &text, int width) const
virtual bool mightRender (const QString &) const
virtual void textMargins (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const
virtual QSize textSize (const QFont &font, int flags, const QString &text) const
- Public Member Functions inherited from QwtTextEngine
virtual ~QwtTextEngine ()

Additional Inherited Members

- Protected Member Functions inherited from QwtTextEngine
 QwtTextEngine ()

Detailed Description

A text engine for Qt rich texts.

QwtRichTextEngine renders Qt rich texts using the classes of the Scribe framework of Qt.


Member Function Documentation

void QwtRichTextEngine::draw ( QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text 
) const
virtual

Draw the text in a clipping rectangle

Parameters:
painterPainter
rectClipping rectangle
flagsBitwise OR of the flags like in for QPainter::drawText
textText to be rendered

Implements QwtTextEngine.

int QwtRichTextEngine::heightForWidth ( const QFont &  font,
int  flags,
const QString &  text,
int  width 
) const
virtual

Find the height for a given width

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
widthWidth
Returns:
Calculated height

Implements QwtTextEngine.

bool QwtRichTextEngine::mightRender ( const QString &  text) const
virtual

Test if a string can be rendered by this text engine

Parameters:
textText to be tested
Returns:
QStyleSheet::mightBeRichText(text);

Implements QwtTextEngine.

void QwtRichTextEngine::textMargins ( const QFont &  ,
const QString &  ,
int &  left,
int &  right,
int &  top,
int &  bottom 
) const
virtual

Return margins around the texts

Parameters:
leftReturn 0
rightReturn 0
topReturn 0
bottomReturn 0

Implements QwtTextEngine.

QSize QwtRichTextEngine::textSize ( const QFont &  font,
int  flags,
const QString &  text 
) const
virtual

Returns the size, that is needed to render text

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
Returns:
Caluclated size

Implements QwtTextEngine.

qwt5-5.2.3/doc/html/class_qwt_plot_zoomer__inherit__graph.png0000644000175000017500000001177712052741157024051 0ustar gudjongudjon‰PNG  IHDR}AäjbKGD˙˙˙ ˝§“´IDATxśíťyPç˙Çź…PAÂĺJŐZm-U‹W) 2S>~ĺĘ•ęU‚~>“žžQŘDćÎť;«V­JOOW·p†nDc‚5ZđüööööCďuuuˇˇˇNNNfffsćĚŮ»wogg§î.ŐŐŐÔ1@Ŕ¬ÝóxĽŔŔŔ¦¦&}:R Ɖ÷ŞŞŞwß}×ÚÚ:??żŁŁC(ţő×_«V­Q˝sssňET2âŕź}ö™ˇ7ô'ůňeŤ­¬]»6::šŢ˘R©<<<öíŰçăăsěŘ1’$BGŹ%IR"‘Đ÷xűöíˇŢI’ܰaèĺććf‡SWW×ŰŰ»sçN‡éÓ§ńĹrąĽŞŞjöěŮçÎťłłłsttĽtéRkk«ŽÁďŢ˝Ëăń¨ĺ¸»»[XX¸¸¸¤¦¦Ň;Şimmn§'Nś°´´ĚĚĚÔ(`DcAAAAAAô–QďÝÝÝůůů111ôF‚ bccłłłýüünÝşE=kkë‚‚„PAAÁ’%KŞŞŞ(#<OëČ!!!"‘ZkÖ¬™;wnLLĚóçĎ+++ “’’B---uuuQQQqqq<o¸Á%ÉńăÇ—.]J­˙üóŻľúŠţ ‡–Q__ßŐŐeaaQ]]M’äűďżţüůÁÁA.—ŰŮŮIíâć͛˗/§ş·¶¶’$YYY©aMcp++«M›6=yň„ááÇ}}}rą<%%ehGjAÇN[ZZÔ»Đ(`´Ç»–ëş±··'B,»şşŇŰťśś/^lccS\\|űöí´´´´´´ŇŇŇ‚‚‚Ó§OÓ7677:¸źźźP( /--˝zőŞD"‘Ëĺ666ô˝#„ĚĘ̌ăÚÄDËßëp#„îŢ˝»}űv‚ fÍš5ÜÔ±SjaÄôaÔݬ­­===Ož<©náóůőőő'OžÜĽy3Bč>‰DĎž={ăŤ7ĽĽĽAccăęŐ«őśšjÁG}diiéččhjjŞ>ôz{{‹ŠŠBAڶl„P[[ۧź~zöěŮâââřřřá6Óg§Ě  ĂäĺJJJşpáBllěŁGŹş»»_ýő’’’oľů!äççwć̙իWáĺĺuęÔ).—K„R©”Ëĺ:FŢ´iSuuuRRRxx8BČÜÜ<00pďŢ˝mmm---[·nMLLÔÚQźÁ˙÷ÎáHĄŇcÇŽ)•Ę®®.uGő‚ţ; LĽ/Z´čĎ?˙”JĄžžžS§N˝páBTTővŹZ·nťL&óđđ@y{{÷ööúůů!„fĚ1oŢ<;;;©T*“É4ÎßcccB“'O޸qŁL&óöö¦ö•śś¬P(.\¸hŃ"‡„„­%Ń®l{{űC‡yzzş»»oٲeţüůꎓ&MRŹ çNÇÄhßW‡Łżżż´´”Yß ŹÎ#‡ĂÂÂÂÍÍÍPŁMxđő°w°w°w°w°w´\ź9wîśńëŘÔŐŐi\ÎzáSReeĄ••PmŁ…°°ojĘ–jźĎ§«fřéś;wjťťcżýV]CŘ:żgfŢŁţŻP¨ ka+˝*D˘R„PW×óÂÂGĐĺ0•Ţóó«ź?—!„LMMD˘{Đĺ0•Ţ…Â{¦¦&!…BőëŻýýĐŤöyďë“ý÷ż %µ*“)®]{[Řçť.!dbB…Ĺ€ő0}Ţ…Âbú?o*Ş[·Ş»»űKbËĽKĄ}……)•/ś;’$™›[U3Xć='§|h#I’,›jXć] ("‡üŔ\Ą"˙řăqssHIĚ`“÷¦¦Î{÷T*-?ě755ůĺ- ă6y˙ĺ—˛án¦ P(…B6}€ő÷ôyí5ggkőjoŻĚ‚ËáüďĐyóÍ@u1:]˛…éÓ÷&'‡}ř!+ż<¦yf"˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝Ă€˝1Ćű¨ĐoĐldĚÍ]LL&ěÚÓÓsŚŢĆú;›ŕŕŕ'OžěŰ·ĎPOiüsçÎťüqŚŢ đ»˛Yłf˝R‘~ůEžßaŔŢaŔŢaŔŢaŔŢa0žwFËŃÓßtç»9ýMŚäݰŃrôô·… —4®ă管ÉZ1x´ś:ýMťwE’dwwwDDßvđŕAúŁ*•*""Â××·żżź$IÝIpUUU:žËXRPÔăx7x´śFú›šččh©TZUU•źźźššš™™Iµ“$ąk×®†††+W®PÓÎIp/MĆ˙3Ć×MźăÝŕŃrôô7zľ‡Ăyüř15řożýV\\L=Ĺĺr©”7RŹ$8ݰćxWGËi´Ť–Űşu+ŹÇŁ˘ĺ¨Ô'5ôy¦»»;;;{ćĚ™ô $‰JĄš;w.µşfÍšeË–!„d2Y]]ÝŰożÍçóŐ[RIpÔ»ôÚµkĐ‹Ip/cx©ŃrjBOź>ĄVsssł˛˛B\.W(ž9s&11±şşé—÷˛1ŇůĚË‹–ScnnľeË–¸¸¸¶¶¶ššš={ö(•J„‰‰‰ąąůňĺË#""vďŢŤF?÷ň0’÷±GËéł—łgĎr8ś xzzFDDĐMHHxđŕÁĄK—Ţńs/‘1ľ?čy©–F˱ć}u8^ĺh9|}ěěěěě|ŹŁ°°Đ××wěă°…ććć±2VďÔ'oăŁT55¶NN}662#ďÚÖÖv۶mc„­÷eNO/ŠŤ˝´ví/… lťß33ď!D<ęęz] X齵µç·ßţBDeg—A—ĂVzĎÉ)Ł®•“$)A—ĂVzOO/¦R>T*˛¸¸A"Ń÷K ăöy‹Ű+*ž¨ÓULMM˛˛JaKbűĽ_ąRŞÎô@)•ŞŚ öM5ěóž‘Q$—˙“WF’duµäńăŔ’Ŕ2ďŐŐ’ÚÚęLF —kš•UU3Xć=+«ÄĚLó3¶\®ü÷ż˙©‡1lňN’¤@P<8¨úPccGEĹă—Ä6y/)ihjŇ~ĘČş©†MŢoܨB03ă ýO©Týúë}čG›râ¶m[)—˙“4śž^´jŐkłfMŁVW¬pŞ‹ l˝‰pN†Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; Ř; #˙Ţ###ŁŁŁĂĄ0ŕúőëĎžŤÇ_ňŮÚÚęÚB÷m=Ż^˝j¬R'áááşĹŽpĽ÷öö"%t˝:÷őőéŢĎď0`ď0`ď0`ď0`ď0Ě;lëÍ ăýĺĹ‘éËÍtźŢ뙩`ś8˛ŽŽŽíŰ·ŰŮŮÍś9ó믿¦çQŤ`ś@3}˛7 pĽ-Žl×®]ÝÝÝ>ĽyóćŐ«W/\¸Ŕâ@3Ý/‹>Ç»qâČLLLęęę¨Á…Bá[o˝5>Íô9Ţ pu™«ë w"G––––––FĹ‘ť>}šľ±ąąąîYřŮłgˇ9sćP«®®®ę,=Gh†Ş®®¦š9rŃÍčĎ4ĐĚóŚqâČśśśB˙ý7µZ__ďěě<ŞĆU ™aÎgŚGćďďŰŇŇRSSsčСm۶±7ĐĚ0ŢŤG6eĘęŹĆĎĎo˙ţý,4Ó=ýŹ%›‹ĄqdcÇHç‘Ăń*Ç‘Ťľ>ööööööĂ×Ĺ,--‘qÖ'áááş7ůţŔąąą#~ Çř´·ÄÇ—nÚäâă3ş-¬[·N÷÷ôFľĽ~ýzĂŐc0~ü1Ź$ɇ’“ ka[çwˇ°!T[Ű\[˲D Vzݬl¬«kE™™q¨€u°Ň{ff —kŠTddŤř5aźw•ŠĚČ(R45u–”aKbűĽŐ·¶ö¨WÍĚ8ěJTˇ`źwő$C18¨‰Š•J•Ž.ă–y—Ë•YY÷čé*ˇŽŽţ߯…*‰,ó^Xř¨§GóË\.!Ţ©‡1,ó.•ššj4Ę媜ś˛˝ľU0N`“÷ţţÁ˙ü§BˇP}h`@~ëVµńKb ›Ľß¸QŐ߯%ś!DTŇ9k`“w±¸]#TŤRIRź`Ů›ňĘäreUŐ?ß˝ţŕţ·ßn|˙ýÔęôé¶<ž%PiنMů|\®é’%łč-..v-lMóĚD{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡AËď=zzz"##őĽó+ MMÓmmĄ“&Ťż,‰ŹŹ_ąrĄFŁďééé!!!^^^FŞkBSYYéĺ啞ž®Ń>ěďl:ô’Kz%8|ř°Öv<żĂ€˝Ă€˝Ă€˝Ă€˝Ă0¦ß K$’”””˘˘˘žž;;;ʰ°0ęVźĂ!‹###óňňÄbqXXşÝÚÚÚÍÍ-::ÚÎÎN˝ŤîBŢŢŢC7 â˘Ć9Ě˝744DEEůřř$&&:88ĹâóçĎďŢ˝űÔ©SşŐ«árąjąíííÉÉÉÇŽ;zô¨ţ5Đ÷őőíÜą“- Ěç™ăÇŹűúúĆÄĸ¸¸XXX,X°ŕČ‘#666?˙üs\\ ŇŢŢîííť––†’JĄŢŢŢaaarąÜŰŰ»««‹>šťť]@@ăC§··7!!aóćÍÁÁÁ?ýôS{{»ÖH’LHHŕńx±±±Z;* ­Ťb±řăŹ?NOO˙đĂýýýŻ_ż~ţüůŤ7úűű«Ź‰>źďďďśś¬T*©^"‘hýúőb1“»Ę1ôţüů󲲲ŔŔ@z#Aż˙ţűŠ+JKKB“'O.//G•——»şş¦¦¦rąÜ[·nMť:•Ţ·˝˝] Ěź?_cG|>żŻŻ/55•Ďç˙ńÇ×®]Ó:ÂĹ‹ëëëřᇣµŁ@ ®±­­­ŁŁăňĺË rą<### ŕÜąsÔP'Ož”Éd)))'Nś(//§ŇĺÚŰŰkkk/^ĽčââÂ@ CďTФF»łłsGG‡»»űýű÷•JeEEĹ–-[îßżŻR©ĘËËW¬XAß:l)BCCűűűżüňKŤ ňóó÷ěŮccc3sćĚđđđk×® -¦¸¸8##ăČ‘#ÖÖÖ::7šJĄúä“O&MšD%©—»»»B …"///::zęÔ©Ó§Oß±cÇőëשö;vL›6Ť™@†ó;•ˇÖŇҢÖÖÖ6mÚ´9sćXZZ>zô¨˘˘âűďżżqăFMMMYYŮŢ˝{éÓçw­P×樤2„łłsk«ćMfš››˙őŻBnnnNNŽ÷‹ ×q¸ĆŮ·oźR© łµµŤŚŚdfŚÎ°×ß™}ú‹ĹóćÍ{eÇŰŰŰ˝ţnŕëfffXş>ŕë30`ď0`ď0`ď0`ď0`ď0 {ť ''ÇuLTšššěííµ<04úą˛˛RϸŔčźĎ*™M÷ežHŕůěěě†˙_ťś/Şü§łIEND®B`‚qwt5-5.2.3/doc/html/qwt__polygon_8h_source.html0000644000175000017500000001410112052741135021053 0ustar gudjongudjon Qwt User's Guide: qwt_polygon.h Source File
Qwt User's Guide  5.2.3
qwt_polygon.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_POLYGON_H
13 #define QWT_POLYGON_H
14 
15 #include "qwt_global.h"
16 
21 #if QT_VERSION < 0x040000
22 #include <qpointarray.h>
23 #include "qwt_double_rect.h"
24 
25 typedef QPointArray QwtPolygon;
26 typedef QMemArray<QwtDoublePoint> QwtPolygonF;
27 
28 #else
29 
30 #include <qpolygon.h>
31 typedef QPolygon QwtPolygon;
32 typedef QPolygonF QwtPolygonF;
33 #endif
34 
35 #endif
qwt5-5.2.3/doc/html/form_0.png0000644000175000017500000000211012052741145015353 0ustar gudjongudjon‰PNG  IHDRä˝ Ô0PLTEZ? tRNS.H]o€Źž¬ąĹŇÝéô˙Şg°ď·IDATxí]Ýš›: ˙Űđűżí™‘aךž«v/ʇ–4Kň-üř'đ )řąňWŕ-đŃŔłÄ­¸Ü©dř(ąßÓIđ{‰Űě~1ođżä€[r©í·†Á¬l?¤kŘö—í=zi/ř(ŔĺÎĄ2_űÄhRbn›ľ–ĎěÜżż¸Ü±t9'ďë;/uG$«NĚŔÜňë®3.üR"A¸ÜWZÂň+–ćwţgŇŕMĚ؂ߪ.˘˛,¤%ݧ¦éަ”Źu‚č’ŽĎ‘,*?i¬\âŰBmżoY *s]L2k$Z§$B˛ĺ3-a}Bť“EŚŠg±ś[xVu˘ű\{ăó“Oń.w­ĘÁ0dUŔń÷Á _[*Z2ÄeŚß[íWxÚ<-rZ´ĎČĺäÎ4Ë÷Îę*ÝJ!, ¬Ę%ŁŠë04•ćKSR3-ińr=®fcBmSlŘ€ŕßäé;R_ôb©*y€ËgďšmúÄN¨Rž B¨î&˘e+6ź¸üęř˘5Á&}ĽŕńJY˝’¸WĚĎ4‚Ţ˝ĎÚ}·żá¸,'e]ť"Ő˛i6ŇÓ ěIËIŠ<×hLZŁ4鉱rĄ…§3eiĐŁ©னßöńéh§/®­Â÷MËřXWU€Ë}ŇâŐËŚ}b5ůŮůĹ~ć*ă1í±#MY,Ü^¦U‚Ňh7U÷LK{< D‰2ăOˇ9wś<Űĵ§3e©9 qwt5-5.2.3/doc/html/class_qwt_event_pattern-members.html0000644000175000017500000003060712052741140022746 0ustar gudjongudjon Qwt User's Guide: Member List
QwtEventPattern Member List

This is the complete list of members for QwtEventPattern, including all inherited members.

initKeyPattern()QwtEventPattern
initMousePattern(int numButtons)QwtEventPattern
KeyAbort enum value (defined in QwtEventPattern)QwtEventPattern
KeyDown enum value (defined in QwtEventPattern)QwtEventPattern
KeyHome enum value (defined in QwtEventPattern)QwtEventPattern
KeyLeft enum value (defined in QwtEventPattern)QwtEventPattern
keyMatch(uint pattern, const QKeyEvent *) const QwtEventPattern
keyMatch(const KeyPattern &, const QKeyEvent *) const QwtEventPatternprotectedvirtual
keyPattern() const QwtEventPattern
keyPattern()QwtEventPattern
KeyPatternCode enum nameQwtEventPattern
KeyPatternCount enum value (defined in QwtEventPattern)QwtEventPattern
KeyRedo enum value (defined in QwtEventPattern)QwtEventPattern
KeyRight enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect1 enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect2 enum value (defined in QwtEventPattern)QwtEventPattern
KeyUndo enum value (defined in QwtEventPattern)QwtEventPattern
KeyUp enum value (defined in QwtEventPattern)QwtEventPattern
mouseMatch(uint pattern, const QMouseEvent *) const QwtEventPattern
mouseMatch(const MousePattern &, const QMouseEvent *) const QwtEventPatternprotectedvirtual
mousePattern() const QwtEventPattern
mousePattern()QwtEventPattern
MousePatternCode enum nameQwtEventPattern
MousePatternCount enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect1 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect2 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect3 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect4 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect5 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect6 enum value (defined in QwtEventPattern)QwtEventPattern
QwtEventPattern()QwtEventPattern
setKeyPattern(uint pattern, int key, int state=Qt::NoButton)QwtEventPattern
setKeyPattern(const QwtArray< KeyPattern > &)QwtEventPattern
setMousePattern(uint pattern, int button, int state=Qt::NoButton)QwtEventPattern
setMousePattern(const QwtArray< MousePattern > &)QwtEventPattern
~QwtEventPattern()QwtEventPatternvirtual
qwt5-5.2.3/doc/html/class_qwt_picker_click_point_machine__inherit__graph.map0000644000175000017500000000026112052741155026770 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_abstract_scale__inherit__graph.png0000644000175000017500000001445612052741152024442 0ustar gudjongudjon‰PNG  IHDR+pÉřÁcbKGD˙˙˙ ˝§“ăIDATxśíťiXWÇďdAYe×€hAZ*n¸ lZˇ€V´UAÂć«­ u§ ‹ŠZ©TEEQdôŃGĹ" "•”E-,˛e}?ŚÍ“B€„F’űűnćž{ćäüçĚÜ™; @ ŚŔaí"Ő@B X` T ‚%¬S=z´wď^¬˝"TUUăââ&Mš„µ#ź.TÍ…şąąQ©Tccc¬‘¨Tjbb˘››ÖŽ|şHW ďŰ·k/¤*•е ź:đ:Á¨@K !, „@°*Á¨@ţÔ××=zÔŮŮŮÖÖvíÚµ§NťúđáĂĐ]Ş««żúę+Ţ–KKË ±Ť€¦„‚·űű÷ďŹ9âââbgg·~ýúsçÎőőőŤŘDě@ňáíŰ·^^^rrrQQQ·nÝ:pŕ@MMŤŹŹĎ°"äĄŻŻŹJĄÎ™3'33sô\‡łsçNeeĺ3gÎÜşuëçź.))‰ŽŽĆĘČ@ ůpâÄ [[[ …B&“eeegÎśyôčQ%%Ą?ţř#(((11ĐŇŇbiiyĺĘ@kk«ĄĄĄ§§'Á°´´looäĺĺiiiůůů=yň¤­­Ť×~JJŠ“““““ÓÉ“' €JĄzxxŘŮŮmÚ´‰JĄrM•””¬]»655ő믿®®®~óćͶmŰěěěÖ¬Y“••…ZëîîwtttvvľpáB{{;·{eeemmí?ü ŞŞJ"‘>űě3 …ŇÓÓĂ·#ÚČw.˝˝˝‘‘‘NNN...§Oźf±XŁř3HPýéîî~ţüą‹‹ o#‚ ...>\°`Aaa! ¸¸XNN®¨¨PTT¤ŻŻO$ďßżŻ¨¨¸{÷îĘ•+uuu§Oź~ďŢ=®)ńěŮłß˙=22ňéÓ§—/_îîî>|ř°żżzzş““S\\Ż©–––ŠŠŠ„„2™|ţüyssó[·nyxxÄĆƢŁŁŁ;::âă㣢˘233‹‹‹ąÝ§M›¦§§·wďŢżţú«łł ŻŻĘ·c~~>€ď\˘ŁŁűúú.^Ľxňäɢ˘˘ëׯŹÎŹ E@ö­WęęęýÚµ´´h4ÚüůóKJJX,Vqq±łłsII ›Í.**Z°`ďĆ Ż^˝˛µµŘŮŮő;ݱc‡’’Ň´iÓ6mÚ”››Ëb±innfłŮ+W®Ľxń"ďĆL&sëÖ­***€Í›7ŻYłŹÇ„®®.ôŰěěl%%%2™ŞˇˇÁí‹Ăábbb.\‘‘áîîľqăĆ . ×u8Ż'YYY~~~ŠŠŠÚÚÚ[·nÍÉÉ1Ú©{*mX”””ŤŤŤZZZĽíÍÍÍ***zzz'N,///..Ţ»wď˝{÷^ż~ýüůó€€ŢŤ333étş»»;€ÉdvvvVUUM›6 € ×ňÔ©Si4Ú¤I“Ž=zőęŐ'NnٲENNŽkŠ@  .ĘĘĘ>Ś ÷ŃÚÚĘfł555Ń?gĎž ¨®®ćv—““[˝zőęŐ«9NyyůŮłg:tđŕAľůÁĄµµ•Éd®X±˘_¬ ˘Ř999SSÓÔÔT´%))iÉ’%©©©‹/Ěź????żµµ•L&›ššćĺĺ577ż{÷ÝžĂádff››Ł-‡ÎĚĚôööFżmhh@EXWW§®®N§Óĺĺĺ#"" Ƶk×8ĆőAôC{{{xxxll¬AUUŐăÇŹĘĘĘ€¦¦&T0Ź?f0d2íY[[‰Ú144Üşuë®]»ëhbb2p.ĘĘĘ8îćÍ›ňňň€ŢŢ^ôŠ" đ,” %+++&&¦¦¦†N§wuuyxxĽ~ýzýúő€ůóç§ĄĄÍž=ASSÓ7nĚ™3‡@ Âfł™LfQQQkk«µµµĘżXYYĺää°Ůl‚ 111mmmoŢĽ9ţĽ˝˝=›Í |őę€D"‘H$®)^ŻĐU,x<ľłłóęŐ«l6»««‹H$ZXXÄĆƶ··×ÖÖž8q‚Ífs»ŰŮŮ%&&655Ńéôššš„„„E‹řvä;×"‘¸lٲS§Nµ···µµräŰ!Nxq8Üńăk…5 PâdË ++#ω"ŹÓÔT:zT¸ ąśśRăăU“Éľ{·¤«K¸·}ÜÝÍťśĚójűv«Ůłu„µ PâA¨¨ď'ŕp|ŠÎŮłĺäHBLN.ŕ-_L&++«tŽ…‡»‘É*Â~n§ŁŁd7q(f::z”•ĺúÍoápżżí_LĘT[[÷ýűŻX,^SHJJÁĽ’“#ť?˙=÷źź›ÍćĽßáă“ĐÜ,Ä›!â*Pś¤§98üJ ŕ]]çâńcK ŕMLt(ˇ_üž‘QÜŻ…Ífçĺ•Óh]|·Í_~qĺŢ!p۶YÝľí˙ömó’%‡ÁYqL€ ííÝ^^ńŢŢń›7/ÍĘ ţĺ—5Ó§«ˇwp8ääI÷~g€‚”TŔfóQEzzŃČś\łfţŞU¦D"ž@Ŕik+~ed¤}űv€ŻŻÍž=)îîgß˝kŢ D¬@ЧO«lmŹ=yRuőŞwP=€“‘!ś>퉜}ű?űLcX#ýhhhü¸r`]âp8ÉÉOGějDÄ--%‹sâÄş H"ďăcť‘ŘŘŘieő ,†c Ľ#/,;**ëĉlKËY‘‘kUU'ň~{÷nÉ?˙4řúÚřř /qqyŢâ>Π‚ {µ´Fř¶Ü¦¦N­kćLÍ~í ëěYjxxĆ’%źED¬ŃÖ†oă  GN}}›Żďź……Őű÷Ż^ż~ád6öö‘ĹĹ5|‰üüłăÖ­‚>V*/_ľŁP.×Ô´„„¬űNA"]k#ÄHZZá®]×ttT22ÖŃ™=[§©©ýĚd˛{{'Ępżť>]Mě#˘ißąpö,uĎž”ŚŚbX GDHşşú|}´µBBR{{c0bZZˇ––˙ ÄKiiťŤM„ÁîK—˘ŻÓ†Ś° Ç‹uŰ·˙ŃÚÚuáÂ÷vvł±vgá-†wî;‹á¨çB…Íć?~÷›o~ť:Uĺţý]’-?î4iSś&- âýűöďľ;}ňdNh誄„­jj“°öhě@‹á–-Ë~ü1yýzxĎPĚ@Ovv©ŤÍ±ÚZÚÍ›”Í›-¤pzHÄŮ߼Iy÷® Cń8t:34ôúĆŤçL23„}°SÂřňKrffІ ‹a1#PRVVogw<9ąŕĚĎđp7Ţ›R‹Ś aĎžii~uu4X ĹT Îť{đőבJJr99Á+V|µ;źsćčfeĂb( űCŁu}˙ý…ýűÓvě°NJňŃŃŻă,†â*đ?<|Xacs¬¬ěÝŤ~č3ÖX{ôI‹ˇčŔ űÁ ˝îęúŰÂ…ú™™ÁffşX{4>ŕ-†––° T ĽyÓěčxňęŐÇQQßť:µAAAvř>ĐbčዡĐ@‚¤¤§_}uŚĹbß˝čę:kwĆ+°Ž ©V`GGŹ—W|@Ŕ/Żĺ·oLź®ŽµGăX …Ezřôi•ŤMďÂv¬=’Đbxă,†!ŤiÇb±Źżűí·1łfiçä/Y2kŹ$33X BęX_ß¶fMěożÝ?rÄĺâĹú˝W"F¸Ĺ°¶¶ĂÁ.¦ĄZZţBŁugd¸»›Ká3ÖcŹ™™nvöNX CZŘÝM÷óűsűöK®®óďÜ•÷J@Ă! ľxQgoüŢ˝˛ ľ?xĐIFľx‹áşugęęhX{ôI á dł9§NÝ[±"jęT*U*¶ĘđN“ZY…Ăb$[čÂöđđŚ•Ň¶°ýSC^$V99/Ą|aű§ ,†\$PčÂvOĎspaű',†@ň¶Ź/ţ-†ľR[ %JçÎ=řć›_áÂöq‡™™žÔC Q wa»ŹŹ\Ř>‘Úb( „ Ű%33=îÓ¤RR Çw˛r¶/X¶K˛˛D´ÖÖJE1Ç ä]ŘţŰopa»Daf¦—ť-ĹpĽ*09ą.l—l¤¤Ž?˘ Űýý/{y-OO÷‡ Ű%‰/†ăLý¶‰x¬=‚Ś:’] Ç“SSźąşţ¦§§v÷n\Ř.m™éed::~ąkWҦMš›?`í‘ŕýwžX»3‚ŠĽĽ#|Â3::Zô˙x-ŢťNNF†<öă*++—••‰4ń扤ĄŞęŠĂŤ×‰·~ypx :‚ ćććú7JDFFNť:őÚµk"Úqss«©© ‹Wź8nnn‰‰‰nnn"ڑ༖yŘ­ęÂ… ]]]ÇÖ«± ))I\¦¦Nť*‘!U$5Ż„e`ާë@Dň€ „@°*Á¨@K !,‰+++=<<455I$’žž^@@@[Ű0Ża}őꕬ¬,ď”ŽŽŽĹ‹;::öőő 8z? ź,˘D đöíŰ 6čččL0aĆŚ?ýôSOO<’|ŤŚ/DŚÂđÉDh–••Í›7OAAJĄŇh´”””ţůÇÜÜ|Ř` „FŁY[[“Éä””‰zť„Qâp8vvv4-))鯿ţňóóăÝĆĐа··wtÜÇŃó ˝Á]VV&##Ă˝ß=Ş>‹ŢŰó€ÄÄġźo°˛˛ňóóămałŮK—. ´¶¶Žŕp8uuu€°°0‡S__Ď;\~~> ĆĆĆ/ľřâ‡~`±XhŕtuuĎž=«ŞŞŞˇˇqůňeÔ8ŤFswwWUUť2eĘîÝ»ét:⨨(uuu55µ;vôööűX†«««««ë°›‰ËŽQzţü9‚ ===ÜîĹĹĹk×®ĺđdo޵´´¸ąą)**’ÉäpŰ?|řŕĺ奮®®­­Ě`0Đ8źď"H>ÂäUSSÚ«źą-±±±***ęęę hűĐÁą~ýş®®î±cÇTTTÔÔÔBBBŐÔÔâăăQ “sŘP Ěáj`GG•JĄP(ĽŤ‚řűű߼yÓÁÁáţýű¨Ěňňňyyyźţ97.“'OÔ××/[¶ĚŔŔ ..‡űčCcccqqqeeĄŻŻoPPÚčííÝŃŃńňĺËÜÜÜŰ·o˙ú므ľľľśśś’’’ÜÜÜĚḚ̌°0ˇöb´=JłgĎ666ţöŰooܸŃÚÚ 011ąrĺĘ`#zyyµ´´Ľ|ů2;;;11‘ŰNˇPş»»KKKÚh``đţý{ˇöb´K”|||ŇŇŇšššâăă>|¸~ýzľĂˇG±3f Nź>ýP__Ď`0”””Đ9 ++«·oßH$’ššš÷Y4ı!Z‚‡H$˘Ó8Ž÷3úí`É),Â)PAAaٲeĽë"##«ŞŞ˘ŁŁööö©©© łfÍZľ|yrrr]]ݢE‹xŤH$4™âââJKKŹ?޶|­µ¦¦&ŕÍ›7čźUUUZZZ6›Ím¬¨¨ “1X70˘GÉŰŰŰÚÚýŚ ČĽyóÂÂÂňóóů§ĄĄ… Hee%úgUUúACCŹÇsó>|xúô)ŕgĚK^ ÁŔ]=8%§°=séŇ%˙ňňňŢŢŢŽŽż˙ţűÇ888ÄĆĆ.Z´AĺË—ź:uĘÚÚšH$"Âb± Ż)eeĺ?˙ü344ÝůČČČ899ůűű766ľ~ýzßľ}¨tq8śżżSSSiiiHHČĆŤG°çŁŠQňđđČËË;věXmmmoooyyůáÇW®\Éw,‰äââ˛cÇŽúúúŠŠŠ˘í222...ÍÍÍŤŤŤëÖ­‹ŠŠ»‰óJDÎ`É),B+ĐČČčÉ“'­­­Ë–-STTĽté’ŻŻ/:°±±éëë[şt)ŔŇŇňÇč©‚ŽŽÎŚ3TUUŃy.K—.ýß˙ţ÷ÝwßuvvňîĚ™3ňňňč‘ĎÁÁaçÎť€iӦ͝;×ĐĐĐĆĆĆŮŮŮ××w{>Ş%CCĂôôôôôôYłf©¨¨8::ž9sf°ábcc•””ŚŚŚ¬¬¬¸3 €Ó§O3™LCCC###uuő#GŽŚţ®Źńć• ľÉ)4Ľ…`¤WŢ===………#č8fŚńÝľ|úQęÇóA\vĆ]ĆEÔ™Á••555‹) FIX¤!bđąPK !, „@°*Á¨@K !,é˙¶ÂC‡ĹĹĹaâʨRRR"®÷Ć>xđŔÖÖV,¦¤IÍ+a‡˙Q`XXŘłgĎĆÖĄ1ÂÂÂbÇŽ˘ŰńńńÝČxaăĆŤb9ÖHp^ ËŔ<üĎ;ł!ČŻ!, „@°*Á¨@KţƤ ŐĐ˝ňIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_log10_scale_engine__inherit__graph.map0000644000175000017500000000024312052741155025067 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_picker_drag_rect_machine__inherit__graph.png0000644000175000017500000001053612052741155026441 0ustar gudjongudjon‰PNG  IHDRĂp,CS&bKGD˙˙˙ ˝§“IDATxśíťkP×˙ĆĎ’„  ‚ĹZ/ŕe, E‹5"xˇF‘¨ő‚Ă%X´NmŃQë˝RPZÄŠG1hąVK…ä'Š… H€HČe˙/vš˙’pqcОϫä\ľßçś}v÷dwaEňĆZä=: B ĐIb€N‚YŻŃďßżżoß>˝¦€  ‹äädŤ¦ż^»­]»öţýűîîîúK ™™™k×®Ő_ ý“îîîWŻ^ŐwnŃw ¸N‚t„ “ Äť!č$1Ś'Ő×ׇ„„ŘŘŘ;88ěÜął««Kw@`bb‚}@pXZZ´´´ŕŰčŽ0,°t+W®Ä˘(joo?ÜhŚL•ÁNŞ©©ůôÓOÍĚĚŠŠŠ:;;9Î_ýĺîî>¨™TP©Tô_ř|ľ‰‰ÉÖ­[NNN}}}„ &“É%%%íííŞ’ââ⡫Սž4ë›Qá¤đđđŕŕŕ„„''§±cÇş¸¸Ü¸qĂĘĘęСCK–,ůńÇ---‚?~ĐÖÖ† ČŚ3¤R)‚ řh|đAddäŔëűwww÷ćÍ›---mllbbbđ]PÝĽyóŇĄK±MŘŰŰjmmmkk»{÷ną\.âăăi4š@ ‘H+V¬¸té’*BZZZ@@€ękuuµ››Ű1cěíí/^Ľ¨[@RR’………µµőŻżţ ^?Ö:88$''c]ŇÓÓ±öĺ´ŢĂ;I,±Ůl|!‚ QQQąąą>>>………€ŇŇR33łââb@qqńś9sjjj°C‘ĄĄ%ľokkëéÓ§çÎť«–(22R(ÖÔÔĄ¦¦ćää`ĺ(І††666^ż~Ű„l6["‘TWW—”””””$$$`a«ŞŞęęęśśś,+55‹đęŐ«śśśőë׫r}˙ý÷Ë—/ďě쌉‰Ů˝{·ýýýŹ=jhhŚŚÜµk—šćööv>ź___Ťj”gxP}˛fÍš5kÖčnóäÉAd2™Zyee%ŤF{ôčŤF“Édaaaß}÷ť™™™\.ß±cÇž={TNŞ©©ÁŹFŁ­\ą˛ąą«ÂÚô÷÷“Éäż˙ţ ^VVVQQŐFDDP(”ööv¬ŞżżźBˇtuua_űí·yóća)°6X/…Bakk[YY‰˘hzz:ÁPĺBQôńăÇ˝˝˝2™,%%E·Ŕ‹/P­®®V ?.µZŤňÝ€ŚŚŚA›˝ †?&YYY!ŇÔÔ¤VţěŮ3›YłfŃéôŠŠŠŇŇŇuëÖYZZVVVűřřŕă×Ib±877wňäÉř­­­JĄňĂ?Äľ.X°ŔĹĹ •Jëëë?ţřăŘŘXUK™LF§Ó±őűâĹ‹ĆĆĆVVVŞ€FFFÁÁÁ)))€´´´|şňňrŹĎ>űěÚµkşcÇT## Űb`­6yÇđN233óôôŚŹŹW•ÄĆĆ644ÄÇÇűůů–-[–ťťÝÖÖ6cĆŚE‹eee={ölţüůĂĘbmm xúô)öőćÍ›Ř6¦P('111..N `-I$’j§ďééůăŹ?€¦[W,ëňĺËOź>˝wď“ÉT•wtt|őŐWçÎť«¨¨8tčnşď ¬Ő&ĎŕŢI€„„„´´´¨¨¨ÚÚÚľľ>±XěččřđáĂożýŕăă“8ţ|A-ZtöěŮ/ľř‚Bˇ ˘P(d2ŮPRP©T&“ÝŃŃQWW®P(FFFT*uŢĽy›6m ĂZěÜąłŁŁŁ˝˝}ÝşuqqqcÎ1ĂÁÁaăĆŤ~~~¦¦¦Şrl“ÉdˇPxňäI…B!‰´ .C—÷–Nš9sć„Bˇ§§çřńăÓŇŇ"""ěííĎś9X˛d‰T*őđđxyyőôô`§6[[Ű©S§ZXX…¡d9wî™Lž>}ş§§ç¦M›üýýńµGŽyôčŃĺË—IIIrąÜÉÉićĚ™'N}úŃŁGétúĹ‹ŁŁŁ322/_ľôňňJOO…B///‹%“ÉĽĽĽD">š………żżż@ Żď=‰äĉ~~~L&óÂ… ř.(Šž8qb÷îÝýýý€ľľľŘŘŘŐ«W$%%)Ц¦¦   ěěl__ߦ¦&UG333???źË—/céđÍţůçź;vx{{ަ^"‘;vlŐŞUAAAwnŤćíí­J4PĎŔáD"ü„ą»»¨brą\OOOŐWmÚ4NQnnîŞU«VŻ^}çÎđúÁ/((čĆŤX—»wďę<\†í$‰DRUU€/D$ ŕŢ˝{nnn•••>źojjĘăń<>JMMĹöăńăÇăűľ|ů2++kÚ´ij‰âăăĹbqjjj\\ÜíŰ·KKK±rEcccŰÚÚ~řáccc¬ĄT*MII9sć ŹÇËÉÉÁÂ>yňäŇĄKvvę÷:ÜÝÝkkkUŮUÍ~ůĺww÷ĽĽĽÄÄD•ŚîîîÔÔÔS§Neeeiś“žžžŰ·oĎť;WŐe µáđů|µ Y¶lY~~>A*•–••1 U mÚN‘\.ohh¸r势żżŞĄŠ®®®úúúôôt&“‰Ź3Pđpö[ą°#đĉŐĘ'MšÔŮŮéęęšššŞP(ř|>“ÉĚÎÎV*•<ĎÍÍ ß۱Ϧ¦¦ÎÎÎß|ó ľ\./((HKKŁÓét:=&&3 !!!???33“JĄb-ą\îµk×ĆŽ;~üřm۶ť;wÎŐŐU.—o۶ŤN§iŇ$|yGGÇ„ ĆŤW[[Ëçó÷íŰw÷îÝşşşŞŞŞť;wâS(ÝgnˇP¨T*mll°ŻłgĎ455Éd˛–––)S¦dffnÝşk)—ËW¬Xˇ¦L&k»ÝŮŮ©ÚHřf555‡FDµź¨ÉŔ?©Tzţüů“'OţôÓOőh^‚ #???<<śË媝FŐ¦ŠI&“±‚Gýż ¬Ő6ĂeŘNÂ!ŮŮŮaaaXIffćçźžťť˝`Á€««kii©P(´łłsvv...îčč5kVKKËĐł››^ĽxM\yyąL&łłł#“É¬ŻŻŹŚŚôöö¶łł377722ĘÍÍ;v, ŻŻO$IĄRŤóq˙ţ}'''쳪™H$:qâDbb˘ŁŁcCCCyyąJF[[ćˇÖÖVŤ©TŞŻŻoxx8Öe mĂQ‹ăííX]]}ŕŔçĎźŞm`LšěĄQ°ŽÚÉŠ›ÍfsąÜ„„„ćććţţţŢŢŢşşşőë×\]]Ż_ż>{ölAśťťŻ]»6wî\2™Ś R©”ËĺCIAˇP.\(‰ž>}zúôiĄR @„Bˇ8::úřřÄĹĹa-===Ďž=+‰şşş:¤m5‹Ĺׯ_żuëVpp°ZöĆD‰ÔÝÝ}ĺĘĄRŮŰŰKˇP/^śĐŮŮŮŇŇréŇ%mۉJĄJĄR…BˇQŹĆá ś{{{›cÇŽ-X°;wëÖ¦qŠ†Ë°&P#q’˝˝}RRRww7›Í^ľ|9—Ë]˝zµµµ5‡Ă¸¸¸Čd˛9sć>ůä“WŻ^a‹$KKK[[[??żîîîˇd‰ŽŽ&‘H6lŠŠZ¶lŮÂ… ńµ[¶lihhŔ~}|ýő× …"$$„Ĺb™››oٲE-¶¦ńňňň÷÷żyóćáÇ'Ož¬Ö†N§łX,6›şpáÂÉ“'cO×DEEŤ3&88xĎž=>>>d˛ćŁř„ )))Ѧgŕp4N··÷Ç˝˝˝‡˘M÷ ťA'p(ĽööŇ«WŻŽ PSSÓÔ©SGĐw4SPP0oŢ<ěTRVVöóĎ?§¤¤Z”)**:pŕ€Ú{o »[bllüţŮPVV–śś,‘Hž?~ĺĘl-Ľď6l6[$­YłfóćÍÖÖÖŘZ2ř–÷A0aÂáÇ ­â“ Äť!č$1@'AAĂŠ{×®]o_䢳łs`ákNb07nÄn5C :ضm›Z ˘vĄpť!č$1@'A: B ˙˛ĺţ{Xi­6IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_panner-members.html0000644000175000017500000002540612052741141022413 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotPanner Member List

This is the complete list of members for QwtPlotPanner, including all inherited members.

canvas()QwtPlotPanner
canvas() const QwtPlotPanner
cursor() const QwtPanner
eventFilter(QObject *, QEvent *)QwtPannervirtual
getAbortKey(int &key, int &state) const QwtPanner
getMouseButton(int &button, int &buttonState) const QwtPanner
isAxisEnabled(int axis) const QwtPlotPanner
isEnabled() const QwtPanner
isOrientationEnabled(Qt::Orientation) const QwtPanner
moveCanvas(int dx, int dy)QwtPlotPannerprotectedvirtualslot
moved(int dx, int dy)QwtPannersignal
orientations() const QwtPanner
paintEvent(QPaintEvent *)QwtPannerprotectedvirtual
panned(int dx, int dy)QwtPannersignal
plot()QwtPlotPanner
plot() const QwtPlotPanner
QwtPanner(QWidget *parent)QwtPanner
QwtPlotPanner(QwtPlotCanvas *)QwtPlotPannerexplicit
setAbortKey(int key, int state=Qt::NoButton)QwtPanner
setAxisEnabled(int axis, bool on)QwtPlotPanner
setCursor(const QCursor &)QwtPanner
setEnabled(bool)QwtPanner
setMouseButton(int button, int buttonState=Qt::NoButton)QwtPanner
setOrientations(Qt::Orientations)QwtPanner
widgetKeyPressEvent(QKeyEvent *)QwtPannerprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtPannerprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtPannerprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtPannerprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtPannerprotectedvirtual
~QwtPanner()QwtPannervirtual
~QwtPlotPanner()QwtPlotPannervirtual
qwt5-5.2.3/doc/html/class_qwt_plot_svg_item__inherit__graph.png0000644000175000017500000001312012052741157024333 0ustar gudjongudjon‰PNG  IHDR­»B‰’bKGD˙˙˙ ˝§“IDATxśíť{TWţŔżH¸ Aޢ’˘¶P-‡-„­+¨¬˛«"Ä#ĎU×¶G¶\k]·µ->ş«˛¶ -J×…ycu×SQËĂmmĄ"(&bĺax„„÷#ŻůýqűËN" 0hîçxźźžž®“ m,•Jů|~JJŠŤŤŤCFFj©P(BCCy<žłłsvv6µGą\NÍęQ1Ź;fmmmgg÷Ĺ_ĽóÎ;<ĎÎÎîóĎ?GALLLÖ¬Y“žž®›––&ô‹UUUŢŢŢćććÎÎÎh­GĄ:´ĺ8F@$q8©T:¶ťJRČĚĚ4¨Jgg'Á¸wďžA}nnîüůóŹ=úűß˙ž$É3gÎpąÜŔŔ@Tvww—H$l6›$I}Á€m۶EDD´µµŐÖÖzyyýóź˙$I2::zíÚµÍÍÍ555žžžú‡6–H$ććć111ťťťpttD-ÁŠ+šššŞ««.\h5™acšššľőÖ[ÝÝÝ B_FńŃę_ýµ»»; Ň××geeuůňe}Řőë׿˙ţűýýý)))vvvh­aSÚr¬#Ŕb±¶nÝ*“ÉFމ!!!!!!Ôš1{P[[K„Z­6¨///çp8·oßćp8jµzçÎťűöíărąŤćŤ7ŢŘłgĎȨT*&“ŮŃŃŻ\ą˛xńb•JejjZWW‡*óóóŃŠĂ6–H$ĐÖÖF’dUUjŮßßĎ`0Ş««QËśśśGyđ¨ c``Ť–©«kµZ''§ňňr’$322¨ŰxçÎťŢŢ^µZťššŞ_khŞĂ¶Ç´¶¶ŽĽÉá<ćşňČŘÚÚQ__ďââB­ojjrppX¸p!ŹÇ++++--ÍČČČČČ(///..ţä“OF+“ÉÔj5ŹÇŁv$“Ét:źĎG5Ď=÷ÜŤ€ĹbŮŘŘńóů®ĄĄ…$ÉůóçŁĹyóćŤ)`2™l6Ť–©ë2ŚđđđÔÔÔăÇŹ§ĄĄEFFR_ýţűďĂĂĂ ‚3gŽľrhŞĂ¶Ç ÂXóü€Ëĺ.[¶L$ékďßż/‰‚‚‚`őęŐyyyÍÍÍnnn~~~999MMMľľľ#‡µ··711Ń ŢÓÓsýúu{{{řé§źP›ű÷ďŹĐ‚0ëččHD]]ťA„Q&0úa‰ŠŠúňË/żýöŰ 6čëĺrů¶mŰNś8QVV– Żšę°-ź|FÉxć‰b±8---66¶şşz`` ««ë…^¸qăĆŢ˝{ 00đÓO?őőő%ÂĎĎ/))iĹŠL&“ ­V«V«Q }}}l6[ ÄĹĹÉĺňÖÖÖ-[¶?~śÍf‡†† …–––{÷î?:::((ČÂÂB_˙óQ×ÔTˇP9rD«ŐvvvaŘ–O>Ł…z’ÍüqďŢ˝{{{‹ĺââżxńâýű÷“$ŮŐŐĹd2Ź;F’dCC¤¤¤$ŮÝÝíęęĘápţűß˙äF’¤R©Ś°¶¶¶¶¶Ţľ}{__ŞÜ˛e —Ë}ţůç“’’8J`hcę)™ZnooGźćĚ™óĹ_L ôYµ··Ź>ć°s±X —/_6¨ď˝÷¸\îĽyó ÜÜÜV®\ů¨°C[Ž{Ff扏˘żżM”&–´´´ććfTÎĎĎwss›đ.¦9“1C=°ëĘfffMOAAÁ_˙ú×®®®üă˙@SŁbjF`şż ‹ĺrůěŮłÝÝÝťťťŃĨšóçĆ)ĆÁÁáěŮłtgA'S3Óýx€™°ě=Ŕ ;OôBŞNG^»vŻĄeřű‰źmŚŃ‡;~üńN7ĚuĆąsĂ*žyŚŃsçn>ęKŤF››kŚ”¦űý‰“ÁĽyvŽŽ\ýbOĎ ™ÓÔôç·Ä˘EN4ĺE'Ćţ}#Ěš—śµnÝÄßt˙aŚçĚP°ě=Ŕ`0ě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=ŔüĚ“?t|H$+++ş·€ÍžË`X<ľÝä#‰čÚ´ý>ReeĄR©ĚĘʢ+éFbbbIIILL -˝Óü;Y!!!ô&0}ČÎΦ±w>>ŹUA›ÍÖ_-©¬¬433űÓźţ4©9?•Đu+33s4˝/_ľüÍ7ߤÖčtşĄK—ĆÇÇŻX±âČ‘#$I655Ŕ‡~H’¤L&Łn]ii)Ő’$ż˙ţ{’$%‰ţ%ĄRnmm={öě·ß~0¨ÚÚÚô5mmm===Ż˝öšťťÝ¬Yłţň—ż¨Őj‰Dâěě|ôčŃ™3gÚÚÚ¦§§˙íoł´´´µµ=}úôh$$$$$$dt7ńLëăAWWWQQ‘P(¤VűŐW_~óÍ7PZZĘĺr‹‹‹ ¸¸ŘÝÝ]żŹmll¨ëĘd˛Ź>účĺ—_6ččő×_ďęęşsçΕ+Wţýď§ĄĄD°±±ˇÖ…ÂľľľŞŞŞ’’’’’±X MMM­­­< …*•ޱ±Q(ľýöŰ“:J]ŽćxP[[K„Z­6¨///çp8·oßćp8jµzçÎťűöíărąŤćŤ7ŢŘłgŹ~źI$ęĆr8śµk×644”ăÁŔŔÁ¨««CÁsss_zé%j‚JĄb2™¨ý•+W/^,‘H ĆŔŔI’UUUÔ˛ÁéQĐ{<ÖĎ_°µµ%˘ľľŢŕ!őMMM .äńxeeeĄĄĄĺĺĺĹĹĹź|ň µ1›Íˇ—ććfŕóůhŃĹĹĄ±±q„ö2™L­VóxÜşuë·żý-]˝ÓvI©TĆÇÇ÷ööŇŇ»­–¨©±rpčĺńéÍbbbčRÁŘźóť•u=6öËĺËÝŇÓwĐť ťűü ?˙G˘¸¸şłłŹî\čĨ=hkëľző. _}u“îtčĨ=8ţ&A@’dNÎSÁ“`Ôde•ét$čtdYŮ™l´÷@?{Żőőí•• Č01a”Ó›ŤŻgĎ–›šţoóµZ]v¶ńžŚ×ěěëjµNżH’¤T*»wݕÔhÄH=Jeµµ­č“‚&Ó¤ ŕ])Ń‹‘zPPpĹ2Ľ¦®VkĎśů–|hÇ= I2'§LĄŇ }©©IYYŮ0ő)ŃŽ1zpăƇ‡˙h´§côŕňe Áb™ý§Őę.\¸Ew‚40­˙®m’ [˘Vkő‹YY×}|ćÍ™3-z{»Űł©ůŚĐét†fŤ–––ÔuŰŰŰsrr,X`ĐQbbbooďéÓ§Ż]»VXX¨ŹđÜsĎńůüwß}÷ęŐ«ÝÝÝŕââňÎ;żii)ŠP\\ĽhŃ"GGG‘HÔÝÝ}úôécÇŽĺääP{±´´¤&&‰SSS?ţř㊊Šüü|ËĺJĄ233săĆŤ‡R«ŐŮŮŮ7n¨* ppp@‹ŽŽŽmmmÔëׯ_ż~=I’ŐŐŐ'Ož>• ‚puuݱcGee%Şń÷÷/)))..~őŐWÍÍÍ­¬¬ B=ŞS+++qţüy4˝páBrrňŇžbhž' …‹/ŠĹↆ•JŐŰŰYSS^^^gĎž]´hA/żü˛©©)A:ťNŁćKCa2™K—.‹ĹŤŤŤ©©©ú«V­Ş¨¨ČĚĚlkkS©T éééľľľh]__ßúúúüüüŐ«WŁPË—/‹ĹJĄňáÇéééoe}X&“ąlٲ¤¤¤ÎÎÎŽŽŽ„„ÉÄtfśťť“““»»»…Báţđ‡‹/ŰŰŰçć性§§Z­vww€_˙ú×ýýýhr`ccăää„fvŹe×®]ććć‘‘‘±±±^^^ˇˇˇúsçÎ=|řđwß}µnÝş}űöÍť;w×®]hE6›íăăŁR©<<~~JGll¬ąąyxxřž={MMqbĄ&ŻŐj###Ł˘˘¬¬¬¶oß>ă6áLÖóX6mÚÔÖÖ6ľďťU*U}}ýüůó'<«'§°°pńâĹčqőęŐĎ>ű,55ujşFß;OŇţ˘˙zâPX,Öô”®^˝š’’Ň×××ŇŇrćĚ4ŹyŽLg„BagggHHČÖ­[íííŃ<ćŔź×ö$Ěś9óŕÁtg1ńŕă{€A`0Ř {€üw,O“÷w,“u=Q©T˘oZ1««ëK/˝4‘ńsľ1x~€A`0Ř {€ř?H|ÍDîL qwt5-5.2.3/doc/html/class_qwt_compass_rose__inherit__graph.map0000644000175000017500000000025312052741153024145 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_abstract_scale_draw-members.html0000644000175000017500000002656412052741136024073 0ustar gudjongudjon Qwt User's Guide: Member List
QwtAbstractScaleDraw Member List

This is the complete list of members for QwtAbstractScaleDraw, including all inherited members.

Backbone enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
draw(QPainter *, const QPalette &) const QwtAbstractScaleDrawvirtual
drawBackbone(QPainter *painter) const =0QwtAbstractScaleDrawprotectedpure virtual
drawLabel(QPainter *painter, double value) const =0QwtAbstractScaleDrawprotectedpure virtual
drawTick(QPainter *painter, double value, int len) const =0QwtAbstractScaleDrawprotectedpure virtual
enableComponent(ScaleComponent, bool enable=true)QwtAbstractScaleDraw
extent(const QPen &, const QFont &) const =0QwtAbstractScaleDrawpure virtual
hasComponent(ScaleComponent) const QwtAbstractScaleDraw
invalidateCache()QwtAbstractScaleDrawprotected
label(double) const QwtAbstractScaleDrawvirtual
Labels enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
majTickLength() const QwtAbstractScaleDraw
map() const QwtAbstractScaleDraw
minimumExtent() const QwtAbstractScaleDraw
operator=(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
QwtAbstractScaleDraw()QwtAbstractScaleDraw
QwtAbstractScaleDraw(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
ScaleComponent enum nameQwtAbstractScaleDraw
scaleDiv() const QwtAbstractScaleDraw
scaleMap()QwtAbstractScaleDraw
setMinimumExtent(int)QwtAbstractScaleDraw
setScaleDiv(const QwtScaleDiv &s)QwtAbstractScaleDraw
setSpacing(int margin)QwtAbstractScaleDraw
setTickLength(QwtScaleDiv::TickType, int length)QwtAbstractScaleDraw
setTransformation(QwtScaleTransformation *)QwtAbstractScaleDraw
spacing() const QwtAbstractScaleDraw
tickLabel(const QFont &, double value) const QwtAbstractScaleDrawprotected
tickLength(QwtScaleDiv::TickType) const QwtAbstractScaleDraw
Ticks enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
~QwtAbstractScaleDraw()QwtAbstractScaleDrawvirtual
qwt5-5.2.3/doc/html/inherit_graph_28.map0000644000175000017500000000025212052741163017323 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_legend_item-members.html0000644000175000017500000004161512052741140022345 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLegendItem Member List

This is the complete list of members for QwtLegendItem, including all inherited members.

checked(bool)QwtLegendItemsignal
clear()QwtTextLabelslot
clicked()QwtLegendItemsignal
curvePen() const QwtLegendItem
drawContents(QPainter *)QwtTextLabelprotectedvirtual
drawIdentifier(QPainter *, const QRect &) const QwtLegendItemvirtual
drawItem(QPainter *p, const QRect &) const QwtLegendItemvirtual
drawText(QPainter *, const QRect &)QwtLegendItemprotectedvirtual
heightForWidth(int) const QwtTextLabelvirtual
IdentifierMode enum nameQwtLegendItem
identifierMode() const QwtLegendItem
identifierWidth() const QwtLegendItem
indent() const QwtTextLabel
isChecked() const QwtLegendItem
isDown() const QwtLegendItemprotected
itemMode() const QwtLegendItem
keyPressEvent(QKeyEvent *)QwtLegendItemprotectedvirtual
keyReleaseEvent(QKeyEvent *)QwtLegendItemprotectedvirtual
margin() const QwtTextLabel
minimumSizeHint() const QwtTextLabelvirtual
mousePressEvent(QMouseEvent *)QwtLegendItemprotectedvirtual
mouseReleaseEvent(QMouseEvent *)QwtLegendItemprotectedvirtual
NoIdentifier enum value (defined in QwtLegendItem)QwtLegendItem
paintEvent(QPaintEvent *)QwtLegendItemprotectedvirtual
pressed()QwtLegendItemsignal
QwtLegendItem(QWidget *parent=0)QwtLegendItemexplicit
QwtLegendItem(const QwtSymbol &, const QPen &, const QwtText &, QWidget *parent=0)QwtLegendItemexplicit
QwtTextLabel(QWidget *parent=NULL)QwtTextLabelexplicit
QwtTextLabel(const QwtText &, QWidget *parent=NULL)QwtTextLabelexplicit
released()QwtLegendItemsignal
setChecked(bool on)QwtLegendItemslot
setCurvePen(const QPen &)QwtLegendItem
setDown(bool)QwtLegendItemprotected
setIdentifierMode(int)QwtLegendItem
setIdentifierWidth(int width)QwtLegendItem
setIndent(int)QwtTextLabel
setItemMode(QwtLegend::LegendItemMode)QwtLegendItem
setMargin(int)QwtTextLabel
setSpacing(int spacing)QwtLegendItem
setSymbol(const QwtSymbol &)QwtLegendItem
setText(const QwtText &)QwtLegendItemvirtual
QwtTextLabel::setText(const QString &, QwtText::TextFormat textFormat=QwtText::AutoText)QwtTextLabelslot
ShowLine enum value (defined in QwtLegendItem)QwtLegendItem
ShowSymbol enum value (defined in QwtLegendItem)QwtLegendItem
ShowText enum value (defined in QwtLegendItem)QwtLegendItem
sizeHint() const QwtLegendItemvirtual
spacing() const QwtLegendItem
symbol() const QwtLegendItem
text() const QwtTextLabel
textRect() const QwtTextLabel
~QwtLegendItem()QwtLegendItemvirtual
~QwtTextLabel()QwtTextLabelvirtual
qwt5-5.2.3/doc/html/class_qwt_plot_curve__inherit__graph.md50000644000175000017500000000004012052741141023531 0ustar gudjongudjon3a5071dae17a31e4cdbff64497496e0bqwt5-5.2.3/doc/html/functions_func_0x6f.html0000644000175000017500000001705612052741152020254 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions qwt5-5.2.3/doc/html/class_qwt_dyn_grid_layout.html0000644000175000017500000010130712052741140021630 0ustar gudjongudjon Qwt User's Guide: QwtDynGridLayout Class Reference
QwtDynGridLayout Class Reference

#include <qwt_dyngrid_layout.h>

List of all members.

Public Member Functions

 QwtDynGridLayout (QWidget *, int margin=0, int space=-1)
 QwtDynGridLayout (int space=-1)
virtual ~QwtDynGridLayout ()
virtual void addItem (QLayoutItem *)
virtual uint columnsForWidth (int width) const
virtual int count () const
virtual Qt::Orientations expandingDirections () const
virtual bool hasHeightForWidth () const
virtual int heightForWidth (int) const
virtual void invalidate ()
virtual bool isEmpty () const
virtual QLayoutItem * itemAt (int index) const
uint itemCount () const
QList< QRect > layoutItems (const QRect &, uint numCols) const
uint maxCols () const
virtual int maxItemWidth () const
uint numCols () const
uint numRows () const
void setExpandingDirections (Qt::Orientations)
virtual void setGeometry (const QRect &rect)
void setMaxCols (uint maxCols)
virtual QSize sizeHint () const
virtual QLayoutItem * takeAt (int index)

Protected Member Functions

void layoutGrid (uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const
void stretchGrid (const QRect &rect, uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const

Detailed Description

The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size.

QwtDynGridLayout takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s). It lays out as many number of columns as possible (limited by maxCols()).


Constructor & Destructor Documentation

QwtDynGridLayout::QwtDynGridLayout ( QWidget *  parent,
int  margin = 0,
int  spacing = -1 
)
explicit
Parameters:
parentParent widget
marginMargin
spacingSpacing
QwtDynGridLayout::QwtDynGridLayout ( int  spacing = -1)
explicit
Parameters:
spacingSpacing

Member Function Documentation

uint QwtDynGridLayout::columnsForWidth ( int  width) const
virtual

Calculate the number of columns for a given width. It tries to use as many columns as possible (limited by maxCols())

Parameters:
widthAvailable width for all columns
See also:
maxCols(), setMaxCols()
int QwtDynGridLayout::count ( ) const
virtual
Returns:
Number of items in the layout
Qt::Orientations QwtDynGridLayout::expandingDirections ( ) const
virtual

Returns whether this layout can make use of more space than sizeHint(). A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions.

See also:
setExpandingDirections()
bool QwtDynGridLayout::hasHeightForWidth ( ) const
virtual
Returns:
true: QwtDynGridLayout implements heightForWidth.
See also:
heightForWidth()
int QwtDynGridLayout::heightForWidth ( int  width) const
virtual
Returns:
The preferred height for this layout, given the width w.
See also:
hasHeightForWidth()
bool QwtDynGridLayout::isEmpty ( ) const
virtual
Returns:
true if this layout is empty.
QLayoutItem * QwtDynGridLayout::itemAt ( int  index) const
virtual

Find the item at a spcific index

Parameters:
indexIndex
See also:
takeAt()
uint QwtDynGridLayout::itemCount ( ) const
Returns:
number of layout items
void QwtDynGridLayout::layoutGrid ( uint  numCols,
QwtArray< int > &  rowHeight,
QwtArray< int > &  colWidth 
) const
protected

Calculate the dimensions for the columns and rows for a grid of numCols columns.

Parameters:
numColsNumber of columns.
rowHeightArray where to fill in the calculated row heights.
colWidthArray where to fill in the calculated column widths.
QList< QRect > QwtDynGridLayout::layoutItems ( const QRect &  rect,
uint  numCols 
) const

Calculate the geometries of the layout items for a layout with numCols columns and a given rect.

Parameters:
rectRect where to place the items
numColsNumber of columns
Returns:
item geometries
uint QwtDynGridLayout::maxCols ( ) const

Return the upper limit for the number of columns. 0 means unlimited, what is the default.

See also:
setMaxCols()
int QwtDynGridLayout::maxItemWidth ( ) const
virtual
Returns:
the maximum width of all layout items
uint QwtDynGridLayout::numCols ( ) const
Returns:
Number of columns of the current layout.
See also:
numRows()
Warning:
The number of columns might change whenever the geometry changes
uint QwtDynGridLayout::numRows ( ) const
Returns:
Number of rows of the current layout.
See also:
numCols()
Warning:
The number of rows might change whenever the geometry changes
void QwtDynGridLayout::setExpandingDirections ( Qt::Orientations  expanding)

Set whether this layout can make use of more space than sizeHint(). A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions. The default value is 0.

Parameters:
expandingOr'd orientations
See also:
expandingDirections()
void QwtDynGridLayout::setGeometry ( const QRect &  rect)
virtual

Reorganizes columns and rows and resizes managed widgets within the rectangle rect.

Parameters:
rectLayout geometry
void QwtDynGridLayout::setMaxCols ( uint  maxCols)

Limit the number of columns.

Parameters:
maxColsupper limit, 0 means unlimited
See also:
maxCols()
QSize QwtDynGridLayout::sizeHint ( ) const
virtual

Return the size hint. If maxCols() > 0 it is the size for a grid with maxCols() columns, otherwise it is the size for a grid with only one row.

See also:
maxCols(), setMaxCols()
void QwtDynGridLayout::stretchGrid ( const QRect &  rect,
uint  numCols,
QwtArray< int > &  rowHeight,
QwtArray< int > &  colWidth 
) const
protected

Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect. Rows and columns are stretched with the same factor.

See also:
setExpanding(), expanding()
QLayoutItem * QwtDynGridLayout::takeAt ( int  index)
virtual

Find the item at a spcific index and remove it from the layout

Parameters:
indexIndex
See also:
itemAt()
qwt5-5.2.3/doc/html/nav_h.png0000644000175000017500000000014212052741134015265 0ustar gudjongudjon‰PNG  IHDR ,é@)IDATxíÝA @BQ­łšŰ›Đ˘Žáŕ) )ëý éaĹčÜżĆo‡RlĐßIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_event_pattern.html0000644000175000017500000006455112052741164021331 0ustar gudjongudjon Qwt User's Guide: QwtEventPattern Class Reference

#include <qwt_event_pattern.h>

Inheritance diagram for QwtEventPattern:

List of all members.

Classes

class  KeyPattern
 A pattern for key events. More...
class  MousePattern
 A pattern for mouse events. More...

Public Types

enum  KeyPatternCode {
  KeySelect1,
  KeySelect2,
  KeyAbort,
  KeyLeft,
  KeyRight,
  KeyUp,
  KeyDown,
  KeyRedo,
  KeyUndo,
  KeyHome,
  KeyPatternCount
}
enum  MousePatternCode {
  MouseSelect1,
  MouseSelect2,
  MouseSelect3,
  MouseSelect4,
  MouseSelect5,
  MouseSelect6,
  MousePatternCount
}

Public Member Functions

 QwtEventPattern ()
virtual ~QwtEventPattern ()
void initKeyPattern ()
void initMousePattern (int numButtons)
bool keyMatch (uint pattern, const QKeyEvent *) const
const QwtArray< KeyPattern > & keyPattern () const
QwtArray< KeyPattern > & keyPattern ()
bool mouseMatch (uint pattern, const QMouseEvent *) const
const QwtArray< MousePattern > & mousePattern () const
QwtArray< MousePattern > & mousePattern ()
void setKeyPattern (uint pattern, int key, int state=Qt::NoButton)
void setKeyPattern (const QwtArray< KeyPattern > &)
void setMousePattern (uint pattern, int button, int state=Qt::NoButton)
void setMousePattern (const QwtArray< MousePattern > &)

Protected Member Functions

virtual bool keyMatch (const KeyPattern &, const QKeyEvent *) const
virtual bool mouseMatch (const MousePattern &, const QMouseEvent *) const

Detailed Description

A collection of event patterns.

QwtEventPattern introduces an level of indirection for mouse and keyboard inputs. Those are represented by symbolic names, so the application code can be configured by individual mappings.

See also:
QwtPicker, QwtPickerMachine, QwtPlotZoomer

Member Enumeration Documentation

Symbolic keyboard input codes.

Default initialization:

  • KeySelect1
    Qt::Key_Return
  • KeySelect2
    Qt::Key_Space
  • KeyAbort
    Qt::Key_Escape
  • KeyLeft
    Qt::Key_Left
  • KeyRight
    Qt::Key_Right
  • KeyUp
    Qt::Key_Up
  • KeyDown
    Qt::Key_Down
  • KeyUndo
    Qt::Key_Minus
  • KeyRedo
    Qt::Key_Plus
  • KeyHome
    Qt::Key_Escape

Symbolic mouse input codes.

The default initialization for 3 button mice is:

  • MouseSelect1
    Qt::LeftButton
  • MouseSelect2
    Qt::RightButton
  • MouseSelect3
    Qt::MidButton
  • MouseSelect4
    Qt::LeftButton + Qt::ShiftButton
  • MouseSelect5
    Qt::RightButton + Qt::ShiftButton
  • MouseSelect6
    Qt::MidButton + Qt::ShiftButton

The default initialization for 2 button mice is:

  • MouseSelect1
    Qt::LeftButton
  • MouseSelect2
    Qt::RightButton
  • MouseSelect3
    Qt::LeftButton + Qt::AltButton
  • MouseSelect4
    Qt::LeftButton + Qt::ShiftButton
  • MouseSelect5
    Qt::RightButton + Qt::ShiftButton
  • MouseSelect6
    Qt::LeftButton + Qt::AltButton + Qt::ShiftButton

The default initialization for 1 button mice is:

  • MouseSelect1
    Qt::LeftButton
  • MouseSelect2
    Qt::LeftButton + Qt::ControlButton
  • MouseSelect3
    Qt::LeftButton + Qt::AltButton
  • MouseSelect4
    Qt::LeftButton + Qt::ShiftButton
  • MouseSelect5
    Qt::LeftButton + Qt::ControlButton + Qt::ShiftButton
  • MouseSelect6
    Qt::LeftButton + Qt::AltButton + Qt::ShiftButton
See also:
initMousePattern()

Constructor & Destructor Documentation

QwtEventPattern::QwtEventPattern ( )

Constructor

See also:
MousePatternCode, KeyPatternCode

Member Function Documentation

void QwtEventPattern::initKeyPattern ( )

Set default mouse patterns.

See also:
KeyPatternCode
void QwtEventPattern::initMousePattern ( int  numButtons)

Set default mouse patterns, depending on the number of mouse buttons

Parameters:
numButtonsNumber of mouse buttons ( <= 3 )
See also:
MousePatternCode
bool QwtEventPattern::keyMatch ( uint  pattern,
const QKeyEvent *  e 
) const

Compare a key event with an event pattern.

A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set.

Parameters:
patternIndex of the event pattern
eKey event
Returns:
true if matches
See also:
mouseMatch()
bool QwtEventPattern::keyMatch ( const KeyPattern pattern,
const QKeyEvent *  e 
) const
protectedvirtual

Compare a key event with an event pattern.

A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set.

Parameters:
patternKey event pattern
eKey event
Returns:
true if matches
See also:
mouseMatch()
bool QwtEventPattern::mouseMatch ( uint  pattern,
const QMouseEvent *  e 
) const

Compare a mouse event with an event pattern.

A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set.

Parameters:
patternIndex of the event pattern
eMouse event
Returns:
true if matches
See also:
keyMatch()
bool QwtEventPattern::mouseMatch ( const MousePattern pattern,
const QMouseEvent *  e 
) const
protectedvirtual

Compare a mouse event with an event pattern.

A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set.

Parameters:
patternMouse event pattern
eMouse event
Returns:
true if matches
See also:
keyMatch()
void QwtEventPattern::setKeyPattern ( uint  pattern,
int  key,
int  state = Qt::NoButton 
)

Change one key pattern

Parameters:
patternIndex of the pattern
keyKey
stateState
See also:
QKeyEvent
void QwtEventPattern::setMousePattern ( uint  pattern,
int  button,
int  state = Qt::NoButton 
)

Change one mouse pattern

Parameters:
patternIndex of the pattern
buttonButton
stateState
See also:
QMouseEvent
qwt5-5.2.3/doc/html/class_qwt_plot_magnifier.html0000644000175000017500000005236212052741164021447 0ustar gudjongudjon Qwt User's Guide: QwtPlotMagnifier Class Reference
QwtPlotMagnifier Class Reference

#include <qwt_plot_magnifier.h>

Inheritance diagram for QwtPlotMagnifier:

List of all members.

Public Member Functions

 QwtPlotMagnifier (QwtPlotCanvas *)
virtual ~QwtPlotMagnifier ()
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
bool isAxisEnabled (int axis) const
QwtPlotplot ()
const QwtPlotplot () const
void setAxisEnabled (int axis, bool on)
- Public Member Functions inherited from QwtMagnifier
 QwtMagnifier (QWidget *)
virtual ~QwtMagnifier ()
virtual bool eventFilter (QObject *, QEvent *)
void getMouseButton (int &button, int &buttonState) const
void getZoomInKey (int &key, int &modifiers) const
void getZoomOutKey (int &key, int &modifiers) const
bool isEnabled () const
double keyFactor () const
double mouseFactor () const
QWidget * parentWidget ()
const QWidget * parentWidget () const
void setEnabled (bool)
void setKeyFactor (double)
void setMouseButton (int button, int buttonState=Qt::NoButton)
void setMouseFactor (double)
void setWheelButtonState (int buttonState)
void setWheelFactor (double)
void setZoomInKey (int key, int modifiers)
void setZoomOutKey (int key, int modifiers)
int wheelButtonState () const
double wheelFactor () const

Protected Member Functions

virtual void rescale (double factor)
- Protected Member Functions inherited from QwtMagnifier
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)
virtual void widgetWheelEvent (QWheelEvent *)

Detailed Description

QwtPlotMagnifier provides zooming, by magnifying in steps.

Using QwtPlotMagnifier a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction.

Together with QwtPlotZoomer and QwtPlotPanner it is possible to implement individual and powerful navigation of the plot canvas.

See also:
QwtPlotZoomer, QwtPlotPanner, QwtPlot

Constructor & Destructor Documentation

QwtPlotMagnifier::QwtPlotMagnifier ( QwtPlotCanvas canvas)
explicit

Constructor

Parameters:
canvasPlot canvas to be magnified

Member Function Documentation

bool QwtPlotMagnifier::isAxisEnabled ( int  axis) const

Test if an axis is enabled

Parameters:
axisAxis, see QwtPlot::Axis
Returns:
True, if the axis is enabled
See also:
setAxisEnabled()
void QwtPlotMagnifier::rescale ( double  factor)
protectedvirtual

Zoom in/out the axes scales

Parameters:
factorA value < 1.0 zooms in, a value > 1.0 zooms out.

Implements QwtMagnifier.

void QwtPlotMagnifier::setAxisEnabled ( int  axis,
bool  on 
)

En/Disable an axis.

Axes that are enabled will be synchronized to the result of panning. All other axes will remain unchanged.

Parameters:
axisAxis, see QwtPlot::Axis
onOn/Off
See also:
isAxisEnabled()
qwt5-5.2.3/doc/html/functions_0x62.html0000644000175000017500000001745012052741151017152 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- b -

qwt5-5.2.3/doc/html/class_qwt_plot_dict-members.html0000644000175000017500000001012212052741141022040 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotDict Member List

This is the complete list of members for QwtPlotDict, including all inherited members.

autoDelete() const QwtPlotDict
detachItems(int rtti=QwtPlotItem::Rtti_PlotItem, bool autoDelete=true)QwtPlotDict
itemList() const QwtPlotDict
QwtPlotDict()QwtPlotDictexplicit
QwtPlotItem (defined in QwtPlotDict)QwtPlotDictfriend
setAutoDelete(bool)QwtPlotDict
~QwtPlotDict()QwtPlotDict
qwt5-5.2.3/doc/html/inherit_graph_13.map0000644000175000017500000000026312052741162017316 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_arrow_button.html0000644000175000017500000003431612052741137021174 0ustar gudjongudjon Qwt User's Guide: QwtArrowButton Class Reference
QwtArrowButton Class Reference

#include <qwt_arrow_button.h>

List of all members.

Public Member Functions

 QwtArrowButton (int num, Qt::ArrowType, QWidget *parent=NULL)
virtual ~QwtArrowButton ()
Qt::ArrowType arrowType () const
virtual QSize minimumSizeHint () const
int num () const
virtual QSize sizeHint () const

Protected Member Functions

virtual QSize arrowSize (Qt::ArrowType, const QSize &boundingSize) const
virtual void drawArrow (QPainter *, const QRect &, Qt::ArrowType) const
virtual void drawButtonLabel (QPainter *p)
virtual void keyPressEvent (QKeyEvent *)
virtual QRect labelRect () const
virtual void paintEvent (QPaintEvent *event)

Detailed Description

Arrow Button.

A push button with one or more filled triangles on its front. An Arrow button can have 1 to 3 arrows in a row, pointing up, down, left or right.


Constructor & Destructor Documentation

QwtArrowButton::QwtArrowButton ( int  num,
Qt::ArrowType  arrowType,
QWidget *  parent = NULL 
)
explicit
Parameters:
numNumber of arrows
arrowTypesee Qt::ArowType in the Qt docs.
parentParent widget

Member Function Documentation

QSize QwtArrowButton::arrowSize ( Qt::ArrowType  arrowType,
const QSize &  boundingSize 
) const
protectedvirtual

Calculate the size for a arrow that fits into a rect of a given size

Parameters:
arrowTypeArrow type
boundingSizeBounding size
Returns:
Size of the arrow
void QwtArrowButton::drawArrow ( QPainter *  painter,
const QRect &  r,
Qt::ArrowType  arrowType 
) const
protectedvirtual

Draw an arrow int a bounding rect

Parameters:
painterPainter
rRectangle where to paint the arrow
arrowTypeArrow type
void QwtArrowButton::drawButtonLabel ( QPainter *  painter)
protectedvirtual

Draw the button label.

Parameters:
painterPainter
See also:
The Qt Manual on QPushButton
QRect QwtArrowButton::labelRect ( ) const
protectedvirtual
Returns:
the bounding rect for the label
void QwtArrowButton::paintEvent ( QPaintEvent *  event)
protectedvirtual

Paint event handler

Parameters:
eventPaint event
QSize QwtArrowButton::sizeHint ( ) const
virtual
Returns:
a size hint
qwt5-5.2.3/doc/html/class_qwt_knob__inherit__graph.map0000644000175000017500000000076212052741154022407 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_scale_widget.html0000644000175000017500000013247312052741143021101 0ustar gudjongudjon Qwt User's Guide: QwtScaleWidget Class Reference
QwtScaleWidget Class Reference

#include <qwt_scale_widget.h>

List of all members.

Signals

void scaleDivChanged ()

Public Member Functions

 QwtScaleWidget (QWidget *parent=NULL)
 QwtScaleWidget (QwtScaleDraw::Alignment, QWidget *parent=NULL)
virtual ~QwtScaleWidget ()
QwtScaleDraw::Alignment alignment () const
QwtDoubleInterval colorBarInterval () const
QRect colorBarRect (const QRect &) const
int colorBarWidth () const
const QwtColorMapcolorMap () const
int dimForLength (int length, const QFont &scaleFont) const
void drawColorBar (QPainter *painter, const QRect &rect) const
void drawTitle (QPainter *painter, QwtScaleDraw::Alignment, const QRect &rect) const
int endBorderDist () const
void getBorderDistHint (int &start, int &end) const
void getMinBorderDist (int &start, int &end) const
bool isColorBarEnabled () const
int margin () const
virtual QSize minimumSizeHint () const
int penWidth () const
const QwtScaleDrawscaleDraw () const
QwtScaleDrawscaleDraw ()
void setAlignment (QwtScaleDraw::Alignment)
void setBorderDist (int start, int end)
void setColorBarEnabled (bool)
void setColorBarWidth (int)
void setColorMap (const QwtDoubleInterval &, const QwtColorMap &)
void setLabelAlignment (Qt::Alignment)
void setLabelRotation (double rotation)
void setMargin (int)
void setMinBorderDist (int start, int end)
void setPenWidth (int)
void setScaleDiv (QwtScaleTransformation *, const QwtScaleDiv &sd)
void setScaleDraw (QwtScaleDraw *)
void setSpacing (int td)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual QSize sizeHint () const
int spacing () const
int startBorderDist () const
QwtText title () const
int titleHeightForWidth (int width) const

Protected Member Functions

void draw (QPainter *p) const
void layoutScale (bool update=true)
virtual void paintEvent (QPaintEvent *e)
virtual void resizeEvent (QResizeEvent *e)
void scaleChange ()

Detailed Description

A Widget which contains a scale.

This Widget can be used to decorate composite widgets with a scale.


Constructor & Destructor Documentation

QwtScaleWidget::QwtScaleWidget ( QWidget *  parent = NULL)
explicit

Create a scale with the position QwtScaleWidget::Left.

Parameters:
parentParent widget
QwtScaleWidget::QwtScaleWidget ( QwtScaleDraw::Alignment  align,
QWidget *  parent = NULL 
)
explicit

Constructor.

Parameters:
alignAlignment.
parentParent widget

Member Function Documentation

QwtScaleDraw::Alignment QwtScaleWidget::alignment ( ) const
Returns:
position
See also:
setPosition()
int QwtScaleWidget::dimForLength ( int  length,
const QFont &  scaleFont 
) const

Find the minimum dimension for a given length. dim is the height, length the width seen in direction of the title.

Parameters:
lengthwidth for horizontal, height for vertical scales
scaleFontFont of the scale
Returns:
height for horizontal, width for vertical scales
void QwtScaleWidget::drawTitle ( QPainter *  painter,
QwtScaleDraw::Alignment  align,
const QRect &  rect 
) const

Rotate and paint a title according to its position into a given rectangle.

Parameters:
painterPainter
alignAlignment
rectBounding rectangle
int QwtScaleWidget::endBorderDist ( ) const
Returns:
end border distance
See also:
setBorderDist()
void QwtScaleWidget::getBorderDistHint ( int &  start,
int &  end 
) const

Calculate a hint for the border distances.

This member function calculates the distance of the scale's endpoints from the widget borders which is required for the mark labels to fit into the widget. The maximum of this distance an the minimum border distance is returned.

Warning:
  • The minimum border distance depends on the font.
See also:
setMinBorderDist(), getMinBorderDist(), setBorderDist()
void QwtScaleWidget::getMinBorderDist ( int &  start,
int &  end 
) const

Get the minimum value for the distances of the scale's endpoints from the widget borders.

See also:
setMinBorderDist(), getBorderDistHint()
int QwtScaleWidget::margin ( ) const
Returns:
margin
See also:
setMargin()
QSize QwtScaleWidget::minimumSizeHint ( ) const
virtual
Returns:
a minimum size hint
int QwtScaleWidget::penWidth ( ) const
Returns:
Scale pen width
See also:
setPenWidth()
void QwtScaleWidget::scaleChange ( )
protected

Notify a change of the scale.

This virtual function can be overloaded by derived classes. The default implementation updates the geometry and repaints the widget.

const QwtScaleDraw * QwtScaleWidget::scaleDraw ( ) const

scaleDraw of this scale

See also:
setScaleDraw(), QwtScaleDraw::setScaleDraw()
QwtScaleDraw * QwtScaleWidget::scaleDraw ( )

scaleDraw of this scale

See also:
QwtScaleDraw::setScaleDraw()
void QwtScaleWidget::setAlignment ( QwtScaleDraw::Alignment  alignment)

Change the alignment

Parameters:
alignmentNew alignment
See also:
alignment()
void QwtScaleWidget::setBorderDist ( int  dist1,
int  dist2 
)

Specify distances of the scale's endpoints from the widget's borders. The actual borders will never be less than minimum border distance.

Parameters:
dist1Left or top Distance
dist2Right or bottom distance
See also:
borderDist()
void QwtScaleWidget::setLabelAlignment ( Qt::Alignment  alignment)

Change the alignment for the labels.

See also:
QwtScaleDraw::setLabelAlignment(), setLabelRotation()
void QwtScaleWidget::setLabelRotation ( double  rotation)

Change the rotation for the labels. See QwtScaleDraw::setLabelRotation().

Parameters:
rotationRotation
See also:
QwtScaleDraw::setLabelRotation(), setLabelFlags()
void QwtScaleWidget::setMargin ( int  margin)

Specify the margin to the colorBar/base line.

Parameters:
marginMargin
See also:
margin()
void QwtScaleWidget::setMinBorderDist ( int  start,
int  end 
)

Set a minimum value for the distances of the scale's endpoints from the widget borders. This is useful to avoid that the scales are "jumping", when the tick labels or their positions change often.

Parameters:
startMinimum for the start border
endMinimum for the end border
See also:
getMinBorderDist(), getBorderDistHint()
void QwtScaleWidget::setPenWidth ( int  width)

Specify the width of the scale pen.

Parameters:
widthPen width
See also:
penWidth()
void QwtScaleWidget::setScaleDiv ( QwtScaleTransformation transformation,
const QwtScaleDiv scaleDiv 
)

Assign a scale division.

The scale division determines where to set the tick marks.

Parameters:
transformationTransformation, needed to translate between scale and pixal values
scaleDivScale Division
See also:
For more information about scale divisions, see QwtScaleDiv.
void QwtScaleWidget::setScaleDraw ( QwtScaleDraw sd)

Set a scale draw sd has to be created with new and will be deleted in ~QwtScaleWidget() or the next call of setScaleDraw().

Parameters:
sdScaleDraw object
See also:
scaleDraw()
void QwtScaleWidget::setSpacing ( int  spacing)

Specify the distance between color bar, scale and title.

Parameters:
spacingSpacing
See also:
spacing()
void QwtScaleWidget::setTitle ( const QString &  title)

Give title new text contents

Parameters:
titleNew title
See also:
title(), setTitle(const QwtText &);
void QwtScaleWidget::setTitle ( const QwtText title)

Give title new text contents

Parameters:
titleNew title
See also:
title()
Warning:
The title flags are interpreted in direction of the label, AlignTop, AlignBottom can't be set as the title will always be aligned to the scale.
QSize QwtScaleWidget::sizeHint ( ) const
virtual
Returns:
a size hint
int QwtScaleWidget::spacing ( ) const
Returns:
distance between scale and title
See also:
setMargin()
int QwtScaleWidget::startBorderDist ( ) const
Returns:
start border distance
See also:
setBorderDist()
QwtText QwtScaleWidget::title ( ) const
Returns:
title
See also:
setTitle()
int QwtScaleWidget::titleHeightForWidth ( int  width) const

Find the height of the title for a given width.

Parameters:
widthWidth
Returns:
height Height
qwt5-5.2.3/doc/html/class_qwt_raster_data.html0000644000175000017500000004631012052741165020736 0ustar gudjongudjon Qwt User's Guide: QwtRasterData Class Reference
QwtRasterData Class Reference

#include <qwt_raster_data.h>

Inheritance diagram for QwtRasterData:

List of all members.

Public Types

enum  ConrecAttribute {
  IgnoreAllVerticesOnLevel = 1,
  IgnoreOutOfRange = 2
}
typedef QMap< double, QPolygonF > ContourLines

Public Member Functions

 QwtRasterData ()
 QwtRasterData (const QwtDoubleRect &)
virtual ~QwtRasterData ()
QwtDoubleRect boundingRect () const
virtual ContourLines contourLines (const QwtDoubleRect &rect, const QSize &raster, const QList< double > &levels, int flags) const
virtual QwtRasterDatacopy () const =0
virtual void discardRaster ()
virtual void initRaster (const QwtDoubleRect &, const QSize &raster)
virtual QwtDoubleInterval range () const =0
virtual QSize rasterHint (const QwtDoubleRect &) const
virtual void setBoundingRect (const QwtDoubleRect &)
virtual double value (double x, double y) const =0

Detailed Description

QwtRasterData defines an interface to any type of raster data.

QwtRasterData is an abstract interface, that is used by QwtPlotRasterItem to find the values at the pixels of its raster.

Often a raster item is used to display values from a matrix. Then the derived raster data class needs to implement some sort of resampling, that maps the raster of the matrix into the requested raster of the raster item ( depending on resolution and scales of the canvas ).


Constructor & Destructor Documentation

QwtRasterData::QwtRasterData ( const QwtDoubleRect &  boundingRect)

Constructor

Parameters:
boundingRectBounding rectangle
See also:
setBoundingRect()

Member Function Documentation

QwtDoubleRect QwtRasterData::boundingRect ( ) const
Returns:
Bounding rectangle
See also:
boundingRect()
QwtRasterData::ContourLines QwtRasterData::contourLines ( const QwtDoubleRect &  rect,
const QSize &  raster,
const QList< double > &  levels,
int  flags 
) const
virtual

Calculate contour lines

An adaption of CONREC, a simple contouring algorithm. http://local.wasp.uwa.edu.au/~pbourke/papers/conrec/

void QwtRasterData::discardRaster ( )
virtual

Discard a raster.

After the composition of an image QwtPlotSpectrogram calls discardRaster().

The default implementation does nothing, but if data has been loaded in initRaster(), it could deleted now.

See also:
initRaster(), value()
void QwtRasterData::initRaster ( const QwtDoubleRect &  ,
const QSize &  raster 
)
virtual

Initialize a raster.

Before the composition of an image QwtPlotSpectrogram calls initRaster, announcing the area and its resolution that will be requested.

The default implementation does nothing, but for data sets that are stored in files, it might be good idea to reimplement initRaster, where the data is resampled and loaded into memory.

Parameters:
rectArea of the raster
rasterNumber of horizontal and vertical pixels
See also:
initRaster(), value()
virtual QwtDoubleInterval QwtRasterData::range ( ) const
pure virtual
Returns:
the range of the values
QSize QwtRasterData::rasterHint ( const QwtDoubleRect &  ) const
virtual

Find the raster of the data for an area.

The resolution is the number of horizontal and vertical pixels that the data can return for an area. An invalid resolution indicates that the data can return values for any detail level.

The resolution will limit the size of the image that is rendered from the data. F.e. this might be important when printing a spectrogram to a A0 printer with 600 dpi.

The default implementation returns an invalid resolution (size)

Parameters:
rectIn most implementations the resolution of the data doesn't depend on the requested rectangle.
Returns:
Resolution, as number of horizontal and vertical pixels
void QwtRasterData::setBoundingRect ( const QwtDoubleRect &  boundingRect)
virtual

Set the bounding rect ( == area, un plot coordinates )

Parameters:
boundingRectBounding rectangle
See also:
boundingRect()
virtual double QwtRasterData::value ( double  x,
double  y 
) const
pure virtual
Returns:
the value at a raster position
Parameters:
xX value in plot coordinates
yY value in plot coordinates
qwt5-5.2.3/doc/html/class_qwt_scale_transformation.html0000644000175000017500000002540212052741143022655 0ustar gudjongudjon Qwt User's Guide: QwtScaleTransformation Class Reference
QwtScaleTransformation Class Reference

#include <qwt_scale_map.h>

List of all members.

Public Types

enum  Type {
  Linear,
  Log10,
  Other
}

Public Member Functions

 QwtScaleTransformation (Type type)
virtual ~QwtScaleTransformation ()
virtual QwtScaleTransformationcopy () const
virtual double invXForm (double x, double p1, double p2, double s1, double s2) const
Type type () const
virtual double xForm (double x, double s1, double s2, double p1, double p2) const

Detailed Description

Operations for linear or logarithmic (base 10) transformations.


Member Function Documentation

double QwtScaleTransformation::invXForm ( double  p,
double  p1,
double  p2,
double  s1,
double  s2 
) const
virtual

Transform a value from the coordinate system of the paint device into the coordinate system of a scale.

Parameters:
pValue related to the coordinate system of the paint device
p1First border of the coordinate system of the paint device
p2Second border of the coordinate system of the paint device
s1First border of the coordinate system of the scale
s2Second border of the coordinate system of the scale
Returns:
linear mapping:
s1 + ( s2 - s1 ) / ( p2 - p1 ) * ( p - p1 );
log10 mapping:
exp((p - p1) / (p2 - p1) * log(s2 / s1)) * s1;
QwtScaleTransformation::Type QwtScaleTransformation::type ( ) const
inline
Returns:
Transformation type
double QwtScaleTransformation::xForm ( double  s,
double  s1,
double  s2,
double  p1,
double  p2 
) const
virtual

Transform a value from the coordinate system of a scale into the coordinate system of the paint device.

Parameters:
sValue related to the coordinate system of the scale
s1First border of the coordinate system of the scale
s2Second border of the coordinate system of the scale
p1First border of the coordinate system of the paint device
p2Second border of the coordinate system of the paint device
Returns:
linear mapping:
p1 + (p2 - p1) / (s2 - s1) * (s - s1);
log10 mapping:
p1 + (p2 - p1) / log(s2 / s1) * log(s / s1);
qwt5-5.2.3/doc/html/inherit_graph_0.map0000644000175000017500000000113412052741161017227 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__magnifier_8h_source.html0000644000175000017500000003236412052741135021340 0ustar gudjongudjon Qwt User's Guide: qwt_magnifier.h Source File
Qwt User's Guide  5.2.3
qwt_magnifier.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_MAGNIFIER_H
11 #define QWT_MAGNIFIER_H 1
12 
13 #include "qwt_global.h"
14 #include <qobject.h>
15 
16 class QWidget;
17 class QMouseEvent;
18 class QWheelEvent;
19 class QKeyEvent;
20 
27 class QWT_EXPORT QwtMagnifier: public QObject
28 {
29  Q_OBJECT
30 
31 public:
32  explicit QwtMagnifier(QWidget *);
33  virtual ~QwtMagnifier();
34 
35  QWidget *parentWidget();
36  const QWidget *parentWidget() const;
37 
38  void setEnabled(bool);
39  bool isEnabled() const;
40 
41  // mouse
42  void setMouseFactor(double);
43  double mouseFactor() const;
44 
45  void setMouseButton(int button, int buttonState = Qt::NoButton);
46  void getMouseButton(int &button, int &buttonState) const;
47 
48  // mouse wheel
49  void setWheelFactor(double);
50  double wheelFactor() const;
51 
52  void setWheelButtonState(int buttonState);
53  int wheelButtonState() const;
54 
55  // keyboard
56  void setKeyFactor(double);
57  double keyFactor() const;
58 
59  void setZoomInKey(int key, int modifiers);
60  void getZoomInKey(int &key, int &modifiers) const;
61 
62  void setZoomOutKey(int key, int modifiers);
63  void getZoomOutKey(int &key, int &modifiers) const;
64 
65  virtual bool eventFilter(QObject *, QEvent *);
66 
67 protected:
72  virtual void rescale(double factor) = 0;
73 
74  virtual void widgetMousePressEvent(QMouseEvent *);
75  virtual void widgetMouseReleaseEvent(QMouseEvent *);
76  virtual void widgetMouseMoveEvent(QMouseEvent *);
77  virtual void widgetWheelEvent(QWheelEvent *);
78  virtual void widgetKeyPressEvent(QKeyEvent *);
79  virtual void widgetKeyReleaseEvent(QKeyEvent *);
80 
81 private:
82  class PrivateData;
83  PrivateData *d_data;
84 };
85 
86 #endif
qwt5-5.2.3/doc/html/class_qwt_data-members.html0000644000175000017500000001052612052741137021005 0ustar gudjongudjon Qwt User's Guide: Member List
QwtData Member List

This is the complete list of members for QwtData, including all inherited members.

boundingRect() const QwtDatavirtual
copy() const =0QwtDatapure virtual
operator=(const QwtData &)QwtDataprotected
QwtData()QwtData
size() const =0QwtDatapure virtual
x(size_t i) const =0QwtDatapure virtual
y(size_t i) const =0QwtDatapure virtual
~QwtData()QwtDatavirtual
qwt5-5.2.3/doc/html/qwt__plot__rescaler_8h_source.html0000644000175000017500000004372512052741135022377 0ustar gudjongudjon Qwt User's Guide: qwt_plot_rescaler.h Source File
Qwt User's Guide  5.2.3
qwt_plot_rescaler.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_RESCALER_H
11 #define QWT_PLOT_RESCALER_H 1
12 
13 #include "qwt_global.h"
14 #include "qwt_double_rect.h"
15 #include "qwt_double_interval.h"
16 #include "qwt_plot.h"
17 #include <qobject.h>
18 
19 class QwtPlotCanvas;
20 class QResizeEvent;
21 
29 class QWT_EXPORT QwtPlotRescaler: public QObject
30 {
31 public:
59  {
60  Fixed,
61  Expanding,
62  Fitting
63  };
64 
65  enum ExpandingDirection
66  {
67  ExpandUp,
68  ExpandDown,
69  ExpandBoth
70  };
71 
72  explicit QwtPlotRescaler(QwtPlotCanvas *,
73  int referenceAxis = QwtPlot::xBottom,
74  RescalePolicy = Expanding );
75 
76  virtual ~QwtPlotRescaler();
77 
78  void setEnabled(bool);
79  bool isEnabled() const;
80 
81  void setRescalePolicy(RescalePolicy);
82  RescalePolicy rescalePolicy() const;
83 
84  void setExpandingDirection(ExpandingDirection);
85  void setExpandingDirection(int axis, ExpandingDirection);
86  ExpandingDirection expandingDirection(int axis) const;
87 
88  void setReferenceAxis(int axis);
89  int referenceAxis() const;
90 
91  void setAspectRatio(double ratio);
92  void setAspectRatio(int axis, double ratio);
93  double aspectRatio(int axis) const;
94 
95  void setIntervalHint(int axis, const QwtDoubleInterval&);
96  QwtDoubleInterval intervalHint(int axis) const;
97 
98  QwtPlotCanvas *canvas();
99  const QwtPlotCanvas *canvas() const;
100 
101  QwtPlot *plot();
102  const QwtPlot *plot() const;
103 
104  virtual bool eventFilter(QObject *, QEvent *);
105 
106  void rescale() const;
107 
108 protected:
109  virtual void canvasResizeEvent(QResizeEvent *);
110 
111  virtual void rescale(const QSize &oldSize, const QSize &newSize) const;
112  virtual QwtDoubleInterval expandScale( int axis,
113  const QSize &oldSize, const QSize &newSize) const;
114 
115  virtual QwtDoubleInterval syncScale(
116  int axis, const QwtDoubleInterval& reference,
117  const QSize &size) const;
118 
119  virtual void updateScales(
120  QwtDoubleInterval intervals[QwtPlot::axisCnt]) const;
121 
122  Qt::Orientation orientation(int axis) const;
123  QwtDoubleInterval interval(int axis) const;
124  QwtDoubleInterval expandInterval(const QwtDoubleInterval &,
125  double width, ExpandingDirection) const;
126 
127 private:
128  double pixelDist(int axis, const QSize &) const;
129 
130  class AxisData;
131  class PrivateData;
132  PrivateData *d_data;
133 };
134 
135 #endif
qwt5-5.2.3/doc/html/class_qwt_linear_scale_engine-members.html0000644000175000017500000002304512052741140024034 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLinearScaleEngine Member List

This is the complete list of members for QwtLinearScaleEngine, including all inherited members.

align(const QwtDoubleInterval &, double stepSize) const QwtLinearScaleEngineprotected
Attribute enum nameQwtScaleEngine
attributes() const QwtScaleEngine
autoScale(int maxSteps, double &x1, double &x2, double &stepSize) const QwtLinearScaleEnginevirtual
buildInterval(double v) const QwtScaleEngineprotected
contains(const QwtDoubleInterval &, double val) const QwtScaleEngineprotected
divideInterval(double interval, int numSteps) const QwtScaleEngineprotected
divideScale(double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0.0) const QwtLinearScaleEnginevirtual
Floating enum value (defined in QwtScaleEngine)QwtScaleEngine
IncludeReference enum value (defined in QwtScaleEngine)QwtScaleEngine
Inverted enum value (defined in QwtScaleEngine)QwtScaleEngine
lowerMargin() const QwtScaleEngine
NoAttribute enum value (defined in QwtScaleEngine)QwtScaleEngine
QwtScaleEngine()QwtScaleEngineexplicit
reference() const QwtScaleEngine
setAttribute(Attribute, bool on=true)QwtScaleEngine
setAttributes(int)QwtScaleEngine
setMargins(double lower, double upper)QwtScaleEngine
setReference(double reference)QwtScaleEngine
strip(const QwtValueList &, const QwtDoubleInterval &) const QwtScaleEngineprotected
Symmetric enum value (defined in QwtScaleEngine)QwtScaleEngine
testAttribute(Attribute) const QwtScaleEngine
transformation() const QwtLinearScaleEnginevirtual
upperMargin() const QwtScaleEngine
~QwtScaleEngine()QwtScaleEnginevirtual
qwt5-5.2.3/doc/html/functions_func_0x6c.html0000644000175000017500000002346012052741152020245 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- l -

qwt5-5.2.3/doc/html/inherit_graph_19.md50000644000175000017500000000004012052741151017223 0ustar gudjongudjon835f0b8bcc72963ad9606382e384c728qwt5-5.2.3/doc/html/functions_0x75.html0000644000175000017500000001452412052741151017155 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- u -

qwt5-5.2.3/doc/html/class_qwt_plot_picker-members.html0000644000175000017500000012252012052741142022401 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotPicker Member List

This is the complete list of members for QwtPlotPicker, including all inherited members.

accept(QwtPolygon &selection) const QwtPickerprotectedvirtual
ActiveOnly enum value (defined in QwtPicker)QwtPicker
AlwaysOff enum value (defined in QwtPicker)QwtPicker
AlwaysOn enum value (defined in QwtPicker)QwtPicker
append(const QPoint &)QwtPlotPickerprotectedvirtual
appended(const QwtDoublePoint &pos)QwtPlotPickersignal
QwtPicker::appended(const QPoint &pos)QwtPickersignal
begin()QwtPickerprotectedvirtual
canvas()QwtPlotPicker
canvas() const QwtPlotPicker
CenterToCorner enum value (defined in QwtPicker)QwtPicker
CenterToRadius enum value (defined in QwtPicker)QwtPicker
changed(const QwtPolygon &pa)QwtPickersignal
ClickSelection enum value (defined in QwtPicker)QwtPicker
CornerToCorner enum value (defined in QwtPicker)QwtPicker
CrossRubberBand enum value (defined in QwtPicker)QwtPicker
DisplayMode enum nameQwtPicker
DragSelection enum value (defined in QwtPicker)QwtPicker
drawRubberBand(QPainter *) const QwtPickervirtual
drawTracker(QPainter *) const QwtPickervirtual
EllipseRubberBand enum value (defined in QwtPicker)QwtPicker
end(bool ok=true)QwtPlotPickerprotectedvirtual
eventFilter(QObject *, QEvent *)QwtPickervirtual
HLineRubberBand enum value (defined in QwtPicker)QwtPicker
initKeyPattern()QwtEventPattern
initMousePattern(int numButtons)QwtEventPattern
invTransform(const QRect &) const QwtPlotPickerprotected
invTransform(const QPoint &) const QwtPlotPickerprotected
isActive() const QwtPicker
isEnabled() const QwtPicker
KeepSize enum value (defined in QwtPicker)QwtPicker
KeyAbort enum value (defined in QwtEventPattern)QwtEventPattern
KeyDown enum value (defined in QwtEventPattern)QwtEventPattern
KeyHome enum value (defined in QwtEventPattern)QwtEventPattern
KeyLeft enum value (defined in QwtEventPattern)QwtEventPattern
keyMatch(uint pattern, const QKeyEvent *) const QwtEventPattern
keyMatch(const KeyPattern &, const QKeyEvent *) const QwtEventPatternprotectedvirtual
keyPattern() const QwtEventPattern
keyPattern()QwtEventPattern
KeyPatternCode enum nameQwtEventPattern
KeyPatternCount enum value (defined in QwtEventPattern)QwtEventPattern
KeyRedo enum value (defined in QwtEventPattern)QwtEventPattern
KeyRight enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect1 enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect2 enum value (defined in QwtEventPattern)QwtEventPattern
KeyUndo enum value (defined in QwtEventPattern)QwtEventPattern
KeyUp enum value (defined in QwtEventPattern)QwtEventPattern
mouseMatch(uint pattern, const QMouseEvent *) const QwtEventPattern
mouseMatch(const MousePattern &, const QMouseEvent *) const QwtEventPatternprotectedvirtual
mousePattern() const QwtEventPattern
mousePattern()QwtEventPattern
MousePatternCode enum nameQwtEventPattern
MousePatternCount enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect1 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect2 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect3 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect4 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect5 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect6 enum value (defined in QwtEventPattern)QwtEventPattern
move(const QPoint &)QwtPlotPickerprotectedvirtual
moved(const QwtDoublePoint &pos)QwtPlotPickersignal
QwtPicker::moved(const QPoint &pos)QwtPickersignal
NoRubberBand enum value (defined in QwtPicker)QwtPicker
NoSelection enum value (defined in QwtPicker)QwtPicker
parentWidget()QwtPicker
parentWidget() const QwtPicker
pickRect() const QwtPickervirtual
plot()QwtPlotPicker
plot() const QwtPlotPicker
PointSelection enum value (defined in QwtPicker)QwtPicker
PolygonRubberBand enum value (defined in QwtPicker)QwtPicker
PolygonSelection enum value (defined in QwtPicker)QwtPicker
QwtEventPattern()QwtEventPattern
QwtPicker(QWidget *parent)QwtPickerexplicit
QwtPicker(int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)QwtPickerexplicit
QwtPlotPicker(QwtPlotCanvas *)QwtPlotPickerexplicit
QwtPlotPicker(int xAxis, int yAxis, QwtPlotCanvas *)QwtPlotPickerexplicit
QwtPlotPicker(int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *)QwtPlotPickerexplicit
RectRubberBand enum value (defined in QwtPicker)QwtPicker
RectSelection enum value (defined in QwtPicker)QwtPicker
RectSelectionType enum nameQwtPicker
reset()QwtPickerprotectedvirtual
resizeMode() const QwtPicker
ResizeMode enum nameQwtPicker
rubberBand() const QwtPicker
RubberBand enum nameQwtPicker
rubberBandPen() const QwtPicker
rubberBandWidget() const QwtPickerprotected
scaleRect() const QwtPlotPickerprotected
selected(const QwtDoublePoint &pos)QwtPlotPickersignal
selected(const QwtDoubleRect &rect)QwtPlotPickersignal
selected(const QwtArray< QwtDoublePoint > &pa)QwtPlotPickersignal
QwtPicker::selected(const QwtPolygon &pa)QwtPickersignal
selection() const QwtPicker
selectionFlags() const QwtPicker
SelectionMode enum nameQwtPicker
SelectionType enum nameQwtPicker
setAxis(int xAxis, int yAxis)QwtPlotPickervirtual
setEnabled(bool)QwtPickervirtual
setKeyPattern(uint pattern, int key, int state=Qt::NoButton)QwtEventPattern
setKeyPattern(const QwtArray< KeyPattern > &)QwtEventPattern
setMousePattern(uint pattern, int button, int state=Qt::NoButton)QwtEventPattern
setMousePattern(const QwtArray< MousePattern > &)QwtEventPattern
setResizeMode(ResizeMode)QwtPickervirtual
setRubberBand(RubberBand)QwtPickervirtual
setRubberBandPen(const QPen &)QwtPickervirtual
setSelectionFlags(int)QwtPickervirtual
setTrackerFont(const QFont &)QwtPickervirtual
setTrackerMode(DisplayMode)QwtPickervirtual
setTrackerPen(const QPen &)QwtPickervirtual
stateMachine(int) const QwtPickerprotectedvirtual
Stretch enum value (defined in QwtPicker)QwtPicker
stretchSelection(const QSize &oldSize, const QSize &newSize)QwtPickerprotectedvirtual
trackerFont() const QwtPicker
trackerMode() const QwtPicker
trackerPen() const QwtPicker
trackerPosition() const QwtPicker
trackerRect(const QFont &) const QwtPicker
trackerText(const QPoint &) const QwtPlotPickerprotectedvirtual
trackerText(const QwtDoublePoint &) const QwtPlotPickerprotectedvirtual
trackerWidget() const QwtPickerprotected
transform(const QwtDoubleRect &) const QwtPlotPickerprotected
transform(const QwtDoublePoint &) const QwtPlotPickerprotected
transition(const QEvent *)QwtPickerprotectedvirtual
updateDisplay()QwtPickerprotectedvirtual
UserRubberBand enum value (defined in QwtPicker)QwtPicker
VLineRubberBand enum value (defined in QwtPicker)QwtPicker
widgetKeyPressEvent(QKeyEvent *)QwtPickerprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtPickerprotectedvirtual
widgetLeaveEvent(QEvent *)QwtPickerprotectedvirtual
widgetMouseDoubleClickEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetWheelEvent(QWheelEvent *)QwtPickerprotectedvirtual
xAxis() const QwtPlotPicker
yAxis() const QwtPlotPicker
~QwtEventPattern()QwtEventPatternvirtual
~QwtPicker()QwtPickervirtual
~QwtPlotPicker()QwtPlotPickervirtual
qwt5-5.2.3/doc/html/class_qwt_picker_drag_point_machine__inherit__graph.png0000644000175000017500000001056712052741155026641 0ustar gudjongudjon‰PNG  IHDRĹp!]#abKGD˙˙˙ ˝§“,IDATxśíťkPWÇĎć‚€ 0z/c©X-"VDĽe `ĹD-ކHP´N/č(E­¶”8`m+ĘUѱjĺVoE”‚ņ‚’@€\÷ý°ď›w ą]$¶ç÷aĎ>ç<˙söżgO˛ ‹ ( ‚ Ť´Č? č'‘@?Aú B$”áNĐŐŐ%‰†;Ä$ sçÎÖČpľËĘĘb±XáááĂšb’Ű·oűůůeee k–aźź0†»“¬Yłć dë'‘@?Aú B$ĐO"~‚‰ůI(˛Ůl Źť;wŠĹbăUęęꬬ¬°_ŽŽŽaaa---řă- ,ÝĘ•+ń…(Šş»»¶5˝†¦Ę0?ŐÖÖ~đÁ¶¶¶ĹĹĹťťťąąąüń‡źźźIKi±´´D˙Guuµ••ŐćÍ›^^^}}}„ ¦P(ĄĄĄíííÚ’’’’«5Î0i~‹ź¸\ndd¤@ đňň=z´ŹŹĎŐ«Wťśś/^üő×_ZZZůꫯmmm‚Lť:U.—#ŇŃŃomüřń111÷îÝŻźë]]]›6mrtttqq‰ŹŹÇWAQtÓ¦MK–,Á¤L&۶m›łłł««ëž={T*U]]ť‡‡Grr˛ŤŤM]]™L^±bĹąsç´-ddd„……i7kjjćĚ™3jÔ(ww÷łgĎššęŕŕŕěěüĂ?€×ç]ŹÓ§OcU233±řţň:łđ“T*-..ćńxřBAbcc BBBnŢĽ (++łµµ-))”””Ěś9ł¶¶›–ńu[[[Ź?>kÖ,ťD111"‘¨¶¶¶¸¸8===??+GQt۶mŤŤŤ—/_Ć$ŹÇëéé©©©)-----Xł>¬ŻŻ÷ňňp8śôôt¬…ŢŢŢüüüuëÖis}ńĹË—/ďě쌏ŹßłgŹ …âńăÇ 111»wďÖŃÜŢŢ^]]- wě؇ę•g ĂĚĹ‹Mfyúô)‚ JĄR§Ľ˛˛ŇĆĆćńăÇ666JĄ2::úóĎ?·µµU©TŰ·oß»wŻÖOµµµřNŮŘج\ąňŮłgŘ.,FˇPP(”?˙ükĽĽĽĽ˘˘Ű»cÇ*•ÚŢŢŽíR(T*U,c›żüňËěŮł±X VK­V»şşVVV˘(š™™¤Í…˘čďż˙.“É”JeZZšq€—/_˘(ZSSŁíľ_:{őĘ3y ÂĂĂĂĂĂM†ýMĚb~rrrB¤©©I§üůóç...Ó§O§Ńheeek×®utt¬¬¬,)) Áă×OR©´  ŔÍÍ ĐÚÚŞŃhŢ}÷]lsţüů>>>ą\. ß{ď=>źŻŤT*•4 [Ý/Z´¨±±`aaáää¤mD"EFF¦ĄĄ222Řl6>ÝÝ»wýýýçÎť{éŇ%ă,,,°ů•DŇs8úď5$Ď0 ?ŮÚÚ$''kKř|~CCCrr2Á,]ş4//Ż­­męÔ© .ĚÉÉyţüůĽyó•ĹŮŮĐÜÜŚm^»v ;ŇT*5777%%%))©®®‹$“ÉÚ  »»ű·ß~ ˘Ó&‡Ă9ţ|ssó­[·L¦¶ĽŁŁăăŹ?>uęTEEEBB‚qý›ĹÓŻ!yć€Yř 222bccźÜĂţýř?€;wţd27ú'&2MG˙»ë'ÓäçßÇ~ŞTš‘Öbî@?™@ˇPĺĺU$’žŇŇ'#-ÇÜ~2Aqq]OŹ@&“ňňsúÉąą÷Éd@ĄŇüřcuoŻb¤™5ĐOĆÉä?ýôXĄúďSorąŞ¨č÷‘•dć@?o&‰„äćVŚ óúÉąąřÇ·U*ÍÍ›uRiďJ2s ź "ÉJK˙P«_űŽEŃkתGJ’ůýd«W«ú˘(šť /y~2HNÎoýoh4čť;ľx!Ićô“~ZZÄ÷ď7j4znF‘ɤ+WôL]ýd+Wş±©R©ssá›úyCĎ«ĽuLś8vÜ8[ífw·ÜĘŠJˇü÷ô›1Ău„t™;đů‚1~üÎÔTÎŞUđŹ·LŻw"~‚ ô„H ź Dý!č'‘@?Aú B$ĐO"~‚ ô„H ź Dý!č'‘@?Aú B$ĐO"~‚ ô„H ź Dý!č'‘@?Aú B$ĐO"~‚ ô„H ź Dý!č'‘@?Aú B$ĐOBÁż ݶ¶–FŁŤ´"sÄŇ’N"YŹ´ s$99oˇ×ţfuuµX,Ţż˙H‰Ľ]dgg—––rą\m‰ž˙ÇşpáÂ7§ň6SRR˘S×O"~‚ ô„H ź Dý!’!ú©µµőđáĂL&3(((""âäÉ“ÝÝÝĆ«455-Y˛ű%ÁŘż˙«WŻđ1Ć[řtAAA[·n˝˙ďľ}ĹH Ť_Xłź}ö~/Š˘,k°×›qh8(†â§ĆĆĆ­[·Z[['%%]ąrĺŕÁĎž=‹ŽŽ6i)-T*őć˙8s挅…űcÇt:˝°°p’.77wٲeńńńŤŤŤDµ©Ó˝ Ľ_d2ąŞŞJ,kKŞŞŞ>°Ć¦áĹ3??~<((ÇăŃét++«)S¦>|FŁť={6..îâĹ‹€WŻ^fffD"Q`` ‡ĂQ*•Ék/Źspp ­««Żź@===GŹe0L&óĚ™3ř*(Š=ztĎž= …Đ××ÇçóWŻ^–ššŞV«›šš"""ňňň–-[ÖÔÔ¤­hkkË`0BBBÎź?ŹĄĂ‡ýő×_Ű·of±XÚqďéé9räČŞU«"""ŠŠŠôžßř.ş»»:Ä`0Ö¬Ysúôi•J…ź"""®^˝ŠőëĆŤ‰?2$ÉĎĎŻ¨¨HŰxaaa@@€vÓH˝cUPP°jŐŞŐ«W˙üóĎŕő‰PGß$ć˙3h?őôô<|ř0,, _ HXXŘ­[·ćĚ™SYY ¨®®¶¶¶®ŞŞTUUM0!==;§íěěđu_˝z•““3yňdťDÉÉÉR©4===))é§ź~*++ĂĘQĺóůmmm_~ůĄ……)—ËÓŇŇNś8QUU•źźŹ5űôéÓsçÎŃétť–ýüüžź/“ÉŇÓÓů|ţť;wtj‰ĹbˇP™™Éd2SRRěěětFféҥׯ_Ç‚ĺryyyyPP¶ş!‘ýÇJĄR544\¸p!44TiH†¶ťţ#9(í'l*;v¬Nů¸qă:;;}}}=z¤V««««™LćŁGŹ4MUUŐś9sđÁŘéÁfł{{{?ůä|€JĄ***ŠŽŽ¦Ńht:=>>ŢŮŮŰ%®_żľoß>KKK,˛°°0&&ĆÎÎnüřń[¶lÁÎE•JµeË–1cĆôď‚˝˝˝v­‹ŠŠb±Xd2™BˇČd2­ .—kooďęęş~ýz“]P*•ĹĹĹ\.—FŁąąąmذ?Ůär9‡Ă±¶¶ö÷÷—JĄýĺůřřHĄŇ§Oź~ýőWOOOí^C"űŹŠ˘6lŔuuuédé/ĂĐHŠAż˙»aÜŢŢ>nÜ8|yGGÇ1c<<<Ţyçť'OžTWWďŰ·ďĆŤőőő>Üąs'>JĄż‹D"ŤFăââ‚mÎ1ĐÔÔ¤T*[ZZ&Nśťť˝yóf,RĄR­X±BG!…B1to»łłS{„đaµµµ‰‰‰‚hĎř.ę‚H$ૼ|ů@ˇP°y˙ćt<‚]ż~ťËĺę\aMŠÔŽ•ńDý÷ÉA1h?Y[[{{{çĺĺEGGc%ŮŮŮ~řa^^Ţüůóľľľeee"‘N§{{{—””tttLź>˝ĄĄeŕYěíí/_ľÄFíîÝ»JĄ’N§S(” …Âŕŕ`:ťnooO"‘ FŹ čëë“H$rąÜĐŃÜľ}ŰËË ű]&‘HŽ=š’’âééŮĐĐp÷î]­Ś¶¶6ĚI­­­&•cSľŠÎiD–ŕŕŕŘŘX‹USSsŕŔ/^٬Ś'ężWďHš”ŞĂPÖă<ݰ°P <{öLˇPČd26›]__żnÝ:€ŻŻďĺË—gĚ ··÷ĄK—fÍšEˇPŃh4*•j )¨Tę‚ RRR$IssóńăÇ5 A*•ęéé’””„Eśů¤}‘b~^ČĎĎŹŹŹŹ‹‹c#1dňřî»ď.\źźoŻámÄ|ą'Yµj•C Îô! z€ĐŕŽ=hjjJLL”JĄ|>?(((55µłłsäUT*•P(d&źˇ9üÂdT*EQ+V¬`VŇ4ČÖ6ŢwâR©|â‰'ÄbqiiiGGGQQŃŐ«W.\x[îI¸\nyyy[[›˝¦¬¬ě®Š;ń 999!!AˇPĚ™3ÇĂĂcŢĽy'Nśđöö޶mŰŇĄKwíÚ­­­Eýýď­VKQTHHČŕŕ EQ:ťnذ˝˝˝6lđőőő÷÷ýő×- tww'%%yzzĺććÚßdC«TŞ   xyyIĄŇĽĽ<ŇŇ`0ÄÇÇK$’ŔŔŔ‚‚fŹ:ťŽ™Ő­bîŢ˝ŰÓÓÓÇÇçđáĂúÓź$‰ŹŹĎˇC‡H77·ĺË—çććÚĂćääČd2űbmmí‚ ¦L™HÖşUŞC[ŢÁdffŠD"•J5¶ťJ38räCÍPşşş8NccŁC}QQŃěŮłwíÚµlŮ2š¦?ýôS±XCʡˇˇJĄR Đ4m/8đňË/Ż[·®˝˝˝ˇˇ!<<üź˙ü'MÓIII+V¬ĐjµőőőóćÍłŻ8´±R©ś2eJrrrWW×öíŰýüüHK™L¶dɵZ]WW7wî\‡É “ËĺľńĆÝÝÝŰ·o§(Ę^&ńÉę_~ůehh( Ň××7mÚ´S§NŮĂ>÷Üsď˝÷^˙|||ČZæ:´ĺXG€ĎçżôŇKŤfäťǬł E™Íf‡úęęj‘Htůňe‘Hd6›7mÚôÎ;ďĹb‹Ĺ˛qăĆ7ß|sdL&ŹÇëěě$‹§Oźž?ľÉdârąMMM¤ňčŃŁdĹa+•Jhoo§iş¶¶–´ěďďçp8uuu¤eaaá­<¸UL‡300@b2ËĚŐ­V«żżuu5MÓyyyŃŃŃĚmĽrĺJooŻŮl>xđ }­ˇ©ŰňF ­­mä=HçÁ0וGĆŰŰ›˘¨ćććŕŕ`f˝Z­–JĄsçΕH$•••yyyyyyŐŐŐeee{÷î9¬FŁ1›Í‰„Ů‘FٱŮlAAA¤ćˇ1đů|///ŕp~:ßÝĽy“¦éŮłg“ĹYłfŤ)ŕńx€Äd–™ër8ś„„„fddäää$&&2_ýţűď(Šš9s¦˝rhŞĂ¶Ľ …±2ćůX,^Ľxqff¦˝&==ýÚµk™™™±±±đĚ3ĎkµÚČČČÂÂBµZ1rX___777»ŕ===çÎťóőő€ü‘´ąvíÚŤ€˘(‡°~~~E5559DeŁ–őë×ňÉ'7nÜřöŰoW®\iŻ×ét/żüňţýű+++·mŰfŻšę°-ůŚ’;™'*Šśśś”””şşşŁŃřđĂź?ţí·ß€Ź>ú(""‚˘¨ČČȬ¬¬%K–đx<Š˘¬V«Ůl&A:ôőő ™L–ššŞÓéÚÚÚÖ¬Y“‘‘!âăăĺrůÍ›7ß˙}˛ťĂ66U>ź/“É’““5MCCsOěYŤ>ć°„„„%%%ĹĆĆş»»Űë:ęrąaçÎťV«µ««kŘöüĺ#0Z'‰ŃĚŤŤŤëÖ­óőőĺóůÁÁÁiiióçĎßşu+MÓFŁ‘ÇăíŢ˝›¦é––8pŕMÓÝÝÝsć̉Dß|óŤCk×®ĄişŁŁcÝşužžžžžžŻĽňJ__©\łfŤX,~衇˛˛˛D"I`hcć)™YÖëőäóÂĚ™3>ě0-°gĄ×ëGsŘąŽBˇ€S§N9Ô˙ĺ/‹ĹłfÍ*)) Yşté­ÂmyÇ#02ă0OĽýýýd˘4ľääähµZR>zôhHHȸwáäLÄ ő`Ü®+ …°°°ńŠf§¤¤äŹüŁŃhĽ~ýú?ţń2q)&gśýű…BˇÓéîż˙ţĐĐĐŔŔ@2q)&gĆüąq’‘JĄÇŽc; 6™śpöă29 z€Đ`ŘyâżţőŻÉĎ™LšššľúŮUŁÚÚZ‘HÄRnlA …şąąÚVCzz:s×˙ě÷L.ČŮłŤ+W*^|qŃűﯼ}ë{Wź=ZEţ·XllçÂ&.íÉd).®€®®ľňň:¶Óa—ö ´TŐ×7nnśââ*¶Óa—ö ¨¨ĘÍŤ‹í‹/júűMlgÄ®ëAoďŕ—_^¶X¬dqpĐňŐWWŘM‰E\צŔáPEE•,ćĂ.®ëAQQ%ón>‹ĹvćŚĘhěg1%qQ †Ţňň«VëĎ>+Ň4ýź˙Ô°•»¸¨'N\ZIÓtA‹ž\ÔÂÂsC/¤ÚlôŮłŤ7o?ń˝Ť+zĐÚÚYUuÝf悺›çřńa÷<®čÁńănőĄŠĹb-*rĹ JÎ~âD0k–ŹźźŘľŘÓ3(ň¸ÜźŢŹ>ęĎR^lâęß7ŔŚ©űö­öŮńżéţ.ÂĎ ČPĐ=@č€ ô@z€ =@Đ„€ čB@ô! z€Đ=@č€ ô@z€ =@Đ„€ čB@ô! z€üÄ/8蝡T*§M›ĆöÖŽűíŰM<™™™líÖţ>RMMMGGG~~>[ 8éééĺĺĺÉÉɬôÎňßÉŠ‹‹c7硠 €ĹŢq~€ =@Đ„€ w…MMM‰‰‰R©”Ď祦¦vvvŽĽŠJĄ …¤@1đňň’Éd­­­Ě6·ŤŕP¸'qv”JĺOú裊˘"##ł˛˛–,YÂăń(ОZ­fły4]‚çź>%%Ą­­­ľľ~ëÖ­k×®Á^#d2YjjŞN§kkk[łfMFFĆDm˙dáě<ňČ#?üđÁ`XĽxńÔ©Ssrr~˙űß~řᇰtéŇÁÁÁE‹@TTTOOOLL řűűĎž=ŰÓÓÓ`0ڦ—ýű÷{xxJLLĚ믿>4łfßľ}‹eÎś9Ź<ňŹŹĎ|0a0I°ö\žüüüřřř;ë}``@ĄR……ÝSOŇYµj°uC†ł†E(Ţc°Î]é2î z€Đ=@čŔú}ëŃŃŃě&ŕ<\şté©§žb«wÖ®#utt¤ĄĄőöö˛Ň»«•ŞŻź&•öJ$ěfÉÉÉl©ŕęĎůÎĎ?—’ňÉÓO‡äćľĘv.lâęóŁG«¨˛˛ş®®>¶sa—ö ˝˝ű믯ĐđŮgŘN‡M\Ú'.P4MŢő÷ü\ÚüüJ›Ť›Ť®¬Ľ®ŃŚöč{×ő ąY_SÓB<77NII5»)±ëzpěX5—ű˙›oµÚ \÷Ôŕşś3›möEš¦U*Mcc‹)±‹z RiÚČ';<ž[IÉy¶Rbő ¤ä<źďxMÝl¶~úé¬äĂ:®čMÓ……•&“ečKjuGMMËä§Ä:®čÁůó×[[‡˙貧WôŕÔ)%Ĺçs‡ţłZm_|q‰íYŔ©×6A¬]ű¤Ůlµ/ćçź[¸pÖĚ™ÓÉâ‚Á·Xď^ĆŐżo€3R÷í[˙ěł.}#Ľ+žˇ z€Đ=@č€ ô@z€ =@Đ„€ čB@ô! z€Đ=@č€ ô@z€ =@Đ„€ čB@˙JUUUUU[˝;đß˙ţW«e˙/ĄM›6-..ŽťľŮyĚ***// CTTÔúőëÍfsTTTWW3š§§ç /Ľ R©zéééůŕbccW­ZuŕŔ˝^ĎŚđá‡>őÔS[¶lyବOBBÂĆŤ›šš ąąyőęŐĹĹĹË–-űúëŻíďűîîî÷Ţ{oůňĺńńńĄĄĄ“0Vżçő ŻŻďÂ… 2™ŚYIQ”L&űöŰo,XP]] 555îîî/^€‹/ggg“ĂŔÔ©S™ëęőúÂÂÂ|СŁôôôŢŢŢěěěôôôłgĎ~őŐWöBˇđ›oľz­766Ö^©×ërssě vďŢm4łłłwďŢ}ćĚ™q’ Äy˙Ţzgg'řřř8Ôűůůutt„‡‡ggg[­Öššš•+WŰl¶‹/.X°€ŮĽ­IŮÝÝ=,,ěŤ7ŢphPZZzřđa‰D"‘H’’’<A^5 6›M*•’ĹŞŞŞ-[¶2ŹÇ#g‹ĹňꫯJ$űŮĘd2•——:tČÓÓ^|ńĹíŰ·ŹßŔLÎëD"€¶¶6???f˝N§›>}zPPĐ}÷ÝWWWWSSóç?˙ůÔ©Sőőő.\HMMe6¶ď­[a0Ŕľ§ýüüÚŰŰíŻŠĹbĐjµ$‡yóć‘7·R©”Ëĺ¤ —Ë%©Úéčč˛8cĆŚ±oýdăĽçňö-..¶×h4šâââ_˙ú×^QQa0ÂÂÂĘĘĘt:ÝÜąsÇÔËôéÓ@«Ő’EŤFCjŹ=öX~~ľĂZö2y",rhmmµÇSJ¬ŕĽ€\.?yň¤Bˇhii1™L˝˝˝‰‰‰őőők×®€đđđcÇŽ=účŁE………•””<ţřă\.—˘(›Íf± óřĄˇđxĽE‹)ŠÎÎÎ7n}:++«©©ippPŁŃ|üńÇ#Oý¸\îâĹ‹÷ěŮŁ×ëŐjuNNÎx ĆÄâÔîŰ·Ż»»[.—˙ö·ż=yňäóĎ?ďëë[TTóćÍ3›ÍˇˇˇđŘcŹő÷÷“É———żżlllww÷hzŮĽyó”)SSRRÂĂĂăăă™öďßo4·lٲ|ůňÍ›7s8śŹ?ţŘĂĂc„iii÷Ýw_RRRZZZ||üx ĆÄÂÚóX(ŠşłďťM&SssóěŮł' )–‰ŠŠ:räČŞU«&żk§> źĎż'%`—»Ďd"@ô! z€Đ=@~‚•_MĐř;–[ŔÖďXX»žxéŇĄˇ·„¸8Ë–-cĄk|Î7€ó„€ čB@€˙S1ŞĚŕO„IEND®B`‚qwt5-5.2.3/doc/html/graph.png0000644000175000017500000003153012052741136015302 0ustar gudjongudjon‰PNG  IHDRW€ÂË] IDATxśíťp×µçď(ú%ŁŘc–Š_p Ż–5öĆŕT…T9EB(D‘kóäňĚ>ś­%É?Bb㪝Lxq kYÂö#Ůu4Xz[^W˛‘Q(Ö®˛\`×F`c„¶Öx‰áą, ÔűGèŐ3§§§çv÷ą·żźjOyşGâę3wćôésďíDżĘ "ęPÄĺ‚X \K” b €rA,P.%ʱ@ą –(Äĺ‚X \*Łn€X¸pˇµ&Řm :ďďBüöw/FĐ,Sy¶uçńăÇ B^ 8϶ît9}^’ĂśćvôŮÖť‰L&¬¶¨„™NĂLA`†f(`†ÂL§Ý_|ÍůÜ5®}—ó×}“׸Ún¨ żm,¬p˘Ŕ5.łŇąM9Z,*ơ€ ˇ€ •ň’ßrć%˙óä%Ŕuň’éÎmĘQś/Ŕ ĚPŔ ĚP¨”—ü«ď:ó’˝ČK€ţó’óçĎßsĎ=ö=ŁŁŁ[¶lYĽxńŇĄKŰŰŰ'&&Ü÷—FeŢ–÷g€|`†f(`†f(Šš)K6nÜŘĐĐ0<ó’‚ŚŤŤUVVVWW[Okkk/^Ľč˛ßÁB‚Ü Ľä%xÄ#ńǨ]pÇuęÔ©µk×>|Xašćąsç–-[Ö××WSS#„8zôhSSÓ î?xđ ű?ś#7Žë_®uŽăú_Ż`°Ŕ 'ć—Ěš5«®®îäÉ“ÖÓ'NĚź?ßeÉ ĹĽw_Ŕ ĚPŔ ĚP5ă5–$‰ŠŠŠU«Vµµµ ť>}:›Í644PűËny^p“f(`†f(`†Bf˝DŃŇŇ2{öěĺË—Ż[·nĹŠ«WŻvß_Ç塀 ˇ€Оę%á«—Ě˙·ÎzÉ˙ţ=ę%Ŕiő’ A˝Ä0C30C3Ňę%‘ë0C30C3’ë%Á2=ołó ˇ€ ˇ€ ä%ú30C30CˇR^b~ĹąM9Šóˇ€ ˇ€ ä%ú30C30CˇT^‚ů%ľ`dĆHOn `d†|ĚF:·EÝ!8™á†JóKnyÜ9żäŁÄüu0Ň]ąg©TŁ0pŠÜ0ŤtÖÖg’©Ćú cÔ™_‚ĽÄ,ĚL $BŽŽ®ČłfXÂÁŚ#!˛]‘g'Ě𤨙J÷Ăa_jŢ#¸ŽI30C30C‘ČdÜĂI4yIżŤÜNĚ{÷ĚPŔ g3Ń–O8›‰¦y‰pľ@30CÁŮL®db'ˇŐQ8›‰¦yIAP/ń 3F&•j´ďŕP{ga†%Ě$ŚLrjźqÔŢF&·Ů‡{š˛p0Ă•ĆqýÝNgĺoŹb—RŘ?äQ ţ’G8ÁčŻppÇĹé—k[ĚtégA™12ÂHó‰"ŚĚ0ŹaŔńS݆ń1Ă ÔKôf(`†B33öřQfʢ™‰­—0Š%fŤëQś/Ŕ ĚPhlĆ%eÉ?šŹĆfĘy‰ţŔ ĚPÄÇL©WĂâc¦T”ĘK¦ąĹůĚPŔ ElÍ˝[3EA^˘?0C30#¨”ŦHçJÍ/ÁýK|30C3ůXY„)ňg´DÝ4 /ѡ€ ˇČ™‘86LP/ѡ€ ˇ(h¦Ě±az€ĽD`†f(`†Â‹™ŕfJr†]^â˛ÚĽŁ@â<ĘéLĘî4ňV±2Ă ˇ€ fbr5LĄő¸ţĹťaćěŹ9®Çe¦Ó٬ífpÉF|,'á´† ŃRRháźß(ł—őG Bdł]ѶŤ‰†Ŕ ĚPČ5ăýjă.“f*Í-ś ^˘?0C30C¨—«anWĚ,ś¨4żDLËŰl`D<ĚPŔ ĚP„fĆ~w–pţĹ2)j†S,qgR0C30C3EÍ0Š%JĚ{Od2ÉäÔ›ÁM}>LĚ0f(`†"d3 Í«G˝$ěńĂjX„ĹLVfX30Cš+„LŢÜ>5Ąöî¸]1ŘÍ/qAˇű—›ÉDŐBVfX30C‚G±H3ĹzL0ň’đ*śđ7Q…öhŕ¶ ‹ś@ÍŚ"“˙4żřaGĄq\JÔKÜŁ…Ą;ěK®<Ě0$|3ÖôŁÜĆö­aŰ°Č ČŚUQhÔV>ČKÂ&üň‰*fÂ'd3 ç±R0l¤›qĎEB©Ľ¤ĆąM9ĘŕLĘű÷BQďá`ć*Wď&”<†¦02Ă ˇe&wďĄs;ČK"#´ň 3FşĂ6%•Š~a..fř3ĺ›Ń&q€ĽD~ %;‰ÜŚÎ@"„čččŠ<;aa†%0CQŽÍLó—•ç)=“Ę…“ŕÚŻ¨™ÓŚuŞˇĘŇ<[ĹftÍEě0ť_b_č~2®¸¶…g Ó AWăŐ54ˇ™ÉýCaÖÉĘ}†˘T3q"LóDŰőË˙ěW>Á—Efň“Nű˙łŤ+č3ŢÍÄ'ŠX ^€NZY12©Ô”uÉR©ĆČkďA›±NŠÎ7 ´ ţŕŮ*x1Łw]„BĄű*~í˙:‹(ľÎ⾊ró ť//Ř‹íşĚ<ľŹ:żÝń#ną÷ű*rĘKT÷^>ŇçĆ32c}ĆŚ “@śž3ŤĽĂ°IL ĚÄ3±z GäVău2#— Ěř•áşź¬Ă ‡™Ü‚đ± !9P/)»U} Č:cĹ9&…t3E $Ş€>C‘3cODHî«Č)áDK3Rk¦śł nWşĐg(™ .g÷U,ŻIÁ_š(˙[†Ő—+¤­­”NË.Ą=ĺç%¬@qő(snĽĆfĘDŠnĄ)č÷•IĚhyAr˝¤··÷Ţ{ď˝óÎ;—,Yňŕ~đÁÖţŃŃŃ-[¶,^ĽxéŇĄííí>ÚĘ­^ňşńľĎ[qŽIQľą}€Oj¤pä"0C!ł^ráÂ…GydýúőożýöoĽq×]w=üđĂÖˇÖÖÖÁÁÁýű÷wvvîŰ·Ż»»Ű“ âp&ĺď»&füQ¦-3 ]˙®’(xE f(dÖKŞ««ŻżţúD"‘H$¬=sćĚ1Ms||Ľ§§§ąąyćĚ™óćÍK&“>cIMŢf#&ç >ÂILĚřŔ·)’‚0IM8´!B\ę"17ă‚äyďüŮĎ~fš¦˘¶¶öOúÓś9s>ůä“ĺË—÷őőŐÔÔ!Ž=şiÓ¦xüťąyďu¦sŢűç‰Čć˝G{NŞđ±ýmKĘ$ů żż*É"e"mŢűřřř¶mŰÖ¬YsčС×^{mÁ‚mmmB±±±ĘĘĘęęjëeµµµ/^Ě˙ń…“ ő0Ž+&Źąąń‘·$nŹą“ŻČ[‚G™ŹFÚ4Ň ##LĽżţ](!/ůřăŹW®\ů—żüĺşë®B>|¸ąąů­·Ţ:wîܲeËěyISSÓÁ=ţÚ\^2ŁÂ™— OD“—lNů´Ä+Ęć%ÖG%4Ű꽳j‚Z±>#ň’iÓ¦9öXÁcÖ¬Yuuu'Ož´vž8qbţüů~ĘlĽ\^ʧ/x7c†>ˇ=ÚÂIúŚżÉ"q0㏢fJ%7Ţxă˘E‹věŘ1<<|öěŮ]»v­X±"‘HTTT¬ZµŞ­­mhhčôéÓŮl¶ˇˇˇĽf ¶'qEżtbk¦(ÍÄ0EĐűď-gʡŢfĘAňĽ÷;v|öŮgßýîwň“źÜzë­---Öţ–––Ůłg/_ľ|Ýşu+V¬X˝zµŹ¶šÎmĘѰÎ~ł¸/-Ś3) /f"|»#LMtí3ĺO\×ŐLůȬ—D®^R[ë¬—ŚŽFP/aKrpnŰUÔ©—„\ qiFämĐÔEB@Z˝$hĆLçf'śóćě‚g˛8“˘p1~„:őą‹hédF.2ë%ŃŰŹ˝üp3”Vg ‘\éâóç—CK1ęa&TZ'C^˘Žoˇ(ñ $Qˇtź±BH@ ú*m&PTŞ—\žî¬—T}j˝D­o&—űť0®—p~9·Ť(ŠD‹2ő’+y›ś/8Č-- 3ŽěŤó—uČWş”ë3ˇÝYD93ˇQÔ î_rćß5LÖ äIî UôÍ …l„ś‹(d&dTşß;ę%ľś‚×Ö4Sâ "ĚÓ%:L$w9TÂL$¨T/šć¬—Ü0R˝D•ŻXü †­·1¸¨ÍÂI‰¨Řćr0m}&3Pá‰{˝„Ń5®Ë¦ŰѸ}ĆĽ“›*q5ŢHwtt垥Ráq‚é“O“i¤ł¶>c¦®ľeF&f˘R^2XăĚKf_B^R2Ńü-S‰E*ŐI8a:ÂÍ3:őFÄ"™jD:Ž㸠޿$Şz‰ęÝü©‹q>%·OhWÔCď ˘fBf(Î{ď·áńG”ţş”|3± 'ŽÓô ˇ€ Ě{/‚ęI‰ ĚÄ0śäż•ęúíS×LĐŔ ÓĽÄŞăe&Ô™ŚF&•j´ďłXB üEźˇŕ`&ad’Sű ‡b 3<)j㸔ÇĹL®l†:#“JE0&ŘĺŻSşĎX§µź‰™„‘1SĆG3 Qi×ńJç8®Ű®;Ž+>ý&Ľż4Üő¸´µ˙…քĨ[ŠĂqWA0ďÝ^ĚčW>ń2ˇ]ł?Y"0C3¨—hsĆçńŻĐ)śxĽ“•ďo@ďšff(TÇ5ž·ŮŃć{P:ŢÍč±®°÷“Ő˙R‹ ‰f‚f(—F›¤D”hĆľÚŠŠ”ôĆióKf(`†BĄĽőř0Łb8ń±âŻr#…ô÷K3Ň ä%úăĎŚZáÄcÄú ĚPŔ …JóK®?żDˇoOďř6cźÁ`7ůÇÉŃß fW2ó^óýۤš"÷,«10ăĺ÷„Q,qGĘśÍvŮźFţ6Kˇśż"÷ ĹÇŚÄ·IŹ÷×3¬>M¬úŚĆfÜĂ Łk\ÖKN…Ůl—iJů3rß&=Ţ_ VfX}š`&śĆ°ËKě‹Ě—„~ç˛n™ ??–ľúâĐgXZß}Ć  Ďč`†Eó’°cIţ’-ąčâHD„"1ůżÚ\’’N@f|ţÎňÖP‘>ZIű>I%‰z›|6¦Ľ5T$7†“™2 yěŁk\îh˙Ąŕˇ€ ˇ€ •ć—\1ť›ť2cl"“I&§.pťlÔŁßčdFnc4¸°•ô™pS&!›a´Nđťp–RţM…äu‚YŤŐc…432Ö ĆŰDÁĘŚ´Á¦2Ö ÖŇŚ$6Ć}ť`Fc‚/ą•rí;ň÷5ô3#«1úŐKX™aĺf($šqŁk\î°z{X30C30Cz‰ţŔ ĚPŔ ĚP /ѡ€ ˇ€ •ň¬ěˇ€ ˇ€ ä%ú30C30CˇR^rÉtnvpľ@30C30CˇŇü’ÖËÎů%UIž_‚Űő¶˛g €8`ÚúLůłL@ ¸Ď/a”—`—?¸1Ň]ąmJ\‰.fřÁÄŚi¤ł]ąÍDźa ę%úĂÂŚ‘î貺5‡p K8±‰}‡pÂÁ OÖKÚČíD˝Ä0C30C3ěî_ba/ŇxĽŁ Î(`†f(`†f(TşŻâ•ĽÍÎ(˘7őu ŠčÍpf(`†BĄq\™KÎ%]q\Ľ±˘5üfjÉ$•jÄP.ணd’L5b(gÔY'8˙ľŠ6ô[óUѱG‘«{2©Ż1Áč3LĚ$ŚŚië3 3 Q)/Ů2ćĚK¶OC^ÂŹü(@Hą eć—`—?B5cÝęJ‘O>ú ĚPŔ ć—čOHfŚ´”{&† ú ĚPŔ Óů%ÁĽwn&E” $}†f(`†‚éüŕ|"@3Š—FĐg(`†"fš‡>÷ţâg[wZNTš_‚z‰?1Łl.b}†f(âcćŮ֝϶î,úšÜ˙KÎK._ľĽk×®?ţńŹ/^üö·żťÉdn¸á!ÄčččŻ~ő«×_˝¦¦ćŢ{ďݸqcE…ä(‡óČ7ŁZ]„}†f(âfćßýt}ÁýżýÝv쑜—ěŢ˝ű˝÷Ţ{ůĺ—{{{«««źyćkkkëŕŕŕţýű;;;÷íŰ×ÝÝ]ŇŻµ@˝Ä2Í(X`w}†f(`†Bf^211ńĘ+ŻĽđ sçÎBěرCašćÄÄDOOĎîÝ»gÎś9sćĚd2ŮÝÝ˝fÍšrÚťOÜÎĽ#nj⥑‚ ĎPŔ EÜĚTUUy|ĄĚĽäüůóCCCXşté’%K{챑‘!ÄŕŕŕČČH}}˝ő˛ ś:uĘűŻÍz‰?Ę5ŁEi¤ č30C73UůŻ”9żdddÄ4Í3gÎěÝ»·§§çÂ… O=ő”bll¬˛˛˛şşÚzYmmíĹ‹ó|!÷kíŹţÍ\‹"¦©§[ôęo´¨¬Ş,¸Ů_“˙S)a •üŕďĽóNmm­âÝwßÝ´iÓÁĎť;·lٲľľľšš!ÄŃŁG›šš<čń×ćÖPůűag\ůç“k¨ä†¦¦Ź„tĽ˘•Ź3ń€•Vk¨°2Ö`kŚÖ'źüż‚ŻůÇ_˙&÷KH.˘HXCeöěŮÓ¦M»rĺębđăăăV.2kÖ¬şşş“'OZűOś81ţ|ďżÖ#ÚżÁľńHtĽ˘•ú ĚPÄÍŚ÷k\2ç˝WVV®\ąrűöíCCCgĎžmoo_ąre"‘¨¨¨XµjU[[ŰĐĐĐéÓ§łŮlCCCiőż”`FŻaZEAꎀ ˇ(j¦´1Á?˙ůĎ'&&ľ˙ýď˙řÇ?®ŻŻß´i“µżĄĄeöěŮË—/_·nÝŠ+VŻ^íł˝4q;_đŽ'3úŘ]@ꎀЏ™©ŞŞ,¸ĺż˛¨™Ňć*Î1ăé§źÎß?}úôíŰ·oßľ˝¤ßć÷/ńG3ń(Ť}†f(âfĆűŕ˘y ÖăRŇLŚŁú ĚPÄĘLËCŹzqŃů%ŚbÉ8ň_6§şú ĚPÄĘŚűz\ŽHĽDśfbźŽä@ꎀЏ™ÉŤËuđčĎéŘu‚őgŇL, ě. ĎPŔ EÜĚ\&Č%ňýId2ČE ‚>C30CˇR^2n:7;q;_đ rô ˇ›ä%u‘â ĎPđ1céÜ#‡•Tř ‡Ë— ×KňQ)/ą”·Ů‰ŰůBląĚPŔ 3¦‘Îvtĺ6+˘DÜ$fBCb^Â(–¸·ó’ĽuP`†f(8±‰}‡pÂÁL\ľrąŕ–˙JÉóŢeQp©ů/1żÄâ˘ĚPŔ ĚPdĆLą˙Od ňuˇsĹó5.¦őűB÷oaë®ďZ‰µW`†"Z3‘'.H˛ŮNŰÓűY…ʍT/Á8®x¦S3€ŠđÍF:·%Ś ‡2{A¤›q!D6ŰiOS˘ă¸â·uPâhĆ0Cš™\ ’<FĆLM)™$SŤ‘Ǹő™‚aŁ j­Çő—ŁńşÂ[Ęxßx™)ˇÔŚý–{l°Â‰Ç‡CÜúŚ÷X‚ĽD5Jź53Ą3TčÄ­% ⇝Xőm× 1ĎKüÎ=Ôߌ_`†B–ď)*Hď3‰Śa¦ď·—L’I.µw¬¬ĺÍ`×ŮLyŔ E9fô‹v¤÷3mXáÄöOr˙‰r8pŕ`Áýřăź{ÔĘKŞÝjyŽ)c=ÍČf(|ńw K9äö+©ń#·S-—0FŇíŞ44# ˇđhFď¤ që3×ăbKb“—H]–Q+3R w31IA "±ĎPůG"cđIM0ŽKYXÜW33ůfb‚$č@rí_áN .˝UĄňÓ­1Ęźc¶DĽňff(,3ůHé3Lℼ_ăB^€€o4˘°™€™‚FZÂiÄŹ|Bë3LR‰óŢ­Ç%Ějçf?¨čÚJÁßôPU3Á39Ëa ‰HaĘď3"D°ËK<® śŹzçaÝ÷P=3a3Tf(Ę4SR áš\Qw=.űjó“ŃE›yďáŢ=W%3áO3^Ş ń4ă…rĚD|€q\<°ß†ÁúĐFqvŽfx3ĄVŃăc¦TB6yjrůŠ–óKÔš÷n¤;lËe§RD vfŘ ˝ßA´7ăßf|‡„ĂIIk;"/ †©DŃŃŃ•J5FŇ^f8ˇĄ)yµ4#…I´”´¶#ňý ťĚČť‹®“ąřY©¬ě@aj˛cgkÁýü±cň’pqą‘5ć—„Žęf‚›K¨ş™ŕ€ Ąňˇţ8.—|`aF 3Q ˘™p梫h&J5#+ź*5ń>&yI0™TĘQ{o, 3ĽĚpB!3!/§¨™‰$D®ëq)U/12©TŢ`żżŠ>T<̰3Ăćf"\‹ą™‰ĐL$© ÖăâAźa&a!ňŢf¬Qź)!8¬čÎńÓÄďf‚řŢ?śH\Ź‹S,1ÝĂ™”÷Ľ$ŠQÜżĎF:k»ňi¦®®źČmE^|š(<šŃŕę–ĹĹ‹=ľ˛h^’Č_Ô$d.\hµaáßţÁq¨˙ď^Büöw/ !Ún¨ żmz\É_ N8‰E2Ő(xÄ ‹ IĐżżyčs÷™%âÚäëeąŕj…“ăÇŹüVy‰Rő6”l& Qů DýʤĎ0 $LĚ0$fŠ’‚ŻQ*/9ýď‡úżńOy ÜĂLŢBÂËŘ6˝ ň†±ř&ś«[<ݎqĚK Ż<ŻÍ:Áá’ŮL¤0é3Šía»ž_ńá T^ň6:őĎ{N /Qä%BĽÔÄ‘”p«Ŕ’90Ś[ó’ÂUnq&E3á›I3EŚ‚q%’ ‚>CÁÇLäËŃ;P*/ůč!ǡţ[ZňUpÖŢc—”řá0O$_ë¬b‰P*/Á8.?p1#q!Ip1ăJ.„„T”0 ÍDőťÎ*5Q*/9ő ǡţoţF /Q #úˇŔŞL…Ń~›ó‰%˘X^â6ŐĚPÄÖLŃL%¶fŠÂŮL´©IQ3~bÉź˙üçO?ýô°žŽŚŚÔ××[O,XpęÔ)żVŐÎÍ~Wx `†f¨`0CÁđęäç%gÎśiooß¶m[EĹŐź«¬¬¬®ľúŐ_[[[𾏠Jú×­żŹöG™˘Ź ##La=šFZ$„i¤#o·G3marh ů>^KMÂ˙׋Rň*<đŔşuëV¬XńŃG­]»¶ŻŻďÜąsË–-ëëë«©©B=z´©©éŕÁáä*'˙ŁăPý#âÚ*϶îäś~FÉęÚ7§5Tx™á„e‹µŘ±2ţ}&ŞĚ)Q¤­ířî»ď9rdóćÍÖÓ;î¸ăčŃŁuuu'OžĽăŽ;„'Nś?ľß“0#f(`†Â2ɲ’Ěáßg˘šk"~ɱcÇúűűűűű_}őŐšššcÇŽUTT¬ZµŞ­­mhhčôéÓŮl¶ˇˇÁWk«ó¶I<ćY1f(`†Âa&„Ŕ“űvV˘ĎDR„/jFÎĽ÷–––'ź|růňĺUUU÷ÝwßęŐ«ĄüZ;üϢf(`†‚2ĎLĹ~šŹ>CŕĽ÷o~󛇶ţúôéŰ·o˙ë_˙úöŰo777çĘňĄaV87űAÎ"f(`†˘¨é+€±Ĺq˝H•>~jR^8_ € ˇđn†Ď}…Ă}†B­ő¸°N°`†f(ü™Ńݬ’_ÄV¨Ď„śš /ˇ’/1IDATѡ€Š2ÍčQV)8 }†y‰ţŔ ĚPČ2Łn¦B «U«Ď„™š /ѡ€ éfôČT„‚}&´é&jĺ%Ç塀ŠŕĚ(‘©¸|ů˘ĎPűWę*Ň™\CĺřǡţŰ×ÖPi»ˇ.ü¶Ň°q¨yZ ¤c'ůÉŠűŃ@ÚŁăęŤáüQV8‘¶†J€ŕţ%ľŕbĆHwtt垥RŃ/ĚĹĹ ?Â4ă2ŞŘ4ŇY[ź1SéČŻŚˇĎP(•—ô˙ǡţ…ëň%H,R©ĆČĂ ŕ‰T˛y}&™j 4śh™”X„đ§ąç%ŃÔK5çż’·M‚ë0C3‘›‰$˙đňmą¶5M,é·áńGxRŔ ĚPÄĐŚÇÓvuÍ=>8ű*ć—řf(`†f(”6h8aš—ř@Ýó… aaĆȤRŤöŠ%,̰„™„‘INí3ÁKĽ×8áIQ3¬Ćqą6ŚŻ ŕbĆȤRĽĆs1Ă&fFĆL>&¸¤˘43ľ nę"ňýadĆú.02‰`e†|ĚXńĂšŢÄď/ő‹•Źn ^˘?0C30Cˇ™€Ş&ČKôf(`†"&f|\퉉¨•—T:7űAőĎf(`†"fü• ô0Dj‚ĽD`†f(´7ă»ţ¬ŤéáD­Ľëűf(`†f(`†y‰ţŔ ĚPčm¦śA±:™‘›š¨5ż$đu‚íf#_âMVcô3# ýĚ ĎP°2Ă ‰fÜ_Ŕ)–¸"Ąëgłť¶§÷GřŘÍĚHD33č3!4Fł@"„hFťű*ŠŠĽm’2Żc:z›"›í íVÉ6F'3rŃÉ úL8ŤŃ©^˛™°ó’©‹Ě—@@ç ¬ľ4ý6Ć0őé˙2Aźˇ ¤ĎřlLÚ0%7Ä?úĺ%˛(š—„Kň™źŚ.QÜW1’ÄśúČůkL™fX}3Ę}†ţmôźŤ1Ęşť˘Ü¬_˝DÇĄ?q8űöú ĚPŔ …ZóKś÷žČÉäýö=ÉddŐBąŤ ČŚ5 Pé‚>C3:ŐKB6Ăé~ď}}ŽCýwÝ%¤Ţď]ËQŚRpiŚuČk Ť4“E‚eˇĘŰ>Ň›–wŤKncôC˘÷ű˝sŠ%ďüŐq¨˙[‹ĹµXňlëN¤ź ç Ż×Â)–Č2Đ !"„UU@J,‘+3¬Čĺ%T,‰Ńü] ÇŚőeZZŽ5č30C3JÍ/ůŇtn6tşŽ)—0ͨUGAꎀ ˇ`7żÄ78_ ߌ*9 ú ĚPŔ …RyɸéÜlŕ|"*3üsô ˇ€ ä%ú­Î9 ú ĚPŔ …RyÉ—y› ś/Pp03™Ł‰¨Ű2 3< ˇŔĽwýác&‘1 “ĎU/>f¸30CˇÔĽwŚăň#3FZ‘HL" #3ĚŕcĆ4ŇÖŁő?‘ĂÇ 7P/Ń.fŚtGGWîY"a #m…‹~01c鬭ϩč'-21ĂĄę%Çĺ f¦!DGG—0ŇŃŽőba†%Ě8‰"ŰŃyvÂÁ Oć%>îb‚ó ţf˘ëĹßLTŔ ĚP0ÍKúmLîE˝ÄŞ ?GQĹLřŔ ĚP0ÍK|€ó µĚ„™Ł¨e&L8›±.sEU8ál&Zć%…ąb:78_ `aĆȤRŤö©TŁË‚Ááä(,̰„™„‘INí3ÉTcÂČX›5˛+üň 3:™‘;ôK'3rA˝Dô6SNEo3ĺ Ą)Uz-ÍHAr˝äĂ?\ż~ý˘E‹–,Y˛yó桡!k˙ččč–-[/^ĽtéŇööö‰‰ ÷ßSä%ľ9JĚřCo3ŽLĄ¤źŐŰL9ČĽÉřřxSSS}}ý›oľąwďŢ/ľř"s-†·¶¶îßżżłłsßľ}ÝÝÝţ›L€óŠř)5˘ÄÇL©ÄÄŚŹk_11ă™÷/8sćLKKËŚ3nşé¦ 6ĽóÎ;¦iŽŹŹ÷ôô477Ďś9sŢĽyÉdŇg,Á:Áľ›ď%nfĽ+3%Tbe¦$dÖKnľůć÷ß?÷ôСC·Ür‹bpppdd¤ľľŢÚż`Á‚çźľô¦ç ń4㥎O3^§/•xšńB óK ĂŘłgĎOůä“ááá{îąçęŻN$Ş««>,„hiiyňÉ'—/_^UUuß}÷­^˝ÚOc/»Ä™ĚäŐ]U}†Â2Î:’j!ą^“ő’­˝ŽCý˙á»őµ®^B!%˘ ^g¦X¸×K°—ňŔ …e&üűĚó}†˘ ™ČďöČ™ő’hAJN3v3¸ęe}†ÂÝLś *2ë%q\ľ€Š|3(č3Í *Eď=¬ČKôf((3(č3Ąš)XĄ7ŤtÓĆćÜkLŁMp˘Ô}/ź÷ň w3q®Ł ĎPř6c/¨Ř‰˘icł%–˘f8ĹWp&E3ž.VÄ2˘ ĎP”iFüBć:Áu‚}ÁČŚuňe¤Źł0ďfâQőfŔ ę%úĂĹŚ‘îččĘ=KĄ˘źhRňµo˘ŽbíŃ©ľÂĄĎđŁ3\Črőýaafj BtttEžťř3ăČQĚ´‘Ívć6=}†%ţĚXe’Ü4”]ϵُîzN‡Ú;ÓĽdĘRóŢŔ™ĚP”c&—ŁdłťöýŮl§™ľ_őě}†˘T3YIÓhł?•Ҷha:żÄľpËd\™:ŃÝFÄSŔ ĚPŔ …w3îKué?ě0ÍK|€®O30C3^ĚÄsÁGĄę%y› \áĄ`aĆȤRŤö©TcäµwfX3îfěu‘ĐšÄĄÖ ~đż;ő˙§¬¬öb».6GÉ$™TľX|Ď\ÄĚű*ËeÔKüŔČŚ‘aµćĽ3‰Śa¦ď·?-ór€Qźa†ĂL ×p¤@˝D`†B–=â‡ôŠś$"”Ş—`Ţ»/`†f(`†ÂL§ă\qëqéĚPŔ ĚÄ4Ň"!E ˘Ôz\÷î ˇ€ qËE„[Ń6Ö ^˘?0C30“ĂQ Ąę%ČK|30C3‚,3ČKôf(`†"ćf\ĆhĹÜŚ Jĺ%¦słó ˇ€Šxš±÷1Zń4ăä%ú30C73Ţ'‹ÄÍŚwŘĺ% óf¸QÔL"¬Y¸pˇŐ†…Kţ›ăP˙˙X#„říď^B´ÝP~Ű@ 鎎®ÜłTŞQŕ¦ŮŔÓHgm}&™j´ţ·[ç‰NŽ?^đ(§Ľő_°035!::ş"ĎNXa 3Ž@"„°žFH8á Óz‰Çµíŕ:&ĚPŔ ĚPŔ ÓzIżŤÉ˝÷î ˇ€ ˇ€Š˘f8]ărç 0C30C3EÍpŠ%¨—ř‚…#“şV8µŕP{ga†%Ě$ŚLrjźI¦#Żşs0ĂĆqĺ·ż{ńŮÖťQ·€ă¸H€9 Ě{§Â &(—`Žy‰…Ź))dá^\W&–b‰GrK¶DţKĐ4ŤAcjŚű pŤ @ą –(Äĺ»XÂjn&CĆP 1h E8Ť‰], Ä?°:é`ĚPŔ ĚP¨e±@ą(°¶#ć /P.%ʱ@ą –(î±dtttË–-‹/^şti{{űÄÄDÔ-Š’?üpýúő‹-Z˛dÉćÍ›‡††¬ý°dašć‘#G/^lš¦išĐ"„¸|ůň3Ď<óťď|gѢEÍÍÍč39z{{ď˝÷Ţ;ďĽsÉ’%>řŕ|`폳™óçĎßsĎ=ö=”ŤüýÜcIkkëŕŕŕţýű;;;÷íŰ×ÝÝu‹"c||Ľ©©©ľľţÍ7ßÜ»wď_|‘É\˝96,YŚŚŚ<ţřăąî-BÝ»wż÷Ţ{/żürooouuő3Ď÷Üs/˝ôRneÚĎ:– ŽŚŚÔ××[O,XpęÔ©h›!7ß|óűďż_SSc==tčĐ-·Ü"`I!„iš===ź~úé<`í!Äůó燆†8°téŇ%K–<öŘc###r„¸îşë¶nÝúČ#Ź,Z´č[ßúÖď˙ű_˙ú×f¦BŮ(¸źu,«¬¬¬®®¶žÖÖÖ^Ľx1Ú&q`ppĐ0Ś={ö<ńÄ–„B ´··o۶­˘âj—¶´ÔÔÔX'žńÔ222bšć™3göîÝŰÓÓsáÂ…§žzJ Ď1>>ľm۶5kÖ:tčµ×^[°`A[[›€™©P6 îgKjkkŻ\ąňĺ—_ZOGGG§Oźm“˘ebbbĎž=«WŻ˙ĂţpŰm· XBńřăŹ?ôĐCsćĚÉí±´\ştÉ4MW-VűŘcŹÝpĂ łgĎްaCooŻ@źb`````ŕżřĹWżúŐąsçnÚ´éŔf¦BŮ(¸źu,™5kV]]ÝÉ“'­§'Nś?~´MŠ–çźľ»»{Ďž=[·n˝é¦›¬3nXB9rdóćÍ·ß~{CCĂĄK—nżývhBĚž={Ú´iW®\±žŽŹŹ[ç’3mÚ4Ç+îÂŚĘFÁý¬cIEEĹŞU«ÚÚÚ†††Nź>ťÍf˘nTd\şt©««k÷îÝ·Ţzk®`H$`IŃßßßßßěرW_}µ¦¦ćرc‰DÂŇňŮgźýío‹§–ĘĘĘ•+Wnßľ}hhčěŮłííí+W®DźBÜx㍋-Ú±cÇđđđŮłgwíÚµbĹ ±CŮ ÷3_Űń‹/ľxňÉ'_ýőŞŞŞű©©)wA}ú‡?üaîi"‘¨®®>|ř°€Ąk¦ůŃG­]»¶ŻŻO166-ĂĂĂ[·nííí­ŞŞZµjŐŁŹ>jť€ŁĎ|úé§Ű¶m{ë­·Ş««ôŁÁŚâÔ©Sk×®µľU,(ůű/żürt- ˙ý™+ýJ>IEND®B`‚qwt5-5.2.3/doc/html/hierarchy.html0000644000175000017500000011150512052741151016335 0ustar gudjongudjon Qwt User's Guide: Class Hierarchy
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
oCQwtEventPattern::KeyPatternA pattern for key events
oCQwtEventPattern::MousePatternA pattern for mouse events
oCQwtAbstractScaleAn abstract base class for classes containing a scale
|oCQwtKnobThe Knob Widget
|oCQwtSliderThe Slider Widget
|\CQwtThermoThe Thermometer Widget
oCQwtAbstractScaleDrawA abstract base class for drawing scales
|oCQwtRoundScaleDrawA class for drawing round scales
||\CQwtDialScaleDrawA special scale draw made for QwtDial
|\CQwtScaleDrawA class for drawing scales
oCQwtArrowButtonArrow Button
oCQwtClipperSome clipping algos
oCQwtColorMapQwtColorMap is used to map values into colors
|oCQwtAlphaColorMapQwtAlphaColorMap variies the alpha value of a color
|\CQwtLinearColorMapQwtLinearColorMap builds a color map from color stops
oCQwtCompassRoseAbstract base class for a compass rose
|\CQwtSimpleCompassRoseA simple rose for QwtCompass
oCQwtCurveFitterAbstract base class for a curve fitter
|\CQwtSplineCurveFitterA curve fitter using cubic splines
oCQwtDataQwtData defines an interface to any type of curve data
|oCQwtArrayDataData class containing two QwtArray<double> objects
|oCQwtCPointerDataData class containing two pointers to memory blocks of doubles
|\CQwtPolygonFDataData class containing a single QwtArray<QwtDoublePoint> object
oCQwtDialNeedleBase class for needles that can be used in a QwtDial
|oCQwtCompassMagnetNeedleA magnet needle for compass widgets
|oCQwtCompassWindArrowAn indicator for the wind direction
|\CQwtDialSimpleNeedleA needle for dial widgets
oCQwtDoubleIntervalA class representing an interval
oCQwtDoubleRangeA class which controls a value within an interval
|oCQwtAbstractSliderAn abstract base class for slider widgets
||oCQwtDialQwtDial class provides a rounded range control
|||oCQwtAnalogClockAn analog clock
|||\CQwtCompassA Compass Widget
||oCQwtKnobThe Knob Widget
||oCQwtSliderThe Slider Widget
||\CQwtWheelThe Wheel Widget
|\CQwtCounterThe Counter Widget
oCQwtDynGridLayoutLays out widgets in a grid, adjusting the number of columns and rows to the current size
oCQwtEventPatternA collection of event patterns
|\CQwtPickerQwtPicker provides selections on a widget
| \CQwtPlotPickerQwtPlotPicker provides selections on a plot canvas
|  \CQwtPlotZoomerQwtPlotZoomer provides stacked zooming for a plot widget
oCQwtIntervalDataSeries of samples of a value and an interval
oCQwtLegendThe legend widget
oCQwtLegendItemManagerAbstract API to bind plot items to the legend
|\CQwtPlotItemBase class for items on the plot canvas
| oCQwtPlotCurveA plot item, that represents a series of points
| oCQwtPlotGridA class which draws a coordinate grid
| oCQwtPlotMarkerA class for drawing markers
| oCQwtPlotRasterItemA class, which displays raster data
| |\CQwtPlotSpectrogramA plot item, which displays a spectrogram
| oCQwtPlotScaleItemA class which draws a scale inside the plot canvas
| \CQwtPlotSvgItemA plot item, which displays data in Scalable Vector Graphics (SVG) format
oCQwtMagnifierQwtMagnifier provides zooming, by magnifying in steps
|\CQwtPlotMagnifierQwtPlotMagnifier provides zooming, by magnifying in steps
oCQwtMetricsMapA Map to translate between layout, screen and paint device metrics
oCQwtPainterA collection of QPainter workarounds
oCQwtPannerQwtPanner provides panning of a widget
|\CQwtPlotPannerQwtPlotPanner provides panning of a plot canvas
oCQwtPickerMachineA state machine for QwtPicker selections
|oCQwtPickerClickPointMachineA state machine for point selections
|oCQwtPickerClickRectMachineA state machine for rectangle selections
|oCQwtPickerDragPointMachineA state machine for point selections
|oCQwtPickerDragRectMachineA state machine for rectangle selections
|\CQwtPickerPolygonMachineA state machine for polygon selections
oCQwtPlotCanvasCanvas of a QwtPlot
oCQwtPlotDictA dictionary for plot items
|\CQwtPlotA 2-D plotting widget
oCQwtPlotLayoutLayout engine for QwtPlot
oCQwtPlotPrintFilterA base class for plot print filters
oCQwtPlotRescalerQwtPlotRescaler takes care of fixed aspect ratios for plot scales
oCQwtRasterDataQwtRasterData defines an interface to any type of raster data
oCQwtScaleArithmeticArithmetic including a tolerance
oCQwtScaleDivA class representing a scale division
oCQwtScaleEngineBase class for scale engines
|oCQwtLinearScaleEngineA scale engine for linear scales
|\CQwtLog10ScaleEngineA scale engine for logarithmic (base 10) scales
oCQwtScaleMapA scale map
oCQwtScaleTransformationOperations for linear or logarithmic (base 10) transformations
oCQwtScaleWidgetA Widget which contains a scale
oCQwtSplineA class for spline interpolation
oCQwtSymbolA class for drawing symbols
oCQwtTextA class representing a text
oCQwtTextEngineAbstract base class for rendering text strings
|oCQwtMathMLTextEngineText Engine for the MathML renderer of the Qt solutions package
|oCQwtPlainTextEngineA text engine for plain texts
|\CQwtRichTextEngineA text engine for Qt rich texts
\CQwtTextLabelA Widget which displays a QwtText
 \CQwtLegendItemA legend label
qwt5-5.2.3/doc/html/class_qwt_text_engine.html0000644000175000017500000004254012052741165020757 0ustar gudjongudjon Qwt User's Guide: QwtTextEngine Class Reference
QwtTextEngine Class Reference

#include <qwt_text_engine.h>

Inheritance diagram for QwtTextEngine:

List of all members.

Public Member Functions

virtual ~QwtTextEngine ()
virtual void draw (QPainter *painter, const QRect &rect, int flags, const QString &text) const =0
virtual int heightForWidth (const QFont &font, int flags, const QString &text, int width) const =0
virtual bool mightRender (const QString &text) const =0
virtual void textMargins (const QFont &font, const QString &text, int &left, int &right, int &top, int &bottom) const =0
virtual QSize textSize (const QFont &font, int flags, const QString &text) const =0

Protected Member Functions

 QwtTextEngine ()

Detailed Description

Abstract base class for rendering text strings.

A text engine is responsible for rendering texts for a specific text format. They are used by QwtText to render a text.

QwtPlainTextEngine and QwtRichTextEngine are part of the Qwt library.

QwtMathMLTextEngine can be found in Qwt MathML extension, that needs the MathML renderer of the Qt solutions package. Unfortunately it is only available with a commercial Qt license.

See also:
QwtText::setTextEngine()

Member Function Documentation

virtual void QwtTextEngine::draw ( QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text 
) const
pure virtual

Draw the text in a clipping rectangle

Parameters:
painterPainter
rectClipping rectangle
flagsBitwise OR of the flags like in for QPainter::drawText
textText to be rendered

Implemented in QwtRichTextEngine, QwtPlainTextEngine, and QwtMathMLTextEngine.

virtual int QwtTextEngine::heightForWidth ( const QFont &  font,
int  flags,
const QString &  text,
int  width 
) const
pure virtual

Find the height for a given width

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
widthWidth
Returns:
Calculated height

Implemented in QwtRichTextEngine, QwtPlainTextEngine, and QwtMathMLTextEngine.

virtual bool QwtTextEngine::mightRender ( const QString &  text) const
pure virtual

Test if a string can be rendered by this text engine

Parameters:
textText to be tested
Returns:
true, if it can be rendered

Implemented in QwtRichTextEngine, QwtPlainTextEngine, and QwtMathMLTextEngine.

virtual void QwtTextEngine::textMargins ( const QFont &  font,
const QString &  text,
int &  left,
int &  right,
int &  top,
int &  bottom 
) const
pure virtual

Return margins around the texts

The textSize might include margins around the text, like QFontMetrics::descent. In situations where texts need to be aligend in detail, knowing these margins might improve the layout calculations.

Parameters:
fontFont of the text
textText to be rendered
leftReturn value for the left margin
rightReturn value for the right margin
topReturn value for the top margin
bottomReturn value for the bottom margin

Implemented in QwtRichTextEngine, QwtPlainTextEngine, and QwtMathMLTextEngine.

virtual QSize QwtTextEngine::textSize ( const QFont &  font,
int  flags,
const QString &  text 
) const
pure virtual

Returns the size, that is needed to render text

Parameters:
fontFont of the text
flagsBitwise OR of the flags like in for QPainter::drawText
textText to be rendered
Returns:
Caluclated size

Implemented in QwtRichTextEngine, QwtPlainTextEngine, and QwtMathMLTextEngine.

qwt5-5.2.3/doc/html/inherit_graph_8.map0000644000175000017500000000025112052741162017237 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_interval_data-members.html0000644000175000017500000001110612052741140022676 0ustar gudjongudjon Qwt User's Guide: Member List
QwtIntervalData Member List

This is the complete list of members for QwtIntervalData, including all inherited members.

boundingRect() const QwtIntervalData
interval(size_t i) const QwtIntervalDatainline
QwtIntervalData()QwtIntervalData
QwtIntervalData(const QwtArray< QwtDoubleInterval > &, const QwtArray< double > &)QwtIntervalData
setData(const QwtArray< QwtDoubleInterval > &, const QwtArray< double > &)QwtIntervalData
size() const QwtIntervalDatainline
value(size_t i) const QwtIntervalDatainline
~QwtIntervalData()QwtIntervalData
qwt5-5.2.3/doc/html/dials1.png0000644000175000017500000021601512052741137015362 0ustar gudjongudjon‰PNG  IHDR]„9 IDATxśě˝ytäÖy'ú} ÔĘ}on˝ď«äŽd™ĚÄăíŮŽ—Č9vÇš8ăČ™gźIśx‰3“śäÄ3™cťÄvŢHQěX–Ç»$K¶dKîX¤lITËR/ęŤÍf7Éfsgí €î}Ü*,‹ĹÚŮâďôéQŔę‡űÝoLJţlb›ŘÄ&6± AˇŇc¨$!‚ŔK’$Ë2Ď ÇPJ9ÎÜŕŘÇóPŽă Ă0 # GŁáDBŻč=m˘ęŕpȲ,sĎó<Eä(Ąą €ă8Ă †ˇ‡BáX,Ź+<ĎWîn6QE „,,$††‚Ż˝…H,F4ÍJR ŔĄD6­Y·9D›ŤłŰÁĺn»ÍqäÜŐ%WŕNŞ řĆŃ ĂŕyŢĺr ‚ŔóHeű9ŘÄÄ6ŘD@4g«äFęOh=žmXf+BH4žťť#„”ç7QqPJÝnŹ LŕAŠ]`!OŢ3żČÎj$ ĎÍÍkš¶))ß0 #§ß˙ţĚĺËŃPČPŐĄxVÉgî\)Wű¬Ç#˘ÍĆ9ÜŽößůoS“X‚»©^­. Ă^–‚ PJ™:hť}Ҷ‘ckö•“T–i 8nI.®8ŚF"‘ŮŮ9UUĘyű›( ¨ĂádCLęb‹É“ f.đł,ŤÂÚt‹Á0Śůyí±ÇfĎť «ŞN©ůSžq+6Ň…eąńTéÇ îÜ)ľç=î]»n}mňÖ´ŁB©$É6›hc’®ë" eyD鲏ćîĺk¨ŚÇZÉ­ Eä<ŻÇăEDĂ €ojjj]7µ‰Ş‚ač‡Cíş®3›#XĘ šű¦¨P‚YuĐÔ†•`F ŕźžžÖu}SŹÜ „čşńŘcó/ľč ‡•Ő•B“NéĽĘ„,Çd™Ę¨®Ă… Ú… ‹čppü ·±ń–Ő#o)}Ń0 ‡Ă!Ľ¦%Ě8¦–çK+nëâťç9ŽCŽăŽ88D¤ŘrśĘqh‘Łh:#™m 1y@Ęvżš®`îDD…‚cccş®›Gn˘jAADI’xžK$ô4«&ű…M›•`‚Ŕł?ĄŚ@8Ž#„˛“¤ľÎNľŚ`ě|Ve1“µ#ť`ׯ_§-cŐŚpXýŢ÷¦_y% Şd‡V•ÎÜ`¬ăYÄ·BwÄ”D¤ËĎC—_V|ĚřňHžÇ­[…ŹĽ¦ˇż•f°[ÁŽĘÖăÇŰl‚®ćä’Ň—Í\ 6›`·Ű™ËĆb˙,„ŽCžç9Žç8qI›sÇńlęłNdŞŞÎÍÍÍÍÍ®P,6QĐu]í˘hK$tËĎ·¤f$(Ú™P$„kÖ Ä°Ůl ”NLŚçM0`‹FŁŞŞ0Qť¶Z“`55µ„ŠĎ÷Z›Čş®íkW|đęąs>BČ ¨i#u¸$aąłpص«anîłá°öŇK“ćž7>ýżţ×/ ¸ Hů5Wj·¨iÜĄKƳφ%ŃŰkg4,ŕŠĺÇmśxT–}†ˇ›ŇRĘ"b€çůÚÚZI’Šĺ/D|ä‘oŢu×[Z[ŰŠuN@äâńx4ĺ8Îá%IXfv@D§ÓŃÓÓ«(Ęěě¬Ď·hĆĆâÖĆ‚i¸N­·’Öx¶ÍĽI0JˇX–R“`--­E9!¤ňhăńx<“`i+0F°ÖÖ¶ŮŮŮĹĹ…ÍŘśR#‘H<üđřK/ͦšÍČ«Ń `/˘żRúWŐ÷řă—®_/şy@`ÁA"@ś¦ O?­˙üç3}}ŇűŢWătrhŰADş®#!DUŐĄ,Y<n·»˝˝µĄĄŐápQ(€ ď˙ţá}â`óT,÷ů|~ż/Ťčú˛Z9(Ërww÷ž={›››xžŰśĽJŽĂD"a%ů¨M‚µ·w0‚Ń}hĚJéâ"‹/..úýľH$ĽÁöîÝ×ÔÔ–d˛‰bA×őGąvď˝C/Ľp3S• ÔÔHE ˘M3îż˙Ôľ»”"IDT€ô»K$„“'ő?ţă™GYôŤ2Uµ\ÔuťĄňÄbqĂ0h ŔÖěµµu]]]µµu6[ţöŇěřčG˙ËĚĚôłĎ>SŠ“› Eőűý@ ‘ĐŇţ*IŇ–-]»ví©­­Gč­ B˘¨ń¸Âfî7 ÖŮŮY_ß`łI%@†Ś`@ ÁvďŢ[SSWşaĽˇëúłĎNÝ{ď‹Ď=wŇ´5=M)Ťn(™éî‹_|ľ»»ćŁ=X˘ó§@Q€(@z-LĂŚĎ}nö?XÔ4Zý3X•ĘEĂ0  ˘(„®édLł(Š őÝÝ=uuuWÚÔQ´˙éź~îţż@Ŕ_ş«0 ˘®ë@0hšş\-FY–{{{·nÝćp8J=’7tÝH$tF0Ëzk‰`[¶tÖŐŐń|i} ĺ$čş †˛l۶í˛,o/,†aܸů“?yőŰßľBYaÜŤ®ROÂń¸ţ‰Oüäď˙ţmMMÎ’^(Ď$‘YV?ó™›gĎĆĘ2’üQur‘Â&)E‰jšbť­€çů¶¶¶®®îÚÚ2-lńđá#oyKßý÷˙cŮ®Č&/ż? ŞŞőO‡555;wîlkk3ëJob˝0 C×uUŤ%ÉÇkúyžommíčŘR[[W¶t‹C‡—“` ëz(ÎB°ŽŽAŕ«]_… „ůűżżđ—y*± 3°  üô§7}ôZĘĘe-(ĂÔŘ+2ŞĎţäĹ‹ź|íµéň^–(€`łěç/\€?˙óŮ÷ĽÇő®wym¶Ş[âW‘\$D7 ŹÇĚČr ” ‚P[[×ÔÔTÁ±ą\®?ţă?ýß˙űoË|]D$„„Ăáx<îń¸­6=—ËąuëÖ@ŔóćMEQ6g®ě „pPš$ąß$X]]]ĄrŃívW„`@‰D"Y699©iŐ»´ŻhZâ/˙ňěě,[ŞZçzŔŕ©Ě° P>ő©§˙íßŢ_‰‹3éHĺ>&ˇëâăŹ+Ď?űä'ë{zěU5U… Öu=‘ТŃX,…döE2ţS–ĺmŰvÔ××Wv„ř–·ôß~ű›*uuĂ0|ľ@8±š¶8Ž«««ßľ}Gmm X¬Í›X ĂĐĂáH<lšzVŚ`MMMO̿뮾J ’Őp2lÇŽť55ŢMve®ë/ľ8ý‰O<źŠ`q(Š-•Š Ź=vég?»Ząë1€´†BÜâ˘đ·»đřă>ć@«ĚĐV *ęÝhšŤFayk:Q;;{XŢtĄXE@D—Ëi·/ ŹÔu}~~~jęfő«z ë:!†I0Hfč' &Ë·~ßśÜA)ĺ8n5‚MOOmćŃfÄWżzţôiÓDi>@cĆÜľ76ŔľÜ¬ dŰ6úÉO6ÖÖÚ2©Ś¨|˝›DBŹDBĚůŹ©<ĎŐÖ6tvvŮíö[©L{± iš¦%l6›µEźËĺ’$G<K$›3!„Ť†UUM=Š$XoďVł&ß&ŘSRU5‘Đ3LŽÇc†ad=Ç Á ňß˙űó7oWTqs4WSý¶Ş‚`¤Ęĺ0 ĎÇýęWŢ^±ˇA¨ě Ćq•“‹ş®†Ť†Í(űßfłmÝş­ľľ~S"faŠ˘p˛ŠäŠł÷xĽş®)JÜěŽűF†®'"‘ĐrÁjjj6 ¶W;#ÁĽ^o"ˇĄůhßĐuýÜ9ßßüÍË–…‚Yă» 2‚,ß‘ł. áĹ#†ˇłîÇ•âX%墪*ápČ4ű±Ň  ŤŰ¶mŰć[—©u˝f†(ŠćăÁăńr‰D*:Ŕ C×uF0łş,+mÚŘŘŘÓÓ+Š›vś i ]×WŚçůH$ňďúňO˙tţ±Ç†-;L5±ĄŞâŕă?|ŕ@Ë™33•ČJč$-TőĘ•ÄĹ‹á#G˘X™—”ă*wŁëz, ‡Ă„,Ĺ×`OOo[[{ŞYAµ€RŞë<„*tÝ!˘¦i~żßZßK„––¶žž›ÍV…c.4Meł<ěíÝşeKg©óôó€ŞÚ@¬R‹®ŞŞ ÖÝÝý†µBëşţ7óĘ+ŻL­řK#@Cq ą­‰ăÇ;nż˝=ű1üŕž?üĂ#…ź§4Đ"Ë Čń##Â_üĹÍÉIµR3XYç+ YÉSHĺS;ťÎŢŢm¬?N"“ÜukZ †\.—$%c%8ëęęyžźxŁEآűýA]×™+‘…žş\®ŢŢmUŔ ąÚ}•H0›ęj»qăĆ*GBůÔ§Ĺś ŘÄ-4WDMěďďöxě§NÝdŹď`­ˇ§NÝd­2wšÇdó+UekMłĹ’ĐVf5Rr.íc·(ňšf"ęÔMöEgŰćNvLšt4eg™ďT`)>\Qě_úŇü'?Ůpđ ŁĚ3X™ä"!Ä0ôĹĹEö‘R@¤\ggWccSĺ<¬9!—Đ!T±ŕ@ÄDB ^Ż×tžy<ŢÎN&Ł•^Hh~ż–šCQěěě*b §!ro( MS#Ť`]]Ý“““‘H¸Şßá‚A™›‹ţĹ_Ľ@±\6xKtŃţţî`P9}:Ý/&E0úű·">˙üĄ„JüCC)%ˇĐ"!ôÜą)JŔ?4t™ą†)ĺúű»EŃvęÔXdgš°´ŽÇ狟;7[˘űТ˛™XźHH˙řŹ‹ű~×]ĄzČQ&ąČ„˘a\Şť vww75µ”g…@Uíŕ¨Rot]ü^oŤi3t»Ý===7nÜü·j°‰a”~żźĚěTÝÝÝ]_ßXѡĺ„pص!ä"«/±’`ÝÝÝ7nÜ…‚•^I1;ű˙ă—+: 7•4ażŁĂsď˝G?ň‘G™ ”eÁďWÎť›íďďE|ţůQJ„RŔ?4t‰R:8¸,s``G–ďĽdn#Ş) zRD(ĺűű{DŃvęÔÍľľ.ż_q8lLLţÉź˙ַΕR.Bްę’h$ÄţŤo„‚Aň®wyË6•\.ęşn źoŃ0ż‡‰˘m÷î=¬]jő#—ÁQ™Ş†ë"B™Öhp‘eą««“çyżßwKĆęşćó-˛”Nm»vív:]•Ú ”Ć㲮 `*IŹW˙Żc$#Á&'oú|‹Ő?ţőB×ő+W‚÷Ý7”Ša˙ŰÚJŐ}ŚáÉ'‡˙ď˙}—ÇcgjÜŕ൓'?úÖ·>84t‘Rc…Yí÷ąçR-šÍZ6=ĹŠýýݵµŇĚL˛G__—×+ɲđ“ź|ř™gÎ/..ŽŤÍ ĎĎWEŤŽ±±Ĺ™ż ŔŘŘ|w·çˇ‡>řä“—·m«ózĄŮŮdX_·Ű-ÎÍ1ĘO@‹A•żt)ŢŘ[¶Ą{SJ•×O) l!OS°ŰĄŁGŹšeĄ6 âń” ÁQ4šBŔf®h4bí=ërąŰÚ:ŽŤáŮÍ 2??gÄLŢgE{Őć)fF")'¨ŰD(š V¬˝}‹Ă!očš”R]×?÷ąBŚ”C‘Řz‹Xň´ŁĂóŮĎŢ }}]4ŔÉ“őű}wßý/¸’/S ¸288  ž8ń$é=ô۲Ě÷őu8Đäv‹ßüćo×Ö}nQ­ÍŤ)µăţ3gJ»V(‰\4 crň¦˘(¬źĄ”çąC‡ŰlISdP”¤\ÄŤ)K(…p8lÍî÷x<ť˘(nč™kjjZUÍ´ą$Á8nĂŘç˘QŮ0Ró,ĎĂFă[{­$X{ű–Ş-Ó‘ ĂřÔ§žµČ{ Ŕt×|úä“Ăďz×vŹÇË$"ş^Ä ©jé(ÜwßŰžyfôůçÇKpA`©Z=!ŇřFG•ŇÍ`%±ŁţX,J) ǡÍf;tč¨(ŠN(Ŕü|C(äIšą¦KjL/ Ě Öço·ŰEQŚD")ŃF‚®ë‚1ó©xčĐQY–7Á|ľşĹĹ:čîŔH"/Ó”RŞiÚ ‚Ů#‘¨ačĹ2lĹż84?o¦ť`Ę|ZLIüxG}˝ĚÂj~úÓł§N]ĺ8ňÂ Ł““µż\÷MNş»kľ˙ý׼^éţŕ¶ř‡GŽ´´µyJŁ[ĂpNť <čđz‹ż.ľU×ő@Ŕç÷ű("k ű÷t:ť±ni 8ő[ě¨2ëh›ßy!TL`QşnşâĐëő¶¶¶ň<·á´ĆH$ä÷ű٨Y ˙ţýÍe á°sŮg—s•«fśWÁZZZx~­Tt]ż˙ţ×®]3WŔ€–"ú´żżűďŘú•Ż<éŇU€xőë«appdh蚦Ĺîąçáp8ÔßßýŽwl+Áu(@ÜZFUQě<0čĄÁЬ/*J|f†QŠĹÚŕÎť»kkk+µŹrMvڞ^ťčH$Äî>Ž™9ĐóěËjś"6ŘIe\čf˙ I9ŕ8N’$JéŞT˘ëş…`ĚÇíÜą»ˇˇaĂiŠ ăăťš&‚©/"nD›Ó3lu=;wnî±Ç^_ŢL±˝¸MŁŽď8qbż˘h/ż|epđâüü­>6¶8;H:ňoýVŻ păăE/ő ŘRżF"86ąăWŞVLqPL}‘yŞgffR ”BwíÚŐÖÖVÁ8č´AZ *ż¤/âţ™YhsÖWŘhI †(MC„úúzŻ·¶˛ŁĘ„™™`j;%”®]»š››+=®|@)%#‘eÁ\ÔéÄ §Á3°Ş—`”ŇpXýęW_fźR˙ÚŠ6~_#IBM ćĚČŕŕĺTPĎ-:0péŇĄë55<5㉊x~€ĺˇq—/“'ź,~*gŃä˘a7nŚł>Ěľĺőzš›+\ćÍ)‡ŁŞňŠŽŁ”jš`üŇWó IĄ”FٞÜă…H…†¬ŽW8Ľ¤łĘ˛ŁĄĄ…­ë+8°qóć łáĄčőzÚÚÚ7Tôé2DŁB¸ežăŔµÁžӠëzÁš››7„•Ű0Ś?űłźQŞ[ö9 Šýý݇·ŔňSźoö _x´ cM‹…+_řÂŁQK´j3ô÷wďßßTđé €µN˝řăG/^Św+š\ üš–H%e€Çă=zôöŠ[·śÎčřË6ŘŢ›ßşĚ FeČ7$•^˝ÚS»K¬’ UU­ ÜnWsskĹ©ěĐu}aaŢB0ęńx>Véq„P(“uν*Ą®Ö4Ť`--mWížě8­i ‹¦(ôxNQäyäýn·@OžĽÇďÝ}÷7ŽŤş’['Ś'ľ)IŔ¤cQł8t€ĄřgBě>8čYľ°^a6Ôu= -,˝2(":tŘ,üVAph"ˇňĐśĎ:e™ň´ŁÎĚ4ą»xÎHTŹ%‰Š"W[[ÓÜÜRHTQ©‹Ĺ– :\Ů!łŇŤčޡ7iXI°¦¦ć޵ęşţŇKŻ˝f&°qöŢ:ęŮgG_|ńĆ}÷˝mppâî»˙ŐáĐŻlĐřšő‚ĹăDOśř÷—_ž*v‡jÉÜŔPČţőŻĎ-ďC^Š˘%ĐééiJŤÔđŔĂŐSéÍë M˝JqküzźZr‘RšHđ×®uwÜŞ–öŤl± -ó54Ô{˝5WfBŃWĚnßXůűgP é×(Ą…`@ýÚ×^I©‰€E)jòÝ?űŮgßţö­}}őç‡†Ć ěĂŕŕŐˇˇËo{[ËoüFÇg?űl__gń<ŽŠŐŃxń"ýńŹýE:s1äâüü‚ač”&›Ywww777UĎśĺń„Ç_sRBO×zż›fGĄ˘ë”÷ׯw9j©Řę‚PuEťĄ9%Injj®Â˛˘„ŮŮů4‚54”Ľ@b©a|4ši™ĺˇjŢťĽ„4‚57·Říö*´IüŐ_ýŠRĂbAm,V÷¨“'˙KOŹçcűÖâbµ,‹+MSďąç‘#Gšzč}˛\,•)ÍŃh{â‰ĐčhqZd$u]÷ů}ľsŹÍfŰşukÁŁ*&Üî01Ŕ)­ÍŕYßb5 IDATd şI˘Co([ ¬ lů’F°††aýžţáţaÄĆSWx«áăÇ;>˙ů;ăqepđ<©ÚhŁJ€ˇˇËóóÁĎţÎľľu;¶VÁ˛´Ť'ź ,.ÚÎ%OąhF<›źź3]ë˛,ďÚµ·ŔŃ0ág‚|7mk)Ęűăv‡`ňŘÝ öśę*Š”A-ÉM.jš86Ö Í‡x Ĺp.RJoŢl1Ú»= ©®)"&:+ŔM) ő ő Ť…皦ĄlßľŐă·.E_¤”†133ŁŞJ~‹MKX+Ľ×7Ô×74VĽ0Żaţ‹'-űD€ÎBÎiIŰĎśąZÎ^‰#—.Ť×Ô`Ië, FĘšJPU]ßúVˇ™ţyĘEJY *%„Bč±co*˘uËĺŠĹ.űŃzÜ»‹ň…®.˝Ţ0L^p’p·öäň­ ÎEtć$GG{ očR„'@aÎE×záÂNÇžúZ·ٱBζ‘H”RĘqr"656ÉrĺűÍ̤¬˛ă)ŘŻ‹É«>`YÎ#vşDĐu}ffJUU—Ë•·‹„ M‚9*ݵŤRúĄ/˝Ŕ4”J—§qŻżżű7ł›mź‰h‡=xöló—é~żüłźĺźÎ¸ną¨ëşßď7 9Žç8®§§·D^AĐwďľđ¸mţ‚˝]°Ř„üÖOµ¸Ť +íěČţ•Ěú"¬Q%őĆŤŽx\€mwFY"Z~ÎEJi"!ś;·çúő®˝ Ťűmôâ0čŬud‚U& /'¶wtTŞ U8N#ŘmŢą˘Ń5tßĘV˝a]ÉćççL›»`ý•RšF°–ÖÖŠ,ut]ä‘×S~k€h)$‹żŻŻ«»»ćŹţč'źřÄweůń— äcűög>óěáĂ-Ĺp4.ŤĎ<“Č» ŐşçJéĚĚR.ŽÍ&ěÚµ»Dr˝ŢHOĎÄĹÇ„ůó:ÔŐ±ĂP“OĘ­Ç“|'Żż şÁÎvłŐËÎč_X5ô†ĺuܸ‘LÍi8ŠîÉËąx^yĺ°ĎWłçză~\Çp¤¤:S4ł¨{Ľnʧ¦Ěr‘RJI#ضmŰË9†2`M}±RURYÜŻßďóű—"Á&Ë…ş9ŽS5Ť`iµA)¸lŮÁ´xΓ'ď9pŔóóź_xńĹͬŚu``ŕĘŕॾľfÓŃXTëE±˙ô§Á2ÉĹ`0@)‹÷2”©ě윬­ő_x”ź?ŻhĂű±{ËzďŐĺŠđz™ˇś8ń=IŠ®2ţǨˇP>6¶uËĹĹĹdůfŽăl6{ccşßá®]#˘¨'µFÚµíŁ˘ă…ßbů Vf¬é\d(ł‹ŃĚÇHŰďp8‹ëŮ …BÇ%ωŘŃŮQ6uQ×őü5ĄVĹ®ÜVěM»űî‡a3Ö¦PrâÄż"B1JÄĹ—–öO?­Çbd˝3Řú …yžçyÝnw{ű–˛­ĺkkťť“xáQ!)Űż·vÓÜdFĘņ·†S)€vş3$ó®t‚°ŇĆ56Ö©Ş"{ř˝wĆÍ`×nÁŃŃîóç÷†@÷~PoÜ'LLB źőNŢEc`>OD§ÓéYgQŮBF°––B?UőŲąÓň1VŚ˘#<Ď«Šş4E•ť`§NM¦bm@¨+älýýÝďxG÷ŕŕĺ7`ŁŚâbpđęĐĐŐţţöb”S-Ö5Ôu9•qrQQĂ`or×Ţ^Pm<ĐÝ}Ăë !‚©5RÚцGöÓ:ÎłT †k/H`ßŢ +ră˛é‹®2F"Λ7“ĺĺ8žÖî¶üu­$ Ji,&ť>˝r˛ –4E†čŘŤě_/˘á(+áĹ!p¶´”ÁT†aD"‘ʬďď:äâÂÂRŐy»ÝŢŐUÖi‹9ţwíćy}™Ö.;¸š§Đ„ $d9é• Î‰Út*wl…ĺYĆŮôEX’‹¬>řČČVs…Ňu$ŠrJ›ŚÇ©¶FĄľąą†W_=»(…eš˘®“ Ă*2Y6đ<ŤD8ä’×­­«u:K>GSJÓÖŰŰs‹yŮ(‘r6!—Ő^ăIËÇHC=‹V„‚AF0ĆíÚşÚ]( ßýî9Ë'Ŕş›{ô÷wź8±ßă±K_S#ť9s}pđꦵH #—.ݨ©‘¨Çc˙˝ß;pÇůşŁL"˛ń¸óůç×§2ć$u]O$´D"a:::ÖHţ+$IŰ˝{¬Z#ĎăžťtÇÖě6UÓĹ“ŻXţŕqÓÖeZŃú˘Ą«Ćôts(ä6§Ż¶Ł–dÍĐĐuŢzéŇNĂHÎţ¦¦pyµB @„H4|Ŕq ŤőPâę$”’j X©‘«˛ČP2•1c>Fxž/]Ťˇ4‚ŐÖŐ”´ľ’®ë7nu]·L—yZPďľ{ďÄħ?üáý?úŃëĂEä&``ŕň3Ď\úô§ďřô;ޱ-Í{4S€{îą!ëč?•«ľ°xąxžďéé­Hô<"Ö×ű;:X~Űr­[›ńŘ!ęXµ¶'+ Îp㬋D—˘ °§ E›ůq-}1™ÎĄë¶ë×M•źÖ¶ĹĹ楹l5ç"Ą4‘_{íĐĚŚ)Ś-š"ą1‹ţ ć'„Avu Ŕ!645–şeqÁş»sŞa»á­ŤĆ ”2ô&C>F\®U:D D CIz#–‡`ĆJ”ζÉq2‚±=’ÝîńäSŻ#GPJ§§-;Ľy‹|VÝć[ßzéĄÍzoĄţŢ÷NŁŽaFĄH/ľ.˛ľ¨( "ĺyŽăxDěíÝšď@‹ŽŁ{ö óĽ+µFŕ8Üą vď +$·Ă·ŮtS }ÁĆ’ő[š¨×“±qP˛Dżß=;»Ô’Éf'îí–ľ®c,˝\x"Á]Ľ¸ăĘ•m„c[¦)‚aĐ ĂPŢLçŚ.)pőŤů)d‡aŃhxžŻ‚• ‰¬S.Űf°Z>FdŮałŮJj±H#XcsSé˘ožyfśŞnóĂQ‘jDoĐ'ţ­ŕ 8ş5*5‘pś;—k;÷5ä"!Ä0 UŤ§–Zt˖ΊĎÚ ŤŤó--3©O+´FěxänicqlźŐĹăCË—$Níh_S.ŔbĽ-[ö7Zfz%ÁĄ6IôćͶӧ(ŠÝ˛ ^®)Ŕô ťť‡ŞA,¦żµ oI,]”RU]R¬·lą5Ó3 Y·e‹—Ű—%# E)ş&‘ŚqL—ŰUôčBH4ŞĹb ¦Ěžő…śđäÉŹúýÁ̈́ŒbpđŞÝN‹ˇ2Ć-Fᗿ̵$çÚr1ʱ|2Žăąööj DÄmŰĆޏ)¦3hŤ°µ÷.9Ö,FśqŔ˛6żŘŐˇ$ÖžbÔúvŃ–í1®fŮ·0ĺ0cm1®^íˇtŮz"MS„X®ŽUÉš!ŕK6jADÚŇŇRŠj–ŞŞT'ÁŠŽpxýq4Ĺ]3# ePŇÖÜÜ\ô¨BČwż{…]$5Ýĺ)űúşüţřÝw˙«ĂaŰô,–´H*ă2SęĹ‹¶;l¬ÍÂXlIl¸\nA¨dÄŤČódĎžKćŰžIk uµÜ›Ž€×M)őx"ËžËě™ĺ)†<ŻâÚ5ĺúeˇëřň“PJCJi0čţőŻŹřýiőęVhŠ„ó—€Ş’‹†Ah˛¸+"rnŻËĺ*ţŚ™F°ŞzĹE8\n}1—|Ś4· jö  #"W:‚˝üňÍÔ&Čy7ť€“'ďńű›ĘbP$•‘3*•R×ĐPNČÖ¦˘(©}hkË'¸ą¤p:ăŰ·_·îÉ 5€Í÷a÷Ž3ŽeÚôµ!,÷¸ÄŁk‡Ś;,^BŮ­Ë]˦ŽPÝßrćĚ>MłĄ-PŇ5E¸z}eNĹŃpÔ´tńďp8‹hé"„bXFŰĘŢÁŁ< ”‚‘ČşŤ“Ô适˘QÖÎÇHĂáäyľlż#Űćľč"Y׉¦± #ö óŹ—żűîŰô,–'N|۲¬É1KT*út,—l ą¨ëkË3ZZZ bń­­łŤŤ –9łÖĐ݉‡÷×µ,“‹ • Ź,ůc)ˇJ`íëĘőK†ë­wĆ€_ö$µ™č™3űÇĆ:Ól§4Eś[€éŮę”Á€?µŘBJˇˇ©ç‹f- „hšj!_…+˘QÇŞZ˛€ăŔ•Ź«/÷|Ś4”ÍĘF°ĆćĆâvĂţŃŹĆRT€Ë»{+ü m*‹eĂŕŕUµŕ˛pVS*wĺ —Kç©5TTEYŠç–eG!&’bÇŽ«ˇ[U—ôĽ Źň{!]x==r…żGýŁ`J¶k/‡ö$דJHŃĽśR (~Šuű–ât(ĄţQ¸řh“‘Čđ¬2hŠŞJ†ŻVŁHLZş€yŃĺrŘí˛Ş-Ł9Ť`<ź5mt##×rá+ávCh}-MÓÖűS¦L’ěąČÔě ”ľţşµętž5n$I¨©‘Öh·‰ŇA’hMMž?_ Ä"ě\—/Çî¸#›ń ŰR1‘0RÖ *Ë+;°ĄeľˇÁwíZ×éÇ›xöľ)Ô|śÔf†zl¨$Â…!†`VÄ ˘Í¦ďŮsůĚ™ýiɢ5@űíŕíäĆN:ęĹź«'ş¨Á;Ď|ĂÓ«’YSzţ2ęzFI–HÁ ‡ŮHĂaĄË‚;öF:n'R‡ ĐÓłp}tŁD}L¨Š"¤Ěyž“$GQäb Va¬Ż\řJ¬%čüüB.ˇ§˝˝˝GŽ,V©DB÷ů| >ź/`ZnóX߬$Xár’ĄćĚ×9OkĄô;ß9{îÜĺÂÇł‰ü00p™RŮď/¤ďžŔŢA°]şĚ_.2÷;WSSÉ}?‚`ěŘq­ĄenddëČ ž‘ ˇ+Ţ{§ćčqŔpx=`V#‹Ĺ™Ś¤ÁĆâ© tđx‚ÝÝccéĺIJhŤŕjݵĹXlQÎEĚPJ‡ÉŘ ÍXýÇZU(ŽMĐ@S~5ŚFĺPČĂôÂXlĄÁŤÚĆÖ;˘ DŽ…ŃG˘ôĘ(C8ĺ‚ ?ät9!Ycív;-,NŠRJ)3Á*Ľn’X˝á{’ssłk–omm9zôH}}möĂr˘( ľĹE_ * Ś`ě<čp8r/D°b±´Ę&këX 'Oţţ[ßúŐsç¦Ö>tĹíëŰöĐCďűČG+ŕ$Á”wđÂ…xvŢf‰»a”˘”Ďóe«îv‡>;5Ő:6Öą0./ŚËv‡ľőŽ`Ă‘s/2´4!č:†Â4†`BáÎÎ~M(äYnŰ\CkäEŕőŰéěëkŹ32 Ł?çW7뮪)B0DÇnÂn& A·µYUÚyş”ÔâŔ  tlnN' ÜĄĎóš–°r¨ľˇvjjĘ"ŐÖ B‘ědBY¸ňÔX©Š /®‚\ň1jkkn»íhkkˇE9ÂáČâ˘oaÁ‰,%ăĹúŹ+i›™™ŃőD!'ôŃ Ë'.o;ęŕŕřfˇđŠăĉo˝ürÎ.® P­ÚN ŕ\XĐ›šVýMW•‹ş®ĄBÔh9›°Ŕ‘öö©ĆĆ…ŃŃžůů5&\<é…“tÉ„¸2vN ®ëj%jD˘{Ű#Ż<ćJ¨éG^x”߇‰†˝«ćÉu'łŻŻ}żÓŻfű몚b‚\˙IĚ?{0u’íťíZ×1…“R ‚ą˝ކX*oâjHJaDp8˘h[SAÉŽJ¬üH$řL6€ő@–AŕA_™K>†Ă!;v´«kK޵)Ą@i‡Şš´Ť”ÂĽ’`ş^KďâĹE‹5ĎŰOÝ\ÚLçŻ Ż?ľőóźżł€Đ+8Çô´šŹ\´Ľlčr•°ehF ˘ÝžŘ˝{¸µuvd¤7—)ĹÉ ®É ÔQ“ŘvWĽnŹ Ň*w…n—ÍĺÜý;đú· -"Ď˙ж—®Ş5ĘMśM¦‰8¬fMĄ”Rć.®6öŐ5E 羇ţŃćěvZOŁš >˛[{<#ר/`Ve+3šf—DveQ´Ůl…ĘĹʬś(TYdp»Ŕ´îČžŹ!ŠâˇCvěŘ–ßšC× źĎż¸č[\ô%öxM0‚PDd+đ„á°•ź…ÝŘŠÜĺcë…$ń55†‰i¦‚A©}f&xđઇ®*5-aęjj*+µµÁŁGĎLLtLN¶ÂQб€xîÇ6|Šv ·E±Ů•Ń–‰uŰ`Ëťp#S&h_#'`÷oŇ‘§ł lî"čJ沪PxúGW{ڶŚtÜb« ĐÂBčÄMÄb8rň†Ş¨’ś/÷SJÁŘ"pŹ'Sał˛ÂáP¸87W?:ÚŁŞK,÷Ý”}?mvŁ÷x°ů-­ "p°ëýôµŻŁ®dČ/\Mk=|m/ő_Ë<’¸BSžFˇ¨+pńŃ•q*´e{Ľë¸.wą€_,§j0zťÎ/VIN_4ĄŇđ. č l‰éνΒ. EŃ!ątČśŹA)íčh?zôHmm®Q—”ŇP(Ľ°ŕ[XX´„˝TĆ$±HŚŚĄÚĺ‚äâÜ\Ú#Zß‹ą P6Ť¨UEQĺřńŽăÇ;ňr4FRŮý§˛ݦ/.˝‚ŔpU’rÝظ:1l# IDATPWçëśšjµĆ­$T~xĐ;=Ý|ýz—® iŇ1¶ť˙©[†;n[‹ł÷­śŔčlĆjm´F^®»ČőçŇ§Ź…K F¬;×Đ#3pőYH{ŽĹRQB™ź'ę:ą6ŽÓł,·y͇P~đBR 8ÎfËÚŞr‚­ Dp9Rˇröź¬ö÷ Ď>‘OjůŘÁ™Ë‰ÖÖç9.éf¦” ‚Ľ}ű›nÎ^S6W}Áŕ’@­Nˇ‚@‹D¬ą+y†đ?ŢŃ××14´wS8~Ľ»Żo˙ĐĐt©FĘÓŚÜĚŚÚÓ“YÍ<ˇKÂ<˘ÚĘDhk›ml\ížťm‚ů”ÂÄ÷Ä™dćĂî÷8N˙«M_%ą`ĄÖŘ´‹\.}51óµ®úł ECŃgµ}ďdY%nXĄuĐ™9zm sî–W~ b"‘lI 6žÉ¶üF°Şť©(‹ĚvČčq3˝:,‰6w3_J4®CkdšâüH¨Ąĺ%Dťíáy[gçńŰnët8VË#‚©):6¦MO‡ #čv‡Ž8ó ç<ŘĘ ‹F­QyĘĹT’Ć&Ş’d+řçĐĚ3Ř|ľUë&fĘ=§TÓ¬-űň.-Ő›MßµëjKËÜČHo4š9;4o?ý¸ťăőĆŢřěČjÚ ^xTŘÇ%ö$ß"©Ap·RkíS- Ó8ł†¦F(~ŕ„+cj¬ĆčȵµŞ_V¨ĹŮcm6[ţŤę'ĄdÜ.t;“6Rž‡ÂšŇ®Wk{"čż>ÝÔtš™đą¶¶ŁÇŽí¨«Ë`!4 ¸~._¦W®@8 v€F€FĂ劸Ý—+ęvGdy=jʉ4‚™•Ä×}J‰¬ XRI—7´˛ŘÄ)˙IZě·/ü'űĽôň‹căľ+Wć^}ę‘G^ŠŮĄµ QľŻo䟪auŰUőŐ쨜®@„ QĐŮë =zvr˛m|ĽĂ0x¤’äZjA®Eą¤ZA®:ütqLťF-Ś+gäó?ö~0©5"]o6Î˙`éMJ’ ‹P$:ŤÎ’§8˙,×±€äĄR-Hµ y™7Č0čř$NNQBŞsžJC"‘HzÎ(ĚąCÖJT)ÁDMËp7-¸ÓJä¨5BĆź †o\««Kş¦ëęv;v ­-]őQáaző*¨jJ€®ó€7đ"‚îv‡=ž–v{µtа !X ědůč‹©Đ› tsŻsě+5çe4€řdŰ]wm»ë®m”Ň/|áíţç?zä‘— nçµ6D‘w:ĹÚZ‡Óiwąě©mŃĺ˛;ťöš9ă~¶ý‹_\ůĚg»xq†ťJ’řÂBo–eŐ›_ÍŽşÄ‡ŁŐ:Jő˛ÄÉRÇŇŢ·‡ZŢi“j3é3nÝm|ç›aaú.ë3yX–‚˛Ě×čŮÂ!RJR@€…ádݲ=Č$)h!c~€DßR›R»]s»#.WÄă‰xřÁĂůČ7—ĘŚBd›(fëtď|çž·ľuç׾öÂ_˙őS QEŃB’ą뛢(«.zV-WÍ"éaYWŤJ‚RŠTQ–¨$q˛D% d e RĄ1Řk”‹çlĐ´›ö ]>XÖgÎ`dnIŠšľFŃ͵#7_AX¸ q?B&MŃPhdš\ž ŚqŮg(Ję[„آ `)°l¶„,+’¤Č˛b·+‡"IŠÝ®U*Ďz%Ą'rwÉM¨Á(Ç™Ł¸"p´lȢ5B&ž\PçN; v{ýŢ˝wěŰç1˙™™¤8śžK«Ő‚ Ş˘ŞÖ-,ÔAR}Ź›W—+"ĺűuŠH0Ö¦¦SjJ_Üxrţ¤ţĄ7Ű“a´ b·Oz<ç_~1ŞîÜşu+kŽď~÷ľgźýÔż˙ű)§S*ťl+6˙ÉOľĺC:ň×ýÔĄK ^o!.F+™ů<äb˛á ŘlâWľň÷×®Ťţă?>”Ňűîű?Ď=÷O<ń4{ľO>ůŁŻýÁýč©"V¦Lţˇ,dYB&9 ô,‡\ż!´ż üŁÄŤLľÂS¬ZcË~rófNÎŞ)RĘ‚>w™{©±†DĚJAÓlšf —ĺ€s‘e…ÉKIR™Ô”$…ç‹ůşŽŚ\ą÷Ţ?°.±ńk_{hűöÖĂ4MG3̚ąY±Ś`_ýę?\»6úŐŻŢĎö|éKÇĆŠýřÇOäG0J)rś8JÝn\+p´lXMkśxbZ÷˝ęt’;ŢvčPŁÍ„ŔŘ Óáa$ł`Ku ”B,&Çbňěl#"P‡#îń„ÝîŰq:cůŘüGF®üá~,mç׿ţÍRŚKMŔÝ˙»öďo~Ë[ľÉţö/˙ňŢßýÝ˝ _RU>ń‰Ł÷womlü’a,˝©TŤBz8"'ęµ\‰† őä6ǶŤ.á@ă°-p—Ý@ăů'öí{mËAČë§Î^řµ˘(wÜqÇ;ßůNVdęřńž7˝©»JVŢYĐŘčş˙ţß˝paćăjhh2íŻ‡µĽöÚ'¬7A)9ňĎgÎĚ,?ĐÚŹU5ą¤Íf;zôŘSOýXUQ´ĐS§†(ĄçÎť9věvxýős‡ÍO(RJQ´-i~“‚2ÚE(c<rP·ť«ŰÎmą×ô›Żap‚cZcĂnŢ(ř®s{?`4î !q2ńž.ľ Ę B¸hÔaŤ'BJÁn×$)îp¨ĚËäĄÍVP_ž“'y>ŰŞSSZľ¸Ś`GŽ}ę©kššF°ŁGoÁrĽ0G1ŻŔѲ!Mk$„Ś?>á3;wŢväH› ŕŐ«pů2řęUěKĹč7=Ý G\®“‘,Ě5wş!âĎ>˝¬nQ fýÁm'O^űŻ˙ő, ń¸Žď|ç6D|Ë[ş~ţókđć7wţâ×­B,ť4‡ Ć˙ĎŢ{FGr]ç˘{źSť#rÎi€ID‚AHQMJT¤)+'ËWĎŇőŐ˘ąěk?ŮWK÷Zo=YZŇłĄkQÖ•$K”)Ů’LŽ,ŚĚ03ääLFNÝčtŞUuŢŹ.h„Nh€řW٧»şşz×ŮgďýíoŻ‚u}ŰâóD.Á¸ú| IXPŇăšSx¸”KňqLţç$Ł}IŕšRúÚkŻ]ştéé§źÖétĽO:'C4sEQÜîŕĚĚĽĎĹ8Ąhµę?űŮC]•wŁÓýg-¤‡v„;ĹMúEÄĄ "ôöVehh¨·÷Đ­[·ŕá‡9yňî/^ĽđÄO®ý wîF3ŃdŁq)¤´x~˝ * • 8­řo)×˙Ť“îdÓ§`ĎcXŢ#'$×E2uËŻGLÔĹbúXLż ™Ż€”Ęj@i2EŤĆÉ5b™íńWB;Ď1+Z„ÖŔÁtĆýâşĆŚFN]¬fM-¸kĽř3ŚýäzťS×Ó÷ÖŮYňÜs0<Ě$)7™Ň\AQH ` ¬´7-ÍŐlÎVĹW’–řYŘň놿ůÍ(ĄxçťőŁ˝˝Őđ˝ďťä‘îßđ†¦˙őż^Ly˙ÚyÔĽú¶\ág{÷&ěv˝cYN‚b0ĘĘĘÎś9Ó××—ďsP%“Âáx Šb<MÄă’(Ć%I‘eYQ”äđ čtTݧµZ &“N§#µµĆÚZ#c,Ž˙ő_ź.+Ëf€ą¶Eq“Ľí2ŠV«µ»»çâĹ󽽇Nž|ĺŽ;îĽë®»żţőżúýß˙ěÜÜśŰí:räŽĺGĄ,éůÉŔŚ&4Ŕ`Đ·¨—-[±Ő‘†{ŮÂK„%Á€ń yĺŻX<´iM©Â€1$ YRFĂ#2Ł1f4ĆL&Ń`qŻiµ†3Ř‹+Š˘*’dąť×ĄÔfłmÎŔ4ÄQ´Ű ÄŃ‚ˇ¤×±7ćźűeÔ!4ŚŹ›_y‹¶wE no*Ítş%š«ÓąAaR’¤\XŠ_śźŹž>=uß}MŁŹ<Ňń«_Ýú×˝ńőŻ˙ÎýŻ˙^_ooltpɱ\5uˇ˘ |ŐyĺżX‡‹óRĎ* ×ź­Ż7:V§wů|ľ‘‘‘C‡ŤFXOę!{߆ X,š“*ÖÂĚLđüˇŐjîďwf!‘ ÚŞüćň¨)×÷49rěâĹ pęÔ+ď~÷{z{y˝ž‰‰‰7®WUU×ŐŐjß’1ě!‘E!ŃG"†hÔŔí·ÎĚúÁ„T¦2ĽëóYŐ<¶ĚQ€ ™E(DDR{w|°é=+ę‹Čäža9ú99±hS BpB! „D±4do#Pc.éµ–´oőÉd ”€‚Ŕ‚€A ńe‹cLk`°Z}1ĹŔ2?“ŐVů^~Ăŕw~§ăk_;988Z[këě,;r¤vllţöí%±·ĺâ¨Ë`EéďKĎöĎ33ÁÎ5ú4‰˙®yתőE¦U\cßµz_?ŔKYüÂ=zě‡?üźĎwýúµ#GŽéő†#GŽľňĘËÓÓSGŹKŮŢęt’Ót:—¤§#“(šÂa“(šxm_QhqzJDVŃÍęŽ)ö:w VÔᕯ±ćűä˛NŞ·±w”e(ŠJXDQ„Č"˘ş%YăĽ×®/2Ć´<¬·óS¶¶Ą¤Ô †„Áŕ//_äDD"Ć`Đ Y‚Ak(d•ĺ"µ«ŐŔľ-PŇë8ńçpJz3ŠŰ2Č2C ±`‚!HNC[Ő€6R_\Ć›ČB gŐŰ /ÜţÂî®®¶=Zű â(?>ü–·t¶µ•ľđ°öśq“Ś—ΡžŠ?+?Ő«[Xyđ€Ä‰0P„(#1Fâ D‘&3P(ŠŇo SYaS&‹b\«A%‹y˝^łŮ „Ŕ±cµkĽx ńüó7?󙟆ĂqH6Ϥ‹7P_\fQáđ&ë‹ę’‡¸Ř ŃÝÝM)ý‡ř~wwŹŐj€ľľ»ó›_űýţßýÝ­ýĹ€fµF¬ÖHE…ú‹F ‘)1«ž2×oíŠf°±Ć{•ŠnÔŰ™»,ÝřĄp÷âĺł»˙ä+ĎR$PÝ«Ôk-ŮňtĆă,,‚(BD„H""Äb¨-żçęSa6ń˘ÖŔdYF$Zăc§6n`fsÔlŽVUy ɨ mÁ 5´†BfEÉľ=<_ŕN‘?ľđśý`‘»FEÁp‚! ±@"bnٱ)^3»„„ö¤ž>=%IĘÓOß{úôďű·»ůŢ÷î­¬´üŹ˙ńŰ•ďOFŤ‹ÇéŐ-ü¬üTÍV#f#ľ ‚L!Š,( Éz&é™dQ˘F–DŚé[2U\‹€pp?¤źŕ¦×ë‹|î)cě;ßyőĎţěy•e4ę˛ëë_Ö5`2Ą]ŇŐ—iŤ"˘ čz{˙ěg˙ňˇ-ň­űúîúÚ×ţ_EQ>šŃ)˘Ń7㥥KSČeYŕ’{ĘpŘŤ•ĽW© Tě…Ć;µŽ Y$ÖÎ]–®ü„¶ČD"&”ŠýÂ^”®üD9‹3g™Ą’5żA)í¤´ ˛Čى°Č"ÜŠLZŮ…ťŻË•Mj{ó7 ­ńŤĄBN ,Ńb««ÝŚ1ĆH8lć>2°E"¦˘Éç3­SĽđśŁ¸\#c1dÁCŠ(Im¦|YJŢ/[€‰„ň›ßŚ~úÓGżřĹüŮű·ßřĆ#„ŕŻ=˛ň=Ú>Ť·gţľě¬%őp~E‡yňm9A•Ç#ËňRĆo9QŻ×Űíö|žŔ˘&ź‰$ćçĹH$Ç#‘ÄÂB4I„ĂńH$ľ°]őůůy1I$Ël`pđöŕ`6ăMtZ>ŞÁ°IżČ-‰—”âń„É$ŔŃŁÇ^~ůĹ;ďĽ ±˘˘˛µµśNg'şDŮnŮíˇĹ“` Eщµ XIĘU‚›K én¨čÁĽŚű7wYşňJÚŻÝä«ÄŃ ű„& =K0ě†+?!TĎjʱşĂh,ÍéZ!I‹ž/"˘(˛p˘Q¦$ǶŞ/Ë»:ĄľřČ#oůÂţHű‚”Vśěúń—ŃHaą@yy70GîŔşŕt›-lł…\ I$˛ŞIWQ4m•Ź\á±őQŁ(B0Á0Ź Sflf“ŰL©/>úč[ói`ZČĽŞô ·{¬ë—żĽÉźťš ^şäŹ'˛ň=É>ŤkŻţňżXGΉ–¨¤)f–"ĺŇ‚M ŕŰ2€š(˛Šb÷őë×Ífăjëseee}}˝.©˛vźFn}[6čëkîďß—.ŹšR_üÎwÎ~â?_ţmk¨z¤ËŁ.=Ż(‹»¤wĽă]ďxÇ»´/űö·ż›î¸9˙©x–¬Ľ|éůx\«aĄ91ĹbHť§±¨Ž•wCă]`©Â•[_)0g“b«M†ŹC (;©Ü/ .zM”ă0ńLĽÎVÖ|s´’ÍŇË€Ec<Ę˝ DD'Ô]ú~zŚ:::ó›TžúJčőzDdśˇÇ˛ÚÎŻ40DL10DĚą ‚âtśÎ$ó€-°rg‹ftĚĘHQ‹‚GŤ±8w a0ČK\Y[GGçŕŕKëľ,‡¶|řââqľůÍWżůÍWµ/:räŰéŢŻćQoGČBÄŐµ §0ĽňĘ­#GJŚĆyŤ("VUUUVVvuuńgD1ńýďźu»C…ńmŮ ]őüůYBľ¸,‹3ČŁ˘šÜ'¤č&©ëő ˝>QR˛4B’PŚZ"ĆË">ńBÄL^ĹSÚjYí¨ÜTżú]ŻFЬ¶—f‰đ\WęŽTěö÷ťKnk~ÎŁŃÁę^VźíŠ˘"}ŠĽĄĆĂĹ8z¨@“MčĎR‡â00žź(-ť/-ťçĎÄb:ÎÜ ¬Á mĹ\ĎÜ`M§¸ĽFŤ(I,\ !ľ[ŞFo]wž ,3$őQń7ĐôźĐđ¸ňxµ ¶rHŤ€n  ‹€n Đ…Aa zÁý¸†xüSßüćŤÇźîëKÄbaD‹Ăˇ×ëëëë;::xtÎ{ę©_üčG·đ{mѨśť>*Ől¤MçQ !’$ó"(Š&Sš5ľh ”Ůl­6ËŇy2…Eç!âá#ąYÝaĄĺÁµVád¤@p¶-»>ă˙IjŹ“®1őFđö 0ü¬j4Ý˨‘>x ěaüd˘óT*'‹ĄŁcG0Ĺ Ćɨ §0Ëú"* S Ě`0܆–ćĘE“–ć*IŮűďµ#E-r5.'Ž2QĚ_Ť0äĐŔ´‚J ÍÔ˝Ť"/€üě˙´^ý\Ńe1dcľmĺóó`€.±±iő:PŢ7 €>Űűt<÷\ ±qüĐÝMô6›Í`Xş'NŚüó?o§FŁ>;ŢŤ¶·ŤĆMבŹÇĹá/E ť­ÍX]™˛9D‚¦R0•BY'@4î'.›ď[+Q¦‰ęŹČz۲ë BhJ±5,^™Q㌳Ŕs }0ó‘™“ĆŔÜęwf$bľpa_U•»­mT§+޹Ġ7,Ąą0›ň"QkIĹi`¨Ň\yť;…ćĘŮl@˛a§¸ĚŁĆÄQ` —ŇŁĹć‘C[žG•Óľ*=GŁQ©żż ĘG0úŔô4Ü÷]Ř÷áÁyőmŮŕ 0Pá>0ĺW®xCúň˙g©ĹűéOŻ<őÔ/І¶>úúšďĽłéWżş•éđEHnŹ“|›ó‹¨Ó ±:|¤Hď"`5U¤µ‰ ÂŞż,Ä]ˇé3lä53ˇ¶Ă#kGµ‘"‡Ę¸Ńbâö4,ý™.jäăpőçşCµÚÇłÁÉWaâ‚5EÍ„ĄËUéő–¶´ŚŐÔ¸ŠuŐBÂbš+šełléőşma`ܡ¨4Wŕ~g9Í•±µżĹĆ#ĹeźĽŃ¨qq”Ądć‹ÖŞ4H1°ŚE±ř Ź«˘_~wŁQp:SSe7 ô xKf,B Ľý=píOŕd,˛Š*.ţ€1‹Éň'żúÁÎmÝ9nFŁnĺϱIhó¨QŁqÓĽÂJŚ$Ývž1V v¶ˇÝ¶ú­“‚7Ă#/ë}S|ęk­Ői)0kĄâl]e[7w¤ĚKt­¨‘Ah†ŹcűĂ Żµµľ ZŚzŻÄnżhBŠwL$„›7Űfg+;:n[­ábČ+jÁăăS8â±x"‘É6śCí_ä–+éś‚%š+cL–©–扤¶…eä‘6j\NYŢÎo äĐŔŚFî9=3Ă4Ěŕŕčŕŕm؆Ś`€?„î_Aë0Ôţ6·…”ůaßK/ŤľôŇčóĎßDŠna_7˝U´­˝1cNgÚľ†´s‰aqˇ×ŞEo9c(Pln„şšUWe>â:ź>iMÄ–Ö‘ň=P{,í1WFŠPs­F+E¦ŔÜ«YŢP·vÔ8ý*”4Cy7ZŚĺwËŹ(âXpě¤0{Ó”âŰąskkgš›Ç‹mR± ,]%…)˛śyÖWQJIX@D-Í$‰ji®{ł+â…ç‡ßŮefÁ°JI#ăŰ#"\940ł™jçŐ¦ L•H€“'‡Nś¸YäŠÎé°†ż†C‹Äîţć–žN6Ŕľľ–ţţüŹLĹQőšÂ3––nŇ/jĹU‹ XYm-`X‘•q,”ô4ÚX›ť°çmiżËŠH‘ ”v¦˝dăŻ@Í‘ÔËłFÔ׎–jft&É~”Zí{ZˇsÉ‹kV''kçćĘŰÚF*+˝éNŁđ’%AĆX`!”]]°H ,'HˇąBwfÂË0ô Ë]ţ×`_5Ť@–¶Éěl(ůצŻŮr‰ÔâŐKz]Áh4dGş’ü5€·ş:m]-MaLŽscb …1¦đ&éěÎ)+0Ł‘t¶˛’ÔUV3“¶•7čy i.檑"Tí•Mé·˘BłĚZ“úYé˘FĆ !µźbď‡XJ€8Í5PsŹĽą0ň˛Ţ7µćÇbúˇˇ®ŮŮůööáě'řdí40D BŮ$Ř%)Î|‰©;Á ʲ<†Ý\˙EŰ\óH‹`0śŤ˝á %/Ľ0‘üKY>—p},—HÝő‹EhTYCucXJ 0_]]—îu«ŻţŚ!!Du„±XTŻß2&=C„Ćzl¬cZ}NĆâ3ˇ$“ĹÎč[î{ýę‡]=R€˛®uRا űí«<żFÔ„‘Al}ăj‡Ó ¶ÇÁžE–Đč SĂ)żßyćLoCĂTCĂ$Ą[™ÉI‘ŚĹH6íe’$ó&nţg<3‹˝(c°`Ëłő‹K8''Sś`Ś9Ë ,‹ĘrćsC­Ës€nłIFŤŰxŠŮN‚ŃhĚ.^,Ó6ő—”$L¦´ë|ÚźśSořăDBÖF d9cXęÄŽVĐč۲X"p=rűEc`.­$.aI4ŢłFóţ*ôVĄĽkťâÜč|„­Ş °F­qâ%p6±’¶Ő[90Źć IDAT§€®ĘÚô4=÷ ‰7cCzĆP–ÉŘXŰ]ŢŃ1ětÎoŐîÄfł%{ĄQ–ĺD"Ű–’[Sú{9ővvĽIĆ '†¨…&gŕ“­Íâ‰7ł<ź]d\4i84ĹEeŤ$*¬á&gĄĆbQ>ޤ``ڎAŹm-PąÔp#y®óňđ)‹,­Ĺb „Y,á’ŞPË{*W%#¬)@ÍAFÖąP‘`î «>´ú?Ż5ň;ôęŹŮ±wşő5V°ZŇ%ŚúŇĂú;{•čdpň4™Ľba #ÓĹ‹{+*"ÄBŘ@’A!Ó™>`2‰:Ýöfí®‹śŢ‹ÇŐ‹–áŐă…ĆţţŠj/^śÎň”v‘úűŰ}ľřÓO˙:»ĂX’î!ĆŞŞÖŠ~ŇúED‚('Ů7ŤµŰ°ł ¬P‚ŞK°Żôfłh·/úB‹E„ä SEQ°ą«ŚPY#RDއ˛FŃčÜĐúśńAąîî´C¦Şë¨~•¨qaÁ>>ŢĐŘ8Ž X,ö‰šMč°Ýv—ť±™*ď1UŢ)GF†_Ň{ĆL·nµ¸\•·ŐÁ#źŤÇSÁ`–dT€-4°-A0”±_„ť,r‚ ¦=sb`mmö×^S k™×Âűű›žyć±'žx&ËóŮE68~üÓ>řý‹]YC—ĚŁ"€·ş:#ż‹E©†—/ËrĘÜC ĐŇ„5UŔXt<0yšL^±Şť€¨Řl!»=čpŽŔ Ő´¤˛‡ÓÍŤ+żv¤h­†®GçţN_ďŰV0Dś|Ť&ăÍęÓ)¤«5ŽŽ6:ť Ng’™Iäóg\:Tiłg ÔÜáŘ×±”L>{v_m­»µuLňIȲlłqy„Ĺłť›óeáń伪\ ńxśRšwŰ*ĂPY±ţËŇŔjÝɤŕ¦ć?ćć|ÉhćxôŃĘ×^skžHdPbäxňÉź:5šĺůě"Sŕ‰·ü‡fs†?¨Ý ü˙łµµi™°†_ŚÇăfł»3P#ú=cf·XÄÚZ÷…&“¸™Ű‘î¦Kµţ5ا‚:ßÂĘ»F^6€čß臙ˡ´Ç ż„›żdóŁĐőŘꍒ+ŁFĆ ×]˝Ú±˙•µý2 ‚lch61» í6tŘűí‡÷C|&4ůjőůó#fs$OG•ńx"ÍM?e ¬HŔ‚!L39}#ď¶Zw¸_´ZÍęd¨ś IldVIvkd¬ě"+Ťć¬;úš•6ÖÝ˝NJpŤúâŇ ĆX<K÷ĘĚŔCJ•ęÚHĚ>ö¬N ĆŽŕľ˝GRíVq3KI}-+-IynŤHŃ^ÝďdF'@l"°ŕ¶€čßh °©”ˇIßt88ňŞmî*¦ŮŢwăŞí’«FŤ~ÉädmCĂěĆľ "QŁŕšcŚ €Ý¦wŘZîłłűőţë-ţá…šŠBr¬Ç3–z }ľ…ht•ůć™–ň¨±ťěe""X2!ÔY,"ĄňŽşAÉ<ŞĎ·‹ĺ`Ě!"¶´XoÜHŞeA˝9{vć±Ç:ďľ»ĺĺ—‡ł?±]l uue_ţň‹@6>HËŮtuwŻăe×â^Šb AB(J’”ÝD´eH 9Őîsq62ÚÓrţŕÁ+--eeó‚ɲÎcV ¶µ¤<żF¤Řx/ô~’Sg?TܰJ°ą öHRý`Î}—ŤżČV͵TězŢ‘Z“n ,řDDYF˙<ŚNŔ…Ëxî| ŽÖ”"†Ş渣Ćfłh—kNsłťŹD˘@)á–“c-2îb´Ůvr碢(&“Ak`n·'WöÎwÖ€FýkÓ®q` ů_ţĺ}ăăźřáŽpxçîŰŠÂăŹď˙ü·ľő–;ďL«Pł&¬Ë=Ýôž=ë,’iý"ĄTQdBZŹÇs©F¦Ń&O×Tąíö!YO §÷íIÉS%#ĹeO"‚ Wö?ÁZ`H«[J86qa‘Zť‡ ‚űE}•µ¤Vä4'¦ŕđŻáÂß3–XeQy@·÷]’& ĆđĘ•=YĽĺß„#Äĺ˛I3ú\ŹŻ®®TEaÁ`X–s’Ćă±üX±3äÎěxŇMuuĄúXQX$ÍÉţ›RşgOĘ‚ —ç˙ńRcăWżńŤÓ?Ľ·żż=űŰĹĆŃ××|çť­_ýę+ŤŤ_ýĎ˙'$łe§9ą7BVU++Ö^ÁÖéŐÓétŔŁ1˘XĽ™.ŇŐ†eÓEŠ6[ŕػܥíËä^}—ŁŚ-ŞFE€m`[I0:@ë=ÚdôßĆ‘ą`!°ň]ű„˝ďZvôxÜpăFQßlĄĄNŕŢ1‰Äb9ó^¨KąĺęČĹLăĹť­tĂ+-ub‘H$ÍĺĆÎdҲ7M˘ýáŻ1ŁQp:­Éµu…Ťz§Ó @ě?¸řĘ+™QoŞřŃb §gýŚÚ:~Q’$¤” eŚ!ť_dŚAMÓČâ@ÚH‘57Ź÷ö^ŇW[–BVnż¤ąR 72šJ—oë°şe;\߬•ť»Łă°b'Q±OH‰çćĘgfŞŠpϡ( "ÓöNx<~QĚĺ˛Ĺ Ś LQr™«/.„"°É݆„(K®ŞąĹA y5°žNrFŔ2&”Ž>ýôŻôlŚ­ľ‹¬ŃßßîóÉO?ýë,´ß€$ÇKqĚtu­OáYÇ/†ĂAšL6"B,VtŁ,™ŮíËĘŠ+#EDĐë˝˝—›š&P ěĆăÇBbp1G ­˙5ÍZG¬Úî^ĆŚD¬ŠBŮč\¸ +:”WFŤ7o¶„Ă™÷}çµµ5ɇ ćć<9Ěv"b8*rË Ăđ¦=śŐ!¤ ÂFFmmMňŰ1p»çrBşQńľ÷U/ň2ď»íďozć™÷šL»ÄÔÂářńO8P•Ý1Z“ ňüżÉu‹‹°xQˇTÍt±X¬2]Ś1 „ěëÍśŤU#Ĺ’˙ŃŁgŽ "˘ÝšR†;ąäRŮŚë÷jK—íý«z—Ý-Śa `EDX*§Î˘/ő€+˘F24Ô-ˤ¨˘FĆXuuE2ĹEb±x4ËfŚF (ĄČ Ś1Ć ¬¨®@nÁ›ÎîlŇ TWWŔb–žÄbńHDĚfŚĆJ””„hwÉYmĽž|ňYŁŃĽ2ýýí~żüřă?Ę®ťš“‘Döě19ëp}-P®Ń…”RĆŽěN47`ŚA{łV5mµH‘µ·Ź80¤Šă°ĺó’”ůČěÍe˛«MM“$±ţľŢ¨,›LśćęŽ6Kł°°řA(IěŇÜIÉ©jŁFĆ 1ÝşŐ\T^A§ŤpëÜś7É=„!„ŘŽŤ ´é«głíXŇŤ˘(„` ¬­Ť×MřâůÚuâÄÁ@źyćý&SŠbŔ.rŔăÇ?ĺ÷Dzkç'ZŢÉÄÁJË­ă1\ĐÎbĚ…`tn€UPł¤Ŕ–)"‚Ń;tčb]Ýt’ł @ËDU\ç—}ł9ŇĐ0 ‰[bÓ°<-ÖÔ·,E Ú’g‚Č&¦ŮŮ‹]p§DŤłłŐss™«…ĺ uü§ç_azÚ ĺľÁ<(RË92­Öť/64Ô©Śś™q‡Ă9ö‹řá×/wc»!c±ŁżżÝď—üźł;5Yt¤t¬ŻoC˘ZëřEJ©˘€FÇ’ĹbŃ-ŹicĚhŔ®%çĘH±˘ÂsäČ9»=¬.¸ü´™]s]ŇđIUůˇŁc€ášrü•&c„ÝÖŢm¦&«É¶äcK2.ˇ0{ő¸=ËÎsy­ńĆŤvQ4lůćŕę\|ŮŠFcˇPPQrĎ%’†yÁrČw-:DD7ŃBG©l±ä¸ë¦xŔ«ŞRłôŤĆ"‘pÎ-źRZWgĐé´‚ĚKŚšq·ĘWŕńăźöűŁŮ‹Ŕ©'<‰Ú»Wp:×éĐŕŘĐLĄX,ÎY©” °ő¬TDÜŰÉĹ4%R$DéěĽŐÓsC§KÍ™0łI;Ń)x3ś-]Ş*·Ó@DXO†Ę` # ›ŐSŇvĎbÉ$B$’łŁ˘ŔŐěú--5QŤY¦CC]ОĹYY–M&ĄK§1==ĚĹÁUÁ Ś LQ$y3ţcŰ€±M ĄZ­ˇ,Čiµš f`GŽđ˘†ĘJÍŞôä“Ďž:•Í`‡]¬…Bôą¨,Ú´‚nĂwß˝Qć ůĹP(HéR¦+Ëvdh¶hmëbś§ŤÁlľPS“Ćj5ç`řĄĄŢ&AÚÚFůc&É+I¤ZÍÉ]üđ(h&K”î3".qÁŐc*f\ěĚ,…Ú¨1˛ŽŚ4Żńé…AKK"˙ŃcĚĺrç)’#„D"áâ2°üa3K˙Ζ çÜŔff\˘ŻŽ”ßýÝś±ROśšűŔúîľ»}·Ę ůÎwŢűö·w Íew¨ý€r7g4NőöćÔ/ʲś´`` $IVyKŘ7Ś1(+! ‹Éý”H±şÚuřđy«5­Ô8j’¨qWČ?mRßŰŇ2&Kľ×,1šÍɸ0ž`#K˝5Äbh8¸´–©%ĆÔÓ@ÄČ^;Ďf–ü·¶Ö89Yëő–la6•t:“Ľ!$~˙B$"ćé|!Ś1n`\AB’äť'mJőf§*Ý(ŠŔ¸q&Şßż‡ů,Ň||˘Á@l6mż’YȨ‘…ë ‡7´xîbłśéíý–ɤ;ţÓ‡Ą™á·> RóŘuěĹ`ŘčO¶Ń×…B‹Ă)%HH[˛j3˝ötđÖFŠ”ĘÝÝ×»şn šgĄ!ÝLźQ+`·SBL¶Ž_\ őpĆ>Eý±Ą—-,¬µ=AĆđĆm6t]­9ń¨‘_׫W;˘Ńü öZÍÍMÉžŁŁÁLĺZ6n`„n`’´ó¨°/0Ćšš l`ďyoË\+•#) węᇻűű»ruz»ŕčëk{ę©űŞţô§˙őSźúyuܽˣůKO˘Âý"Ą4‹QJŐÝś,g5–60ĆŮŰĹ „j¤6[čČ‘ ••žµŹ€zť:3ť‰ń±łŞę ë踍¸\ŁuÍŁęů[ŘŤŰj†ľĆę¨\LŠ˘I’Öű]ÝöÚHň<Ő¨Q–…k׺´ĚťB˘¦¦‘Wb O,,,ä»u5‰l­ś^éŚ:ťd6Gwj× 7°¤.n" IRqJé=÷8Ő¤d/jdátN§©§§ńŽ;švł©9öő5÷ö¶:ť‹«ô / żüňD¦GkÓôňGâťť›Tµ!żČoN>A[]¦ źGĹć^ ä‘"ż©ęë§ş´ˇDS\ô_yńőuu3+VŹBašIž%¶ŢłôŢ´%Ć$řZÉÎ^ÂÉi~BjÔ¸°`mXűí9‡,Ë µ”H2QGFĆ9!"ßktĘöD"±3Ů7 wj°ÍÍ ÜŔ€X Ěëţ ÁŁGťÉ'řgeľ‚qY8‡ĂňđĂł?˝]p ě­¬´g-ü=<•xůŢ{ĽălďßDŠÜď÷€ |_Ď۱ §ëA)R*íŰ7ÔÖ6JȆ⢢ żdD0âÍÍ㫼8}ĽH©¤Ó­ †ŚŽC’-bď2Sa±Bl(xGĆŘíQĺŇHh˘Ćńńzżß±îŰs‹ÚÚjĆ€ď‚%I™›óäŁŰ:„@`(Ą[c`ĂƆ;X.<ĹŔfg]<‹žo|ä#Uj3dÉJ€“''OśęďßłŰÎ%úűŰh_,ëHŚÉB2č!§^żą_g~‘Rę÷űUóED¶‘L9=LŻ›», =+ bSÓÄÁ—ŤĆřď%ĆC„¤\řäéĹo]R2_Q±zUăńtÓVúĹE¸=ŕ[śÄQŐ»H …¬˛Śôjń8;Ç&€AĹ>ˇçťR<.\»ÖQ0~fgg«úX–•ë×o6ŻŇ’1<w°ČSÝyÔ (Ţ©ń˘j`(ËĘ­[ŁáÍË©gJéSOµjfÓ°ˇâÉ'ź5Ô¬˙Ň]¬†ţţ6żsˇnĂqTó8a±\xŕM§Ü6áyj+‘AO&†a őPZÂ#Eť.qŕŔĄćć ˛IŽ4Ú¬\^\ Š“W,@©ŇŃ1Ľú‹0ťśÉ”^‚äÖ0÷¦BąĄĽ)ĘČ2 …¬i_żę§°Ń váÄĹ˙lą{ń6XbLĹ|^;>Ĺ>ˇç‰‘‘Ć…k^ł©Ś±ööU—KQŘččha ?*!~żOíeYŢšŽ üb˝q§‹íí-°Č‚!ŠÂ†‡GxQąřÜçj5!#ËUČxę”ďMoÚ{Ď=mŮíőÎűďď9q• uŽĂŞb0 =ř`IGŮ´_”$Im^$„Bd9oŞ]‚€=]s—âW~B[ZĆřXŚĚb—EŇŤ,ßzÉ&“ŘظÎŢ$őFmę_ă“(Š`iłęMËĚ/""$$¸4ĆÇ*ö {ß!]˝Ú%IÂúďĚíí­ŞN)"ŽŤŤáWř!Š˘$$WOBČÎkUX·Ä¸óŠ‹˛,777jGŹŤŤyQÜ]6miQyŕ•‘sśżů›·|ë[ď m`të.4 ßůÎűżúŐ7ź;7›‹`ń€Fř .ÝżĂfŁk˝#Ýimö ”RźĎCUó!Śĺ‹ÁŹ]íŢëŇí_BoďĄĆĆ©¬*Ű;„o‡â˘€ííĂ„¬s3¬Ś‘™Íkʡ) »9 @iű=aŘ@«Ćš@śRÎ^¬čdo–®_ĎËn”ŻMŤŤuę3˛¬ŚŚŚóůř¸u17çB$Z+žéf9Áş%Ćť/ ‚ĐŘX§†ţ˛¬ŚŹO…Ă[đ5)ĄđuI­T5•šąu 4ź?˙éP(ŢŰű-§łüŔ†]΀ýý]>ćBÚ†ô$SśÎ›o~s†dţMűE^-çR™I+g9§Ô3Ć ¶Ú?%ĚĽ(9rŢáČ®—Ëdb:ŚĽ¬G„ĘJOiéÂúľ|µxŃlS–ÁżŔ‡f”Đ@"ˇĹ ýJ{Ě`˝vľ¬.ZwŹnjŞ:çyEĆŘáĂř—âIÔ›7oÜNÝ8$I^®ĹĘSvT6u˝Ćť×ĽČ ,9R ¸m‰Ş":ťÂţýK˛Ůó#ů—˙ößž?t¨ú™gŢa2•ěúĹ ,ÇŹ¤ąŮ™µ´ Ç›’îŚÄ×úűmśž±JüąÝnNNQ98ŠÂrMeł?XňîÝ{]§“ł]ť6źj`|öçVťO^>dÜaÁ"cŚ,ęÂł«Wođ}Ďú~ťß˙ţ˛ĺ®+[;qběäÉIŁQp:-==ÍwÜŃ”ĺw$úúš{{ŰťN $ŻX.ŽzČIŮŰ“O˙Ö·–”—g;ˇ/+żH)őz=ę"E)A$:]NÚ3s»->Šř±ĄeÓ?FŠ_Ôëă”n˛ xd )6gŘÝź7(ŠŇŮ٦]ž<ďřřDáű¬×†ŰíR źÜŔxŹăVźWÖe¬˛Ç˛XDJwH®¸»»S+éńx§¦¦Ăá"ňú”ŇĎ~¶V§S—AÔü?xňÉź yżűÝ””lNôj‡AŻ7|ď{<{Öőřă?ĚQ˙>DZäÜ ÄńÚÚ±7żysá«"+żČŤ~rrx¦+ů$QČnź|Z[G3ář-ĎŁn.XL2Ůí‘Ú#]cîQYYQQQŔ¸ —˘(ׯßöxć`KŮ«bjj U€\U˛·«v1n6ĄQśeବ´˘˘ T»víÖÜś»¨b}DüÜçŞ4ă8rŔk;qběäÉ©Ż|ĺˇ˙÷Űżý­ŻżßëpěFűmĎ??űňË“_ůĘC'NŚçhő JR˙]"äôG?Z)›'•9řůŁŃ¨*-Í#u:J6+`š0…ę‚cruµ;·cv~q.·Î ‹®H‚Y–Ačęj…d·˘,KWŻŢôű}‰DŃ©uPJ‰705jÔé(cąě Ú¬Şzł3H770Ż×ŹoTëżčę2;¦í}Â\…Ś=Ôv×]ő_řÂóýýŤĎ<ó^“©¤żżóŔ×ENµżżăŔzËńăź:p ň _xţÍonëďĎGWp ’ż” pň±ÇJÚÚrÓĂ–ďE)őzç ™1 ”"D4ôEQ˛Zü×âíí#úň<ę&Ȩˀps¸éÎD8śÜšă IDATi–@„ŢŢ˝LóăLNÎNNnq?ŮÚp»g µV| ě&±ZĽ¸Ý•n’uë%CÄÉÉŮ™™­ě]”Ňßű˝j‡s#Ti&úa)Çĺ~đ§Á`ź|ňYŁŃřĚ3żk2eĄň±}@Ź˙¬ß/?ţřŹĚf}0˙ČGžóz3[BWâ~€ĄŢ-Äë{÷úŢúÖL¤PWEü"OśŽŤŤ¨Łř !ş­ŻYmâȂŒI×Á˘B©&(YGuŤăDD‹a!,E‰ńŕÁ}z˝Žfů€”ŃŃqŻ×“dŃ#ˇ““ăÚY ×¶đ”r€PD;Ë Q,– ]ĘEŮżż‡c 7°Ű·GÜn×–o’Ó Á?ýÓZDŐňsÍÖ5Ž^¸ŕ‚ĄF=|ňÉg­O=őHG–/Zôőµ<őÔ#V>:JmR˝|9“ĽÝ ôđ˝çÚDŽźřD ×˙ČĹńsá9cSS‹‰c®NB)Őëłĺe‰°—T—OguMČaČĚ”Ą&;Đl Ër]]ŤĹbÖ<Ă^{íÂÜś»Čs’¨(Ęää$w]ÜŔ(ĄE~ćé€Ŕ.=hµF)Ä„Ţüˇ±±^50.ÓtćĚEŻ×Sx}đ͢¤D÷űżŻňűQ3Ř6gH6ţëśN{OOëw´í¸îFěëkďííp:í˶}-:ěš®‡Ą/|ň“•G.Wלýę„Q}>¨s‚(Ą[ąr¤yB˛útNIEJeŁ1ófd&ËFş͙dŹęꪆ†ZŤž-şáv»ŁŃµćmBˇĎçÓjÂQJa‹÷^Ů€-źůĽ­I7˛,WT”74Ô"‚ÖŔ<O4Íhš˘!äčQŰ]wń@„ËGc~˛ńßüđĂ˝ÖÎĐĹ10ĐyčP#€u``_eĄ=§műZ4t°$×O˝ĺ-¦žsnW°łc\®Ůx|Q#(Ą&“A¶¬sCb¶  dĽh6‹Ůd !zČUn}ÓeŮb1·´4$e PQ”‰‰™ąąąP(Ły–[J©Ç3Ç Ś×±¸!’m5BhËĆfŰƤ»ÝĆ ’#P&&ffgg¶x;¸)|ôŁĺ‡¶mtůęNžśç×čőćď}ďC6›ťŻü|”`żvĽ"Ŕő={Âo{[EÎ?)Ç~‘:11Î)BµĚM&Ŕ¶UđŠjýâv…ÉdÜ»·SíĘ—ËsëÖčÜś»h«>+Á=účč,˨Ѩ×öŰFH‰­Öm/ʲ¬×ëöîíT»2ŃĺňŚŚLř|Ţb®[Ż„ Đ/~±N§ăw…JLÍýÎ~ppôĉqŢĹh|晚LÖíĺ“g«?~üłłł މ188–źHŃ p7¨ÁGKKŻęSUů0®űE>…jxx89OcÄjµlÓ•Kő‹™’Q·˛, íííIŽřAE‘ŁŃříŰŁĎÜVM’ĘŚÁŘŘj[B¨Őjí¸÷Š*±‹Ry*ĹAĎ #E9Ťß¸qŰĺšÝ’IRŮ€Oˇúă?®Ň<ÇEprOňR»8ŕÉ'ź5­ŰĹ;j<â˙ĺ÷#ç×äşC Ŕ}šś¶ 1™®|ţóőO’Zyé2”¤Ä­[7y·Y’CV«`N—]ĘŁnK˘ ^Ż;xpŻ6(ŚĹâgÎ\ťť‰Ç·X»93 b"żyó70Őß[­VJ·™ŹĆTˇT«5TlŠëBQJ‰ÖŔ1‹ź={Ńív%ĹŘ­¸46ž~ZuŤę¨[cn?EíâHv»ŁÖ;öőµŢqGsn?1{ôőµÜqG €Qëą‚A®;1Tp§¨ť¨1ţă˙°¶ľ>_:úö·ż3çĺěÁH$ät–ňň_żŚFc,¶ÝnI¦†±ßbSÓ„^żI¸-…,Ë:ťpčĐ>JdLąpahvvzűýË!IR4*:%Úú±ŃhŚFcŠ˘‰¬ÄF€38ěc' ˘Â[R2ż˝~A ÜŔřś2n`çϹݳۅ̵*±Ľ\¨¬„3gbŻ5ćlťwą–*Ęcc ““ćfçŹ~4tę”ë8ÖŐUŤHěv˝Ëµő öÎ’ÇîëęŞ˙?˙çĘéÓS„ŕK/MLN.FGçÝîÜÖČ€d›űE™ŇźůLyOOV3Ö!ůń‹Ńh,‘9NXě˘h0b±¨,oź•‹ÖTŽ˝DŰÚF·Ë)sčtÂÁ=Ľ žC’¤ †\®Y­÷6!$‘HÄb˘ÓYÂw]Ş%ńíD×é°˘lěÔÖÎZ,Űćwá».ŐŔ’OJ/^ť™™ŠD¶~NYö¨­Ő 04OĆ‹$éó( Ĺ˝# |ţó÷MMĹívKm­}jĘßßßîp ă&űűŰ“ËęëkŻ­­li©űđ‡ďxîą›ŁŁócc ęyć:€{“Ý2ü'H ľô±Ź9ŽłĺĎŔÉO•RyS#Ąq±óĚé,„íäa03c„l› 0çA:´ŹR Ŕxîš1vńâ•™™™P(ĽÖ,ż~jj’«§ŞßÉé,AÜ>*qÉ<ęö/e2ą!‚ZąxńŠËĺ ‡·eĹa%(ĄŹ>ZňĐCĆdĂ$łyćlĽGĎť›h~ţůᮇ>Ôß8™bmËëĐăľľć;îháĺĂö ěřá}?űŮŤGé8{v&?´š•0Ü—Śů˝,#ľř®wéîąÇžď,ďúËsssz˝ľŞŞš(Et:K`<ßdQ4›·É" 6›eĎžvŤŚ;H’tíÚmźo> í§‚ řý~n`€”ŐŔŠß5""DŁĚćč¶seY¶Ů,]]ËzŇąÍÍyŔN20xĎ{Jü~﫯r[RŞfQĺFć Ź=Öő‹_Ü b'ON2ĆČ“OţôÔ)˙ýŃ˝z=bQ”!Š˘Č§OŹőő5) ;}zsN«ŻŻYQŘéÓă}}ÍŠ‚„č… tęőş?˙óŹ?ţĎfł‘z }衶˙x(OßW+Ŕ±ĺăMâgzČôčŁeů˙ôüűEJ©Ëĺ’eVSS­‰€v»= l şš"ƶ‹_”eą˛˛ĽĄĄSÔVĹË—Żş\s ;lÍâžžNI1°x<± 2öÁ­($7ŐŔ’ődŚ]ľ|ŐăńÍĎołúčF@)ýĚgŞľó÷‹/¦TM±–Wbr2𕯼ÉiŽ*¸ŁčŇëi<.Űí†Ó§ôz$Ĥ(2! (JŇYĘ„ ˘0BPQŕô鉾ľfEB¨˘ŔŔ@‡^Ż;}:80Đk·^OűŰ1žŰK ˙ęŻNÎ͠Ŷ ”dUF|塇„÷żżjť·ćy÷‹ü>qąfdYjjZűŰlöp8ŤF‹|ĺÂhÔdÚq-@}}uuu%Ż·€˘0EQ.]r»= ;pÍâ ”z9E#@‹ćO@A<őîw›y$7Í±Ł”úýľX,ŃŃѦő‚‹…ŤuŰŁfsQ{nPą§§Ól6Á"{žrĆü•+×ff\˘¸mĂëő$r{{ëJ+ňŻĎ‚aKQŚZI Ć"ěÝŰi6›cÜŔ O\ľ|ŐíöěT§¨‚Rúľ÷•——űđqyşŰŘ‚˝÷RwÝŐŤJ°ÜY&éÁ‹~ŽűÎd2vńŤÖFŁRA<ß8 Ŕw2O.F(}őĂvľá …sŠP0żČ Î_»vmĎž.B–Â/‹Ĺ$4*^ŇFŁfsńŢó˛,ëtş}űşt:Ş}R–ĺ †ććÜ‘HQ{…\R®^˝ÚÝ˝gUSŁśb}ĽH)íééŕĆŻ!7°‹ŻÎÎÎÄb±âĽ°9Çý÷ŰťNý7ż9Ďv٬@€­éV˝GŠcÓúNőźVu~)Ç)8t‡4˘ @H 'ď÷ŞĚÍTĹŤ˙îď~PŕŹÔétmmm&“’sqy ÁÂÂBń‹î!ěv[[[cň/Ć5µ˝Ţů‘‘q—k6Ű–Íű1f4[ZZTăá#7°­şÝ ËrI‰“ŹU»ukÄă™ŰÖ}Š™áćÍđ_ţĄ7‘ŕTI•˘DŠS™a` yŤěh `Ż& ç{ŽY‹ĺćç>WÝŃQčq•‚°~‘1¦×ë›››,«VRś1 ·A5¨h ËRK[“Óa§ÉĚ!ď­v»=ĂĂă^ď\qŽG/(Ą­­-‹•Ň%™(n`Żźŕ&Kp/ŘŘ\_âtÍc ÜnĎŘŘ”Ű=›H䱓ŻhÁ›šŠůË®pXX1ŁQĚ+g'˘ "™5Ţ8QY9öŮĎÖÖŐé · B>űúÓ«ářý~Đë ‚ ¨Ď B0=Ţl›‚,ËFŁ~ďŢ.^PdŚ‘äDč[·F§§gÜn×Ţę3Ý(Š2?żŔ3R ŚRŹ'Š6§Z<0tÝÝÉŠuŇŔEąuktbbŇívI’ôúĽ†h· wßm {<ňrר »®qc0JŐQŕRw÷Âç>W[YąNň­wł6cáp(‹ét:˝~éű ‚NŻ×K’üz^Ö×Ecc]}C- ¤ś &Iňĺ+×ggg˝^Ź˘Ľ®×}Î)…‚ńxś[TŠÉň6”ę-$IŇXňi&IňĄË×ćÜnźĎËĽž ŚFrĎ=6éćÍcZ˘Đ(Ĺ™S-´´i„l€$(}ő±Ç ýh•ŃH¶ĘŔŮŠ<ŞŚ1“ÉT]]ăt:Ő}=G, …»Ç̆¦¦zť^ÉÉő”Ppą<ăc“>źWw‚Wa0jjjÓŘnĹQ Y–­6łj`Ŕ§‹' ljrfnν-†  ڱkעý×î@@żb C ¶ëWŔĐ `HúB.°“Çř§>U»gŹqkW°­©/®"VUU•—WŤËëcˇP8ŤlAôĂţŰżýÖĄKĂá°Ýnßż˙ŔÇ>öÉćć–őßśŹóAhoo2 MÖe6:6é™ó¸ÝîÝh%c”ŇĘĘĘ5 l«nĂááŰEb`˛,rcŚ! Qĺć›tÍşĽ^ďngUřý‰o{îęUeµIŤŃĽę©®Ťýű+żôĄ7Ţ{oŁĂađzĹ_˙“?ůʎˇą-:čP{’Ôüłp٧'öÉOV:ťm‘XĹây±Çn·WUUŰl¶”6IJˇÂkzĹbŃ÷˝ďÝţđÇîż˙łŮâ÷űž{î§'Nüćűß˙§ź‰$IµµŐeNPç“PBaŢźöz=Á`p·f¶6GeeU:+|µ¬x *+˵ 7°ń±©ůy˙ÂÂBáĎj»€1Ćüüçľçž )ĘĘŔQĺŻý?L&atôsög?úŃ•@ VUeůĚgŽ˝űÝ=]]ß(đ™@@µ°$×ĆCé­ÇsĽő­eE‘ś/żČÁö‡ÓdJáć˛h4‰D ąÝ®÷ľ÷]_ůĘWŹ9‚¸5}ý˛,—”:kj*¨@o " =85ár»ç|>ď.ÇrĐëő•••kX!ă!­máP{»Ă¶ŇŔ@Q”© —×ë››sď˛Ä7ĆŘŤŃď}Ď3= ú˙ÎŰ˙ ·‚54ŘÇĆ>˙ĐCß˙ő݇·´\PШ‰¤Őj˘‚8Z[»đńŹW77ŠgŰ>j: ˘,ËÁ`0Ť€^ŻÓtgŁ &“‰R*ËrajBfł% ~ýë_ýĺ/166*ŠŃ˛˛2ˇ@żź,˧­µ˝Éá°BrĄŠYĚű7® »Ýnźo7µµ H’ …D1Š« ˛,¦Şm±XÁ@ŠĄdzó ›ÝŇŇÚ¨50č÷-Üľ96;ëňz=Ż[Ţéfĺĺşţ~»Á Üľ”e˛ň‘C==‹~f&(Š…äĘ::J5äšE zŤĆˇwĽĂüńŹW—•éŠĘŔ¶žw“”’˛˛ň’’R‹ĹJHĘ%cńx<%©?đŘŘč+ŻĽ|îÜ™ Î3Ćž~úż Üź×O”eą˘Ş¬´ÔI)QŁCD‚ŤĆ&Ƨć>źw[¨®!c:ťPZZ¶¶%‰|߮ڱńń±”–;KKť„ ˇ„G‡Ŕ€X,›ôyý ó‰Ä®GĚOüźţÉ÷Úk±$Á$@¬0±cwwůŁŹv>đ@Ë}÷5‚üŕO 2Ł @H2N9ż†oC#·ŹŐ˝˙ýeee+˱[ŹâĘŁ®„šV5W±­D" … SwdŚĹb±˙ýż˙ćĺ—_üÇüqŢ>E©¨,s–ص«•ĘŻQezĘí÷ů˝^Ż(µ˘ě¶cĚl6———Żm`‹–˘Ńh^ LQB°Ľ˘T5°~ clzĘí™óĚĎĎżN´óŤ B?řwnŽ®ĆÇBzG0›u_ţňßúÖ®ÖÖŻĺósŞJÍ ĄfeŔhUUř‰'Ę,^E`AČç\âě!Šâäääřř¸×ë‹ĹRŮá:ťľ¤¤ÄápŤučqáv»xŕ Ş®¦Ńh|ó›'O:®z˝P[_ݱ§­¤Ě‰„°äťÂřzĄ°™)÷Đĺ›ăcSSS‘Č™űşµ@Dn`kÓéä–s¨Ć˙4 y20Y–őzˇľ±¶˝«Uk`ÜŔf§ç.]¸6>61;;»Űę“+8`ůŇ—ßö6ŁN^Ť•*XĚş|ŚŢlh°Ëňź:ţg$’řŢ÷.8ťyJÔëz’â5ęjĚ'9+cNçĺ·˝ ˙â/(´ŢéfQDőĹ•ŕ7g4 ±Xś1…Â'E¨Żˇ”ęő“É¤Ó ŚAĂGłŮ|úô©sçÎvw÷X,–ąąążýŰowuíąűî{sr|Y– ÁňŠ˛ĘšŠ’2§NŻ["”&ë=ŠÂ|Ţ…Ń‘q·{Îă™ăqwÍĘ-b±h0¸Ź'eC–+ŢŻj`{öôX,ŹÇ“[V^QV][•b` TýćóÎßóxĽ^Żg7‘[ "Ą¸gŹéľű쉉‰°,Ă é8 č“Ďç,| c?Ü~˙ý-§OO±ş:ű—ľôĆ3gf~ţóąú¨¨(ORŤČň•ÜFățޤűřÇ«z{-‚°eł ˘xë‹+Á»Đl6»ÓYbµZŚĆŐ{?…Ĺă±h4*I‰,%9cóóţżů›˙ď•W^eee÷Ý7đ‰O|z•1“c;ť{‰]Đ ŔđעśȲđÝnO vÉ5!Änw8Î Xö{|żß—s“e™R˛Ş?cƢ°€?83ă ‡ĂŔÂnçkľÁ ‡•çźź?~<‰i2« €DNú:*+-ů—ozË[:KKM33ÁźüäęÓO‡łď§D'€SC»MéľŔg±Ě˝ńŤŽ‡rX,[¦_łY{}q%c”«Őćt–ÚlVÁ¸‚4±E‘ )ŹÇă ƶţž—$Éh6;ť6“Ů$€1µvČ٦\©YQŘô¤+  Á`@–w BĐfł;%70E)Š]‹ ×Żj`Ś1BT6 ăX„á`0 (»‚,…c,UŽźţů˙ź˝óŹŁ:÷˙{f¶ÍîŞwŰro’\ä†ÁÝŘ`!!ąi÷Ţ.¤Ý HLBxBqÁ@Č%ůQB3ÁŘcl,Y.rŶdÉ*+íJ[ffg漿?Ž´Z«ŽVŰ5źÇđH«Ů™#Íwç=ç=ońz˝|é!(PÔ¤)šcČ.6‡¤ű 莯ˇő™™Á+®Č\»6+Ý"#őě"9Žs8śŮŮŮv»ÝfłY,Č 4MSU% *Šϧ€¦i‚`ufeŮlžçX+W6řî/ş\ @8âëôąZÚ%Iěěôú|^Ł^!„8ťYYYĂXśç1‹i K”f]VBóű}~Ŕçó5đ"¸cGÇ[ou¶µ!€y¨V¸Řm µ¸ŰH@&€ ´ĆĹn—ořę@'@Ki)·lYćŞU™K˛»Lű%Uí"#ătf8›M[Ż}QUUÓ4J5UUUUŁT‹ÖĂRĘóśÍfµX­«Ĺbµr„ ôĚŮůž§é?p”‚nOG»Ë }>Ż$IFĺšäÁfł9N§Ó±Ŕ˘XĂ‘ÚíBŔz ,Ü. Çq˛({::;=Ţ@ Ŕ•ÁŚV%çäIi÷nďţý~IâÍ}vű˘uG˛„ţEŃR €ŔÚťm ýYÁđŐ! â„Î 2—-Ë6Í–$•k"#µíb8„»Ýîp8222m6«Ĺbăy˝ˇ¶”RÖ|\UU¦TDĘÜM€šFŘ rĎqáyžăx“Élâ9ŽăyĎs„$=;…lňЕƞV=3+B‚Á`Ŕp»=~ż?cţžś°{g·ŰťN§Ó™uuű0˙€ă8Ž3ńŃ%0ĽČOH÷|‘˘(ŠżÓßŢî–$Éçó±rQ©ű´Jo‚Aüřc߇z’(53B/¶‘ŘýbŻ/Hw;'VŚŤďţG ÉĹVŃďęü<ď™5Ëv饙 8-–tPWúŘE{X8ťlvołX,‹Ĺl6G©Š’®i8rĚć!p|(şŻ{ŞšĽ‡ě" =ąůR@ôzý~Ż/Tü~źĎç3bjRŽăśN§Ăá!* ó C`V)—ăŰ fąů˘?ŕó>ż(J˘đů|FLMŞ€ÚŢ˝ľ>đÖŐ)&DţbkÉY»ßN‚EC_đż‚Ý]ĽřGˇÜ| âđN™",ZäXĽŘ™•ŧÓ,Ýěb8<ĎY­‚ÍfłŰ«Őf6ł'Ř ‘îő^·ńžďY †Óµ:di•ŃŰéőűÄ ,‰˘$Š˘,‹ljŠ ˘ÉÄ[­‚ ‚`‰ŔÂ}ćC ¬÷ę¤Bţ`PaSUcľ•Âtv޵µRmmŕر@S0…­ę††˝Ą—ě÷îâ•e(”Ć (.ćfδ—• ee¶ĚĚÄ÷ľélĂáy^lĚLÚl6žçM&žçM<Ď÷JVś.›=.,ľ'ŢŻ'ŇTMŐTM%ź×Żiš$I’E)ţ]A b "šL&A°Ůlv«Ő:\őµ‹}a{ŇGAŁšŞ¨L`,އ ̨eš–´µ©ÇŽŽŹŰÚ(öoČýH=ëĹ^«CкۀňňL3g ĺĺ¶™3íyyéi Ă-v1ž7±y˝Ůl1›MfłĹl6s{q„p¤ `_w-űŘô©k:ŹÇ# žPMS‚*! I˛hU” ˘¨ŠTE–eĂ‹5z@D“É.0“Él±XÓô'0¤Č™8ŞiŞ˘ $É’(Ц©á3üđŁŠÖVĺÂĄ±QnnV›š‚.(Źf&I„nű×k˝ČVźŘmY6 ČŮŮ|I‰ą¸ŘRTd3Ć:q˘53sHÓ›VŚF»ŘŽ#&{™Ů“‹ŃýČ"Çw» /D¤H)Ą”"REŃ4MUEUăšbü°5_fäłôBµ¦&…ý 4YFI˘•$*Ë(ËÔ鱗L­VÎjĺ¬Vbłqv;głqV+ÉÎ6ĺ暊‹ÍĹĹfA]V°/&ÓI3ŁJ1 ć b!$ş3Ś˘A/ź4‰ź4)~ĘŇž¤®n`````g »h`````Đa z0ě˘AFÜŤAL`Ý»Íḛ́ZÍ&łŮd6č®ü€@¨”ö´şčN6ÓTĘ*hRJUUE TUńű|˛4Bo ”R‡ÓîtfX,&łĹЦiˇr]ŁĂ.D–žźťťewŘN‡ŮŇőÉb%KCŮ;”ŇP2Ed_Ä®Bn„t•˛Dd­Ç!ŔşyXŃlwě§š†4¨(R čóuŽň§Ř(AÓ´ĽĽ\‡ÓawŘ™ŔBCŮ;±X ໸}úcŘEˇ”Z,–ĽüÜěś,łĹġîl&1”tŘĎRŻźvˇçé)ăŐý"!„ ÇńĎ[-–Ěl' ŞUdŮëőŐçÓ Žă ółs˛LfžÍ~ÂÖ}ŻĂĺ[ů|~EQŇ~fŘEa@)ĺ8’źź_P”g¶9±7Ą]ţBO ŇßĂŠ•  }FŹI»čG]Ď-„ţ '±yżÉÄqÄf±Ů‚ŞŞ˛,űý~Ă㚊PŞ2ń¬,›¦˛ź’>ZľŔ•3Ŕ@şz\ »h`  ‘Ňұąů9¬P 2·UOqeÖ¸˛¤j& IDATëŔ&őTĄšJR¤”u.C@€@Wg ‚HˇË”"B€CJ‘'9ĂÂj=ĺUi÷% r<'ŘÁnŁjš$I˛s¤AŃ4Íl1Ź7† ş…Ä,űž.0¦™AÝ•,™?ź˛F]`ŞŞĆĺď'ŚŹŠÁ€°Ř™qăÇäó&Ž™±PÁŰđµ×í–Ň4Ş©šTUŤjJ×l:löM8 \˝ á€ăúĚľĂ^`Ź5MŁL&Ŕ°3ÓžĄ@čYFçůŚŚ §Ó©iŞßď7ę&”ŇńÇäs‘¨/ŃXłŮzEÓ4MSTMŁ9Hčů…xQ‡!Žă32˛8Ž˘$Ibx„››3~Â8«­ënjÝ®xŽpjýLUiOcW Ńőa2=Í–p@0(éÓ™É&Š”V—a .‚ă¸)S'ćäĺđŘó´"@°+*˘ŞŞ˛¤H˘ĚÖy]‡Äf)ŮcLÓ4UU MěCB¤Ýž4´ZÍN§SÓ4Ż·3 ¦Áě>…Đ4Íb±Lž2!;7ŰÄóL`Ě„žMB€ ˘%EeJC+Â(BťX,¶ť”e)\`!ßk¸Ŕl6KH`)ę_5>]XmÖ9•—-]TXXŔ3kAzŚG8”Ą`‡Çëjń¸Ű|˛¤†ĹasîÜŮŐ«—ýíoĎłońÜąłW^ą:âňżß'QŠ<ĎŹduŘ/&“éłźý܆ ?ôĐďbá†eĎ/»Ý`§T“eYÓ¨Ş*á9Ž”jÁ &¶ĚL§Ďçóűý„n¤č ŞjQqÁä)“lV !Ăđ{ ¬űoÎE×Qk!ĽÝn§” ,ËŞŞiš:Ŕb˛·K3>Ł‡ĂľxńÂŮł+[Wă:öiU‚JKs{Kł;ŕÂĹn_çúëohjşđÖ[oĆčü!8Ž»ĂáČĚ̡׶"ĄT–V«µ¨¨ŘápĹFŞŞ‡}éŇKŘ…FXěFqÇ–‘‘1¸Ŕ ‹śÎ O¦L>Śő˘Á¨Ăd2Í_0×.ĚkĘqś¦©ÝŃđ\G§·ł#·ÁX,ÖŰnűŃ˝÷ţô’KÇár„BŐjłZm˛,˲ŞH”˘,Ë‹ą¨¨¸łłCĹ$ź×'!”R›ÍvÉâvA`+4Žă4­k7$0–‡8š8 8ŽłŮ„ÁćputxdYŽĎ†‹±^4EPJgĚşbĹeNÇ÷<ń9ާŰÝuuâi••óV¬XůŘcŹĆíŠÝÖŃš™™ép8xţ˘ů1ĄT–%§Ó™ź_Ŕó\2Ďë“ ¶[V6}éŇKÇíŢI‡1„2oŢü8 Ś]×fł "°ŚŚŚĽĽ|ŽKƉ—±^4¨ŞZ\\4{vyčsH T¶ÝîŽÎIÔÖÚ7ľńťŻ}íż§M›Ď‹†ňŐ,K0¨H’*6Š˘@~~A đz˝©1‘@ Ŕşłň»ĘŤ†¦i”çů„ü"0 „X,ÖAVPP:;;“J]†]4Hs(ĄV«uńâůN§3Ľ»!„#ÄíélosÂ'$űAÉČȸőÖŰîż˙ľ„\,‹ĹbQ” (Š,°!I’Ĺb),,ôx<Á`0ţĂK xž_¸pnFF„oś1ąŰ=”ÇĹp—zHśNg˘Äb±ÍfUUúXQQQGG‡$IIb ?ŞAš3~ü¸U«–fffvżĐµ(ôůügÎśw·wF=Ę42–/_· 0™Ě‚ „?žX‘謬ĚÜÜĽŽ-9QUuܸ1—_ľ| µą<,*%dcZ±bUbF1›- ,33#//?<Ź(-[žMô bĹe—-ĘČp˛ŻCŮëŞJš%%+qÄDD¤˘(öZ ˛#·Űť<óúB)5™L‹/p:ˇŢ‡ĚŰĚ&Ir|nwűąsçÎźŻ?ľľłłS>źOěĆç󊢂 8ťB7N§ÓéĚp8ăĆ•ŽW:a„śśÜ8Ś–A©6ŔÚŰŰë™0™ ?ŞA:˘ŞjQQÁ‚•Ç…ŇŤŮ×--m^oĽ#kR B!ĽÝî°X,˘ĹR"˘$IYYŮ6›ŘŃŃ9Ęw ňÂ]q§ZsłËăńĆ.ÖÔëőÖÔTź9óI}}}]Ýąóçë˝^Żž7*ŠŇŮŮ9ČăĆ•Ž?ˇ´´tęÔił»=Ăчăx‡Ăi±ű ,;;G–Eʧ#ę2Ö‹‚š¦˝ôŇßwízO–ĺYłfßxăM‡dY޶mËţýűĚfóĺ—Żąîş˙H¸e´1gNEII!sg!Ą!D–ĺşş&UUÓ˛c\Ś@DIeY÷n™L&žç\.×čěΡ(Ę‚•cĆu·cŐA ,n@QkjVWWUU}|ňä‰PĂŤŘÁć‘Ó¦Mź7oAeĺĽ9sć BôËą±ßb µµµ©Şëh2v1Rńź˙|©¶öč7żům›MŘşułÍfýú×o€çž{ćÂ… ßüć·Ŕ† _{íg–/_™čńŽ"V®\ćpŘB…E@Ó´ĆĆ–ÎN_rZÄW_}™çů«®ş&ŃMÓx hŽă¬V«ÇăU9ŽĚwş|ůe‡ŔV9]ek4­±±ĹďŁx-D<~üŘž=ďWU¨­=ŞŞj˘6Ţ!&“©¬¬|ŢĽůK–,›>}Ftď8"RJűŰ펎Ła#o˝ő»·ÝöĂ &†«„Rí»ßýöí·˙hňä)đî»ďěÝűáŹüÓÄŤt´Ŕ|§‹Í­Î5Ť-•úúUM@iě#GsWVV>řawÜq[ ŕě±?Gĺl±€–$Q–Ąđ×­V›,Ź"źj^^ÎÂ…óBł«pɲ­YWssÓöío˝őÖ›uuç’!%BČřń®ĽrÝÚµWGńĚ”â@‹łOŐŘ_ŚśŽŽŻ·óŕÁęßţöAUUçĎ_pýő7Řl‚ŰíEqüř ě°ńă'üóź/%v¨Ł„©S'ĎšUŠ}žçš;:|‰RuuU ŕŹ–%‹îن!„Ád⑹ @–%“É\PPŕrą’í ]TU ,ô"X{{ÇČwQĹ÷Ţ{÷í·ß¬®®B6I>X×—§žzâé§ź¬¬śwĹëV®\Ý+ľ428ŽŘíö~VXXŘÖÖĆf!#ţ taŘĹŸ\®ßüćaUUźzꉿüĺąoĽ)”yž7›Í€‚ H’4ÔÉ F„ŞŞ Ě--DZşS”Ňłgý~rúN{a±X†>(Ѱmž7…»ĽTUĺ8®¸¸¨ĄĄUUŐt]5ö" âŮłŤ’$ŤÜ"ž9óÉ /üő˝÷ŢM•g3Ű||ŕŔÇ7nX»öĘĎ}îó“&MůÝ7›-ý¬¨¨°ąą%n Ń »!¬Ąő˙÷őV«>ó™Ďnܸŕ&›MĐ4MQÖ«]Ev€A,`KĂŐ«—ggg…ć×ÇŇŮłő¬ FbG¨Çŕ]rÉbť”d0źÇ9ť˘Řăň˘”Š˘\XXŘÚÚ˘ŞÚŕoO94M[µjYvvĄ´»őX—ŔeD1\xâÄńgźÝúţű»S·¦$IŻľúňżţőęŇĄËľň•F¸űHáyľ_ą\­Á ‡ą—a#$''Çb±hš `J)[#feeŮ펺şsl±®®něŘq kúB¬YłÂáp@÷–ŇŃá­Ż?O)‰]pUŐ‹ĹRQ1kđĂĘË+ô|†żđ…/鹨γUUŰĚ™±r·˛1‚Ŕó¦@ ËGŤH@AAa{{{Úd7""ÇqW^ąš ,ôKutxëęę 1ElńСĎ>űĚľ}%§żt¸PJwíÚą{÷®E‹.ůĘWľ:{öÜZG»ÝŢW`ůůmmmqČn䯻îs±ľFZBqąZ«ŞĚśYćóů¶mŰ:gÎśŠŠŮ„ŹÇóŃG{çέt»ÝĎ>»uíÚ+&Lčń¦”RłŮ´~ýZ«ŐĆ>€¬Ć[CCscc Çń1}4ź>}r۶-ë×_5řUJJJ˘ŘpXĎŮé=÷ü´˘bv¬gc„“‰7™LŞŞ„쪪fffŞŞXşđ’ă¸Đ“«ëŃĄŞŞĂá Á śş˛gîźŔ@Ɔf—Ë™Ŕ±ĄĄůˇ‡xę©'ššš˘>椢ąąéŤ7ţőÉ'§ËË+GdJ`>Ő~†ŘUv<pś‘§ajhšćp8Ö¬Ya2™şb€¦©'Ož Äřl("buuULÝ•‘ÁĽ:=®ŃBÓ4żß^ Úfł~Ż7a‘Ŕ#Äjµ®]»’íŚ@Ŕd9"ŞŞúâ‹/l۶…•d=‚pýő_űÂľú´–ÝŘŻŔ::b2 6ň RŽă®ąfťÉd s#âŃŁ§b74¶łë÷űÂݧ6›MĹŽŽDVóŠJ©ĹbąęŞ+ŔŘŽ5Xġ§UUoܸáěŮłŃlĘ0qâÄ[o˝mŢĽź™Ć^cТ1Ŕ‹0™ ?ŞNť:éńxâYT× _Ńl毺ęJ‹ĹLB(Ąš¦=zJ–ĺ¨Ě«Şř|ŢÜÜÜÔzš—ŞŞ€?77:’f{o‹EÓ´°âěŞ ZóžçÂĆĘ==zŠe ÷lííí6<ü§?ýŃăńÄb´©‚ÇăyóÍ×*++­V[d'±X¬}Á`0şźVŽő}¦jkŹž;wvđ°cÇjřx±¶öh}}]´Ggp„ŕ5׬łXĚá÷ëرSš¦EË}ŞŞĘüŠ%§¦1˙űßęëëŁ~Z‡ĂžI"ËrVVŽÝ.¤DČ%Ą”¸öÚő‹9üőcÇNE‰űöí˝ůćŻmßţVôĆÚlßţÖ׿~ýľ}{#Đ›{őXff¶Ýý­ŁÝ.şÝíŻżţÚČĎóÖ[o¦ý^za¤őëŻ0›-DZzÍŠ˘9r"Śfčă˘E‹+*f=ţřcQPú ¦igϞٲĺéěěÂ`ĐŇÚÚâóµń|Ĺ2SÓ8D'bˇ˘Tµ‰+Ďç›LnŽëčäůMó(J dŤ±Ů4źĎýŐŻ~­¸¸Äfëß{^[{Ôét––ŽŹáo›ľ,\X9yň$MŁ,“ Ź9á÷b}ĘbMł˛˛Xe†ôŁŞę€Óéś:uZ쬥Ôçó†7&´Ů„ćć¦ä¬ę˘ŞęĄ—.š_gȲ'WSSë…™ŘáőbęÔÉ}&ŠĂu!">óĚ–­[7'§íON8Ž»é¦oţçţ[ 뽚Fű ěÂ… ,•y$¤?ŤyóćoŰöL ŕ§”~ôŃť;´´4sÜś@`5âŹ+Ěñ‚})(A\­( ( ]¸Pýę«ďĽóÎvEůă„ Ó*+§Ż\ąśăȱcµßřĆ7Łö‹ŤJJŠ++焿R_ß0¬g–Aü!„đńÄă ço»íŽá~˘9®57_@„νŇ|˝čóůzč7Á ßŃ!«ęUŞz#âB>öźLP Ůk2=Ďq/fgg8ťä®»~bl@ę‡RjłY?ýé«yžg-Ń ! š=4] ˘¦©áf,©±łł3Ł Çd2]wÝ5!@ccS]]ă°VŠÁ üË_ŢűÁ» ßidB–,Yöóźßk±X‡kĎTUé%0I’<ĎHěb:ç/ž?ţąç^úë__özçz<7¨ęJŻŔĹeşJx€ń”^­i·úýR ĐţÚk›[[Űňň˛ł˛˛c?€”GÓ´«Żľ’íײd˛ŽŽŽS§ÎŤ0O±Şę@{{[AAA˛yó’¶ĂÚŃáÎĎ/Éy!Çó<JaTUŐéĚP%¦ő-ősŐUk{ ěĚ™óĂĎç˝ë®;öď˙(fcÔ××ŐÔ\ľ|Ĺp»Âń<.0‡Ă©(Áđâ8Ă%ęŁÖÖ üŮŮ=–ćđáCO>ůÂ+ŻĽWW÷ť`đ1U˝€­°\Ó®×´oŐŐŃ={ţpčĐ‘Ü\{aaačÚÚŁ’$fee%nIÇŇĄ—†şdȲ|äȱö!zˇłä÷čŁX|śăxVGŤ}«ŞJVV–Ďçů>ĐHPU5$0öŠ,ˇ×ę/Ž.Wëí·˙řńc1ć(˘ĄĄĺĂ÷,Y˛Ôn·ë˙lBxŢÄ<ěUU˛łłýţ@¨/ŘpI‡Ľ~–€Čžž~¸çÎ;ďýóź÷ž:u»,źDĽŔ™4› ńfI:qâÄ-řĂ+wßýëPcn#ý1UU‹‹‹&L@Xg JéˇCÇř‘µYşt™(Šűöí‹ĘPÓ’÷ßß-BAy&Q’¤ÂÂčNKMăĆŤ 4M;tč8ĄĂxV466|ď{ßůä“Ó†ű4* â'źśţŢ÷ľÓÜ<ě'a_äŹd0)ż^d “'O~ä‘§÷îíččŘ,ËwTÄË_:\0KUżíóŤ?xđ™ŞŞŹ˛ł­oĽńş‘ţÂl6Ż[·&lʇ;vÂďDĄŇ!dܸR§Ó1B'aÓÖÖvÉ%—Eĺl,çĚd2…ŞĆPJM&“ÉdNH§FVőĘ+/ç8®űęäر“’¤7U[[[ż˙ýď¶´[ÝQĆď÷ďÚµsĺĘŐĂZ5€ŮÜ[`®(¤D.6K™ˇŞßđx ÷ď˙ĄĂa[şt)+÷gpŐUW:ťÎµˇáBkk{ ç—””FqŠ‹‹§L™ Fł®)!$|ŁQÓ4‡Ă Žh(24M»úęuN§3ôJCĂ…¦¦Výóűý?üá­¬Ţ=÷ŔŞUđŢ{1ęčÄď÷8°Íš+ő—I"„pÇq˝ćd4¦¶]TĺŐW_ýóź·Šâ§Uu#ŔФ\ É JçÁwßýsf¦cܸqqh´¨Ş:}úÔ©S§@÷:#Ô͓֞x‚<ĎOPÚŢî¦4šîÁţöÔěělżßń>Pd„ Ŕ‰źč_)ʲ|×]?d{Š÷Ü÷Ţ «VÇ{÷ĆtÔŁ ŹÇsřpÍęŐkx~ Ćűěd«ŮŮŮ>ß°›ťĄęţ""65]řůĎóöŰY’TĄiO,Xµ ţýo¸ćš”óő€őš¶I’v?÷ÜńźýěľúúúQ»ca·Ű-ęiFC9věTÇ3Ú°XĚ3fLőůĽŃ],†°Ů“©+gÁ`<ŰÔPJm6ۢE BźŻá ŚRzß}÷ÖÔdg=±˙{¸çžhw55ď»ďŢáI–Ŕ°^”$ióć§žxâń7ß|]’Ä3ʆ;[|}řĂÓ(ĘÝY«VÁ¦Mäž{Čĉ°p!yüń.ŃĆfř1‚PzĎ—óţű÷ddŘ'Nśč!%€+Ż\îA=qâtg§ĎX,ĆDt:3}>_cc3ŔH3Ł"|ŁQÓ4»Ý.Ër|Ľ©š¦­[·–yPŮ3âäÉOÜî=cm~÷»‡˙ýďíˇwěB`ĺJ V­áMÎźŻwą\K–,}jěŢÉćĂĆÜőĂň¦&ĆŹúüóĎą\®˙ř§—]¶ôĹ_a úĄŚcÇjE±+‡Áëő>öŘSď˝w.üâjfüţđ˛nË@‚ü|čě„={ Őě"ĚĄôşÚÚ gĎÖΙSÎ"qÂ˙éŠŞŞĄĄă**Ę {·Ŕëőť<©×Áe0BrsłgÍ*óx<ŤŤÍŠ«ßěÎ"B¨Á¬¦©™>źwä5J†¤—Ŕ|>˙'ź #vË–M/ľřBŻ™idFqĺJĂ4F•“'OÍć9sć+s —Ŕ2ĽŢÎaŮĹx?t(Ő>řŕýĎ}îó™™YĹĹ%ë×_˝{÷®!ßőĐC;V{úô©źüäÇŹ_!I{§‡~zűí BČőřłź‘ââ ? N“ĺ˝55Ó~ůËß×××;VűŘcŹFX•Bp·bĹŇĐ·”ŇÚÚ“ ĎčKJŠfĎ.okk~Ě{OÚl6žďzň¨Ş¦ŞjffVL÷;nĹŠĄˇ« W`űö}´mŰÖ~tď˝đ‹_"÷Ţk8TŁĚ¦MOíŰ7Ľ˛ áÓ4Ę6¬3Ä{˝ŘŢîţ׿^ýĘWn`Qřš¦˝óÎŰW]uÍ oÉËËźC€ŕ8=›lÚ©ąËÎ\MűňÉ“ż–$7ŰI?4M»öÚ«»ËT¨©9Ş?Éş/%%%źúÔµ6›`±X˘•śžf ˘Ĺb™3§<''Űçó~MÓX¸Íŕ45]={ÎÍ7#/oDőD€ţâfabT7őSźşĘfł…Î\Ss4š1$[¶<ýÖ[oę9ŇX5ĆŽććfDś7oÁЇvĂq¦^Ł”ę1® »±Z­Ű·ż]^^‘›› ŐŐŐ^oç˛e+ú=XUŐÇ{ň㏩,żP2¸‘«©«Ż&cĆtySÇŤ3gŕŕÁT·‹ ‹Ň/×ŐýˇłóBEĹŚô‹CÉËËť3gVčŰÖVWCCÓMBČřń Ł8‡˝˛r–Ăa—ĺ`G‡‡ŇŘŘ ‡´I%%%ĄĄĄQ1]„Më麎HYŰ čń_âÓ IDAT*\UŐŔŘ<Űĺj««ÓU?ţx߆ żŐżÎ0"Tc!äđáC%%ctzSyžWU%\`~ż?Ľ§Xż$Ŕ.B<÷Gíť;wn{»űŮg·®]{EßxTćţÓź6×Ö–â‹:ĘśDrčŢxcĎŻĽhyňI !őWŤvMűŻóçźnl<2oŢ,ć@Oô˘ĆúőWX­=…-ŞŞĄŻĎ8ń bnnöś9ĺ‹EÓ¨ËŐĘqśßhksÇYTh6[·Q(ŐxŢŠ$Ś ”Ň«Ż^.°ęęCšFőŘE·Ű}Ç?†·ńi¬c"îßżoýú.ß’xŢ$Ë Ěl69˙KLžĆŚ3Ź?¶e˦ݻw.[¶bÝş~: â¦MĎUW›eůE«NĂvţß>‰ÄŘE“É´`ÁÂkŻýĚ5×\[^^’ě[o˝ŃŢŢĆZŰüío˙x˙ýFY~Ŕ>,«¶oÜ|3±XşĽ©‹ÁóĎŰťVŔ¤i˙ŃŇň´ĎwvöěrHýĽFJéÚµ«Íf3ÓĄôŕÁ#łŚňQNš4qĘ”‰ěĎŰÜÜšş\nŻ×ź¨żąŮl-Y•8łŮ Fm—ńňËW†Ęń#bUŐa=gFÄęęţóź"ľ®±jŚ„łgĎĚ™3·¸¸D§B¬Vk( ĚdâUu°:ÉUőôéS›7?-öăÇOľńFu0ř@Ţ0—zÄë%¸fM׍çaüxňBďdÜ…4íłçĎ?lµAéOúĂÂ…—äćĆ0/¦ٓ͜‡ÚÜÜâvwF1ę "ĎseeÓÇŚéJěmkskšJQĄˇ!†ŐmôŚ- RJ»&őv»Ýç‹‚ťÖ4­—Ŕššš].]č5MýÉOît»Ý#€±jŚxüxíµ×~š5¶ĺ$ËŰ'v:@`]Ć䲋“&Mv8Ď?˙Ü©Sí˛üŢ6±oüç’Ü\B ¬ öěÁÓ§!ő˝© «Ş~úřń<¸÷˙7µóŻĽrŤŮlę^,bMÍ‘tąGÉ…Ĺbž3§"77‡}ëőúŘ š…ŰÄ(T?6›5„n˝¦i„p#Ż G)]żţ łŮ„néšüőŻy÷ÝwF80VŤ±ˇŁŁĂjµÍ™3WçńV«… ŚÝzMÓxŢ4ě“«n8!¤ĽĽÂlÎżPń#R–áŽ;.ŠÜxäŇť0™€REůŤ˘Řív{˘!š¦eff ‚ )Ąxî\ť¦Ĺ{‹+íAD»]?Nff{E%źĎËćŃ>źßçó'v„ÇqϬ ˘h™™™#?sNNăÜą:2äb›››ž}¶˙Ň6`ä5Ć‚gźÝÚÜܤ3Nz Ěáp >ńJ˘ő˘$IżţőďüţGľ=˛u9vŚ\vL™ŇµËźmm°woú¬E©TŐŮű÷˙xůň%V«5ŃĂ6”ŇŐ«WŘí]ąáxôč DVÄMUŐ¦¦Fý; Łśś®ĐSö­ŞŞmmmG!xţü…!«Űč‡e5´µµEPÇl¶0׳”j¬ĽĂHƶjŐň^Óy¶‡zŕôéhvq1VŤQGUŐ––ćŐ«×čą§hµÚB@Vřf XłäZ/>ůä6Ż÷ Ä/÷[Ńf¸|˙űď}、  µ+ŕ„HŻ”¤Ż<őÔ¶DŹ%Á–““ú¶µµŤĺ ÷<=ôŔcŹ=ę÷űҸPd bQQÁěŮeámwZ[]<ßŐ¤^Ouý×ňű}6<ü»ß=Yś^w_Ó4§3#bWަi‹9'';¤ŠÖÖ6ť ůřăý»víŚěş`¬ŁÎ®];«««ôÉwĂľ%„hš–••=Č[’Â.RJßyçßGޏUőŃhťóŘ1řSw4!“żúUş­*ĺWÇŹvěx/ţAö#dѢůlÖĆ|\gÎśŤŕ$óćÍę©-˛,ßtÓ×Nť2ŠŚwÁ:"Mš4~ćĚiáëď––ÖTĄ­mDA%áTWWÝtÓ×Axę©-S§N‹ě$WvFY#v„ âÂ…óşł ‘RŞ_`۶m‰ě˘Crď˝đË_v}}Ď=†iŚ[¶<­˙ŕľłX,Í–’ÂŹZWwî©§ţ.Š/G1ňâĂáƉÝŢĺMť;^yššŇÉ:ňŞşş¶öÎK/ťďp8=a°xńÂîG6ĆĆćČr-Ë’%K'NśH1ŞŰ08Ž++›6vlIř‹.WbŹËTguť45]X¶lŵ×~&ä°.l˝Čj‘tď8ŁĂá˛xrżPJ/»ě’0‰ÍÍ®!YDź?şŐmJJJŠ‹K†>n(8Ž“$)7hµÚDq°xú(-7aBO±:&0=oܰáᆆ†á{X{ŤŃĄ­­íŠ+ÖéTĎóL`ě[łŮę÷÷Óötňä‰Di0ćÍ›lM Š˘Ď0 ÜDzš•uQ0g ŠbϤ››]‰ÝĐ\ě8Ĺ@ŔYÄőĽysXb"J’ÔŃáŐó®ăÇŹ ·Ď_d{ŤQdßľŹt¶Íá8îb9 &°„=Ź6mzňŻ}®ĄĄůĄ—^ ~ٰ M[oEJ{ş?đIŮě†ţAQ|쥗^mnľ°uëć­[7%s„ŞĹb±ŰDdj·»3Ń#J1++sŢĽ9‚pQéHEQ<w¸#Áĺrë\<%łŮĚ©¬ť¬ĂáVD"šL|¸ŔÚŰ;tľ÷/‰_›±×E†uă¦iZFFFż‡%ĆŹZPP°|ůŠššŰ¶=ŁŞ˙xSĚ›¤®ŽĚłgwí2fe¦‘;bsµÄ@2ŹîÜůÇiÓ¦}űŰ˙›ź_č! HEEYAAO‹˘ÚÚhÄŹZŠŠ **fLôRJ[[],+˝’đę6Cbµ >_gwˇ’®î˛úßN)ť5«ĽŹŔ†đÄ"â™3źüńŹQ úÓ±×!őőuË—ŻĚÎÎŃŁj‹Ĺáy^Q”^ýŠ™§ał —^zĄ™”~%Ö×úńŹ1Ľ&ţwŔ¤I铳Á ôË”f,^|©ÍyĂŘ80uę¤Pjgg§¦Eły¨'L(-+›Ţ×ÝŇŇn ©ÉIl9Ž3™řđú^@Ŕnwč?"†ťťťş’b˙ö·çCďŠĆŞqä°ĹßË/˙Sçń„@/ő±0»›6ýUQ¶!^ëkŐŐÁv)žřÍo’ôŃ1ëĺŹ/Ľ°=i3ů(Ą‹™ĄÓ1»črE-U`ÂRfÎś>qbißź¶´¸zÍü’ˇşŤ¬V+¦©š¦9ťĂ´[H`”RťĹŔŽ˙Žp¸#ĂŘkŚ oĽń/QÔŰ,\`ŞŞ ‚Đ7Ď-ań¨UUöîĺľř„†~ôüבěě.ojy9ěÜ gϦ“u$~˙cĆpcĆŚä8Dôz;ôŁŰׯżš-ńÂ…ĆÇlË–M˙ú׫őőu3g–±{Y–7o~ę‰'óÍ×%Iś1Ł,âŐĄtÎśYyy9ÝĂ€Ó§Ď„‚ †‹Ůlš=»,??·ďŹÜnŹŞ!liőę6±Ăfłz<Řýd ¨išž‘Ďž].°“'O2ôÔűö·wîÜ1’1Ź#Buähš6n\é´iÓ‡>@l!1oj¨¤8#‘~Ôż˙ýő@ŕîx]ŤHąë®‹¦Ď7“)ÝĽ©’ôŕ?ţ±}\.×ĆŤ~üă;Ă»­"ŇGů]iéřŤ{ŕ‡dYeqýýď/x<ž‡ŢđÓźŢóá‡{ŢWÄcCÄńădž$ŘŮŮÉŞcF|ÂQ "ÚlÖůóçdg÷ÓbĚçóK’Ř+i'ŠŐmb ĄŔó=ĺŚ%i®ÔŔ—^g嬷ß~3’FcŐ8rtŢDŽăá{ Lz‡b&ŕ©„GŹnoçÖÄóş/ľďľŰő5!0{6Ü|s<Ż–··ŰXLż?ÎĎĎżőÖŰ~ň“ź‡żčrµą\®Ďţ‹‚ dgç\wÝçŽ= ôŢ˙Üç>ź‘‘YTTĽ~ýŐ»wGnyž3›Í]NTŹÇDŤ¬¬Ěůóçô[qM–^og/űÝę6q@lĚÓE)ŞŞjłŮ†Ü`¨!€±*á:ˉĹcŻq„TWWéŻ$ŢK`}ł5c_|ń IúiTę ‹[oEEéÉŮřĺ/I^Şö.ěDîřż˙{sX»Ś………›6=ę|čPMIÉp»=˘(Ž?6~ü„ #Ű”)“ĂƉ.WŰpĎPUuŕv÷rzŚ*±  îÜŠPŻÝp4Ť¶··q×Ë.65ąâücő:vďŢyčPMoĎĘʤTŁ” ‘eyČ•.ĄtҤ‰áĐ)°íŰߊÄMż«ĆaŰÉŰ·żĄóx&0V1€°ÚOąRc3ÎÁřä“Ó.tĆ(‘PČáĂäÉ'{ľĎË_ţ2!ĹŘ~ţsl ›GŢ|3Ěš•N»ŚŔŚř˝wŢŮ«˙=ěiňÖ[oŢ}÷ťšFď»ďţI“&Bl6AÓ4EQşź5‘—r€Ś '«N)vvFâD­¬ś÷ç??uÍ5×*Jňf¦ÇBČŚS'M?ĐÍÍ-} &°şÍ׿~ÓĆŤś2ejdog óSTQ”ľ;@}acÎ1ť;~ĽöÜąs‘Ť0F«Ć9wîśţa ,Nv±¶öčž=ďţ@ pňäY€«âsÝľ´µÁĎŢ“ła6ĂĆŤé¶dT”›öďŻöűý€˙vë) ÷Ďľ´{÷λďţŮ˙üĎÍ99]!ŽYYYv»Ł®®ëÁQWW7vě¸Ć‹…ă¸îĺ"ş\휇Ąz/[¶b֬ټ=Ea5\fĎ.+..č¶67b?ëďDU·™7oţe—-!¤·GW?”RDĘśśCV$·ŮllĎž"^L1VŤłk—ŢXŢŔŘŞŔd2%ĆŹúŃGÝ~ű}ô÷Š2 ‘Íž|ęŮe\˝ľđ…'8Ái>x˙í·˙ŕСš!yŠ˘Ľýö›?üáť˝Ě!dÉ’Ą/˝ôwżß×ÜÜüć›˙ZştYَ”†/t(Ą˛¬FĐmqt"¶yóf‡·«ě…×ëSąďë)nŽ tĹ 2Ë*Ë"ÇqěN™21ô5Ą4čçŇ—ŞŞ#eĚ0VŤ‘ˇó†ň<ďt^TFX’.ŞŇlęó–PVV^VVî÷ű~ń‹ßČňŐńąčU…[oĹwŢé™Éţć7ä•WP’ =úl ‚,Ż‘ĺSżýí=ý§ÜîvQo˝őCŻÍć'žŘź˙üźyfóí·ßd2]~ůÚeËVD43f {¨!˘$ ٞ×h333fÍ*łXú‰˛a˘äóyűÝqLňę6CÂó|¨5±×ëµŰíÔ%®ŔXIńÚÚŁŃmÔą÷^č˛ě˙żřE‡“ÔÖEŃfłé‘}/ŮlVIęšNĹÉ.2d9ŘŃá¸%ží—wß…_„/~€<î¸î»/ŃĂŠ&?đx~×ożbBČ1cž|rs蕢˘âÍ›űŻ˝kµZoľů[7ßü­ŽF¬ˇÉľßŻ·2Ĺ(§  ż¬lÚ )žŞŞşÝnŽëçŔŞŰ¤®QžçUU %řŰl v1ŐÔLňŤjfţó®U#¦qPŘNaMÍÁK.Y¬çřŔpl6!dăwłgχ”~Ŕ’ ˲»îBQěń¦Ţy'?`LCĘAĚ”~¦¦ćp˘GĐU÷˛gćv§Şs/n bi銊EDlmuń|?{xÉÜLJ'„ěě,D`Ď J©Őjäř^Ó3!H†´Ĺ!1ö‡‹ţŰ!„Rzg»xHUżĎ+ 9s†<üpĎ÷v;<đ@â­uQŐ/íŘQ=ôq±g„±”ŇPąpźĎX/›»Î1uňä‰ŮŇŇ:ĐĂ?…ŞŰ ÇqNgFřÚçó÷ű išVZZĄ4ôÔQŞŞú8ŠŽĆ^ă°Đ[ívG¸ŔüţÇue1ĆÉ."˘,Ë--ő âsE=<ř ÖŐő|űĺ/Ăňĺ锳±ňÂ… ˘(&(ů0VŤzĐsXśň4$Irą*ăsąaQ] ›6Á7ľ@½÷’ď?ĺí"Ěoj:C)M`;§đ2Öŕó o5säČỢ‡ĘË+*+çE‰¦´těäÉô”ĆvąÚą•¬şMR-GxűśÎ —«5ô™LýŘE“É.0Ż×Żg±ľľ~X#IŚĽĆ!ŃsťÎڶ¶ž©$Çuí˘ĹöqÉĘż‰b ®®N®0%C†F_~úSt»{Ľ©ßůĚś™ĐE`±XĘĎźŻŀ΂pQ'+«gď§;,bAźĎËţE{hIÁ´i“§L™¨Çµ´´rÜ€mś“3Üf„·Ďb1‡˙ľš¦ö=&Ľ ěŇsć]/2ŚUăŕ輹„›í˘Z`ŞÚ5­ŚůzńŁŹ>zć™­ĄĄĄ˘¸<Ö׊ŇÚ ÷Ţ‹Ź<š–Â#Źőë;Şč ËĄ›7?ÝŇŇRYYyŐU×Ä%%…”"!ĚŻ««ëz8óćÍź7o~ŚĆ–@XŐÓňňąą9zŽoiq±ž8śŐmF~űÂy˝>ž7ő˛Ž˝¦çśmmm^ojOłŚUă@ ˘×ëmkkËމ ű°ô€[»XVV>sf™$‰üăăŠ2D”]bůÓźŕ[ß‚˛2B`Ý:¸î:üç?!9¸úQŐŇŚŚăwÝu·Í&$äˇi6[şłň@Ót=¶FV«uöě2§SW'z·ŰCi?KĄiPÝf`08Ę"#zŮĹÖĐŞNÔpŚj8ĐĐP?¤]ě¦K`ȦŞjĚ·ť!‚`- X¬čGUˇ×žâĂ“tUJ® m‚`OÔC3Ľ_ `Ł":ťŽůóçč4Š>ź_’Äbm ĂmBBÂ÷)Ĺľ[Ś˝¦GçÉÖ[*bŚŐĐ‹CŠ"„„§pŚ––F€éńąV¤·Ţ"˙řGĎ.ă”)đ$tDŃa˛ËŐ’ŔË[,ć°Z7©”1#ňós++gY­C„ž2d9čővţ¬Oę6 …€`Pfmó‰@`ŤŤ ŃbB1öűĹĺŇ;Sě%0“‰‡řŘEUUEŃ P‡kŤ;îŔđ0ď»ď&cǦzÎĆXźŻmčŁbFw?)DDEívqěŘ⊊™:{lJ{{[x@o_’3Ü&Ştg`PÔ4µo‘ôćńx˘=ČDb¬űŇŇҬűŘ~»čv·;‹âpˇ‘sú4üţ÷]_đë_§ú4śL |„?Č$IJÔ0’ÜŞůUîëöö¶!WéTݦ/„A° ‚„p„ô~dőžuł(¦[…^cŐŘ ý·¸_ĹĂ."bF.îżĎźďń¦^=\ziB4bx~lGGG˘®ţśn’FÚ€$ś¶msöí·uüţ÷z*57· ˛§ČHłę6ýÂó=ŽSJµľv1éfÁX5^Śţ[ÜŻŔâa%ITŐT ¸ >ůÉOz>]„ŔŁŹŽKioj¶ßźČ¨ôîb78šăQÇżú˛­Ą3ů˝˙λÔA;˙µµą‡Ü*Kăp›p8Ž «ďŚý–5®ŔD1UGĂĂX5†Đ‹űX<ě˘(ŠYC—4lŰ~Řő5!°hÜpCB42(Ű5ÔH]UŐGůÝ-·|'ôúC=pŐUkÁ®*Ř/żüĎkŻ]ź~ćSpµŽő˙±Ż bĆó ~ýFy€Ź®×ëS”ˇ‹™±ę6Ńe|9yňÄęŐËV­Zú·ző˛ľĄ'¬VkxŔö€úmÂ.°Ť7ÜrËwBľĺŔŘ߯«ßB*b¬€˙äÉáęb˙t ,uŕDQ¤4©“{·Ü‚~H8“ć׿&˙÷ŘŮ™č‘E„¦9“d‚Ś ,|íµWdY˛X¬řŃG"bMMőÂ…—ŔˇC5óć-Đ–’BLݶ…»xj"ě|/xÝuâ /Ů}4DQňůĽCÖíK›p›íŰßăy~Wpx¸ !0ř_çĎ_đÚkŻr/-X°şvâ„޺ҩ‘×~!oż˝c 6,Ś~źőb@ÓRi˝@öď'[·ö|_\ ?űYŞîâPš‘Ŕő"†ˇŞZeĺ|JéŃŁGŕÔ©S°~ýŐ~¸‡\SspÁ‚$ęĐ9r1·ę@ŢŹáâč‚h=zÔtĹľ†ĆĐ‹ŞŞęě5źśŐmbŮÜóŘB„ľű‹áŁő,ýânza¬őßbžďů…C»xęÔÉ×^{ĺµ×^©Ş: Ş©ř“ź\´@Ľĺ>=E·]‡b÷âرÚŽťNgYYyMM5|řážK.Y|ŮeKöěů‘¶´4·´4/XpIčř#G˙ĺ/ϲŐŐU‰xäpŠ2mŰć~jjnÖ\ŢQ{ ±µŐĹóee0Xu›(4fŚđ&šL&Ö6VÓ¨ž řý [[[ŔŇ2|ŻQżĎ‰çůľ‹ˇUQ¦?DH˝Ť¦&¸ď>üíoY =°Xŕ§?%_ýj˘‡5|TŐř“áYŔćb ,Ş©9{÷îůüçżXY9Ż­ÍU__âÄń˘˘â±cÇ„ŽgU§6Üh0ţŐ—m­­ý” ň~ćUëŰźA™4IĎňOUµÔ ·ü&®]»2ô5!ä‰'6M›6=ü•P!FöÇ<)e¸KozŐPőx`ăĆ„(ްú·.0xňÉÍáčń@„úbhËĘĘËĘĘ`×®÷Nś°%4ň#B}nľ¦Oر6m¬psŇb2ĺĎźżŕňË×&äęá2D Ŕ-\¸č…ţŇŢŢ~üř± Y,Ö îŮóAccĂÂ…‹Â˙Â)]4ĂĂmPJďşË˙Ą/9>űŮ!v»;R«şÍŕ7qđýEÄŢqŕ}׋}F!śÝnO`ćR< í5@Ž®ői‚Ýn}ű‹˝żăÔOĚf3ǥ⬟( Ü~;Ţvąď>ܱRŃ(ĎwÂ]ŕcĹđ¤eee<Ď˙ĺ/ŰĘĘĘťN'\zé’wß}Çív_}*ţöaę¶-\w¨í tŚŻěŢeßů^ ľ^¸ĺ{Ł»şMoTU˝Řňő^/Ň>Ż„ ,##úLF‹]„nÓ8ş˘oô?ń4Më+°xÄÝ‚Ŕó©ýÚkdÍر¤¨QŽó„×VN " IDAT\ôÁ»/ľ !…“'O€ěěTĘçD<Ü&„âtzš›ů°^€Ögž 64ňO?męSX<-«ŰôÚ_ĽúęOÝqÇ]á„·T˛28!<›7„ ňó Ŕ˛˛˛Ŕn×ŐÉÄ ua·¸ďţâ5×\«G`ń°‹‹ŐdŇŐ=Ŕ 6t2weB@Dö0™˘ |öł˙ńŮĎţGřaO<1´I!şŞŰ !”ç]„ă.ęí@­ŰßV>uMđĄ—,=ŐÓŻşÍ´iÓß}w÷‡‰˘Ţąďz±—Ŕ‚A$„ô!$\`Iâ>1‚ L›6}ÇŽ÷‡<˛_ĹĂŹš——Oi"[Ťz:l¶„=4Ş" ť@’n űý˘3ܦĄ¨;z„ôç5>lZµJjîůÔ¤zu›ˇTĄ™› űV@Ť@`,(Ă ŤŃ‹űX<ěbNNŽ(V§r}ŃÔ&<ĎÜG‰!ě¶óýńJ?úV·éKËä)đŃŢ~Ją†ËŇ%â©Ó0*ĂmB¨jĎ_’ăř~ö‡/°†ˇÄý·¸_Ĺ©/±Ó™>˝@SŠ ‚1x¤rLŃ("í*ëlŃ׌7u¨şÍEâž4™îÚ9äŮßo[ąÂ jôT·é"˛‚^aŻô¶‹˝¦'.)=¶± ˇ°°Hç‘ý ,Nv1?żŕ“ř\ËŕbN&2‘YSU ±O ŻtCO¸ŤŻ¸DÚżŹ ~$3ľ7ŢěőŃUhZO¸ ôk‡/°1cĆF}śIE~~ľÎ#űXĚT(Š“Ix3Ö×2čŹ˙g±E1¨ř~9,OKŢeđę6@śťă­;Gôőg¦‚ĐpßýîĎ}!jăKAÂĂm6ˇďţb›0aBTĆf´čżĹ˝Ć“±uŻŐÖ}ë­7Ź«-..6›}:Rś ˘ Ď×ůýîŰnűţâĹ‹—/_9eJĽ6d)Ę%˛¦ŻUOuÍbiąććˇOGš—_˙Ň´éi>•D †=5xžWµ×1˛t:lÚgŐçG;¶4şă4H6ôßâ~óm§K/˝ěßřfccăĆŤG »Á}ýő_3fLUŐ„,rş"‡wsäČá«Ů×ĺĺ••ó˘;Ľ(2XuBHkv9đ±žSI“§Ô?đ°VXęFqä·OUUJ‘ &“)du›ć‰‰ŽX Äżř҆ź˙Běiđ9ůícű=¬ńpnnNggďĘY˝¦“ŇŇńµµGG20¤Ą´tĽžĂşŰY÷!qÉëŽăŠ‹'ŐŐXź+@u~ţX›Í–Ŕx<]…(»çć8 »üĄĂőT·i›4wíÔó;{>}]Ó-?¸¨)\*3ÂŰ'ËRřŠÎáČp»=˝Žéő §oÉXZZjŘĹtĄ´T—%I Ó™év{L¦xĹŁŔěŮ“8n×č 5O„Çmź;wZ˘”RŠŃj5'z8ѧ«şMżN9BĽăJ•€×üťď5ýŕ‡ »u\ÚÓÖÖ–źHúmŻÝO”"Ő/0ťK TD˙Íí%°P ń8ŮEBHYŮT»ý˝ř\΀!ďTTLOxŢŐ(t÷ âMéöĐ<ÜFĚËóť8N‚ÁÁ˛2ˇ‚Đđ‹_µáK1bĘâ÷‹”˘¦iš¦q×ws‘Ŕ&MšĹq$Ó¦ÍĐy$Ą´—Ŕâ·^ś2e*ŔQ€{DŕDŻ&ś !<’ŢbI·őâ€ŐmQ»»Ł“¸‡(UŁććÖmxÔ·|eÂg0Ɇ(Š@Č˙oďĚäŞÎü˙ľw©˝zßfSzA–f[@EĐ„Q\q‰K‚ジd58:.ŃHŔüĆcâŚcĆd&‰ Qčf•Ąz«®ęŞ®íVÝ{Ď9ż?nwQöFUuuWu÷ý<Ź>M-·NU}ëĽçĽç]ŤF“Şv FŐîM@`S§NďŢĘQgŔq\eĺä¬ 4E·_4›ÍyyŮ1Ĺăé$˙=z¬ŃhLůlë÷X'˘A6A€}W·a×j¶đÇŹő˝S OxâĹW¤ňŠč%:݇ÇfłČ˝„ű|ÁhĹre›Í–KFť¤söŮ“bl“ ť/Fţ-°A]1-\8S~5Ż8’„7¦NM‹<-ŕ´]DLą™N}‡Ű8FŤĆűűľB`Öśşç^T ‹†Ď‡’LŞŞ”jĺHŐjéqż>ż?Z`1–b®Şš™ÔŃꤱ­ÚátT»8{vÇ˝ č5Ä sÜ›óçĎKőHZß(“Âb­ÉĄ×ę6ΉgÁî]}ď=—~ëäO«Ţ °(Ą.—ńt?đ‚‚BBz°‹Ç9[ť]né»}±F:çÂę$Lě_«ŰÝĺç(J*ö‹ÇeeYžĚ©ü<3Óš&őeEĄ´c9O)5YŇbTý1fjuônÓ^ZŞěü¨×'#Ç9nűNÓĆű@ôťbŹ0ĆOwŕyŽFHÖµhTíYšŔbńŐOť:MEýó6 ˘(ŠS§N‹ńń]¦(„RÍßĐ{ţ"c¬ˇáÔŽż9vě("Ž7~őę«´*bápxÇŽm{ö|*Šâ’%¬\y…v­î·GN¶#áJJJÚŰ˙ß3\ÎŇDĹ˙6›áŢ{7¤Şü[äpŘ`2hnaX„¤ö\Ý1XP 8€˝ďWŃŘđŔf˙âóőů¸o‚A‰RŞm 1ú(¨;ń L‹x¨¨¨•ź_P]˝°ÇŰĎ;oQäjóćÍżőÖŰ(e<đD8HYů€×`8ţŔŹ0F÷í«Myś "¶{Ľů…îyaČÇöVÝF±Ů<--ĽŻ— /jVö©źnר¨¨ś;wžĹbµŮl“'—ü1÷¬#ĂëÓ§O3›Í‹uÁ‚ęłÎJqj?"67w´žgŚ! c”¸3v4GěÎť¦p.cڎ,÷nHÁ‰×ĐkźQyěŘş_M>gŘűîjkkvďŢÉMxMćv»˘ź[XX$I}5!ijr@‡BĆXőfţü‰ O'=‰Ţ‰ő!ÄétD ¬¨¨8 GţŮ«]ĚÍÍ{őŐm‡cÝşîľűŽwŢůăő×ßn·G’¤ŇŇŽ.ĄĄc›šű¸˝;—]¶Ä`xTŹľAÜşxqĹÚq'Ë %”1 “)‘#Ć}űjożý–7ß|#vWÉ@Đ[uGa÷ůˇžcm3gťř·—ä˘âÁb°mŰŻ7mş˙Ë/Ź$öôććfJ;rő9ŽÓ’ŻűXOH’DµÓÇxVVVˇ÷ś6Ś;6öŁ.ŔčX­38Š‹‹ýëíO=őLYYůöíŰ@–Ă<ĎGΫÍfs(ęăöî”””Ś“đvŚo@'NŢ,.Î0abŞ‡Ń•PXîězS‚Ůý7ÝtËłĎ>źÂăŇŢŞŰ8&L„OţŻ·gµ/[~ň§OS{ưß)jLź^őňËŻ®XqYŹ•ŰbÁçó0J)ĄÄbéu2‰&1-]zqb#ÔI7âú*;ĆzŘě˘Vi"77÷Űßţ—S§N€Éd&„(Š˘mB%I2Ť}ÜŢă5ݏâb‹ĺ©‘1E *ĚdúÉ•W.KĂů×Ývşľ3Çq TĆ®Şš1ţD.…ﮇę6îńho˝28αű78Ü ýô""rŐŐ Ď9gJĽĎ%„¨ŞŇ™aŤXXXÜ÷á˘öŠ1Ć8ŽÉWá…q\*ĄÓ‘㸠/Ľ(ĆÇ3FŁjD`aa±$ŁĐ«]lmm˝é¦ëdYÖěśŞŞšó*33Ób±Ö××i«ŻŻ5jt·÷ř***32Ú>‰ńmčÄĚ»……bee:ž`5753`”RÂ(Ć‹C,‹±·ę6ţ˘âĐžO‘Ň®TDf46<ô¨kíő:СO]]ť–wP\\‡ű~ "67µhŁŔb"鉌ÀéÓ« c®ŹŃE`EEűîsss ß}÷?dYöxÜúÓŰsćĚD\°ŕÜ·ß~+đ·´´Ľ˙ţ{çž[ÝÇí˝±rĺĹËC±ĽťŘ1™~|ű.šU%ŞJ: †!–­ŃCuÄpV¶Żľ{ňň‘ĚĚş§žń]pa®Qҧł•1Ş"1â…ę-%,1é®Ôa@\_b…ĂáÎJIôjńî»×ńĹçwŢyŰĂo5jôW\©ÝµjŐꬬ¬ŤďůńŹť3gž–¤ŃÇí=2gÎܬ¬f€˙ÔŁo’xgÔ(!ĎŐŕ€ľÎ¦˛ŚiËyK]’4ˇ{ub0´É2×ŇŇ}§¨Śsâ…—Ą)SuĂ 4Ş@ Ďü$đEu-ćEăbš[-ZÜۡŹÎŔh4.Z´8–Gj'ÖÁ`´J7ůů‘ęáp۶ד;ÄaŚť8q|Ë–çTő Ć.HɆ„ëîľű¦)S¦¦gŁBĹbžTq"0řJđißn1fv¶Îľ#§(NTDl.(€š˝ÝPÓ«Nýčqš‘™‚±}ľúę«úúşČÚ˝şşşµŐ)Ër,ŰnŁŃPVy¶ÖůZíą˘ę7`Śýěg[ţűżßëßŔuRĆĘ•—kyög|$!äرcőőuÚĎ«««[ZŃGŃÚ—¸ ˇôÁ˙ŕ8?Ď˙>UcNpÜ«~ń‹·oíčŃŻS=śŕy>–)c¨ů†PĎ©Žę6Q&°eÜ8Ü»§űNŃ{Ѳú'·{Ć`q¸ŕp4SJ´‚΂ Ş*U%F_t $”& °Ő«ŻŇŁo†"ZÄÍ·ľµ2ö§t ŚjNTư{=úÔŘĹÇ?䑇L&ÓcŹýPŢ8Ą{Sű8,Šyě±nÝúŻ“&•ĄĽŔMxÚNׂ "b:nm»Đ˝şŤküÖĄ*"p\ëő75>ř ú ›”ŇpX;śZŚAaaa ý ŘE`Zâăź5aÂÄęęółNĘ©®>o„‰1ţâT•tßďďţ°”ÍJëÖݶfÍŐ……ĹË—_`łýHźFŚĆ;®ąćĘŚŚ łŮ’nú ąłVŻVëŮ`Lk»ŘCuDßč1Ę??îúHQlxŕ!×Më`(Xúô„1vřđgQKdś8q|çQPL bKSٶ.Ś,Ćeâ5×\÷uŇ€¸ľ¸.›0a| 6v±˘˘˛ĽĽBKŽ\ľ|yFƇżMÉH†; ÝŐŐó‡Ä%VEˇ”0&¦˝+µKu)7×˙ĺ”ĺÓTD’‘Y˙äVŻÖŘo\®6ÍĂĹÍ&E‰/2‹ă8UĄŞŞ& °˛˛ňŮłç$4jť”1{öś˛˛ňŘďrą˘Ë=ÖQJńÚAřîw×Y­ŹŃ˝©qÂŽ nżýŽă‡„]€V‡+ň7Çs€ĐϨÔ={> Š©ß¨n¨š-îv/şÝŃŹ‘KFŐ˝ř˛4˝j¨|ţI§¶¶ćŻ}?đ÷Óďv·©jÇQ"ctüř ľŢ*°÷Iń1÷oY«gš5b˙Ę(ĄNg«ŞŞ±,-|>……E«V]h2]…Ř­qŹNď JFă•«W»¸¸$Őc‰žç]­%ˇµ*Ď“đ|řţó'ţó'¨bjtuĆq­f üXôNQš:íÄ /‡{)a1rřÇ?ţľző[·>ůů燾HôâFĹ‚‚ÂŘ34˘q4;XSL$qęÔéÓ¦M±ë›ˇ"N›6}ęÔXż/ĆXőQ/"-ě"Çq‹/*+łâćTŹe(!ß›<9ű‚ –¤gbFŹh"%­ŮcŚçąÄ&˘ÚÚš[nąŃl6żú궤WLí^ÝĆ1j4Üýď’ ęžz†feŤđ™´ŞjĆăŹ˙ôÍ7˙0eĘ4ĆŮúSJ%I …B”v´ŕČÉÉŐ"nřlcÁ Ôąîb<Ďiܱ<÷şënŚ÷ĺtRĹŤ7®‹ýÁ˛,wXo+ň4šOoąĺ:“éuÄ˙íĚ,ŃéD†¸#?˙ź·Ţ:$O5F R4%Âx˙ýÝqÇÝV«-é–éŐmťςݻ˘wŠ®ënhÜü(3$ŇdXbµÚ.şhŮäÉ –•řěłÚŚ1JiYY™ĎçMx0 lćĚYçť×WAť4áĽóĆUŔ/.Ą‘]´Ůlë×Çh\ đ©KúłÝlľýú›L&SŞG’Á€¤Ę޶ś§”‰‚H‰·#cUŐŚévŞ]ݦ˝´T‰de 2QlĽďAÇÍ·BJ+'!NçéZBŮŮ9\÷¬˛A+ެBÇ$ČDAŚÝW×]ß3›Íú7›¶ ˘Ůlľë®ďĹřx­ˇEQĘú(‘FvEAl7ď8©Çŕô8)÷2ćq3dhŃŃH@űż`H—i1fjut„Ű  Ą°Ó Gíö“?}Ú{É }ŢL"‡¤”0¦‘BeeĄÇÓ_m759X§1Ś]`Z%ńµkočç«ë (k×Ţ{•p_`idŹůâWżúĺúő®¸â|“ib{ŞG”Ž ¶ŤţËż,űŢ÷ľ˙ ĎiÍż†‚ ř}>˘ŇČâÇ`0ÄŘc}T·Ql6OK ú|Č *%%'ţíĄŔŚ4ęů<Ôˇ”˘666 c@)3Ť˘(†Bˇ~®<?¤í}‹ĎŻßú¬š•ťŞ± W(Ą‡Ž/Ýb±ddd†Ă=ô튎ăĽííŞJ" ˘AŚŃĚ!bUŐĚ%K.ě˙0t’Ë’%VUÍŚq˝B)UUµ‹Ŕ¬V[—.ÄÝáW®ĽĽż#fÎś~üřn·űU˝Ŕ ő©0€°ŃxůĚ™ÜőׯÖęu}c>ź÷ľű6.[¶Ľ3q•íŰWűĘ+/ľţúö÷Ţ{÷đáĎGŤ•™™ápřµ×^}ĺ•—Ţ˙ϡTVV‘’u1Ą”ç9łĺtę!F KaÚÉŘ˙řSŢžOŔ1ń,¶{—öˇ¸®^ŰĽń úî!éÔÔěőű}kŁĘĘÉŞŞÄŘ=Ło´+ B´Ŕ°XŻ|Î9S˙ú×˙îŢ„H'Uäää<ţřĎb6¤”ÖÖÖt˘ČŞJúÇĄÓ~1­ÎÝwŻ›=[5™.At¦zD©Ńm2]0{6»ůćkzôí8ťÎgźÝúŕ÷GçAű|ľ^xnůňË^|ń•gžynҤ˛^xN»ë­·~çńxžzjëćÍŹţóźďÚő¤žçŰśmZălĆeŚx€”í;ŞŰ şÇO }Lšî˝żőö;ôާI‡š››"·dddÄU(üŚ´¶´F:łkŁTŤ1ň9;;{Ó¦‡y~ČT’Ć "Ďó›6=ś™Gű6I’ş¬¸¸8ÔSń.¤őŻťçůuëÖ.YRd0ś;R#TŔ aÁÂ…yëÖ­„ž˝ęyyyë×oxčˇG˘oEŃf‹$ö!"fgçct÷î]—_ľĘnĎ(,,Z¶lůÎť©±‹€­-N¦eŰ2ĆC! šdŚîÜůaĽĹá´ę6ţ˘âĐžO‘1fµž|âIĎŠËú?žaCmmÍîÝ;KŢďNMͧ”vxÎaęÔ©ŹGÓjR®Ś&0Ň)1äc"Κ5çÚk‡dŠđđăÚkŻ›5kN\Ú‹,–#ć´¶‹«V­\ąr®(ÎBqyŤŻŠâśŐ««ŻşjUŹîÓ>0™L7ß|ëóĎ?{Űm7ßyçmď˝÷îí·ß n·G’¤ŇŇŽp»ŇұMMŤ2úŘp·µ©äô<+‚JăÎeڦ¶¶ćöŰoyóÍ7b/×Qݦ¶&ś™ĺ«ŻĂPH)(<ńÜ‹ÁŮső˝B¶műő¦M÷9ňE?ŻÓÚęhkë•'„Z,V›Í–t§%ĎóŢööhqł'ŕ†nž6mzrGĄ/Ó¦Mżá†›c¸9//?®Ď˙đáCŃ=z4Ąjě€!`ŕöŰď(++3¦ôńÇž2eżŃ8ń«Tj @üŇdš[^ľëńÇť0abyyEbyІo–îDDQ 33Ób±Ö××i·××׏JvŤ'"{Ć/ňŞk|Dč¬nó-ăĆaÍ^÷•kN=ö:4«ë ŕ‰'9ގ˛rr[[ŰŔ˝""6ťjŚŢŚň"×Ţtöě9×]§ÁIëÖÝW_LB×ëë.0—ËŐ÷Łv1:KĎl6÷»·®Y3Ç`X€ř»aćSEdż2λ暹6Üe·ŰµŰËSĚĚĚś4©ěŤ7ţź$ImmmożýÖÜąó,8÷í·ß ü---ďż˙ŢąçV'ůťÄŹ˘(^·W[Ý1Ś2iy~ÖŽmîŃcčî]M÷lląănĐłą={>‰ö÷Ě1Ëçó%Ý Ďó”RM`^‰řvăŤ7ŻXq™®ŤAW¬¸ěškÖĆűÄîkooď±˙poÄQ5 }8˙üĹgť5áĹözß(úŮŤ  Ádş3'ç‹őëČĎ/HĘEďĽó»Ű·o»çž»EQś?˙Ü+®¸R»}ŐŞŐŰ·ż¶qă=‚ ,Yrauuęđ<ßćrŮ2lŚ1rľîÉ©­18ľ/7<ţÓŕĽC]Fi!äčŃŻ%)¨ý`YvvNVVfKKó Ľz«ĂŃE`„Ş@‘çĎ\iI‹ťŢ°áŹ'UyM#Ť Ş7lřA\"Đ]`ąą9ŤŤ qŮܶíőř›6Bţ÷˙ööŰ˙©(—ň]€9CÓ:2€÷yţQ|ëŠ+V,^ĽXóvŽLŚFcaIˇöwGu8Ę!°Xf®xaŚqŠ2ő‰űOť<őŔćĐ„‰úV` ńxĽ»wŮr.ZtľŰíîO,B¬VkAńéE'Ą ('ÄśąÁ ‡Ă÷Ý·áŕÁşÁá â”)Sź|r«ŃhŚýWIńů]¶pábŻ××ѵ ?jođ<ŃEKźxâ‡vűű˘x)âßR=˘D@|C®ÍĘúÓ–-Ź,]şt$E!)ÔY0p ŽcŁţü®‡±[ž OńÄÓqő9҉­Ď×OGéoUŐ P©m7R=Ŕ.0‚ř–Ĺr]NÎﯻîü+ŻĽ,?żŕčŃŁFŁiÔ¨Q©^ŠŃŽ~BÁŐŢń«`ŚqP€tIDATZyń¤ÔMeŚ>účćÉ“§ś’ś_ń8jFGŹ~µcǶeË.Iâ'ÓŘxęرŁÚß(âüůóťN'!}UŞ(ĄrX±Ú,í58JăđŐ#˘Őj]°ŕÜ]»vĆ'®#EEĹĎ=÷Baaa\Ş „tŘĽyó\.—˘(qoąˇoý~eĺ䬬lD,))ąŕ‚…ăĆY =MHŔ8czXG0^„µĺĺ__}ő˘kŻ]SRR˘­n233óňň222R=Č´ ‹˘(4—2Ŕq\Ľ'đ=˛k×G_~ydÝş[”˘bL]ňtfĚ1üăŰEEĹIIŕ!„„Bˇšš˝Ńr3gΤ”Á_”pGáyŢ`Ô™:†€”ĆQłŢn·/^|ţŢ˝{<žDv$:]@Ä &nÝúl~~AĽŞčQ`Š˘JR0qÜPŽ»é›Żżţę˝÷ţqäČתzN8Ľŕ®Ô9Ť€gŚĆáŔ¬Y3.˝tq~ľî¸ë Ć"Ź*ä8>r Rěç®±¶¶Ć`0TVNÖ·‰˝ˇub1›Mĺĺ•ýżšŞĘ}´S–;p)eĹĹEgź=©µµUű˘ű˙ @]Z0"Ď#Ƣďóyzčö'{€#Ž©S§=ţřOíöřö”RĆȇ~ÔE`ĺĺÍÍ 9 Â𵋒$ýô§ŹK¶·(˝RU×26@ř¤ć/ýPŢŕ¸wrr2-úýď˙Ŕfł đëQĄ%Ť” 0Ćóâ@Ħę ź~ú±Ű}şXłÍf›7oACCĄ^´ˇckôč‰ôs0 ĺĺź}öY\ŤF8ZT} ´vö•Őbëe9¤ď‡uuÇ€!ňtÚ´Şööö«/@Ŕä7[ŁSJ)ńŞ‹ă¸{ッ  ŕ7żyMk›Ą ÇÝvŰwÖ¬ą:!¤S`Ŕ96mZ•ĎçK 1Ł ĂÜŹzřđç‹eěŘq=Ţ …ęęNĽţúöěě‚Poii”$ź(ŽAĚf̆X@‘1ŞzŠăBů‚ŕä8ŃŹ ´NQZm¶Üüüł™ř|m·ÝöťĽĽüŢ~Q‡ž‘‘‘•H‡„¨%%ŁyA+ú <'\˘§vş–‘‘1qâYô©Ą¶¶ĆfłťuÖŮgś!nwŰţýűµ ŔI“&´´4§G@ÇI6óvćđśČq\ĽÖ‘1¶gĎ'[¶üŘăńč>ŐľAĬ¬¬M›Ž·Ąb§łu˙ţýZʍƤI“rssťÎVĆbjšŃĂߏZQŃWŕ€Éd*--u:ť›6m6›- ŞŞŰí’$I’ …$éhmí^ś5k–ŮlEŃ`“››k·Ű-«öéKRpÆ{222úř!ő=ťŢŕ8ľµŐQPŹ\GR*cLĄ2(ŔĚ#o˝őćŇĄW»ŘÚęx÷Ýw6o~lŕ^Âív˝jÓ¦‡+xIŃĆqŔ2šŔJJF555ĆÖHę s»xF4G«ÉÔáH!??ŕń˘Á`  -Zt~o1™Ěş›t€@DJiSSsń¨âHąFA&aŁÁ|» öí«Ý´isŇŻś&ś{nőłĎ> ¬ÖäGB$Iúěł‘ ÇAffNYYESSC\µ›‡Ł5ż0?Ң‘1Iă^{ĺĺĺ?ýôżnßţÚŽżŃ}ŞÝá8îşën¸ţú›,Ź µ¨ŮŮ9'NjnnJV:ěĎ_ě'ZúcffVźć—_AÄňňŠ>®Ł' (Ś19¬X­­z—6yJxއ¤¬ŁřÇ?ţ†^xqŻ™V †Ď??d2™ÇŤźô‹‡BRMÍƨöµ ‚Ýž9}úô–GÖVMB †l6k ĽďôŤÇMź^5yňäšš=©múťV bnnîř“ĺË/ăęZC)•¤`MÍžČ222fĚŃŇ’´`®á×ßOňóół˛ú2Š@ÉËËĎë˝Z"ćççëFqŕТĄ d¶X:Wô ¨ŞÂó|tZ˙ńz˝3fĚĘÍÍMâ5ÓŤśśś˘˘˘ěěě$^“"IÁ˝{#FA łfÍmnnVŐ45ŠTU ‡ełŮÝTUŽă‹»Ö"Ž5zéŇ‹ŰÚ\‘:,#śĄK/~â‰'ÇŹOĽ@0Ř»wʶ GÔzĘfÎśăp´Č˛ś, çĽ~ťáĄÔjµŘ3ěÚŠ^›żĐd2#ĆÔ-Hgŕűöí%„DŞľ †YłćxđŔć’’Qý‘AD`‘`fžfÍšÝŢŢžôUÇ ý~:# Ż× Iup:‘BR8Š«+B˙`/˝ôĽ×묗‹•@Ŕ˙Ę+/ r?ʧí‹/utCÔŞ6WUÍđűÁ`p0GŇxž‚ihSŐ›D"˘(ŠW_}í¶mŻ/\¸h­ú".\¸h۶ׯľúZQ~ׄ—«5"0 AgĚéóů¨Äî0ß/666ĽôŇ Ű¶ýú˝÷Ţ=y˛ľĽĽÂh4Fîýę«/7mşď˛Ëľ ˇPčµ×^}ĺ•—Ţ˙ϡTVV1Bä;äŕ8NÖ6‚%â´•řŕ4°ŚO7‘$·ä÷!„Ô××?~4zÎ2Ť3gÎ ‚>ź7Ý>ź‘$É`yžgŚE Ś1Ęó|bo m6ŰâĹKÎ9gJKK‹ĂŃ’Ô!§8mÚô‡~lőę«m6{?5  ¬3 Ŕd2Í1S’B^oű@lÇÝPJ~ň“–•UÜsĎF­ňýűçÎťÚP’ž~úgˇô­o­€7Ţř­Óé|đÁÍóçźűűß˙Îl6÷V @'$‰ăxAŁ÷F„hĹĆ u‹ —Ë5gÎĽ‚‚ÂľvčĐg.—3Yeâcą"Ž=ĆfłŽ÷řńcŤŤ§˘_]Ĺ3fµ·{ý~ß5ŠŔq\8,C±›ŔP÷Ř#bIɨeË–Ď1Óĺr566&cĽé"Ι3÷ţűĽá†› âëŐBHD`ť]AĹ™3g»Ýž@Ŕ?@ă¸aťżčtşśNçŞU«EQ´X,+W^ţłźm‰Ü»cǶĘĘĘŹ?ŢÍcŚîŢ˝kăĆű222322—-[ľsçGçť·(…×éžçÁ!ŞÍf‹Î“ĺĄÄjµ hQ•ŞŞ±đŔCë×ořŕż˙őŻďďŰWICJO4ŻćôéUK—^ĽhŃůfł9Y_:!Dc4"0(,,*-ŰÔÔ$Ë‘;Ěí"cě/y˙ťwŢž9söŹĽ%++~ůË—®ĽrMNNNSS“ö0“ÉLQUU‹Ú$):đŔC)·NB`8üŤ˝ľŃh2™Ě—ľóummŤ¶úNő@z…"IˇŻľúBQF)hŃ(8iŇ$łŮâp8†ú Yß0ĆxžĎËËc ˘ČťÓĘŻ$÷ŹůâăŹwŐÖÖ>üąŞŞ©˛‘(BEEeUŐŚęę…Ô‰ĹďtÇqgź}¶Á`tą\faXŰEY–ďąçî'žx*33łÇ466>účCżüĺkđŰßîhll¸ăŽ»üţŔ3ĎíĂOí ‡ĚĚL«ŐÚŁŔ’[Ź0I’Řżo_mmíŢŻľú’vP8´*Żgź=©ŞjćôéUS§N‹t“M:„–––Ŕ CcĚh4M™2Ĺëőµ··ĐK÷Č0ď3ĺv·ÁőëďŇţ©­z4+ŘťU«VoßţÚĆŤ÷‚°dÉ…ŐŐ q¤:I@›—ŰŰŰeYÎÍÍ …B‘Ú"ŞŞz˝^ŁŃ¨5N!3xRGŹ~iô±YYŮcÇŽw8Zµr6#ç#Őú*çĺĺő&°ř(ĚfóÜąó´3źĎwŕŔľăÇŹť_ręKŘíöŃŁÇ”–Ž3fLyyEYY…ÝnOĘ•{‡4A§×T»+;;gâÄłµ0®CŹ çý˘Î…ă0//e9˝˛ćyÎl¶bęŁWŇBHCĂ)—«•© Âq8iR™(ŠNçé»FŚ1Aŕssóz $^Ţ%Üî¶şşşS§Nž:uŇëőJRĐď÷Kťřý>I’´ÝžÍf7wbłŮĚfKNNnQQŃčŃcĆŽ›ťť3hcÖ¨ŻŻ‹,ŇáKÇqnw›Ş’ď4šaîGŐ±DůTíÁ` ‹ÓÉ`0Íćóz u!>źŻ®îx¤Fsä˙‹eҤ2Ż×;˘|§˝‘™™iµÚzî·ďŹÇŁ ŕt0›Ígź=) ˛ď4šaîGŐ±D|Şáp8//W–eY>]ÜR–eUUŤFŁŃhěOvv˙9vě諯ľ|đŕ@ ‘‘1eĘÔuën¶1B)UąľţD0(1¦uó9=łŹ?Án·;ťN-CQźôŰŰŰ%IĘĎĎëC`ZRCJ†Ç;~üXZ ÂáP}ý‰@ ]HHűĆŤź••ĺp8"t©Bß/ę s8ŽËÎÎ1 ’˘ô…Ĺyž7›ÍěőЇ®şjŐŤ7®;˙ü%‹Őín{çť?~đÁßwěxcđC)Ą”64śôxÚ;',F`Z ÁرăEmksĄ[ć@jŃâTł˛˛M&coK•ß>­Š˘46žŇĆCM``µZÇŤ …=7Ą4µK.ÝŹŞ3R0 ąąąZ]Ü.wńĽ`2™ q@KÇuÇáhYłćЧžzfćĚ™)ÜUBˇľľÎď÷3Ć(íŞ4ď"WZZjłŮ\.WĘWńi cĚd2ĺääô-°čĽĎA Z`©ő‹PJş (ĄšŔĚfłÇăI“JIz˙Eť‘‚ŞŞ~żíö ĆXt˛cTQdEQăě–V«Íçó>÷Ü3ţó{uu'$)”››k2™çŐˇcŹHÂáđéމťą‰ąąągź}–$…\.×°ĚŮOHńűýÇő!0ŽCíT{p>I‹ĹęóůşĚh4ć÷HÚĐp2Z` ˝ľ&°‰'„Ăr[[Ű Ą'žŽÓ÷‹:# -’0;;G ˇÔ=ťăřÎsÇÁř‰2Ćęëë>ţxwmíŢýű÷1Ć|đáĹ‹Ďč×%„¨*ijj ý‘|ĨV>Ě`0Ť?!y<î”Ä]xžËÉɱoÁ`YÇşş/0‡ĺ¦yP Ó¸qăUUiksĄ[TłîGŐ‰0ĆĚfsNN!T–CŃ­Ý4´ÉË`0$Öź=1BˇĐ/ů‹Ý»wţűżż5pŻB‘¤`ccŁŞÍWńšB§?°¤d4ĎóŹ[ËM¸Á cŚFcnnî6háKڱp8<żß×]`Đé™×f0\.gz–ˇHĄÓYG'% b(jll ü‹Őb1w±”I z˝í~ż_KP`‡ŁeÉ’óü~żöOŁŃxńĹ—Dţ™tTU9yňäŃŁ_ź:uŠq–vŢŹ˘h3fLiéXI 677ĄÉaĎEßďë[`@ Kd‰L˨1™L'0­ËĘÉ“'żüňHß?~‚$Nu?MôóEť‘‹,Ë>ź—1fłŮEQ$¤ky-J‰˘(áp1 €<Ď%16Çb±|ňÉ˙ŐÖÖ”—WZ­V§Óůꫯ”••/XPť¬— „ 2§Óép8ÚÚśá°ÜyQĄ™Á`0Ś3&''G’¤¶¶¶č”ťÄĐě&0J©Ý~QÚ!°$ĆćDVQQiµZ[[[“.0 Tu:ť­­Î¦™dÁ0zôüüü`0ŕr9Ăa9ťó|ôóEťĚfKff&"„Ăa-ݸ;ÇŤFQ4$kţr»Ű~ń‹?ţx·ĎçÍÍÍ]¸pń­·~')…(UUőxÜÁ`@–ŐHň@dă9ň1™,……EĚçóIR°˙Ż«ÓťÎíš9+++vőĆóxÜ!0­ŕCΧšŔxžóx<’µ ôóEťÓ0Ć4ë(Ľ,ËŠ"÷ćßâyŽçžDQŕůt)ŽA …^Ż_–eU%Zb>t5‡LłčV«%?żPk–$IŰý\'‚ŃhĘĘĘŠK`#}Fou©¤ýŹă8‹Ĺśź_Čóx<ˇPúşL»Ł×»ŃŃ9 "†B’$ŤFŁÍf·Ů2UUQ9R:!”@–$ŕ8NDAAč—Úx!„„B!źĎ«(*ĄŞÖ~˘‹‰D@äxžËÍÍÍČČ Ng«Öú<}¦ÝaO8jii6 v{FKIźí@ Đ]`Ń®ř(P„ÜÜ\«Ő …śÎÖÎfÎC }ż¨ŁÓšĂÇb±ŘlvŁŃuÔÇi+}DŽă8žçµ€‹$v3'„AEQ´Ł)mH]rĄ!jĺť5YěöŚĽĽlI’ý~źÖ&I7‡)Çb±X­6“ÉŘ%ë{Ôä˘(J0TU…ľŚŃiÔ7óósü~) CŘ'ŻďutzF›k‚Á`0äyÎb±ÚívDNQU•{˸Ҫ©)Šuŕ8žăxm+ÉqŔ!"huĄµĄ„1¦ťÜ¨*Ńzě©j‡«MQ@GÔFÔÄI”ĆžţćíöŚĚĚLm˛;uŞ!2rÝ(¦Á`0o6[222H`ťĹn!]%(0m9Ő]`”RźĎwňä©á‘íŞŰEť3@őů|^ŻW v»Íl6 ‚ (ŠŞUUú^ă3Ö±Éë͟ٷEÇ,D–çQëtÖ“ĺĂČ˝Ń×4 ™™‹Ť547·(Š< f«a "Bý~żßďŃn·™L&QS%°oZľHńŁoxM5Y­vYK’ÔÜܢŞJäíôăĂHt»¨Ł¨ŞŠŰív»ÝśÉd4›-fł…ç9UŤLaÉJDcÝţčqHÚl…‡‡fł533 …‚Á`[›'z37÷›şÉR¶óyuťçü®ďu}Ż' „gŮ“·Ôp~ ܧÜ÷)7Ŕ}Ę k«ŐzęÔ©%‘‚"—ËŹ;–!`Î{ŤĆjµĘd˛?+ çofffĆÇÇ1ľ`ç@&“ ţ)U8XµZ-&ďOąîSn€ű”ŕ>ĺ¸OąAö>ą\.˝^ĎápČd˛@ 8|řp8ÎüĂá R©Hđ ĄĽĽ|tt4 ŹçŔ€Bˇđx<•JeµZ3Ô›AOÚ—_©%Kźěv{EEťNüřńüüĽÉdr:ť2™ě‡VˇP(!„Đëő666ÖÔÔŘíö˙¤ÁëőJĄŇD"qďŢ˝p8<11QQQ!—ËS-‹Ĺńxü?%_vŔR_____DUUUsssräű÷ď•••---ŐŐŐ.\€z<@gg'„pnn.ąR‹Ĺ‚ú„ĐÜܬÓé „###"‘Ť‹ĹâŽŽŽ˘˘˘ŢŢ^&“Éfłűűű‘ŹÔjuSSFŘ•+Wşşş „v»˝¨¨čňĺË4mhh­. i4ÁçóOź>ŤÄív;FÂëׯĄR)•Jĺóů×®]K+Ďd2ÍĎĎďŰ·ŹÉd®^˝úřńă‰D"9!Rhó@†ľHő%ź"‘H^^Ţôô4&n2™D"ŃĹ‹wěŘ!Ľ}ű6ťNW*•Hବ UźÚ/>”H$ÂŻ_ż2ŚWŻ^A_ĽxÁ`0ž?ľbĹŠ¦¦¦H$röěY.— !ŚFŁD"1UŠÝn'“Éű÷ďź››K®®®®®şşÚăńLMM•––föIĄRµ··Çb±ľľľÂ´ňâń¸V«Ýµk—ßďw:ťëÖ­;ţ|ŞOjÁÖ§lÖ=d8đů|L\(úý~…Ba±Xľ}űf±X<866¶°°đäÉĄR™!'›ÍFć™LŢąsçĐĐ``` ¶¶–BˇÄb±ÖÖV:ť^SSóéÓ'€Ďç[XXČ㣣Łč†‡î‰D˘łł“Ăá µÄăqłŮÜÓÓĂăńÖ®]ŰŢŢžąĄçÎť;rä‘H$‘H‘H$­<Ŕť;w.]şTXXXRRŇÖÖvăĆŤźďĚź$źX,@řđá&îńx8Niii~~ţää¤Ĺbihh(((°Ůl?ôÉď÷są\¤¬V«ŃŽhhhÉä‚‚@^Ţ˙3™Lđţý{äR.—#ăn||ÍI&“Y,¦ˇH$B.‹‹‹3·tbb˘˛˛rÓ¦MĂĂĂh#ĎçóĐ# ggg3§Í‚l|˘Óé[¶léîîF#]]]n·»»»{÷îÝ…Ba6›}>źD"ŮşuëÝ»w=ĎćÍ›3ä‘JĄHYˇP8ťNłŮŤF«ŞŞs?Áضm›ŃhÄÄ‘DH}ŠËĺ—Ë…\şÝî ’‚Á`ccăŐ«W'''Ďś9Ć1ňůúîÝ;4'2ŕŕ_/RÇ6Ě:ř“ç7oŢ0™LÁŕp8E‰D"±X¬P(!4›Í4MĄRAŻ_żNŁŃjkk!„‡H$b¶Ů`0ŘÓÓCŁŃ¦¦¦Đüuuul6Ű`0`–uL™Éd:tčĺË—ŃhÔĺrť8qB(¦nÉeŤFł}űvŻ×űöíŰ 6$ß<źD4ýřń#@°ŮlˇPHŻ×‰Äp8ś*B¨V«“÷§ŽŽd’=xđ (•J¤´ů™űvŃÎÓÓÓ:ťŽÍf“ÉdˇPŘŇŇR^^ŢÚÚ !üüů3‰D2Ť™™@__„đË—/b±xĺĘ•cccč@!‘H7n|ôčQrň[·nž>}šˇÇ!„n·[Ż×łŮl‰$ Ož<‰DX,V†§BˇV«ÍĎĎ_łfÍÍ›7Qź0ĂwďŢ˝¶¶6:ť^\\<<<,‘HĐŐ5Y„0 îŮłgŐŞU<ďčŃŁȆĘăńúűű‘ZĐć#ŁůßXdźR‰Ĺb6›-»g1Üżż¤¤dQRý~«ĽE;ďýT*uýúőżžgvvÖh4ętş_Oő;XyËńý^YYY"‘0 K-$=K"/ÍďąKň iٲ$ň–ă|ÂI÷)7Ŕ}Ę pźr4ç—ËŐŰŰűçĄŕ <{ö,Mó}*őŤÎźG&“a|Áţgy‚ďOąîSn€ű”ŕ>ĺ˙mČ«p|J)IEND®B`‚qwt5-5.2.3/doc/html/qwt__array_8h_source.html0000644000175000017500000001265112052741134020511 0ustar gudjongudjon Qwt User's Guide: qwt_array.h Source File
Qwt User's Guide  5.2.3
qwt_array.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_ARRAY_H
13 #define QWT_ARRAY_H
14 
15 #include "qwt_global.h"
16 
21 #if QT_VERSION < 0x040000
22 #include <qmemarray.h>
23 #define QwtArray QMemArray
24 #else
25 #include <qvector.h>
26 #define QwtArray QVector
27 #endif
28 
29 #endif
qwt5-5.2.3/doc/html/class_qwt_dial_needle__inherit__graph.png0000644000175000017500000002051612052741153023710 0ustar gudjongudjon‰PNG  IHDR#pCÍç–bKGD˙˙˙ ˝§“ IDATxśíÝyX×Úđ™,„%ě «€¨( ¸°‹HqE6#AVž«ýô“j­Ţ¶ŢZµ>¶Ríâ^k+Hµ@X\Ş•jEą(Ę"ŠUd_Ă–!óý1ýŇ4 %! ďďźxfćäÍĚ™y™ĺśA1 C™!Č;*2 Ů‚L@¶ Ó-’Ľ`´ş»»ăââÚŰŰĺŰżż‡‡‡ĽŁ* …gĎ€˛KMMĄÓé .”w ĘŞ˘˘báÂ…©©©ň¨,8§*bĎž=ňAYíÝ»WŢ!÷iČd˛™€lA¦ [iČd0Ž444šg$5¤ĄĄ‰Nzk‚•ʞ*d2 /^Ľx±qăFMMÍŻżţúĘ•+űöí«­­ÝĽyók“ ™Lľ}űöíŰ·ÓÓÓ—/_ţź˙üçĹ‹‚XYYeggʤEßţg „ Ó€ńâ›oľń÷÷ŹŹŹ·˛˛RWW·łł;xđ žž^RRŇűďżź’’‚ H[[›ŻŻďĹ‹ioo÷őőŤŤŤôőőe±XüŞttt‚‚‚–-[váÂäźçţůç»ďľ»dÉ:ť.š~H$RppđáÇEĂăp8GŽ ˇŃh§Nť®°»»{ďŢ˝t:=''g„U GiŔ¸Đ××WRRBŁŃ QĄŃh÷îÝsww/..F¤¬¬LSSł´´AŇŇR[[ŰÄÄDüTFWWW¨NOOϧOź ž={ÖÓÓóĘ•+111'OžŤ$&&¦±±Q4 =z´żż˙Üąsß~űmiiiffćp…‡îęęJLL<|řđíŰ·EżBěRČd0.tvv"2a¡r33łŽŽ77·ÇŹ •••…††>~üÇă•––ş»»K¨S__ż­­M¨0..ŽN§‰D‰ÔŰŰ+ş”ššÚŽ;Nś8‡„ărąŮŮŮ[·nŐŐŐ577˙׿ţuóćM±…wďŢݶm›ˇˇˇĄĄĺşuë„ę»ÔČW˛ŁŃ€qAOOAććf333ÁňÖÖV*•úôéÓ˛˛˛O>ůäÖ­[UUU%%%۶m“PgGG‡ˇˇˇP!“ÉvěXmmíŔŔ@oooLLLUUUdd$‚ nnn—.]rpp@QtöěŮYYYsçÎ%‘H(Šňx<.—+XUWWץK—®_ż%XŽŹŚN$»»»ţůgŹ'ö‚ ZZZńńńgĎžĹ˙K&“}||Ž?Îb±:;;÷ďßĎ`0Ä’H$źoľů¦­­­®®îüůóB5‹]JZ뀷™ŚÖÖÖ§NťęîŹ_±bEvvvHH‰‰Izz:‚ ÎÎÎNNN‚Ě™3‡Ífă7iŚŚŚ,,,‚‚‚ş»»ń‡Đ|}}W­ZuíÚµXZZ ~…žž^lll||ü¦M›,X`ii)a„iooo777ţ·oß>44«ŻŻ'ˇJĄ®]»vűöít:]´f±K Gđ~ ôđ÷Ó} ëµ^ľ|9eĘ©GĄDöîÝkll 鱗ç4`\SSSçi€1™€lA¦ [iČd˛™€lA¦ [0 PWŻ^-äń.÷ďcCC¨ŕúż?€čéˇ2ŽQš‘înŚLFI$„HÄÔÔŢ>řúúzccc)Ć€Č4@é988P©T±/}10¤PlGV Ż©é,Ź'~đŃAŐŐ§ 6 uK±RmmO*őCMc؆qdÇŔ0.† đxl ăbŘ`WW† H¨mÓ¦MRŚ !pő (˝3ftwwcâ,]şśH|M#GQEŃ÷Ţ[Ę劯d” ŞôőWěÚuNşŐ–•]¶´4@QTŕ‡  @%‘ Čä jj–ęęSµ´fhj:Ą¤äI®Mň¨ŐŚd Ę""L3‚‰„„„°đp÷á–’Š¦&ť~ęŮłĆ7Ţwt´;Qtî\~c#kŢĽ)qq Ţyg†ŚňL”Ëź¶ţôÓł˛ŐŐuĚśiA§»­\9ËÄDWŢq‰‘”tďăŹÓ…2 €ş»ONOß,ëoďííooďť8Ń@Â<üSśk×Ę&N4ŚôwłL ĆČ4@ ôôôge=JN.(+«52˘Ňéî4šË´i¦ňŽK’ŔŔo=zÁżIǢčŁG{*;âů;%ĄĹb/]ęĺ9ţT8ĹR™(..—wű6“Á(ĘÎ.çń0ü 8oŢ”×0#wőőť®®űÄî\$ń“OăâŚ}T’ ýúëăä䂼Ľ*[[ăđp·Y?Ć Č4@UTÔýüóý«WK›šX®®“VŻv]ąr–®®¦Ľă©Ó§sö âw®Ył¬®_WÜqĆjjZ.^,Ľpáż}}ý‹;DEyz{ŰÉ;( Ü ÓŇÚÚ“’R?¬HN. žăĺŕ`!ď €’LäéţýŁčʕҮ.öüůSi4—ĄK%ډ©¤”:Óŕđ‡2’’ňËËëśś&FEy††:kjŞÉ;.  Ó9¨­mOM˝ůrIUUÓ¤IĆî!!ÎććzňŽKVT Óđ••Ő&'dd<$‘sÖ­ółž°@yA¦c§Żo #ăaZÚ‡˙ÔŐŐ u^˝ÚE´KżęQĄLëęâ\ľ\ü㏹Lf~ŠCŁą¨«“ĺPPi€Ěń»ô߸QÎá .]ęHŁąřřLSS//W˝LÇźâ0E ™Fs‰‹[`mm(ď €ÂLdď™ů°ľľÓÁÁ",ĚmĺĘŮ&&:ňŽk¬©p¦Á±X}iiE?üűňe>‚çŇĄŽ˛*(‘ńňG%K˝é錢˛˛Zccí°07ĹďŇFCWW3.nÁúőŢřđ6[¶$hŃh®±±^––0‚'€L¤G°K?Š˘ł>ţ8@)şô© Poo;oo;ü%II÷Nžü?ĹYľÜ šÁxWĎ€”—ץ¤Üżzµ¤ąąŰĹĹfőj×ŔŔŮ2_ą¨üŐ3±_R`d¤˝j•ËúőóÍĚTö C śÓ€·‡ż_ ďŇoeeĺ"Đ  9k×Îź1Ă\ŢAŃ‚LööŢŚŚżşôO ˝z5té—2Č4oŞ»›séRńąsyOžÔăô¬Z嬡/)PViĆ/ţűÇîÜyJ$V¬pZ˝ÚşôËdš·†źâ¤§?$“‰ł7lX)#Č4ăŃăÇŻÎźżwőj)‹ő×űÇ–,qÔŃQµ÷Ź)Č4ŁÔŐĹľ|ąä‡r++\]'ĹĹ-€<• ÜăGđѨđ.ýÖÖ†›7/ š  Ĺ§ŁŁĺĺYVVűý÷w·lIÖÓÓ s‹Žö´˛‚—(8§Q}löŔŐ«Ąx—~ rp0tékpN#]ř0HçĎĽzŐŽŹŕąl™‰W}d•Ĺ˙Xvvy_ß€ŻŻ=Ťć˛x±…'˛c 2Ť,Žŕih¨MŁą¬]ëeaçčŠ:*čĹ‹6ăAf棚š–3ĚwěX0ËÔTWŢq Mü<›šX FŃąsůđ’…ç4ŞŁ§§?+ëŻ.ýúúZÁÁsˇKż‚€sš1Ŕ?Ĺąv­lâDČH:ÝÝČ*︂@¦QřąřűÇx< şô+ Č4c §xJJ!‹Ĺ†—(Č4JŚÉ¬żpˇđ—_JY®®“VŻv]ąr–®.téW8iĆŢ] ÁsŇ$Ł5kÜ#"<ôőá%ň™Fů´µődf>»ô[ZęÓén+WζłîlŠ 2ŤŐÔ´\ĽXxáÂ{{˙zI··ťĽw Ó( Á.ý$aůr§Ő«]˝Ľ¦ÂĂĘŠ2ŤÜń_R›űlęT“ččyááîT*Śŕ9F Ó(ű÷kŚ"čŇŻĽ Ó(ŽŞŞ¦ÔÔÉÉCCCÁÁscbĽ,ä”ęLُ»ôŰŘEFz„„8››ĂűÇ”dE?¨™””_^^‡Źŕꬩ #xĘ d…Ó×7đË/Ą FQ~~•–%(hNT”'<¬¬Ô Ó(,|ĎŚŚ‡$!0pÎşuŢööfňJA¦QĐĄ_…A¦Qp]]śË—‹ü1ŹÉüë%4š‹ş:YŢq©Č4ň‡?ţź•ő¨®®cćL :ÝmĺĘY&&ĐĄ_u@¦Qř)QDˇi4— ĽmlŚä”*€L#7ř•âä䂲˛Z##*ťîďSUi”KW;5őÁ?äľ|نo/)-L“ÉÔׇńéƆĆt3łx` Ťé(Ş—Čôőő™L&6j ,÷OSŠ0ŽzÔŞJ;AŐŐ'›šţ/‘]>ß€ŹŹŹĐ¦üÇ®¬¬¬ŁŁ#55U^ńŤ+<6›«Łă%ď@Ţ@XXXYYŮôéÓGYĎÝ»w·mŰćéé)•¨€˘Q±vŇŰËŐŇň–o J¤  ŕ«Żľ*ó§ôęŐ«Ç$0®yxx@KŻíDé`âîČŔŔÚd 2 Ů‚L@¶ Ó-Č4dë-3MMMMLLŚ©©©šššŤŤÍ¶mŰ:;;%/RYY©®ţ÷đĂ÷ďß_ľ|ą®®®¶¶öĽy󲳳ß.©«¬¬DQtĺĘ•‚…†Y[[ Ć/‹ďĹëÇ8räč$©T.Ó_!]*ÜĚV­Z%řHŐŠ+¬­­ů˙=pŕŔ´iÓŢhc‰Î‡˘hzzşTVdŁi'řP(...7oŢšGr ‚Ľxń"::ÚÂÂBCCcĘ”)}ô›Í~m ŻőÚ”č@ń6™†Édşşşęččääättt¤§§?{öĚÓÓóµ[—ݤ¤dÉ’%ŐŐŐµµµk×® )**z‹`dD"Ý˝{·ąą™_rçÎť‘˙şŃ#űöíűóĎ?Çěj73˙ÜÜ\ü3‡ĂÉÉÉimm-//ÇKrssßyçťéÓ§s8ś·«żŻŻ/55ŐĎĎ/))I:+ŞŃ· …‚÷.¬ŻŻß°aCHH“ÉDd„ëð%K–utt¤ĄĄĺĺĺmÝşuä5Ľ5e:PvăLII*kѢE[·n,áńxŢŢŢŰ·o÷óóKHHŔ0¬®®AĎ?˙ð††ÁoliiY¸páˇC‡kصk×0 ëč芊244´´´ü÷ż˙=00Ŕd2­­­żüňKccăäääÝ»wëęę'&&b†Ďpřđaccc“>ř`ppðňňr777uuu+++|N ĂRSS§M›¦®®>sćĚß˙]´„ÉdR(”ÇóĂ[ż~ýúőëů-RlÍ]]]±±±ÖÖÖçĎźÇgĆcűî»ď MLL.\¸€ĎÜÓÓłqăĆ &››ďرCpĺććR(”?üpńâĹřĚxHbĩض¶¶°°0]]]++«}űöńă‘\•d‚¤¤¤Ľv6©ÔŁÚͬşşAĘĘJ Ă®]»ćččvđŕA ø\®¶¶vff&c ׊Änb\RRҬYł***Čdrss3^×óí·ßR©ÔĚĚLţg&“)şB†[É(ŠľzőjôŰw$Ć ťŕ»›ŕâ[·nŤŽŽĆţąłneţÔWŻ^ˇ(Ęfłů5”••…‡‡ Îóv­KňŢŠOUŔ…Ř<ňĆ™†Ĺb„?ţřC¨<==}Ę”)_~ůĺňĺË1 űůçźutt–-[†vrrâ‡ŢŐŐE ęęęÄÖO§Ó›ššž={ćččřĹ_0™L‰´sçÎîîîĎ>ű EQţg333|Ą‰Ä€€€¦¦¦ÇŹOť:o^ÁÁÁ{÷îełŮgÎś™0a<™Lľyó&‡Ă9yňääÉ“EKđ8oܸáä䄇Ô××§ŻŻëÖ-ţŞ­ðµk×®\ą˛±±±ŞŞĘŮŮ™żÁ444¶lŮÂb±řc¶aÆččč–––ęęj77·ŻľúJ°QR(6›mgg'Ô¦Ĺ.8\!ŤFóóó«««{úôéĚ™3EŘĄ$ł#Ę73 ĂlmmOź>ŤaŘ–-[víÚ•8ţ| ĂŠŠŠDbgg§`“ŰŠÄnbśŻŻďńăÇ1 sqqůúëŻńB&“©¦¦¶~ýú††ÁĎbW„•<úí;BcĐN÷ÜŤ7ěíí…&‰neţT.—ëŕŕ°|ůňĚĚ̶¶6ÁŞżĺ-Z—ä˝UaŇÉ4ŐŐŐ(ŠŠ¦µââbmmíňňrmmíÁÁÁÍ›7üńÇ:::\.÷Ýwßݵk?ôššE‡††D+çp8ˇ¦¦˙ozzşŁŁ#“É$Ă°ŠŠ ÁĎü•‚ Huu5ľÔĹ‹1 {ňäIooďŕŕŕąsçđ9ŰŰŰ)JRRR__ŹÇăp8˘%xśCCCĹĹĹx…ţţţ‚«^´ć‰ÄŹ<33S0¶––Á€Čdrgg'>óďż˙îââ"ÚôsrrŚŚŚš››ů%b[Čfł ÂÓ§OńB!TąŘĄ$ozl Ź *ßĚ0 ۸qcdd$†a“'OÎÉÉinn&“Émmm_}ő•‡‡öĎă”h+ncöüůs*•Ęb±0 ;zôčÜąsńrĽüGđłŘ"a%Ź~űŽĐ´ŃLSRR˘§§'4It+ Ne±XÇŽ 444´··ß˝{woo/öĎ-ř­KňŢŞ° ±yäŤďÓŁ(úňĺKˇňşş:SSÓ™3gęééĺććFDDßąsgٲeü9 ńů///?sćLcc#‚ 666xˇ­­í«WŻ!“É A ř™ż8@°µµĹ?Oź>_ް°ĐŰŰŰĂĂ#++ ź¤ŻŻőęŐäädSSS˙˛˛2Ń~…QQQçÎťCäüůó111‚ŃŠÖÜĐĐŔăńř‘Oš4‰?łššš‘‘‘`Ŕ zzzř}ČE‹˝xńBtUűřř„„„ÄÇÇóKÄ.(¶°©© ð)S¦ŕ Nž‰Ăáčęę޸qŁąąŮĎĎŹN§‹–đ댍Ť˝pá«WŻîÝ»Ę/[ł‰‰‰PäüůQŠÖÄÄż<‚gűžžžý] 999×®]“° ŘB333EkjjDăyÓäb<43??żúúú'Nřűű“H$AV¬XqőęŐĽĽ<ˇŻmEĂmb ĂOž‘HLHH¨­­ełŮ•••AAAk×®ĹF°%·.É{«Â(¤sź÷ÇDGG›¨©©ŮÚÚnßľÝĹĹeĎž=†uuu‘ÉdüÁ­ÚÚZAÎś9aXww÷ôéÓµµµń››ëďďOĄRuuu˝ĽĽ˛łłńš[[[׬Yc```nnľsçNˇ¦0ÜF˘P(Gʵ˛˛š0a¶mŰđőÓO?ŐŃŃ™stt´ˇˇˇˇˇa\\\__ýäçç ]8 ‘°ŕp…mmmt:]OOoâĉ?ýô“h»”dcyÁTş™á•ďŢ˝AúúzţO677Ço\‹~µhlb7qll,ťN\Ť­­­$éúőë2Ťč ‘°’_K‰ÚI~~>˙Ďn2™ěěěŚďďŘëvyÁ©×Ż_÷ńńˇR©Ó¦M۵kW?ö†™F´uIŢ[Eď0)ČBš™F›ÍĆ=Ń5.çĎźollÄ?gffň˙nU%c|ÍL)ŚçvňvT©uI牀ᨫ«Ďž=®íL/÷IDAT_^›••őŃGuuu˝xńâСCřeb ]ĐĚŔH@;Q40î™Ô;v¬µµŐŇŇŇÉÉÉÚÚúĂ?”wD ”ăőő’Ézȇ255˝té’ĽŁ˛˘ Í ¨$•o]pN@¶ Ó-Č4d 2 ŮóD€čHHÝgź}vćĚyG´ĄÓÔÔ$ZbĆ˙OGGÇöíŰ{{{Ç0* L´´´Ž9˘ŻŻ?Ęzľř⋇J%$ € ťŚsÎÎλví,ůG¦¤îÓ-Č4d 2 Ů‚L@¶ţZ¶š”×ób"IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_drag_rect_machine__inherit__graph.md50000644000175000017500000000004012052741141026322 0ustar gudjongudjon90b0ef1f11a289dbe484d8af4cd2c501qwt5-5.2.3/doc/html/class_qwt_simple_compass_rose__inherit__graph.md50000644000175000017500000000004012052741143025417 0ustar gudjongudjonadf4b5bf18f7c6b6685b6ea8aa12753eqwt5-5.2.3/doc/html/class_qwt_abstract_scale-members.html0000644000175000017500000001757212052741136023055 0ustar gudjongudjon Qwt User's Guide: Member List
QwtAbstractScale Member List

This is the complete list of members for QwtAbstractScale, including all inherited members.

abstractScaleDraw() const QwtAbstractScaleprotected
abstractScaleDraw()QwtAbstractScaleprotected
autoScale() const QwtAbstractScale
QwtAbstractScale()QwtAbstractScale
rescale(double vmin, double vmax, double step=0.0)QwtAbstractScaleprotected
scaleChange()QwtAbstractScaleprotectedvirtual
scaleEngine() const QwtAbstractScale
scaleEngine()QwtAbstractScale
scaleMap() const QwtAbstractScale
scaleMaxMajor() const QwtAbstractScale
scaleMaxMinor() const QwtAbstractScale
setAbstractScaleDraw(QwtAbstractScaleDraw *)QwtAbstractScaleprotected
setAutoScale()QwtAbstractScale
setScale(double vmin, double vmax, double step=0.0)QwtAbstractScale
setScale(const QwtDoubleInterval &, double step=0.0)QwtAbstractScale
setScale(const QwtScaleDiv &s)QwtAbstractScale
setScaleEngine(QwtScaleEngine *)QwtAbstractScale
setScaleMaxMajor(int ticks)QwtAbstractScale
setScaleMaxMinor(int ticks)QwtAbstractScale
~QwtAbstractScale()QwtAbstractScalevirtual
qwt5-5.2.3/doc/html/class_qwt_thermo__inherit__graph.md50000644000175000017500000000004012052741143022647 0ustar gudjongudjonc287dfd0a7f158f448d8fe81ff6eef30qwt5-5.2.3/doc/html/class_qwt_compass_wind_arrow__inherit__graph.png0000644000175000017500000000776312052741153025374 0ustar gudjongudjon‰PNG  IHDR¨pD¬ˇbKGD˙˙˙ ˝§“¨IDATxśíť{P×ŰÇĎBd¸Ek±:Š’°c Ĺ J­qFQFäR¨#3µ˘8•±SG´ĄÚ V!ŔX…Ž(b‚Ô[é„(HĘEČLÂćýcÝ7&€@Ózöó×9ĎîóěłĎwŻç@Ńét€>,Ěťy „‡BxH!„‡’éBź~üx@@Ŕ©S§‚śÝÝÝýŇĄK9É䨨(ăôT*ŐŢ˝{]\\\]]<¨ŐjÇ2Ęĺr‡CŁŃÜÝÝy<ŢC™s ßßßĎçóą\®ľAřřřëׯňÉ'wďŢÜ»wĎÎÎN ÁŇĄKëęę°ÝÉÉÉ fpppUU•ńđáĂÁÁÁ …âË/ż&¸\îŕŕ`mmmEEEEEEffćXƨ¨(™LöôéÓŰ·occ/ eNL76^7r×ÔÔ„ FŁ1° …B[[Ű'OžŘÚÚj4šŘŘŘ/ľřÂÎÎN«ŐFGG:toŕTWWÓh4EOź>U©TŤ&;;ŰŔođů|''§îînܢV«Édroo/¤ĽĽśÁ`Śj˛°°hhhŔŚÁGőżz¦ą3á$ÍkqvvF¤­­ÍĂĂCßŢŢŢ>sćĚĹ‹Óh´ŞŞŞ{÷îĺććććć …B@pîÜąqbľxń‚N§=z´}űvAĆ™8X˝z5‹ĹârąGŽÁ,ťťťŤ†FŁé'<ŞńĹ‹:ťnÁ‚eţüůÁGőg/ŢćĽÔŰŮŮ­^˝úĚ™3¸%##ŁĄĄĺĚ™3ˇˇˇ€uëÖuuu-Z´hÍš5ííí+W®'fII “ÉÔ·HĄŇÝ»wgeeUUU?~|ß´´4>ź˙Ë/ż`]KKKü4ří·ßF5ŇétAš››1Ç––ČŁzM¸N¦Át0IšÚÚZGGG.—[__?44”śśL&“ťťťe2™N§+**˘R©ź~ú©N§»té•JełŮ:ť®ľľžD"©ŐjýëąT*=wî•JĹ.ąř˘îînA„BˇL& #‘H˝˝˝cÝ, ­­­q ‡Ă‰čééyńâĹĆŤăăăÇ2nٲ%((¨ŁŁŁ±±qůňĺĆÁGőS_ęÍ?;÷ěŮł;v¸¸¸P(ŹÄÄD‘śś¬ÓéúűűÉdrzzşN§“H$€óçĎët:ĄRéééikkű믿âG0™LöööľsçVżčGʵłł›?ţµk×-Z0ÎS‹ĹÂ- …bÇŽŽŽŽŽŽŽ‘‘‘ce2öT?gÎś+W®ŐkŢ~፠…˙x>˙-`ś–µ˛˛ňňň2wo9˙Fá Ţ„đB)„đB)„đbÚ±ú;wîL|fť@źß˙Ý´0ÝŻŻŻiS˙{P(t Ĺp:ç_…źźźéÔ1áŇü›A—-KĹ)ąÓ1Ţă3—đůůU7x EaÉHřöv…X,Cx I:: šH4çżP˝all¦-\čŇß?„u±1++2Öµ··¶¶¦-ą7¤łs€¨¨@VV¸ą1]ę ô!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxH!„‡BxXÁą^˙ăľ0@"9‘H†źź»9sćĚ(*زeKmmígź}fŢäLŹÇ[Ľxq~~>Ö}ĺÇŹf̱fÍ3$E`z~—¸ÇC !<¤ÂC !<¤ÂCĘT„ďěěLMMełŮ[·n={öěŔŔŔř.mmmü1Ţ­ŻŻOJJ ^ż~}\\\UŐżĺçâŹ9rôčQĽ›””ÄápđîĺË—wěŘa°/ăcĽrZZšżżEEĹ?‘ďÔ™´đĎź?ŹŠŠ˛¶¶ţć›onܸ‘’’"‘Hbcc_«=NSSÓÁýüü®\ą’źźżnݺÇ744L6SŔ`0Äb1ÖV«ŐŐŐŐ}}}---E,{{{»ąąÝşukjń_ľ|ÉçóW¬XQZZúĎdţ|ü@Čd˛¦¦¦Ë—/»ąąé·Ť 2V‘çÍ›çä4‰čÉ Ź¤3fĚ0°Óét…BÁd2kjjFFFÄb1›Í®©©AQT$ůřřŕköőőŚk4>źGŁŃfĎž˝sçÎŰ·oPݵk×ôéÓW­ZŔŰýýý#Š˘×Ľyó"""°ó;22’ĂáXZZ’H$•JAD*•˘(şaÆěělc €Á`č Ďd2ëęę”JĄX,öôô´±±ŃĎůĺË—áááÖÖÖx>jµş˘˘"!!ÁŃŃqöěŮřĘ]]]őőőŘA¤µ×jµ{öěÁĘ‚·G-ČDŠ<&'<ŤFtwwŘĄR©ĂÜąs©TjCCX,°··oll¬®®ÖĎÉŢŢĐÓÓŁďŢŇŇR\\,—Ë3gÎÄŚt:[ŤD"‘Éd‚ úmÜA:ýß…vssĂĽęęę>˙üóĘĘJl‘­­mjjęíŰ·Ůlöž={flÝć%I__ß’%Kh4ÚÂ… ?~ŚÝŕ vśD"a{„çŁP(®®®XwÖ¬YřĘĄĄĄjµzűöíl6űâĹ‹ŤŤŤřÓ‰DÂj«ßµ )ňDśđÖÖÖ^^^EEE¸…Çăuvv}đÁ&“yďŢ=ą\îćććĺĺ%¤RéâĹ‹ő#,Y˛¤¤¤D?ěŐ«W?~Śď]]]±łłsÔ 1:ť÷joowppčëëűúëŻ÷ďßź••µk×.l‘Z­¶±±IKK»víÚŠ+RRRŚ-€+VHĄŇk×®1 KKK€ŻŻďjjj †Á¦őŹ? GGG@GGľx’ĄĄĄ .\¸páBvv¶ţ#žÁqŚ5Ć*Čk‹<&ýpÇĺroÝş•™™)‘HÔjµJĄ kllÄnŇL&óçź^˛d ‚ ^^^XAI$‚ (ŠjµZ@LLL^^^NNÎóçĎ»şşňňňĘËË9™L^µjUfffooďźţ™ťťmđ(0×óçĎ/^ĽM9ZZZ*•Ę«WŻ˘(ŞR©PMLL¬ŻŻP( …blP©Ôwß}÷úőëř9äëë+†‡‡ß{ď˝×fB"‘VŻ^}úôi™LÖŢŢţÓO?av‘H$—Ë?úč#‡żX»vmYY™Á'±ô« cy‚µÂ´đîîîß}÷ťR©ärąÁÁÁ·nÝb±X...………oooŤFłtéRŔň塆†°ň999ąşş†††*•JOOĎ´´´'OžDGGGFFVVV¦¦¦běţýű§OźĎd2őߡÇL&3ڍ¨(Ü‹FŁ…‡‡sąÜ˝{÷~řᇳgĎNNN¶˛˛Ú·o_rrrHHHyyyRR’± Č`0´Z-“ÉÄşďĽóŽ˝˝ý˛eË&XÜÄÄD*•şsçÎÄÄD|nŢĽąrĺJ+++|µU«VőööŽ?†1jAĆ*ň¤xe>ľ§§'99y˛!jµş­­mÁ‚Sđý›´µµEFFNůĹŽ;ćěěŚĎÇ˙3C¶ Ĺ,ŞLb¬RţóÂ˙ťTůĎ O05á!…Rá!ĺ• ‘HtŕŔsĄB`Rš››đî˙ kŽ|ŢqqqxŢŹ CqʇBxH!„‡BxHů?±f ˛w¶ŢxIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_linear_scale_engine__inherit__graph.md50000644000175000017500000000004012052741140025314 0ustar gudjongudjon1f718d70bbb11cfec5a3a00444ed72b4qwt5-5.2.3/doc/html/nav_g.png0000644000175000017500000000013612052741134015267 0ustar gudjongudjon‰PNG  IHDRô1%IDATxíÝ;±{Ą3Â𯆏“,1íIuäÁĂ<«—Q¬IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_array_data.html0000644000175000017500000004066312052741164020560 0ustar gudjongudjon Qwt User's Guide: QwtArrayData Class Reference
QwtArrayData Class Reference

#include <qwt_data.h>

Inheritance diagram for QwtArrayData:

List of all members.

Public Member Functions

 QwtArrayData (const QwtArray< double > &x, const QwtArray< double > &y)
 QwtArrayData (const double *x, const double *y, size_t size)
virtual QwtDoubleRect boundingRect () const
virtual QwtDatacopy () const
QwtArrayDataoperator= (const QwtArrayData &)
virtual size_t size () const
virtual double x (size_t i) const
const QwtArray< double > & xData () const
virtual double y (size_t i) const
const QwtArray< double > & yData () const
- Public Member Functions inherited from QwtData
 QwtData ()
virtual ~QwtData ()

Additional Inherited Members

- Protected Member Functions inherited from QwtData
QwtDataoperator= (const QwtData &)

Detailed Description

Data class containing two QwtArray<double> objects.


Constructor & Destructor Documentation

QwtArrayData::QwtArrayData ( const QwtArray< double > &  x,
const QwtArray< double > &  y 
)

Constructor

Parameters:
xArray of x values
yArray of y values
See also:
QwtPlotCurve::setData()
QwtArrayData::QwtArrayData ( const double *  x,
const double *  y,
size_t  size 
)

Constructor

Parameters:
xArray of x values
yArray of y values
sizeSize of the x and y arrays
See also:
QwtPlotCurve::setData()

Member Function Documentation

QwtDoubleRect QwtArrayData::boundingRect ( ) const
virtual

Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false

Reimplemented from QwtData.

QwtData * QwtArrayData::copy ( ) const
virtual
Returns:
Pointer to a copy (virtual copy constructor)

Implements QwtData.

size_t QwtArrayData::size ( ) const
virtual
Returns:
Size of the data set

Implements QwtData.

double QwtArrayData::x ( size_t  i) const
virtual

Return the x value of data point i

Parameters:
iIndex
Returns:
x X value of data point i

Implements QwtData.

const QwtArray< double > & QwtArrayData::xData ( ) const
Returns:
Array of the x-values
double QwtArrayData::y ( size_t  i) const
virtual

Return the y value of data point i

Parameters:
iIndex
Returns:
y Y value of data point i

Implements QwtData.

const QwtArray< double > & QwtArrayData::yData ( ) const
Returns:
Array of the y-values
qwt5-5.2.3/doc/html/functions_func_0x62.html0000644000175000017500000001672312052741152020170 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- b -

qwt5-5.2.3/doc/html/class_qwt_scale_transformation-members.html0000644000175000017500000001265112052741143024307 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleTransformation Member List

This is the complete list of members for QwtScaleTransformation, including all inherited members.

copy() const QwtScaleTransformationvirtual
invXForm(double x, double p1, double p2, double s1, double s2) const QwtScaleTransformationvirtual
Linear enum value (defined in QwtScaleTransformation)QwtScaleTransformation
Log10 enum value (defined in QwtScaleTransformation)QwtScaleTransformation
Other enum value (defined in QwtScaleTransformation)QwtScaleTransformation
QwtScaleTransformation(Type type)QwtScaleTransformation
Type enum name (defined in QwtScaleTransformation)QwtScaleTransformation
type() const QwtScaleTransformationinline
xForm(double x, double s1, double s2, double p1, double p2) const QwtScaleTransformationvirtual
~QwtScaleTransformation()QwtScaleTransformationvirtual
qwt5-5.2.3/doc/html/class_qwt_curve_fitter__inherit__graph.md50000644000175000017500000000004012052741137024055 0ustar gudjongudjonb3405410539ed6167fe1d4ccacfc0cfbqwt5-5.2.3/doc/html/qwt__scale__draw_8h_source.html0000644000175000017500000004225012052741135021635 0ustar gudjongudjon Qwt User's Guide: qwt_scale_draw.h Source File
Qwt User's Guide  5.2.3
qwt_scale_draw.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_DRAW_H
11 #define QWT_SCALE_DRAW_H
12 
13 #include <qpoint.h>
14 #include "qwt_global.h"
15 #include "qwt_abstract_scale_draw.h"
16 
30 class QWT_EXPORT QwtScaleDraw: public QwtAbstractScaleDraw
31 {
32 public:
37  enum Alignment { BottomScale, TopScale, LeftScale, RightScale };
38 
39  QwtScaleDraw();
40  QwtScaleDraw(const QwtScaleDraw &);
41 
42  virtual ~QwtScaleDraw();
43 
44  QwtScaleDraw &operator=(const QwtScaleDraw &other);
45 
46  void getBorderDistHint(const QFont &, int &start, int &end) const;
47  int minLabelDist(const QFont &) const;
48 
49  int minLength(const QPen &, const QFont &) const;
50  virtual int extent(const QPen &, const QFont &) const;
51 
52  void move(int x, int y);
53  void move(const QPoint &);
54  void setLength(int length);
55 
56  Alignment alignment() const;
57  void setAlignment(Alignment);
58 
59  Qt::Orientation orientation() const;
60 
61  QPoint pos() const;
62  int length() const;
63 
64 #if QT_VERSION < 0x040000
65  void setLabelAlignment(int);
66  int labelAlignment() const;
67 #else
68  void setLabelAlignment(Qt::Alignment);
69  Qt::Alignment labelAlignment() const;
70 #endif
71 
72  void setLabelRotation(double rotation);
73  double labelRotation() const;
74 
75  int maxLabelHeight(const QFont &) const;
76  int maxLabelWidth(const QFont &) const;
77 
78  QPoint labelPosition(double val) const;
79 
80  QRect labelRect(const QFont &, double val) const;
81  QSize labelSize(const QFont &, double val) const;
82 
83  QRect boundingLabelRect(const QFont &, double val) const;
84 
85 protected:
86 
87 #if QT_VERSION < 0x040000
88  QWMatrix labelMatrix(const QPoint &, const QSize &) const;
89 #else
90  QMatrix labelMatrix(const QPoint &, const QSize &) const;
91 #endif
92 
93  virtual void drawTick(QPainter *p, double val, int len) const;
94  virtual void drawBackbone(QPainter *p) const;
95  virtual void drawLabel(QPainter *p, double val) const;
96 
97 private:
98  void updateMap();
99 
100  class PrivateData;
101  PrivateData *d_data;
102 };
103 
108 inline void QwtScaleDraw::move(int x, int y)
109 {
110  move(QPoint(x, y));
111 }
112 
113 #endif
qwt5-5.2.3/doc/html/class_qwt_simple_compass_rose__inherit__graph.png0000644000175000017500000001052412052741160025525 0ustar gudjongudjon‰PNG  IHDR°p1=m˝bKGD˙˙˙ ˝§“ IDATxśíťyTWűÇď„lF–° V#Ć ×—ZD@s•˘Ł´´"‹Hᨭ,®=µâŽŔ<ŠTk+±öGĄČ«Ç×Ĺ% ¤ Á–™ßó6o†`Kh$úr?ÝyćŢgľ3óÍĚť{' ‚a€@ţ„dj÷ hhh˛±8p °°ĐXŮ 1ţü-[¶%b¬§ A<<|ăĆŤ¸žżĆ¸ăgÖÖV‰ôüůóńĽĽĽ±cÇ&%%-Z´ðěělKKË… âĺiÓ¦i´\.'‘Hőőő˝ć Z˛dÉëׯź={6uęÔD"2™Ľyóf…B±gĎA´e''' ĂD"‘™™™żż˙ëׯËĘĘĆŤ‡›réŇĄ;wîěěěĚČČpppŔĹS(”ÂÂBĄRyüřń1cĆčGzB&“}óÍ7o“§źðիW‡„„H$’ęęjww÷C‡ýí‘˙P Q]]Ť ľĺKKK-,,žŐ-ă E" şşouţüů©S§bV^^ŢŢŢ®V«333ńšR©”FŁť={¶ŁŁEQĄR©Áłébii‰'ďUž~•JEˇPZZZđjEEEnnn{ä?Ô‘J{{{AÄbqŹx}}˝ŁŁăäÉ“™LfIIÉ­[·V¬XaggWZZzóćÍ… jkÚÚÚâőu›?yň$##ٱ±ŕěěŚŮlö«WŻ …FŁH$’nYŰśD"±ŮlĽěââ‚·şwď‡Ăńđđ¸téľĘÚÚ:??˙ÜąsŽŽŽľľľBˇP?}öööđđđČČH@Żňô3444¨Őj&“‰wKçÎť[[[űĎŹĽA ś!,--çĚ™“ššŞŤ¤¤¤Ľxń"555 °`Á‚‹/666Nś8ŃŰŰűÂ… őőő^^^şfÍšőĂ?č¦ĺńxWŻ^uttĽ|ůľxńÂÉÉ©/ŞPŐ¶Ş®®vrrjnn^˝zuzzzIIÉîÝ»ńUJĄŇĘĘęúőëMMMóćÍ ŇŹôČĚ`0"""€N§Óétý~fŃŮŮŮÝÝÝ«<ý 4-000..®ąąą©©iĹŠ‡6ÖÁď+Ćş÷€ľÍv>ţ<$$dذaT*•ÍfÇÇÇ»ąą%$$`&—Ë)Jrr2†auuu€ŚŚ Ă …‹‹‹……Ĺ›7o0 »uë–ŻŻŻąąą••Ő¬Ył đĚÍÍÍ_~ůĄŤŤÍđáĂ7oŢŚ?ehŻá˝–ńBjj*‹Ĺrpp‹‹Ă;˙;vě°´´3fĚĄK—&Nś8ţ| ĂÎś9Ăb±čtúŚ3îÝ»§ŃĘËĺfffŮŮŮ˝Ęë5§L& ±µµµµµŤŚŚěččřŰCúˇv*ßFgggii©±d„ţ)üůP;•oN§»şşšZä?Ţ÷ŠAmĄRijďÚ} !  !  ! ŚöEŔŤ7úţfÄX<|řĐéŚ5 áááaLY •ęDĄöiîăýÄÓÓÓXçŃhßÜúpŃhĐý+ î"‘SË11°ţýďj©´]*m»s§ÚÔZL4ČÍ-!“I )7w çšßC»!”Jő•+‚înŤZŤ^ą"P*Ő¦Vdb»!ŠŠDZ(•ꢢžŻÁ 6»!ňňJä?IAňňŢ—7úMĹ 6„\®,,,×hP|QŁA ËĺňA=Ý5¨ qíZŠžşQ»~˝ĚTz޵!.\(é1 aŘ… ú®1x !‘(îÜ©BQT7˘Řť;U‰ÂTŞLÎŕ5D~ţă^Ç%ÉĎ Ľž÷„Ákśś’EóŐ 5D}˝L(¬{‹!€@P÷ÇtÚÖÓßC‡ŇĆŹ&—wâ‹řŘťNÁ­¬ ŐdâL śí€čč,@zz©…žAzË€Ľ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÝ?Ď={¶©ĺ2ŮŽL¶3µ ÓŔápŢú*‚|öŮg“&M2ˇ>Č@R^^ž››«ëž?:6iŇ$ooďyź€}hhhhţü´qCCCffć …­­-‡Ă 377˙‹&b±822˛  đúőëS§N=zôHˇPŘŮŮůřř„„„Đh4Ý:ý /Í+**233ËĘĘ0 cłŮááánnnýŰśq‹Ĺaa˙ýÝ!C†Lś8166väČ‘¬Äŕ+Dmmmtt4Á8|řđĺË—wíÚUWW·nÝş¶¶¶ľ4Ç0lÓ¦MÖÖÖééé—/_ޱcGYYYjj*€ĹbőŰ }ˇşşzÓ¦Mžžž?ýôSNN΂ ¶mŰVYYůî¶h ĺ˙ţ„Ďç;;;8p`ŕel#GŽřúúĆÄİX,:ť>~üřÄÄD&“yöěŮ 6đů|Ŕ›7o|||Îź?JĄ>>>aaajµÚÇǧ¦¦ćŐ«W«WݶµµĄR©ăĆŤ‹‰‰éěěĹâO?ý/|ńĹ999K–,árą………§Oźö÷÷çrą¸cđ ąąą\.wٲeéééŤFW¤R©LIIárą'NśŔ×;v,888 €Édš››űűű/[¶¬¤¤ĐÖÖ¶oßľ€€€Ď?˙<##Ł»»»ß^ľ|ąfÍ??ż   ­ż‹‹‹CCCýüüV­ZUZZÚkD ???±XŚ/ęËë5CŻ{m(†˘ŁŁăńăÇşAAďÜą3sćL\™P(d0 ŘlvVVţ =z´łłóöíŰoßľ­P(l6űűďżď±ˇććf™LĆçó—/_ľoß>µZť››»|ůň“'Oâ$Iiié™3g’““oßľ}áÂÝć©©©]]]™™™GŹżüňKGG‡@ đőőŐ­ HIIiooĎĘĘJIIą{÷.ž­Nť:ĺééyůňĺĐĐĐăÇŹămďŢ˝±±±ůůů\.7))I?Ňc÷ŰÚÚ®_ż>}út|Q_^Żô÷Ú “‹c!ZZZ=âNNN2™ĚÝÝ˝¬¬LŁŃ…ÂeË–•••ˇ(*fÎśůßí‘HiiiWŻ^]ąrexxřéÓ§»şşz$DQ4""bČ! -Ëĺrm…ŻżţšÉdŽ=zŐŞUş÷šîîî‚‚‚őë×[YY ><**ް°°µµ`ccŁżSjµş¸¸Ď6bÄđđđß~ű­ß"##‚‚ĚĚĚČdr{{;@ŁŃ ŇÜÜŚ˘čâĹ‹333ő#¸ ź?YĽxńµkע˘˘Ţ&O?CŻ{mĐÉĹ1¬SÉd2MMMNNNşńććfgggssóĘĘJˇP¸}űö7nTUU=~ü8..N·2ÁXştéŇĄK1 «¬¬ŢA»zőę‰' Ć”)S®\ą˘›$;;űţýűx[m¶†††^/$}ŃĐÚÚzđŕÁ 6¤§§GDDŕ«T*ŐСCy<ŢĄK—¦Oźľk×.ýHŹĚ4mѢEŕĎ«ZyúzÝkčźܩډ‰)((HKK«««S©TíííˇˇˇUUUřÍŘÝÝý×_ť2e ‚ ®®®¸\2™Ś Š˘ÝÝÝ~~~€ĎçK$•JUWWwîÜ9//Ż~HOKKkii©­­=sćŚnç€BˇĚ™3çرc­­­---»wďĆďîk×®ĺóůYYYµµµŤŤŤ|>ż¨¨(((Bˇp8<Ű«WŻ233{t5ú®ź6433S(ŮŮŮ(ж··Ł(Źź]*•JĄRő#ú™i4ZWW—FŁéUž~†·íµˇ<1jÔ¨'NdffĆÄÄ( {{{.—+ óňňÂĂĂ?ůäµZ=mÚ4ŔÇÜŮىw ěěě>ú裀€€ěěěÄÄÄźţ9++ EQ‡Ůłgk?L}‡Bˇ¸ąąEGG«T*__ß   ?ţřC»6>>>55544Ŕáp"##...<ďěŮł|>źD"Ť=:11żzmذáčŃŁˇˇˇT*U?[ß5Éä°°°&“ąvíÚĘĘĘ„„„¤¤¤őë×'$$´´´°Ůě­[·Ňéôýä666‚üţűď>>>úňČd˛~†^÷ÚPzľ‘ĐŹéo•J%‹ÇŽŰýŕaýĎhřçďÜąS×Ćş¦R©ćČ;Îe@|†x×ÜІwÁiČ»BBB ç8›Í¶¶¶6ˇ Č@"“ÉjjjŢú˝Śýű÷?|řpŔUAL >§Şţ<„ěC@@C@@C@@C@ü?sąđÝý ™IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_18.png0000644000175000017500000000324412052741162017334 0ustar gudjongudjon‰PNG  IHDR{%í!ŻbKGD˙˙˙ ˝§“YIDAThíšmHS_ÇĎ™{˛¸kcn.$ťZ´ő Z­Ę”XE¨9‰UPä‹­2‰Čž ].„ö"q‚ٰöÂ^YY†hŇ kłšŁ´šmKť¶í¶ąť˙‹ —ű_ůĐđ˙÷óęśď9żó;|ďŹs¸!h„ő·7đżqśnÇé†qśnŘqýîîîšššż˛•…‡X,6™L†QE÷¬RZZÚÝÝ­R©čÝŰÂÄb±´¶¶–––RĹř¨TŞ»wďҵ«… „đW‘9Çé†qśnÇé†qśnÇé&qÇ].WEE…L&ărąrą\Ż×ŹŹŹĎ200Ŕçó‰„p÷îÝÔQ„PFF1aćđYĹ™÷@ęy$AÇG~~ľ@ xúôéŘŘX[[Űű÷ďU*Ő¬¦“°ŮěgĎžy<Réěěś{8‰BˇŔqüŹBć+ub$čxeeeyyąŃhT(‹/ÎÍÍmoo—H$—/_.,,¬««|ýúBxőęUŔČČ„P©TţüůBčóů’’’víÚŐÜÜL®i6›‹‹‹Én 8zôhjjjZZZUUŐČČŢŐŐ%—Ëëëë1 łZ­dmNNNjµÚ””™LvîÜ9B´X, …"99yÍš5Ož<ĚšúíŰ·6lHNNÎČČhjj Čĺňk×®IĄR™Lvúôé©©©Ä¬čß”””””” ńűý,kpp0Nokk[ľ|y]]ÝÎť;BwîÜjµšhçää8ʇ">ĚÉÉ!bÁ H$ęčč & „:¤ŃhĽ^ŻÓé\ż~ýőëשá\.W«ŐşÝnRD‹Ĺ*//ollÍ把 rČívG"ˇP!„|úô‰Ëĺr% Uq»Ý±X,33“čnŢĽ977W$µ··777Ëd˛˘˘˘×Ż_ĎšĐÓÓłeË–Ť7Z­Vęnł˛˛¶BˇřüůóźxF!Gm۶M§Ó‘]ÁŕrąvěŘqęÔ)„Đ‘#GŞŞŞ¤Ri,ÓjµŐŐŐK–, ‡Ăq5NT“D" …@€ÔqOJJ"küÇŹ?~ü5śÚĆqśĹb úîßż …z{{‰Ń+W®dffΚÚëő˛X¬—/_"„úűű©5îrąĹ-ËŞU«č«q€Ńh4›Í:ťîÝ»w8ŽOLL¬\ąňŐ«WgÎś¨Őꆆ†M›6A·nÝzóćÍíŰ·s8a4ŤD"ä:JĄR.—çď˘E‹HťÇăëőzźĎçńxĘĘĘnܸńk8Ź·oßľ“'Oú|ľ>TVVFŁŃh4ZPPĐŰŰ ŕóůÔçżéRľ°ŮěŃŃŃÚÚÚh4ę÷ű‰!ťNçőzív{MMÍł.ÁG j4šÔÔT.—›••uâĉĽĽĽóçĎ#„&&&8ŽÁ`@ L&BhrrRˇP`öâĹ ˛HŤF# ŁŁ#®xÇĆĆ4ŤX,‹Ĺ‡ż §†|˙ţ}˙ţý"‘héŇĄ—.]"ÄŰ·o§§§óůüüüüžžęüéR_¸pA dgg[­VĄRYXXHŚÖ××§§§KĄR˝^‡gµĚםs:Bˇq/ZxPŻÇÜů­ăóů–Ďçó×­[7Ź .Hď*tĂ8>'ř–0ŚătĂ8N7ŚătĂ8N7żů{ÂĺrÝşu‹ţ­ü_{>7 {G  Ăěv{śĂń˙d1ü×0ç8Ý0ŽÓ ă8Ý0ŽÓÍ?kFďm’ĂIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_counter-members.html0000644000175000017500000003775312052741137021566 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCounter Member List

This is the complete list of members for QwtCounter, including all inherited members.

Button enum nameQwtCounter
Button1 enum value (defined in QwtCounter)QwtCounter
Button2 enum value (defined in QwtCounter)QwtCounter
Button3 enum value (defined in QwtCounter)QwtCounter
ButtonCnt enum value (defined in QwtCounter)QwtCounter
buttonReleased(double value)QwtCountersignal
editable() const QwtCounter
event(QEvent *)QwtCounterprotectedvirtual
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double)QwtDoubleRangevirtual
incPages(int)QwtDoubleRangevirtual
incSteps(QwtCounter::Button btn) const QwtCounter
incValue(int)QwtDoubleRangevirtual
isValid() const QwtDoubleRange
keyPressEvent(QKeyEvent *)QwtCounterprotectedvirtual
maxVal() const QwtCounter
maxValue() const QwtDoubleRange
minVal() const QwtCounter
minValue() const QwtDoubleRange
numButtons() const QwtCounter
pageSize() const QwtDoubleRange
periodic() const QwtDoubleRange
polish()QwtCountervirtual
prevValue() const QwtDoubleRangeprotected
QwtCounter(QWidget *parent=NULL)QwtCounterexplicit
QwtDoubleRange()QwtDoubleRange
rangeChange()QwtCounterprotectedvirtual
setEditable(bool)QwtCounter
setIncSteps(QwtCounter::Button btn, int nSteps)QwtCounter
setMaxValue(double m)QwtCounter
setMinValue(double m)QwtCounter
setNumButtons(int n)QwtCounter
setPeriodic(bool tf)QwtDoubleRange
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setStep(double s)QwtCounter
setStepButton1(int nSteps)QwtCounter
setStepButton2(int nSteps)QwtCounter
setStepButton3(int nSteps)QwtCounter
setValid(bool)QwtDoubleRange
setValue(double)QwtCountervirtual
sizeHint() const QwtCountervirtual
step() const QwtCounter
stepButton1() const QwtCounter
stepButton2() const QwtCounter
stepButton3() const QwtCounter
stepChange()QwtDoubleRangeprotectedvirtual
value() const QwtCountervirtual
valueChanged(double value)QwtCountersignal
wheelEvent(QWheelEvent *)QwtCounterprotectedvirtual
~QwtCounter()QwtCountervirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/class_qwt_spline_curve_fitter.html0000644000175000017500000003044712052741165022524 0ustar gudjongudjon Qwt User's Guide: QwtSplineCurveFitter Class Reference
QwtSplineCurveFitter Class Reference

#include <qwt_curve_fitter.h>

Inheritance diagram for QwtSplineCurveFitter:

List of all members.

Public Types

enum  FitMode {
  Auto,
  Spline,
  ParametricSpline
}

Public Member Functions

 QwtSplineCurveFitter ()
virtual ~QwtSplineCurveFitter ()
virtual QPolygonF fitCurve (const QPolygonF &) const
FitMode fitMode () const
void setFitMode (FitMode)
void setSpline (const QwtSpline &)
void setSplineSize (int size)
const QwtSplinespline () const
QwtSplinespline ()
int splineSize () const
- Public Member Functions inherited from QwtCurveFitter
virtual ~QwtCurveFitter ()

Additional Inherited Members

- Protected Member Functions inherited from QwtCurveFitter
 QwtCurveFitter ()

Detailed Description

A curve fitter using cubic splines.


Member Function Documentation

QPolygonF QwtSplineCurveFitter::fitCurve ( const QPolygonF &  points) const
virtual

Find a curve which has the best fit to a series of data points

Parameters:
pointsSeries of data points
Returns:
Curve points

Implements QwtCurveFitter.

QwtSplineCurveFitter::FitMode QwtSplineCurveFitter::fitMode ( ) const
Returns:
Mode representing a spline algorithm
See also:
setFitMode()
void QwtSplineCurveFitter::setFitMode ( FitMode  mode)

Select the algorithm used for building the spline

Parameters:
modeMode representing a spline algorithm
See also:
fitMode()
void QwtSplineCurveFitter::setSplineSize ( int  splineSize)

Assign a spline size ( has to be at least 10 points )

Parameters:
splineSizeSpline size
See also:
splineSize()
int QwtSplineCurveFitter::splineSize ( ) const
Returns:
Spline size
See also:
setSplineSize()
qwt5-5.2.3/doc/html/inherit_graph_26.map0000644000175000017500000000031012052741163017314 0ustar gudjongudjon qwt5-5.2.3/doc/html/dir_4118f540b2f97d7768d69ea313198c2a.html0000644000175000017500000007477612052741165021422 0ustar gudjongudjon Qwt User's Guide: /tmp/qwt-5.2.3-tmp/src/ Directory Reference
Qwt User's Guide  5.2.3
src Directory Reference
Directory dependency graph for /tmp/qwt-5.2.3-tmp/src/:
/tmp/qwt-5.2.3-tmp/src/

Files

file  qwt_abstract_scale.cpp
file  qwt_abstract_scale.h [code]
file  qwt_abstract_scale_draw.cpp
file  qwt_abstract_scale_draw.h [code]
file  qwt_abstract_slider.cpp
file  qwt_abstract_slider.h [code]
file  qwt_analog_clock.cpp
file  qwt_analog_clock.h [code]
file  qwt_array.h [code]
file  qwt_arrow_button.cpp
file  qwt_arrow_button.h [code]
file  qwt_clipper.cpp
file  qwt_clipper.h [code]
file  qwt_color_map.cpp
file  qwt_color_map.h [code]
file  qwt_compass.cpp
file  qwt_compass.h [code]
file  qwt_compass_rose.cpp
file  qwt_compass_rose.h [code]
file  qwt_counter.cpp
file  qwt_counter.h [code]
file  qwt_curve_fitter.cpp
file  qwt_curve_fitter.h [code]
file  qwt_data.cpp
file  qwt_data.h [code]
file  qwt_dial.cpp
file  qwt_dial.h [code]
file  qwt_dial_needle.cpp
file  qwt_dial_needle.h [code]
file  qwt_double_interval.cpp
file  qwt_double_interval.h [code]
file  qwt_double_range.cpp
file  qwt_double_range.h [code]
file  qwt_double_rect.cpp
file  qwt_double_rect.h [code]
file  qwt_dyngrid_layout.cpp
file  qwt_dyngrid_layout.h [code]
file  qwt_event_pattern.cpp
file  qwt_event_pattern.h [code]
file  qwt_global.h [code]
file  qwt_interval_data.cpp
file  qwt_interval_data.h [code]
file  qwt_knob.cpp
file  qwt_knob.h [code]
file  qwt_layout_metrics.cpp
file  qwt_layout_metrics.h [code]
file  qwt_legend.cpp
file  qwt_legend.h [code]
file  qwt_legend_item.cpp
file  qwt_legend_item.h [code]
file  qwt_legend_itemmanager.h [code]
file  qwt_magnifier.cpp
file  qwt_magnifier.h [code]
file  qwt_math.cpp
file  qwt_math.h [code]
file  qwt_paint_buffer.cpp
file  qwt_paint_buffer.h [code]
file  qwt_painter.cpp
file  qwt_painter.h [code]
file  qwt_panner.cpp
file  qwt_panner.h [code]
file  qwt_picker.cpp
file  qwt_picker.h [code]
file  qwt_picker_machine.cpp
file  qwt_picker_machine.h [code]
file  qwt_plot.cpp
file  qwt_plot.h [code]
file  qwt_plot_axis.cpp
file  qwt_plot_canvas.cpp
file  qwt_plot_canvas.h [code]
file  qwt_plot_curve.cpp
file  qwt_plot_curve.h [code]
file  qwt_plot_dict.cpp
file  qwt_plot_dict.h [code]
file  qwt_plot_grid.cpp
file  qwt_plot_grid.h [code]
file  qwt_plot_item.cpp
file  qwt_plot_item.h [code]
file  qwt_plot_layout.cpp
file  qwt_plot_layout.h [code]
file  qwt_plot_magnifier.cpp
file  qwt_plot_magnifier.h [code]
file  qwt_plot_marker.cpp
file  qwt_plot_marker.h [code]
file  qwt_plot_panner.cpp
file  qwt_plot_panner.h [code]
file  qwt_plot_picker.cpp
file  qwt_plot_picker.h [code]
file  qwt_plot_print.cpp
file  qwt_plot_printfilter.cpp
file  qwt_plot_printfilter.h [code]
file  qwt_plot_rasteritem.cpp
file  qwt_plot_rasteritem.h [code]
file  qwt_plot_rescaler.cpp
file  qwt_plot_rescaler.h [code]
file  qwt_plot_scaleitem.cpp
file  qwt_plot_scaleitem.h [code]
file  qwt_plot_spectrogram.cpp
file  qwt_plot_spectrogram.h [code]
file  qwt_plot_svgitem.cpp
file  qwt_plot_svgitem.h [code]
file  qwt_plot_xml.cpp
file  qwt_plot_zoomer.cpp
file  qwt_plot_zoomer.h [code]
file  qwt_polygon.h [code]
file  qwt_raster_data.cpp
file  qwt_raster_data.h [code]
file  qwt_round_scale_draw.cpp
file  qwt_round_scale_draw.h [code]
file  qwt_scale_div.cpp
file  qwt_scale_div.h [code]
file  qwt_scale_draw.cpp
file  qwt_scale_draw.h [code]
file  qwt_scale_engine.cpp
file  qwt_scale_engine.h [code]
file  qwt_scale_map.cpp
file  qwt_scale_map.h [code]
file  qwt_scale_widget.cpp
file  qwt_scale_widget.h [code]
file  qwt_slider.cpp
file  qwt_slider.h [code]
file  qwt_spline.cpp
file  qwt_spline.h [code]
file  qwt_symbol.cpp
file  qwt_symbol.h [code]
file  qwt_text.cpp
file  qwt_text.h [code]
file  qwt_text_engine.cpp
file  qwt_text_engine.h [code]
file  qwt_text_label.cpp
file  qwt_text_label.h [code]
file  qwt_thermo.cpp
file  qwt_thermo.h [code]
file  qwt_valuelist.h [code]
file  qwt_wheel.cpp
file  qwt_wheel.h [code]
qwt5-5.2.3/doc/html/index.qhp0000644000175000017500000203561112052741152015320 0ustar gudjongudjon net.sourceforge.qwt-5.2.3 qwt-5.2.3 doxygen
tabs.css tab_a.png tab_b.png tab_h.png tab_s.png nav_h.png nav_f.png bc_s.png doxygen.png closed.png open.png bdwn.png ftv2blank.png ftv2doc.png ftv2folderclosed.png ftv2folderopen.png ftv2ns.png ftv2mo.png ftv2cl.png ftv2lastnode.png ftv2link.png ftv2mlastnode.png ftv2mnode.png ftv2node.png ftv2plastnode.png ftv2pnode.png ftv2vertline.png ftv2splitbar.png doxygen.css qwt__abstract__scale_8h_source.html qwt__abstract__scale__draw_8h_source.html qwt__abstract__slider_8h_source.html qwt__analog__clock_8h_source.html qwt__array_8h_source.html qwt__arrow__button_8h_source.html qwt__clipper_8h_source.html qwt__color__map_8h_source.html qwt__compass_8h_source.html qwt__compass__rose_8h_source.html qwt__counter_8h_source.html qwt__curve__fitter_8h_source.html qwt__data_8h_source.html qwt__dial_8h_source.html qwt__dial__needle_8h_source.html qwt__double__interval_8h_source.html qwt__double__range_8h_source.html qwt__double__rect_8h_source.html qwt__dyngrid__layout_8h_source.html qwt__event__pattern_8h_source.html qwt__global_8h_source.html qwt__interval__data_8h_source.html qwt__knob_8h_source.html qwt__layout__metrics_8h_source.html qwt__legend_8h_source.html qwt__legend__item_8h_source.html qwt__legend__itemmanager_8h_source.html qwt__magnifier_8h_source.html qwt__math_8h_source.html qwt__mathml__text__engine_8h_source.html qwt__paint__buffer_8h_source.html qwt__painter_8h_source.html qwt__panner_8h_source.html qwt__picker_8h_source.html qwt__picker__machine_8h_source.html qwt__plot_8h_source.html qwt__plot__canvas_8h_source.html qwt__plot__curve_8h_source.html qwt__plot__dict_8h_source.html qwt__plot__grid_8h_source.html qwt__plot__item_8h_source.html qwt__plot__layout_8h_source.html qwt__plot__magnifier_8h_source.html qwt__plot__marker_8h_source.html qwt__plot__panner_8h_source.html qwt__plot__picker_8h_source.html qwt__plot__printfilter_8h_source.html qwt__plot__rasteritem_8h_source.html qwt__plot__rescaler_8h_source.html qwt__plot__scaleitem_8h_source.html qwt__plot__spectrogram_8h_source.html qwt__plot__svgitem_8h_source.html qwt__plot__zoomer_8h_source.html qwt__polygon_8h_source.html qwt__raster__data_8h_source.html qwt__round__scale__draw_8h_source.html qwt__scale__div_8h_source.html qwt__scale__draw_8h_source.html qwt__scale__engine_8h_source.html qwt__scale__map_8h_source.html qwt__scale__widget_8h_source.html qwt__slider_8h_source.html qwt__spline_8h_source.html qwt__symbol_8h_source.html qwt__text_8h_source.html qwt__text__engine_8h_source.html qwt__text__label_8h_source.html qwt__thermo_8h_source.html qwt__valuelist_8h_source.html qwt__wheel_8h_source.html qwtlicense.html qwtinstall.html curvescreenshots.html plot.png sinus.png cpuplot.png graph.png curves.png scatterscreenshots.html scatterplot.png spectrogramscreenshots.html spectrogram1.png spectrogram2.png spectrogram3.png histogramscreenshots.html histogram.png controlscreenshots.html radio.png sliders.png dials1.png dials2.png sysinfo.png deprecated.html class_qwt_abstract_scale.html class_qwt_abstract_scale__inherit__graph.png class_qwt_abstract_scale__inherit__graph.png class_qwt_abstract_scale-members.html class_qwt_abstract_scale_draw.html class_qwt_abstract_scale_draw__inherit__graph.png class_qwt_abstract_scale_draw__inherit__graph.png class_qwt_abstract_scale_draw-members.html class_qwt_abstract_slider.html class_qwt_abstract_slider__inherit__graph.png class_qwt_abstract_slider__inherit__graph.png class_qwt_abstract_slider-members.html class_qwt_alpha_color_map.html class_qwt_alpha_color_map__inherit__graph.png class_qwt_alpha_color_map__inherit__graph.png class_qwt_alpha_color_map-members.html class_qwt_analog_clock.html class_qwt_analog_clock__inherit__graph.png class_qwt_analog_clock__inherit__graph.png analogclock.png class_qwt_analog_clock-members.html class_qwt_array_data.html class_qwt_array_data__inherit__graph.png class_qwt_array_data__inherit__graph.png class_qwt_array_data-members.html class_qwt_arrow_button.html class_qwt_arrow_button-members.html class_qwt_clipper.html class_qwt_clipper-members.html class_qwt_color_map.html class_qwt_color_map__inherit__graph.png class_qwt_color_map__inherit__graph.png class_qwt_color_map-members.html class_qwt_compass.html class_qwt_compass__inherit__graph.png class_qwt_compass__inherit__graph.png dials1.png class_qwt_compass-members.html class_qwt_compass_magnet_needle.html class_qwt_compass_magnet_needle__inherit__graph.png class_qwt_compass_magnet_needle__inherit__graph.png class_qwt_compass_magnet_needle-members.html class_qwt_compass_rose.html class_qwt_compass_rose__inherit__graph.png class_qwt_compass_rose__inherit__graph.png class_qwt_compass_rose-members.html class_qwt_compass_wind_arrow.html class_qwt_compass_wind_arrow__inherit__graph.png class_qwt_compass_wind_arrow__inherit__graph.png class_qwt_compass_wind_arrow-members.html class_qwt_counter.html class_qwt_counter__inherit__graph.png class_qwt_counter__inherit__graph.png class_qwt_counter-members.html class_qwt_c_pointer_data.html class_qwt_c_pointer_data__inherit__graph.png class_qwt_c_pointer_data__inherit__graph.png class_qwt_c_pointer_data-members.html class_qwt_curve_fitter.html class_qwt_curve_fitter__inherit__graph.png class_qwt_curve_fitter__inherit__graph.png class_qwt_curve_fitter-members.html class_qwt_data.html class_qwt_data__inherit__graph.png class_qwt_data__inherit__graph.png class_qwt_data-members.html class_qwt_dial.html class_qwt_dial__inherit__graph.png class_qwt_dial__inherit__graph.png dials2.png class_qwt_dial-members.html class_qwt_dial_needle.html class_qwt_dial_needle__inherit__graph.png class_qwt_dial_needle__inherit__graph.png class_qwt_dial_needle-members.html class_qwt_dial_scale_draw.html class_qwt_dial_scale_draw__inherit__graph.png class_qwt_dial_scale_draw__inherit__graph.png class_qwt_dial_scale_draw-members.html class_qwt_dial_simple_needle.html class_qwt_dial_simple_needle__inherit__graph.png class_qwt_dial_simple_needle__inherit__graph.png class_qwt_dial_simple_needle-members.html class_qwt_double_interval.html class_qwt_double_interval-members.html class_qwt_double_range.html class_qwt_double_range__inherit__graph.png class_qwt_double_range__inherit__graph.png class_qwt_double_range-members.html class_qwt_dyn_grid_layout.html class_qwt_dyn_grid_layout-members.html class_qwt_event_pattern.html class_qwt_event_pattern__inherit__graph.png class_qwt_event_pattern__inherit__graph.png class_qwt_event_pattern-members.html class_qwt_event_pattern_1_1_key_pattern.html class_qwt_event_pattern_1_1_key_pattern-members.html class_qwt_event_pattern_1_1_mouse_pattern.html class_qwt_event_pattern_1_1_mouse_pattern-members.html class_qwt_interval_data.html class_qwt_interval_data-members.html class_qwt_knob.html class_qwt_knob__inherit__graph.png class_qwt_knob__inherit__graph.png knob.png class_qwt_knob-members.html class_qwt_legend.html class_qwt_legend-members.html class_qwt_legend_item.html class_qwt_legend_item__inherit__graph.png class_qwt_legend_item__inherit__graph.png class_qwt_legend_item-members.html class_qwt_legend_item_manager.html class_qwt_legend_item_manager__inherit__graph.png class_qwt_legend_item_manager__inherit__graph.png class_qwt_legend_item_manager-members.html class_qwt_linear_color_map.html class_qwt_linear_color_map__inherit__graph.png class_qwt_linear_color_map__inherit__graph.png class_qwt_linear_color_map-members.html class_qwt_linear_scale_engine.html class_qwt_linear_scale_engine__inherit__graph.png class_qwt_linear_scale_engine__inherit__graph.png class_qwt_linear_scale_engine-members.html class_qwt_log10_scale_engine.html class_qwt_log10_scale_engine__inherit__graph.png class_qwt_log10_scale_engine__inherit__graph.png class_qwt_log10_scale_engine-members.html class_qwt_magnifier.html class_qwt_magnifier__inherit__graph.png class_qwt_magnifier__inherit__graph.png class_qwt_magnifier-members.html class_qwt_math_m_l_text_engine.html class_qwt_math_m_l_text_engine__inherit__graph.png class_qwt_math_m_l_text_engine__inherit__graph.png class_qwt_math_m_l_text_engine-members.html class_qwt_metrics_map.html class_qwt_metrics_map-members.html class_qwt_painter.html class_qwt_painter-members.html class_qwt_panner.html class_qwt_panner__inherit__graph.png class_qwt_panner__inherit__graph.png class_qwt_panner-members.html class_qwt_picker.html class_qwt_picker__inherit__graph.png class_qwt_picker__inherit__graph.png class_qwt_picker-members.html class_qwt_picker_click_point_machine.html class_qwt_picker_click_point_machine__inherit__graph.png class_qwt_picker_click_point_machine__inherit__graph.png class_qwt_picker_click_point_machine-members.html class_qwt_picker_click_rect_machine.html class_qwt_picker_click_rect_machine__inherit__graph.png class_qwt_picker_click_rect_machine__inherit__graph.png class_qwt_picker_click_rect_machine-members.html class_qwt_picker_drag_point_machine.html class_qwt_picker_drag_point_machine__inherit__graph.png class_qwt_picker_drag_point_machine__inherit__graph.png class_qwt_picker_drag_point_machine-members.html class_qwt_picker_drag_rect_machine.html class_qwt_picker_drag_rect_machine__inherit__graph.png class_qwt_picker_drag_rect_machine__inherit__graph.png class_qwt_picker_drag_rect_machine-members.html class_qwt_picker_machine.html class_qwt_picker_machine__inherit__graph.png class_qwt_picker_machine__inherit__graph.png class_qwt_picker_machine-members.html class_qwt_picker_polygon_machine.html class_qwt_picker_polygon_machine__inherit__graph.png class_qwt_picker_polygon_machine__inherit__graph.png class_qwt_picker_polygon_machine-members.html class_qwt_plain_text_engine.html class_qwt_plain_text_engine__inherit__graph.png class_qwt_plain_text_engine__inherit__graph.png class_qwt_plain_text_engine-members.html class_qwt_plot.html class_qwt_plot__inherit__graph.png class_qwt_plot__inherit__graph.png plot.png class_qwt_plot-members.html class_qwt_plot_canvas.html class_qwt_plot_canvas-members.html class_qwt_plot_curve.html class_qwt_plot_curve__inherit__graph.png class_qwt_plot_curve__inherit__graph.png class_qwt_plot_curve-members.html class_qwt_plot_dict.html class_qwt_plot_dict__inherit__graph.png class_qwt_plot_dict__inherit__graph.png class_qwt_plot_dict-members.html class_qwt_plot_grid.html class_qwt_plot_grid__inherit__graph.png class_qwt_plot_grid__inherit__graph.png class_qwt_plot_grid-members.html class_qwt_plot_item.html class_qwt_plot_item__inherit__graph.png class_qwt_plot_item__inherit__graph.png class_qwt_plot_item-members.html class_qwt_plot_layout.html class_qwt_plot_layout-members.html class_qwt_plot_magnifier.html class_qwt_plot_magnifier__inherit__graph.png class_qwt_plot_magnifier__inherit__graph.png class_qwt_plot_magnifier-members.html class_qwt_plot_marker.html class_qwt_plot_marker__inherit__graph.png class_qwt_plot_marker__inherit__graph.png class_qwt_plot_marker-members.html class_qwt_plot_panner.html class_qwt_plot_panner__inherit__graph.png class_qwt_plot_panner__inherit__graph.png class_qwt_plot_panner-members.html class_qwt_plot_picker.html class_qwt_plot_picker__inherit__graph.png class_qwt_plot_picker__inherit__graph.png class_qwt_plot_picker-members.html class_qwt_plot_print_filter.html class_qwt_plot_print_filter-members.html class_qwt_plot_raster_item.html class_qwt_plot_raster_item__inherit__graph.png class_qwt_plot_raster_item__inherit__graph.png class_qwt_plot_raster_item-members.html class_qwt_plot_rescaler.html class_qwt_plot_rescaler-members.html class_qwt_plot_scale_item.html class_qwt_plot_scale_item__inherit__graph.png class_qwt_plot_scale_item__inherit__graph.png class_qwt_plot_scale_item-members.html class_qwt_plot_spectrogram.html class_qwt_plot_spectrogram__inherit__graph.png class_qwt_plot_spectrogram__inherit__graph.png spectrogram3.png class_qwt_plot_spectrogram-members.html class_qwt_plot_svg_item.html class_qwt_plot_svg_item__inherit__graph.png class_qwt_plot_svg_item__inherit__graph.png class_qwt_plot_svg_item-members.html class_qwt_plot_zoomer.html class_qwt_plot_zoomer__inherit__graph.png class_qwt_plot_zoomer__inherit__graph.png class_qwt_plot_zoomer-members.html class_qwt_polygon_f_data.html class_qwt_polygon_f_data__inherit__graph.png class_qwt_polygon_f_data__inherit__graph.png class_qwt_polygon_f_data-members.html class_qwt_raster_data.html class_qwt_raster_data__inherit__graph.png class_qwt_raster_data__inherit__graph.png class_qwt_raster_data-members.html class_qwt_rich_text_engine.html class_qwt_rich_text_engine__inherit__graph.png class_qwt_rich_text_engine__inherit__graph.png class_qwt_rich_text_engine-members.html class_qwt_round_scale_draw.html class_qwt_round_scale_draw__inherit__graph.png class_qwt_round_scale_draw__inherit__graph.png class_qwt_round_scale_draw-members.html class_qwt_scale_arithmetic.html class_qwt_scale_arithmetic-members.html class_qwt_scale_div.html class_qwt_scale_div-members.html class_qwt_scale_draw.html class_qwt_scale_draw__inherit__graph.png class_qwt_scale_draw__inherit__graph.png class_qwt_scale_draw-members.html class_qwt_scale_engine.html class_qwt_scale_engine__inherit__graph.png class_qwt_scale_engine__inherit__graph.png class_qwt_scale_engine-members.html class_qwt_scale_map.html class_qwt_scale_map-members.html class_qwt_scale_transformation.html class_qwt_scale_transformation-members.html class_qwt_scale_widget.html class_qwt_scale_widget-members.html class_qwt_simple_compass_rose.html class_qwt_simple_compass_rose__inherit__graph.png class_qwt_simple_compass_rose__inherit__graph.png class_qwt_simple_compass_rose-members.html class_qwt_slider.html class_qwt_slider__inherit__graph.png class_qwt_slider__inherit__graph.png sliders.png class_qwt_slider-members.html class_qwt_spline.html class_qwt_spline-members.html class_qwt_spline_curve_fitter.html class_qwt_spline_curve_fitter__inherit__graph.png class_qwt_spline_curve_fitter__inherit__graph.png class_qwt_spline_curve_fitter-members.html class_qwt_symbol.html class_qwt_symbol-members.html class_qwt_text.html class_qwt_text-members.html class_qwt_text_engine.html class_qwt_text_engine__inherit__graph.png class_qwt_text_engine__inherit__graph.png class_qwt_text_engine-members.html class_qwt_text_label.html class_qwt_text_label__inherit__graph.png class_qwt_text_label__inherit__graph.png class_qwt_text_label-members.html class_qwt_thermo.html class_qwt_thermo__inherit__graph.png class_qwt_thermo__inherit__graph.png sysinfo.png class_qwt_thermo-members.html class_qwt_wheel.html class_qwt_wheel__inherit__graph.png class_qwt_wheel__inherit__graph.png class_qwt_wheel-members.html graph_legend.png graph_legend.html dir_24fcbade20721d6ed73b69cf81173a70.html dir_24fcbade20721d6ed73b69cf81173a70_dep.png dir_24fcbade20721d6ed73b69cf81173a70_dep.png dir_4118f540b2f97d7768d69ea313198c2a.html dir_4118f540b2f97d7768d69ea313198c2a_dep.png dir_4118f540b2f97d7768d69ea313198c2a_dep.png dir_2ff4213617fffae17c49a9829be91ab6.html dir_2ff4213617fffae17c49a9829be91ab6_dep.png dir_2ff4213617fffae17c49a9829be91ab6_dep.png form_0.png form_1.png form_2.png form_3.png index.html plot.png plot.png pages.html annotated.html classes.html hierarchy.html inherits.html inherit_graph_0.png inherit_graph_1.png inherit_graph_2.png inherit_graph_3.png inherit_graph_4.png inherit_graph_5.png inherit_graph_6.png inherit_graph_7.png inherit_graph_8.png inherit_graph_9.png inherit_graph_10.png inherit_graph_11.png inherit_graph_12.png inherit_graph_13.png inherit_graph_14.png inherit_graph_15.png inherit_graph_16.png inherit_graph_17.png inherit_graph_18.png inherit_graph_19.png inherit_graph_20.png inherit_graph_21.png inherit_graph_22.png inherit_graph_23.png inherit_graph_24.png inherit_graph_25.png inherit_graph_26.png inherit_graph_27.png inherit_graph_28.png inherit_graph_29.png inherit_graph_30.png inherit_graph_31.png inherit_graph_32.png inherit_graph_33.png inherit_graph_34.png inherit_graph_35.png inherit_graph_36.png inherit_graph_37.png inherit_graph_38.png functions.html functions_0x62.html functions_0x63.html functions_0x64.html functions_0x65.html functions_0x66.html functions_0x67.html functions_0x68.html functions_0x69.html functions_0x6b.html functions_0x6c.html functions_0x6d.html functions_0x6e.html functions_0x6f.html functions_0x70.html functions_0x72.html functions_0x73.html functions_0x74.html functions_0x75.html functions_0x76.html functions_0x77.html functions_0x78.html functions_0x79.html functions_0x7a.html functions_0x7e.html functions_func.html functions_func_0x62.html functions_func_0x63.html functions_func_0x64.html functions_func_0x65.html functions_func_0x66.html functions_func_0x67.html functions_func_0x68.html functions_func_0x69.html functions_func_0x6b.html functions_func_0x6c.html functions_func_0x6d.html functions_func_0x6e.html functions_func_0x6f.html functions_func_0x70.html functions_func_0x72.html functions_func_0x73.html functions_func_0x74.html functions_func_0x75.html functions_func_0x76.html functions_func_0x77.html functions_func_0x78.html functions_func_0x79.html functions_func_0x7a.html functions_func_0x7e.html functions_enum.html qwt5-5.2.3/doc/html/class_qwt_math_m_l_text_engine-members.html0000644000175000017500000001244512052741140024241 0ustar gudjongudjon Qwt User's Guide: Member List
QwtMathMLTextEngine Member List

This is the complete list of members for QwtMathMLTextEngine, including all inherited members.

draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const QwtMathMLTextEnginevirtual
heightForWidth(const QFont &font, int flags, const QString &text, int width) const QwtMathMLTextEnginevirtual
mightRender(const QString &) const QwtMathMLTextEnginevirtual
QwtMathMLTextEngine()QwtMathMLTextEngine
QwtTextEngine()QwtTextEngineprotected
textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const QwtMathMLTextEnginevirtual
textSize(const QFont &font, int flags, const QString &text) const QwtMathMLTextEnginevirtual
~QwtMathMLTextEngine()QwtMathMLTextEnginevirtual
~QwtTextEngine()QwtTextEnginevirtual
qwt5-5.2.3/doc/html/qwt__knob_8h_source.html0000644000175000017500000003653312052741135020332 0ustar gudjongudjon Qwt User's Guide: qwt_knob.h Source File
Qwt User's Guide  5.2.3
qwt_knob.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_KNOB_H
11 #define QWT_KNOB_H
12 
13 #include "qwt_global.h"
14 #include "qwt_abstract_slider.h"
15 #include "qwt_abstract_scale.h"
16 
17 class QwtRoundScaleDraw;
18 
34 class QWT_EXPORT QwtKnob : public QwtAbstractSlider, public QwtAbstractScale
35 {
36  Q_OBJECT
37  Q_ENUMS (Symbol)
38  Q_PROPERTY( int knobWidth READ knobWidth WRITE setKnobWidth )
39  Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
40  Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle )
41  Q_PROPERTY( Symbol symbol READ symbol WRITE setSymbol )
42 
43 public:
49  enum Symbol { Line, Dot };
50 
51  explicit QwtKnob(QWidget* parent = NULL);
52 #if QT_VERSION < 0x040000
53  explicit QwtKnob(QWidget* parent, const char *name);
54 #endif
55  virtual ~QwtKnob();
56 
57  void setKnobWidth(int w);
58  int knobWidth() const;
59 
60  void setTotalAngle (double angle);
61  double totalAngle() const;
62 
63  void setBorderWidth(int bw);
64  int borderWidth() const;
65 
66  void setSymbol(Symbol);
67  Symbol symbol() const;
68 
69  virtual QSize sizeHint() const;
70  virtual QSize minimumSizeHint() const;
71 
72  void setScaleDraw(QwtRoundScaleDraw *);
73  const QwtRoundScaleDraw *scaleDraw() const;
74  QwtRoundScaleDraw *scaleDraw();
75 
76 protected:
77  virtual void paintEvent(QPaintEvent *e);
78  virtual void resizeEvent(QResizeEvent *e);
79 
80  void draw(QPainter *p, const QRect& ur);
81  void drawKnob(QPainter *p, const QRect &r);
82  void drawMarker(QPainter *p, double arc, const QColor &c);
83 
84 private:
85  void initKnob();
86  void layoutKnob( bool update = true );
87  double getValue(const QPoint &p);
88  void getScrollMode( const QPoint &p, int &scrollMode, int &direction );
89  void recalcAngle();
90 
91  virtual void valueChange();
92  virtual void rangeChange();
93  virtual void scaleChange();
94  virtual void fontChange(const QFont &oldFont);
95 
96  class PrivateData;
97  PrivateData *d_data;
98 };
99 
100 #endif
qwt5-5.2.3/doc/html/inherit_graph_38.map0000644000175000017500000000043512052741163017327 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial_scale_draw__inherit__graph.md50000644000175000017500000000004012052741137024451 0ustar gudjongudjonab99e44af4b96d7e1c9cafdf8959a019qwt5-5.2.3/doc/html/functions_0x69.html0000644000175000017500000003006312052741151017154 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- i -

qwt5-5.2.3/doc/html/inherit_graph_13.png0000644000175000017500000000373012052741162017327 0ustar gudjongudjon‰PNG  IHDRÓ%W®KŠbKGD˙˙˙ ˝§“ŤIDATxśíš}HSßÇĎ]{¸…[ÚĚ©•Š6Dé&”˘YęȦ -"’R‰˛(¨0MR“Ę\šłţ(HHɤd% ÂÜ2ť•ĎŰrÎĚ.[óüţ¸żďeß='âżçő×9źťóůĽĎî{—sw.!IJà[â? r‚óô€ś‡ ¦Mż§§çŇĄK´HA¬Vř|~]]—˵b6϶™™™==="‘hyµ!V3Ź?nnnÎĚĚ´ÚŢó"‘¨ĄĄeąT!V?†ŮŃ>AČyz@ÎCĐr‚óô°xçi4šśś6›RXX833ăzŠZ­Ćqśl`v´¶¶.ZŚ‹äľľľéééăăăžL$K©$%%Ĺ:! ^ÚB6WÂÚݲHç©TŞŹ÷ęŐ+Á —ËD"‘[óQp8řoŇÓÓ'ĆuňŹ?â8~üřńĄJţW0™Ěׯ_kµZ*ŇŐŐĺů·´VÎÚÝ`sů322222 ;Oź>mYXXرcGQQQRRRii)„pll păĆ áÄÄ„uŃîîn{çA÷ďß_\\L¶§¦¦L¦FŁ™››;q℟ź_``ŕŮłgÍfłJĄ ®­­ĺóů ©©I§ÓąH®P(|}}Év___ll,ŽăAAA>´žHˇÓéś˝s玗—ד'Ol@U*Yצ‘••UVVF‰ÉÍÍÍÍÍĄ ‰DÂçó7oŢ|á“ÉDM·N!lii Çq<""˘łłBčP$-kw  ąąŮ6hÓ÷ÄyFŁ‘Á` ŮÄĺrůÖ­[oÝşµoß>áŁGŹx<^rr2ŮŽŠŠ˛ż66444…B˛]]]!ĚËËËÎÎÖét±±±·oßV©Tk×®ÍĎĎ7Ť×®] €Ž.<ÉřřxVVÖž={ČnZZÚ•+W~˙ţ]WWççççl˘Ă˘l6;77wbb¡{Č„íííQQQdd~~ŢÇÇ§ŁŁ*$‹8055500yóćM‡Î3Ť,ëĺË—AÔÔÔ„……9ąBÖnÍ’9oppĂ0łŮlW*•\.·ŻŻŹËĺšÍćS§NóxĽ?ţśŮßi¬ÓrąÜ”””‘‘2C˙Ż_żĚfs}}˝Ă[„ĐEQ­VK•°`™Đb±lÚ´I©TBe2ŮîÝ»©BA0 ŤFCŽ—Ëĺ‘‘‘ť7==Íápćçç‚p!r%¬Ý‡Îspzć–Ť7böýű÷ĐĐPëřŘŘżżDD„··woooww·L&“ÉdJĄ˛««ëîÝ»Ö9AöÉ“““ĺrąT*U*•Ďź?ź0›ÍŢŢŢÖŐl6Ű××Ŕ`8ŘŞ:KP(‰ð-[¶8[ ‹˘dĂ­k †D"©ŻŻŻ¨¨hllĚÉɡ>šśś„„„ÝĐĐĐŃŃQ‡I|||ž={VZZšźźsýúu@ŕPäŠZ» 3“ÇăĹÇÇWVVR‘ňňňáááĘĘĘÔÔTŔŢ˝{ŰÚÚ&''…BaBBBkkëŘŘX\\ś'ÉĹbq[[[kkkZZš———@ Xłf őś››{˙ţ=prč˝^ź——wďŢ˝ŢŢŢ«WŻ:ćIŃżpôčѦ¦¦ŃŃŃ·oß:tŠűűűľ~ýJv‡‡‡đź×8(#±~ýúööv­V›””$‹ť‰\ikwĆ"=[UUŐŘŘXPPđůóg‚ fggĂĂĂ?|řpńâE@rrrMMM\\†a ŐŐŐIII, Ă0‹Ĺb6›]dNIIQ«ŐUUUR©ŔápŇÓÓ őz˝V«ÍĘĘŞ¨¨p8Ń“ä˙żĎ3™ÓÓÓĄĄĄ‹Ĺh4R©†çE=D(†„„HĄŇÔÔÔuëÖQq‡sđŕÁ‚‚­VűĺË—’’’#GŽřřřL¦/^čőúňňrr¤ĹbILL|÷îÇqÇ˙V$]kw#ÂĂg[áĐĐPvv¶@ `łŮˇˇˇEEEŃŃŃ%%%ÂŮŮY‹E>ĐŤŚŚęęę „?ţܶm—Ë}ó捽’3gΙĹbqPPĐÂÂŮ5 ŮŮŮ|>źĎç;vl~~ŢáNČ:ą‹ÍÇĺË—y<^XXŘÓ§O…Bá®]»¨‰ßľ}#?~üđ°(tţHk3¬ŞŞ ĐŃŃa×ëő‡ްaC``ŕąsçL&„°¤¤„Çă655Q# Qwt User's Guide: Member List
QwtPlotRasterItem Member List

This is the complete list of members for QwtPlotRasterItem, including all inherited members.

alpha() const QwtPlotRasterItem
attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotItemvirtual
CachePolicy enum nameQwtPlotRasterItem
cachePolicy() const QwtPlotRasterItem
detach()QwtPlotIteminline
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const QwtPlotRasterItemvirtual
hide()QwtPlotItem
invalidateCache()QwtPlotRasterItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
NoCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
PaintCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
QwtPlotRasterItem(const QString &title=QString::null)QwtPlotRasterItemexplicit
QwtPlotRasterItem(const QwtText &title)QwtPlotRasterItemexplicit
rasterHint(const QwtDoubleRect &) const QwtPlotRasterItemvirtual
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
renderImage(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &area) const =0QwtPlotRasterItemprotectedpure virtual
rtti() const QwtPlotItemvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
ScreenCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
setAlpha(int alpha)QwtPlotRasterItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setCachePolicy(CachePolicy)QwtPlotRasterItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
xAxis() const QwtPlotItem
yAxis() const QwtPlotItem
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
~QwtPlotRasterItem()QwtPlotRasterItemvirtual
qwt5-5.2.3/doc/html/class_qwt_plot_spectrogram-members.html0000644000175000017500000006525012052741142023460 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotSpectrogram Member List

This is the complete list of members for QwtPlotSpectrogram, including all inherited members.

alpha() const QwtPlotRasterItem
attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotSpectrogramvirtual
cachePolicy() const QwtPlotRasterItem
CachePolicy enum nameQwtPlotRasterItem
colorMap() const QwtPlotSpectrogram
contourLevels() const QwtPlotSpectrogram
ContourMode enum value (defined in QwtPlotSpectrogram)QwtPlotSpectrogram
contourPen(double level) const QwtPlotSpectrogramvirtual
contourRasterSize(const QwtDoubleRect &, const QRect &) const QwtPlotSpectrogramprotectedvirtual
data() const QwtPlotSpectrogram
defaultContourPen() const QwtPlotSpectrogram
detach()QwtPlotIteminline
DisplayMode enum nameQwtPlotSpectrogram
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const QwtPlotSpectrogramvirtual
drawContourLines(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const QwtPlotSpectrogramprotectedvirtual
hide()QwtPlotItem
ImageMode enum value (defined in QwtPlotSpectrogram)QwtPlotSpectrogram
invalidateCache()QwtPlotRasterItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
NoCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
PaintCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
QwtPlotRasterItem(const QString &title=QString::null)QwtPlotRasterItemexplicit
QwtPlotRasterItem(const QwtText &title)QwtPlotRasterItemexplicit
QwtPlotSpectrogram(const QString &title=QString::null)QwtPlotSpectrogramexplicit
rasterHint(const QwtDoubleRect &) const QwtPlotSpectrogramvirtual
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
renderContourLines(const QwtDoubleRect &rect, const QSize &raster) const QwtPlotSpectrogramprotectedvirtual
RenderHint enum nameQwtPlotItem
renderImage(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &rect) const QwtPlotSpectrogramprotectedvirtual
rtti() const QwtPlotSpectrogramvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
ScreenCache enum value (defined in QwtPlotRasterItem)QwtPlotRasterItem
setAlpha(int alpha)QwtPlotRasterItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setCachePolicy(CachePolicy)QwtPlotRasterItem
setColorMap(const QwtColorMap &)QwtPlotSpectrogram
setConrecAttribute(QwtRasterData::ConrecAttribute, bool on)QwtPlotSpectrogram
setContourLevels(const QwtValueList &)QwtPlotSpectrogram
setData(const QwtRasterData &data)QwtPlotSpectrogram
setDefaultContourPen(const QPen &)QwtPlotSpectrogram
setDisplayMode(DisplayMode, bool on=true)QwtPlotSpectrogram
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
testConrecAttribute(QwtRasterData::ConrecAttribute) const QwtPlotSpectrogram
testDisplayMode(DisplayMode) const QwtPlotSpectrogram
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
xAxis() const QwtPlotItem
yAxis() const QwtPlotItem
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
~QwtPlotRasterItem()QwtPlotRasterItemvirtual
~QwtPlotSpectrogram()QwtPlotSpectrogramvirtual
qwt5-5.2.3/doc/html/qwt__text__engine_8h_source.html0000644000175000017500000004541112052741135022044 0ustar gudjongudjon Qwt User's Guide: qwt_text_engine.h Source File
Qwt User's Guide  5.2.3
qwt_text_engine.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2003 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_TEXT_ENGINE_H
13 #define QWT_TEXT_ENGINE_H 1
14 
15 #include <qsize.h>
16 #include "qwt_global.h"
17 
18 class QFont;
19 class QRect;
20 class QString;
21 class QPainter;
22 
38 class QWT_EXPORT QwtTextEngine
39 {
40 public:
41  virtual ~QwtTextEngine();
42 
53  virtual int heightForWidth(const QFont &font, int flags,
54  const QString &text, int width) const = 0;
55 
65  virtual QSize textSize(const QFont &font, int flags,
66  const QString &text) const = 0;
67 
74  virtual bool mightRender(const QString &text) const = 0;
75 
91  virtual void textMargins(const QFont &font, const QString &text,
92  int &left, int &right, int &top, int &bottom) const = 0;
93 
102  virtual void draw(QPainter *painter, const QRect &rect,
103  int flags, const QString &text) const = 0;
104 
105 protected:
106  QwtTextEngine();
107 };
108 
109 
116 class QWT_EXPORT QwtPlainTextEngine: public QwtTextEngine
117 {
118 public:
120  virtual ~QwtPlainTextEngine();
121 
122  virtual int heightForWidth(const QFont &font, int flags,
123  const QString &text, int width) const;
124 
125  virtual QSize textSize(const QFont &font, int flags,
126  const QString &text) const;
127 
128  virtual void draw(QPainter *painter, const QRect &rect,
129  int flags, const QString &text) const;
130 
131  virtual bool mightRender(const QString &) const;
132 
133  virtual void textMargins(const QFont &, const QString &,
134  int &left, int &right, int &top, int &bottom) const;
135 
136 private:
137  class PrivateData;
138  PrivateData *d_data;
139 };
140 
141 
142 #ifndef QT_NO_RICHTEXT
143 
150 class QWT_EXPORT QwtRichTextEngine: public QwtTextEngine
151 {
152 public:
154 
155  virtual int heightForWidth(const QFont &font, int flags,
156  const QString &text, int width) const;
157 
158  virtual QSize textSize(const QFont &font, int flags,
159  const QString &text) const;
160 
161  virtual void draw(QPainter *painter, const QRect &rect,
162  int flags, const QString &text) const;
163 
164  virtual bool mightRender(const QString &) const;
165 
166  virtual void textMargins(const QFont &, const QString &,
167  int &left, int &right, int &top, int &bottom) const;
168 private:
169  QString taggedText(const QString &, int flags) const;
170 };
171 
172 #endif // !QT_NO_RICHTEXT
173 
174 #endif
qwt5-5.2.3/doc/html/class_qwt_event_pattern_1_1_key_pattern.html0000644000175000017500000000756112052741140024366 0ustar gudjongudjon Qwt User's Guide: QwtEventPattern::KeyPattern Class Reference
QwtEventPattern::KeyPattern Class Reference

#include <qwt_event_pattern.h>

List of all members.

Public Member Functions

 KeyPattern (int k=0, int st=Qt::NoButton)

Public Attributes

int key
int state

Detailed Description

A pattern for key events.

qwt5-5.2.3/doc/html/ftv2folderopen.png0000644000175000017500000000112512052741134017133 0ustar gudjongudjon‰PNG  IHDRÚ}\IDATxí]?oÓP˙9iš4i°;Ťii“¶‰ZЉ‘‰ŔŔ7`bčÔ٬ťŘů,HěU'ô$*Tµ]‚TˇDPÚÄ6wĎ}‰;ˇC; ażÓťßźűÝďjAŔ­InSţ}€9H“ÓŽ|?íÁ÷ =_ĘĆŠ­†ĄŔue*;ŻYEäsYäćB˘źżţÄ—ŁsŮ˝˝Ůچ É«›©ŔYÇq !GÇżv̇ąŃŘ®š °Ś‚ÔFą}qĄb]÷7í·0)Úd›ľ˙đ-čş}PfäŁÖY{4™ŃÂ@}úćôń2ŰüÔ—ńúĺNŚI‚ÁÇcçÁş%٬UаIłmc±ôĺĽÔĆťüČ>é¸xţt9Ć$µý OćVE*őU´Ě‚ç#ž×•ďűr@l$řP˙rHaaÇĄ ˛›dZ®rč‘ăqI„oĽřT\Ž,tŞj2FAxv-Lźp׌p TÄI/ \Ąsfí˝; jViTčú¤o^cpĹüĽűű»Ďb]”€˘¤<†aţŐś˛“ßÓy“٧9Ź:Śîů+ŔŹł€ńŕ,E žfł6éNŤÄEŁKU}Ü^;¶ŘnZ˘uß­US4— ѬëbížN¶.Úk¦ŘjTÄöş%µŞâ ťiŻVÄĘÝň§™ Čů¸)ů˙G€™ňşJ@T x”IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_picker__inherit__graph.map0000644000175000017500000000072712052741157023775 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_alpha_color_map__inherit__graph.png0000644000175000017500000000724712052741152024610 0ustar gudjongudjon‰PNG  IHDRŤp¬0d5bKGD˙˙˙ ˝§“\IDATxśíťkPW€Ďć‘ ‚Ü” ¶†Ş @Q"M QU2Z*#EĆę´ť"u¨T ÓśJˇ#h[n&Ňb?!Jĺ¦U>lAŤD| w€$!űýŘ6łĺąDqÓ}~0ŮsÎľç=űěŤ%ě`8/=„ĹNgVŕž°î ŕž°i!+Ëd˛ţţ~meŁĂś‡Ă šw„ üń‡››[~~ţĽ#,čxBXH÷˙‚ż>aÜ6Ŕ=aÜ6Ŕ=a䩥Ą…ËĺZZZęééŮÚÚĆÄÄ j^Ąąą™Bˇ¨«««}}}ŤŤŤ ÝÝÝÁ,WÔÜA;vě@Â0lcc3Ë/Śá©©©ÉĹĹĹČȨ¬¬l``€ÇăÝżßÍÍ홪ÔÔÖÖ˛X,???±XÜÖÖXSSłđÜH$REEEww·ş¤ĽĽ|ö‰˝8ŕ——7›[·n=|ř0şDĄRyzz9rÄŰŰ;)) †áŽŽ@bb" Ăťťťč {zzĽĽĽNź>ŤŽpěر„„†BBBLMM­­­Ź?.—Ë›ššôőő‘fÓÖÚŘŘ|űí·T*őŇĄKúúú{÷îMNNVGWGhhhpuuĄP(t:=;;†a$Brr˛™™™……ĹŃŁG …ć-ôĚ Ąçîihh@ <|řpR9ŹÇ[µjŐW_}ĺëë Ăpnn®‘‘ѶmŰĎNNNęÍ=<|÷Ýw-,,ôôôěěěŽ9˛aƸ¸8†‡‡‡Éd2rÇŐÖÖČČČ€aX&“ŮŰŰ":+++™L&•J566öđđHäŢŢŢwŢyÇÄÄdٲe}ôѤű=͵čĎiii€ŇŇŇIĺ'Nś022ZąreaaˇĂ[o˝…Ô¦¦¦ŇétssódgŇfť@0Xě, ŤFkjjR«ůÇ˙çVUU­^˝z±’ĂQ_WWgooŹ,Nţ?ęŐ«W{yy˝č¤p¦Ź^ÄŻOŘ÷„ pOŘ÷„ pOŘ`>ž:;;Oť:Ĺfł™Lćž={Îś9óäÉÍ«HĄŇ·ß~]’””Ä`0***4´ŃA3ÍÍÍÇŹßľ}»ŻŻoTT”†É«gY*•2ŚŹ?ţ]Ă0‡Ă™Snó`ΞZ[[ß××W*•77·«WŻŞW[¶lQ/NÍGĂpfĎÜ<ŤŽŽÖÖÖîŢ˝]AĐîÝ»oŢĽąqăFˇP¨««300‰D‘Hdgg—ťťM&“Ż_żnll (..ޱc‡ŤŤÍĘ•+KKK§vÔÓÓ# Ďť;—śś\UUuńâE€R©”H$ąąą»víúî»ď–?üđ››[QQ—ËE GGGE"“ÉD3 gNĚíý{4 ĐÝÝ=ićŢŢ^[[[*•zďŢ˝şşşĎ>ű¬´´ôÁµµµ111čĆ%%%rą<$$Ů2™L"‘¬X±Ý‚ ut:˝§§@"‘Ăý^妦¦„„‚Ô{Ҧ§§˝?I$’ĆĆFđ÷<Ő+++$2B˙´µ$ ¸:7&“Y\\%&ÝALÍg¦á̉ąOÎÎÎ|>_]RPPĐŮŮÉçó=<<®®®•••ýýýt:ÝŮŮąĽĽĽ··wÍš5ęö0 —””ÄÄÄdffffffeeM{7Ă02;; ŁŁŮ—§Î÷=44túôéŘŘŘôôôđđpu’k×®ýí·ßĐ-sss«««‘8ęČťťťčĂn¦Ú©ý˛X¬ŇŇŇžžžĆĆĆÍ›7kÎg¦á̉9ßGDGG ‚´´´¶¶6ą\>22Âĺrř༼ĽěěěÖÖÖ®®®ĽĽĽß˙ťĂáÉdOOO$r{{{VV:˛ćZ4666–––‰‰‰úúúĎĚg–ĂŃŔś=ŮŘŘś={V&“EGGoßľ] ZXXđx<Ŕúőë …““ŕŤ7ŢC.NK—.]ľ|y@@@AA»»;…BQôôôśôű ™LްaĂÁ?üđCWWW‡3m24-444::úý÷ß߼yłµµu\\ŔŢŢ>))©ˇˇ!222""˘ŞŞęÔ©SČa»dÉ.—;md͵hX,ÖźţÉb±f“Ď,‡ŁĽw‚ ¸¸¸yü]C.—KĄŇU«VÍuĹi‘JĄó¸ŘľśĚo8 #///88YÔÎs#===mI™üů6x=Ńétť9é- çeô„3Ü6Ŕ=aÜ6ü|ďÂ… —/_^”Tp4đO‰‰‰wîčÂě.:€ŁŁ#úń’΢“ŕ×'l€{¸'l€{Â˙?srËëä-ŹIEND®B`‚qwt5-5.2.3/doc/html/functions_func_0x64.html0000644000175000017500000004437312052741152020174 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- d -

qwt5-5.2.3/doc/html/class_qwt_picker_click_rect_machine__inherit__graph.md50000644000175000017500000000004012052741140026471 0ustar gudjongudjon645544dee3fd634649181b9c215df304qwt5-5.2.3/doc/html/class_qwt_painter.html0000644000175000017500000011301612052741140020076 0ustar gudjongudjon Qwt User's Guide: QwtPainter Class Reference
QwtPainter Class Reference

#include <qwt_painter.h>

List of all members.

Static Public Member Functions

static bool deviceClipping ()
static const QRect & deviceClipRect ()
static void drawColorBar (QPainter *painter, const QwtColorMap &, const QwtDoubleInterval &, const QwtScaleMap &, Qt::Orientation, const QRect &)
static void drawEllipse (QPainter *, const QRect &)
static void drawFocusRect (QPainter *, QWidget *)
static void drawFocusRect (QPainter *, QWidget *, const QRect &)
static void drawLine (QPainter *, int x1, int y1, int x2, int y2)
static void drawLine (QPainter *, const QPoint &p1, const QPoint &p2)
static void drawPie (QPainter *, const QRect &r, int a, int alen)
static void drawPoint (QPainter *, int x, int y)
static void drawPolygon (QPainter *, const QwtPolygon &pa)
static void drawPolyline (QPainter *, const QwtPolygon &pa)
static void drawRect (QPainter *, int x, int y, int w, int h)
static void drawRect (QPainter *, const QRect &rect)
static void drawRoundFrame (QPainter *, const QRect &, int width, const QPalette &, bool sunken)
static void drawSimpleRichText (QPainter *, const QRect &, int flags, QTextDocument &)
static void drawText (QPainter *, int x, int y, const QString &)
static void drawText (QPainter *, const QPoint &, const QString &)
static void drawText (QPainter *, int x, int y, int w, int h, int flags, const QString &)
static void drawText (QPainter *, const QRect &, int flags, const QString &)
static void fillRect (QPainter *, const QRect &, const QBrush &)
static const QwtMetricsMapmetricsMap ()
static void resetMetricsMap ()
static QPen scaledPen (const QPen &)
static void setClipRect (QPainter *, const QRect &)
static void setDeviceClipping (bool)
static void setMetricsMap (const QPaintDevice *layout, const QPaintDevice *device)
static void setMetricsMap (const QwtMetricsMap &)

Detailed Description

A collection of QPainter workarounds.

1) Clipping to coordinate system limits (Qt3 only)

On X11 pixel coordinates are stored in shorts. Qt produces overruns when mapping QCOORDS to shorts.

2) Scaling to device metrics

QPainter scales fonts, line and fill patterns to the metrics of the paint device. Other values like the geometries of rects, points remain device independend. To enable a device independent widget implementation, QwtPainter adds scaling of these geometries. (Unfortunately QPainter::scale scales both types of paintings, so the objects of the first type would be scaled twice).


Member Function Documentation

bool QwtPainter::deviceClipping ( )
inlinestatic

Returns whether device clipping is enabled. On X11 the default is enabled, otherwise it is disabled.

See also:
QwtPainter::setDeviceClipping()
const QRect & QwtPainter::deviceClipRect ( )
static

Returns rect for device clipping

See also:
QwtPainter::setDeviceClipping()
void QwtPainter::drawEllipse ( QPainter *  painter,
const QRect &  rect 
)
static

Wrapper for QPainter::drawEllipse()

void QwtPainter::drawLine ( QPainter *  painter,
int  x1,
int  y1,
int  x2,
int  y2 
)
static

Wrapper for QPainter::drawLine()

void QwtPainter::drawPie ( QPainter *  painter,
const QRect &  rect,
int  a,
int  alen 
)
static

Wrapper for QPainter::drawPie()

void QwtPainter::drawPoint ( QPainter *  painter,
int  x,
int  y 
)
static

Wrapper for QPainter::drawPoint()

void QwtPainter::drawPolygon ( QPainter *  painter,
const QwtPolygon &  pa 
)
static

Wrapper for QPainter::drawPolygon()

void QwtPainter::drawPolyline ( QPainter *  painter,
const QwtPolygon &  pa 
)
static

Wrapper for QPainter::drawPolyline()

void QwtPainter::drawRect ( QPainter *  painter,
int  x,
int  y,
int  w,
int  h 
)
static

Wrapper for QPainter::drawRect()

void QwtPainter::drawRect ( QPainter *  painter,
const QRect &  rect 
)
static

Wrapper for QPainter::drawRect()

void QwtPainter::drawSimpleRichText ( QPainter *  painter,
const QRect &  rect,
int  flags,
QTextDocument &  text 
)
static

Wrapper for QSimpleRichText::draw()

void QwtPainter::drawText ( QPainter *  painter,
int  x,
int  y,
const QString &  text 
)
static

Wrapper for QPainter::drawText()

void QwtPainter::drawText ( QPainter *  painter,
const QPoint &  pos,
const QString &  text 
)
static

Wrapper for QPainter::drawText()

void QwtPainter::drawText ( QPainter *  painter,
int  x,
int  y,
int  w,
int  h,
int  flags,
const QString &  text 
)
static

Wrapper for QPainter::drawText()

void QwtPainter::drawText ( QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text 
)
static

Wrapper for QPainter::drawText()

void QwtPainter::fillRect ( QPainter *  painter,
const QRect &  rect,
const QBrush &  brush 
)
static

Wrapper for QPainter::fillRect()

const QwtMetricsMap & QwtPainter::metricsMap ( )
static
Returns:
Metrics map
void QwtPainter::resetMetricsMap ( )
static

Reset the metrics map to the ratio 1:1

See also:
QwtPainter::setMetricsMap(), QwtPainter::resetMetricsMap()
QPen QwtPainter::scaledPen ( const QPen &  pen)
static

Scale a pen according to the layout metrics.

The width of non cosmetic pens is scaled from screen to layout metrics, so that they look similar on paint devices with different resolutions.

Parameters:
penUnscaled pen
Returns:
Scaled pen
void QwtPainter::setClipRect ( QPainter *  painter,
const QRect &  rect 
)
static

Wrapper for QPainter::setClipRect()

void QwtPainter::setDeviceClipping ( bool  enable)
static

En/Disable device clipping.

On X11 the default for device clipping is enabled, otherwise it is disabled.

See also:
QwtPainter::deviceClipping()
void QwtPainter::setMetricsMap ( const QPaintDevice *  layout,
const QPaintDevice *  device 
)
static

Scale all QwtPainter drawing operations using the ratio QwtPaintMetrics(from).logicalDpiX() / QwtPaintMetrics(to).logicalDpiX() and QwtPaintMetrics(from).logicalDpiY() / QwtPaintMetrics(to).logicalDpiY()

See also:
QwtPainter::resetScaleMetrics(), QwtPainter::scaleMetricsX(), QwtPainter::scaleMetricsY()
void QwtPainter::setMetricsMap ( const QwtMetricsMap map)
static

Change the metrics map

See also:
QwtPainter::resetMetricsMap(), QwtPainter::metricsMap()
qwt5-5.2.3/doc/html/class_qwt_compass.html0000644000175000017500000015166712052741164020125 0ustar gudjongudjon Qwt User's Guide: QwtCompass Class Reference

#include <qwt_compass.h>

Inheritance diagram for QwtCompass:

List of all members.

Public Member Functions

 QwtCompass (QWidget *parent=NULL)
virtual ~QwtCompass ()
const QMap< double, QString > & labelMap () const
QMap< double, QString > & labelMap ()
const QwtCompassRoserose () const
QwtCompassRoserose ()
void setLabelMap (const QMap< double, QString > &map)
void setRose (QwtCompassRose *rose)
- Public Member Functions inherited from QwtDial
 QwtDial (QWidget *parent=NULL)
virtual ~QwtDial ()
QRect boundingRect () const
QRect contentsRect () const
Direction direction () const
Shadow frameShadow () const
bool hasVisibleBackground () const
int lineWidth () const
double maxScaleArc () const
virtual QSize minimumSizeHint () const
double minScaleArc () const
Mode mode () const
const QwtDialNeedleneedle () const
QwtDialNeedleneedle ()
double origin () const
virtual QRect scaleContentsRect () const
QwtDialScaleDrawscaleDraw ()
const QwtDialScaleDrawscaleDraw () const
void setDirection (Direction)
void setFrameShadow (Shadow)
void setLineWidth (int)
void setMode (Mode)
virtual void setNeedle (QwtDialNeedle *)
virtual void setOrigin (double)
virtual void setScale (int maxMajIntv, int maxMinIntv, double step=0.0)
void setScaleArc (double min, double max)
virtual void setScaleDraw (QwtDialScaleDraw *)
void setScaleOptions (int)
void setScaleTicks (int minLen, int medLen, int majLen, int penWidth=1)
virtual void setWrapping (bool)
void showBackground (bool)
virtual QSize sizeHint () const
bool wrapping () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
virtual void setOrientation (Qt::Orientation o)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const

Protected Member Functions

virtual void drawRose (QPainter *, const QPoint &center, int radius, double north, QPalette::ColorGroup) const
virtual void drawScaleContents (QPainter *, const QPoint &center, int radius) const
virtual void keyPressEvent (QKeyEvent *)
virtual QwtText scaleLabel (double value) const
- Protected Member Functions inherited from QwtDial
virtual void drawContents (QPainter *) const
virtual void drawFocusIndicator (QPainter *) const
virtual void drawFrame (QPainter *p)
virtual void drawNeedle (QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const
virtual void drawScale (QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const
virtual void getScrollMode (const QPoint &, int &scrollMode, int &direction)
virtual double getValue (const QPoint &)
virtual void paintEvent (QPaintEvent *)
virtual void rangeChange ()
virtual void resizeEvent (QResizeEvent *)
virtual void updateMask ()
void updateScale ()
virtual void valueChange ()
- Protected Member Functions inherited from QwtAbstractSlider
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()

Additional Inherited Members

- Public Types inherited from QwtDial
enum  Direction {
  Clockwise,
  CounterClockwise
}
enum  Mode {
  RotateNeedle,
  RotateScale
}
enum  ScaleOptions {
  ScaleBackbone = 1,
  ScaleTicks = 2,
  ScaleLabel = 4
}
enum  Shadow {
  Plain = QFrame::Plain,
  Raised = QFrame::Raised,
  Sunken = QFrame::Sunken
}
- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Detailed Description

A Compass Widget.

QwtCompass is a widget to display and enter directions. It consists of a scale, an optional needle and rose.

dials1.png
Note:
The examples/dials example shows how to use QwtCompass.

Constructor & Destructor Documentation

QwtCompass::QwtCompass ( QWidget *  parent = NULL)
explicit

Constructor.

Parameters:
parentParent widget

Create a compass widget with a scale, no needle and no rose. The default origin is 270.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle.


Member Function Documentation

void QwtCompass::drawRose ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  north,
QPalette::ColorGroup  cg 
) const
protectedvirtual

Draw the compass rose

Parameters:
painterPainter
centerCenter of the compass
radiusof the circle, where to paint the rose
northDirection pointing north, in degrees counter clockwise
cgColor group
void QwtCompass::drawScaleContents ( QPainter *  painter,
const QPoint &  center,
int  radius 
) const
protectedvirtual

Draw the contents of the scale

Parameters:
painterPainter
centerCenter of the content circle
radiusRadius of the content circle

Reimplemented from QwtDial.

void QwtCompass::keyPressEvent ( QKeyEvent *  kev)
protectedvirtual

Handles key events

Beside the keys described in QwtDial::keyPressEvent numbers from 1-9 (without 5) set the direction according to their position on the num pad.

See also:
isReadOnly()

Reimplemented from QwtDial.

const QMap< double, QString > & QwtCompass::labelMap ( ) const
Returns:
map, mapping values to labels
See also:
setLabelMap()
QMap< double, QString > & QwtCompass::labelMap ( )
Returns:
map, mapping values to labels
See also:
setLabelMap()
const QwtCompassRose * QwtCompass::rose ( ) const
Returns:
rose
See also:
setRose()
QwtCompassRose * QwtCompass::rose ( )
Returns:
rose
See also:
setRose()
QwtText QwtCompass::scaleLabel ( double  value) const
protectedvirtual

Map a value to a corresponding label

Parameters:
valueValue that will be mapped
Returns:
Label, or QString::null

label() looks in a map for a corresponding label for value or return an null text.

See also:
labelMap(), setLabelMap()

Reimplemented from QwtDial.

void QwtCompass::setLabelMap ( const QMap< double, QString > &  map)

Set a map, mapping values to labels.

Parameters:
mapvalue to label map

The values of the major ticks are found by looking into this map. The default map consists of the labels N, NE, E, SE, S, SW, W, NW.

Warning:
The map will have no effect for values that are no major tick values. Major ticks can be changed by QwtScaleDraw::setScale
See also:
labelMap(), scaleDraw(), setScale()
void QwtCompass::setRose ( QwtCompassRose rose)

Set a rose for the compass

Parameters:
roseCompass rose
Warning:
The rose will be deleted, when a different rose is set or in ~QwtCompass
See also:
rose()
qwt5-5.2.3/doc/html/inherit_graph_7.png0000644000175000017500000002227012052741161017251 0ustar gudjongudjon‰PNG  IHDR[‹@ä­!bKGD˙˙˙ ˝§“ IDATxśíÝy\×Ú8đ3![†-*‹€HD¬•EÁ"T ÖĄZZ–O,·zŻZiu­űŇjAÚĎőµ´µnĄ˘¨÷ľVŻ^ uA©Xe‡@Ř $äüţľCLBDQ|ľţAď˝÷žjclccŁš˙`Ü/9>™@||ĽćŞ|`T€D"‘»»;‡ĂIKK“JĄ©©©………žžžO- ”{÷îÍš5kŢĽyb±¸¬¬,"""000++kPÓî;:ťž‘‘Q[[KEŇÓÓűţčúŹFŁmßľ˝´´ô…ÝăsŠPdddXXXbb˘“““ˇˇˇ««ëąsçĚĚĚvěŘáďď‡ެ¬$bĎž=ˇęęj‚ Agg'A‰$&&fÆ ź~ú©™™—ËýÇ?ţńŮgź‘/ĂĂĂMMM­¬¬ÖŻ_/—Ëóóómmm÷îÝËăńĚÍÍŹ?ľiÓ&.—knn~äȄ٠>>ŢÜÜÜŇŇrÍš5 …!”››;uęT}}}˛%BčäÉ“NNNúúú'NĽvíšÖžžŢĽyóŽ;F=äŁGŹQ7µŽÜŇŇÁăńlmmŹ;F='ŰÚÚ&%%™ššZZZ&''“ŤŰÚÚ–/_naa1zôčŐ«WWWW«nńé§ź.[¶Lsă«u$©Ö`CCChh(—˵±±9yňd‡zf _ÁÁÁÁÁÁşŰ455Ńh´˘˘"µxjjŞC\\Üś9s0Ćżţú+‡Ă™={6ąź/‘H–,YrđŕÁ¬¬¬;v«d2™‰‰ÉĹ‹kkkýüüBCC5#Ôüń/żüR^^~ăĆŤ>ř€ŠkŮÂÂB-sŞ=AjŮZXXčééQĎĎ­­­wîÜŃú¸bccÓŇŇÎź?ŻŁŁÖ źĎ'˘¸¸X3źgÍA7¨%&&=z4::ş  @&“577Ź?ţîÝ»ëׯGÍž=űŔ^^^AřúúîŰ·ĎĎĎŹÁ`g rą!´wďŢŘŘŘm۶‰D˘ŇŇҸ¸¸äää/ľř‚ĹbFGG×ÖÖ>|řpË–-‹-ęcVŃŃŃuuuyyy›7o^´hy Óéô†††ŘŘŘîî¦îîî™3gŢľ}!ÄfłŮl¶f„P ŘÚÚFDD,X°ŔŔŔ€Šk™Ĺb…††FEEŐÔÔíÚµKłPX,VPPPLLŚD"©­­]¸páwß}§ş}(&&&‰‰‰›6mŇŃQkÉdEFFVUU‰ĹbŞréÎˇŹ›ú şĎ4Ŕ+­/󤢢˘đđp &“igg·jŐ*77·-[¶`Ś››› ĆŢ˝{1Ćeeeˇ¤¤$ŚqKK‹“““±±q}}=ĆX(™Lź>ýŇĄKäȉ䣏>9rä¨QŁÖ¬YÓŐŐĄzŻu™\HHH°¶¶677ʉ‰éęęÂoÝş•ĂáŘŰŰź={V řűűcŚ:dmmÍfłÝÝÝ3335#Şw‘şrĺŠÚ]kY*•.\¸Ăá8::îŰ·ĎŘظ·„ÉĆááá<ŹÇă-]ş´˝˝ťÚ>ׯ_§š‘utě-X__Oľ×`eeuüřqÍ™E­˝t€™Ĺ×Nß+‚¦ŽŽrîĹS=ʇĐŃŁG«««Éĺ3g΂ˇÍgŔÁĚ"xl6{ňäÉCťĹP:{öě† š››=zôÍ7ßł*ĂT´KLL”H$cĆŚ™4i’ŤŤ 9«2ěÁw(—Ž“““L&ę,ĄĄĺżţőݎÎâE×€P= "z@Eô€™Ĺa®¸¸řűďżń÷‹1’Ë•L&<弼ţřăÍ T„álÚ´i'OžÔzYţ a0ĚY,k&ÓšÉäwtä55]{aw žćŻűŔo:ţjllż~ýˇPX‘QXZ*12byz:Ěá8s¦`ěXłˇÎ<¨ŕy47ËŇÓó…ÂBˇ°đŃŁz‹îáa7c†Ł··ăĉch´^/ /9¨ Żäňî[·Š22 …ÂÂÜÜ ŚńĉcĽ˝gĚptwËf3†:A0 "]0Ć”“güQÚŢŢee5ŇÇgĽ··ăôéăFŽ4ęÁŠ´¨ŞjĽrE$ŢşUTW×bbb@žx{;ÚŘđ†:;0 "€ż¨M 0™ô©S˙špv­§ď#ľ "ĽÖT§ňň*ş»±‹Ë_Snn¶úú̡NĽhP^;ŞSwď>jkë=zÄŰo;y{;zz:š u‚`(AEx]PS™™Eµµ-Ž>9AS@T„ᬥE––Ö35Ŕ`čM›fS@¨ĂŤŽ©WW[ş@E&îß/Sťŕóą~~ooÇiÓěÍĚŚ‡:;đĘ€Šđ «®nş|9Źš06fűú:ÁÔ訯S&ڦÓajô T„W€ÚÔ€Bˇś4ÉŠś2ĹĆĐ5Ô ‚á*ÂËKmjŔÂÂ$ `‚··Ł‡‡ť…g¨łĂT„ÁŐŃѵcÇ˙ŢşU”śĽĽ/˙ĆÔÔŔíŰĹ55Í,}ĆŚńÎ05^ řĄA”•U˛bĹŃęę&ŚqZZ~h¨‡Öf­­ť×®‰¨©Ť8qLP;\e ^ÝáE§Ř;źŚŚŚˇÎ –#FܸqĂÉÉ©ď]ž¨÷ďß—JĄ)))ťŘpÖÖ¦(-mik“··w_˝ú»wĘŻÚÚ憆V©´ŁąąCˇčyǡ¶¶ySŐ”‘‘ŁůĂ>`x ą˙ţóWRppđŔĄôz ůˇĆ¤¤Ő`[[§TÚŢĐĐÚÚÚéĺő˝@ M›6 ö8 Ŕ9í 34d˛ĆŚ1Ô‰đtpń, T@¨€P=žł"/^ĽŘŇŇ’ÉdÚÚÚĆÄÄ466ęî’źźĎfłÉâ˙°X,77·Ë—/«µéËńńńš«ž›ęŕýJ‡ÎNĹ… ţţ÷CS·¶¶eîeŔőgw“nßľ=gÎccc//ŻK—. rĘ}őᇪľŐ2wî\ęć®]»ĆŹ˙L‡„făĄK—‘šš: ¶ç©"‘ČÝÝťĂᤥĄIĄŇÔÔÔÂÂBOOϧ%‹…1ĆWVV.Y˛$00P$!„śśśd2Yźň¦Ń¶oß^ZZúůżxÝÝĘŚŚ‚¨¨_śť7,]úÓţ“““S^RR7ÔyőI˙w÷˝{÷fÍš5oŢ<±X\VV••5¨i÷Q@@€P($—e2YZZšD"ÉÉÉ!#BˇĐß߿¦ööö””??ż#GŽ LĆ «8qâ„ZD«™3g~ţů窥Réíí˝jŐ*??żŘŘXŚqEEBh÷îÝ㪪*Ő{ …TE }ţůçááác‘HD­ĘÉÉńđđ`łŮÖÖÖ‡V]K.¬_żţťwŢ!«vlmm]¶l™ąąů¨QŁľřâ ą\Ţ[°ľľ>$$ÄÄÄÄÚÚzűöíŞëJ‡ŕŕŕŕŕ`ę¦\Ţ}éRNdäQ{ű5|~Ś•Ő˙ă󣩿[·Šžş©BčĉşŰôsw×ŐŐůúú~óÍ7Ş#¬]»v×®]c©TĆăńĆŚłnÝş®®.‘Hdcc7räH33łcÇŽmܸŃÄÄÄĚĚŚ: lllöîÝkfffaa±zőjrżh0ă”””ńăÇłŮlggç«WŻjFÄb1B(??c|ţüy—Żżţc¬P(ŚŤŤĎś9ŁzŕŮŘŘ|˙ý÷<ĎÂÂâ—_~!ďEëD:räČoĽ‘››Ë`0jkkÉ 9Î?˙ůO##Ł3gÎPË"‘Hsô¶‘ ‚(//ď˙ţUď˘zŁ/ˇ©©‰FŁ©Í©©©qqqsćĚÁ˙úëŻgöěŮäň¤I“ÔţźUű^ĽxQ ¨­z˙ý÷·mŰÖŃŃ‘””dnnŽ5*BGG‡ŁŁŁZ±Ŕ/Y˛$<<Ľ®®N,{xx|űí·˝‚‚üüü*** śťť5ÓÓÚK˛"(•ĘĚ̢ŤOO°‘ĎŹ¶¶~˘ĽZˇ˙»»ąą™FŁUTTh?44tţüů555………...{öě‰Dt:}Íš5---;wî$‚Zćóůc‘H¤§§7oŢĽšššŚ7Žü‡Ń<`ššš ĆĺË—e2Ůěíí5#c;;»bŚ###×®]{řđá·Ţz cś••Ą§§×ŘبzŕéëëGFF655Qůŕ^$ŇŰoż˝oß>ڱ››Űwß}GE"“Éüä“OŞŞŞT—µną˙űWÓߏ’’Šu~cBQQѸqăşşşčô'>ÝtďŢ˝3fÜĽyÓÓÓłˇˇ!::šËĺ&$$444|öŮg'""bňäÉ2™,??ź\ úţůçźľľľR©TuYG™LćńăÇ—-[¦Ú‘ZHOO ĘËË«ŻŻ'#rąÜĐа®®ÎÄÄ!tíÚµ5kÖܸqC3( E"‘ŁŁ#B(55uѢEŞkęÎť;:6NHHHE…1Bö%%uzz´Ţ®$­X1sěXS ^€ĄKCʉ é­A˙wwII‰˝˝˝Bˇ ŃÔOQ;;; ÄbńرcB§OźŢşukJJŠłłs{{;‹ĹĘËËsqqˇ–§L™Bî @ ‹íííBżţúëW_}u˙ţ}ÍF*•ňůü¤¤¤   6›ÝŐŐŐŢŢ®a±XË—/omm=věĂŹ?ţ8a„ѣGWWW9räĉ7oŢT=đA]]ť©©)•ŹL&Óz !„JKK]\\***8NbbâˇC‡ţřă„9Nmm­™™™ę˛Ö ’śśÜŰFŢ˝{·îýKĉ'tě_MĎü™E333‚ ?~lgg§ݍ¨°´´tvvćrąYYYBˇ0999999;;;==}˙ţý:Ƭ©©áóůjÁĚḚ̌°0‚ ¬¬¬zëčăăµyóf2RUU%—Ëą\®jÂZ555c‡ż>VL^Ş´öŇń(HĄĄŚëBşËBčŔ«Om°éë?ĺęěţďnŹG¶WÝŹ9997oŢ|çťwB¶¶¶dĐÎήĽĽ!Ä`0X,BFŁ©.SÝi4•Ź““ŮKó€1bÄąsçbcc###ÝÝÝżţúkwwwÍH@@@LLLAAD"™>}:ťNwuuýĎţCN"¨m&“ijjŞšŹŽéđáĂ2™Ś¬rąĽˇˇ!''gâĉä8ÔáD-WWWknçűźznĎ\8ŽŹŹOBB·ß~KFâăă,X€z÷ÝwOź>]]]-|}}Oť:UQQáĺĺUTTÔŰżýö›‡ÇßJ*‘H–,Y’™™éćć–““sáÂ…ŢúĆĆĆ 777ň¦………žž^}}=ůÄŢÖÖ&‘H´ů|>AĹĹĹäľ,))QYkݧnw÷ęyóVś9s÷Ţ˝Çzz4ŐËśÔś9óŮÔ©v˝­}1‚@čc úż»9ÎôéÓřá‡m۶QĂĆĆƶ´´,^Ľ!TZZJ>%–””h>1hĄT*©^b±Ďçk=`d2™‰‰ÉĹ‹;;;ăăăCCCóňňÔ"ĹĹĹ~~~•••ű÷ď _ Íť;÷Üąsż˙ţ{TT”¶-ö„Ţ$ŚńáÇ80oŢ<2vřđáŘŘXµq¨eKKK­¤·ŤÜ—mőĚTO!ú8ł››Ëăń˘˘˘ňóó;::¶lŮÂ`0ĚĚĚęëë1ƧOź622z˙ý÷1ĆGŽ122úŕ0Ćůůůt:ťś:˘N´$ÉţýűŤŚŚ °Ę9|mm-AŮŮŮőőő‹/¦Óéj§sާj©©©T$44ôoű[]]]MMÍüůóŁŁŁ{ †„„Ěš5«˛˛ňáÇoľů¦ćŕZ{é :łřřq}bâĺiÓvđůŃjsŠŻĐ<î÷îĆgffęëëoÝş5//ݤ¤$66–Á`\ż~cüᇪž6ďÚµKuűk]&ß–š?~mmmnn®@ صk—Ö¦µµŐČČ(33S&“ĹÇÇ Í9řÔ©S™LćŹ?ţHŢĽ{÷.“É444$ó×zŕ©.k=®]»f``ĐÚÚJmɤ¤$>źŻP(zGëѱ‘d˙ŞwQ˝ŃÇŠ€1.** ·°°`2™vvv«V­rss۲e Ć¸ąą™Á`ěÝ»c\VV†JJJ·´´899_ż~ťŞG ĂŐŐőĘ•+ä°Ş[gëÖ­ÇŢŢţěŮłŔßß_ÇÜd`` ‘JĄááá<ŹÇă-]ş´˝˝˝·`}}}hh(—˵˛˛:~ü¸ćŕZ{é ö^)?ż*.î”)[ŐJĂ«Rp˙v7Y8„Ba@@€‘‘‘‰‰ÉôéÓ/]şDŽ,‘H>ú裑#GŽ5jÍš5jO˝U‹•`mmmnnCţßj0ăC‡Y[[łŮlww÷ĚĚL­ŚńĆŤB•••ÔC5j9‡§yךąi=>ţřcrVŽ"‘Hčtú… tTÍ ˘c#?Ő‹«š:::˛łłźŻď°ˇµ"äňî+Wň"#ŹŮŮ­ćóc^­Š iw·ćóčÍsěß»šÍfOž}BT©Ä99ĺä ‡Ű·‹;;ÔiĹ[oŤ1Âp°Ż3¨/5µI„ĐĉcČÓ »>–ú*Â+CmŇÍf¸»Ź%ß°8qŚŽŹBĐwP^Ij“#GNź>ÎŰŰŃÇgĽ•Őȡμ "ĽÚş»•ąąZ'fĚp411ęÁ+*Âđˇ6é@„łó_ďeNťjÇd¤x:¨ĂS}}ëŤbˇ°0=˝ ¬¬A_źéćfKN:¸¸ŚŃüa"HP†?jŇ!#ٰ©©ÝÔÔČÓÓÁŰŰńí·ťFŹ1ÔŮ— T„×ę¤CffqWWĎ¤ŹŹ\^T„×VGGWVV)9éđŕA9ŤÖ3é0mš=ˇ7Ô ‚ˇôL:¤Ąĺ——K ®®0é𚂊ž 6é`nnňĂŞOą¶¶¶{÷îĺńxćććÇŹß´i—Ë577'G#ÄÇÇ›››[ZZ®YłFˇP¨ŢK[[ŰňĺË-,,FŹ˝zőjr-ÁřôÓO—-[¦ąY´¶×lhh ĺrą666'OžěăP/TđĚš››ÓŇҢ˘˘TADGG˙űß˙ž={öµk×BBˇĂᤧ§#„ŇÓÓ'Mš$‰Č—¦¦¦jcÎť;7++K-¸qăĆąsçJĄŇM›6­^˝Zu•ĄĄĄłłó‡~xöěن†„‹‹Krr˛ÚµµµŹ=ŠŠŠ ďęę*//ŹŠŠZ·nŮ ĽĽüÚµk999—/_>{öěwß}§Ú=**Ş˝˝=777######11‘ŚoŢĽą´´T­HőÖ^kpٲeőőőyyy˙ýďOś8ˇą‘\¤ş«aIDAT{»ëA‡PAťşŰĹb‚ ärąZ<;;ŰŘŘ8''ÇŘŘX.—Ż\ąňË/żäp8 …bĹŠk×®Ą*µ@ąwď—ËU[•——×ÖÖ&—ËţůgÍŽMMM‰‰‰óçĎçńx`ăĆŤmmmŞmD"ŤF“ÉdăÜÜ\ŐeŞBH,“&''»¸¸PÝ»şş Fcc#ąöęŐ«nnnÔÚ´´4SSÓÚÚZÝíµ;::h4ZAA}şşşZ řúúž:uŞ˘˘ÂËËKÇżýö›‡‡‡jD"‘,Y˛äŕÁYYY;věPkż|ůr???r™ ww÷Ý»w …Âg},JĄ’š#‹ĹŞUÉÂÂBOOŹz˘nmm˝sçŽjßŘŘŘ´´´óçĎëhŻ5Čçó ‚(..&;–””¨eőÔ» Qwt User's Guide: QwtDialScaleDraw Class Reference
QwtDialScaleDraw Class Reference

#include <qwt_dial.h>

Inheritance diagram for QwtDialScaleDraw:

List of all members.

Public Member Functions

 QwtDialScaleDraw (QwtDial *)
virtual QwtText label (double value) const
uint penWidth () const
void setPenWidth (uint)
- Public Member Functions inherited from QwtRoundScaleDraw
 QwtRoundScaleDraw ()
 QwtRoundScaleDraw (const QwtRoundScaleDraw &)
virtual ~QwtRoundScaleDraw ()
QPoint center () const
virtual int extent (const QPen &, const QFont &) const
void moveCenter (int x, int y)
void moveCenter (const QPoint &)
QwtRoundScaleDrawoperator= (const QwtRoundScaleDraw &other)
int radius () const
void setAngleRange (double angle1, double angle2)
void setRadius (int radius)
- Public Member Functions inherited from QwtAbstractScaleDraw
 QwtAbstractScaleDraw ()
 QwtAbstractScaleDraw (const QwtAbstractScaleDraw &)
virtual ~QwtAbstractScaleDraw ()
virtual void draw (QPainter *, const QPalette &) const
void enableComponent (ScaleComponent, bool enable=true)
bool hasComponent (ScaleComponent) const
int majTickLength () const
const QwtScaleMapmap () const
int minimumExtent () const
QwtAbstractScaleDrawoperator= (const QwtAbstractScaleDraw &)
const QwtScaleDivscaleDiv () const
QwtScaleMapscaleMap ()
void setMinimumExtent (int)
void setScaleDiv (const QwtScaleDiv &s)
void setSpacing (int margin)
void setTickLength (QwtScaleDiv::TickType, int length)
void setTransformation (QwtScaleTransformation *)
int spacing () const
int tickLength (QwtScaleDiv::TickType) const

Additional Inherited Members

- Protected Member Functions inherited from QwtRoundScaleDraw
virtual void drawBackbone (QPainter *p) const
virtual void drawLabel (QPainter *p, double val) const
virtual void drawTick (QPainter *p, double val, int len) const
- Protected Member Functions inherited from QwtAbstractScaleDraw
void invalidateCache ()
const QwtTexttickLabel (const QFont &, double value) const

Detailed Description

A special scale draw made for QwtDial.

See also:
QwtDial, QwtCompass

Constructor & Destructor Documentation

QwtDialScaleDraw::QwtDialScaleDraw ( QwtDial parent)
explicit

Constructor

Parameters:
parentParent dial widget

Member Function Documentation

QwtText QwtDialScaleDraw::label ( double  value) const
virtual

Call QwtDial::scaleLabel of the parent dial widget.

Parameters:
valueValue to display
See also:
QwtDial::scaleLabel()

Reimplemented from QwtAbstractScaleDraw.

uint QwtDialScaleDraw::penWidth ( ) const
Returns:
Pen width used for painting the scale
See also:
setPenWidth, QwtDial::drawScale()
void QwtDialScaleDraw::setPenWidth ( uint  penWidth)

Set the pen width used for painting the scale

Parameters:
penWidthPen width
See also:
penWidth(), QwtDial::drawScale()
qwt5-5.2.3/doc/html/class_qwt_double_range-members.html0000644000175000017500000002112112052741140022505 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDoubleRange Member List

This is the complete list of members for QwtDoubleRange, including all inherited members.

exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double)QwtDoubleRangevirtual
incPages(int)QwtDoubleRangevirtual
incValue(int)QwtDoubleRangevirtual
isValid() const QwtDoubleRange
maxValue() const QwtDoubleRange
minValue() const QwtDoubleRange
pageSize() const QwtDoubleRange
periodic() const QwtDoubleRange
prevValue() const QwtDoubleRangeprotected
QwtDoubleRange()QwtDoubleRange
rangeChange()QwtDoubleRangeprotectedvirtual
setPeriodic(bool tf)QwtDoubleRange
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setStep(double)QwtDoubleRange
setValid(bool)QwtDoubleRange
setValue(double)QwtDoubleRangevirtual
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
value() const QwtDoubleRange
valueChange()QwtDoubleRangeprotectedvirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/class_qwt_abstract_scale_draw__inherit__graph.png0000644000175000017500000002070312052741152025447 0ustar gudjongudjon‰PNG  IHDR»×:ÝkbKGD˙˙˙ ˝§“ IDATxśíÝy\×Úđ3Ů 1AEA[°jŻ Zq-¨Ąje“ÍDŃbQ_\P¬•«ŐŞUqE­p­ ȢµrÝA\®B‹€š€;«!,˛rŢ?¦7Íe3ÂŔhxľ˙gfÎy2'ż$'cŚ”bĐ]*rő WPrőXtĐéîÜąłqăFş«řá‡ĆŤGwJ!Tţó@''§¤¤¤aÆŃ]č‡~ůĺ—ŃŃŃt˘Ő˝B 6,88î*@‡|˙ý÷t—đŕř ęA® ä ęA® ä ęA®ţVTT´uëV{{űéÓ§»¸¸ěßż˙íŰ·mo’››űŐW_)¶ěرĂÂÂâĆŤm¬ŁdWďEqóâââţóźVVVóçĎ?zôh]]]»{kq©ĹMź>ÝŰŰűŹ?ţhwĺ* rő——/_z{{÷čŃăçźţí·ß6oŢś——çăăóÎh)Ş««KJJ=zôĹ‹;ŻÔ¶aŚWŻ^­ĄĄuřđáß~űmÓ¦MYYYűöíŁv6›}ýúőëׯÇĆĆÎś9sÆ /_ľ¤vŹäę/{öě™>}şźźźşşú§ź~şuëV>ź±rĺĘÓ§O#„JJJ,,,"##BĄĄĄîîîR©Ô¢ĽĽ!”śś¬§§çëë{ďŢ˝˛˛2ĹţcccíěěěěěöîÝ+•JBIIInnnVVVIIIň®˛˛˛\\\âââfÎś™››űâĹ‹eË–YYY9;;_şt‰ě­şşzűöí666öööÇŹ///—oţěŮłüüüE‹ ‡óÉ'źřůůŐÔÔ´¸!ŮŘârµµµ»ví˛łłspp8tčPccŁâRŹgcc3cĆŚS§N!„rssŰ.ľµťiiiůćÍJ§”N+„Ş®®ľ˙ľb#A·oßţâ‹/ŇÓÓB™™™=zôČČČ@edd…‡‡“ĎÜ˝zőBýűß˙ž={öŔ|őęUyWR©ôŹ?ţřĺ—_víÚ•ššzęÔ©ęęę˙óçĎŰŮŮ………)vURRňäÉ““'O;vĚÜÜü·ß~sss;xđ Ůáľ}ű***ÂĂĂţůç‹/fffĘ77444hĐĆŤoŢĽYYY‰222Ú°aC‹¦¤¤ „ZBnßľ}uuu'NśŘ»woFFF|||óhnnžťťMŢn»řÖv¦ˇˇaź>}:8ŹČB‘Ż-:::MÚőôô$Éرcł˛˛333íííł˛˛d2YFFĆ_|ˇ¸ň«WŻD"ŃôéÓBVVVMŢ ._ľśĎçzxx\»v­±±‘ 7oŢČd˛Ůłgź8qBq円†%K–ôîÝ!äĺĺĺěěĚd2Y,VUUąôňĺË>>>|>ßŔŔ`Æ şşşňm Fhhč¸qă,X°páÂăÇŹ“ÇW­mŘ|ĹJ.]şäëëŰ«W/}}ý%K–\ąrĄůÔŇŇ*))Q¦x%wćÇ®[śÇôN|>!ôúők===Ĺö7oŢôîÝ{Đ A\.7;;;33săĆŤWŻ^}üřńýű÷W¬Xˇ¸ňĹ‹ëëë,X€jhh¨¬¬|ţüąˇˇ!B yĎ H$ššš[·nŤŠŠÚłgʉ‰ÉâĹ‹{ôč!ďŠĹb‘%!„„BaHHAňŘ—––Ęd˛ľ}ű’>!”››+߼Gʶ¶¶¶¶¶ăěěě#GŽlٲĺ‡~hqÇ+--mhhřć›ošě«&$‰@ P¦x%wćÇr…B=zô9rd\\śŹŹŮ3qâĸ¸¸ & „ĆŽ›’’RZZj``0räČäää7oŢ 6¬°°\c|ńâĹ+V››“-!!!/^\şt)ąôŐ«Wd´ tttęëë{öěącÇ©T˝yóćm۶Éë!‚ĽQ^^ľ}űö?ţüîÝ»!---„X,&¬wďŢ•JĄä&»víĘĎĎßµkŮŹ‰‰É’%K[ŰpÄ͇ÓŇŇb0çÎťëŮł'B¨¶¶¶ĽĽĽů§‹wîÜ111Q¦ř6vf»§ďď˙âççwéŇĄĐĐĐĽĽĽúúúŞŞ*77·ÇŹĎź?!4věŘłgĎ>ś ‘#G&$$Ś=šĹb!“É222JKK§NťÚűż,--Ż\ą"“ÉBA„††–••˝xńâرc_ýµL& ‰D!‡Ăápä])VE~Ű€ÉdVVVFEEÉd˛ŞŞ*6›=yňä–——çççďŮłG&“É7·˛˛ĘČČ8}ú´X,®ŻŻĎËË;yňäřńăB-nŘâňŘlö”)Söďß_^^^VVöĂ?ś9sF±ÂŠŠŠłgĎ’ď9›ěŇÖznmgR?©ô\ýeŕŔ‡ެ¬ôóó›5kÖĄK—ěěětuucccB¦¦¦R©ôóĎ?GŤ5ަ¦†<čÓ§Oż~ýlllbbbĆŹŻ®®.ďpҤIeeeiii!===ccc77·•+WNž<ŮŢŢ^]]Ý××788ř›oľąvíÚš5kä]‘6ř|ľ»»»źźßŇĄK'OžÜżňÄü•+W2™LWWW˙ŻżţzňäÉňÍ ¶nÝzçÎwwwkkëőë׬\ą’ě°ů†­ !ĐŘŘčćććîĄĺĺĺ…"?{´°°3gÎ… BBBú÷ďßd—¶Ösk;S•t‹ď_‰Ĺâö}O¤ľľ>77wČ!”WŢ×÷߯­­ý±|˙ ^ŻÚÂáp T  WPrő WPrő WPrőTę?ą[SXXxţüyş«RXX¨­­MwJĂŞnçÎťtďăvb0Ô¸Ü1şş^NÓSÚĂ鯫ëĹĺŽa0Ô:Ţ-víÚE÷ŁIYŞľĹÇ(?_rřpŇÉ“węꤡĹÓ¦}ÖÁ>/_~čî~!¤®ÎrużdÉ—ýúiQP+h äęĂ’šú|ĎžËׯ‹X,†TÚČd2GŤpîś%ť[[ďIOĎml”±XĚĆF™……‰ż˙t33CJ:Š W„ĆFY\܇'?zTŔb1ţţ®űéÓË&Mú”’QnÜČvq9$˙“čłĎúy{O±·7e2áC,Ę@®hV[+=yňÎáĂIe A~Ż„Äb1GŹ6HHđĄp8›˝éé/ţ…Á`Čd¸_?ľ·÷— ««ł)®Ű‚\ŃF*m<~<ĺŔkoŢT¶6 ‘‘K§L1¦pФ$ŃĽy‡[\D¨OMź©Ůl&…vC+Ú¤¦>·±ŮŰÚR&“ůŹô?ŢźňqgÎü9++ݱQÖÚ gĎúŽ]o©i3r¤Á—_š´öĘĐŘظfÍĚÎwíÚ™­…ŠĂaZZšŚiĐăv++Ú°ŮĚđp݉?i-‹9nśŃĉÔ|\ŃĤIź~ń…QóO)Řlćĉźţň‹Ľ ě8ČťŘlć±cžĆĆ}Y¬˙™††Ćµkżim«Ž[·î›&/Y,ĂظďŃŁ*J@®h–’’““óJOŹ/@łXĚńă‡tęÎ1†ććCX¬żFdł™zzüÇŹ_Ą¤ätŢ Ý äŠNŃŃ©žžÇçĎůň*cc=ňŢĐиví¬ÎzíÚ™ä˙’±X cc˝Ë—WÍ›gîéy<::µł‡î W´‰ŚüO@@¤§ç¤-[ěx<ŤS§Ľ ĐB™›65ÔŮŁ›™Žg„20ś:ĺÍăilŮbďé9) 22ň?ť=şęŁóäÄn,,,Y_Ĺöí_˝*[»öĚů]SCVVţÚµg^˝*SlÜľý‚ľţа°ä®©AUA®h°{÷E==˙ĐĐ+tҲĐĐ+úú+ĽNw!±nńý«JHČůýűŻÍţö[Kşki™ŹĎT‚ 6o>[UU»rĺ×t—óQ‚\u©ó^۶ÍŃÍm<ݵ´ĺŰo-ą\őuëÎÔÖ6¬_߉źř«*ČUÁŻ_q{űv§yóĆŃ]Î»ąąŤg2‰ŔŔęęş-[ěĺżf”ąę 2^ł&&*ęîţý®66Łč.GYóç›÷ě©ćëű«TÚ¸m›#ŃRäŞÓ54Čüü~=>c˙~×ŮłGŇ]Îű±µÍd2–/?Y]]˙óĎóšśZąę\RiăwßýzńbÖńăžS§vô»ô´={¤†gńâ_dűö͇ť”ßéDőő ‹ź¸}űIx¸×řń÷ď'ÜľýÄÝýčřńCÂÂr8đtü«ÎR[+őňú%5őyDÄâ/ľ0˘» Ü˝űĚŐőČرFGŹzŔ׊ŰąęUUunnaBaQdäŇücÝĺP&##oîÜCC‡ęED,îŮóc˝^Z€\Qݞ˛ÖŐ5ěɓ⨨eÇ÷Ł»Š=xPŕârpČÝýk±¦¦ú»7č– W“HŞćÎ=\\\˝ě“Oté.§S<~\ěät°o_^däR>żÝĺ| WT*)y;w’ŞččeëĐ]N'zúôµ“ÓA gTԲ޽{Ň]ÎrE™ââr'§Rictô·ýű«ţĄdóňJťśp8¬ččeşş˝č.çĂą˘FQQ™ŁăŚQLĚ·úú|şËé"'§ ˝LOŻ»ÜkeŔźSŕĹ‹766{ŐÔX ßuźP!„úőÓJHřŽĂaÚÚî{ů˛„îr> «Žzţ\ěŕ°żWŻŃŃßjkkŇ]NWÓÖÖŚŽţVSSÝÁa˙óçbşËůP@®:D(,˛µÝ§§×+6ÖG ŕŇ]=n\Üňľ}yvvűD˘"şËů @®ÚďŃŁB'§ź~޵ŚÇÓ »:ńxQQË>ůD×ÉéŔŁG…t—C?ČU;ýůçK{űĐaĂúÁ™¤ž=Ő""Şooúçź/é.‡f«öHK{>oŢ!sóÁ^şËůPhhpţőŻĹăĆ ž7ďPZÚsşËˇä꽥¤ä¸¸š4ÉřČ8ł»)‡¶pâÄO]\ÝĽŮ}Żň ąz?II"w÷ŁłfýăĐ!7ř&R‹ŘlćáĂî3g~îî~,)IDw9ô€\˝‡ÄÄ,w÷ٶ¶Łwír_7l“ÉŘ˝{®ŤÍ(w÷ى‰Yt—Cxp(+66mÉ’nnvît†P˝“ÉŘąÓŮÍmÂŇĄáçĎgĐ]NWĂĄś>}oŐŞÓ^^“7n´†+)‰ Í›mY,ƲeŐŐ.NNc讨ë@®Ţí—_R‚‚âľ‚‹Tľ/‚ ‚m¸\µ+"«Şę<<&Ň]Q\˝CXXň¦Mg×­›ĺă3•îZ>V+W~­®Î Škhh\Ľx ÝĺtČU[vďľôÓO˙ ™łpáşků¸ůřLíŃC-((®ŞŞÎß˙+şËét«V‘×|ţńGÇ Ěé®ExxLd±kמ©ŞŞWůkSC®Z¶eËoGŽ$íŰ·ŔÎn4ݵ¨W×ń={ŞůűźÂͦ»śNąj cĽn]ě©S˙ uµ¶ţČ.Oűáł·7e±ß}÷kuu]HČUýprő?d2sćLęŃŁÓ§Ł»Ődm=JCłdÉ ©Tö㏪yŮwřţßČ ©'&f;ćiaaBw9*îÚ5ˇ—×/3fŚŘłgľę]ö]ŐîOGlÜ—uô¨„Ş XZ [Ow-ť@ńÇ…Bˇ––ę_H¨5Ž>‡ó‘]›vĘ”)˙ŃNçťĂŔáčÓ24µöíŰ×ęď fffJ$’ččhşŠďĺÎť;»wďîx?0ď´k×®7n,_ľ\ŢŇÂ玎Ž]Xh?jŹŤaŢŰ-&&¦I _@=ČÔ\@=ČÔ\@˝vćęŮłgnnn}űöĺp8 Z±bEYYYŰ›D"uuuňˇ@SSsÚ´iŮŮŮí«D™B/_ľtuuí×Żź††Ć!CÖ­[WSSÓîŢZ\*żGjjjfffW®\éPő¤ŽĚ;ęNłĐž\ …Â1cĆđxĽ¤¤$‰D›““cnnţÎ],§¦¦&˙´ÜÜÜĎ>űĚÓÓł•( cleeĄ««›––&‘HbbbnŢĽéëëKí(ň;UXX¸hŃ";;;ˇPHíôęŕĽwŻYPüOâÓ§O7ii‘ĄĄĄŻŻŻb‹L&›4iR@@ŔÔ©SwěŘ1.((@m۶ c\Tô?×ěNIIQĚĆ8--MKK‹Ľ-‘H,X ú÷ďżfÍšúúzˇP(__~[(8đČ‘#@WW÷Ô©Sä %%%NNN˝ző200ŘĽy3ąr~~>A555ň333]\\ČŰd?AAAdăĆŽ«®®n``®84ĆříŰ·ŢŢŢ:::úúú«V­’JĄŠKIľľľ®®®ňR÷îÝËĺr…Baóž[ŰiAäçç·1JÎ×;uÍĽßż_%gcěččččč¨ŘňŢą*//g0Oź>mŇ;dČź~úićĚ™㨨(Ź7cĆ ňöçź® Ĺ;/‘Hľűî;ňOgggkkëâââśśś#Füř㏭ĺJCCcůňĺĺĺĺ[¶lŃÓÓ#Wppp:ujAAAvvö°aĂČ•†>sćĚřřř’’’&•/\¸ĐĆĆćőë×BˇpŔ€qqqc[[Űďż˙ľ¦¦&,,LGG§IŮ‹-ruu‹ĹOž<;věîÝ»›ĎčĹ‹‡JnČáp<==‹ŠŠZ칍ťÖö\te®:>ďŞ: ’\=yň„ ©TÚ¤===]SSóÁšššR©ÔÇÇgýúő<ݎˇaٲeŠ‘hňšÉăńž_^ęëׯÉöć=·±ÓÚž‹®ĚUÇç«č,ŕ–rőŢÇWÚÚÚAäćć6i/((čŰ·ď°aĂř|~ZZZJJĘĽyóúô铞žžśś}B Ć_÷˘¸¸cűŚ|'[._ľÜĽůíşş:ńřńcůćd»···ĄĄĄâ÷îÝňsssÉöß˙=>>^,3ŚÔÔTŚqVVV“kkk™L¦ü™ňíŰ·/^Ľhńť˝»»{“R[칍ťÖöDtńńUç]UgSň>cüđáC@ŕçç'‰jjj‚Ůl¶¶¶6ů¦9..ŽËĺÚÚÚbŚ#""¸\®˝˝=ĆX$±X¬&źCrrr ůcÎś9ŠÇW!!!ä‹Xbb˘X,ž1cFąÂ;99YYY>~üxÔ¨Qdű­[·LćŽ;ňňňjjjD"‘ŤŤÍÂ… ÉMĹbqNNގˇá™3g^ż~MDzzzII‰››‹Ĺ*++SĹŮŮŮĂĂC,[[[űűű+.}óć͸\.ůŽTqQ‹=·±ÓÚÖĹąę༫ę,`Şr…1~úô©«««®®.‡Ă122 033 ĆWTT°Ůěť;wbŚóňňBaaaăĘĘJMMÍ[·n5ÉUEE“ÉŚŠŠ"wÇÜąs{÷î­ŻŻ˙˙÷äłEpp0ŹÇÓ××?uęTŰą*))qvvćóů řő×_ĺ퉉‰S¦LárąĆĆĆuuuňMćÎť«ĄĄĄ§§·yóf˛qÓ¦M<ođŕÁ C‡ť6mšâ(‰ÄŐŐU //ŻęęjĹF6›mjjzőęŐćĺµŘs;­m]ś+ܱy/))QÉYŔ檹šššôôôöm Ú§ësŐĚ;¦äs‹Ö¨««Ź W/ęv`Ţ[ç@=ČÔ\@=ČÔ\@=ČÔká:gÓ§Oďú:@;SŘĚ{»eeeMž‘0™Şv1zSSÓŔŔŔv˘ŞóŢ•–/_®­nń»óçľ~]´gĎ#oçĺ•ŢąóÔÉéď“n=<&ęëói* ¨>•Í•˘sçî/]^X¸›îB@wˇ˛ď ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęA® ä ęµü ĽÍĹÄÄH$-ü öGáÁ „Đ‘#Gč.¤ýLMMMMMé®(K©ßkĽpá¬Yłş Đ.—[YYIw@YJ˝^˝}ű!Ô~1őĂíěěLwŕ=ŔńÔ\@=ČÔ\@=ČÔŁ8WĎž=sssëŰ·/‡Ă4hĐŠ+ĘĘĘÚŢD$©««“7˙RSS333»rĺJ“uÚî!ôňĺKWW×~ýúihh 2dÝşu555ďuŢ9VkE Ge®„Bá1cx<^RR’D"‰ŤŤÍÉÉ177g´äÔÔÔ0ĆăÂÂÂE‹ŮŮŮ …B„‰‰Immí;7Ç[YYéęꦥĄI$’›7oúúúvč^)]$ĂJ8}ú´2kZZZúúú*¶Čd˛I“&Lť:uÇŽă‚‚„жmŰ0ĆEEEŠ•¤¤¤Č˛$___WWWڱP(”/zđŕÁرcŐŐŐ ÂĂĂ—ćççQSS#ď!33ÓĹĹ…Ľ]QQááá!tuu‚‚ŢŮĆříŰ·ŢŢŢ:::úúú«V­’JĄŠK›9pŕŔ˝{÷rą\ˇPŘĽçÖvAůůůß˙ŕĂAŮëUEEERR’źźźb#AţţţçÎť›1cĆőë×ÉđđxĽääd„Prrňçź.¤öéÓ§IźłfÍJKKkŇ4kÖ,‰D˛aÆիW+.ęŰ·ď°aĂćĚ™“PZZŠ1bDdd$ąÔ××·´´T(&%%…‡‡ÇÇÇ·ÝBČĎĎŻşşúáÇ7nܸqăFhhhó;®XdQQŃýű÷?~lbbŇĽçÖvÂ#úőë§ěŽe§Ěóĺ“'O‚JĄMÚÓÓÓ555~~~"‘¨¦¦&88Ífkkk—””`Śăââ¸\®­­-Ć8""‚ËĺÚŰŰcŚE"‹ĹR ĆřÍ›7ŕrąŮŮŮXá!űúők‚ ŇÓÓKJJÜÜÜX,VYY™|é­[·LćŽ;ňňňjjjD"‘ŤŤÍÂ… É>ĹbqNNގˇáĹĘlIDAT™3gÚî cěěěěáá!‹‹‹‹­­­ýýý•)˛µ:ŰŘ ”ěđá 2Wă§Oźşşşęęęr8##Ł€€33łŕŕ`ŚqEE›ÍŢąs'Ć8//!†1®¬¬411ŃÔÔĽuë–üU”Íf›šš^˝z•ěVń!»iÓ&Ź7xđŕ„„„ˇC‡N›6Mqibbâ”)S¸\®†††±±q```]]ą¨¤¤dîÜąZZZzzz›7oV¦7‰Dâęę*——WuuµâGęmŮbĎměŞö?ř@(őý+ň{ ʬŮ\mm­H$9rd;¶¤Žě@‹N?ŹI]]Bş8?ęA® ä ęA® ä ęA® ä ę)uŢ-—ËEŃÉĹ€V‘S>JťoşpáBUUUgWZcbb2bÄş«ĘR6WĺÁńÔ\@=ČÔ\@˝˙÷-ľ{9PIEND®B`‚qwt5-5.2.3/doc/html/closed.png0000644000175000017500000000020412052741134015442 0ustar gudjongudjon‰PNG  IHDR ŕ‘KIDATxíÝm @!†ŃGk™É7Ŕ-`&séts¦Ŕńţňđ@ĺk}Ş2€Ť… P%Á_ËţżN˛ .:0DkĄ‹Â›x" Ö›)ˇxŇ5őIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_28.png0000644000175000017500000000350612052741163017337 0ustar gudjongudjon‰PNG  IHDR“%ÉL*bKGD˙˙˙ ˝§“űIDAThí™YL[ÇĎÁ¶S’¶"µ \ŤDŤ)$` hMĹAP‹ $jj ⊠E‰ĺĹ"ˇ<É›‘CŚŤ4¦PP–¨4Ő.@ËVĘąsďÜ޶”kŻ3Éüžľ~sÎwţßü§ťÓ4$ěw   Ú9ŞB;GUhç¨ ĂçsWW×őë׋š…ŕóůµµµ\.×; }ö–ŮŮŮ]]]ÉÉÉK«Ť&ÍÍÍŤŤŤŮŮŮŢIßď 99ą©©i©TŃ,„Đ?Ißç¨ íUˇťŁ*´sT…vŽŞ„îÜĐĐP^^žX,f±XëÖ­+**>ĄŻŻŹÍfńçĎźĺrůęŐ«ĂĂĂcccŻ^˝:33óSĽ«ˇ  BŘŇŇĽđßů?j’„čśÉdJLLäńxŻ_żkiiůřńcrrň˘ć „öěŮ#‰ôzýŘŘXsssgggaaahb‚0==ÝÔÔ$“Éęęꏏw»Ýż|ÝĄXý“¬¬¬¬¬,´»ví*,,ôÎĚĎĎďŘ±Ł¸¸X&“UTT „Ěf3 ĽĽ!d±XĽ5 ™™rú‡rrrŘĺrťxđ€ĂáhµZ Ăl6©M§Óa¦V«###…Ba}}=9E©TFFF ‚úúúŇŇŇĺË— BŚżď–‰šAş  ±±Ń7éóůß8çt:ĂÂÂ}ň---±±±JĄ2##!ôüůsŹ—žžNÄ›7o&ĎőÜÜ\BBBFF†V«u8>uNś8‘™™iµZM&Stttkk+BčŔ·nÝš™™©­­ …čźÎĺççËĺr›Í600””t˙ţ}"żsçΚš„T*­ŞŞ"’&“‰Ĺbť:uĘb±EĽˇBˇp:ťeeeb±H2ŚK—.MLL”••AÉ8**j! ţĹę.8żĚą!y]“twwsą\ŁŃČĺrqW(×®]ăńxsssgĎž-))ńnŔétVWWďßżźĎçK$’ŇŇŇ©©)„Đěě,Á /‹ÎÎN˝^ŹęííťššÂqüÉ“'>§cvv–ÉdŽŹŹS^˝z%•JBĂĂĂÇét"„T*Ő¶mŰ&“ @|:°Ůlˇžž2ćv»‰¤wDń…ş N@ç<ýZ@!üňĺKLLŚwŢl6‹ĹâM›6EDDčőzťN×ĐĐĐĐĐĐÝÝÝŃŃńđáCďÁ<OˇP( „^Żż|ůňŃŁGµZ­Ĺb™źź_ż~=1lűöíDđöíŰcÇŽAŁŁŁ}ôX,Ç#""Ľ4ŤŰí޸q#ÇńŃŃQŁŃ`±XÄ€°X¬•+WÂÂţŢ0™L äw\żÔ€Ý…@(;Ź—ššŞR©ČĚ˝{÷†‡‡U*Uff&`ďŢ˝­­­ßľ}“H$iii/^Ľ0›Í)))äř3gÎČd2"†&&&–——ët:€H$ŚŚŚG_ľ|ŮÖÖf·Űóóó=z¤×ëďÜąăŁG$-[¶ŚĽŢ'''ß˝{‡Ňh4jµÚ`0 †žž™L¦ŃhČE4üh@j8Ěż»ź]‹ Ä˝euuőÓ§OĎź?ßßßďv»].W\\Üű÷ďŻ\ąHOOW«Ő)))´´´šš™LĆd2!„ŹÇńĽĽĽŽŽĄR922âv»űűűďŢ˝»oß>†aĽpá‚Ýn˙ôéÓąsç<Ďźż ĆččhEE…Çăq:ť¤ Ă:TTTd·Ű­Vë‘#GŞŞŞ:::ľ˙ž››+ţ‹śśśgĎžy<ž€‘ÚB;!5ř× Ř]h+†¸·D Ęĺr‘HÄb±bbbŠ‹‹ĄRéŤ7B.—‹ÉdVVV"„ľ~ý ¨­­EMLLÄÇÇsą\‡ĂŃŢŢžššĘápÂĂĂăââJJJ~üřATv8ąąą+V¬ŠŠş}ű6‘Ľyó&ŹÇ۰aC[[›D"Ů˝{·÷]sllL.—óů|>ź_PP0==}üřńÇ{ ¶Űí Ł˝˝Ý{"“ÚŢĽyă4ŕźŘ_CŔš» tź đ~Ú[·ŰÝ××·uëÖ/"š€úżźű•OżŘl6mŰ’A?·¤*´sT…vŽŞĐÎQÚ9ŞB;GU<·züřńŇKˇů9|ţ™WVVţnE4ľpąÜŢŢŢEžˇĐPú>GUhç¨ íUˇťŁ*ĂɉC=¦~»IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_zoomer__inherit__graph.map0000644000175000017500000000072212052741157024026 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_scale_map.html0000644000175000017500000005215212052741143020366 0ustar gudjongudjon Qwt User's Guide: QwtScaleMap Class Reference
QwtScaleMap Class Reference

#include <qwt_scale_map.h>

List of all members.

Public Member Functions

 QwtScaleMap ()
 QwtScaleMap (const QwtScaleMap &)
 ~QwtScaleMap ()
double invTransform (double i) const
QwtScaleMapoperator= (const QwtScaleMap &)
double p1 () const
double p2 () const
double pDist () const
double s1 () const
double s2 () const
double sDist () const
void setPaintInterval (int p1, int p2)
void setPaintXInterval (double p1, double p2)
void setScaleInterval (double s1, double s2)
void setTransformation (QwtScaleTransformation *)
int transform (double x) const
const QwtScaleTransformationtransformation () const
double xTransform (double x) const

Public Attributes

QT_STATIC_CONST double LogMax = 1.0e150
QT_STATIC_CONST double LogMin = 1.0e-150

Detailed Description

A scale map.

QwtScaleMap offers transformations from a scale into a paint interval and vice versa.


Constructor & Destructor Documentation

QwtScaleMap::QwtScaleMap ( )

Constructor.

The scale and paint device intervals are both set to [0,1].

QwtScaleMap::~QwtScaleMap ( )

Destructor


Member Function Documentation

double QwtScaleMap::invTransform ( double  p) const
inline

Transform an paint device value into a value in the interval of the scale.

Parameters:
pValue relative to the coordinates of the paint device
See also:
transform()
double QwtScaleMap::p1 ( ) const
inline
Returns:
First border of the paint interval
double QwtScaleMap::p2 ( ) const
inline
Returns:
Second border of the paint interval
double QwtScaleMap::pDist ( ) const
inline
Returns:
qwtAbs(p2() - p1())
double QwtScaleMap::s1 ( ) const
inline
Returns:
First border of the scale interval
double QwtScaleMap::s2 ( ) const
inline
Returns:
Second border of the scale interval
double QwtScaleMap::sDist ( ) const
inline
Returns:
qwtAbs(s2() - s1())
void QwtScaleMap::setPaintInterval ( int  p1,
int  p2 
)

Specify the borders of the paint device interval.

Parameters:
p1first border
p2second border
void QwtScaleMap::setPaintXInterval ( double  p1,
double  p2 
)

Specify the borders of the paint device interval.

Parameters:
p1first border
p2second border
void QwtScaleMap::setScaleInterval ( double  s1,
double  s2 
)

Specify the borders of the scale interval.

Parameters:
s1first border
s2second border
Warning:
logarithmic scales might be aligned to [LogMin, LogMax]
void QwtScaleMap::setTransformation ( QwtScaleTransformation transformation)

Initialize the map with a transformation

int QwtScaleMap::transform ( double  s) const
inline

Transform a point related to the scale interval into an point related to the interval of the paint device and round it to an integer. (In Qt <= 3.x paint devices are integer based. )

Parameters:
sValue relative to the coordinates of the scale
See also:
xTransform()
double QwtScaleMap::xTransform ( double  s) const
inline

Transform a point related to the scale interval into an point related to the interval of the paint device

Parameters:
sValue relative to the coordinates of the scale
qwt5-5.2.3/doc/html/class_qwt_plot_panner.html0000644000175000017500000005167512052741164020777 0ustar gudjongudjon Qwt User's Guide: QwtPlotPanner Class Reference
QwtPlotPanner Class Reference

#include <qwt_plot_panner.h>

Inheritance diagram for QwtPlotPanner:

List of all members.

Public Member Functions

 QwtPlotPanner (QwtPlotCanvas *)
virtual ~QwtPlotPanner ()
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
bool isAxisEnabled (int axis) const
QwtPlotplot ()
const QwtPlotplot () const
void setAxisEnabled (int axis, bool on)
- Public Member Functions inherited from QwtPanner
 QwtPanner (QWidget *parent)
virtual ~QwtPanner ()
const QCursor cursor () const
virtual bool eventFilter (QObject *, QEvent *)
void getAbortKey (int &key, int &state) const
void getMouseButton (int &button, int &buttonState) const
bool isEnabled () const
bool isOrientationEnabled (Qt::Orientation) const
Qt::Orientations orientations () const
void setAbortKey (int key, int state=Qt::NoButton)
void setCursor (const QCursor &)
void setEnabled (bool)
void setMouseButton (int button, int buttonState=Qt::NoButton)
void setOrientations (Qt::Orientations)

Protected Slots

virtual void moveCanvas (int dx, int dy)

Additional Inherited Members

- Signals inherited from QwtPanner
void moved (int dx, int dy)
void panned (int dx, int dy)
- Protected Member Functions inherited from QwtPanner
virtual void paintEvent (QPaintEvent *)
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)

Detailed Description

QwtPlotPanner provides panning of a plot canvas.

QwtPlotPanner is a panner for a QwtPlotCanvas, that adjusts the scales of the axes after dropping the canvas on its new position.

Together with QwtPlotZoomer and QwtPlotMagnifier powerful ways of navigating on a QwtPlot widget can be implemented easily.

Note:
The axes are not updated, while dragging the canvas
See also:
QwtPlotZoomer, QwtPlotMagnifier

Constructor & Destructor Documentation

QwtPlotPanner::QwtPlotPanner ( QwtPlotCanvas canvas)
explicit

Create a plot panner.

The panner is enabled for all axes

Parameters:
canvasPlot canvas to pan, also the parent object
See also:
setAxisEnabled()

Member Function Documentation

bool QwtPlotPanner::isAxisEnabled ( int  axis) const

Test if an axis is enabled

Parameters:
axisAxis, see QwtPlot::Axis
Returns:
True, if the axis is enabled
See also:
setAxisEnabled(), moveCanvas()
void QwtPlotPanner::moveCanvas ( int  dx,
int  dy 
)
protectedvirtualslot

Adjust the enabled axes according to dx/dy

Parameters:
dxPixel offset in x direction
dyPixel offset in y direction
See also:
QwtPanner::panned()
void QwtPlotPanner::setAxisEnabled ( int  axis,
bool  on 
)

En/Disable an axis.

Axes that are enabled will be synchronized to the result of panning. All other axes will remain unchanged.

Parameters:
axisAxis, see QwtPlot::Axis
onOn/Off
See also:
isAxisEnabled(), moveCanvas()
qwt5-5.2.3/doc/html/class_qwt_plot_zoomer.html0000644000175000017500000024545412052741165021030 0ustar gudjongudjon Qwt User's Guide: QwtPlotZoomer Class Reference

#include <qwt_plot_zoomer.h>

Inheritance diagram for QwtPlotZoomer:

List of all members.

Public Slots

virtual void move (double x, double y)
void moveBy (double x, double y)
virtual void zoom (const QwtDoubleRect &)
virtual void zoom (int up)

Signals

void zoomed (const QwtDoubleRect &rect)
- Signals inherited from QwtPlotPicker
void appended (const QwtDoublePoint &pos)
void moved (const QwtDoublePoint &pos)
void selected (const QwtDoublePoint &pos)
void selected (const QwtDoubleRect &rect)
void selected (const QwtArray< QwtDoublePoint > &pa)
- Signals inherited from QwtPicker
void appended (const QPoint &pos)
void changed (const QwtPolygon &pa)
void moved (const QPoint &pos)
void selected (const QwtPolygon &pa)

Public Member Functions

 QwtPlotZoomer (QwtPlotCanvas *, bool doReplot=true)
 QwtPlotZoomer (int xAxis, int yAxis, QwtPlotCanvas *, bool doReplot=true)
 QwtPlotZoomer (int xAxis, int yAxis, int selectionFlags, DisplayMode trackerMode, QwtPlotCanvas *, bool doReplot=true)
int maxStackDepth () const
virtual void setAxis (int xAxis, int yAxis)
void setMaxStackDepth (int)
virtual void setSelectionFlags (int)
virtual void setZoomBase (bool doReplot=true)
virtual void setZoomBase (const QwtDoubleRect &)
void setZoomStack (const QStack< QwtDoubleRect > &, int zoomRectIndex=-1)
QwtDoubleRect zoomBase () const
QwtDoubleRect zoomRect () const
uint zoomRectIndex () const
const QStack< QwtDoubleRect > & zoomStack () const
- Public Member Functions inherited from QwtPlotPicker
 QwtPlotPicker (QwtPlotCanvas *)
 QwtPlotPicker (int xAxis, int yAxis, QwtPlotCanvas *)
 QwtPlotPicker (int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *)
virtual ~QwtPlotPicker ()
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
QwtPlotplot ()
const QwtPlotplot () const
int xAxis () const
int yAxis () const
- Public Member Functions inherited from QwtPicker
 QwtPicker (QWidget *parent)
 QwtPicker (int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
virtual ~QwtPicker ()
virtual void drawRubberBand (QPainter *) const
virtual void drawTracker (QPainter *) const
virtual bool eventFilter (QObject *, QEvent *)
bool isActive () const
bool isEnabled () const
QWidget * parentWidget ()
const QWidget * parentWidget () const
virtual QRect pickRect () const
ResizeMode resizeMode () const
RubberBand rubberBand () const
QPen rubberBandPen () const
const QwtPolygon & selection () const
int selectionFlags () const
virtual void setEnabled (bool)
virtual void setResizeMode (ResizeMode)
virtual void setRubberBand (RubberBand)
virtual void setRubberBandPen (const QPen &)
virtual void setTrackerFont (const QFont &)
virtual void setTrackerMode (DisplayMode)
virtual void setTrackerPen (const QPen &)
QFont trackerFont () const
DisplayMode trackerMode () const
QPen trackerPen () const
QPoint trackerPosition () const
QRect trackerRect (const QFont &) const
- Public Member Functions inherited from QwtEventPattern
 QwtEventPattern ()
virtual ~QwtEventPattern ()
void initKeyPattern ()
void initMousePattern (int numButtons)
bool keyMatch (uint pattern, const QKeyEvent *) const
const QwtArray< KeyPattern > & keyPattern () const
QwtArray< KeyPattern > & keyPattern ()
bool mouseMatch (uint pattern, const QMouseEvent *) const
const QwtArray< MousePattern > & mousePattern () const
QwtArray< MousePattern > & mousePattern ()
void setKeyPattern (uint pattern, int key, int state=Qt::NoButton)
void setKeyPattern (const QwtArray< KeyPattern > &)
void setMousePattern (uint pattern, int button, int state=Qt::NoButton)
void setMousePattern (const QwtArray< MousePattern > &)

Protected Member Functions

virtual bool accept (QwtPolygon &) const
virtual void begin ()
virtual bool end (bool ok=true)
virtual QwtDoubleSize minZoomSize () const
virtual void rescale ()
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)
- Protected Member Functions inherited from QwtPlotPicker
virtual void append (const QPoint &)
QwtDoubleRect invTransform (const QRect &) const
QwtDoublePoint invTransform (const QPoint &) const
virtual void move (const QPoint &)
QwtDoubleRect scaleRect () const
virtual QwtText trackerText (const QPoint &) const
virtual QwtText trackerText (const QwtDoublePoint &) const
QRect transform (const QwtDoubleRect &) const
QPoint transform (const QwtDoublePoint &) const
- Protected Member Functions inherited from QwtPicker
virtual void reset ()
const QWidget * rubberBandWidget () const
virtual QwtPickerMachinestateMachine (int) const
virtual void stretchSelection (const QSize &oldSize, const QSize &newSize)
const QWidget * trackerWidget () const
virtual void transition (const QEvent *)
virtual void updateDisplay ()
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetLeaveEvent (QEvent *)
virtual void widgetMouseDoubleClickEvent (QMouseEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetWheelEvent (QWheelEvent *)
- Protected Member Functions inherited from QwtEventPattern
virtual bool keyMatch (const KeyPattern &, const QKeyEvent *) const
virtual bool mouseMatch (const MousePattern &, const QMouseEvent *) const

Detailed Description

QwtPlotZoomer provides stacked zooming for a plot widget.

QwtPlotZoomer offers rubberband selections on the plot canvas, translating the selected rectangles into plot coordinates and adjusting the axes to them. Zooming can repeated as often as possible, limited only by maxStackDepth() or minZoomSize(). Each rectangle is pushed on a stack.

Zoom rectangles can be selected depending on selectionFlags() using the mouse or keyboard (QwtEventPattern, QwtPickerMachine). QwtEventPattern::MouseSelect3/QwtEventPattern::KeyUndo, or QwtEventPattern::MouseSelect6/QwtEventPattern::KeyRedo walk up and down the zoom stack. QwtEventPattern::MouseSelect2 or QwtEventPattern::KeyHome unzoom to the initial size.

QwtPlotZoomer is tailored for plots with one x and y axis, but it is allowed to attach a second QwtPlotZoomer for the other axes.

Note:
The realtime example includes an derived zoomer class that adds scrollbars to the plot canvas.

Constructor & Destructor Documentation

QwtPlotZoomer::QwtPlotZoomer ( QwtPlotCanvas canvas,
bool  doReplot = true 
)
explicit

Create a zoomer for a plot canvas.

The zoomer is set to those x- and y-axis of the parent plot of the canvas that are enabled. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom. If both or no y-axis are enabled, it is set to QwtPlot::yLeft.

The selectionFlags() are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly.

Parameters:
canvasPlot canvas to observe, also the parent object
doReplotCall replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
See also:
QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase()
QwtPlotZoomer::QwtPlotZoomer ( int  xAxis,
int  yAxis,
QwtPlotCanvas canvas,
bool  doReplot = true 
)
explicit

Create a zoomer for a plot canvas.

The selectionFlags() are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly.

Parameters:
xAxisX axis of the zoomer
yAxisY axis of the zoomer
canvasPlot canvas to observe, also the parent object
doReplotCall replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
See also:
QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase()
QwtPlotZoomer::QwtPlotZoomer ( int  xAxis,
int  yAxis,
int  selectionFlags,
DisplayMode  trackerMode,
QwtPlotCanvas canvas,
bool  doReplot = true 
)
explicit

Create a zoomer for a plot canvas.

Parameters:
xAxisX axis of the zoomer
yAxisY axis of the zoomer
selectionFlagsOr'd value of QwtPicker::RectSelectionType and QwtPicker::SelectionMode. QwtPicker::RectSelection will be auto added.
trackerModeTracker mode
canvasPlot canvas to observe, also the parent object
doReplotCall replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
See also:
QwtPicker, QwtPicker::setSelectionFlags(), QwtPicker::setRubberBand(), QwtPicker::setTrackerMode()
QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase()

Member Function Documentation

bool QwtPlotZoomer::accept ( QwtPolygon &  pa) const
protectedvirtual

Check and correct a selected rectangle.

Reject rectangles with a hight or width < 2, otherwise expand the selected rectangle to a minimum size of 11x11 and accept it.

Returns:
true If rect is accepted, or has been changed to a accepted rectangle.

Reimplemented from QwtPicker.

void QwtPlotZoomer::begin ( )
protectedvirtual

Rejects selections, when the stack depth is too deep, or the zoomed rectangle is minZoomSize().

See also:
minZoomSize(), maxStackDepth()

Reimplemented from QwtPicker.

bool QwtPlotZoomer::end ( bool  ok = true)
protectedvirtual

Expand the selected rectangle to minZoomSize() and zoom in if accepted.

See also:
accept(), minZoomSize()

Reimplemented from QwtPlotPicker.

int QwtPlotZoomer::maxStackDepth ( ) const
Returns:
Maximal depth of the zoom stack.
See also:
setMaxStackDepth()
QwtDoubleSize QwtPlotZoomer::minZoomSize ( ) const
protectedvirtual

Limit zooming by a minimum rectangle.

Returns:
zoomBase().width() / 10e4, zoomBase().height() / 10e4
void QwtPlotZoomer::move ( double  x,
double  y 
)
virtualslot

Move the the current zoom rectangle.

Parameters:
xX value
yY value
See also:
QwtDoubleRect::move()
Note:
The changed rectangle is limited by the zoom base
void QwtPlotZoomer::moveBy ( double  dx,
double  dy 
)
slot

Move the current zoom rectangle.

Parameters:
dxX offset
dyY offset
Note:
The changed rectangle is limited by the zoom base
void QwtPlotZoomer::rescale ( )
protectedvirtual

Adjust the observed plot to zoomRect()

Note:
Initiates QwtPlot::replot
void QwtPlotZoomer::setAxis ( int  xAxis,
int  yAxis 
)
virtual

Reinitialize the axes, and set the zoom base to their scales.

Parameters:
xAxisX axis
yAxisY axis

Reimplemented from QwtPlotPicker.

void QwtPlotZoomer::setMaxStackDepth ( int  depth)

Limit the number of recursive zoom operations to depth.

A value of -1 set the depth to unlimited, 0 disables zooming. If the current zoom rectangle is below depth, the plot is unzoomed.

Parameters:
depthMaximum for the stack depth
See also:
maxStackDepth()
Note:
depth doesn't include the zoom base, so zoomStack().count() might be maxStackDepth() + 1.
void QwtPlotZoomer::setSelectionFlags ( int  flags)
virtual

Set the selection flags

Parameters:
flagsOr'd value of QwtPicker::RectSelectionType and QwtPicker::SelectionMode. The default value is QwtPicker::RectSelection & QwtPicker::ClickSelection.
See also:
selectionFlags(), SelectionType, RectSelectionType, SelectionMode
Note:
QwtPicker::RectSelection will be auto added.

Reimplemented from QwtPicker.

void QwtPlotZoomer::setZoomBase ( bool  doReplot = true)
virtual

Reinitialized the zoom stack with scaleRect() as base.

Parameters:
doReplotCall replot for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
See also:
zoomBase(), scaleRect() QwtPlot::autoReplot(), QwtPlot::replot().
void QwtPlotZoomer::setZoomBase ( const QwtDoubleRect &  base)
virtual

Set the initial size of the zoomer.

base is united with the current scaleRect() and the zoom stack is reinitalized with it as zoom base. plot is zoomed to scaleRect().

Parameters:
baseZoom base
See also:
zoomBase(), scaleRect()
void QwtPlotZoomer::setZoomStack ( const QStack< QwtDoubleRect > &  ,
int  zoomRectIndex = -1 
)

Assign a zoom stack.

In combination with other types of navigation it might be useful to modify to manipulate the complete zoom stack.

Parameters:
zoomStackNew zoom stack
zoomRectIndexIndex of the current position of zoom stack. In case of -1 the current position is at the top of the stack.
Note:
The zoomed signal might be emitted.
See also:
zoomStack(), zoomRectIndex()
void QwtPlotZoomer::widgetKeyPressEvent ( QKeyEvent *  ke)
protectedvirtual

Qt::Key_Plus zooms in, Qt::Key_Minus zooms out one position on the zoom stack, Qt::Key_Escape zooms out to the zoom base.

Changes the current position on the stack, but doesn't pop any rectangle.

Note:
The keys codes can be changed, using QwtEventPattern::setKeyPattern: 3, 4, 5

Reimplemented from QwtPicker.

void QwtPlotZoomer::widgetMouseReleaseEvent ( QMouseEvent *  me)
protectedvirtual

Qt::MidButton zooms out one position on the zoom stack, Qt::RightButton to the zoom base.

Changes the current position on the stack, but doesn't pop any rectangle.

Note:
The mouse events can be changed, using QwtEventPattern::setMousePattern: 2, 1

Reimplemented from QwtPicker.

void QwtPlotZoomer::zoom ( const QwtDoubleRect &  rect)
virtualslot

Zoom in.

Clears all rectangles above the current position of the zoom stack and pushs the intersection of zoomRect() and the normalized rect on it.

Note:
If the maximal stack depth is reached, zoom is ignored.
The zoomed signal is emitted.
void QwtPlotZoomer::zoom ( int  offset)
virtualslot

Zoom in or out.

Activate a rectangle on the zoom stack with an offset relative to the current position. Negative values of offest will zoom out, positive zoom in. A value of 0 zooms out to the zoom base.

Parameters:
offsetOffset relative to the current position of the zoom stack.
Note:
The zoomed signal is emitted.
See also:
zoomRectIndex()
QwtDoubleRect QwtPlotZoomer::zoomBase ( ) const
Returns:
Initial rectangle of the zoomer
See also:
setZoomBase(), zoomRect()
void QwtPlotZoomer::zoomed ( const QwtDoubleRect &  rect)
signal

A signal emitting the zoomRect(), when the plot has been zoomed in or out.

Parameters:
rectCurrent zoom rectangle.
QwtDoubleRect QwtPlotZoomer::zoomRect ( ) const

Rectangle at the current position on the zoom stack.

See also:
zoomRectIndex(), scaleRect().
uint QwtPlotZoomer::zoomRectIndex ( ) const
Returns:
Index of current position of zoom stack.
const QwtZoomStack & QwtPlotZoomer::zoomStack ( ) const

Return the zoom stack. zoomStack()[0] is the zoom base, zoomStack()[1] the first zoomed rectangle.

See also:
setZoomStack(), zoomRectIndex()
qwt5-5.2.3/doc/html/inherit_graph_29.png0000644000175000017500000000311512052741163017334 0ustar gudjongudjon‰PNG  IHDRk%ĘŹ€GbKGD˙˙˙ ˝§“IDAThíšoHoŔźËM'Ý‹KO‹$ËČQDŕ­°…5·˘ąţp˘,¨VI ¤dŢf˝°‚Dú*s[ëEEPQhI48 s—čÂl®9Ç6s]ídĎďĹńëěןťÔO¸Ď«çľĎ}źű>źÝžçŽ  ,úŰ,x$b‘ ŠE2(™ŕ¸żż˙ôéÓĄ”˙?AŘl6 ĂR`/®®®îďď×jµ¶¶…AOOOwwwuuujPx´ZííŰ·˙TU AćĄuP,’A±HĹ"‹dP,éôz˝555yyy™™™+W® µµBč÷űS/:00€ ˲Éôׯ_ďŰ·ŹoOOO×ŐŐA’dss3Ôh4 …˘   łłBčńx’Žfff>ś››»lٲ“'Or—ÚËcµZ)ŠJMܵkWSSßd2™×ëýÁ¬ÝÝÝ ŕřW FŁŃE‹ŤŽŽ ⇣¨¨čÂ… •••Â[·ná8®×ëůö† ’ĄĎÎή_żľ˛˛ňÎť;ˇPH0Nmm­Á`śśôx<+V¬p:ťBŁŃxöěY–em6[nn.üÖ Ĺbˇ(* ŽŚŚh4šK—.Í5řđáC•J•šŘŐŐĹG „W®\Ńét?žřĽA„ă8Aś¦i Ă1 ă8®ľľľ©© ÇńŮŮŮŁGŹ666¦Î*Ť^ľ|ąŞŞŠ •JŐÜ܋Š„ńx\&“%?žľľ>·Ű !ŠĹbÇÝĽy“$9Z<—Ëĺ‘H„Oyňä‰Z­žkp``@©T¦&FŁQ…BÁ0 „pëÖ­7nÜHĂ`:ë`NN‚ ďßżÄ}>_^^Ţşuë”JĄŰíîíí=pŕŔŇĄKiš~öě™^ŻO=Çńúúú»wďÁÎÎÎ/^đ˝÷ďßwą\SSS‹ĺÚµkn·űüůó‚zH’ĚČČHŢ333Ż^˝š[ö˝{÷4Ť h6›ťN§Ýn7Ť(Цa#ÍťäÍ›7A;vŚa–e[ZZäryNNż¨9ťNEŤF#„°«« EŃ={ö@†‘Édńxüůóçmmmăăă,Ë2 c0jkkůÁ÷îÝk2™‚ÁŕđđpaaˇÝnźśśD„¦éP(TSS#“É"‘Hę÷Ôl6×ŐŐÁ@ PUUuüřńÔŢ©©©«WŻ˘(úöí[ří‹Ĺ/^Ľf͚Ǐ˙tÖ`ľÖAžŃŃQŠ˘H’ĚĚĚ\µjUCCZ­niiNOOËĺňöövářř8ŔfłA?}úT\\ŚaX(zđŕN§CQ4;;{íÚµŤŤŤ_ż~ĺG…Bű÷ď_˛dI~~ţąsçřŕ™3gp_˝zµËĺR©TŰ·oO‡)Š"‚ C‡}ţü™pá‘Ëĺ%%%IG‚%Ňl6$‰?mp.,ËŇ4ť^î‚ŕ»çó­NˇPlܸq\HďĹb‘ ŠE2(É X$b‘ Šĺ;żvz˝Ţëׯ˙ůR*‚çĂöööż]Ń˙ Ɔ†Ć„˙Yř]¤uP,’A±HĹ"Ë?Ł%Ç«"ë&ÇIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_drag_point_machine__inherit__graph.map0000644000175000017500000000026112052741155026620 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_9.png0000644000175000017500000005361312052741162017261 0ustar gudjongudjon‰PNG  IHDRe Z3ÇĚbKGD˙˙˙ ˝§“ IDATxśěÝw\÷˙đĎ… V A* (S…V°U« €‚ŠÖ|U¤Zµ‚€Ő˘Użj­-.´‚µ­â˘¨( ¸E†ţZ- "# Á˛ „•}ż?®ß4E–¬0ŢĎG}Ŕ'źűÜ;wG^ŢȆă8@›HŠ.č /€öA^íĽÚGVt€>çŹ?ţřď˙«č*ú ''§ŔŔ@EWëcÍ,\¸đŹ?ţ?~Ľ˘ QĽ7oŢüůçźđ9 ě_Z4~üř .(ş Ĺ»pႇ‡‡˘«}śżÚy ´ňhä%Đ>ČK }—€Î+((đňňbłŮT*ŐČČ(  ¦¦¦íI8ޞ˛2ń3Ö’f}č# /ť”ťťmggÇ`0¸\nTTTnnîřńăŰŤLÇqĎÎΦŃhř˙ôhÍtä% “|||<==CCCÍÍÍŐÔÔĆŽ«ŁŁłk×.''§ýű÷#„Ţľ}‹aŘž={BĄĄĄ†YXX Ă*++Ű˙—_~a2™,ëÜąsDKCCĂęŐ«Y,–ľľţĆŤĹb1‡Ă122 ˇÓéŃŃŃFFF`2™şşşçΝ۶m›¦¦¦®®îéÓ§‰jjj–.]Ş­­=lذ͛7‹D˘ž\B`@ĽtŹÇKHHđóó“oÄ0Ěßß˙Úµk®®®÷ďßG%''3ŚÄÄD„Pbbâ1cd{“ÚÚÚmŚ/ 322 ×­[·aâŃĎĎŻ±±1333))))))44!TRR’–––——gnn^\\\^^ţęŐ+??żĄK— …¢˘"??żM›6#¬^˝šÇăeeeĹÇÇÇĹĹÝĽy3BČŐŐőčŃŁ&LŔ0ĚÁÁáČ‘#ŽŽŽ Ă0‰D҉ mh4Ú‚ *++ËËË/^|čС÷aîÜąţţţĺĺĺyyyŰ·o_˛dÉű–-ČK@'YZZ>~ü¸şşÚŢŢ^CCăĚ™3ľľľ†††‡F999 ‚I“&!„¦L™R__OŚŐ××1b“ɬ®®~ß9ţňË/b±ŘÜÜÜŇŇRWW÷‡~xߎ;¦¦¦Fěňşşşnܸń}G<˙ĐÜÂ… Bť{žźĎçp8666Ý]”bĎó‚ĎI€`˙Đ˝”••LX ňhä%Đ>ČK }—@ű /€öA^í#+ş@_TPPđ믿? …R*uţŰúÉ“'Š.ô—€ć>ůä“‹/ůúîTV6UV!•rą±Š.JaĆŹŻč@źy řŽăĎž˝ilůÉ'ß˝zU5lŘ™3ÇĚžýˇŤMŚ˘K@Áŕ~x$I811ińńŮŐŐ cĆ sv¶ś5ËĆĚŚ­čŇč+ /Ľd1yď^6—Ű`g7ÜÍÍĆŮŮĘĐ©čŇčs /td1y÷nVmm“­­‘››Í´iV“´ ň€ÁB“wîdńxÇäô飆 ˘čŇč /ŕ„BqbbNLLÚíŰ™uu|"&]]Gëëk)ş4úČK¦ĆFa\ÜłŘŘgäńů""&gĚ3t¨¦˘K _‚Ľ`@ih\żžNĤH$?~„łłŐĚ™côô &čČK‚úzÁŤ鱱ϒ“sĹbÉ”)łfY;:Z˘¦čŇ /čÇęęř7o>ŹŤ}–””#•âćłfY;9YjiALĐÍ /čx<ţ­[“ô*ČKú YL&&ćŕřß1éělĄ©©ŞčŇř /čë*+룣źĆĤ=}úŠDÂś6ÍJCb€Ţy @UQQwőj*“T*ŮÉÉŇÉÉrúôQ †Š˘K`0‚Ľ o)/Ż»víď¤ŃČ3fŚqsłůôÓ‘**TE—Ŕ y @ ŧN=üřcckëam÷,+ăĹĤĹĤ=yňRE…ęę:ÚÍÍfŇ$SeeJď” hä%=Ą¨»bĹ‰ŚŚbkënÜřşĹ>eeµ11ĎTUĄş¸@LĐGA^Đ#bbŇüýĎ‹ĹR‘H‚ú㏭ňÉ*-­ŤŤý;&ŐÔhÓ§Źrsł™<ŮŚFG¸ĐGÁ'ÝL$’ěÜyíäÉd„ńďQ2™týzúš5S^ľ¬ŚŠJ‰‰y–›[Ę`(O›6ĘÇÇb€~ö/čNeeµŢާŇÓ_‹DRY#†a&&şşşôGŹ +]gδvr˛TU…Kxč7 /č6II9«VťnlÇ`ĺaćädąpˇÝÔ©pĄ+ý HĄřÁ·ĽMüün%%l„3gZ÷zi€îARtô{55ŤK—ţzđŕm©o1,B ý´— t#ČKş„Ă)™>ý@bbNkIIŔq<=˝¨¬¬¶× t/ČKđ/gČ!č°Ź?^ňćMuëa)Ĺq)ŽK’â8nddűˇ˝şŽßß`Ű*úţ ç/Áż¤§§sąÜ .(ş~Ç•–6Ę~ %ňWĆňůŮuJJťÝn “ź<888))ÉÇǧWŠí¤AµUô‹5ň´ŔÝÝ]Ń% /^Tt 5H¶Š~´F@/ă±@ű /€öA^íĽÚy ´ňtRAA——›Í¦R©FFF555mOÂáp”••ĺ[Ľ˝˝1 ‹ŠŠjŁO‡z/ň“żzőjéŇĄúúú***#FŚřöŰo›šš:=Z·kj^˝šęĺuÜÍíŹÇt—.n­­ YźÖuŹ®— 3˛łłíěě FBB—ËŤŠŠĘÍÍ?~|»Žň/\¸ŕččxúôéž+µm8ŽOź>ťĹbĄ¤¤pąÜ‹/>xđ`ÝşuŠŞGF$’Ü˝›őŐWg,-·~őŐ™řř¬'O^•–ľÇâí}]Ü*:˛.ĚÍÍůüľţŹ0PA^‚Îđńńńôô 577WSS;vlll¬ŽŽÎ®]»śśśöďߏzűö-†a{öěA•––bfaa!0 «¬¬DEEE>|řĆŤňă˙ôÓO,KWW×××W  „.^Ľhnn®˘˘2jÔ¨‹/ʆzđŕ‘‘QHHťNçp8™™™ü±ŠŠŠˇˇˇ,†ëęęV¬Xˇ­­Ífł·mŰVYY)›<===77÷űďż×ÓÓSVVţđĂŹ9R__ßâ„Dc‹łihhX˝z5‹ĹŇ××߸qŁX,~Ż+IîÜÉüâ‹S#G.[v<.î™@ ÂńVoKۧtq«h{]ä÷#«««=<<455 ĺż4ůî*ŕp8ňI/.0 @^‚÷Ćăńüüüä1 ó÷÷żvíš««ëýű÷BÉÉÉ #11!”8fĚěělŤ†ă¸¶¶6BčäÉ“_~ůĄĄĄĄµµőůóçeC ‚»wď>ţ<>>ţÖ­[AAA<oÉ’%GŽ©©©ńńńŮĽyłüP%%%iiiyyyććć[·nť9s&—ËݶmŰĆŤ‰×­[W]]ťťťťžśś,›|Ô¨QVVVóçĎŹŽŽ®®®FŤ=:""˘Ĺ Ż\ą‚jq2~~~ŤŤŤ™™™IIIIIIĽłŽăÉÉąëÖťł˛Úňůç'nÝz.J¤RüÝç‚őY]ß*Ú^ďZµjUUUUVVÖť;w"##eí-®ůŤ¤‡–đŕţ>ŕ˝UTTŕ8n``ЬÝŘظ¬¬ĚĹĹeçÎťb±899Ů××7$$D"‘$&&şşşĘw~ůňĺ_ýŤúüóĎOž<)˙Q{čĐ!]]]]]ÝďľűnçÎťëÖ­#‘Hoßľ•JĄ«V­Zľ|yaaˇ¬łP( ŇŃŃAýđÆ††d2™BˇÔÖÖ"„D"ŃŮłgsrrtttttt"""äOt)))=|řđĚ™3'OžôööÖŐŐť?ţćÍ›UUU[›đÝYČD˘Ó§OWTThhhhkk}óÍ7ţţţm,L©1ĆŤŰU\ĚURR’H$!±¸ĺ˝É4KŁŤŃzHJJY»}şľU´±.ŢťźĎż|ůrvvöСCB;wî\˛d je¸¸¸Čo$tä%xo:::†˝~ýÚŘŘXľ˝¸¸Íf[YYijj¦¤¤$''GDDDDD¤¦¦&&&ţüóĎňťĂĂĂů|ľ©©)BH$UWWgddŚ5 !D"‘d#›™™•••iiiĹĆĆîŰ·ĎÇÇÇÎÎîǤÓ鲡¨TŞěsđŃŁGžžž† 6Śh)))‘JĄĂ‡'~ť8q"BHţ ÁX»víÚµkqOIIŮ´iÓ’%K®\ąŇâ„-ÎB¦¤¤D$ijjĘ/«¶¦TJzýšŽ!D„e¸Őv‡‚aX»}şe«hm]Ľ;»˛˛2ÇGŚAüjbbBüĐÚ*ßHčČKđŢ †˝˝}HHČÁ‰–ŕŕŕąs熄„Ě™3!äâârůňĺŇŇR ‡K—.O0áĹ‹DÇĂĂĂŹ=:kÖ,˘ĹÓÓ3<<|ßľ}!©TúňĺK"¨ňóó ř|ľ††Ć­[·App°‡‡Çőë×eőČ>Í+++W®\ůčŃ#[[ŰŚŚŚ7n „X,B¨¨¨·ëׯ …BŮAąŐ«WçĺĺÝ»wŹÇÎÎ.((ŘéiqÂO?ýôÝYȰX,%%ĄŞŞ* „PCCq¦¶ d˛ÔήÔÍmÍůór8%T*Y(lő”gBB ©)»˝őÓý.\¸ŕáŃNź®om¬‹wéééaVPP@D¦ěxC‹« ©©©#‘@Űŕü%čŚĐĐĐ3gÎřűűçääđů|ŹgfföôéÓÍ›7#„\]]Ź=:a Î9âččHˇP0 “H$"‘(11±¬¬lѢEě˙ůĎţsîÜ9b‹D"ůűűWTTdffnÝşuٲe‰dęÔ©Ź?F)+++++ˆ’Ż ÇqÇÉdruuőľ}ű$Imm-ŤF›7oŢ×_]YY™——çăă#‘Hd“{yy%&&îßżż¨¨ĎççääěŢ˝ŰÍÍ !Ôâ„-ÎBVŤF[°`A@@@eeeyyůâĹ‹:Ôî¤Ń$ŢŢ“ăăżą?Đ××Q__ !Dˇ(uëë ]Ü*ÚXď˘R© ,đńń)))ÉĎĎßµkŃŢąU@‡ŕČ!®›čHĎ/^,]ş”ĹbQ©Tccăőë×ŰÚÚnßľÇqŹGˇP8€ăř›7oBaaa8Ž×ŐŐ™››Óét777ůŃ*++ÉdňŤ7˛łłMLLľűî»!C†°ŮěM›6‰ĹbÇOž$®!ěرÁ`DGG[XX899á8^UUµhŃ"---==˝ďľűNľ’ŞŞŞ7nŘŰŰ««««¨¨™™ b´w'lq˛+VpçrąK—.e2™L&ÓŰŰ»±±±íĹčîîîîîެńŮł×[·^¶˛úVOĎذŻőôü‰˙rrJ:˛jş]ďlm¬ Ů–_ÔUUUÄő±Ă† ;wî\«@~Şvµ¸FŔqĂń~pť:č5.\ ’¬Óňů|‡cccÓíU ` .DµřhIˇP|˙>çňĺ”[·2…B B¸BŹÇ–­˘Ť598 şŤ˛˛r?úXěű¨Tňô飦OU_/¸uëyuu±±®˘‹zo°U€ň€ľN]ť6ľ­˘«`°ë}€öA^íĽÚy ´ňh\ Zŕěě¬čúŤ†µÚÚîŽăJ8ţĎ­×Äb’ěW ××/&“˙uO˘çĎźOž<ąwJí˘v·Š¦&UM@"ő›gŞ´¨­ĐËŕ~ŕ_¸\îúőë]Hżńâ…FI‰şěî¤m˙=YZVŇÔ¬ŃÇǧŹ@·»U…J/_2ĘËUMLjőôę[ëÖ_ôý5ň€.‘H¤Ţ:xđ†ˇ¶źę¬ŞJÍĘÚMĄ¨:|ľčČ‘{GŽÄ2wíš÷é§#]=e@ýéĐű””H6¸Z[|őŐY@(K[ěF&+Mź>j€…ĺÇů›6]|ű¶Ć××髯¦ŇhęÝĐ \ď@7pv¶JHřĆÜ\OI©ĺż)±Xęâ2ş—«ę9<^Ó† ‘ ţKLĚ‘H¤}dčćfóŮgik«+şęv\żžxQKK58ř?¶¶Ă]˝ ň€QSÓ¸v홤¤\‰DJĄ’ł˛v«ŞRĺ;45 <Č‹‰I»~=] Á9{ö‡şştEŐÜšęę†ŔŔ‹7o>÷÷w^·Î™BQRtE(ä%=Çńź~şł˙M—ŃÇŹ/o­›,8oÜxÎç‹ŕtsła±˝Ymk’“sýý#B‡-š4ÉTŃĺ 0—ô¬˘".›­A&·-:ź/JNÎŤ‰I»yóycŁpěX#7777kKŁÝi{‚X,Ýż˙Fhč˝9s>üńÇ †ŠBƠʀĽ Ďi18gͲfł{/8_˝ŞZ˝:Ľ°°ňŕÁE®®ç›0tä%}—@ NJʉ‰I»u+َA0v¬Ń´iVłfŮ2{tľ11i7FŽÉ:zôó>ĐęŃyĐ_@^ĐČ‚óöí ŹojĘvsłž?ßÖČH»{g„ăřˇCw¸ąhŃ'»vÍUV¦tďřô_—ô'Bˇ811çÎťĚ7žWUŐÁ9oŢŘáĂuş>xS“Đß?âÖ­Ś˝{.\h×őH /č—$é“'/cbž]˝ú´˛ňďŕś;w¬±q'óĹ‹ňĎ??.OťZieĄß˝Ő0@^пɂóÚµÔŠŠ:"8çĚůhÄÝŽňäÉË+~Óѡ‡‡{ëëĂ KZy Ŕ! ÎÔňňżsöěGŽdµ=áÝ»Y«V…OžlęŮżîĎ@o‚Ľ` ‘gllZYŹN77SSö»ťĎťűcÓ¦K_|1y۶Ůě±×€w@^0`IĄxJJaLĚłŘŘgeeµ¦¦lgg+ggËq㌉Ü ľýí·3×®uTl©ô}— |˛ŕŚ‹{VZZk`Ŕtv¶DçÎýącÇś/ľ°Wtô— "DpŢą“uţüź\nĂ!jsçŽusł¶łch<€A„DÂĆŤ3~𠯶¶10p†X,‰ŠzrâDŇhMź>‚€6Ŕţ%KXXâŽWĺĂćä”ĆƦ]ľü´°°B__ËĹ‚€@^0DG?]»öě¦M3|}ťŢ}•ÎččÔ/ʇŐtuÁ € ä%čOžř`Ó¦MBˇ0;;›FŁÝd?gggţúëŻL&“Ĺbť?ľ˘˘B~őőő«V­ŇŐŐ:tč† D"1ÉáÇŐŐŐłłł»ľzA^^™‰É7?üŰí#»»»»»»·Ű­‹ë:99™X_ĺĺĺÖÖÖ+W®”H$xK«ŹĽµµčĐ!]]]>źßvÍ‘‘‘đyÚű— 7đxĽ„„???ůF ĂüýýŻ]»ćęęz˙ţ}„Prr2ÁHLLD%&&Ž3Fu4-))iÉ’%ň#}űí·ˇŐ«WóxĽ¬¬¬řřř¸¸¸¶VIyyyzzzAAŻŻď×_­­­-›…¶¶¶źź_cccfffRRRRRRhh(B¨¤¤$---//ĎÜÜĽ'N÷‰$kמ±°şqŁ«B čúşÖÖÖF•””ŘŰŰ›™™………‘HR5[}Dc‹k_ Ü˝{÷ůóçńńń·nÝ ęÍ…&ç5P{űUůůů†‰D˘fí©©©t:=##N§‹D˘µk×nٲ…Á`Ĺâ5kÖĘ>C 0 #ö3šáóů$©  €ř5**jôčŃ­í_"„***pĎĚĚ”5?…B …RSSCLokkKLR^^Ţ-ˡ|÷ÝUSÓM/_VöÄŕŮżěúşÎÎÎ&“Éfffîîîl6»¬¬ŚˇĹŐ×ÚÚGĺççŤćććm— ű— ]° zŽŽ†aŻ_żnÖ^\\Ěfł­¬¬455SRR’““/^¬­­ťššščęúĎ“É$úËOž‘‘VZZŠ222"ŤŤŤ‹ŠŠZ«„JĄ»/˛]™’’‘H¤©©‰a†aS§N}őę1‰ŽŽNgßzŻJJĘ9v,aß>CC¦˘jčúşFI$’m۶]¸paâĉźţ9ţżŰÔ˝»úZ[ű$ÉŘŘh433+++ëˇ÷ ČKĐ †˝˝}HH¬%88¸°°0$$dÎś9!—Ë—/—––ZXX888\şt©¸¸x„ ň#Lś8ńřńăňĂîŰ·ďĆŤl6!ôňĺK˘±°°POO!$ű•ŹĎ6MĹb±”””dű—őőőýőWŰ“ô)\nĂúőżĎše3{¶ŤËčúşFQ©TâŘ{XXXffćöw×Ekk_*•Ęóóó ş˙­‚AîďzIhhčäÉ“q_łfŤˇˇ!ŹÇ333ÓÔÔ<ţľ®áy^ ]° IYYąĎ~€ö\nĂš5§ťś¬V¬¤čZÚëôwpţt ŽăĹĹ5¦řc€ŽăţţJJ¤˙Ó_®K ź‚Ľ%•âoŢTż~]•“Sš›[úęUŐë×UĹĹ\±XŞ˘2BŃŐ R§N=ŹĎţý÷5ŞŠ®€ň´L T”TTäç—Tpą ! EÉĐib˘;s¦őđáÚĆĆşź~zTŃőFüńbÇŽ«ß|ă:q"ü{€y PS“0/ŻěŐ«ŞÜÜŇÜܲWŻŞ^˝ŞŞ­mDŃhd33=CCć'źxyM03c2ßÝ•‘J;úŕĐ]^ľ¬\±â·yóĆúú:)şČË>M"‘^ş”ríZÚÎťźŤˇŰő‰cŞąąP%2˛¬Ś‡Â0ĚŔ`ÓÎn¸§çxCC¦sčPM E©ëóÝ«®Žďí}rčPŤÝ»ç+ş ČË> Çńë×ÓwďŽ}ýş !tűvĆSßw˛2ž|.ćć–ľ}[#IBtş˛ąąž™{ňdS¦©){řpm*¶‡~@$’¬\y˛˛˛.&Ć_U•Şčr,ŕó±ĎÁq<6öYPĐőWŻ*qá8®¤¤ôâEEŰS56 óó[>¦Ş¬L15e2gͲ15eµvLô ‰ô‹/N=^í;lŘŢ™)ŽăĎž˝‰Ť}–—§9rä{?Ă€á_yÉáp&LŔĺrUÍ âăă#űőÁĽ]»®edc’J˙ţę´D"ÉÉůç‰4?ż<7·ôőëŞfÇTI$lذćÇTőőµČäžý˘­ššš‡‡‡‡‡âďĦpęęę=:ţÎťWďßĎ>uĘŰĚŚÝŁ3Bá8ţôé븸´ŘŘgEE\CC¦ššŇĹ‹ęWzzÝţî_y™žžÎĺr;wóĐ ÁÁÁIIID^¦§żŮąóęź()a8Ţü6#yyeÁÁ·^Ľ(/(¨(,¬ŕńř!Ťll¬kb˘ăá1nřpť#XĆĆÚZZj˝˙Fţřă‡ÓűóíkÔÔÔfĚŃsă˙}ĚÉ“^2eJ>‰S$’$$pbbŇîÝËćrěě†ůĄłł•ˇ!“ËĺŢ˝űŢçú‹~ń|S @˙şÜŞ—w :˛{wĚÍ›$&‘H[ę#„ 6ÄÄD—řĎŘXŰŘXW__s ţKĽkűöčS§üüóŇ™3­{b|YLŢ˝›U[Űdkkäćf3mš• @źç/I*Ĺ 5&OţĂ0Ç%’ÖţĄ‚!„~ýu™µő°Ţ,ô8Ž]˙í·äC‡u{XĘbňÎť,ŻÉÖÖhýúéÓ§Źęµ“Łô— VZކă8•ŞD"aÄ•«-"‘°/Ę!/!±XşqcäĺËOBC=çĚů°»† ʼn‰911i·ogÖŐńmmŤľţzş‹Ëč>Đę®Y0Ŕ@^*‰„Ź_Ľ{÷áôô7ééE©©Ż23ß " #“•D"±ěĐ8™¬TPĐÎ%˛`ŕ©«ăŻ\ů[zzŃ￯?ޤë66 ďÝËşs'S“6¸¸şŽÖׇ — F"!33¶™ŰÝÝ!$9ś’çĎ‹22ŠRS_çä” …b ‰Ä—MyyÝĘ•'^˝ŞŠŚ\ÓĹC ŤŤÂ¸¸g±±Ď<ČDcÇmŘŕ2cơC5»«Z<ČËľ…F#[[“}8_ÉČ(ĘĘzK*$ž?/Zľü„˛2ĺęŐuÇëtn†Áőë鱱ϒ“sĹbÉ”);w~ćčhˇ§1 Ŕ{ëä×ň ĽĽĽŘl6•J522 ¨©iç[ĚGYY™řűŤfkk{÷îÝ÷-@6Z»ŤňŻbrčtş““SNNÎűÎş7))‘ĚĚŘóçŰnŰ6ŰÜ\OŃĺ€^ůŘÍí§1c†Ýşőu'²ľ^pńâ_ź~|ôčm_ý;BhĎ÷´´ďÂĂ˝==ÇCXĐ9ťÉËěěl;;;‘ŔĺrŁ˘˘rssÇŹßndĘĐh4ÇqűöíĘ•+çÎť›ťťÝ‰JŢ—lľ8Žż~ýÚŇŇrĹŠ˝0_:H,–Ĺ­_˙»§çř_]¦¦ö­«ă˙/&·n؉ڳÇýŮłďÂĂ˝ÝÝí† QŔsH:“—>>>žžžˇˇˇćććjjjcÇŽŤŤŤŐŃŃٵk—““ÓţýűBoßľĹ0lĎž=ˇŇŇR Ă,,,†a•••˛ˇLćš5kV¬XńăŹ?-555K—.ŐÖÖ6lŘćÍ›E"‘ü^cł=Čź~ú‰Ĺbéęęúúú ˙zDFCCĂęŐ«Y,–ľľţĆŤĹbqłwˇĄĄőůçźËr:33óăŹ?VQQ144<}ú41/##ٰ°0mmm6›Aô¬««[¶l“É422:{ö¬¬žvç@ŰŢĽ©ž??ôر„˝{Ýż˙~^ďĘ$‹É1c¶1ąwď´´ťDL*äţ Hďť—</!!ÁĎĎOľĂ0˙k×®ąşşŢż!”śśĚ`0B‰‰‰cĆŚÉÎÎ&vď´µµ›Ť9sćĚ””âçŐ«WóxĽ¬¬¬řřř¸¸¸¶V‰@ ¸{÷îóçĎăăăoÝş$˙Şźź_cccfffRRRRRRhhhłÉkjjÂĂÉ_·nÝ:sćL.—»m۶Ť7Ťĺĺĺéééľľľ_ý5ѸnÝşęęꬬ¬»wď:t¨ăs  ÇŹ'ŮŰ55 ďÜٸdÉřvűóx˛˝ÉbR¶7 1 @÷ĂĺDFF6kyW~~>†a"‘¨Y{jj*ťNĎČČ Óé"‘híÚµ[¶la0b±xÍš5˛Ľ”ý “––¦©©‰ă8źĎ'‘HD{TTÔčŃŁĺűË‚ĘĎĎ'Ú#""ĚÍÍeŻ …B …RSSCĽokkűî!_!!++«ˇˇA$ť:uJ~8ŽgffĘF&“ɲ Ż\ąŇĆŰ^’8Ž»»»»»»·Ű l<^“źß9==˙ "mw®¬¬ K\¸đgCĂ _{y…]¸đ¸¦¦ˇwJ`0{ďëcutt0 {ýúµ±±±|{qq1›Í¶˛˛ŇÔÔLIIINNŽHMMMLLüůçźŰł¬¬LOO!TZZŠ222"ÚŤŤŤ‹ŠŠZ›ŠD"Éj033+++“˝TRR"‰45˙ą®AGG!DŁŃř|>ŃŇŘظyófooob‡řŃŁGžžž† öĎ…űT*•Ř&‘H˛‘ĄR©¬ÂáÇ·=GÚv÷nÖ¦M„aaËÚ¸wOee}tôÓ´§O_))‘ěíÍöí[8}ú(CĄ7«`0{ďĽd0ööö!!!˛#ĄÁÁÁsçÎ ™3gBČĹĹĺňĺËĄĄĄ—.]*..ž0a‹/Z3..nܸq!6›Ťzůň%‘C………DŽâ˙űŢľ||JĄRYĎüü|ŮK,KII©ŞŞJCC!ÔĐĐPYYŮÔÔ$?SUUŐ+VLś8!TYYąrĺĘGŹŮÚÚfddܸqčóîÝYY,Vł Űăű,W0č””ÔlÚtéîݬ%K>ٲeV‹OX«¨¨»z5•IŤ”ÍťBˇŚ;öŢ˝{˛‘+++-Z4dȡC‡~óÍ7BˇÇńíŰ·3ڎC‡ž?^vrŃÄÄä»ďľ2d›ÍŢ´i“X,–?ÓÉĺr—.]Ęd2™L¦··wccă»çMy<ž’’Ňďż˙ŽăřŽ; †‰‰Itt´………““S‹çM‰‘/^Ě`0LMMŹ9B§Ó[›c»‹Î_`żý–4th€ž^ŔÉ“D"‰¬=7·tńâ_†  ĽP[Ű$?IiimXXâěŮ?éëŚčë{öö팦&aŻ×hA·=Ď‹Ďçs8›.'x_wöěYgggâŔlttô·ß~›••ŐąˇçyÁGžĂ‡ďîŮsÇq C8ŽąşŽ>qb9—۰˙­3gZYéďÜůٸqź}/+«Ť‰y“öäÉKUUŞ‹Ëh77›I“L••)Š}yÝv?,eD"‰‰ äeßzŻŤ°Dá8îĺ5ţ›ofôfU€n˙ČU$2·¶.wp0G5űŠŢ;p„0îáŢ…‡?üᇸ6Â’pîÜź˝S 'ŔţĄ‚Ńé˘óçWýőWáŽŃiiŻ1Ś$•JßíF"aË–Gih¨2 ™¦¦,SS¶ˇ!sÄ–Ş*|Ť]aŽOüďݶ–ˇŞŞúĆF!¬,ú©ňŇŮŮą÷ëśž?>yňd„ťÝ𸸀ääÜ­[/żxQŽă¨Ů5#zzš§N­,(¨řßĺÉÉą55Ť! EÉĐib˘kl¬cl¬3|¸Ž‰‰‹ĄŃą’öěŮÓ‰ÇwZR©Rv¶9BmuƧN]D§óšµ3™Ě°°0:ťŢvŹÁ¶Uôý5â_÷+ŕrąëׯohhP`AŤŹŹ™©Ź‹{öÝw×JKk%śŘkÁ04uŞĺ™3_4›V(—”Ôćć–ćć–ľzUőęUUnniY!Dˇ( Şi`@쉲ÍĚŘL!ďŢ· Ă>ůäů›Î¶Ńkk©JJ8‰$%‘TJ’?@ ýsĘĂ©)—Jm~~úâĹ‹‘‘‘ÄÍ+ú¦Á¶Uôý5â_ű—ZZZ'OžTT)!D"ann6ÎÎVżý–üÓOw„B±@ &“[ľ8–J%Çf‰ďżjk‰ě|ýş*'§4=˝čĘ•§ ˘ż‘‘6‘ťÄ„ććz::Í˙ź˝©ÝÄôj«čkô>8Ů)+SľújާçřŁGď˙ňË}@Üń/“hh¨ŽŁ:fĚ?»"‘äÍ›ę/ʉcą……))/KJjB$6t¨¦±±®±±¶±±®‰‰.†Á× —}ˇ8cĹŠI‰‰93gŽéô8ŠqjSľQ$’Ľ}[óúuŐ«WU99ĄąąĄ÷ďsŢĽ©&“;yâ6ČËľNG‡ľ`m·K\%dhČś4éźF.·aČźş}^0Ŕ÷/Á?´´ÔjáŰ, /€öA^‚Î(((đňňbłŮT*ŐČČ(  ¦¦¦íI8ޞ˛˛|‹··7†aQQQmôéŕPďE~ňWŻ^-]şT___EEeÄß~űmSS“|źÖćŐĹŢ—ŰpćĚ˙]ľü¤×ćŘ ]Ů*ćĎźďîî.kź9s¦ˇˇˇě×Ý»w›™™uăz  /Á{ËÎζłłc0 \.7***77wüřńí~8ĘkllĽpႣŁăéÓ§{®Ô¶á8>}út‹•’’Âĺr/^ĽřŕÁuëÖÉ÷177çóůŠŞ°ˇApĺĘSOĎ_­­˙xÉÇçlcŁPQĹ´­‹[…łłsrr2ń3źĎOHH¨¬¬ĚČČ Z’““ťśśzŞt:ňĽ7OOĎĐĐPsss55µ±cÇĆĆĆęččěÚµËÉÉi˙ţýˇ·oßb¶gĎ„Pii)†aðĘĘJ„PTT”±±ńáÇoܸQQQ!?ţO?ýÄb±tuu}}}BčâĹ‹ććć***ŁFŤşxń˘l¨…„„Đét‡“™™ůńÇ«¨¨Ęb¸®®nĹŠÚÚÚl6{۶m•••˛ÉÓÓÓsssż˙ţ{===eeĺ?üđČ‘#őőőňĹČď”TWW{xxhjj^ĽxQÖ§ˇˇaőęŐ,K__ăĆŤb±ĂáČöľK¸ˇApńâ_^^a[Ö­;—#K;rË=ęâVńᇖ••ĺää „îßżobb2kÖ¬ŘŘX„D"ůż˙ű?Ů}Ç~ůĺ&“Éb±Îť;G´Ľ»ü[k + /Áűáńx ~~~ňŤ†ůűű_»vÍŐŐőţýűˇääd‘JLL3fLvv6ŤFĂq\[[!tňäÉ/żüŇŇŇŇÚÚúüůó˛ˇÁÝ»wź?ëÖ­   Ź·dÉ’#GŽÔÔÔřřřlŢĽY~¨’’’´´´ĽĽjÔ(++«ůóçGGGWWW#„FŹŃÚ{_µjUUUUVVÖť;w"##eí~~~ŤŤŤ™™™IIIIIIˇˇˇ!ůÂ:¸lE"Éť;™_~yĘĘjK@@DbbŽX,‘H¤Ä3Ýú˛®oü±±±1ńŇőë×gĚ1sć̸¸8„PZZZccă”)SBBˇ0##ٰ°pÝşu6l fÔâňo±€.ÁŠŚŚlŁC~~>†a"‘¨Y{jj*ťNĎČČ Óé"‘híÚµ[¶la0b±xÍš5˛OFÇ ŐŐŐkkkq ů裏öěěl„P~~>ńkDD„ąąyuu5ŤF;}útccŁT*ĺóů˛ˇţĺĺĺD˙¬¬¬††‘HtęÔ)˘P($“É/^Ľ :źojjЉDŐŐŐŁFŤB‘H$ŮČfffeeeZZZ±±±űöíóńń±łłűńÇĺo„MĄRutţľĂŁGŹ<==1 “Ýé´¤¤D*•>śřuâĉ!ů¤ cíÚµk×®Ĺq<%%eÓ¦MK–,ąrĺĘ»oĽ¬¬ Çń#FżšČf!‰455ĺQłÂÚF&k˙üs–ěW‘¨… ĘŚŘ‘1»1©íݲU8;;äääTVVNś8‘L&Ź;öćÍ›ň'/©T*q|‚DúűŘX‹Ëżµ•@W@^‚÷Ă`0ěííCBBzôČÖÖ6##ăĆŤ!‹…***"ôúőëBˇPv€tőęŐyyy÷îÝ#Ʊłł ruumńŤëééaVPP@Dfaa!ŃÎb±”””ŞŞŞ444B •••MMMż©DR7uęĐĚĚú˛2•J Ű:Óvřđ­·˙lçĎ?Űv‡®o!GGÇ·oßţüóĎÎÎÎd2!4sćĚŘŘŘČŽôľ»T[\ţ­­”îY`ĐRđţ-čcPŽDeff2™L???‡ÓÔÔ´}űv …˘ŁŁSUU…ăřĺË—ŐŐŐ?űě3ÇOź>­®®>oŢ<Ç9™L …÷ďßWUU­ŻŻ— ¦§§'‹łłłI$ŇěŮłËËË322LMMźlaa!Jţ[yy9†a©©©UUU^^^d2™8·`Áww÷ŠŠŠÜÜÜáÇ_ştI6ůÇ•””öíŰ÷ćÍ›¦¦&‡3gÎśeË–á-ŹĹq|áÂ…Ó§Oűöm^^އ~(k÷đđXľ|yEEEYYŮěŮłýýý;~čO~™s8%ű÷ßřčŁzzţúŃńXĽË[1ČÇLĄROś8AüúôéS*•ަ¦Ft_Şň?ż»ü[l„ă± ‹ŕzđŢ,--?~\]]mooݎˇqćĚ___CCĂÇ#„śśśÁ¤I“BS¦L©ŻŻ'öŘôőőGŚÁd2ÝÜÜÔÔÔdÎť;·˘˘âÎť;ˇáÇŰÚÚš››;99Í›7Ď××WMM-$$ÄÝÝ]SS3""âÔ©S˛ˇ‹t:::Ű·o···7nÜĽyóFŽą`Á„бcÇČd˛©©©˝˝ýňĺËçĎź/›ÜÜÜ<66666ÖÂÂbČ!sćĚ177?věXkoüčŃŁššš–––S§N•]l‚úĺ—_Äb±ąąąĄĄĄ®®î?üĐąkfĆţúk—żţúot´ďŇĄ44TBd˛RçFëe]Ü*Uéěě, e»ř~řˇ¶¶öäÉ“)Jłnqůw×J@ć_ĎżðÎ=ůŹĎçs8›ž¨j`km™óů˘Ű·3Ż\yź-‘ŕ†$i~ţUUj©°]ýt«čôűśżÝCYYąß},öqĘʔٳmf϶áńšââžEE=ˇŃČTjú›…­ $ýéo€Á‰ÁPY´č“E‹>Qt! jpţhä%Đ>ČK }—@ű /€öÁő± ą{÷î˝×“,ąúzIyů?ȉ¤bń?ßi¤˛o8+)acĆ0H¤ŽŢ'ŻO­˘OyňäÉ“'}úááŔرcÇŽ+ß÷+˙2~üř?˙üSŃUô' Ć55ëÖ_˙;/1 !Dârcůüüf=čtúŁGŹ,,,z®Č.l[Eß_#ęęę Š®b€SWWŻ««“oĽ K8ś’ĺË+*Şn÷)•†=}şťĹŇčťÂŔw ęi.\đđđh–Źpţ€.17×KH\°ŔĂ0„Z=ÖJ"avvF–ô_—tŤF>xđ?‡-˘PHdrËS†Í™óa/čF—tww»¸¸‹Aˇ´đDÇoŢĚŚŚ|\[ŰŘűµşň€n3j”~|| ŁŁ%‰ôŻż, ĂĚĚŘĘĘäŔŔ‹cĆü×Óó×ßTSÁ @y @w˘Ó•OśXľcÇ%%’’Ňß;š$¶xń'ááŢ99??ľ|ȵíŰŁGŤÚ:gÎáăÇ“JKk[3 # /čf†y{O÷VSŁŇhd„TŠ»¸ŚFŃhdgg«Ă‡—¤§ď:yrĄˇ!sßľ¶¶;çĚ9|äČ˝—/+];P ĽĽĽŘl6•J522 h÷K´GYYYľĹŰŰ𨨨Nđîh÷řńă3fhhhĐéô &Üľ}»svĄ†f /čS§ZÜ˝»ŃĚŚŤ˛¶ţ@__KţŐw3$äî„ »ö8p‚t]vv¶ťťÁHHHŕrąQQQąąąăÇŹŻűN466^¸pÁŃŃńôéÓ=Wę»ŇŇҦOź>kÖ¬üüü7oŢ,[¶lîÜą)‰<ü(IDAT))˝YC p@ŹDÇŽ%¤Ą˝îHĎŰ·36nŚ5j«žžż˝}Đţý7 Ę{ˇHĐď „"##Űî3uęÔuëÖÉ·HĄŇI“&­_żŢŃŃqßľ}8Ž#„‚‚‚p/))‘Ź†ŠŠ ÇOź>mmmť™™IˇPĘË˙Ţłłł ýőW&“Éb±Îź?O´gddŚ7NYYŮŔŔ <<śčIŁŃWą\®§§'“Éüŕ6mÚ$ qçńxźţů!C Ďś9#ëěŕŕ°wď^ůâwďŢÝ‘—/_N¶uëVů¤RéňĺËťťť›ššÚ]‘‘‘ďć#ä%}‹X,yôčĹÖ­—GŹţ'8_Ľ€ŕ˙h7/kkkI$Ň‹/šµGEEŤ1b˙ţý3fĚŔqü÷ßg0®®®ÄĎcĆŚ‘$ǧL™räČÇmmm:D4fgg«¨¨řřřÔÖÖ~˙ý÷zzzDűgź}¶sçΦ¦¦°°0]]]üßyéáá1{ö첲˛ÜÜÜŃŁGďŮłÇńeË–ąąą•––ćĺĺŤ;–čĚăńH$Rqqń»ď«#Ι3§ĽĽ<;;{ذa—/_&&‘JĄ_~ůĺÔ©S;˛„!/čOZ Îüü2EׯݼĚĎĎÇ0L$5kOMMĄÓét:]$­]»vË–- C,ŻYł&00P> ŐŐŐkkkq ů裏öěělŮhff¦¬VVVCCH$:uęŃ(ŤĎç“H¤‚‚˘gTTÔčŃŁ…B!™L–5^ąr…č\PP€aD"y÷}ud@Ůż|8ń“É$J•!###,,¬#ĘĆ™8q"qĂt@PPP`mmܱĺ×2ČKú:Yp>}şÎ3gţoňäż3/ŻLŃ‚>‡Á`ŘŰۇ„„ČZ‚ CBBćĚ™rqqą|ůrii©………ĂĄK—Š‹‹'L ëŹăxxxřŃŁGÓŇŇŇŇŇ233ĂĂÉW1¬ů­+++W®\yěر”””]»v5{•Íf#„^ľ|IüZXX¨§§Çb±š5ĘŠź8qâńăÇĺGŘ·oߍ7:2`QQŃxýúu"ą)JTTÔŃŁG:Äáp:şßŐÁťS@ß!‘H‰Cµ66˙•ŞÍÉ)Qt] — \ď“™™Éd2ýüü8NSSÓöíŰ)ŠŽŽNUUŽă—/_VWW˙ěłĎp?}ú´şşúĽyópçp8d2Y(Ţż_UUµľľ^6`XXžžžX,–?f+űąĽĽðÔÔÔŞŞ*///2™\SS#ßsţüůň§wďŢŤăř˘E‹ó—ůůů¶¶¶ĘĘĘDçGŹ©¨¨ěر#++«°°pßľ} ĺáÇí¸`Áww÷ŠŠŠÜÜÜáÇ_ştI~’5kÖLť:µ#KÎ_0ĐČçv"8ż˙>ćŃŁćWy€¦#y‰ăř‹/–.]Ęb±¨Tޱ±ńúőëmmm·oߎă8ŹÇŁP(ŔqüÍ›7ˇ°°0ÇëęęĚÍÍétş››ń€™ĘĘJ2™|ăĆŤóÇń;v0 “ččh '''ůW+++-Z4dȡC‡~óÍ7Äĺ¬\.wńâĹ ĂÔÔôČ‘#t:]6»äädggguuu Ť‰'Ţľ}»ŮěZ°ŞŞjѢEZZZzzzß}÷ţÎ5şşşşçÎťkwѵ—đřŕ Ăf̱yófEWÔČK,33¶™™Ë×_»ÁyůňÓ'’>ř@kúôŃś /`łŮWŻ^Uty ŔŔ×,8Ż\yzâD’ľľ–‹ 'y Ŕ Ň,8ŁŁSOśH:TÓŐu 'mĽ`0jśWŻţ+8mm‡“Hś}H]?7·,'§$7·4'§”Lf*ş˘Áň€A­Yp^»–vâD’žž¦ŁŁ…łłŐ”)d2ܬ·Ő× ňňĘ8ś·yyeNi^^Yq1!DĄ’GŽd™š˛‚Í(|˙đ/DpĆÄ<ËÍ-2DmęT 77ΞS^^—“S’“SJě;ćć–ŐÖ6"„ÔŐiCÍĚئ¦ě1c>03ckh¨“túű— Züţ%ä% eDpŢą“•žţ¦Ypr8ś &pą\E×Ř BBB|||ÚčP]Ýpď^Ö̙֪ŞÔ®Ď®˘˘ŽĂi'ÍĚئ¦,KٵAÔŐŐş^ hşşz]]ť| ä% ĎźĹĆ>‹‰I{ů˛R__kćĚ1ŞŞUŢ.\Pti]¨‰sßřły!ˇš€†Ľ ÖpyI‚Šő‚ŠĂK[@˘­ť¶N)2˝Ĺi«SP‹·/JťT­0ÓÂŚµXu¬Qphž^=Za2˝˝xâPQLH<"T o˘‰ał÷Źőä Ză ďçgóËî“'ëLľěł»ĎZŤĆö+W®Ó´‹Ëĺ(•Ť&0&&TŁ T©äˇˇr>ź;\_Ľy @._îزĄňo«co<–„»Ý™¸Ă×ׇ˝Ł#5uŽJĄP©S¦Lŕrqĺđ€Ľ€1Íéäćä.)©ˇ(Šašţł“˛Ô–-ݦ¦Îđł9Fá?Ć´ÚZYMÍŻWăó9G?Âr,Ă0xQSSSzzşBˇđńń ĘÎÎîęęzđ&&“I(˛ Ôż‚Ůłgź>÷9űčr1 íŮ&ŚJČKđŁŃ%‹«ŞŞ:;;ËËËÍfóĽyóřŕEŠ˘˛˛˛~üńG­V{úôiB^Ż‹ĹŐŐŐ„ęęę™3gŤFö°2 `P›‹-2 Šź~úé˘E‹:;;7nÜřá‡U˙ů|®Z­X˛ä?sr´{÷f ą[·ľ6TŤĂH„ĽݏvíĂ0S§NT¶Z­)))z˝ľżż_Ż×ŻYłć—_~ˇişşşZ«Ő> Mą\ŢŢ>ř$âÖ­[ׯ_Ďăńř|~ww÷ €A^€WHĄRŠ˘®\ą2¨ŢÚÚŞP(¦Oźîďďo0ôz}jjj@@@mm­ÇĽ´Z­î[·šššŘŘŘąsçVTT ńwy ^!‹ăăă Ý•‚‚‚ćććÂÂÂĄK—BRRRŽ=j±XÂĂĂĘĘĘZ[[cbbĐć±cÇ˘ŁŁV:::222víÚe0t:ť—ľ Áő>ŕ=EEEqqq Ădff*•ĘžžµZíďďđŕABV«MOOOLL¤(*!!aŐŞUÉÉÉ|>ź˘(š¦ťNçŔ¦®_ż~řđá={öś={v`ť˝z–ÇăŮl¶ĽĽ<š¦˝1$ëpô˙ţ»uŇ$˙‰Ç yă0RŕřĽeÚ´igÎś±Ůlńńń~~~ß}÷Ýš5k”JĺW_}EILLt8±±±„_|ńĆŤě`ěäÉ“CCC%‰Ífs8ěý—ß~űí?ü R©~„T*ÍÍÍŤŹŹŹŽŽ~őŐWĂÂÂ^{íIŻĘéďw56ţQYy.?˙V®Ü;gŽ.$$'9yÇŠßÉěKcEQŹš—Ź~<G©”(•’¤¤élĹé¤ŰÚşÜ ú÷ż×ýőišvÝ› ju @€sŻĂ.xńůÜA ÚŰkgŹ;Íf‹Éd)/7X,Ý„çžó »sč©R)®_·kÇG-ä%ŔČ  ##•‘‘JwĹ餛š®±Ç fłőđá46Zů|ĚśŕČK€‘ŠĎçŞŐŠŰvvöíÝ{xÝşaěÔ¨…?CFŹ ĆM™‚‡Z{ň`ŚjjjJOOW(>>>AAAŮŮŮ]]]ŢÄd2 …B÷Ë3gÎ,\¸ĐĎĎO$ĹÄÄś8qÂË]NČK€±Čh4FEE‰Ĺ⪪ŞÎÎÎňňrłŮr:ť&“)(((??_"‘Čd˛ďż˙~ăĆŤţţţ2™l˙ţý„v…‚‚™L¦P(rrrúűű !őőősćĚńőőU*•ěš„#GŽh4__ß3fś>}úľ•ˇÇŔ(RZZęń·˝»»›Ăá\ştiP˝ĽĽ<44tÇŽ .dćСCb±X«Ő˛Ë3gÎ4Ť€ažž‡ÓÚÚzßö—/_ľdÉ«Őj6›#""¶oßn4y<^NNNooďçźNQ”{900aŁŃČĺr/^lµZĎź?–——Ç0Ě+ŻĽ˛yóć[·nËd2¶ó|>˙äÉ“v»}çÎť!!!÷V<î%BHii©ÇŐîÚä‘Ö€gÜĂäecc#EQN§sP˝¶¶V$]¸pA$9ťÎ÷ß˙“O>‹Ĺýýý™™™6lpçeSSEQ4Mß۸Ýnçp8MMMěËňňňŁŃČápěv;Ă0őőő—ŮŤF#!¤±±‘ÝŞ¤¤$""‚a‹/öőő9ťÎ}űö±kÚl6@°˙ţ›7oş\.»Ý~oĹă^zŚĽÄx,Ŕ#•J)ŠşrĺĘ zkk«Bˇ>}şżżżÁ`Đëő©©©µµµŐŐŐZ­Ö˝¦D"a׸ů… Š‹‹- !$((-_˝z•Âçó!„Ăá \voÎáp‚ďĚkŻŃhŘ­jjjbccçÎť[QQÁľ5a„ĘĘĘ(Ф¤¤şşş{+C·«ţ y 0ćĹâřřřÂÂBwĄ   ąąą°°péŇĄ„”””ŁGŹZ,–đđđ„„„˛˛˛ÖÖÖ-Ěź?÷îÝ›ÍËËűé§ź !äňĺËl±ąą90đOź†6ËĺroŐŘŘŘŃŃ‘‘‘±k×.Á ÓéŘ·ěv»źźßńăÇ˙ř㏗_~yůňĺ÷VwÇ<ć+‹ŠŠŠâââ†ÉĚĚT*•===jµÚßß˙ŕÁ„­V›žžžHQTBBÂŞU«’““ů|>;ët:ů|~~~~BB‡ĂyăŤ7|}}ËĘĘJJJŞŞŞÁ˛e˲˛˛Š‹‹»»»sssßzë­‡ěUVVÖîÝ»Ż]»¶iÓ¦´´4v ”ÇăŮl¶ĽĽ<𦻻»y<ŢK/˝tęÔ©^xA( …Bš¦UĽ˛Ëiôžqsţ’uéŇĄ+VČĺrźŕŕŕµk×Ξ=;77—ažž6†iii!„3 ÓŰŰ«ŃhD"Ńőë׆ŃëőIIIăÇŹ÷óó›?ţ‰'Ř–;::Ţ|ó͉'Nš4)''çöíŰîź ĂÜw™](,,ś:uŞL&ËÎÎľ}ű6Ă0ź}ö™X, ©¨¨OLLdfďŢ˝S§N …QQQ555÷­<yôó—xžŔ¨ň$Ďó˛Űí&“iÖ¬YCŢ+ŹŘϵ۟ŇdńŹń Qwt User's Guide: Member List
QwtSymbol Member List

This is the complete list of members for QwtSymbol, including all inherited members.

brush() const QwtSymbolinline
clone() const QwtSymbolvirtual
Cross enum value (defined in QwtSymbol)QwtSymbol
Diamond enum value (defined in QwtSymbol)QwtSymbol
draw(QPainter *p, const QPoint &pt) const QwtSymbol
draw(QPainter *p, int x, int y) const QwtSymbol
draw(QPainter *p, const QRect &r) const QwtSymbolvirtual
DTriangle enum value (defined in QwtSymbol)QwtSymbol
Ellipse enum value (defined in QwtSymbol)QwtSymbol
Hexagon enum value (defined in QwtSymbol)QwtSymbol
HLine enum value (defined in QwtSymbol)QwtSymbol
LTriangle enum value (defined in QwtSymbol)QwtSymbol
NoSymbol enum value (defined in QwtSymbol)QwtSymbol
operator!=(const QwtSymbol &) const QwtSymbol
operator==(const QwtSymbol &) const QwtSymbolvirtual
pen() const QwtSymbolinline
QwtSymbol()QwtSymbol
QwtSymbol(Style st, const QBrush &bd, const QPen &pn, const QSize &s)QwtSymbol
Rect enum value (defined in QwtSymbol)QwtSymbol
RTriangle enum value (defined in QwtSymbol)QwtSymbol
setBrush(const QBrush &b)QwtSymbol
setPen(const QPen &p)QwtSymbol
setSize(const QSize &s)QwtSymbol
setSize(int a, int b=-1)QwtSymbol
setStyle(Style s)QwtSymbol
size() const QwtSymbolinline
Star1 enum value (defined in QwtSymbol)QwtSymbol
Star2 enum value (defined in QwtSymbol)QwtSymbol
style() const QwtSymbolinline
Style enum nameQwtSymbol
StyleCnt enum value (defined in QwtSymbol)QwtSymbol
Triangle enum value (defined in QwtSymbol)QwtSymbol
UTriangle enum value (defined in QwtSymbol)QwtSymbol
VLine enum value (defined in QwtSymbol)QwtSymbol
XCross enum value (defined in QwtSymbol)QwtSymbol
~QwtSymbol()QwtSymbolvirtual
qwt5-5.2.3/doc/html/class_qwt_abstract_scale_draw__inherit__graph.map0000644000175000017500000000070612052741152025441 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_7.md50000644000175000017500000000004012052741151017140 0ustar gudjongudjondca7f759c48756423fa09b93979515a5qwt5-5.2.3/doc/html/classes.html0000644000175000017500000003707112052741151016021 0ustar gudjongudjon Qwt User's Guide: Class Index
Class Index
A | C | D | E | I | K | L | M | P | R | S | T | W
  A  
QwtDynGridLayout   QwtPicker   QwtRichTextEngine   
  E  
QwtPickerClickPointMachine   QwtRoundScaleDraw   
QwtAbstractScale   QwtPickerClickRectMachine   
  S  
QwtAbstractScaleDraw   QwtEventPattern   QwtPickerDragPointMachine   
QwtAbstractSlider   
  I  
QwtPickerDragRectMachine   QwtScaleArithmetic   
QwtAlphaColorMap   QwtPickerMachine   QwtScaleDiv   
QwtAnalogClock   QwtIntervalData   QwtPickerPolygonMachine   QwtScaleDraw   
QwtArrayData   
  K  
QwtPlainTextEngine   QwtScaleEngine   
QwtArrowButton   QwtPlot   QwtScaleMap   
  C  
QwtEventPattern::KeyPattern   QwtPlotCanvas   QwtScaleTransformation   
QwtKnob   QwtPlotCurve   QwtScaleWidget   
QwtClipper   
  L  
QwtPlotDict   QwtSimpleCompassRose   
QwtColorMap   QwtPlotGrid   QwtSlider   
QwtCompass   QwtLegend   QwtPlotItem   QwtSpline   
QwtCompassMagnetNeedle   QwtLegendItem   QwtPlotLayout   QwtSplineCurveFitter   
QwtCompassRose   QwtLegendItemManager   QwtPlotMagnifier   QwtSymbol   
QwtCompassWindArrow   QwtLinearColorMap   QwtPlotMarker   
  T  
QwtCounter   QwtLinearScaleEngine   QwtPlotPanner   
QwtCPointerData   QwtLog10ScaleEngine   QwtPlotPicker   QwtText   
QwtCurveFitter   
  M  
QwtPlotPrintFilter   QwtTextEngine   
  D  
QwtPlotRasterItem   QwtTextLabel   
QwtMagnifier   QwtPlotRescaler   QwtThermo   
QwtData   QwtMathMLTextEngine   QwtPlotScaleItem   
  W  
QwtDial   QwtMetricsMap   QwtPlotSpectrogram   
QwtDialNeedle   QwtEventPattern::MousePattern   QwtPlotSvgItem   QwtWheel   
QwtDialScaleDraw   
  P  
QwtPlotZoomer   
QwtDialSimpleNeedle   QwtPolygonFData   
QwtDoubleInterval   QwtPainter   
  R  
QwtDoubleRange   QwtPanner   
QwtRasterData   
A | C | D | E | I | K | L | M | P | R | S | T | W
qwt5-5.2.3/doc/html/spectrogram1.png0000644000175000017500000013447012052741136016617 0ustar gudjongudjon‰PNG  IHDRWrWĐhË IDATxśě˝{°eUuď˙]űśîÓMC HP౑üÔäÄ ˇnĄei‰â Í寮•Gy)1‰µĽŃn%x•‹Ź\ůéĎWLĹ$řc&>ŞägY˘FLJnTŇŰnhčÓď>{˙ţXgĎ3ÖxÍ1×Zűś}ş÷¨UëŚ1ćXs˝ç猹ćZ»úô§?Ť™Ěd&3™ÉLNH©~üăŻő6Ěd&3™ÉLf˛62đŕÁlĐh4zŕ^üâĺ+_©ŞŠ•~ík_{Ík^3ŤTUuîąç~á _ČĆÎd&3™ÉLŽw‘ÄŤFŘľ}űm·Ý¶°°pŐUW˝úŐŻ ˝¬n>qď˝÷nßľý{ßűޡC‡Ô€ť;w^qĹŰ·oďef2“™Ěd&'¬XÄąńĆwíÚőĄ/}ißľ}W_}őŮgź}ĺ•Wö˛Ćóşë®;ůä“K+ąů˙ů»oÉLf2“™ĚduäÝř?˙ĺ_ţeuÖµk×®ĹĹĹ .¸ 6/ĽđÂ}čC}UŢ:tÉ%—|ä#Ů»wď›ßüćwżűÝď|ç;YĚ“žô$kńüŕÝ·a&3™ÉLf˛jňżnüźI˙żěćý_ĆÍ{G:th~~~aaŔh4Ú˛eË 6ו(řÉO~˛V¶lŮrÍ5׼îuŻ“1Ö~˛CsÓ#Oíľ=Ë"Fńô/˝¬˘´’`Ľf•ŞţÓ1łzVQÍěĽT±tKQçňP¨25uî+–W‚sËô• ž5KťŽ?RZÖ:~r•L~?xŃ‹¸ë±;$<[¶l9věŘáÇ7nÜ`˙ţý›7on]“NclFŁŃ}÷Ý÷”§,ëL™Ü¤®ÔÚŞ¦Ú|; ´ÂâžŇ:㥥aýĘŞ­´őŠf,úť–D\_,­dJŤ±°§ę–˘šÎÜR’A`vĄmQ·™ ăl &řUŐŠNă)üjŹĂB ´ť „psA†CŐT• .MUÖ{aŘ”p6:fµe†ŔŐú Fś“@ ‹lŤ@•F­ů—ŢX·Xˇ” +’&&%!¦A2ÂćJ@Îăä@g^kfĚ@ŘnEł\pUe†ŔHßž8ł5d j)U$đh‘Ďż,öäĽ;KH•šlńZI,¤äsXHSŔäIŘ@— <«4BKZ€0ROĽ†[¬ČˇŕŞ÷·uEÁă}IwôŐ@%«śx*ó(í¨’tźZŐÔyŠ˝P°ć\ łÄ•„@ąxťŇĽP’ʎQnLÚHjZą ŔÍtŘUJQcŠÚ\ ĆqY5–Lb˝Ó B‡‚{űŘ ËúˇŕqŹŔŕ"~X?ľ3ëQ±—­ß©MlX TŐ,B Oľ,eýr’XTůWĂ/Í©)«JD„–=)´@-ůSq(MµIµ@č×ôXÎlQ¶´4¬ă"ޤß9ĎgěMfŚ„uG`6&‚@I>‰4ifAČ”„jf'«óÓWTÝaںͩ5Ůă\hn—Č—pXWĹ”ş*5)¤äóO´•f{GUަŞuiŞ2á$$¶˘Ń–Pet,äTý¸úz ŕ ‘°^č0ĎYEYdv®*qţÉń/ŮäŹéť®Qőp©}ˇičpČHu‰@4á ŃMJÇËd_+”,Lü¦J„éÔ”‚ŠÂ8óf śüŠ‚ßq*ňQ™z ÎŘşćŇ‹('++˛!KUŽĆů§âĐB E>u’KUn:DMéś‚°žäŽPžĄć‰ÁO‚0xPfsAőô©‰ é;{ˇTQd»Ox–Íhşdş)8C`0̇JÄń¨E>}vŞĚcETaz|üâäËBQ!“-ř©“$˘ÂH:H«J/sAzޞ‰ 3łđ+gÄÓÎ( ë¸Č„*鼢'&3ĂJWÝöTÝRTSťËx¦SÝź…Ed?„k™¬6¶yt#ew(ĺ_R––8\Zňv™JÍ<Öń‰•儝2"Zs?Ń„qZ2açÍ(X,ˇďĹĚŘ˝µ(˛ŢI EúsjJţŃŞ$uTřIň©Tž)ÎĎħ•ö{RcЍ)`XÍ”…ęqHÂ@X+é`˛t&|ÉĂNcˇJ8„©¶‰‚PŠă,ŘHNTÎ(X,ů/¨ÍŚěó˛ß ™É0 BµÝŻD¶çL,Kł(ů™Se{Łń„±ą˛“+JĚ ó<¬•ŠĽQ#°žłc(Ź'ĺ_5_٦ÎYŁđýcL“{@čÇD¸Ř/ă9@(di5Ví$ů˛ü“ů_ŇkÚ1řŐÓJçç0@Aů\ĐĄ cÎŻl9Ű»ěÁ—Ňúˇ|@.żŮe1Np¤ů΂0Xm—ÍPČŚ‚ëJf,Úě×棔ŇN%_jĺ‹řçHŠX8´Ňľ¤ĚĎŁ°ÔD`„ŤC0ž[-#Ěą\jŽH¨[=ÚöŐěI{ đt˛ÍżśÁ2*U:Zf–REmzśy3ö'3 ®9Śtč•Ő…šţś)*˙h…ىŤŽa/3ČPň/ÍkĄ˝ˇ  Ä!ÂŚ•Ńx>Xެ*lŘĐŘyxUŤ–ÉW‹ü$›sľ ˝2& ť¤0ŽCG ęŇT=–Ě@Ř“ĚĆ®™~v©Ç*ĘOzúB ßd32…éÔŁ’’/ň ¦€,¤đ«§A5ĆžD ĂB(XÓn¸’˙-§#’sT”RËhÔhědRH%Ű5ŞvŇS&&ĹéeĄ«BĂTYC­7ÎrÁő ë}mdQ…{ŻV墊Ou,+R'uh‰óvD#ÂBfZ¤µÔJÚk™Ć ‘tpŚŔZ 0oÜŞ©™Ł8¤Š<íşFłą =§Á~QUZÄôUm‘Ä+<ŢA8ŁŕÔËńŔŇD0⌛~mVţ'›Zµń-ĺ_d’™źˇŐZO6 B“|rRY(A¸rČ Ć‹) Á6(gA¶q#ňÍnÚ/ZKęuN„#ÝűEU“*ŤN#\Ś;łEÁ€‘]™h=¶Ě(X,ˇ/¨ő%3¶Ř¬ęŽBMąRÖţ2%éÖÖRÔ1ł*Ě é@šËca$ö–PTź˛ľP†ŔĆ?ąďlŘĐ82¬/4M¬4’˛DĐę?¤ĄlA§_Tő; ´ŕWÔ Ď@Ř{=†Ě(X,ů/¨ő%kŔ+/E`0R…–_mdKTř©9‡ĘQ¶r˛ü*ó‚Y ëm pÉ ŕ’ćd]Ł0Ţ”€SpŽ€p®IĐ&«ćçy‹¦> lťÂîĄ4ttYfZPMĄXE-úFdu@ŘBÖŁcdk?%ż8xüö®-KMYŕIOoŽÓ2Ő¦VšLw&5ĆzÍ<;:†pĄ#TĺÜŇxľdCq4!4 ¦ˇ{CÂÂŃ„IaMŇ5J“żŃH™@©9dÔ:bŇ"Y:8”¦ ą8˘" Śđ5^ ( ëe©ÉŐ#dö+»S)3Ć«uLµ6‰Ŕ ü,JţY›íOę«*CYŕĐ&ß’ŤCĆBFAĆż3×#:7žóŁŚ3Bh=˘hâ0™u:HY¨ž—T§z"hiba>}ć©tŚŞĚ@Ř«ĚzD§OŽ{-RTŹ…@‡|’jŮúŐeŮęäÄ"-ŞˇUŐŕź•®ŚĄIź5©ˇOÁąń|nĽÔY0!Pk¶ă®Q9ÍÍ„…Ţ5JË7ť‹yČgťÍ˘~QUXLDqô¬d±ÚĄžuw t(8ɇI˝ÉqGÁuŔާťtŞy[‹ŐEŞ•sŐdzéäô…Vây§/´ń^ŕPKűŽĎ1ˇX \9(6ç€yĎ´,kłĆ‡ËaÍÂÔŘQŞ*ň*˝”ŢűEUi#‰pPäřˇCAŮ›1…r|Qp˝ 0étY‹Ź@–Ť9ZmĄ? „* UaYK–‹ę ssMřYÉß±ńüXÓLs6X&ÁŚ%‚ óóZ©ö‹.”eÔ9 DłTö‹˛s‘–N‡źŇA°0‹@‡RaklÝ/oúťČl%˝¬Ą÷Ą&W€§HNdf'=A:ä“TsÄJ5$ ŐÉ/ő…ú#bęą÷ţäź:ŃĽ¦+‡ ™Öđ;ĚK„”‚#˛lšĐĎĎ/˙l}d‚6dÔ/:rGĘXą`Rü¦–ĹDGĎšAŹď÷‹‚-"»/5ązÜ1˘Ú+®S'Ç gě"Y—M¦Ú¤˛x•˛ň UŞźŚ™źoľüÎúBř%s†C–B$‚5çÇ”éŁ|¬Ř8.ŤyÝ/Zł0ý6ˇ•&Zý˘ň”1J~PżĘÂŮoż¨Â2ag™ŤŽ™™!0ë´PÜ5‡“ÁŮ9SžLĹ ü$“Çşü8pdPP"đčx˘:%"}L()HnĎ7ńĄĘů JE”aă!Í kŕŐÎú8ř TĎŚ‘2”CĐúE~J…é–důŞV2a7™QpMĄ/ţµ®juX´H)UÚ©–RÄT•Ł>ŘR]c•{5Âáťô,PaBÝ‘1ůŽ4ÍŔŇ;DňO¦ŹµČîĐZ_júúáp¸DޤřhTůGŃ}4č=”Y MűŽe!MŃL˙6ŤGM ‚člÔYżhŤ˝żš7)¤,d§C=ËVÂDK-ŚYsZŹ…=µ¨wŞâG7 ěVŐŚ‚ĹŇĎWÓŽ'¶[˛‘ÚşđµKd÷Ąú«jö+»«.3č‹GęN…çäśš* ©§5ýA12T˛@k\Lť®!¬™wpĚżD?D@’}Ęx)ýÂɗ캊6fý€0HA: dŞ~eiťPđ„B UęËň8¦ŞGÉZF5L32"˛"şĹEëíĘÎbčŁAkh(“žîöŤ§‡€‡Çó‡·bé4`+°ŘD(xŘ<ŚĂâđĂxŘ SPľY(ů''FÄjĽ/„‚ „ôI!ăa:Ú”Rp3Bz*#ŹŐËĆé•‘,ĆŇł¦µ.;-9!A¤ŕT‘ŹJoÜłgĎ‹_üâŻ~ő«}U¸"3ZţިGęTą(käc`ca’|”ŮwWľLćĽ&¸d$‚éqŕţqň÷0°Ř <ě=ś śśśś4ţŽâQŕ°xŘ ěÂŇĎńŕâr.x¬‰@Éż92—żMH3Âq§hęeEGÚ[ô&αG{k‚aŕ RQ¤rŃ2ł¬š°ăRm«šŤĹ˝÷Ţ»}űöď}ď{‡ę^—-EĄ,ĆQ¨éĎ™Âtg˘ńV‘…ĂŞ9^”};”®SŽŽaŹ5ߎ8HúBk><ěy4–Îţpđhŕ—€S“ ˝Ŕ/€ű{Ó€˙ŔÁűq„Ś ńŁKőttě\j*‰‚˛Sćć°´´˛ă5 Óś.ö\PöŽŞé %,iI%ü"8tGJY5aŰŞfĎqÖYg}đüÉO~ňŇ—ľ´{m ™!ĐňG謎YśSăäś`µZĘBkYI;ŞËá UQ"¨> T¨ć‚‰‚uGčŔŕççŹÎ ü2đŕ `+°°‡çđ0°¸¸Ř śś lÂŇżcy;p®ůsKôŁŰ”1—Hw(ÍĹ[~:ČúE))i7©Ó#*/™–©¨“ËöŐ/jĹyś:g ËŚ‚“‘ů׺¶~Řnń ł1*ö˛ő;•$SΩɔTjMŮ€JKţd©™Žš‰ŕ¨ Bőc1t\ĚÁf"¸řĹăó€'O.ÎÎýđ+Ŕî•=^~ řĄ3páżâß ˙6¦ŕ0üż'sódÚ` R0ĺ‚ńśě`<d•˛ó«öRˇL‚öqmŘI!˝H&Ý/ŞJŹ ĚĘş!ô˙~f IŮ7bŽK:1Ý÷7‚« î(Ôôç–Âp(÷Âj|łŔł^XA óDpI€Pľ&ˇ'‚ŹÎ~xđŕ)ŔçdîÎÄąŔát` °aś¸ÝŤ=Íď‹nh~q›Ň1máÜx›ŐtP€Đyebä~JfÔ#“Π“uŃ 0 >%¨gÍâÔĐş˝w\Ę©MČŚ‚!±F)tś!Đ/’Î8»lkť`‹4Lťh¤ăOVwč`@’??TżšF ®<< KŹ.~ ¸¸đÓŔÍl*\ôW8é˙^ţQÝcŔa,Ý‹Ć×fÓ-/\ĘĄC ZÉi§č€|G&8Ąły@(sAt.¤Ň~QGJA¨ÖŮnŽK ™ŤŽéUN4–.•E _ĘPtZ¦śg+g8T‹Xł›ĹÓŐGD"(“Bő Ú쉕îĐSqčqŔ€'×|đ>eĎLůݏđŕ˝5kŔÚ‹˝ăĎŞ-Ś' Âcä·éi:8l‚¤Öaý˘N"Xié ˙€PYࡳ€s€ó€'˙ů>ŕMĆÉĘ›đźďĂ“€ó€s€łŕ!`°ź|ˇ›ţxaÚ<şÍň;dŞ*ţĂôX9“âçT˝$Š.'júJP—¦*Ewb»›˝4¦]pÇĄr˘ţ;6\?t썂۶m»ăŽ;úŞ­˝Č{2ľ`żÁ“F W÷u×9 “ś[J¶•¤aj+Ě–R±—śŐřyŘĘÁ‘ŕ„óšÄRsŚ(ýpÚ~`ß&8 8¸řU,ł«˝ś…_.ÎÎ6-ż^żź|Ź”ţHűćvER(÷tÔ8•HŁ(fO‡NYĄ8—‹w¤őĹě×p\‚°oÎ(8MŇúěN3#‘qÓż«Ő®a´MV©őş? …."—Ź+ű­AŢ Ş>¤ TGǬ Ťyp6đ8ŕ‰ŔéOÔI‘śţD<xp6đ(xX˙BýÁBBŠ@u§F+Ô—ÚÓ;SŮÓj]E•_‰ş¬Đ„ÎćĹýńúW„]ÔdFÁ©‘ăŇßz#­’T"Z‘TÉţďéĐ.ŘÔZ­ü@<$óžZą`ă5‰|4p6đxŕWÜĺü Ü…_ś <XXîzMżÓtÄ͇śyęä˘ř?(#'ą &{˝GĎJüv›p,ň#Ľi*•Ńhô•Ż|媫®úő_˙őK.ąäţŕţő_˙µŻí´äxˇŕzG`<>뉴-vD¶SŮ˙ÖŮťF–ĆÓÖYPMe$Łăb¬Ń1¬Gtń‘ŔŁ€zhŚ÷j`ˇl¨° řeŕQŔ#q.¨öÓ8ĚŃÁžs$%óä Šś\OĄôŇr¤ĹĹßâ+ÚŚŇŇk\kö >řŕoxĂ~˙÷˙öŰo˙§ú§‹/ľřőŻ}/éČqAÁăjQGFÖĺ˙C Ł=R+”Í%Ó­ełŔs@čw‡VU«DpIë]sPç‚çĺt™ś7ÎĎČčŮ#şÔ&tQ,ă 1rŠ™Îę,+cü‹¶Ĺ}Ú„Ąwt°4Ó.¸—‰ôHÁŤ7žzę©UUUă {ôŁÝ} }Y˙oJś8ĚĆ8¦ż K ţĎî+č;t˛™Ş™ŮčäłĆČ íŃĺ\p+†u.x6pRßÍ=éĄ8űď–sÁ­>Üřµ^µGTćtďÄî[ł×®§ä”ď½\ťű*ű݉J{S"[“Ę~qÂ7UÉ®"^ÔeŤ˝÷˛ŕXz|ţ·eË–?˙ó?żúę«T‚ĺŰ IDATUuŇI'}öłźíŻz]Ö€‚e_Sóĺ„B`śyĚTuçżÝ ü" ¤¨“B$vJęŐô1CŽ=¦ =|đHŕLŕloîVKů{ś ś <xđ0ĎŹ‘ “ŁCŮîh˙¨‡(űYQ„é,űŻĎ§łLâtpHż¨5ăĚ;áA¤ ŐňÓ/‹ ‡Ăwľóť/zŃ‹ţčŹţh˙ţýo~ó›oşé¦w˝ë]­·-"k@AşĎťx"#0ľ=–n9Ě"»fńʆ© ŽĂOľ!‰č%‚ÖÓAë'vW(xpfç—#,9 88 xpŹŇ#ęç‚C±Z:(ʎ•˛˙NŠŇA !,ŚĐÂâ_–L}™0&A F~e÷Ţ{ď˝÷Ţ{˙äOţdË–-[·n˝ćšk®˝öÚv[—uű\đxE`0ŇB—S­#Ç”sŐdşł=´a•Mm„¬gŹ%…0Ďť~Ńa3ݞ~Yâđ&,mNÎ6^§ďSGŮxÝň/ôn6aÉł$6{¨‘>MăCAZĐźü“•=ŃWŚk‰ŃiŞ—qŃŤ`-Ňĺ& VŇ˝‘éÜÇ‚=ŽÝ´ió,,,´Ű޸¬O ®¶X0rfo]żČi;‚đł/§µ=ĄK±y|˛Ȅޑ şĽ…éŕŕŕÔz ç»ÍCŢIŢŤG§§[‘Ę-”{áîuö}ÁȤž¬ě‰Nęy—uŞsµKQăłE-nŔČZ|Yç ěqtĚgśqŃE˝ç=ďY\\Ľ˙ţű?đ<ç9Ďi±IE˛)¸ŽXz·tG ő®ßF¨1EG@UÔvP1ĄeG_~Łf"ĺĽ/q8rpň„““''Ú‡ÓäWÓÔľP‡ţqkCyîüÓŤ0şd=ÁEÔKĎšAO;< Ó.¸Ű‚=RŔ{Ţóž˝{÷^~ůĺ/~ń‹Ď?˙ü׾öµ­Ş)u5F´őy-]öxE ©Óš[ЬDm%eĘtuń»;”ő‹ĘGúÂÍŔIŔ)Ŕ#”ŁŮ›<88 Ř ŘŹý˘ę4> -Č'O&ĂžB\BÁŹk'ĹšÓJ‚ăeÓŇłfĐÓÎĆ´ f Âî$¤Ç1˘UUťqĆ7ŢxcUćeýä‚'Kc"ôŃ%kł0ś!41?e­“Ń4=ţP0Űj= ”˝ŁË ÜÔ ‰]ʇvŤ9sµž¬âčL:ŢńČuÂőţ\pĘ(ŘZÖ ŰÝWÖ=ŃťÚśGŠÚH1…µqj%đ¤Gmd}.‹žĘBt‘卪„ŔŔ˘·‡]e8H@ô|o•Üru­ă€‚± pOŤĺq„Ĺř¤ş¸Ś)şŕş_[‘Ç÷űEÁ€`L—xCfś):—Ů[4Xg/ŚHFęq‚Ő†Ćâ]ÖiUi|äTě1EGlěY\Á=5„őWÔ€}ĘńęMöaů×uëĎĆŚ‡¦¦Ť»ŮVv¨ëMĐNb-ŮË@ĆSE5ý ; 0ćl ¬!KŰĂβŢ)¸®ľ#ŞĘ$NůŞ!0ű_d‹R˝źł-…Ú˘±ąjĘVĎŮ0ÚtúíŁĂ@H_ô’ĽHŹčĘşÇó :<ěđß˙mîh{ůďxاőÚÓ.´ë­kjľ2CĹ!ă ˇiÁZ—#_üy Łő[Pe°µ…)ăo@vŰ"k¬Ivt,dä·WMÖ3K˙‹9Îčü÷ĘśAú/A¨˛0™VŞ6ť*ťŞÔÄEmë—ĹÂŚ„D 0ĚƱş;t/€'CÁ±wÜ)zż:ď€0í ˘«ÇaŁX ‡hžŽôAmI&4ń&Ĺ& ”˘–:üË‚Ş|Ça˙×’“ §Š|TÖmŹč ľW"Z+UiĘhÇD6¦t->ó‚ÓŠ8ą lř56—!ŻÁ}Ŕ^`÷d~řs÷öűĆé ů† ˇ%V/¨ń˙A÷ž=•ŞČR˙ŇBŕ˛lqĺűz©©z,§ă÷‹‚Ea­ăÇ2#ş2C ŻGö7Űʨ펪Ȫ,DYŔł–*d4„ÁĹĺMlN5ç€ ŔĂŔŔ.˙-s€‹ĺżađđ0p8Ćk c»ćtŤÂÖrÁŇ/KŃĽ$ś‹$]U˛—%[Ę‘űŤ°ţź ®C ÷Śo†s÷2§Ú¬0ÓÚ0„jc'+Q›H6ď¿凂Iü\‰Ú#ZŤÓŻ” n8ěvG?¦UÖAŽ~ »€‡ý+¤ą •ZűČb;GhžJ”\×UZ\śVe ľž•×?§ř jŞśdžČ˝ŞęٶŔŮB5R’ŚéÔ#[@„ŮJňÍ´ÝÖssd‘¦Y „s”‚‹$üpîĄŔ˙§Â6r)~†•\p‘SpN<´p8; a’cU|śé;łźRc ˛lÉ#Ż´§qUŕ \{@XŞK3豜Žß/ …µŤ_/´łd*ż fÉš °]餍É*ŞiÍ}ö?ţŇĎČGKł¨uŤmleS§źł^F °XXÄᇀ_÷gߎůâ˙›u9v;î~<<´üJâÂx˝ „±ÁRÔ×ţ?(=ČÔŤxÄđ–•-äcţ,·ü9 ‹TČÖËdz@wÜĘ€p˝Spýô!Pi[U;µôWáÔ¬ÖÓ„ň±H6÷™çéŚ ~QĄBăqŕ  ÂŤŔÍďvřĺë‘ň?°¸Ż™ Žj—"p –J«2Nšgŕńꊨ0§Ą/Q«’H‘SŹ_÷XNÇß˝”†•¶˘1Yď=˘ë‚:yŮj§Nd»»Zm;śuYüŁaJÉÓid#Ő®űťŞ^+UsN)HsÁ >ěîî|pVţ(zr|îîvŹź  n ¤¤suDŚŁö"wš N«µJD‡…].TŐT×âDë\[ĆŰ˝¸ÄŞťŤť°ťłx|6lŞhÝĄţmlXűĹćÔtÚ8_ś–”yd@°^‘Q“Ö“B\Š"°bCcĆ Ü”(x?đŔÝŔ‘źeöŢ—#?ĂÝŔ÷ ›ČÎł—%­ÝxŹ(=&tąVÜ?khum@»ĚT"Ş* “fđfqô¬ôXNÇ)Ť……ăgąŕ$e†@„ďOć´”`›˘3…mL–R¬]SŰJ„ÎZřŁ/ä†MňŁ&&š®ä‚5÷{€]Ŕ˝ŔNŕGîS_F#üŘ Ü ěö{W(HsA9F†Nń=•˙Řé ܱ|ä„“1ĚŞD2R^R)ş\łµ1™°müŚ‚“)D »ołK­#w»Z­ż/NS˘6‚–DZUVD×"YY™ü9ŞĆóÄ?öPpĄŕQl¤Ľ¸ř?Ŕ±°Í; \¶áŘ˙¸¸§IÁŁŘؤŕńhPíUEmȆuäaśçÜ©§ŰµŞ¤S%~Ń2gP ęY3豜pŰg©x@QX ~FÁÉČt"°¨h č´~S nTµTăչ߆f§†hOżLaˇ ÔsA`ó^ŕŕŔĎź;w‹?ŢmŻŠĘ»±řcÜüŘ ü ř9đ ŕúólŘěć‚ě­Áť'¦…ÇŮńË9;űţął®–Ö-5JPĎšAŹĺěR ( ËĹĎ(Ř·(íZ`‘^ÂzĽ"[ÜŽ™Ő#›—mGÔ–%Űd8çKm@é*Z4ľę‚ˇQź…iŞ3§ŽŽ©)¸„M{€ź÷Ťźţř!đł?ĹŇx ~bmx–FřŮźâ‡ŔʰüDđ>ŕçŔŕA` ›4 ΑMŞDż¨%ÎAp{DłÜ?Sě\/ęń•ěEk-®®]ĆĚ@XżŢGÇLŮ×´'ÄżHäúE ş ß"Äç–"[.µM¤Ą2ĚŻĘŞÖZËŠ˝,QŤç1.&ĺ‚ „5˘ŽěĂ‘=րހ!p8< ěN N} Nđ-ŕ?g—,‰ű`7° ¸¸¸¸ř°؇pŇ‚4”ą`RŇ.dĹ>,qÂY'+˝;ńu’}w~yŁDi—·+ă•Á´Š_Ö¶ô¬ôXÎ.EÁ€†·×OÎgÉ”Q°Hzüg§ăţľŤ±Ëtj¦­«Á‚ź¬G6 Vý4ŢZÖlť/H(»ŞMňą ÍŹ›ę_=zűęçu–Ć?Ŕ[żMx*p p°p ć/€cŔáńoÖ ÜüŘ5žęDŘBAëM ůÖ`šq_™óŹ™ **Š@X¸Ľ6YDeY•ó+ińvŻŇ3]Ö©ĆôB(ęB«ÚŇŞl™Q°X:}A-ɉ€@kÁ"ú+’s«f‹X4^Bѡ9Őé4Ę€Ý#yMB!{.@¸8[ÂҨ!ś(XCîŕd`3°Q`rqS÷©îv»=ŔNÂň´ą94Ćz.(á'/¶ű˛G´đßµ4%‚ĺ×dΙMěäśH3Â8{úa ż_T2Ł`±´˙‚Z’ľč¬9}Ú©NKQMg®.E‹¨é7š¬Âxi‘CbÝŘ”"N"Č(xtü;đĂ#îÁ!IÁ““€MăÁť–ČOŐׯŢ?4fáŔŔl¶Ś—[ČQPţâ “ †ŰµÖ'‚‚M€Á༲™v.†FN—j÷M5ŐŮ zÚůŃ´˛@š ŇŃż ăĎBѵp Žű>—FX:ÖŘ<úaŇy2ţ…˛pˇ™ ú=˘rb;h‰x(X óěYszDŐŚP%˘ĹBZ§Ěůh=ţg Ä* =Î)8Ť8°}űöŰn»maa᪫®ző«_]UUE.âŻ}íkŻyÍkFŁ€ŞŞÎ=÷Ü/|á =lZ‘Čăj°ŁPÓqfŮ©˛0™ÎÄ–R[UµňlÍl- JÄDsÁ%ňqDJAöLkj§©pÉ7ŽÉ·ë•[XÄ?ç@đ‹śÜ„ŠÄz-±Ńě­Ę0)űEž©\tśľBeť‚0[ Ha0™zśSŔŤ7޸k×®/}éKűöí»úę«Ď>űěľđ…4`çÎťW\qĹöíŰűÜ®5G`‘!ź…4éŚ6˘,±hÇć*'ŰŞŇ^—˘Uăą5Ő`[ăŤ}"%‚‰‚éUBµă´"dť ¤8LÜĐL­_V˘,TĎ‹|ŞeEţwbť éLü“’ ”Ć #8,R‚z©©z'ŚC·: ´#Źó1˘Ăáđ–[nůđ‡?|úé§ź~úéŻ|ĺ+?÷ąĎ1 ŢsĎ=çśsNź5C Ą·@ ?+X6,bůŤfd’["u„ň^UÓ&Š˝Jˇ͎ő¸R¶ÉA4 Ů*Yą`%ŇÁĘŘYë°B;ňÖYśŻ4—=˘Öý%űKe.;)Ěâp˝°…?R  ‘BÖ{.ůM‰]»v-..^pÁµyá…ţä'?a1;wîüęWżz饗ţĆoüĆźýŮź-..vÚ˘ Y‹Ü˘ŞîT·!ηÁŢB_xHźCŰB^d/EĐ1rPĚĽHçTáÇŽε3Řâtř§[.k­šů“Nk]ÎÜ2JP/5ľ×VX;¤ÔÚ†¬÷_VĘ䂇šźź_XX0Ť¶lŮrŕŔsÉ%—|ä#Ů»wď›ßüćwżűÝď|ç;YLôKiÁÓ sbZE®Ń¬Ç1łzéíšLvŰűĄ*ĄR‘uŻ:-3-ż\Đ™V6Xe^ě_ÚS:8ćÉ ’‘XŞFÔ1-´‚ç4˛Ş}ˇę·Ó,FdÔŚ¬Íq:Xt"X°|.XĎ­Ńä”éőłJ‚OýŇj­3BuŻ#i˘ď—Őf—*Ť˛^hgI†‚[¶l9věŘáÇ7nÜ`˙ţý›7of1źüä'Sđ5×\óş×˝NÖc};§ÍwD#˙Ô´+U‹‚ÎéA ?‹yV=¬M¤ţ˘ĆQ®H f~§Eć’˝oŐ“^i“Ú):TŁ5Ч}Kb VÇÝĚěm0ĆŨݡr î8;tâ"qţó`Ę Bö\PĄš·QÍ0Ę?81Č9ĚS#K• ž5ăh`sp婵7d˝S0Ó#zĆglÝşő®»îŞÍţđ‡çťw^*ŤF÷ÝwßSžň”Ý»w×žąąąš—“’ŐzT°±0‡y´QŁŠŞëŇ$ŰÔ¶Ő÷°Ő­xX"O6$+Â*J8ůqí âm‡íEx¦ojĆo$U1Z_µ>źćQ ;z#;qΕ źăß)¦S%Í™™˝T…EZ1=k=EÎlQ¶4Đ”őţ+» VUőüç?˙¦›nÚ»wďOúÓO|âW\q xÔŁuŢyçÝpĂ ‹‹‹÷ß˙‡>ôˇç>÷ąŮRçΡ1-J­šÎ¬Ç1łşsZ1ŮÁ c Ó#Ť# V[«,đ۰2‘K9Tßť— ”Żý-hP´Jĺ‰ŔlŹ¨Š˝V‡Č9ŕYŕ!|şéşÔKČ N:UzĽŕ©éÄÄő¬ô8Në^đď‘ěTr—­÷ç‚ xík_{ć™g>űŮĎ~Ĺ+^ńśç<ç/x€źüä']tQUUÁŕ˝ď}ďîÝ»/»ě˛—Ľä%çźţ5×\Ó˙fFÎG»ł^äoqËŰ*’şsďőŇ"Č`‰«mr&\$[Źô=ĄŐŘ©µ:0:D\ ˙ćÝ'‚„ÖeE$‚ěJžŽ ]ě’c:żÚ^đÔ”~'&«[EŇ z,g ¤4łţ)y.XUŐćÍ›wěرcÇęß¶mŰwÜQëçž{îG?úŃIm b˙¶´+-şzZ\»Á;ˇÝ]'cZ´jkŠ’Îîm&2†U.×غьO¦9 ¬Čô_ŃT«J™‰Ěé˛ň±3eŚZ¬D5Ëéű‘;Îť¶ř}Á©ú•Ąő˙µ)A Đ/ć132§¦ĹB¶şśR«UŤÔl­ а'Y%E2#ńi €Ń9Ł& iýihh–‚•xîČX茋QÇŞűe1"¦Ý×DWŞ×@ă2[^ˇ;LFDĘřT‹ĚŮ"–™6c Ě`Ëc9ż_”- Ě~_pbâ,㔪E­ť­Mr~©ĂJĺ–« ´U¶Śjµj%Ô)ućYŮ $Goě?™Ť,Š"j4fa ?:gµQI.8· Ś‚0=ŞI!3×\VÝxu7™äݎŹřˇvN‡$-’‰ ÄXVó¨®*ut_¬ŇŐ!\ň©›Í±śę③l©łFë§çÓ’iĄŕÔ"0ëiŔR§ĹK~ę"~=°ůg‰Ĺ6§([ę,ŐőÎôűp3T–0R˛ę©SA5¬D:(3Bkh¨Ó#J÷Ë™j΢Ó!A(ÓA ­••—wŠÂf’Š1•4đJA(7‰é-LyXTJŝ٢l©ł^Ć‚Z2•ś‹üý"Đ*šĄÓ*˛ Ĺô´¬Ő,:ĄÁ–4©˙v„źZş•Ä‘@ š Ç  Z¬šéŕ ‰=gh¨ŹŔě.łĂU)žÖ§‰‚îµ·Ľ¶¶ť˘Đ°ę#0[”ś¬”úeŚďd{Qšv!Ś/Ôř`)­Ľ)ł\°o±îŠ`€Sj©~éĚzłHwś2ĆikÔąe2EŐ#¸˛ŞµVŞVâÇúřF.˛7’ęl.±''4+YjRp(rAuŇŠ*AAŮ;ŞŽ•PTwJ¦" „ÁóRJü`u;E!¸¨˛Ížĺ—1Ň ~Ő*‚Đ÷Ă`d¶Ô‹Ĺű^LöĆđśR«HőKgÖăEşT’nŨĄÖ<[\ţ©’ĺY—Iن@*ÎÝ«‚Đ™GZ Cmh¨š­ĘUČŚu“ZäS'u7U1ÁZérS0šWÍäŘ…ä4Ö,†¶ŃAtYs5ŔŻÍYu =k=–ÓńűEŮR!3  )Tö5r~iuA§ŚqŠôŠC8un™¬±Ł:ŰTµás–m1©5p‰¤L*¨®1ŤU¨.5hEÁJŁ ÂJ!Űą§Žh‰`c{Ë˙łI0.QÖ±I‹›&zD岉LT‰ä‚*ę$ŰXm˛*-tŐĽ5ĆrŞ‹GОĄM™QpµD˝U˛ĄEţSƨ<ó‹T˝…ÂÚ«é±Ú&KIş4čRW'ן•«€I’˝u-’GEŕŔîŰ8e‡ŞşęR2: d{ç"+¦Ů#Šň3ěeş·±MRöŐ)Z•€0¨Äu@/R=2 Ô V|°”ČŚ‚“˙VqJ­"Ő/ťYOÜĚę-:WťŮ0¦H’Qł”UEKYë’N I—‘…ňC…ÓHĚŐ(Ůk‚*Ů‚*ĺĐPlGâBAĘĹ&ť3»˛[±t*A®l¬`!mÜ´Ö‡. IDATU¤1Óš«a˛Î Ôe`–Ş2Ćqú~Ys°t,ł1˘˙VqJ­"Ő/ťYOÜTuß™U¶9sˤő0]6yLü0 6j†t‰Ŕ.")"A(WÄ"Hˇ°jÎdE’‚ęX+ ,ĺź*Mť”ѨqN“‰ć¨f„Ë+t[aĆř'kŽç‚ý‚‚ĘŽ^j=–ÓńűEŮŇY.8Yéq.vA`¤h čP*­Ĺ˘šSęO-TžŇĹYXi+Śy@u™ŇĄ†c ¦Äq$6O®×a!…ĄÔł»–•Ä?ÂŇóÂ@űR¤ ÜG@Ô™ĚU Ě:ÓŽ´ăbĐ#×âg‹rĄ3 NF¬»"Pä:™Ç1#EľÓR"¦3·L¦$]šqž±ĄŘz»L+b±Đé­lż3Yüá_B`ú^ĚČf3E”L-FF‡Şë’˘v„öBşT@šćt*ăý˘˛GTVŘ;鲩ÔW˛Ni:EŇ´<3Ď ¶â ®w :7ůÚ‰cđ1° ę—NYłę±L¦38ńY%búsjú ŰěŽĐęq‘eqS*N"Ęçvr<‹úçŁ0jU>ůśŤď.äŻÎ™-ބ֓tKIńÁyĐôćTu+Ţ2łą”ăôýV‘˝`Źż)1ŤŽ=úľ÷˝ď˛Ë.»č˘‹®˝öÚ|°Ľš2™> –źLQđâČzäEą¦#÷†ŻDĚěÜą™Y EuÖú0éŘĚăŰĆ Ć;E«¦î0CŹ=™łĆs2ÂÉ×ŢŐ˙Ő@')t6ží¬/ô6o—3Ő.^ß'˙’pď&vĺGćAÓR¤3®;& Ž{,§ă÷‹4é÷—•>üáď{ßűĚg>ó•Ż|eăĆŤď{ßűZUS SÖ#ęýŇÓ?ýYOÜĚęľłčV Î-Óş{e«TÚę9EťZI{ Ą‡ˇ´2&YT˙ż8lŽ—©űĺ‡C­ŽŮŞ9§•S…"ĐÚBu›ŮŠŘˇ¨ Os\ŚŐ#*=Î)cJšÓ.PvY˝ŁÖŁAZ§¬ż]§hkšLUÉ:˝Ô zŘĘg‹„ô8Ft4ýÝßýÝ_ţĺ_>ć1Ź©Şę=ďyOu›2}ą *¬QŽYNéĎzâfV·ŔCÖ|Pż4łsËdíŐŮFĆA•]$R§µ  =rłČÉ+aZSđžü«#4ű“Ię ~’…R¬#“ě\§hÇÍ"+’ŰCͤ3E5łsÇTý´H- ꥦĺ‘N5Ň ö‹šŇc.¸gĎž|đë_˙úe—]vÉ%—ĽéMoZ\\,ݦL¦ě jŞ8gÂ9g OđňőoŠs‹:sË´Zx“Ô.¸Ë”o»ł’*ˇµUc“ˇ…"pŘĚKFdÉH@ÚĘŹj”Ö r;ŐUdĹČ“§ř‰‹JťS%cddđ$Ć‹ŞÁő6łÔ­KƤ=íwŕ( V=r)Çéřý˘±´ř•]*ôkb‹‹‹ŁŃčg?űŮľđ…ŁGŹľĺ-oąţúëßńŽwÄÖĐR¦ţ jÎía©~éĚzâf‘W"¦3·LµµJ:5{źöËšQň€ ăßHsĆA16GÍĎÄ ÇE­{DS̈́ҢŔpFÄęEŁžâs4^d0Ŕph^śTazhŰ ]0ÜI—MĄA…9Ů.ąAľÖ˝Łý0Ô§ů•Ý……ozÓ›N:é$W_}ő5×\©Ľ‹LŮsA&ÎíˇYńŇźőÄÍ"=®¨¦ă¤mă¤ŠŁł¦ŤîÓöMED´d c‘$ȱĽP…"*}„… 8¬ٶUM…­Nň/›VvÍE²Ŕć6ťĐš|ţĄ¸\±Ć°ĆF‰\G¨•dAHĂZä‚UgőR3čĆT'8[”_r¦śyć™›6m:věXm.--mܸ±ŻĘ-™Ö炲ýÍYNéĎzâfV§WTÓqú펥$ťúŕ÷KĎęL:ęşg„ö¬‰Q*2¤Ó™ÔJäŠTř©[ő(É˙-Ćţ58×őĺ.EvŃŇKˇsç&JUůθ"ťA˝Ô´<Ň©F:Á~‘w‘—ÉÜÜÜsźűÜ;věÝ»÷ţűď˙űß˙Üç>·´’R™J šÇÚ. žfy"UŹeĘ{Ň×}§Ľµ˛÷ˇ÷úNUQMŐ/ŤO2TDEZg„•1—N‹ŚXŰŞ_­ÍaavËi‘/ň}eíN\‹I]]üBM¦ĄĐy魔ކŚń•¬SęV‘jf=r)ÇéřÍ"y•Ň˵LŢřĆ7‡Ăg=ëY/zŃ‹.¸ŕ‚˛G´ř” Đ÷ÄM«(~Ýű·jFîFË©*´*Ç3щ¶žVKĘǞȖ:’V.)%BFĐa“d@6&mdZ‹l˘®Č‚®Ő µ2¬Ôz(ĂX5ƉŤVôÔŞ^ll®*Ş)…=”«G”ĆWn)3łO-ÚŞřx™äĎQ“Ç=–ÓńëŇ[6UUŐ)§śrĂ 7ôUaD¦Ś‚Ö=Pä:ýŰĎ1‹ôŠjÍ-SmˇÔĆ«÷)NM#ęÉZÄŁ—Ő)š•Š@«j¬2€1ĐFĂUŕ,¬4´°EčÜ"Ü@+e‹ËÚ‚âŠáŰ+°—<µ0&(ZcdTE5ÍÍ׾Ç-—ŤŹ‘‘KEFÍ$“úŮzeLÚÓČ™Ţ!§ăW$~á­’řă.«ŞşóÎ;“9eTĹş1TÄ)cüjfußi)38·L¦S§ĺi=őŐ?V©Ś “ńÓľ‘0)ó(!*±,[pÔ4YmrŐT‘đc¦:±ýŤdâdę@žqQŮ)×ĆdÍĹdRE5q@č –Éf{EŁf¨ ŤvŞ#ě„€Pętü ™Ę'ka™z Zw…ę—Îj‹Ô[Z:-%bfçYÓŃĄŮËTł°ă3¤|w(l?b8dŠĹ ^Đ‘Ŕ†šYZë•ó ü$ů,`S±rSk;EgrŃIg#EkăźzËHÓ5˙“Ejç'3s dúJÖ)uɢ4Ő ă8?‰pK×@ţćoţ&<ÝT/qëş—ţ¬'néľÓj¨ßqŞsËT¦Kłtrz;Ő°ld ČĹĹŇ~Q¦ ‡1µ6W7«!t¦dE‘¦ł¶TZ§¨&ô"Ő2ą”ăDód­ČÔĺ‚E2}_Płš?ŐßxE¦Ź=5 |Ě,š[¦ŻKłĹTÚކ©ĂD3‰ źJ§LéF®éa%žfÄJ›«ô‰čl;Uě•üëŔNY-l€hHëy_ť˘q‰÷ZËféHMÄ@ČśČAQĄE¤)— z,§.;em…Rf8~ó›ßĽöÚkŻżţz5xĘ®^©˝Ž8}Oܤő3]Ć«La¬˘~içѢřRž©H“‰ äźú^ßěv‰]-­“B•4¬hő§řvF¤ŰÍ^ęé¶.‰ŕE™`_۬(»TŃÜ1U?S¤Ó PcZ–'čT¤·oÇLBÁÓźţôm۶YŻ!NësÁ$ę98ł'Ţ1‹ôJÄtćľSUÔ¶@z˛“ŐBµH}F&É>/”â°–]<#á—i[D­ĽŇôÄłŠ,2B>µHíż f˝Úö;§(x.XĎiHo®vý˘|ó'ö€°4tVťb¨ŇBŹiŤj@©łá–®± ‡Ăť;wŢsĎ=P¦›‚•vpĄł…‡šÁ"Ć*Ë™UT3Rq2¶Yş4#VŃýVŹhę ĄSfđK @Zâ€ĆĐŞ$ ăřˇµ1Ą2ź|ęF·$•ĆëXé ĄBűE%ĺsAŮĘČׄVg¦Öîˇčf\ÁÄŞ@&Ćq®ČTä|Täł¶ŞŞ.ĽđB5xZ)h]Íç›Ez KAť;đ“ŠĘ<éé2¦´GtEâśS%¸`¶Ýd‰ŕH(42[[%t6g éLE»ů0µţČUŇëv ä›ďľ8ˇ†ÁŔˇşHżŹ ˇe‡Ô©ę4^-ĘШzÔŞH™ćś.ٶmŰŰßţvµh*)¨^|Aç*#°…Ň„öKA ŇŁ>řqzDeU&ůśD°4;,’tŚĆ&a)+CˇńôŘÄ”öOIrkđC GÔJÓíĐ;UÉö‹Ć{DýĄÔRR0UZ襦ĺI[%ý\Bą ÍĎ"ż5ŘEnżývjÎÍÍmŢĽyh\KÓGÁv´‹x,¶9E’dŞ3H>f:ÎÖđ“ŠĹ<é‰đO’ĚB`<ôúB'Aµ¸$Ô1Ó'_QFXŮóŞż&˙nÓĂŢüo€ö‹˛îP¸é  BJ; ÂѨFşLűz@Ř"\ÍŢQ 9{’Žş„.ÎI“ŹŠ|;ţłźýě[ßúVúůĐ$SFÁľ7‹ô"vakF(ˇőJݍs¦0ň­lOşßTř­BÚ—Äâĺ1Ň:“"çX-:°ŇbĆ{ĘČWKÂ^­S% ÂD;™FXm˛ëÍŹ˝G¨.ŐĄDÄt÷Žr™şç‚űŘÇ>řÁ:tůë|ôóź˙ü¶mŰ’sĘ(Ȥ'ŤŔŠO»Č<ż¤řDôAZ„@©ć‚ËôágIż=ĄxŁźř‡0­U𮂰Ň‘¦*E˙XÚ‰`í©š™_%<Ů\Đy4¨bŻvŞ8´ëHţç/Ňú1aÚ*iҵ¬ßŢQa­ŤÜ|ó͇O1ł´‹x,¶9E’dŞłůŮ~ĚĚ’Ź™ESp\LÇ\S*¶AN.¦‚\» 'A¨*ŞI%˛vgAu-Z"¸luÎý12V pH'U,:6v=–Ć{G»ç‚ë¬wtęrÁĄĄĄç=ďy×]w]5>·ŢzëŽ;ľńŤoزe žĘ/¨ˇ3đ|Ó*ęÎÂ8ůT§E;ćô•yŇÓ…](;BůăŔ˘t°]¶‡Â¤ĐG ŚQ×"Éäç‚jŚ/Łp”ĘŽŃÁd¦„Źâńĺ ¤đ›ĐŁA'˝ł0FKřÉ0ÇD9˙(&¶š,8îhε”O}ęSĂáđsźűÜ]wÝuěر'<á żő[żő×ý×Óň5íĚÔ°ŠĚę ۱ĹÜBcKA(űE{y"H8 #bjé+ B±4•¬Ä"„¬Z«u¨„î02(ĺfű4ĆN“)á‡rÖśsž¶`ˇŮjŰbˇ1Ň/*#ŰőŽúü“óá7‰ŢQ.S— ÎĎĎ˙ŢďýŢž={jóÖ[oýřÇ?ţ±Ź}L ž˛­Oí5sú1>óJ±çăÍG Ę*jFć˝d©Ż2ĚrĘçą]/d+ZnRłüsŔ‡˘Zd‰•„©ąZŐôTMŹĺŻěÚ"[BĄĹŽOÇeĘók)ęÜRÔ«1x1ÇďŘ7—,jwS[¦TR€#ťľn©¦ ËÔ}Aí†nxŕ^ö˛—˝đ…/¬Şęw~çwzčˇ÷Ľç=jđ”QIä”8‘KÁşŕü«*ţ%żsÔ°~'ú4NťÔ`jJE¶n2áł–Ri-g°H:#Rs¦dÉ'#UŞ8´$ľ§E-{. FN}ü‚‘—b‹‹ą— ýÝÔ–™U‚Nć—ET*q™ÉÓŚ°§µ‘oűŰ˙ĺżü—·ľő­_|1€ë®»î·ű·żýío«ÁëytLÜ,Ň»(ęÝbîÜ0jŚĽëTOp’ÍŤŻ”¦y˘iƉhĄ5ŇŮ‹TăŞ*Rg5^‹µjöŐ^¤íaËÉŠFÂéx*®šĂdvŹ(Ć=x©#Tíôú€°*ě ťDď¨t¦ ŁĄ–B÷˘ęĐ;*è íXyGo격Á`°qăFęYZZŞŚó5­\Mvda/ š>ůYBżű–Ş˝XüŞć?ňQőȵ#ßČĐR‰Ą'B5Ó‚…Ł&Ă$ęŠ%řQť‚05šŚ|ŮGlŚŚĘ‘ńĘ„%ńf]âÍ^dĽ¨…@ć¤[TŇQu€7ąÇ„ăó଑<ő©OýÇüÇŰn»­6˙â/ţâ«_ýę3žń 5xęhH+b^{*ŇŠČçs+9łEAžµ›śŢˇ`_¨Ő)*kP»¶:!MłuŽČ<ÔĚJT•]ŻŮ©3^łż§NÝÂăęÁËŔşlś«.Ű/Zt ´¸OQŘXfV :Ąn©¦°,S÷\đőŻýćÍ›żűÝďŤFźúÔ§N>ůä7Ľá jpąŕţýű·oß~Űm·-,,\uŐUŻ~ő«¶;/qö$Yf‘ŢEQ/ܢąeúŠzJO|˛:B+#ó«) T XÚ.űjJ]*Ş©Š•ů‹¨ş%2É« Eę¦ăéR=µ)u`Š•˛nR:^”éj"8čő=BGXvč÷‘ĆSĂ´a´ÔRč^TZÂÇ"%F-˘&"ÇjęrÁÇ?ţńźůĚgţýß˙}Æ —_~ůůçź˙’—Ľä1ŹyŚÜoĽńĆ]»v}éK_Ú·oßŐW_}öŮg_yĺ•Ý«&‰ŔŽ,ěÂRZN {Ş3B>~˙˛đ«ŞnĚňĎ €fú TM)đ$×Ű1Ď*ęÎÂ8‹ćü’âčEĚ‹ă°˙| r¤%ĄA@BT ›‘T:¤+˘2˛—™GF=ŚsŢŠPç›–+<ŤCuž)#ÓA5 ´&&e-ţXŠŇAkq‡‹Ô¤[ä_Š€^”52uąŕÓźţtŐŻ~Ń»+wíÚµ¸¸xÁÔć…^řˇ}¨cťĘeD`‘ŢB鄾ł[°(ěBA-tß„[ lFB‹)‡y<ę‚í„r®ŘsX¨rb|3+ăřú@!ëąĹŽé`cK»uŤ˘C:D 5-…îĘ< (1ňhHS—©Ë‹¤+:4??źĆ¤nٲEýUűĐWÓjq€ç›qě©Î ů?‚Ăł‚ö,ż…=éě% ¤ć )ś 9ă„» Ý‚"5g;éëßdF;Ő)YČ ČtăÉȬž|•’VŐ2´"!šPd8T‰…bU­DJ)‚˘¶„‘nˇŻ@Đ1®§eĄ©ËÔĺ‚4ç‡ßüć7Ż˝öÚ믿^ îJÁ-[¶;věČ‘# öďßżyóf›¨p:®#ĄA‹yü’RÂČäd2,zČLc­őŇE0Ö}Ĺ"ź HćoÝnRŞIÉęqčCŃŃ™”¦€Ć˛P ż %ad„Ů>Re“[uŤ&qŔć/⧆iK‚DĚŇ ^|(Še·–ŐůĹÁÁ`đô§?}۶m7ÜpĂ3źůLĐ•‚gśqĆÖ­[ďşë®§<ĺ)~řĂžwŢyë\– ó¨Ů‚…YĹ!źęô±ÇśYřQÝ"źęĚbOžJDź‚ŽYś˙Qg_ÔĚ* ŠĂ.śCŰ–U:d´s” îH9 SbWÄBiŞ8l—.v!bQ:M ©™¶„ú™B·Ö˘ŁŚdţ˛#şĽWóWv© ‡Ăť;wŢsĎ=j?%şSp0<˙ůϿ馛n¸á†‡~řźřÄţáv¬č–öYzGň1łĹÜBcś‚AćĹqśSE‡ÂÎI#Dń›6u¶”UŚQ Š:Fµ¤ŚŚeˇĹ‰ŘQ§&bĚÍ-“Ieˇś[P‰Ç„í2B5/,b ě%żźZńŠĄ;đ‹‚pęž ĘĽłŞŞ /ĽP îáM‰×ľöµďxÇ;žýěgoذáĺ/ů ^đ‚NŐ9ücf{ŞÓGó·aĐŚëĄ8ěň °uGhđTç$ČGy&MgžD˝˙ăÎä— ˘ 9椨sć0LUY}©€ŃňuBYXşF-JłcRüR—â/’:´rÁÓ‘ĚBQęiŮdŠgîňÔȶmŰŢţö·«E=PpóćÍ;věرcG÷Şş"°{ŽŇ„E,,"źôM«.ogK˝±…śKSA+rDeab…%3}bĽŠ,{!˘Jq72]3•‘Vą¤0)J ‹ňÂĺíüZˇ@ťió¨ßRR0ʡ(M.S— Ţ~űíÔś››cż¬KeZż#ŠÂ´ĎŇ;’Ź™Eóü’"9ÇĚ"Nî) $߀˝Ř…‚Ý‘i)Ş™ť[¦ÔĄ™ÉBJ;@!3#8,‚\Qpś|öÚŞľ“Bźń¤˙20ĐDšź2ĘH•‹Ô¤ŰQČč™}źş\đ”SNŤFÇŽ۰a€‡ĂŞŞÔjOĂ—Ą öŠČç3Ż{ĄÄ˛ČDé"ťŮ)<7ÇjŞsiV3f(XH§ˇˇg[OĐL¸Á,&™T‘z)­eUݧ¸ż#Öˇh7ťµŘĹPAż¨ś‹0{ővż/¬[/xóŞěV"2—N«4«Hg ˝!S÷Ńű·»âŠ+Ţ÷ľ÷9räw÷wźö´§]qĹ?úŃŹÔŕéËŮ.E`¶Ô!˘4­+/~±úŠĽ7gj6˙«Dž'•˝ Ľ‘•JÖYě”Z1ŞéĚ Ó}'ÖšŚ“éŞBWˇ¦€Ň f~#±µĚ©dkhJiďhe§IéĺaaµşŻ:E-zG#ˇU G”éŠL].ř®w˝ë§?ýé9çśóĺ/ů{ßű€ť;wîرCýąů)Ł`),,"3ó.đŁzyqJŕ1Şµß ň.`ÜŮn)¦ř~c•"§0Ýň8’‚+ád,ô ý­bĐUK-§Şgťd“ëáŁő5™z>8”\LękížZŔ°Äé#ĄEÖóÂxď(őĂćźZZ¶_S×§řýď˙ňË/ůË_ţš×Ľ¦ŞŞż˙űżżţúëkJ™2 RYĆAč;‹(č`Ďň«ŔSý˝çúŠĎ2iŐŕ—Ĺapn™Taş4ý"•"¬(ÎÂHćçJµHLKŤ•yąľľJă ĸĹOđ¸âä…~jXM ) ć|Y2ňuLX ©ËěÝ»÷ţűď˙Ć7ľńÄ'>ńqŹ{ÜáÇŮďî&™J fůGő"ĆAX4·ĐčPP%śôD¦ŕăŠ^ňżŞę^ý2Ż;-“*Žny¤8\d8ڰš9!¸Ę;‹–j®v¦Ć˝ŻĽP…b-~jČ$q‘yĽŁ8•ŻÖÁŽ“éŠL].řkżökßúÖ·žő¬gxÖłžµ}űöď˙űę‡c°&Ě|S´eií@4}=‹=Zę?~÷É×~+ü«Ű‹U`^ţ9N6·LUaş4‘+urÁTJq(őŢY(™Q‚ÎvKˇŞ07×ŕ_‡~^Čt+/”ŮaÂ^$)ô‰č/’ĆSCş:Ťʼn ¦‚o{ŰŰŢüć7ßyçťżú«żú˛—˝ě¦›nşřâ‹ßô¦7©Ák@Aúď;˘-$3ă ŚĂ/)>#,ô™'_křµŘ#ł rN6Ďš˛HúŹ*jźÂ&źôDXHń#ťq%âl öonŽó݇Rq(ÉÇ©J%’¸0Şf)Uŕ©h”ETqtqÚěű$屏}ě§?ýédľímos‚§˛G9ě©Î"ň1łh_RTČIOééŤwzŹUţAsôÎżů"T¦K3ë—"á—üY°µÎü’ŚĆ•TÂY¤dť}pqPă˸‡”Ŕ ®, ú©ˇ5QiE‡Ů.R3m^VŔ$Ó2uą`‘L%§]ŕGő,Ěľá§}YěIř-oa)±şč‘UXÁ-ć–IG·äŽÂjËÖ­[™çłźýě[ßúÖ;ďĽóä“OfESFÁI 0Â8 }ň1łhĘć­ţIř-mÁż8»Ż…l4ăşĺ‰9‹X͇,˘ž¬î3ó@ćĚa vt„mąXł°Ş pć‘QÍ 1Éźđ•ůóSł‘ÔĐW™şç‚űŘÇ>řÁ:tůë^ŮĎţó۶mKÎ)Ł`’~h±0NÁ"¶{ţW4ćĄ+˙şV‘c)Ş™ť[&U,§4UO¤Č—. D ,Ćb3ť9 :ŠED‰7«¨Ó 5 k°I.:}¤ŚU8/,}^ŘB|R§ŹŔ‰€Đş†×Lnľůćǧ’‚ÉÇ̢yP‘cféäŹ˙Ś 0ż®üë ę-E5ŐyĐŚë–'RĘłlóPćAčY¦EśąeZTť]ČÇ€f!C`Ň;ľk(‰’q¤LL®ŘâŕÍ î·ŹT‘©Ë—––ž÷Ľç]wÝuéo˝őÖ;v|ăßŔ~qwĘľ Fńj"0ÂBź‚Ą ŚŹ|é ~ö | †µó §gŐdó ×-Źďo-©BŮĘř,ĚęŚvľ)çELŠŁKSőŚr‡‹Ŕ Â`^A`)ły!ŐăIa-AĘŢŃý˘Á\0BmO özUäŻţęŻN>ůäG<âFŁŃ‘#G6mÚtŃEÉç…ş/¨%YFŕ—”,U(Şc^|¶čüd´“f1˙TOÜéT®ę–˘šęÜ2U…éY3ëďQ,JżdبÎh—ŐěÎÂî´ś#c±° U2ţY ¬D:”aŕ' )«Šű;J¦íé„Ó’ ľęUŻşüňËŻşęŞ'<á †Ăá?˙ó?á _řŇ—ľôđĂ[K­ĎQ‡yŞÓ‡sĆÉÇĚČÔËŕŔ ›Ú@Ëq®UÓ™[&Î"Ź”îhT˙•1 ‡ŁfŚ@ZI)fáäŘŤ”…١4Eݤ’TR‘#&cXya ʰ´ >µMĎlöjÉ·żýíC‡]yĺ•?˙ůĎoąĺ–[nąĺž{îŤFűŘÇ^~ůĺęRÓGÁ ůż5Š=ŐiaO%_~qň-Çc´+]¶‰ś×4}]šŞ'RÔEÔj+;Fĺő¨äŁşCAfJř1g„…qţ9~§h¤E Vd)#b˘`Q^Xő4|¦ĘŤš±űÉ‹pržÖk9i%ÉŻË´ä‚_|ńí·ßţ›żů›PUŐ“źüäË/żüňË/ß¶m[eĂ)Łŕäč;-ňQ= <ę~’|ĚSUÝř׌śŽťąŻ8ş4łţvaY‘÷§FYT٦CA©ç}Z$SťE1Čł°jľhźn=‹‘Ľŕ¤Ć~ą°¨kÔJ“Ď á‚•R?—ˇWKŢő®w}ôŁýâżXSđ¬łÎşôŇKźúÔ§>îqŹ LTOki@«(BD‡|ToAÁŕ“żä“ lđo#™SÔ.^ €aB8ˇ™ŮąŻ0]šŞ'RÔŻdWdńădH«ćä@hA±5ů˛Áx(,T3ÂĹĘČ ŕŃy‡Ůt°ťHR‡Ş3 BE¦%<ýôÓßřĆ7ľá ořÖ·ľőĹ/~ń¶Űn»ůć›oľůćSO=őĎxĆe—]öĽç=O.5}”ĚSýÝč+óT§CľĘÍ;ö|&ýĘpčjÝ Ű„ˇ¨&›¦KÓqLTţŃßY¤ů'• [ ®55kă0±pii~ŠÁžŇżD>™±YEšÓAęŕM:ÓŠ|Z›DĘ2»łŠRUŐÜÜÜĄ—^z饗ľĺ-oůÚ׾ö˙đ_˙ú×ëÇ„ë‚>çÔ"+¦”|To1eá§2OE CÁ•!0Eü›(ůśh:S śŇŹśÂti:NUÖ „UxŐ˝ł°NŠ>#ŔËôKÂÂůy~’‚ĺIam¶î Ť÷‘;H­ĽZ\\‘žsÁŃhôÝď~÷UŻzŐ·ľő-ëa^Džýěg?ëYĎZ\\üň—żüĹ/~Q ›2 Ö2 lMÁÖĎ˙ü'ĚY˙ŰŕV ~]H MgJv.Í Ž€ż{pďRÔ XÁ*˙TÝaa 2sͧZF@ŐDZ§†énetTűH+-)V`ćŕ°µ¨©a„˛… T¤=¨TY\\Ľîşë†=ő!WUuĘ)§\yĺ•W^yĄ0}ś–R0ř°Kç'‡"ú&Ö°ď }řYük?*É­ ÉÖxq ¶;2¬2ĚR:,ôqŘă4č‡dięUD B`EQźĘRÖ;ÚĄˇ_+*Ňs.řÎwľóiO{Ú­·ŢÚoµ–Lăd‹´@`/´ŕÇP瓯+Ź'Ç<‡X"ĚB¦H†I¦K3XtÜĂH‹‚TWůGMI±ř§:‹đ–JG=s±j>,´&JÇČ Ĺ~qȤ5—Or :×[é¶Źn˝őÖÝ»w_wÝuÇ3˝/¨ŐbqŽť­čS02¦”S˙'Ř ů::# ÓRŇÜ2©ÂtË3“ZdŐ„°ů—”8öŘ4´‘6pá7Ňśĺ,ś'oŮ«Dd EÂ/™óO>),¡5d&B'©H(´Z~ú5±{ď˝÷ýď˙Ç?ţńúU‡Ő‘éű‚šĎ9«rKu–"Pú%ů?Ű ZĘ? żĺ.PuLN2`ŘÁ,%"lSśąŞ0Ýw®‰Đëv:·Juú,Tç‹@HŃ54ś± ż‘¶¸µŇ$ăĄRiUé8LĚkÇBŮMZË đĺŠ. TťŮĽP‘Ţ~e÷şë®{Ýë^÷čG?úî»ďŽÔŮ‹¬“QéTŮ##S<˙+‚źäß@ýZKĎJőM „ˇ¨s_홄¨ü¬ŐYLJ)™éóo(<•H %üF6 ëć{Řt¦Ý˙l!EťĘB€› ţ“B5/L2CIUi BhśËâP‘Ţî‹ď|ç;ßůÎwţřŹ˙¸6źüä'ŻÂ/ÔOkńŮfÍW’ůTţYđ“ü››‹ÁĆ瓪űÎě"qŞ,„ˇ¤ą4?“˘űv5á'Ą‡wżru ‡©ˇ4) “®ö‚R2Ş,ĺ3Ĺz)…źÚMŞâ°2ž&Ä™vŰ™>éR\zS3o4Ý}÷Ý/}éKżýío÷Uł#ÓGAv”dÁ–’ôÖtř§b/?‰@eLpŐĚĎźŤy˘ E „Ö6€fRHÓAG(9˛Iaw‚4‰Nďhv8(“Ęéťô1Y™> ˛Łl%Ňi)IoťJŕeSŔ`ţG“?/´`ă'|ŮąovÁˇ3ˇU:3Ďi÷[Ô_*EÜĘţOĐť‹ţî—‚ĐźZŔŹÎĄ™…bBŕ,KA±…µŚSCšFRC 3Ężd:O {yLq;ŮeĽŚ'Óň5ív2}¬Ĺ‚źB¦S@ąŢîĚRÁ/)^Rĺt{J2ůĚ‹(ľ_®=ÎBđs@(MĺŠ 83鬮)ĹžóCä–X t¤ ěµ@č0ĎQ†ul®&…ęƧŢWĹĺnŃÚř’pB±Ç怢Xő,ź ±^+)´zG㏠™Üí°2eŚŔϡ•R]Â/ž2Źź˙I ĘÁźŤ^Pi—ö90ë˘;+őÉŤBčĚéÜrAΩzś‘Î6Ä› ?>-°Y1qFʢě?A&ÓyÉöâúp¬Ś 2Žš8‘ Ł_ â B5N ĄµQíëÓâ*Yĺ©ZŐĎř(ą bÔ1?ËWSB\…TÂĎ)šPč@~ÔIű‚đs&MÇźea»®Q˘é§üß3ąĄŮ5FüTş#PňŻEivŤI¬Ý§ÇMâЙԎĐ8˙,Źę§P¤”Lüc{ÄvŠ4úUŐH LSCy–úEýĽ0ŐĽrŠ,8TYč$…fÎgIüźżi”éű‚Z6ůcaŮ\°(ółA'# "Pĺßň@•VÇŁ¤8đ¬ÉŹ·X+7Rîl¦9U"RJ>‡y%b¶?Qs¨–UşŃőŘJR“ĺ‚ŮĚĎ‚\¤”MŁ& )Ů^`Ľ˘!áßě„°˙;wD‚Vbő‹Fj–8Śż>‘\Ł1˘«,Sö5ëě–¦€ŚĄđ‹¤L‰ PÎŰ'VÚWDľĄBF:9bQ:ÁBŞ0}ĺ"°MźvN{m™Şâč–Ç—^2?ő0:NËT7){"äa” ”“óüŻotš °0]˘Ô¤y!%˘D;Č–ŁF™Ą&_B Ő/Ęţ›ŹKѤ”%…ł\°w‰¤€Ô„–R]&…´Â"řő•Ň˙§]řבyKviVRh±š·ńu`Ç[dn™Ş"7¬]Cŕěxňůsß)· îˇ'ËB‡AřÍŮć0¬‘ńDa Íej8XÎꤴK -ŞJV±ç! ŇŞfĎWU$UňYĚŁőHňIÂYţJëµR@Vę pĺ×q­ÎC«›ń˙oďýí*ĎűŢďÚçHGŇ„°‚3" -râ:¦v&Ü8u )÷"챩ťLo™[_OÂŇÎt®É$w\—ąŚ©LlŮîŘ­ÁIď8˙ÁŔťŇÚµM3§MHŕ^H3˛e@ý8çhź{ŻűÇÚë=ĎzźďłÖŢçhëh}gÍšç}Ţ÷ěł~íőŮß÷]?jŮ>i˝jĐSň6#“,4!RFP>,Xěˇ]*;).‰VLŞ=ü3X‹ŽâBrńí¦!P¤`’R,=–ď+ŕä‡e§#ĹÂŔż€> H–Ä^“pĆ|@Ő†Ď)ćÚ0adő˘|Ôžv“j,4Lˇj [/¸ Ň@¨™B‡Ćýˇm©ää3şCĚL ŘůDěEsŁĘCĜšś‹Áb(ĽIş:#đĹąV䱝„~Ăç,:‰(ţ@Iî „"E äç=‰ýę‡ä ü<,!b0…účĐ"Ýxą‡—4/UűEŁłśx#Ľ-cڦPUëG(ĂŇZ ÁOüGΉ[=~!uĘ.ĐF ŰůŮĚłŁV#˘ć EF, sTv’$‹Nľbś Śąđ%ĹW–o‡đł-†´S´˝ăŮM"˙"úý§ÄdĂŔÂÂśńOdaXßNuí_éUSµktđ©ąÜ€âÚÁ¨S4:ËńŹ÷O&Ôr (ˇq˘G´ő‚+-ŃŠŞ–Ž' §(6Ó¸(^2šô"а€=VŻ'OśúJŃCľjö‰úą)Ú‰gaŁ˙@ńń…ˇAk`Ű„=ü‹b^´˙/ Ý&â.ĐŚ  żvĽ8ˇ×ö «&Şó€ĂŔ?­›T\A¤@X}4Lč<äŁÓaţ€ZK˙ĹňJHí=—É$äň‚ôZČUx_’_ ćy>77·oßľď|ç;SSS˙řÇ?ýéOgY–‘mýěłĎŢsĎ=yžȲěšk®yę©§š/ŃHŚ`Č$'ÚŇţ+cü/yĄĚŕrş‹ççáť–Ü-Ť^SĂö•ł­uHs'ó´Il)~rs1bMüPÝ>ÍČg$Ĺ zQ\MâöäüăÔú9=ÓdŞAżŠŔ\šG äű+śč‹/2Ľ ç2ą)¤Ż°×Ťqh‹±äúďcE>Ş´Üż˙±cÇžyć™3gÎÜ}÷ÝW^yĺ‡?üaÚŕСC{öěŮ·oߊ-dŠ´ǡń™ \ f EV\ =ËřXË˙Ůđ[’b-Ö0b!!?ɢ@±\zu¤u'HqDs1‹AąR´X ~u§~ęĹĄŠÖ…ď»hŇhôyŠś›¬f&%–ˇŤéa9AV™náh;D^Ç ÂťÎ2…“ü¬2Ś#4ÔŔ¦µ¦ÇűýţÓO?ýŐŻ~uëÖ­[·n˝ë®»ž|ňÉ‚ŻľúęUW]5úE‹v6gŰF0ú[í€Ó] j€°rkOŻÎ˘–˙_ HsD±¦\ŠkńOă–¸ÁyŢ.ŠS´š’´(Â/oR),ś,GĂöS8ĚuÚ2@XݡŠő@Ĺ ăÄԢ¤QĆĆçřÍI%í ­ővŤzŽůńU‚‚ÇŽ›™™ąţúë‹â 7ÜpŕŔ¨ÍˇC‡^zéĄo|ăyžčCúěg?»yó憋‘Ź&Ĺ"7‚ţ$ňŻŮń/baŤăµüźÍż%}N'žá“H ŁUnöG5á¤áM xŢĎH~*Ź– Ő9 ˘Ë@^4@›Ř÷`Ľ;1lm8Đŕź:c mz„}‚ŔIölżđ=ĹŐ)7Q‡íŻęźGřGí 7‚ü÷şřťłđY·*˙PE`&ő…F(lŠóX v»ÝÉÉÉ©©)yžOOOĎÍÍń67ÝtÓ׾öµ“'OŢ˙ý?üđ>µI<5M“Ć? „@|ôyŹôóŻŁÜSŞä3 ?Őµ€Nţi´[LĹ‹).rĘŽ°#цJ;»÷ę:¬hĚ5@Fh„´Č"#F1§ 8· $VŮHKε˛[ŠŻ*_¦r'j.Đ€źÖ±€Ç=Â~ÉÂIiEF;")ĘBĹf„aX,DőUËjÓ8—™ă‚Şě~Ü%P° V–e/ĽđÂôôôŇŇŇüüüúőëĚÎÎnܸ1j˙ÄOÁôôôŢ˝{ď»ď>ţ™Ú¸¨JÇ$˙<.P#" ^Ć‘çô‚ëMü~§§!1ďD ŘŰ)Nä}ĹÁź@ŤŘ„AžQHť:«g輏ĽŹ>·ĂEÇěHh‘Ééh ň539 ~ĆćW‰`ĺ8C>QĄS§şď:Ę–2~ĐT˙SŢC݇ű™–ĄČ·®:E’é1ŇľĐIiëŐR&˙T“í`ľü'#Ú§—Đ Đí ďŐ\Ţ7le5GX›…kÎ Rbm۶mË–-ŻĽňĘîÝ»ĽüňË»ví µyž=zôÖ[oýŢ÷ľ·mŰ6/›KvÜŽ– yŤ©ÜŇ?ŃŕÇ­aŔˇżčŰh{AŢj÷|&±ĹĹ´Ŕ2â4ř¨Iäëő垮‰­Ă@hÁľ˛-Äźe\9ĂŇ6“DÔNő†)ätzAh´Ź›|1ö´‹Oxľ#í>‡|mŤßqá-Ł|K‹XZ€%dŚyöŽľâ_WÎ×±n‰h‚Ĺš’żr:du bůFřÂčÔaŕ0a4G•[Ý`ž#3áöl­9 ReYvűí·?öŘcŹ<ňČéÓ§üńO}ęS´ÁŽ;víÚőČ#ŹüîďţîĚĚĚn»í¶Q.`ŇňöEG(>:wşŔČFIá›fźÝřŤ›źdççĂ^„˝…rÎĘ|úS@1­/çś…“UGť@AÎ%Ü:äŇ ÷ĄŐ¶ăĐCż‡>7ΦMtâMA8 í®ÎĺŔľo@»ě’ÇŃ…›ŠŃ–ŇvhźµôĐ\$‡Ú0, źÇâ<çEtç˘y«,\_í]Ç~ pÚŠöfV:?îůĚČ€„:ż´AÉ Š.PcdfvЦéďGĄď”¸÷Ţ{xŕ[nąeÝşuźřÄ'î¸ăĽóÎ;ź{îą,Ë}ôŃxŕć›ožžžŢłgĎŢ˝{Głh†±łAňš;LzAŽŔč35ŇKF]żë9đ’v(‰@~ {|šŹŠSČ7 dš"SÄÂâ—|ä#¶iřył_e_aqäS4ČUFö{ekřG} /w“úYęĘńc/gqsţuĘWŃ̉WXל—`N°ťČÓpO4Ú‰ô ¤G[şËS˙,滟GV=ÄÖłâbĐťÜgß©ZüŁ»Źďâ~µíĺ;Ë,ěGp;MŹw€)bŮQD Ý,ÖZ÷‚7n|衇zč!šżöÚkź{îą"ľćškľţőŻŹrˇ"t‰.ĐhorĽ%˙C U#ý'ţŇ÷8BŢů©ÁOcŢ|5ć'±´ ŘĐy""†“Sń›ś°ŁS0˛€śó4Ć'µ‹|8%V¦>ňň>úü$Úśęę‚P“ Ľ+2ꨴM'śxťIÓ"GcÔ_jü˛ˇG-E`8ĂŃFȇłdšĚółčΡ»„IöÓ«čn_Ď(¨ń/:ˇG{0ôTöuźĚé·5űČŞdýüŁ|ŠPg€ đ¸4¶iX•O¶kÝ Ž©8)mrŞŃ@ô‚!ćǨ ÂeBď6±őkŽP3…’đ‹WžŽó)ô¦i`0]N›Ęů&…Ԇ҄üŚ™q­ÄëvÄN~U§cĎ„bźťG{ËűُTGţń‘M> «s:QďI;j'Ş´=g^tUeta‰85‹nGXHűEĂ>Í%R Hť_Dľbš-çłËńŇ,–ćѦĘĂ­řČ©ęţÔ\ ¶7@ŽĘŔ?Íý‹ äSĆŽ’…éS‡Ň&'ž g3…Ľĺöl­i/¸Úň»:˙źs@ćRó‚4©“˙šNŚŁB`t’é9¨‘ŻK‘OaiŘ l.*0M—sŠĆ`) ם^ţ8ĽĽĽść€ůň<łŘL[€KmŔvŕŔNŕťŔUčmJ÷ç Ł—öU=Š_ÔpŘWάĆXS^Ýýc§ä—ńćŹ{>ńÚJăŞm´m]őwĚŕ×ĚđSŕUŕ0p8Ľ Ľ śf.°äŔ0l.¶;€ź®v×cqcĚżŇđ-o)çt:3zł›Ç°ˇşoŁîmŤ|•ďłąŢHAÍ•s…x2O>Î;Üi ›OTëWNĄÄZ@J}¦F٧ě¨U˝ ť‹_NŤô·5żŕ€"_ ńŻË:˘ş/°·¸¸¨ čśNŤSŻĎß~Ľ!ě–f*ÎňLř»ŔŤŔnŕFôvV0ç%Ă» ŁŃî>e=Ą1óęą6ršŤ`dłüŚ DňQČńiŞL^^^~üw`vd{ĺ"mŢ|řUŕ×0exgŞÓi6/‚,ťÁLOF ö›„nuşáy‘r.yĄ·ńu–@hř?@8ĎD^ xi&^F“‹žĎ¬¨ő‚« !=˘ó3 ʍµá¬ÄAâč»ĘM!ĺźčµq´Č>-(ü[î‹ÚŢ LKÓ%eP4Řôđď€'€żm˛ůëiřsŕĎ—EglüđŢrzOő"Ł«c—$(jc‡‘/ŚXhś} ‰.óĎö‹řÇo¦Ł—KrÚŃQ5üđ\9ý…Ă8ŤPoßľ ł [˙)đżaîJśN§€SŔÉ2 S芟NcţlĄ#T#“¸É—Ş›ĽtČľÍĘż…ÜBr ±ÂĺEc Dęü“´#”÷3[/x)ií–QmT˙ öża ňŃ4ÎBa,ć"äuaşTš¶ţoŕóu6űĘ)Źé88Ĺżxđ>ŕ˝Č®BÄy Ú¤Ń^Ś”)FPë5ĚźMľ©ę<űkŕąrC=·»Ąžţř=ŕ÷° Řô/đމÓŰń6âi3é×aťBď f%ţEż1Ä-M„ťr݆ | ?Ť…Ń™¤dřë99"#’ouh©ő‚kUZď«Ö·Ś,qPň/Şc¤Pě#ŐúEů Ě…_Áą­dş¬ś¶›~üŔ­ż%W_…Ĺů dĹ€ĺ$đ>ŕ€żĽřąŘ&ň.ÓbóE—ŇС§žBAŃŠFwrţ¤ąDž~řkீżţřs`iµ7ü°ú<đylůűŘň0.˙ ŢN[7”ü#—\ĺ§ „ŢÓýŔč•Ě›0żSBń‡,RßkƲČĎ|t0TŃxUÁVK­¬©†Ď]‰h˛?Ö†¬Hôô»”KyqЏh\bi]ťWômRřQě]^Nżü&đgÉÍ7ĆZ~üp91pŤ»źŚ5âď ż¦BDę _Ŕ ( IDATú)Č/Őü_4ŕ·Č~ü÷r ďŻWm;®Šţ+đ+Řô~\őU\ün\LW-`@`€ĚiśM9ę0…8QÎŤ3šĂŹľ¶âWŰěج{nŮs^VB./ČĎücňĆÁs@AşćcMÄ‘)wÄ4)žKEÚŽĐ6…ÝMČ/*ů n#đŰlvë~xHZҵˇ+ÉŻ~¸¸xp5đNä—Ë×Î]ŁĐ)Č»çřř_vx8ü8üŕo€ź¬Öfýđs¸ř~lÚ7¸ö¸ŕ…_ů@ĎçĐU~E_I}żőĄź1ö+újgRĽVĺZÁ1a×yŇ#J_˛š˙(ĎWŕ7˙"]+¶#4 hłp~˛Ľ#"\ @XŔďŔ=ŕžő8/ôŕ'ŔŞä˛ŇŤŔ%Ŕv`pp)pqyáě&,źł'Ę_Éýň¦ąÂ‡Ď•DžŢNoÇ€“«»Žç…ÂşżÄ•Ocrby\®Ďë`KK/mó"yľ¨?Ď7 ©ď&ÍäŁÇ? ­šôţŁv\pĺÄáG3 Ш} řQôŃ|öŃP–™űK˘}¦Ö_ʇ9 ˝}Éń›‰#,úBwWř‡Ŕ÷Ý«uˇé$př›s˝‚žţ!®řŢ2üYç~1ť‰v=¦]ëóŚäü‚űżÝ5O,bË"É«`’ţIí<żÍî1|Čß8y.LÚż°÷tňůç¨Çt&ĹžăFl“KČE Ĺ ;čM•7ąo*AxQy™L1:ßlŘjlô}ŕ7q°µĽcç˘ę%3…ýîČŁ·"öŔzex@Uë +~ĺ‰DĽi'úWb,~˙wö‰q(Wޞ˥ôě!˙ŻĎ.gűPćÖbđŁ?SŠ™T«ÉhĆą(÷š†ë,¦Ę§QE,śzř7ľĹiŐjuôo0őŚŔż©˛űąě¬Növ2Î µľ‰ÚďZýëŻQ ć‰%jI3†ěŹJf<°kźéth,)ÉîHVńâňľí§˙É7ăżµ"“ľK™ČLj“üâ 1a§zýaqť}°†›|Sů¤V­Îˇľą<đş<őm’\5Ş\®ËĹż;Ú· ľŻ§ř/ř\2Čť[ź‚`žÓ yΨ.×ŘzÁ’“y~wźě…°ű6é±ýdSA(~ÄďŘwID]ĆżÂ2öWńG‡ ‹óČŕń"=ŕYm#¶juîô,¦zű%&+· jÖCűí(~SxŔ˙˛öů´euÎOâ‰Ĺ°ŚĐO\ĽĄ-‘ŻZKU­­4ż_ëÇŽŃýměH˛ŮDZB(ÇDĆľ$Ú—Sśč%÷ÎŞE:ˇ‹Ňpx]Ţ®­ZťK˝]> hG9řŁ{äâůŔX­\ y~ČŘvÍHÚ?Áh`|ľx÷űŐżc6ŕ\FŽŞčk?#ß“Ö&´K :b*˝í[µ:7šŞ\]ÝôW‹_ŠLůB ü_aTOĆ)…«î‰Ëy> ů¤Ô6öĆwŤ+ żJÄ]›ü´äO*ăšs*ŽoëעqÄ$YŃN śô6ún¸I`b™řÖÁ"ŮŰ\[sOµjµ ş˝mę;3EdĘ+ů—B$eż$˙ěSżtčź !° üçĂ(“ dťß^pĚž –§îŰ‹”»‡ß)şľČĐ€Îiŕ$m_;Ĺw 'óŚĹöBOÇŮy("%}óňُşXž«=G¦‹nľ\kݶjµňşµr”†C7Ü/(˝'X{I0}n«ńĺ˘0âĐm Q™÷ű1k ymř!Ľ-jĄóvšĆň jąt'»†@Ž70(˘ş/Ăç Š@úŻ= ,h!půh+Ž îُSr1Đ.'¤ěFäŁwsţő$.?~y sŐ÷šÎ÷·]ô©–‚­ĆOźZ~ËŕLů2Ţđ2ú9€xžZ `B‘…‘#ä]ŁöU3â°…6Ł×‹A‘ždÄÎҤG„Ú ZFPˇe]^^2VoY3 jĘő+e őp†f˘˘öĐ÷waćÂŃIăđQ˘ěő0)ö‹ŠŽ0p‘R$9Áňś—¨VUUšőźŔś6 ;±ýŹ;ĺ ŮŞŐŠëŹqěcř đSŕ5ŕ0pxŁ¤ŕ  7xę_x¶h„ëÝc„Ú%3óö–,#H‡blCzßUŘ>ÄT.#§+ňQŤkŮAŰ jď]â¦0é)éDÉ ś(±Gç˘,"™xAHyńĎsČ(]^í-!;ŽŮ¨çtůýĄĂÎP–´U«•Óqřý8T"đuŕ(ń‚'€Ţŕ!đ›Ë·„m,A¸ĽjB4‚‘#śP!#´' B27\`Bńôâq†¤JzAÔ0‚hÇG*~Ľ BÜꢗĎ8ˇř!<  źećˇŘ5:Ľ¨Żł§Nťc8®źYŚŢâö~Ľ«lćG±\­Z%5ĚáÇ^^c0.xĽD y˝„Ŕ©r¤{}9đ-vŠj]ŁžRs8°×L|6 G$b]łŠb úBůĽÚŽ ®¨ S¨…’ý˘¨"ě đCÉBŔr„áźFü+ě €N‘ŹL!$FË\ Šq§¦żč¦‹8łŢá_¸­~®kşţ§íë&Z­ĽţWĚ>1č}µä_aŹo§1Q}ĂŇtµ#4B ő‚ˇ;Ô‰@Ű ŇďQdłx íńżş÷×Ăa“`N ˇÖ ŽV{"ój& ÂçŇúEˇü؉‚‚…˘ ˘ţď„BTcáŁő¤<˘§WDđŁă“§qfóá9Ĺť…W?wěn˛¶A«VCéżáČű, ŘĹpQé˙6‘ëb"ţ(Z@űęÍNTŘŃ/»@ŤI/XëňQCµ ´ç‚Z/XSÖÔ ‰đăUˇ…jő‹†/4¸ĂAďŐXČÉgjPă7eX  ÚG?cŐ›î»y3Ý’ĹÍőĹ]Y'·ß‡«sLř·ĘҵjŐL˙ ł_Śľ.ŤžŞŁ€ŃÝžëBüÖ‘#?ěHÔnt v„&qh;żZ7TpF:˝ h,¶^°¦¬'¨EĚ‹ňNS¦,Ś~+ˇÄa4TľsY6ů˘rČő޵"ó8öDţQ Vž5słsŹ(X<ąăđί㚯;€cŽ5nŐĘÖvŕ üxUş ¦¸ô,¦0¸FäźxŹ 8 ¸Žř?Ź»CŤŽP†@xř×g÷6†źÁ?żL«ő‚Łž8TSĹBNŇÁrćdŚĐî Ue€Đ¸ ‹vxrř±0ią¤wĎOťĹěk™A?CĎgxG`oů˝–ô懍Ěü9Ż˙äýꓬ„Űľ‰züůµ0ٞ€ ®…9-ŤĚ öűý{îąçW~ĺWöďß?77÷Ŕ|îsźŰż˙¨>_ÔřQlhpEAčąp4bˇÓ&Ź×„E1+řG­ó2ňě…ÔöʸW5‚K% é$ÂáTi çK(X<^­‡ą;Ů-Č/¶—–Öp[ŔáE¸â%ě¶üqűަµ®?Âé;cř…Ë^Š««N§‘IwţEđ3n~HŢXË˙‰ýźü´^Đ^cŚžCZD™<|řđ믿~ď˝÷®_ż~óćÍwß}÷'?ůÉQ}¸¦1Ł H>Ś„ Ť&MaÎa8ň@ŽQ„ťNi QĹ!ŞđËJFf©/¤?o'—J®Ë©/ś*ź-ş6Ýr*5zö4ćNcî/.-ÝáÖŞ;Ü~'®Čń`Ă˙ ü«ć;¤ŐŘé÷Đý\ĺźÇÉ«áß*{>O]¬sô|7ż÷?4˙ó], ďĺä+Šy.Pś7ŕźMÁdŕśób¬‘yÁwľóť/ĽđBů?ó?ýÓ?}×»Ţ5Ş×t(x‚ÚČAČU×őËF¤v0˛†”mQFażżś±LaĆČqŘ!ţŹwţô'KR.•8,@¸XúÂ…đމrŞŕ°‹ł]Ě˝ą‹K€KJ"^Ví/Ýń9ěř®ÖÝ <ćÚü­ĆQźÁâW»DW{†1ż“ŔIáŤđNřŐęü,b±óÓs „żČ®\¨~65ćŤpzAíĚĎß;çůńăÇ8đÝď~÷+_ůŠçÇŃ9  őµBŁáđ„\5 řŮÇq˝â©4ôťŞ)Ô@Ř!ŻědRN4ö$.k¸ľ¤ŕb.0x s§pö..&8¤q°ý Řţ\¬»řżšď“V«ŞĎbńˇĘ{¸í+Čw XŔzéµGâËŹ¨óŁďđßüî÷™Ž@·L"Đć_3ó—ÄŢĘ!P>mş(čyËnžçyž˙ÁüÁ—żüĺ_ýŐ_ýö·ż˝cÇχŁńëTňˇ> 5č->Dś˘ëe’ŽĐĂÂর ZÂś†/ěötöJR_¸žô—.8 P<»€łÇqö8ÎnBoK‰CJÄp}éĺaűCŘlü:đż{(µZ} g?ąÜáůfőRjűNs ¶ŹŢígŔOt~·ź9oţ«ă˙l h#ĐÉ??‡`§čäk żzÄ{D8pŕűß˙ţOł|m§ÖŰyŞ|ßH ż >ŰWËůiWľtęř?±˙“#°Śűý¬5ľ­#żF¤ #?obĎÇ™zŰFD¤q`ˇMÄhZ`DŚ/¨™A·Ŕá4ň‹€-ĺt±Ôqşő3Řúl.ë˙řBă#¬•®{Gq˘7‰Ű‹ş:öNg€Ůeř‰—şŘĎyIŢđ®9żW~úĚ2ôsôëŹ˙Ťs¨AÄBC!#ô‚W_}ő‹/ľ8ŞOsjü( xĐ 9ëA˙ň˘üMaž öNaż?€íŤLaÂÁC×´>Ň\r„ C@AŘG„„Ň:$ü jEh,4Ľ`Ł>¶ŐŐČ(xâĉŹ~ôŁ?řÁ†ú”\q~¨’Ď.އó<†_!ĂÚ ě÷c."ćUSć•ÁÂś™Â\B ŃMPÄád,‘€O¶A\¬âpą×´‹ů.şÇŃťÄbńNń‹ČÄ»O/Ů€KĹĄŹ,ăÄW€ipä]Hzđ{čýÖŔäqćťbĚ;Ě3ŔÖ™˝ťôÝFµlźq·źżZ—˝8ř†G5ţgŹj8„2V‰|ĂĂo4„é{zŐ¸h<|řđľ}űžţůn·;ü§ą@Ą“łÖő2…ęöŽRřQEŽĐ)AX䵩ŔaÂśň…3" ; {ýňOÂ÷Áö ) űýQD¬q ó'Ń=‰y » yńŠń‹[ĘůĹŽż…K~kČ͇€Ďż?äá¸V´řąz€:jňN•Ŕ;Í7ĚsČ|†O{·źßöMV™gßđ7ÁPg_ü" ţţŐüGţV玺Ćđ«K>ëô8˛qÁs˘PpçÎť_úŇ—O˙=uGţLţ%ëţ/gFP#MÂá˙ęÂŻó<”Ď™#<'łqA{PFÁŔć4‚…jąŔ¨Č}!7…”‚‘ŚřqQbάaÎxXH‰+Ö0€Đp‡|‘ă°'á0°p‰‘ŰÄ`ˇŹů3X8y`~‹áíăŤÓU@n.z'.z›\†ĺäź˙ř÷ŔéúęXi đŔo`éćopgç8đćĘyëL«'ňi·7hŘáÇÉG±7ˇcO#_Š}r ¨1řç˙Ť‚Ú„úP,&çZ‘çĹ6±.x/čQâ©iT˙BŇ b­aÂŃF\»F9˙ÄńÂ@ÁŔżčŰB­aai©ĘÂP;YĂ‘A¤,ôଠzzM—ăNÔŢ€ Ŕ|‹«ŻdĄ€Ś0ą<ÝŚé›1ýeň:ó.đ˙˙řŔaď»ŞÚ ü#ŕ˙3ć6 蕜ćŞs:ťúň­gäăVŹßŇg÷v:Gűü¶/Ůí©Śůqţ5ëüäđóŚ˙i „äiRŚ1üljDäq¬ Ď îŢ˝;ĎsřžSHk™~‚ @±´•lC±—ë¦Pw‡`¤ąr)ǡÖMĘ;H+,´­ˇ6jȉHYĐA´{Ě#××\ěca ł% §Ó–lŞ|ľlŔĆŹbăG+/8(.éü đŔ_Ď/ÇTs]Ľřyŕ￀ţĎ.?ˇuů±ĺdš«|NbšG¦8<í˝ Úµ-ë$ćiC}öh_ňy®y©˛°˙lř oţDŇbŁ€Îk1ĎOľ,ĽđĽŕ ŢĎQ‹<‰XhT}¤‡F7©6trňĹsâR°×[ľ§˘â)5Ź3 j8¤D¬e=§Ił(˘qq óXü˘ń?˙r}đ/iţś3‚4â(‹ÎąV¬şđĽŕĘŠc& @(e÷ŽB‡ź&§¨¸Ř‘Ô TŠ„Ej®Â>ą›BĂ!í# ĹÁ%9ůhřG}an˛0*ö¤bŇ#r›hôťj‹»XěbńdY\‡śß×Í/IŢěÍů!0˛őäX żAúŇ&X’–^˝VźşŔ"2ÝĎ´3€g÷sjŹtIz>Ď€_ý1ż0ĺ±7ä“_"ŠĚ[‰ţOlNÚŮäłiçB .D/¸âŇ@š˝Ł4ď´†‘j™B×í# ´M!ea¸ŹŢ`! kQÚ‘Źć ~4ž¨R0â˘ó˛ŹStŇ12‘`‹‹X:C’“Čůhq§7żÇM<—Łzn(#ń·COZ%ăéŃSĚ—ĚŁŮ&vf&içw{u/rŃ<ź†=7ü˙ż•îü~Űś8ÔŠv`ÄËj˝ ŕÚkŻÁÓŢlćE ôŽ®„)ÔpŠÎ‰Đ&"眍ĂĐGÚé şIŘ Ř©ňŻ–AtzÄ•F ‘(62—€Ţ––°4[m} ~â`WěËiůX¨N|sô¤•‰pŘü·UQlMű[xÚđžćölĎ7rŰG2ý>úu.{IţŤ €Z ±Đą“yĂOÄžu>l˝ŕhĄ1’„Ţ; Ä´Ć6[ňşDŚ@zGi ˛0ŻšÂ˘˝ADůňNÁBn 5r NJ,äDŚ<˘ÁE ŤĆ586A… ŹŢó\E 8ŹŘćᆆź <'ó°VRkSQëkĘő4µx!†„:OŇp‡…ju“&^üżÉžRŽĂ\2…##.ć)k!‘˛0¶†"#ţEŃŔˇF›Ž@Ú°´Qg;? ~‹ţHJ‚Pô…29O\qiy1É?Óüő{® ^"Îůű<ŤŃľ˘*|%mř9ů'ťs;é ’I#ŽŐzÁš˘c¤1óŞ©ĘM#Ĺ6Ĺ€Ł±PłnRŹ8µžŇPŐë-ĹńBŹ5Śř§ő”ŇbÁB—54X(â0ÉE' ýŇF©ö_řÖB ?x˛jˇFŤFI€9]]ućŔsó/×ÍźH>~ ř50󆧠ťLć=Ig,¨ő‚Ł…đB•76…I;XwEě˙N›Ů,ä„‹hŕ0đŹą/¤ü‹ĐpءĎc g|‘…ýjŃŔa’ŤiÔj´ ˙PMY褣ÍK'çFĺö ’íŕy·­fřĂOLBA Í‹±Đů0ä3€7BÚUµ\ iđăUISÝ ňŔOD>w®Qqd ŁĽHD'űý忊Čgŕ°BDŠCŽj 9yGŽĹ$ë6ŕEüę"pp U?5Ćxég§ýv„­RÖ·_Ţó^ ~Ă8?Ł##âźX¬5wí`Č—•)ůóCăJA¤ŕŞś±ć 50‚t-˛L(6cˇ‰H3é¨aDA›…•NT٧4Ó«˘żJBŃ VŇJjĹä?˛ÉÇT(Τň€~‡jµz5›voSžËäÓřÇágŚůŐ"źŤ@šă(‹µćZŃČŤý±]«ő‚#TD>čđ3Ş˘Ľ†˝¨¶™;ôŻ×¨X¨ĐCÄ ¤8´=˘ĆÁ zŕÁIĂQŞqŃFc]Čqŕi„T)B DeR‘ %rpö$»%ýlfHĎařBmŽćŁ}69ę<ä3H3bbŃ9wťű™—>ăe©c­1Ł`!ŤĽ¨q1BŤ /(…Äâ0‘Ş. “ ÔH‹)›Dś%†Ě«#IJĽLŤĽ¸ ¨ŃśQ<8n¤8“ćBxRĂ’MŻ$Űś›&äŚüęŘľZäÓH‹b {ŤÉ7 ˙’I#®[¨ő‚+!Ž7»¨™B×…˘fm@Ú+ĺˇ»ČżĆ Ôţ$W|aŇ ŠîP„˘Šž‰&›‘I¤ŮUb3c‘Ŕb"Şy°‹ł‘ăĐ6UˇĘ §áńÖ€e¦ÁĄ.â\#_3ěyHóQŇS4ć΢‘o–¬UĹ‹ezŐy 1Ł`’pŔŹWQâʹú,ˇ(zÄ·qh rrţ5 bmU«0A)"5‹5i çś+`YÍÉřďĽ %üz«Gľ$ t’Cž˘8÷$ b»JĚTÔzÁŃĘ&_Ô€Ă/ť±áí =?ŤµÁĚáÇAůźĐ aÁ3' =D´łBtLţ‰±<¨ĽVŚbMQe‰XlĆĹdQĐN€ßpäů€źFAšă(‹FrphřŞęɤ×-ĘĘŇMĆXăGA¤ČÇ𢇋hZ‘Jca´F4©!0š“sR0ÉE Š" j8Ě2ve)ęsQLÖĘC)j8§2%çvŕ„SłĽý±ŐÚ@¦Ćă|+4ÚgPCś řĽ˙śE;Đb'ó’Ŕó±ő‚5ĺz‚Rä8ą88w(˛/g-(ŠnŻŁ?·Ýˇf :VH)Ҹn±V{¸hnNiˇ ޤńI:FĹşíĄnHĂ7d‡§F;ţ€Ďťäsω˝$ Ť¸nQĚ,K9‰ť'ł'¨EÉG3ţb­X" 4FY¨UĺU Č«˘6bÚ$CČ!š+îpTP,‚4˘śHóÄÉ 9č™Bü|áD ź7˘'ÖŞX˛ßGľÂŘŇůAažGX4’…óŻnĐ ®[3‘ú®ßül?&ołQŽ=h™$ ërQ˘?(T‹…tiů ҤD¸ĘGgsćĎ"f©ţR‘ţ¤Eq.QěW&Ĺ~ĎE;)Ő8ů§őyÚü«EA ť¤Ĺ':×đ¶jüK&ŁŘ_ĺĎp--ĄŰŚ ó¸ĆŚ‚…DěÁ4…üŻ4řUś4^ ÚâŰ!ZČĚt‡Q <žqR0°0 Ž"P´†ŤąXfIĽ5Ŕ^3j{Üđ‚4®ë ᢖwÁöŐežÔĄ]-ŇŚGX4’ŃÜ“lhqcć5 ˘–ěő„äůٱ¤ $ČAˇŁFٍqQkłB,ô2_w bŇ"ŕeş5ôQ…˘HĨhCNd[xŤŘ/4ć´“ub˛&&=«ŰÉ9*ţ1Żö†'ß9äź3Ng‚|^pl5®,ÄYŘ Ł/ŞrĆŤˇX¨1 é‹DŚjĹŔ jyJ>ŠşL˛†~"z X!"ÜŔKV!•¤AóbR™^ôB1iCQ¬Ş“„s:<çđž€Çó´(ĆQŕ)&çždÝ ™4bŐ0™H-G©Üě¤8X¨ L&c;ą:,¤k$"0*jđCovŃž" Š8¤EŤ:ňŔŰĄédžA> uůGĺ´<đpŃ`!™;ٶj>O› cO¤Ý ‘ďĽŕ_ݢђ‘Z ŽXśgFŇδł‹ç…Íä!b4:rÜŠE"Pág€pC1̵˘E#Ä~ç É$˙RóbśĎ4ĂŐ s=Kěi„¨b±ÁÜYtɤ×-6ÎhÉ–‚+"N8H,lIý\\ &ŃH §m%Ťvť‚QqH(FüËXÇ©ČBŽFp`Ż.ü< ¬Ą]ŁJň–ÉŚQtVQĚđţ P]F«q17Ma>NDÔ¸¨Đ®2Ú¦0 :4b^l ˇó¨ĐUiŁĄť°Šä‹ŠĆܓԊÎ@‹µţ*^tfj%Z/¸˛ Ěh3N4ň*ŢLkĎ$Bµŕ—T®#0w€0_"&P¤it´˙ĘÓly1h'Ş1/6Öp ĚKć-ÇćÔ iC>´Ĺneh1Äţ€ÎĹdrn'“y;Đâčëźl/4¨›ŚÔRp”ĘĄ.>-@b·ĚMň‰ jqQkbi„PĚSNqäD„N;ŁŠN Řŕ?j‹]n8şŁmŞmkÇţ‡y^âßŕ´î¦ŽQµB“aŚâňšÖ$_TlRKÁşŞýÔ´džcŚsvĆ_l7 ŮEľ)ěąŃ HśČSD„Â?íÚfíym9Ł€iř°g‹™ ŠčĐđĂ3µ Ő ˝Xk,§Im#đąQoç µ’ZŢ  ?cŹźĆő9˘ąn 1ŇRšńÇ ‚Ń*÷ "€„B‹ş8ŚŠ6Ď´|ÝżJ.j$ç…´ŘŘ Fśś'!Ňgě|żŠ’FQŚ“§XkîI ×-:3µ’v•quĚäu7JăE 0«x^lϓɌżŘ8&(T—‘ůÖ0Żăíd4ňŚł™ńÉ|!µ@ś‹A;w ŹŤłs-`x°äĚxšE16’Ú‰EO•±1ťĹĆÁqݢ3Ł%ä ^°Ąŕ0L>gÔäÍ˘ŚżŘ8ÖCuáĺCTËçbç_>"§¨ĹĂ“±$çb  i§łä‰;I „ja¬älÎy±h$“sOŇź×’ĎęĆu‹bĆ߬AžŞ\ qh%óIě‰Éś9$ÚŔ(6ŽŁ@LjđkE®Ü‡ŔÜ4p»«$“šŇ˙9Q Ĺ9/±s˱qî¶© I, ‰:;™ iäąZ ŽRŐB­Xĺ$ś‘4ČÇ3F±ql'µ ’Šy•yF-źsdŹC ™ôtî!˘ŠEâÖć±}j¶9Ń82Ů đ¬Eą'©ťA2Ů Ngj%“U\> Ň«@Ćę-KcFÁB í*žw˛°A¦1 ‘Â^Ô 1Eiä Užą„‡Z~´Ľ´˙—X+ε"Źy1)ă”ç¤ ťŰÉd~„l«» Îuçţ*­Ř8ĐbĎnµ›ńb㌖l7Ş|ĎŽ+ňQŤ% ŮçkH'ťZůŐg!ŻrrŃĽfP ‹]ë ^‹‘0ÉG‚OOŃ9׊<Ö2Ć642 (¨ÍťĹ0«ű/’ÉĆsOŇlÂ9kŤŘ_Ĺ‹Ť3Z˛A>YŰö® 4ŞŮµcËBŁŠÓNLŠÔ´Ź]»Č?rž9Şľ&C•§ŘěŻÄ˘‘ŮAv‘WE›ş–Śs?i6ŕâ0P´‹ °—¬Ş5÷$ýy1h–Śb/6ÎhÉyO-Z ®‚’,«Ö il'Ť –´ŤŞšáĂA±q›Ćs;0âfJžOíÓzăyLúŰ$«śs•Vl$“FěŻâĹĆ-iäWQµ\%,lP%žîyňܲĆv2IľftŚ ĄUŤЎO&«< ™¬JÖrµoVŞ«ôÔ Ô!EJ›…âé›·_FĹƱÁEO0ŚD(6Ăa3L&çţ*gĹĽŘXĂP0uˇrn瞤ł8|0¸nŃ™©•l÷Ôj Z/¸"˛Q—l ŐÖĘŹ ˇ ŽĆ"GÂ9şFuQ±ˇj$´ł™7$ĹL3ŮçÁ!AWŽĂ4s“y;h–ŚbU˛čĚÔJ6Č{jí-WPĂłP3…â_Ť Łb3;(&GčĹ-ěÇařŹŤY·J«ĄA2)ťU0Ď&žł­‘´™‘d•Q5|OK˙5’IgúŃŹ~˙űßĎŘţŮgź˝çž{ň<eŮ5×\óÔSO5\ś2ÂĎçJP0˲ť;w~ń‹_üńŹ|çťwŠm^}őŐ«®şjÄ˵&YČ“I:Öe!Ţ´8ÉČŐäbžęG5X7Ů€b’ŻŕřP0*ú°BÁČ?¶Aíńh‹bfř¤‘·«’µžÉfŁ»:¦ßď?ýôÓ_ýęW·nÝşuëÖ»îşëÉ'ź<ÇôčСC/˝ôŇ7ľńŤ<Ď?ôˇ}öłźÝĽysłŹzéöۇ_žV­ZµjµzťúčđŔ·ÜrËşuë>ń‰OÜqÇ+ôŹ‚˛•[™şńĆk-ĎůŢ~ ©m?Úöc¸HműѶĂE·öc®•˝'żU«V­ZµgµlŐŞU«V®Z ¶jŐŞU« Wç÷¸ŕĐ…¶ĘÚúâÂ[ĺ m}qá­ň[ßÖ ¶jŐŞU« W-[µjŐŞŐ…«–‚­ZµjŐęÂŐxŤ ¶jŐŞU«V«©Ö ¶jŐŞU« W-[µjŐŞŐ…«–‚­ZµjŐęÂUKÁV­ZµjuáęS0Ďó'N|đĚóś×>űěł»wďľńĆoĽńĆÝ»wß~űí«ż„«Łb#śëĄ˝fggďż˙ţ÷˝ď}żôKżôűż˙űý~źÖćyţěłĎŢH´–v±˝îç»ň<ç+}‹/„ďo8ťëYAi+¸fľż ߬4ĽňsŮe—]sÍ5wÝuדO>5[«»Řłîçµúý~±‚[·n˝úę«/¨ť”<ťďJžťÖĆ.ëqÁC‡ýŕ?řŔ>đţ÷ż˙w~çwfffÎőµŞˇcÇŽÍĚĚ\ýőEń†n8xđ`Ô¦ŘĹżř‹ż¸Ćv±gÝĎkůwnűý]ĂZßß±¦`·Ű˝é¦›ľűÝď~űŰß~íµ×~řás˝D­j¨ŰíNNN®_żľ(NOOĎÍÍń6kr{ÖýĽV±‚SSSEWصs[­Ť]ĽŞă‚7Ţx#€,Ë^xáO?ňOtčĐăŹ?ľgĎÚ&ěâŮŮŮ7Ţxc-íâäşźďʲ¬XÁ“'Oţô§?5vnűý]«Z3ßß±ŁŕÁßűŢ÷çĐG}ôÍ7߼ůć›?ö±Ź]wÝu{÷î=×Kתžî˝÷ŢíŰ·ßrË-żţëżţkżökwÜqGžçĹ.Îó<˲5Ľ‹ůşźë%±Älżżk[kňű›}ë[ß:×ËĐŞU«V­ZťŤťlŐŞU«V­VM˙? rῨIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_legend_item_manager__inherit__graph.png0000644000175000017500000005546612052741154025446 0ustar gudjongudjon‰PNG  IHDRĄ#„»ď=bKGD˙˙˙ ˝§“ IDATxśěÝg\SWđs! +€"˛TJ(*Š\2Tܢ2µÖQ7Ő:%ę”2U«¸NDQ*CP”˝Ă&ăľnß4E@P ź˙ĎÉÉOn®<ą÷žś‹á8ŽĐŻ‘řzä{ ˙|ôď€ţOßúŹÚÚÚ+VTVVň;>ŔŰŰ{üřńüŽ|G0źč.ˇˇˇvvvüDĐ=yňÄČČ(44”߀ďßş¤±/˛··çwŕ»×ď€ţň=Đ˙Aľú?Č÷@˙ůč˙ ßř ''ÇÉɉFى¨««{yyUWWwÜ$33STT”x€ń““łµµ-,,ä­Óq„¤¤¤3fHIIIJJN0!66¶›Ţ‚ň= ·eddŚ;–JĄĆĹĹUUUEDDdee}1ĺsQ(ü˙RSSEEEW®\ŮĄ^˝z5}úôYłf˝{÷îăÇŹK–,±¶¶NNNîú» o€|čm®®®‹-˘Óé:::ŁGŹŽŽŽ–——÷öö677?|ř0B¨°°ð „Š‹‹1 ÓŐŐmnnĆ0¬ĽĽś·7eeeww÷¤¤¤VŁTWW/^ĽXNNNUUuË–-EEEĽ=xyymÝşuíÚµňňňŇŇŇ«V­rss‹ŤŤĺ=Ŕ{FA]]ÝĎĎORRRSSs۶mD…ŇŇR2™ś››[__ďâ⢨¨¨˘˘˛qăF‹ŐÓŰ€®‚|čU #..ÎĂĂ·Ă0OOϨ¨(KKË „©Tj||>^__?##8¬—““ăm[TTtěرQŁFµČĹĹ…Á`¤§§ßż?&&&00Ű…BIHHpttä­ż˙ţ­[·¶vQQŃ«WݞłłwîÜI†‡‡Oś8qČ! iii t:ý¶=ň= W•••á8>xđŕVĺ%%%‰‰‰,+11ŃÍÍíŃŁGl6;>>ŢŇŇ’·2qNĐÖÖ®­­=wî\« aaaľľľ Æ ۵kWPP÷ŐňňrÇi4ZçĂniiŮż?ŤFł˛˛ĘÍÍ}űö-B($$ÄŮŮ™ÉdřůůÉÉÉ :t˙ţý—/_îňv ‡Aľô*yyy Ăňóó[•Đh´áÇKKK''''&&.\¸PNN.%%ĺó|Ď{ýžÁ`DEE 4·Bqq1BH]]ťxŞˇˇńéÓ'˛˛ÄĽMŢĽysćĚ™ö‘——GQ©TKKË””;;»˘˘"&“)--M|˙2eJ^^^×7 = ň= WQ©T???n‰ŹŹOnn®źźź••BČÂÂ"22˛¸¸XWW×ÔÔ4<<Ľ  `„ ]…8v˙đáń477WII‰7†‰'ž={–·ÉˇC‡ţúë/„÷.bĽ_0 ă>vppŚŚ ź;w„„Ş««‰ďuuuĎź?ďR´ô¸_ ·ŃéôÉ“'ă8ľfÍ555ˇ­­---}ĺĘ„ĄĄĄ“““ąą9†a¦¦¦k×®ýé§źČd2†al6›Édvf …bmmíééyćĚ™šššť;w:::r{ “ÉGŽ155%‘HöööbbbáááÁÁÁqqq222---·nÝ3fŚŹŹO›ťĎž={ůňĺt:ýôéÓÄX¶¶¶^^^äp8+W®ÔĐĐ8zôh7n1ľßz›žž^RRReeĄ‰‰‰””T`` ›››ššÚńăÇBćććÍÍÍĆĆĆ!33łşş:âdľŠŠŠ¦¦¦¬¬leeegFń÷÷— NXZZnܸ‘·CCĂŘŘŘGŹ\»v-&&f„ ŠŠŠ;wîtppřá‡/^ÜfĎâââłfÍjnn633#JNź>Íb±tttôôôöíŰ×=[ €îqĎ\Ŕ7 uppřşż*MMM™™™Ý•"î‡ 7˝ ŽďATTô;Iöđä{ ˙|ôď€ţň=Đ˙Aľú?Č÷@˙ëëşŮüńyaM SJŠÜűÁ¦śś ~Gľ/ďÝfÄ’’’«WŻć-$“ #*ŞY^Âdó+6AÓęnĽô4X_Đ#X,ÎŐ«/Îś‰ó¦`ôhuwwó©SőH$ěË-=ň= ›™ţäÉűYY%“'ką¸Mž¬Ĺ{9@ď|č6,'""ůر;UÖÖŁVŻ6ÓŐUúr3@Ďë÷€nĐÔÄ zrúôŠŠşE‹&¬]k¦¤$Íď ˙‚|ř&žěăs»°°jŢĽ1žž?©©Éň;(@kď_ďéÓ÷»v]OK+°µăá1M]]ŽßÚůđ523‹v5{¶ÁÉ“‹54äů #ď]S[ŰtěŘťłgxéŇŠiÓ†ó;"Ŕ—Áü|@Üą“¶ysxs3sÆé‹M “…ř SŕřĐ)EEŐ›7‡ß˝›îč8~۶9TŞ(ż#tä{Ŕŕ8~ůňÓß~‹8p@DÄşńă‡ň;"@—Aľt¤¬¬öçźCîŢMwp0ܵˊJăwD€ŻůĐ®2==Ż ]ą˛ÚÄD›ßáľä{@Z6o O¶µłwď€nŢLť>ý…"|çÎĎěč— ßđ]Ăqüر;«W_25Ő [«˘"Ăď=Îçđýb0šÖ¬ąôđaöďżŰ.ZdÄďp=ň=ß©ÂÂę%KÎ~üX´ĘŘX‹ßázśĎŕ{ôčŃ;sóCL&űöíőěř@ľŕ»sáBâ‚§ 5˘Ł=–ĺw8€Ţů€ďŽăűöE˙úk¤ŁŁŃŮłK%$(=7–‰‰ ţkŕŔ™™™=·Íč\żŕ{ŃŇÂňô ľqăŐŢ˝6K—÷ôp ^^^FF0 đ_ööö©©©:::ü|Ź ßđ]¨¨¨sv>űî]IpđęI“zé‚ýřńăíěězg,@Ç ßĐ˙ĺć–9:ţÁd˛Ż]s×ŃQâw8>€ë÷ôsŻ_ś;×oŔJt´${ľ[ďčĎ?~çŕpRCC>4t­˘˘żĂđ ä{ú­ŘŘ7ŽŽţ“'k‡„¬‘–çw8~‚|@˙řxůň ÎÎýýťED`¦ß;Č÷ôC{÷FoÚ¶yóŚ]»ćbĆďp:’““ăääDŁŃDDDÔŐŐ˝ĽĽŞ««;n’™™)**J<ŕýu»śśś­­maa!oťŽ{ ¬[·N]]ťBˇ(++Ďť;÷É“'_lőĹr ä{úß¶-ňÔ©ű{÷Î[·n*żĂů‚ŚŚŚ±cÇR©Ô¸¸¸ŞŞŞ¬¬,##Ł/¦|. …‚˙_jjި¨čĘ•+»CaaˇˇˇaKKKtttuuőłgĎĆŽknn~÷îÝV5uttšššşÔ9‚ň=ýŽăŰ·_˝xńáľ}¶K—Nâw8_ćęęşhŃ":ť®ŁŁ#!!1zôčččhyyyooossóÇ#„ 1 ;pŕB¨¸¸Ă0]]Ýććf ĂĘËËy{SVVvwwOJJj5JuuőâĹ‹ĺääTUU·lŮRTTÄŰ»»»ŤŤÍ™3gFŚ!&&¦ŞŞú믿:tčďż˙FeffŞ««űůůIJJ^»vŤ{_YYéŕŕ --­¦¦Ö €oů€~‚ĂÁ7m |D§/rršŔďpľŚÁ`ÄĹĹyxxđbćééeiiůŕÁ„Pbb"•JŤŹŹGĹÇÇëëëgdd‡őrrrĽm‹ŠŠŽ;6jÔ¨Vą¸¸0Śôôôű÷ďÇÄÄr{ż~ýş——W«&k×®ĺ˝ző*;;›w]ĽŐ«WWTT¤§§ßąs'$$¤›6 =ň=ý‹ĹY»6 <<ůâĹsç¶Nx‚©¬¬ ÇńÁ·*×ĐĐ())±°°HLLd±X‰‰‰nnnŹ=błŮńńń–––Ľ•‰Ăt‚¶¶vmmíąsçZU óőőUPP6lŘ®]»‚‚‚¸ŻłŮluuuâéÝ»wą˝qĺ[ZZöďßOŁŃ¸­ššš"##Ož<©¬¬¬ĄĄµ{÷îîŰ*ôČ÷ôyL&{íÚ€{÷2._^=eŠ.żĂé,yyy Ăňóó[•Đh´áÇKKK''''&&.\¸PNN.%%ĺó|Ď{ýžÁ`DEE 4·Bqq1B›Ń544>}úÄ}UVVðĽĽ<⩹ą9ŃŐÓ§OąuDDDäĺĺyű,))Áq\SS“x:tčĐoŘ ôČ÷ômÍͬĺËĎÇÇż˝|y•‘Q_JOsss•”ţ]dPJJĘĚĚěČ‘#­Z]˝z•űřó8())a–““ĂíłK!Ŕđ«\ú0‹łn]ŕÓ§ď/]Zih¨ÁďpşŚN§Ož<Çń5kÖ¨©©1 mmmiié+W® „,--ťśśĚÍÍ1 355]»víO?ýD&“1 cłŮL&ł3CP(kkkOOĎ3gÎÔÔÔěÜąÓŃёۙL¦Óé“&M"“ÉË–-:thIIÉŮłg;ž‚'""bkkëęęzáÂ…úúzooďîŮô$8ľ Żbł9nnAńńoŻ\YÝ·Žěąôôô’’’*++MLL¤¤¤ÝÜÜÔÔÔŽ?Ž277onn666F™™™ŐŐŐ'óUTT455eee+++;3Šżżż„„q’ŔŇŇrăĆŤĽ=ččč$''WVVN›6MZZÚÜÜśD"Ą¤¤P©Ôú}‡Ż_üŕAFp°‹`&űo!**Ú/“=üů€>†ĂÁ7lřóĆŤW+ÇŽÂďp}ä{úb˝«W_^Ľ¸ÜŘX‹ßáú Č÷ô%»v] |äďżÄÔTç˵ŕ˙ ßĐgěŮsýüůÄ“'[ZŽäw,€>ň=}ĂŃŁ±üďăł`ölËč2Č÷ô~~wľuř°˝˝ýX~Çč“ ß č._~˛˙Í_~±\°`<żcéšß~űíĚ™3mľÔÜ,ÚĐ *#ÓŮűÜľ¬·€@»uëď•+/®[7eóć™üŽĄk8đâĹ‹V…8ŽUTJ0qqÖŹ?–|¶8}&!!áăă###Ăď@Ŕ÷ň=‚+!áíâĹgśť'îŮcÍďXľU^^ĹŮł aaIŤŤL+«W¬¬ŻŻĘď řŽ@ľ@@ĄĄŘŘĐMMuNťr"‘úęQ0›Íąy35(čÉŁGŮJJŇK–L´ł3TPäw\|w ß >~¬ś3縖–bPĐ*2Yßá|ŤĘĘúŕŕ§—/?ÍË«4iŘŠ“§NŐë»_\čë ß p**ęfĎ>&!A‰Śt•”ĺw8]–śś{ćLÂíŰoÄĹEŤ.7d<żŕ{ůÁŇĐĐbgw˘¬¬öĆ EE)~‡Ó~ëÖß.$>zôNSSÁŮy˘ťť!•Ú÷ľŻĐ/Áďń Ä]nssËŻ]sëCÉľ®®9$äŮŮł ź>UMź>"4tÍĉðďjć=ň=dË–đGʞCC×jiŃřK§dg—řůÝ˝q㕸8eٲINNĺĺa.‚ň=‚ÂÇçvHČłsç–ŤŐni˙ňeŢÄ߼ůšF“Ú´ićÂ…ăáÔ=‚ ň=áÂ…‡‡ß:tČ~Ú´áüŽĄ#~ď^úÉ“÷ź=Ë5JŤN_\…ßA: ň=|–‘QdeuĚŇR˙ر…üŽĄm%%5túý°°¤–¶ŁŁŃŠ“ŐÔdů k ßŔOĺĺu3g”űřÜľ~=eŕ@‰Í›g.X0NB‚Âď ß ň=üáë{篿ţ Y3t¨żcůGNN™Żoěőë)˛˛¶oźăč8^LL„ßAşä{řŕęŐ—‡ßňń™?~üP~Ç‚Bďß—<řWLĚkMjďŢy†‚v}đŤ ßĐŰ^ĽČ[ż>xÍ3C~Ç‚˛łKľóZMMîčŃs玂L@żóóčUU3g=ZýĚ™Ąü˝9ě›7‡ýuď^ú!ňîîćéčß ßĐ{ڦ9sŽIHDD¸ŠŠ’ů1#ďÚµ—**2nnćvvc!ÓĐďÁů|z Žă7†TW×_ľĽŠ_Éľ¤¤ćčŃŘŕŕg •* Ëä:–Π;=ž»gOÔĆŤ–FFÝ|c{6›ôdâÄ}~~÷\]§ÄĹmš=Ű o%űśś'''Ť&""˘®®îĺĺU]]Ýq“ĚĚLQQQâĆCNNÎÖÖ¶°°·Ngz={6ď«8Ž«©©uĐĽÍ®č‹ ßĐm*+ë׬ 2E×Őuj÷ö|ăĆ«©Smßic3úéÓmëÖMëÁőszBFFĆرc©Tj\\\UUUDDDVV–‘‘ŃS>…BÁ˙/55UTTtĺĘ•]ŠAXX8!!ˇ´´”[ßůčÓ ßĐ=Ąu„……|}`X·v?ž;gÎń5k ‡<|¸ő×_gőôú9=ÄŐŐuѢEt:]GGGBBbôčŃŃŃŃňňňŢŢŢććć‡FbvŕŔ„Pqq1†aşşşÍÍ͆•——óö¦¬¬ěîîž””Ôj”ęęęĹ‹ËÉÉ©ŞŞnٲĄ¨¨·!!ˇYłfqëÚÚÚrź¦ĄĄŤ7NLLLMM- !”™™©®®îçç'))™™™ITĂq|ٲe?ýôSSSB¨ľľŢĹĹEQQQEEeăĆŤ,«ÍVđä{şť~/11ëôi')©îÉÇĹĹ5^^ÁÖÖ~8Ž_˝ęvđ =_n¬×- F\\ś‡‡o!†ažžžQQQ–––<@%&&R©Ôřřx„P||Ľľľ~FFqX/''Ç۶¨¨čرcŁFŤj5‹‹ ÁHOOż˙~LLL```«śťť/]şDTnllĽzőŞŁŁ#·ů¶mŰfÎśYUUµ}űöŤ7rÇzőęUvv¶ŽŽBÇq—ĽĽĽëׯ§÷=<<ŇŇŇčtúç­ŕ?ĐE••uţőćÍ'nI||¦ŠŠ×ŮłńÝŇ}}óˇCihü2qâŢ×ÝŇgĎ ůâ_’wďŢaĆd2[•§¤¤HJJľyóFRR’Éd®[·î×_ĄR©,kÍš5›6mâf댌 Ţ?\’’’łgĎţřń#ńQ§©©‰D"ĺääťGDDŚ9’· …ÂfłUTTRRRpž6m·ŽăéééőőőL&óâĹ‹Ľă–––r{pss#“ÉD Žă---d2ąşşšxz˙ţý1cĆđ¶ú";;;;;»ÎÔŕ[Ŕń=]víZĘŃŁ·-,|Îś‰ÇqĽ¤¤ĆÍíňŚúË—OţĆž™Lö‰÷ĆŚŮôx˙~Ű„„-3fčwKĚü%//ŹaX~~~«ň‚‚Ť6|řpiiéäääÄÄÄ… ĘÉÉĄ¤¤ÄÇÇ[ZZňVć˝~Ď`0˘˘˘ Ä[ˇ¸¸!¤®®N<ŐĐĐřôéS«I$ҢE‹.^Ľ trrâ}őŮłgĆĆĆăÇŹżví·PDDD^ţźő ›››srr~řᢤ¨¨ÉdJKK §L™’——ת‚ň=]“J"al6gĎž(ż ţ9tč[ďsăĆ«)S9r{ůrăÇŹ·ŮŮŤí[Óď;@ĄRMLLüüü¸%>>>ąąą~~~VVV! ‹ČČČââb]]]SSÓđđđ‚‚‚ &tiŤ†úđáń477WIIéójÎÎÎW®\ůôéÓăÇŹmll¸ĺĺĺĺË—/÷÷÷ONNöööć–óÎĆ “ɧNťňőő%.Ě+** qŹďëęęž?ŢŞ‚ň=]S[ŰôěŮ{G±Ůś—/ó“’rW®śüĹËö))ů۶EVTÔ}ţRZZ˝ýÉ5kŚŚ†>z´uĂ‹˝}-_ĐéôŔŔ@OOĎ·oß6551 mmí—/_nٲ!diiyęÔ© &`fjjzâĉ©S§’Éd ĂŘl6“ÉěĚ ĹÚÚÚÓÓł´´4;;{çÎťŽŽŽź÷ «««®®ľdÉ+++qń?5"a WVV:tÍf×ÔÔ´‚D"Q(”1cĆ,]ştÝşuÄ ¶¶¶^^^ĺĺ奥Ą .ôőőí†í@w|@×ÄÇż%’=Éd74´lß~ŐÍ-¨±±Ą˝V?V::úź?ź¸˙MŢň’†»űĺéÓŹ°XśŻí{b•A §§—””TYYibb"%%čć榦¦vüřq„ąąyssł±±1BČĚ̬®®Ž8™Ż˘˘˘©©)++[YYŮ™Qüýý%$$“–––7nlłggç{÷îµ:™///żsçNCCC›aÆńNÝoeßľ}oŢĽąrĺ BčôéÓ,KGGGOOOAAaßľ}_µ…čYw± +<=ŻDFľd±Ř­Ę…„0--ÚĹ‹+TU¶z©˘˘ÎÂâHi)Éä`ăi`0¸ľľŮ×÷Î… ‰ ÔÝ»çN›6Ľ·ŢA7 uppřşż$MMM™™™ÝUbooŹ ĺw  źőt菍Mű<Ů#„Řl<#Ł(11káÂńĽĺ--,gçseeuL&!$$„mŢîč8ţčŃŘ–Ö®]s Édˇ^zFTTô;OöôČ÷tÁË—Ş«>/"!„6ožáŕ`Č[Žă¸«ëĺׯóŮlQÂbqţţű㯿ŘŰţňË É^ ßĐwÉÂL&‹·PH4dĽżżł®nëŮŕ>>·oŢ|Í{˝!„FĄŠďŮcÝ˙&ĺĚ×  nŢLĺMö$ Ă0ł;w~ţ<ه…=÷ń‰ý,Ů#ÇچS§î÷x¸đp|@gĺçWĽ˙ď­VČd!iiq:}Q›·źř0kýú?Ű›ĹĆbqŽżkoořůä>W^^—‘QřömqVVq^^EVV±‡ßAľ ň=ťuď^ş‰ÍćK©Ěšeđűď¶Tj7Hýđˇ|ĺĘ‹OYg2Ů.$îŘaŐSáv‡ÚÚ¦wďJł˛ŠłłK˛łK˛˛Š?~¬äpp ʰaŠŁOóO IDATZZŠ&&Úďź<áw €/|@gĹƦq8¸°öŰo6 ŚołZMMĂ‚§ëęš[ťÉÂqÄd˛B T}ýAsćüřŐÁ0ŤŤŤLEEęW÷Đ Žăůů•YYĹYYĹoßge•äĺUÔÔ4`6xđ@--š–mÖ¬´µijj˛Ľ‹ …†–wĐ-@@@ľ SZ?~‡ăřČ‘čôEjj˛mVc2ŮNNgóň*0 Q(d&“ĹáŕBB††‚ľľęđá*Ç+ʎ"##ńŐ‘0™ě‹>|»Ą…™śĽSVvŔWtÂfs÷¬¬R{nnYmm7»k-_®¨­MSW—ŁRĹľ:Z€€řĎz;™™™FFFŐŐŐ| ô???WWW~Gń:ťîććĆď(ľ€D˘ČČĚnnΫ«KF¨Ýő$’„‚„0&łŚÉ,e±J™Ě2«ÇŰřÉ~{ddd?~üů}TqŹŠzĺíUTTCüĎ _7a‚ć;lnf˝}[DµççWĽ}[ś›[Ćd˛I$LSSQ[›6x°¬––˘¶6mČyIÉ6®PtŕćÍ›3gÎěRĐĘ’%K.\¸Ŕď(@?÷źăűÔÔÔęęęť;wň+Đ;ÂÂÂ'ß'$$Ś?~ýúőü¤{Ô×3ĹĹ…żĺv)ööö©©©­ňýŤŻöďż™—WŽă˙|Kzű¶čó|ßŘŘ’ť]Bdwâľ°°šÉd ‘†UĐ֦͞ýq~^CCţŰ—ú™1cFLLL}}ý7öó=377çw ˙kă|ľ©©i݇zU||<żChMUUŐÎÎŽßQ¨ż˙ţ´k×ő§Oß“Hďś CŮŮ%uuÍééYYD‚/ÎĘ*.)a „DD„ut”ÔÔdmmÇtcvoÓŚ3z˘[@7‚ë÷®ĽĽŠß~»qófŞ Çq6ű?×Lö˝{AAOX,‰„©ŞÔҢ͛7fŘ0Emmš¦¦â€~E4ďDŤŤ¬íŰŻ^ĽřČôm®ŘŹŞŞŞ÷ő]8l˘¦¦‚¬Öhä{ް°ś·wJC !Ä]xżMuuÍS¦čJK‹wP¬§ €Âqć€dâ Žď8lvÍÖ­66¶ďß—ľ}[”–Vž^–VP\\%“HXcc Ž# ò˛J 5ř2@Đ}ĺń}QQŃďż˙ncc3mÚ´ůóçź8q˘®®®ă&ůůů?ýôďŢ÷y ßL~~ľ™™ŮÖ­[y qwppŕ×{ěţěYÎćÍa&ě}ń"Źßáü+''ÇÉɉFى¨««{yy}qąĚĚLQQQâĆCNNÎÖÖ¶°°·Î{hő G “´µisćü¸eËĚŔŔ•/_îzűö÷ë×Ýwďžkg7öÇŐÄĹ)8ŽS(đ­đe_ó—"//ĎÍÍmęÔ©ľľľ ůůůçĎź_·n݉' řšĄľú4!!ˇ×Ż_WWWKKK%Ż_żţâ·•–VpőęËĐФňň:2YÍĆź={?z´żăBˇŚŚŚI“&-X° ..NUU533sÇŽFFFOž<ánüŽQ(”¦¦&âqaaá/żü˛rĺĘžŚş;IJŠŽ;děŘ!Ü’˛˛ZyyI>†č+ľćřţرcÓ¦MóđđýđáĂš5k¦Oźîŕŕ@´j/ÔĎk~ĹŚŚś1cF~~~—>ÓÔÔŹŰ·_ýá‡Ó¦ţ㏸ňň:„“É ®®®‹-˘Óé:::ŁGŹŽŽŽ–——÷öö677?|ř0B¨°°ð „Š‹‹1 ÓŐŐmnnĆ0¬Ľü?ËĽ+++»»»'%%µĄşşzńâĹrrrŞŞŞ[¶l)**jŐCyy9oI}}˝‹‹‹˘˘˘ŠŠĘĆŤY,Vff¦şşú‘#Gdee._ľĽ}űviii…€€€îÝ&ěťÔĺżć Ż^˝˛µµĺ-Ä0ĚÖÖöńăÇăĆŤKIIAĄ¦¦Š‹‹ż~ý!ôúők ŤK—.‘ÉäHIIµŮłźź_ssóĹ‹Ź?ţúőë«WŻ…µµµ—.]:räHxxxÇ•«««srr‚mllNť:EÔ}úäáá±yóćÝJĐž.źĎ'.—*((´*WRRŞŞŞ244Ľté›ÍNMMµ±±‰ŚŚäp8Ż_ż7n\ÇݲX¬ŘŘŘk×®IHHHII­ZµĘßßîÜąwîÜ ”‘‘‘‘‘YĽxńž={Ú«lhhŘÜÜěěě,..nllLHµ´´$$$ČĘĘ"„–.]úŰożu>CCC‡łlŮ22™lll|ţüyîc޵ѣG3ŚwďŢijj>zôH[[›ްbĹ Ť&$$$,,Ě]sôóP۬Éb±ş´X,ÖŞU«:sr»Ľ\lîÜăĎźçbŘ?K¶÷mű\JJ^PPĎŢî´ŞJTF¦©ă:eee8Žţ=FCC٤¤ÄÂÂb÷îÝ,+11ŃÍÍÍĎĎŹÍfÇÇÇ[ZZňV&ʉǒ’’¦¦¦çÎťkU!,,ěÝ»w »víÚµkל9sÚ‹ŠÉd”••IIIÉÉÉíßż˙—_~±°°ŕp8{öěˇP(ÖÖÖ;věŕ>öööîÂv€îÓĺ|Oä’ŇŇR%%%ŢňňňňŞ««0ŕíŰ·©©©;vě¸wď^vvö«WŻĽĽĽ:˛’ĹbÍš5‹w ĘĘJ‡CŁŃîmVF '¸Ó«ŞŞB***ÄSeeĺ.@ôI&“‰>yó¶Ĺ0lÚ´i·nÝruuŤŤŤm5S/##cďŢ˝†ń~Iú<Ô6k~Ĺčä•ě‚‚™™ą†ZÝłµÇcbRcbR;ÓçW8Pâ‹ů^^^ðüü| Ť˙ĚE/(( ŃhÇ—––NNNNLL NII‰ŹŹ?yň$oeŢë÷m*..F©««O544>}úÔAý˘˘"&“É»ÍĺĺĺBd2™Bˇ „H$ďăŽß#ôś.ç{qqqČČČuëÖ%aaa“&MŠŚŚś8q"BČĐĐ011±˛˛rđŕÁńńńĺĺĺÇ'&B·GFF†D"EEEIHH „šššjjjdddBĹĹĹDž+**ę 2ďˇqś]XXH¤|nť  ąąą“›eúôéžžžiii»wď.))!Ękjj}:oˇ´´´łłł‡‡‡‹‹ËäÉ“ ÔŢí†Ű«ůí[ cŇŇâvvc#"\ź?ß±cÇ]]e„Oâďčl/ÓÓÓKJJެ¬411‘’’ tssSSS;~ü8BČÜÜĽąąŮŘŘ!dffVWWG\ĽWQQŃÔÔ”••­¬¬ěĚ(ţţţÄIKKËŤ7~ŢoÉéÓ§Y,–ŽŽŽžžž‚‚Âľ}űzlŔ×Ăţą“6BˇĐĐP‡V“Ř;©ĄĄ%??_Słő­¸żŃť;wĆŚCśÖ~řđáŮłg/^ĽŘ˝C¸žŘ»wď–—— móŐWŻňŻ]{ń˛˘˘!l۶Y˝s>ż˝x:ÖÔÔ”™™i``ĐÝAń†a!!!_ć(-­ÍĚ,|˙ľÔÁaś¸8Ü)đݶ2—H·'{„ĐÇSRR\]]‰łÜÄďJďoÁwě°züřÝăÇďěí {zÄo!**ÚĎ’}›[Ţľ-ÎČ(ĚČ(zó¦ -­ ¶öꉇµµÍîîćü  ř}%NŹ#GŽŘŮŮ!„ĆŹOLř®đk HؤIĂ&MÖ;Ă˙ÂĘË›bb^gf˝~ýéďż?•–2p'‘H†łŮ˙ž“#‘055Ů:‚ çűîÝ»—ßQđlď™Lűí·„RČda&“Ĺ-çpZ/…ÄáŕZZŠ˝ O‚ pŘěCCy ĂH¤/üŔ’DÂ44Z/~ź|€Ŕáp.ÔLLÜbn®‡aP»˙O©T1W× n^»ö2-­ ą™Ő^MŔwNĐĎçđÝŇĐ?sfÉË—y;w^{ů2ŹDÂŘě˙śĎÇ0lČ9 ‘¸¸Ěłgęë›…„HŞŞ‡ SÔҢ ¦¨ĄĄ8l˘„Ą˝!ßČ÷´QŁÔnÜđ¸s'm۶«•8ţďOhÉdŇäÉÚ›6Í žÖÔ4Ľ}[ś•UňömqjęÇččWyy!))q55Y--Emmš–MK‹6xđŔÎ/ĹčÚČ÷?˙üsďÇzSNNŽąą`ý‚+!!÷¦‚‚‰Ĺ" ±0ě kUWK sDE›„…;µ¨_gL›6ÜÔT'$$é÷ߣŚ&â@źÉä öďd=))qCC CĂď/PSÓ—WA| ČĘ* z’ź_‰ă8•*Ş®.Ďű @Uu`sjkkW¬XŃÉ‹@·óöö?~<żŁřě}‚ąąů¦M›xKţłŢNUUŐúőëŰ[đô'®®®“'Oćw˙ŹŹ?q⿣ř‚–Ň‹411¦¶v•X»—É››…ž?˙çţFÂÂśÄ?qń11V'Ş%$$|||E–Z©ŞŞ?věÎůó‰a,űöí #Gęü»`0?|(ç~ČĘ*&ľ««ËikÓ´´‰ošš ÜyÄJ\ÄŹBA/{ň䉑‘Ń×­FŐC`|?~|úô)o~G­ň= =8ŽŹą˝˛˛^DDx×®ąÎÎÚ;%îë{đŕ_ܧBB$‡ăHDDXSSáÇŐFŽ4|¸˛®®ňWŻ‹——W±o_tYYí•+«EEÉ_× ˇ¤„‘ťÍM˙%oßWUŐ#„¨TŃaõ´”45JKłwďvĺpZľe đuľeőÉBä{Č‚¬ÍĎ®ßĐ)†Íˇ’ÔŇÂÚľ=244éäÉĹęęrź×ôôü)7·üęŐ,!Äťd×ŇÂJO/ĚÎ. ~Ćáp0 ;pŔnŃ"ŁŻFMMÖßßů[Ţ—˘"UQ‘:i’·¤¶¶)7·Ś8ź_’”ť]L"‰wËp~|@gM›6<(č)BÍćĽyS0uęˇÝ»ç¶™°vřř±âĹ‹<&“Ýę%n Žă ‚xÄ,))ŞŻŻŞŻŻĘ-ąpáʲeÇřŕŰÁďďč,cc-‘îČb±›šZ6m [¶ě|eeë)/d˛P@ŔŞ!CäڻŰiŘ0…ĺËŤ{6ân"!!,PwJ|Č÷t–¨(ŮŘX‹;‹ ÇŽă÷îĄď»s'­Uĺ(ţąFFF\X¸Ť˙el6gďŢy,¤Ý ţÜĐ?ý4ĽU “É®©i\˛äÜĆŤ!­ÎĎÓhRAA«„„H­fö‘ÉBC‡*ŚŃ…yőđŤ ßĐS§ęq8­Ďls88Žăţů|úôĂąąeĽ/Ť9čĚ™Ą­&ňs8xi)c„˝gĎ&|~żOËÉÉqrr˘Ńh"""ęęę^^^ŐŐŐ7ÉĚĚ%`<ääälmm yët©IIIssó·oßv>ţŽjoĐN6é9l6çáĂěÇo1ŤüŤ¤ţĽĽĹ‹«¨¨‰‰ijjnÝşµ±±6‘ |č_ň=] ¬,­©ŮöýiŘlöű÷eIIą­ĘÍÍővě°â¦|!!ˇŐ«MSRv/_nĽo_´‘ŃoaaĎűÇO›222ĆŽKĄRăâ⪪Ş"""˛˛˛ŚŚŚľř'ž‹Bˇŕ˙—šš***şrĺĘ.ĹŔŰC~~ľžžŢ˛eËşţVúŚ””üť;Żě´·?éă{ůňS~Gô/ľď8ŽOź>]QQ199ąŞŞ*,,ěáÇîîî_őnúČ÷tÍěŮdrëYxBBBBB¤={¬ííÇ~ŢdŐ*‡ńÄ…ü(îîćââ"6X|+<\ZZ:999111888888%%%>>ţäÉ“Ľ•)JSSSŁ#„ÔŐŐ‰§ź>}j݇†††-[¶¬X±‚8”|öě٢E‹0 SUýg)!™čččC‡ąşşŽ;ö÷ß—””$^***b2™ŇŇŇĽo!$""B<ř\{MČd2…BA‘H$ŢÇĽÍV23&'ß&Îu0ÁÇqoď(oď¨Î÷üu¤Ąż|‡e٨TęşuëÖ­[‡ăxrrňćÍ›Ż^˝Š"‘HÜŘttt>}úÔć'XTTÄáp† ůçîĉBÄŐw—h3˘9·ŰúďľôůΉşcĎiň=]6mÚđ?˙|¦ŁŁtćĚ’ˇCpńâĂęŐcc7*(H~u·d˛ĐŠ“mmÇś8q˙×_#ďÚ5×Čhh7FŢs¨Tމ‰‰źźq!äăăcmmíççgee…˛°°ŚŚ,..ÖŐŐ555 /((0aÂű÷ď;? ŤFC}řđř»™››«¤¤Ô^eqqńeË– ËËË—/_ţěŮł1cĆĽyó毿ţB555IIIÝľ}»ąąŮÇÇÇÁÁáćÍ›D[EEE!!ˇŠŠ )))„P}}}yyyccc÷nŻIçß]{ Ş“’“””K&cl6ţů/D†Í›7ćóźŚv»ääg{ö|ˇŽ ě...ŮŮŮ÷îÝCa6věŘýű÷[ZZŻr8nĂwďŢ)))µů ***"„>}úDdâ›7o¶´´WsÜ]˘Í`漅ź7lsçě_<-ř\FFaK ‹ű´¦¦aüxo;»íť®ďŞôô{ű“ĘĘ^..—>|(ď–>żZgÎßâ8ž––&++ëáá‘™™ŮŘظsçN2™,//_QQăxddä€ćÎť‹ăx@@Ŕ€lllpĎĚĚniiá= Ű ďKóćÍ›3gNIIIVVÖČ‘#÷îÝŰAYYY$‰Éd–––b–’’RQQáää$,,\]]]WW7`Ŕ€gĎž555ůřřčęęr»ÂqÜÁÁaéŇĄeee%%%sćĚńôôäíźűř+š´zÜ1;;;;;;Ç««ëCC“llü”•˝TU7¨¨´>«/PçóqŘ=z$$$tčСŹ?666fffZYY-Y˛˙˙éô9sć”––¦ĄĄéęęîÝ»oëÄqÜÖÖÖÎή¬¬,++kČ!áááíůy08Ž/X°`öěŮĹĹĹďŢ˝3fڍ¨h«·ĐćÎůŤ{N›źQź9[€@ŃŃQ❥OĄŠť;·,9ůŻďťné_WW9$dM`ŕʬ¬âɓ߱ăęç«ö ==˝¤¤¤ĘĘJ))©ŔŔ@77755µăÇŹ#„ĚÍÍ›››ŤŤŤBfffuuuÄ‘–ŠŠŠ¦¦¦¬¬l'ď§îďď/!!AZZZnܸ±h4†aňňň;wî411144´±±6l­­­„„„źźźťťť´´tppđĹ‹y»:}ú4‹ĹŇŃŃŃÓÓSPPŘ·o_›ń|E“Ż#%%ng76"Â59yÇŽsFŽTEµ·`ł ŕűţ ŁŁ­««;pŕ@+++˘!…B™6mÚ1cĚĚĚ,,,Yrm~‚ţţţÂÂÂZZZ&&&K—.ť7o^{A~ BčäÉ“’’’ZZZ3fĚXşt)™Üú†ĎęŚŇÓIDAT–mîśß¸ńŰöĹŻ €NşxńˇŠŠW\\f7öÉáp˘˘R¸Sůjj»±óNęäń\›SRRş7žď ÷řţs˙ýiĎžë;””<54~QQń¨ăű6 ČţĐůó+ß.00°¸¸x|őęU]]Ý^ŽďčYÎÎmlF»ą×tWź†Ížmży÷îąaaIFFżť8qO0‚Ő&QQQ~GŃ?Ťˇ˛}űś/vEFşÚŮŤíÜÜĚts»ÜŢ‚hÝðąsG%$lŮşuć•+OĆŹ÷¦Óď56¶ôÜ€ľÖÓ §ČËK^Ľ¸bÎśc>>·ţ٢GÇ"“…–.5^´hBHHŇ‘#·NžĽżnÝ”eËŚĹÄDşk?ţřŁ»şť—““Ój zű {ńâEĄ˝đĂľgaaĎ••˝nÜxŐk#Ö×7Óéwut¶Ž±ŤNżŰÜÜúe]•––Ć˝‘ č}>>>ݲctŘú##ŁV†ĂOxčażţ–tㆧ¶6­×­«kľtéáńăw©T1Źió珆ëw|ż ßĐăLöüů§JJ7o®§RE{sčĘĘúS§ś;—0hĚĆŤ–łfýĐÁŢýä{zCYY­ĄĄĎÎź_F"ővĆ-*Ş>yňA`ŕăˇCĺ==š=űűZĐ€Úµkżc ˙“ ŚĄvŕŔMaCĂŢž~%)):eŠ®ĄĄ~zzˇŻďťää\MMMŞ—ĂđßĐ{‚‚žlŢvöěR ‹‘üŠ!+«řČ‘ŰŃŃŻÇŚQwuť:mÚp~EčMďčUűöEź9ľnôhu>†‘””säČíÄÄ,m/Żźz˙” —Aľ Wá8ľvm`bbVt´§şşÉČ(ôő˝ýZOOŮÝÝfóĐŹAľ ·551çÍŁ××·DEąS©büedůúĆFGżÖŃQrq1ť7oLďĎ(ô4Č÷đAI cćĚŁZZ´€€•ňłřŚŚ˘S§îGFľĐҢ­Ycfc3ZHH t Č÷đGZZÁÜą~öö†{÷Úđ;–efť~¬ xřÍĆçĎ·v­™’’4żtä{řŻ˘˘nÖ,_Y١ˇkĹĹ»íŽőÝ®¬¬öÂ…‡—.=jjb.X0nŐ*“Áeů S ß ňó+¬¬Žkj*\ľĽZDDßát¤ˇˇĺĎ?źýńG|AA•ĄĺČU«LĆŚÂď _ůA‘‘Qdmígf¦sâÄbÁ_ńÇń‡łĎžM¸{7]WWiÉ’I¶¶cDEÉüŽ Đ6Č÷ÇŹß-\čżpá¸}űlůKgĄ¤äűűÇÝĽůšF“Z¶lňÂ…ă©TQ~h ň=‚ĺúő”uë·m›ăâbĘďXş ĽĽ.$äŮŮł‰UUőÓ§ŹX´ČČŘX‹ßAţżż@°čč(‰‹SĽ˝ŁTU®Âďp:K\\ÄĐPcńb#EEę˝{é§OÇ%&fS(dMMřŐ>‚ŽďD»w_?>ńŇĄ¦¦:üŽĺk¤¦~ zń‚L&Í™óăň哵µiü €ďä{ŽăžžÁý•á:rä ~‡ó•ŚĆĐĐçgĎ&äçWŚ;dĹŠÉ––ú° ?|ůĹd˛ťśÎĽySpýş»††<żĂůzţčQvPĐ“›7SĺäŘÚŽ]şt’˛2,×@Ż‚|€ŕŞ«k¶±ń««kľ~Ý]^^’ßá|«Ę/_~zĺĘÓşş& ‹‘‹Mš4 Ăý—‡ôďh……ŐłgSR’ v‘”äçďÜ233'LPUUőŤý`E\\W\\ĂDJKĎ!‚ÚĺçççęęĘď(@?ůA—ť]2o}čP…Ë—WóqµÝĐĐP‡ĐĐĐné ÇńŞŞ–áÖ;íňńńQUUí® €@/Ű @ ¦xíšűĽyôůóOŻćďíéěěěř8úw%,,Śß!€~&ĘĐhhČ_ąâ’“Sştéů¦&&żĂô=ďčtu•BC׾yóiéŇs--,~‡čc ßĐgčé)‡†®}ő꣋K“Éćw8€ľň=}É*AA+łÖ® d±8üĐg@ľ Ź=ZýňĺUdlŘđ'‡żŻt ä{úCCŤóç—EEĄüüsţ¤6''ÇÉɉFى¨««{yyUWWwÜ$33STT”x€ń““łµµ-,,ä­ÓqˇĽĽĽĹ‹«¨¨‰‰ijjnÝşµ±±±Koˇ“cu\ ů€>iňdíóç—GFľŘľý*żcůŹŚŚŚ±cÇR©Ô¸¸¸ŞŞŞ¬¬,##Ł/¦|. …‚˙ß˙Ú»˙ ¦®Ľ ŕç"A ˛HĄš€°*Zßâ«@Ń´"* ď ‚Új l—Uƶ‚Ł-ş AĹí*+‚˘ĆÖi-pű¶ČČ. ÁźAŚŃ@€ĽÜÝ4C«"‚Ńř|ţş9÷ÜsľÉ0yrn.7555,kőęŐ/@§ÓÍ›7ŹËĺVUUµ··;věÂ… Cz6¦yđşň÷ç˙ĺ/˙›—÷ŹŻľúÖصü">>~ٲeb±Ďç[YYy{{K${{ű-[¶fddBZZZ(ŠÚľ};!¤µµ•˘(@ĐÝÝMQ”Bˇ0mܸq •••féč莎ćp8&LHNN–Ëĺújjj®]»–––ćččČb±¦M›–ťťÝŐŐEŘŮŮůÁp8Ź—ššJ7ÖÖÖΚ5ËŇŇŇŮŮůСCćR«Ő±±±\.×ÉÉ)))©·÷ß˙ˇP( Ëţu·úúz—;vŘŮŮ9889r$55ŐÖÖÖÁÁá׳Ś4ä=Ŕklńâé;vüOfćą´´ÓĆ®…BT*UYY™H$2l¤(*11ńÔ©SBˇđüůó„ŠŠ 6›-•J !R©ÔËËK&“ŃËz‡cx¬\.ß˝{÷ôéÓL«R©ęęęJKKĎś9“źźŻaĘ”)ˇˇˇ%%%JĄ’âééYPP@ T*e2YYYY^^މ'!)))ďż˙~{{{jjjRRŇ€ąD"ŃŁGŹjkkËËËËËËĹb1ÝÎáp ËţÍnÍÍÍmmmŤŤŤ"‘(::ş§§§©©I$mذa^r€AÓŔkî»ď®8;˙éÓO˙Ţ××?rł=zô™ď7nÜ (J«ŐhŻ®®¶±±ąr劍ŤŤV«Ť‹‹Ű´i›Íîíí]łfÍúőëőÁ)“É ß lll‚ďŢ˝Kď˘űh4qëÖ-zđââbOOOý^ťN÷đáC±XĽpáB;;;@’’˘V«u:]OOŹąąůÍ›7én.\¨ŞŞŇétuuujµZ«ŐćććęË 7zzzLfGG}HiiéŚ3 «}z7ˇŃht:]mm­á¶áwOţĚn„űéĽö‚‚<ţö·•«V|ô¨'33Ę?0oooOQÔť;w\]] Ű›››y<ž‡‡‡­­mUUUEEEAAAAAAuuµT*ÝłgŹag ŤFó”YZ[[ !...ôCWWצ¦&Ăl6;.....N§ÓUUUmذ!**ęĉrąĽżżâĉt·ŮłgÓ?˙üó˛eË(Šš0a€ąärąV«µµýĺ×{ííă·‰źÔŤÉdZXXB †áöSžŔÁź€)p?pŕĂłg/ÇÇçńVüđĂśśśŞŞŞ-[¶ ‹Ëĺš™™éî]]]/^üuIě`DČ{áďĎĎÉY~ö앵k1ňĹbq~~~bbâŐ«W5ŤJĄš>>Eůůůegg0™LŠ˘úúú´ÚAý4€……ĹâĹ‹ŰÚÚ®_żľyó樨(ý111R©4##Ł©©IŁŃ\˝z5===88>pÉ’%ź~ú©Bˇ¸~ýz|||__ßżOuš›+•ĘŻľúŞŻŻďádžs………­[·NˇP´µµEFFîÚµKżW?éÓ»Ľ ÷¦#(Č#/oŐąsu+V|ýřqŹQjpwwݬ¬T*•ľľľcĆŚÉĎĎ_»v­łłsff&!$00°»»{Îś9„˙®®.ˇPHqrrrssłłłŁŻ°{¦śś+++ú$P(LJJŇŹŔçó%‰D"cÇŽ áóů999úÍÍÍ'Mšäëë»rĺĘĐĐP{{űÍ›7űúúľýöŰK–,y뭷 çÚ·o_oo/źĎwwwwppŘşu«~—aŮOéđ* tŻŢÍ:ŕEÔÔÜŤŠÚďäô»#G>˛łł®a #""†öގŃhęëë§Nť:\ĹĽ –.]J),,4v!`"°ľ05^^NśXűŕA×’%bą|°wąQ, a`\Č{äćć ‘ĚĚ!!™ ÷Ť]ňŔ4qąc bml,CCłe2ą±Ë#CŢ,.—}üxÜĉśĹ‹3+*®»0&ä=€)3fôŃŁ/Z4=22'7÷Ć.Ś÷×0qććŚmŰÂÝܸ›6߼Ůöůç‹ ĘŘEŔˆĽx#¬Z5—Ëe'$ąwďaff‹Ĺ4vEđR!ďŢÁÁS­­YücnLĚ×ű÷/·µ=„A‚‚‚†˝0řM—/_ž;w®±«ÓűíĽYd˛–ŻGŤ2?thŐďď0řŰŰŰ?ůäµZ=rµÁńńń|.Č{€7NGÇŁU«ţë_wĹâeóćM1v9đ2ŕú|€7Ž­íč‚‚Ř ţđÁvě8kěrŕe0űěłĎŚ]Ľlff zeżsçwtÎť;ŮĚ źţLÎçĽŃNž¬ţ䓿{x8íßżśÇcěr`¤ŕ=Ŕ-$dÚ÷ß˙I­ÖřůműöŰËĆ.F ňŕMçęjćĚş÷ŢűĂŞUÓÓ%}}ýĆ®†Îç!„čtşýűĄéé§ýýYYQl¶Ą±+€á„Ľ€_\ľÜ´zuîăÇ=»wGúůńŤ] śĎ€_xzŽ—H§LqЉůëîÝß÷÷c=`"°ľ€ßpěŘĹ Šř|^vv´‹ ÇŘĺŔ‹Âú~CxřĚoľY÷ř±vŢĽ%%—Ś]Ľ(¬ďŕ‰T*Íź˙\xúô?##˙+5u!›Í2vE0DČ{x†cÇ.nŢ\bi9jűöđŔ@wc—CĽ€gS©§Ąť>rä§Ŕ@÷/ż çrq'>€× ňëěŮËÉÉĹ:]˙–-K‚§»xČ{x*Őă/ľ8UPđó¬Y®ź}âĺ5ÁŘŔ  ďŕą]ż~ď‹/Nţđ,(ČăóĎáö^}Č{ ťNwúô?ÓŇN?x ^łĆ˙ăŹß=z”±‹€'BŢŔĐiµ}GŹVnŰv¦§§wůň˙^»67Ţx5!ďŕEÝżß™ťýC~ţ˙YYŤúřă€ĺË},-±Öxµ ď`xÜżßąwoéˇC?ZYY¬Yó.Rŕ•‚Ľ€áÔŐŐť—wA,.íëë‹ëçäô;cČ{JĄúŕÁŠ/¨Őݡˇ3>úČwŇ$ž±‹xŁ!ď`(ÚŰŰŹ;öô>ZmuőĂź~R¶·kÝÜF …Ľ±cq†˙iĽ˝˝˝˝˝Ť]&ä= ĹĘ•+sss×—b±Ü¬¬¦··KúűŐ#ZŐëÎÚÚşłłÓŘU€iBŢŔP,]ş”RXXhěBLGaaaDDŢ“a„0Ś]Ś8ä=€éCŢ>ä=€éCŢ>ä=ڬ[·nĹÄÄđxĽQŁFą¸¸¬[·®ŁŁăé‡Ô×׳X,z2ŔápÂÂÂZZZ ű<}BHccctt´“““ĄĄĄ››ŰĆŤ?~ü\OÁ°ž§L đ*CŢŔ’Éd3gÎdłŮeeeíííĹĹĹ×®]{çťwžůzş˙¨©©a±X«WŻ|:ťnŢĽy\.·ŞŞŠľGĐ… †ôl^cČ{AńńńË–-‹Ĺ|>ßĘĘĘŰŰ["‘ŘŰŰoٲ%000##ŇŇŇBQÔöíŰ !­­­E ‚îînŠ˘ …áhăĆŤKHH¨¬¬0KGGGtt4‡Ă™0aBrr˛\.׏PSSsíÚµ´´4GGG‹5mÚ´ěěě®®.BČ‚ RRRčÚÚÚLfCCCggçŠ+ěěě\\\>l¸šW(†…©ŐęŘŘX.—ëää”””ÔŰŰ[__ďââ˛cÇ;;;‡#Gޤ¦¦ÚÚÚ:88:thD_g€gBŢŔHQ©Teee"‘Ȱ‘˘¨ÄÄÄS§N …ÂóçĎB***Řl¶T*%„HĄR///™LF/ë9Žá±rą|÷îÝÓ§O0Qll¬JĄŞ««+--=sćL~~ľ~„)S¦xxx„††–””(•JB§§gAA!$""âřńăôEEEłgĎž8qbBB‚R©¬««;wîÜ®]» gáp8†…‰D˘GŹŐÖÖ–—————‹ĹbBHsss[[[ccŁH$ŠŽŽîééijj‰D6lŢ×ŕąéž_xxxxxřÓűܸq˘(­V; ˝şşÚĆĆćĘ•+666Z­6..nÓ¦Ml6»··wÍš5ëׯ×ÇŞL&3|ż˛±± ľ{÷.˝‹îŁŃh Ć­[·čÁ‹‹‹===ő{u:ÝÇĹbńÂ… íěěAJJŠZ­¦ŰY,V}}˝N§›;wîzzzĚÍÍőCť8qB_Ć€Ťžž&“ŮŃŃA÷,--ť1c†L&c0ŤF§ÓŐÖÖn~+ń$GŹĹ{2ڬď`¤ŘŰŰSuçÎťíÍÍÍ<ĎĂĂĂÖÖ¶ŞŞŞ˘˘"22’ĂáTWWKĄRˇPhŘŮ0)U*Ő©S§ĆŹoءµµ•âââB?tuumjj2ěŔfłăââNžĄ_TT´hŃ"kkk.—;`¨'MĘĺrÍĚĚôëű®®®‹/>WŮ/ňFX,ÎĎĎOLLĽzőŞFŁQ©T“'OľtéRrr2!D(îÝ»×ÇLJ˘(??żěě쀀&“IQT__źV«Ě‹/NLLlkk»~ýúćÍ›Ł˘˘ô#ÄÄÄHĄŇŚŚŚ¦¦&ŤFsőęŐôôôŕŕ`úŘŕŕŕúúz±XĽbĹ z¨‘HtďŢ˝›7o¦§§Se8—~X ‹°°°uëÖ)ж¶¶ČČČ_öĽj÷0‚ÜÝÝ+++•JĄŻŻď1cňóó×®]ëěěś™™I ěîîž3g!Äßßż««‹>™ďäääććfggG_a÷L999VVVôIˇP””¤ĎçK$‰D"ĆŽÂçósrrčGŹ˝`Á‚îînşeĎž=666“&Mzď˝÷V®\Éd2 '2,lßľ}˝˝˝|>ßÝÝÝÁÁaëÖ­Ăřş ;ü. Ĺ‹ü®FŁ©ŻŻź:uęp5 >DźŘ/))ٸqc]]ÝË™ż‡ # ë{xŮX,Ö«öä?ŻR©żüňKú:€Ľř…X,V(ăÇŹ÷ňňrvv¦Ż30ćĆ.ŕÂăńNžßÓÓÓŘU€iBŢ>|`ú÷¦y`ú÷¦ď˙Ôa‡ ˘ł§IEND®B`‚qwt5-5.2.3/doc/html/ftv2mo.png0000644000175000017500000000062312052741134015413 0ustar gudjongudjon‰PNG  IHDRÚ}\ZIDATxíť1Kű@ĆiŘB…ҡ(h¬"EÄI'ÁoŕŞčÚ©ßŔŹáâä 8ůçR-‚â B«TPď]zĄB’3 _Ţă’»ç}źË]VÇ÷}€ĚČdIć®i쟯JŘ–b¸šÍĂő+ş™|KÂ…°,[Pď\ĘMƢ#€ä…F`JݤěŰkłúA±ŕţč?ŘY4ck6"ąZ)ę¸0SHM¨@ď㋺WÖmoĽ4čHJ¨Ŕ˙ö+…QobŚút ¤ú’*Đ~ęč8_+3Y-ńđÜĺ˝÷ PwA¶+^ý}şěŁ+xěhĎ•MAE]€TD~EĂžß´^R)`ÖAůźĎ9©pÔq-ŰľőŰŤ3tÝĘĆ›ĂTĐHČ)€ ˝Š’ICŞxëd#1ôú§é€ m@Vüý?Zćßgo_˝3-ł\IEND®B`‚qwt5-5.2.3/doc/html/tab_a.png0000644000175000017500000000021612052741134015242 0ustar gudjongudjon‰PNG  IHDR$ÇÇ[UIDATxíťK €0C'o¤(Š[Ĺ˝ŕ%Üx˙#Ů©­ç ůťÁöó¦W¦e# 3t I 3+ĽřEă~\D˝9ŻŰŕč’wM·żö˙}Yő_ęA4Yžă}IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_drag_rect_machine__inherit__graph.map0000644000175000017500000000026112052741156026425 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_slider.html0000644000175000017500000020067412052741165017734 0ustar gudjongudjon Qwt User's Guide: QwtSlider Class Reference

#include <qwt_slider.h>

Inheritance diagram for QwtSlider:

List of all members.

Public Types

enum  BGSTYLE {
  BgTrough = 0x1,
  BgSlot = 0x2,
  BgBoth = BgTrough | BgSlot
}
enum  ScalePos {
  NoScale,
  LeftScale,
  RightScale,
  TopScale,
  BottomScale
}
- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Public Member Functions

 QwtSlider (QWidget *parent, Qt::Orientation=Qt::Horizontal, ScalePos=NoScale, BGSTYLE bgStyle=BgTrough)
BGSTYLE bgStyle () const
int borderWidth () const
virtual QSize minimumSizeHint () const
const QwtScaleDrawscaleDraw () const
ScalePos scalePosition () const
void setBgStyle (BGSTYLE)
void setBorderWidth (int bw)
void setMargins (int x, int y)
virtual void setOrientation (Qt::Orientation)
void setScaleDraw (QwtScaleDraw *)
void setScalePosition (ScalePos s)
void setThumbLength (int l)
void setThumbWidth (int w)
virtual QSize sizeHint () const
int thumbLength () const
int thumbWidth () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const
- Public Member Functions inherited from QwtAbstractScale
 QwtAbstractScale ()
virtual ~QwtAbstractScale ()
bool autoScale () const
const QwtScaleEnginescaleEngine () const
QwtScaleEnginescaleEngine ()
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
void setAutoScale ()
void setScale (double vmin, double vmax, double step=0.0)
void setScale (const QwtDoubleInterval &, double step=0.0)
void setScale (const QwtScaleDiv &s)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)

Protected Member Functions

void draw (QPainter *p, const QRect &update_rect)
virtual void drawSlider (QPainter *p, const QRect &r)
virtual void drawThumb (QPainter *p, const QRect &, int pos)
virtual void fontChange (const QFont &oldFont)
virtual void getScrollMode (const QPoint &p, int &scrollMode, int &direction)
virtual double getValue (const QPoint &p)
void layoutSlider (bool update=true)
virtual void paintEvent (QPaintEvent *e)
virtual void rangeChange ()
virtual void resizeEvent (QResizeEvent *e)
virtual void scaleChange ()
QwtScaleDrawscaleDraw ()
virtual void valueChange ()
int xyPosition (double v) const
- Protected Member Functions inherited from QwtAbstractSlider
virtual void keyPressEvent (QKeyEvent *e)
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()
- Protected Member Functions inherited from QwtAbstractScale
const QwtAbstractScaleDrawabstractScaleDraw () const
QwtAbstractScaleDrawabstractScaleDraw ()
void rescale (double vmin, double vmax, double step=0.0)
void setAbstractScaleDraw (QwtAbstractScaleDraw *)

Additional Inherited Members

- Public Slots inherited from QwtAbstractSlider
virtual void fitValue (double val)
virtual void incValue (int steps)
virtual void setReadOnly (bool)
virtual void setValue (double val)
- Signals inherited from QwtAbstractSlider
void sliderMoved (double value)
void sliderPressed ()
void sliderReleased ()
void valueChanged (double value)

Detailed Description

The Slider Widget.

QwtSlider is a slider widget which operates on an interval of type double. QwtSlider supports different layouts as well as a scale.

sliders.png
See also:
QwtAbstractSlider and QwtAbstractScale for the descriptions of the inherited members.

Member Enumeration Documentation

Background style.

See also:
QwtSlider()

Scale position. QwtSlider tries to enforce valid combinations of its orientation and scale position:

  • Qt::Horizonal combines with NoScale, TopScale and BottomScale
  • Qt::Vertical combines with NoScale, LeftScale and RightScale
See also:
QwtSlider()

Constructor & Destructor Documentation

QwtSlider::QwtSlider ( QWidget *  parent,
Qt::Orientation  orientation = Qt::Horizontal,
ScalePos  scalePos = NoScale,
BGSTYLE  bgStyle = BgTrough 
)
explicit

Constructor.

Parameters:
parentparent widget
orientationOrientation of the slider. Can be Qt::Horizontal or Qt::Vertical. Defaults to Qt::Horizontal.
scalePosPosition of the scale. Defaults to QwtSlider::NoScale.
bgStyleBackground style. QwtSlider::BgTrough draws the slider button in a trough, QwtSlider::BgSlot draws a slot underneath the button. An or-combination of both may also be used. The default is QwtSlider::BgTrough.

QwtSlider enforces valid combinations of its orientation and scale position. If the combination is invalid, the scale position will be set to NoScale. Valid combinations are:

  • Qt::Horizonal with NoScale, TopScale, or BottomScale;
  • Qt::Vertical with NoScale, LeftScale, or RightScale.

Member Function Documentation

QwtSlider::BGSTYLE QwtSlider::bgStyle ( ) const
Returns:
the background style.
int QwtSlider::borderWidth ( ) const
Returns:
the border width.
void QwtSlider::drawSlider ( QPainter *  painter,
const QRect &  r 
)
protectedvirtual

Draw the slider into the specified rectangle.

Parameters:
painterPainter
rRectangle
void QwtSlider::drawThumb ( QPainter *  painter,
const QRect &  sliderRect,
int  pos 
)
protectedvirtual

Draw the thumb at a position

Parameters:
painterPainter
sliderRectBounding rectangle of the slider
posPosition of the slider thumb
void QwtSlider::getScrollMode ( const QPoint &  p,
int &  scrollMode,
int &  direction 
)
protectedvirtual

Determine scrolling mode and direction.

Parameters:
ppoint
scrollModeScrolling mode
directionDirection

Implements QwtAbstractSlider.

double QwtSlider::getValue ( const QPoint &  pos)
protectedvirtual

Determine the value corresponding to a specified mouse location.

Parameters:
posMouse position

Implements QwtAbstractSlider.

void QwtSlider::layoutSlider ( bool  update_geometry = true)
protected

Recalculate the slider's geometry and layout based on the current rect and fonts.

Parameters:
update_geometrynotify the layout system and call update to redraw the scale
QSize QwtSlider::minimumSizeHint ( ) const
virtual

Return a minimum size hint.

Warning:
The return value of QwtSlider::minimumSizeHint() depends on the font and the scale.
void QwtSlider::paintEvent ( QPaintEvent *  event)
protectedvirtual

Qt paint event

Parameters:
eventPaint event
const QwtScaleDraw * QwtSlider::scaleDraw ( ) const
Returns:
the scale draw of the slider
See also:
setScaleDraw()
QwtScaleDraw * QwtSlider::scaleDraw ( )
protected
Returns:
the scale draw of the slider
See also:
setScaleDraw()
void QwtSlider::setBgStyle ( BGSTYLE  st)

Set the background style.

void QwtSlider::setBorderWidth ( int  bd)

Change the slider's border width.

Parameters:
bdborder width
void QwtSlider::setMargins ( int  xMargin,
int  yMargin 
)

Set distances between the widget's border and internals.

Parameters:
xMarginHorizontal margin
yMarginVertical margin
void QwtSlider::setOrientation ( Qt::Orientation  o)
virtual

Set the orientation.

Parameters:
oOrientation. Allowed values are Qt::Horizontal and Qt::Vertical.

If the new orientation and the old scale position are an invalid combination, the scale position will be set to QwtSlider::NoScale.

See also:
QwtAbstractSlider::orientation()

Reimplemented from QwtAbstractSlider.

void QwtSlider::setScaleDraw ( QwtScaleDraw scaleDraw)

Set a scale draw.

For changing the labels of the scales, it is necessary to derive from QwtScaleDraw and overload QwtScaleDraw::label().

Parameters:
scaleDrawScaleDraw object, that has to be created with new and will be deleted in ~QwtSlider or the next call of setScaleDraw().
void QwtSlider::setScalePosition ( ScalePos  s)

Change the scale position (and slider orientation).

Parameters:
sPosition of the scale.

A valid combination of scale position and orientation is enforced:

  • if the new scale position is Left or Right, the scale orientation will become Qt::Vertical;
  • if the new scale position is Bottom or Top the scale orientation will become Qt::Horizontal;
  • if the new scale position is QwtSlider::NoScale, the scale orientation will not change.
void QwtSlider::setThumbLength ( int  thumbLength)

Set the slider's thumb length.

Parameters:
thumbLengthnew length
void QwtSlider::setThumbWidth ( int  w)

Change the width of the thumb.

Parameters:
wnew width
QSize QwtSlider::sizeHint ( ) const
virtual
int QwtSlider::thumbLength ( ) const
Returns:
the thumb length.
int QwtSlider::thumbWidth ( ) const
Returns:
the thumb width.
int QwtSlider::xyPosition ( double  value) const
protected

Find the x/y position for a given value v

Parameters:
valueValue
qwt5-5.2.3/doc/html/class_qwt_linear_color_map__inherit__graph.map0000644000175000017500000000026112052741155024756 0ustar gudjongudjon qwt5-5.2.3/doc/html/tab_s.png0000644000175000017500000000027012052741134015264 0ustar gudjongudjon‰PNG  IHDR$ÇÇ[IDATxíÝ ‚@@ŃŁ?Q…¤"š˘%¦I‘—Šf–6[´HĂäQ<Ţâőţ]ždr Í’s?O=Ńńńw'ĚF‡Ž íđö-~rĂŤ[śčŠ­ě¬m֬ݯнŠŐF)Yş% §`nĚ,9B ™’©!ŃŚ\ý<Ĺ#üîî•IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_curve_fitter__inherit__graph.map0000644000175000017500000000026112052741153024150 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_0x74.html0000644000175000017500000003063712052741151017157 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- t -

qwt5-5.2.3/doc/html/functions_func_0x79.html0000644000175000017500000001333412052741152020173 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- y -

qwt5-5.2.3/doc/html/inherit_graph_23.png0000644000175000017500000000340012052741162017322 0ustar gudjongudjon‰PNG  IHDRŐ%Z°;ÍbKGD˙˙˙ ˝§“µIDATxśíśLRkÇßăŐ`µĐ )D%T[Z+bŚ̜—ŠÚ]ĺćĘ»jIµúĂe»v—ÍBMç–e[ĂŤňVwZ[­ Öµš^W]Ă~Ů/[j(ďý{Ů íTž“˝źż8ĎyŢçyźď÷Ľ‡AAad'€řˇAúC Ň‚LţdŽ?čďďß¶m›Ăá +ę “ÉöďßOv˙1™úR\\śśśě;Äđ÷żz˝~ăĆŤJĄ’ŚÄ(ÄŰ·oďŢ˝KťťIÓ—ććf±X¬×ë}–đŃNř·LĽý&; &A_6lŘŕgAë?™ ý!ČéA&H2AúCIúëěěĚÎÎćp8S¦LáóůůůůďŢ˝#>ĄŁŁN§{_`8X,Öúőë»»»ń>G ŃhK–,ąq㆟q„/BŘÚúş´ôŞÝŢ÷U~ČíK„˘?łŮĽtéRa0śNçĹ‹ź>}*‹Ç-ŐŤF˙óđáC:ťž››TľÝÝÝ[·nU(fł ‰.)ž<±=Ú””ô[ffyYŮőŞŞ›ßt¸ŔˇB_‚⨯Ż÷łŚÉĘ•+U*Ţâńx$Éž={V­ZUZZ !´X,€’’ˇŐjĹŹh2™đuBďÝ»Çb± „fłŮ÷–ÓéÜĽy3“Éś9sćĽâç"¨TŞ-[¶řEpą\999L&“Íföôôř"ôôô8ć<<{f?|řĎE‹Š¸\u\Ü^.Wí}QXŘ0îŚ}!ßK_gB¨T*•J%ŢôçźËĺ2 »wďĆ1 S«ŐW®\‘Ëĺ·nÝňĂ`0ŚF#Ŕh4.\¸ĐW‹ĹÂźkµZ+**/^ě7ĐöíŰ].×ăÇŹoŢĽŮŘبŐj?‘‘ŃŇŇâgT©T‡Ăl6 †łgĎšL&‚źăőëŢăÇŻI$GRSŹÔÔl¶>€Ű=ŕé5ű2.AëĎ«ń¸¸8?»@ °Űíééé&“ixxŘd2ĺĺĺÝąsgddÄh4ĘĺrĽóĐĐoť! űűűkkkýÎź?_^^>cĆŚąsç:t¨®®Ž +6›íw5»Ýîşş:ŤF-‰t:Ýčś  ›zúôí5kĘSR~ݍ¸ŢŮŮp»GŹ0ÁPł/ă2Ćó7b˘ŁŁ1 {óćŤ@ ŔŰ- ‡ĂY°`ATTTKK‹ÉdŇét:ť®­­Íh4VWWăťi4ń*Ífłř|ľ÷P tuuřŰív.—‹·X­VŹÇ3kÖ,ďáňĺË–™vđŕ†A‡‡‰kµŐÖŢ0lČ„…M%v f_Ć%hý1 ©TZYYYVVćµh4…BQYY™••HOOohh°ŮlóćÍKKK»pá‚ĹbIIIyńâEŕŁp8Ŕ«WŻĽzůňĄźĽühllLJJÂ[Řl6 ««+66ĐÔÔôńăG‘H`>ü“‘ńłŃŘ!†a`xŘó9ĎÔTˇRą$Ŕ°ˇŃÜÜ\Rň‘؇š}— ő¨ŞŞJMM…îرÇăą\.ˇPuîÜ9€\.ĎÎΖÉd†ĄĄĄíÜąsőęŐ†ŤŚŚ¸Ýî@† Ńh …B­Vź:uŞŻŻŻ¨¨hÓ¦McFčííŐëőgÎśimmő‹°víÚ‚‚‚ęęj§Óąk×®ŇŇR_„ↆŢhµąîë×ŰëëďŤO „ŹÇ˙łÇcff&RTČ <…pü'é}wVGĘţËüůóďßżďp8¤Ridd¤V«ÍËËăńx'NśČd˛ˇˇ!‰DX±bĹű÷kŚ9sć0™ĚÇvňäÉiÓ¦y/Vą\ľoß>|ßJ…ËĺÖÖÖ^ľ|9>>~t„đđđřřx©Tš““łnÝş`s Ó#23ëę~}ô¨¸¬ě—eˆ…‡˙†7eútŇ!ÜçŹÉŔŔ@[[[hçR ‚yxţÜ~ěŘŐääb.WÍçɧÎţËPŞ/Ł÷_Bůţ:ťžřmż†¨ŔěŮ3 Ň ŇJá÷(…"L‚ľtvvú=žţdWł˝˝}úôé$ĺF-ÄbńÄnÍ1™ú˘ŃhđĄ}ň˙ÄÖ2AúC Ň‚Lţdň/‰óFId©IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_legend.html0000644000175000017500000007323412052741140017701 0ustar gudjongudjon Qwt User's Guide: QwtLegend Class Reference

#include <qwt_legend.h>

List of all members.

Public Types

enum  LegendDisplayPolicy {
  NoIdentifier = 0,
  FixedIdentifier = 1,
  AutoIdentifier = 2
}
enum  LegendItemMode {
  ReadOnlyItem,
  ClickableItem,
  CheckableItem
}

Public Member Functions

 QwtLegend (QWidget *parent=NULL)
virtual ~QwtLegend ()
void clear ()
QWidget * contentsWidget ()
const QWidget * contentsWidget () const
LegendDisplayPolicy displayPolicy () const
virtual bool eventFilter (QObject *, QEvent *)
QWidget * find (const QwtLegendItemManager *) const
QwtLegendItemManagerfind (const QWidget *) const
virtual int heightForWidth (int w) const
QScrollBar * horizontalScrollBar () const
int identifierMode () const
void insert (const QwtLegendItemManager *, QWidget *)
bool isEmpty () const
uint itemCount () const
LegendItemMode itemMode () const
virtual QList< QWidget * > legendItems () const
void remove (const QwtLegendItemManager *)
void setDisplayPolicy (LegendDisplayPolicy policy, int mode)
void setItemMode (LegendItemMode)
virtual QSize sizeHint () const
QScrollBar * verticalScrollBar () const

Protected Member Functions

virtual void layoutContents ()
virtual void resizeEvent (QResizeEvent *)

Detailed Description

The legend widget.

The QwtLegend widget is a tabular arrangement of legend items. Legend items might be any type of widget, but in general they will be a QwtLegendItem.

See also:
QwtLegendItem, QwtLegendItemManager QwtPlot

Member Enumeration Documentation

Display policy.

  • NoIdentifier
    The client code is responsible how to display of each legend item. The Qwt library will not interfere.
  • AutoIdentifier
    Each legend item is displayed with a mode that is a bitwise or of
    • QwtLegendItem::ShowLine (if its curve is drawn with a line) and
    • QwtLegendItem::ShowSymbol (if its curve is drawn with symbols) and
    • QwtLegendItem::ShowText (if the has a title).

Default is AutoIdentifier.

See also:
setDisplayPolicy(), displayPolicy(), QwtLegendItem::IdentifierMode

Interaction mode for the legend items.

  • ReadOnlyItem
    The legend item is not interactive, like a label
  • ClickableItem
    The legend item is clickable, like a push button
  • CheckableItem
    The legend item is checkable, like a checkable button

Default is ReadOnlyItem.

See also:
setItemMode(), itemMode(), QwtLegendItem::IdentifierMode QwtLegendItem::clicked(), QwtLegendItem::checked(), QwtPlot::legendClicked(), QwtPlot::legendChecked()

Constructor & Destructor Documentation

QwtLegend::QwtLegend ( QWidget *  parent = NULL)
explicit

Constructor

Parameters:
parentParent widget

Member Function Documentation

QWidget * QwtLegend::contentsWidget ( )

The contents widget is the only child of the viewport() and the parent widget of all legend items.

const QWidget * QwtLegend::contentsWidget ( ) const

The contents widget is the only child of the viewport() and the parent widget of all legend items.

QwtLegend::LegendDisplayPolicy QwtLegend::displayPolicy ( ) const
Returns:
the legend display policy. Default is LegendDisplayPolicy::Auto.
See also:
setDisplayPolicy(), LegendDisplayPolicy
bool QwtLegend::eventFilter ( QObject *  o,
QEvent *  e 
)
virtual

Filter layout related events of QwtLegend::contentsWidget().

Parameters:
oObject to be filtered
eEvent
QWidget * QwtLegend::find ( const QwtLegendItemManager plotItem) const

Find the widget that represents a plot item

Parameters:
plotItemPlot item
Returns:
Widget on the legend, or NULL
QwtLegendItemManager * QwtLegend::find ( const QWidget *  legendItem) const

Find the widget that represents a plot item

Parameters:
legendItemLegend item
Returns:
Widget on the legend, or NULL
int QwtLegend::heightForWidth ( int  width) const
virtual
Returns:
The preferred height, for the width w.
Parameters:
widthWidth
QScrollBar * QwtLegend::horizontalScrollBar ( ) const
Returns:
Horizontal scrollbar
See also:
verticalScrollBar()
int QwtLegend::identifierMode ( ) const
Returns:
the IdentifierMode to be used in combination with LegendDisplayPolicy::Fixed.

Default is ShowLine | ShowSymbol | ShowText.

void QwtLegend::insert ( const QwtLegendItemManager plotItem,
QWidget *  legendItem 
)

Insert a new item for a plot item

Parameters:
plotItemPlot item
legendItemNew legend item
Note:
The parent of item will be changed to QwtLegend::contentsWidget()
QwtLegend::LegendItemMode QwtLegend::itemMode ( ) const
See also:
LegendItemMode
void QwtLegend::layoutContents ( )
protectedvirtual

Adjust contents widget and item layout to the size of the viewport().

void QwtLegend::remove ( const QwtLegendItemManager plotItem)

Find the corresponding item for a plotItem and remove it from the item list.

Parameters:
plotItemPlot item
void QwtLegend::resizeEvent ( QResizeEvent *  e)
protectedvirtual

Resize event

Parameters:
eResize event
void QwtLegend::setDisplayPolicy ( LegendDisplayPolicy  policy,
int  mode 
)

Set the legend display policy to:

Parameters:
policyLegend display policy
modeIdentifier mode (or'd ShowLine, ShowSymbol, ShowText)
See also:
displayPolicy(), LegendDisplayPolicy
void QwtLegend::setItemMode ( LegendItemMode  mode)
See also:
LegendItemMode
QScrollBar * QwtLegend::verticalScrollBar ( ) const
Returns:
Vertical scrollbar
See also:
horizontalScrollBar()
qwt5-5.2.3/doc/html/inherit_graph_11.md50000644000175000017500000000004012052741151017213 0ustar gudjongudjon662dca3821a75d3a9122ab481e951e04qwt5-5.2.3/doc/html/qwt__legend__item_8h_source.html0000644000175000017500000004243412052741135022011 0ustar gudjongudjon Qwt User's Guide: qwt_legend_item.h Source File
Qwt User's Guide  5.2.3
qwt_legend_item.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_LEGEND_ITEM_H
13 #define QWT_LEGEND_ITEM_H
14 
15 #include "qwt_global.h"
16 #include "qwt_legend.h"
17 #include "qwt_text.h"
18 #include "qwt_text_label.h"
19 
20 class QPainter;
21 class QPen;
22 class QwtSymbol;
23 
35 class QWT_EXPORT QwtLegendItem: public QwtTextLabel
36 {
37  Q_OBJECT
38 public:
39 
48  {
49  NoIdentifier = 0,
50  ShowLine = 1,
51  ShowSymbol = 2,
52  ShowText = 4
53  };
54 
55  explicit QwtLegendItem(QWidget *parent = 0);
56  explicit QwtLegendItem(const QwtSymbol &, const QPen &,
57  const QwtText &, QWidget *parent = 0);
58  virtual ~QwtLegendItem();
59 
60  virtual void setText(const QwtText &);
61 
62  void setItemMode(QwtLegend::LegendItemMode);
63  QwtLegend::LegendItemMode itemMode() const;
64 
65  void setIdentifierMode(int);
66  int identifierMode() const;
67 
68  void setIdentifierWidth(int width);
69  int identifierWidth() const;
70 
71  void setSpacing(int spacing);
72  int spacing() const;
73 
74  void setSymbol(const QwtSymbol &);
75  const QwtSymbol& symbol() const;
76 
77  void setCurvePen(const QPen &);
78  const QPen& curvePen() const;
79 
80  virtual void drawIdentifier(QPainter *, const QRect &) const;
81  virtual void drawItem(QPainter *p, const QRect &) const;
82 
83  virtual QSize sizeHint() const;
84 
85  bool isChecked() const;
86 
87 public slots:
88  void setChecked(bool on);
89 
90 signals:
92  void clicked();
93 
95  void pressed();
96 
98  void released();
99 
101  void checked(bool);
102 
103 protected:
104  void setDown(bool);
105  bool isDown() const;
106 
107  virtual void paintEvent(QPaintEvent *);
108  virtual void mousePressEvent(QMouseEvent *);
109  virtual void mouseReleaseEvent(QMouseEvent *);
110  virtual void keyPressEvent(QKeyEvent *);
111  virtual void keyReleaseEvent(QKeyEvent *);
112 
113  virtual void drawText(QPainter *, const QRect &);
114 
115 private:
116  void init(const QwtText &);
117 
118  class PrivateData;
119  PrivateData *d_data;
120 };
121 
122 #endif // QWT_LEGEND_ITEM_H
qwt5-5.2.3/doc/html/class_qwt_plot_svg_item-members.html0000644000175000017500000004436212052741142022750 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotSvgItem Member List

This is the complete list of members for QwtPlotSvgItem, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotSvgItemvirtual
detach()QwtPlotIteminline
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const QwtPlotSvgItemvirtual
hide()QwtPlotItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
loadData(const QwtDoubleRect &, const QByteArray &)QwtPlotSvgItem
loadFile(const QwtDoubleRect &, const QString &fileName)QwtPlotSvgItem
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
QwtPlotSvgItem(const QString &title=QString::null)QwtPlotSvgItemexplicit
QwtPlotSvgItem(const QwtText &title)QwtPlotSvgItemexplicit
render(QPainter *painter, const QwtDoubleRect &viewBox, const QRect &rect) const QwtPlotSvgItemprotected
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotSvgItemvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
viewBox(const QwtDoubleRect &area) const QwtPlotSvgItemprotected
xAxis() const QwtPlotItem
yAxis() const QwtPlotItem
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
~QwtPlotSvgItem()QwtPlotSvgItemvirtual
qwt5-5.2.3/doc/html/inherit_graph_1.png0000644000175000017500000000264012052741161017242 0ustar gudjongudjon‰PNG  IHDR{%í!ŻbKGD˙˙˙ ˝§“UIDAThíšKHkÇż‘$ ’´I0>@qQl%*Ň.Ĺbş0‚,"–ę˘ř¨ŠĎB\d%˘…f!hA’EŔ`q#jpˇ 5ˇ8&XM|4ľâ3)*j=]Ě˝ĂÜ$ĆÚrç·:9ůćüĎ÷ç|“IEBş˙śălĂ9Î6śălĂcľp»ÝGGGŐMđńęŐ«ÖÖVfc>«čőú’’’ââbÖ N¶¶¶ććć<žyŢëôz=[-9Ô{$ąű8ŰpŽł ç8ŰpŽł ç8Űč¸Íf+//—Éd ..®ąąůääÄ˙%V«U(23† †ŔzđŻ…ýKhhhFFĆŇŇŇťŤywř7Äq‹ĹňâĹ ‚ ¦§§ŹŹŹ ĂĘĘJZZÚť¦39;;Óëő …B«ŐĐĂť<<śŞOç©Řétz{ât:˝ĺ¨ŢúúúÄbqDD„N§»Ó(ź~Ţ{Ć].×ôôtcc#3‰aXSSÓčč¨R©śššBÍĚĚa4BFŁ1))‰Ţ­D"A TUU={ö,99Y§ÓŃĄvvvĚfó·oßńű÷ď].×ňňňäääŘŘاOźnÓ’ËĺŃŃŃtA·Ű­Ńh”JĄĎíH$ş1f‡ŢrˇýýýŻ_żÚl¶úúú>Ü׺¸ďŚŻ®®bvuuĺ‘7™L8Ž/--á8~uuUWW×ŢŢNÄőőuMMMkk+sľěv»H$:==µZťššJϵ1Źřââ"$$ÄfłQË \.÷ŻĹÜŁP(üňĺËĎź?˝gÜgŕSŽŞIP’$™gčďθT*Ĺ0lssÓ#ďp8d2YbbbXXŘüüüĚĚĚ›7o$‰Éd2Ť#¦Ńh...ž_*•Ŕđđ°H$*,,­V+‰ŠŠŠŔjµňxĽËËË©©©ĐĐĐ?~Đűűű###ŻŻŻ}žzŠ×Ż_çççďíí­¬¬ČĺňŽŽ?ZמśśTVVćććRĂ;>>ît:•J%µ†nŚ|Ęůéí6|úă°¶¶VVV!âăă[ZZž?®R©ŔĺrńůüîînŘÚÚBő÷÷€ŰíNHHŔq~üHůr›–Ç}Çń‚‚‡Ă*•Š ¨¨(ťNGŐ§ŰŘŘ ‚ĂĂCoąvÜ›óós“ÉصÁĘźůäĽ ˇP’’ň§Ş1Üď*lĂ9Î6śălĂ9Î6śălĂ9Î6>ţ=Ń××Ç~AÉ‚Ź,óáś$IÇYo,IKKóřôź˙dq°wgÎq¶ágÎq¶ůäÎÇŹxi?IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_29.md50000644000175000017500000000004012052741151017224 0ustar gudjongudjon36141b6d42bc78cd00a42a5b65de3266qwt5-5.2.3/doc/html/form_1.png0000644000175000017500000000265012052741146015366 0ustar gudjongudjon‰PNG  IHDRh =˙0PLTEZ? tRNS.H]o€Źž¬ąĹŇÝéô˙Şg°ďIDATxí]ŮŽä6ŁnËç˙˙mHĘžnOďöL‚’,Öú°T‹Uő 6üŮđ/ěXJ€˙ÜÎđűěĐQ3ĘÇ˙Ç/řŐ»Ő6u~Wxż[Řßć@XÖg_ ~?ĐzČ•8•^Ű—‚> ĄľŘź[&u÷x’TŔĎvnĄ·ď‘m}1Ö)wšŰŕíłU(Ä˵ËGxÝĆ÷2p€—]¬˙§žx¬Ă‰äÇBo‚nkšu7v§ýůŮft‰źyšż`BžNĂ/Šŕľu ŔÓxżçŕ¶ú{Á]ü ď=˝Ĺ,­]Eř ÉcĂ»ËU´©ë©z™”Ł“cďŇĺp”F’ßr2łJ\E¬ź¨)şnމâ•%-ą!đ;]9đ´¬?“—©’ i:V©ĐDń+źFÉÖ˘¤v§ ˛Řyőp[I‚%ĹB<ž=-)SV§*ţ\2UwŐʬţawÝMŠ4‘lú°R°gŞh2łšAň˙ŚlŔˇx Řr’\˘Ý aÚvý•˘XCv¤­l-K˝Q~+B GĆĆý8äoUů…>‰Łs—92ťĎčv„şđ˛ÚÍ!wXHťŻ–xř´›ŹFć/< gŠZŔmĄ4´H·¦BO><Ő«ąű”hÍŐxíÎ5ó·ŹČ‘®/‹ŘĎ~•ŃšpP0îńŮr›ŚŕřWd‚#m(‘&óž1+{•öX@aŁńˇ¨•=*.6ť«ťl=ń.O1-"nĘ<Ůd ”mGÄ:HLçčX:} ç3!RŁ·Ňčľt0„Čę°jźŇa–¤ŽĎĆbăH±ńžE¸ăŃďćĆnĚĎžŽÓ)4źŤ…5•Ç‘®„!˘?ˢáđš6ôZYLpŰ@_‘ň‹Ş-?—łűýhER”:ŤŃúQG ˛¶̤®ěÝeë+¬ČÓ٤édSqŔ}hSCz„›täcTÍ>,zÇAeÚ]† 9ňáżęgDˇ€†[ôď“§#©$´‚8kĹ8Š+d>"jĂ«Yř©uĺ| ŕ± t»Â0#ř-âĘŞÚ»TXRĆMݎńJ}ÝŹ3}TEЧ•}ÇéşÂ‰’e"”¦IůŹebžv >Źą©Ĺ¦vVČFB”·mÝqŔv‰ĘĂ€=Jś„aŔc­jŽrk#Óďž*Â]…+Ó:»ËhÂtaŞ5çKD…soBkn¦Ó«e-§>"Ł}»潬ál9T@OĘĄHu;c‰('FüIOęĚIĹi$ΦMá…sP­Bdę3i XęŹ8-µNşËüNT¤EŐv|«YČVtDöVÖÓ‡ ¶¶°źś"në:­•»§ŁÖŘ55Đ–—:"€ľ-ű<)ž!âŮpb;{ť§YN%± ŔóZ5®ť–+2ťĺ>“ĚŃĂL°U«$;SşTäP”ʉu«#ş®˛›bUxYE’WX~Ź?Ť6'^pĄsrŔç=[?T&őQůÄeĽá­ ¶$Đ4Q? XÜĐĹ!ŕ¶„@ eęgOőj´k© ĺmŚĄ+îSJ«E<–Ú¦ęóň# ągŤÎvFĆJŚrźË.±ă%rĹ—‚c´˘ŢÜAbQG€×}2ľ˝ăY‹đ;m§đ*řö] ~¶óÖ_[ĽÝN%ü^[Í>ýâˇjÄŔ/ß?n)đ?Ţę—Dö Ë#Ż>§üIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_drag_rect_machine-members.html0000644000175000017500000001321112052741141025034 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPickerDragRectMachine Member List

This is the complete list of members for QwtPickerDragRectMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)QwtPickerDragRectMachinevirtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/class_qwt_data__inherit__graph.md50000644000175000017500000000004012052741137022265 0ustar gudjongudjon4b43548f93264eb12b3c063e6391b555qwt5-5.2.3/doc/html/class_qwt_plot_panner__inherit__graph.map0000644000175000017500000000024712052741157024000 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_scale_widget-members.html0000644000175000017500000003614412052741143022527 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleWidget Member List

This is the complete list of members for QwtScaleWidget, including all inherited members.

alignment() const QwtScaleWidget
colorBarInterval() const (defined in QwtScaleWidget)QwtScaleWidget
colorBarRect(const QRect &) const (defined in QwtScaleWidget)QwtScaleWidget
colorBarWidth() const (defined in QwtScaleWidget)QwtScaleWidget
colorMap() const (defined in QwtScaleWidget)QwtScaleWidget
dimForLength(int length, const QFont &scaleFont) const QwtScaleWidget
draw(QPainter *p) const QwtScaleWidgetprotected
drawColorBar(QPainter *painter, const QRect &rect) const (defined in QwtScaleWidget)QwtScaleWidget
drawTitle(QPainter *painter, QwtScaleDraw::Alignment, const QRect &rect) const QwtScaleWidget
endBorderDist() const QwtScaleWidget
getBorderDistHint(int &start, int &end) const QwtScaleWidget
getMinBorderDist(int &start, int &end) const QwtScaleWidget
isColorBarEnabled() const (defined in QwtScaleWidget)QwtScaleWidget
layoutScale(bool update=true)QwtScaleWidgetprotected
margin() const QwtScaleWidget
minimumSizeHint() const QwtScaleWidgetvirtual
paintEvent(QPaintEvent *e)QwtScaleWidgetprotectedvirtual
penWidth() const QwtScaleWidget
QwtScaleWidget(QWidget *parent=NULL)QwtScaleWidgetexplicit
QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent=NULL)QwtScaleWidgetexplicit
resizeEvent(QResizeEvent *e)QwtScaleWidgetprotectedvirtual
scaleChange()QwtScaleWidgetprotected
scaleDivChanged()QwtScaleWidgetsignal
scaleDraw() const QwtScaleWidget
scaleDraw()QwtScaleWidget
setAlignment(QwtScaleDraw::Alignment)QwtScaleWidget
setBorderDist(int start, int end)QwtScaleWidget
setColorBarEnabled(bool) (defined in QwtScaleWidget)QwtScaleWidget
setColorBarWidth(int) (defined in QwtScaleWidget)QwtScaleWidget
setColorMap(const QwtDoubleInterval &, const QwtColorMap &) (defined in QwtScaleWidget)QwtScaleWidget
setLabelAlignment(Qt::Alignment)QwtScaleWidget
setLabelRotation(double rotation)QwtScaleWidget
setMargin(int)QwtScaleWidget
setMinBorderDist(int start, int end)QwtScaleWidget
setPenWidth(int)QwtScaleWidget
setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd)QwtScaleWidget
setScaleDraw(QwtScaleDraw *)QwtScaleWidget
setSpacing(int td)QwtScaleWidget
setTitle(const QString &title)QwtScaleWidget
setTitle(const QwtText &title)QwtScaleWidget
sizeHint() const QwtScaleWidgetvirtual
spacing() const QwtScaleWidget
startBorderDist() const QwtScaleWidget
title() const QwtScaleWidget
titleHeightForWidth(int width) const QwtScaleWidget
~QwtScaleWidget()QwtScaleWidgetvirtual
qwt5-5.2.3/doc/html/qwt__plot__scaleitem_8h_source.html0000644000175000017500000003466512052741135022550 0ustar gudjongudjon Qwt User's Guide: qwt_plot_scaleitem.h Source File
Qwt User's Guide  5.2.3
qwt_plot_scaleitem.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_SCALE_ITEM_H
11 #define QWT_PLOT_SCALE_ITEM_H
12 
13 #include "qwt_global.h"
14 #include "qwt_plot_item.h"
15 #include "qwt_scale_draw.h"
16 
17 #if QT_VERSION < 0x040000
18 class QColorGroup;
19 #else
20 class QPalette;
21 #endif
22 
51 class QWT_EXPORT QwtPlotScaleItem: public QwtPlotItem
52 {
53 public:
54  explicit QwtPlotScaleItem(
55  QwtScaleDraw::Alignment = QwtScaleDraw::BottomScale,
56  const double pos = 0.0);
57  virtual ~QwtPlotScaleItem();
58 
59  virtual int rtti() const;
60 
61  void setScaleDiv(const QwtScaleDiv& );
62  const QwtScaleDiv& scaleDiv() const;
63 
64  void setScaleDivFromAxis(bool on);
65  bool isScaleDivFromAxis() const;
66 
67 #if QT_VERSION < 0x040000
68  void setColorGroup(const QColorGroup &);
69  QColorGroup colorGroup() const;
70 #else
71  void setPalette(const QPalette &);
72  QPalette palette() const;
73 #endif
74 
75  void setFont(const QFont&);
76  QFont font() const;
77 
78  void setScaleDraw(QwtScaleDraw *);
79 
80  const QwtScaleDraw *scaleDraw() const;
81  QwtScaleDraw *scaleDraw();
82 
83  void setPosition(double pos);
84  double position() const;
85 
86  void setBorderDistance(int numPixels);
87  int borderDistance() const;
88 
89  void setAlignment(QwtScaleDraw::Alignment);
90 
91  virtual void draw(QPainter *p,
92  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
93  const QRect &rect) const;
94 
95  virtual void updateScaleDiv(const QwtScaleDiv&,
96  const QwtScaleDiv&);
97 
98 private:
99  void updateBorders();
100 
101  class PrivateData;
102  PrivateData *d_data;
103 };
104 
105 #endif
qwt5-5.2.3/doc/html/class_qwt_color_map__inherit__graph.map0000644000175000017500000000054412052741153023426 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_analog_clock__inherit__graph.map0000644000175000017500000000074112052741152024065 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_11.map0000644000175000017500000000116112052741162017312 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_simple_compass_rose-members.html0000644000175000017500000001540512052741143024140 0ustar gudjongudjon Qwt User's Guide: Member List
QwtSimpleCompassRose Member List

This is the complete list of members for QwtSimpleCompassRose, including all inherited members.

draw(QPainter *, const QPoint &center, int radius, double north, QPalette::ColorGroup=QPalette::Active) const QwtSimpleCompassRosevirtual
drawRose(QPainter *, const QPalette &, const QPoint &center, int radius, double origin, double width, int numThorns, int numThornLevels, double shrinkFactor)QwtSimpleCompassRosestatic
numThornLevels() const QwtSimpleCompassRose
numThorns() const QwtSimpleCompassRose
palette() const QwtCompassRoseinline
QwtSimpleCompassRose(int numThorns=8, int numThornLevels=-1)QwtSimpleCompassRose
setNumThornLevels(int count)QwtSimpleCompassRose
setNumThorns(int count)QwtSimpleCompassRose
setPalette(const QPalette &p)QwtCompassRoseinlinevirtual
setShrinkFactor(double factor) (defined in QwtSimpleCompassRose)QwtSimpleCompassRoseinline
setWidth(double w)QwtSimpleCompassRose
shrinkFactor() const (defined in QwtSimpleCompassRose)QwtSimpleCompassRoseinline
width() const QwtSimpleCompassRoseinline
~QwtCompassRose() (defined in QwtCompassRose)QwtCompassRoseinlinevirtual
qwt5-5.2.3/doc/html/functions_0x65.html0000644000175000017500000001740512052741151017155 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- e -

qwt5-5.2.3/doc/html/class_qwt_plot_canvas.html0000644000175000017500000005363512052741141020760 0ustar gudjongudjon Qwt User's Guide: QwtPlotCanvas Class Reference

#include <qwt_plot_canvas.h>

List of all members.

Public Types

enum  FocusIndicator {
  NoFocusIndicator,
  CanvasFocusIndicator,
  ItemFocusIndicator
}
enum  PaintAttribute {
  PaintCached = 1,
  PaintPacked = 2
}

Public Member Functions

 QwtPlotCanvas (QwtPlot *)
virtual ~QwtPlotCanvas ()
FocusIndicator focusIndicator () const
void invalidatePaintCache ()
QPixmap * paintCache ()
const QPixmap * paintCache () const
QwtPlotplot ()
const QwtPlotplot () const
void replot ()
void setFocusIndicator (FocusIndicator)
void setPaintAttribute (PaintAttribute, bool on=true)
bool testPaintAttribute (PaintAttribute) const

Protected Member Functions

void drawCanvas (QPainter *painter=NULL)
virtual void drawContents (QPainter *)
virtual void drawFocusIndicator (QPainter *)
virtual void hideEvent (QHideEvent *)
virtual void paintEvent (QPaintEvent *)

Detailed Description

Canvas of a QwtPlot.

See also:
QwtPlot

Member Enumeration Documentation

Focus indicator.

  • NoFocusIndicator
    Don't paint a focus indicator
  • CanvasFocusIndicator
    The focus is related to the complete canvas. Paint the focus indicator using paintFocus()
  • ItemFocusIndicator
    The focus is related to an item (curve, point, ...) on the canvas. It is up to the application to display a focus indication using f.e. highlighting.
See also:
setFocusIndicator(), focusIndicator(), paintFocus()

Paint attributes.

  • PaintCached
    Paint double buffered and reuse the content of the pixmap buffer for some spontaneous repaints that happen when a plot gets unhidden, deiconified or changes the focus. Disabling the cache will improve the performance for incremental paints (using QwtPlotCurve::draw).
  • PaintPacked
    Suppress system background repaints and paint it together with the canvas contents. Painting packed might avoid flickering for expensive repaints, when there is a notable gap between painting the background and the plot contents.

The default setting enables PaintCached and PaintPacked

See also:
setPaintAttribute(), testPaintAttribute(), paintCache()

Member Function Documentation

void QwtPlotCanvas::drawCanvas ( QPainter *  painter = NULL)
protected

Draw the the canvas

Paints all plot items to the contentsRect(), using QwtPlot::drawCanvas and updates the paint cache.

Parameters:
painterPainter
See also:
QwtPlot::drawCanvas(), setPaintAttributes(), testPaintAttributes()
void QwtPlotCanvas::drawContents ( QPainter *  painter)
protectedvirtual

Redraw the canvas, and focus rect

Parameters:
painterPainter
void QwtPlotCanvas::drawFocusIndicator ( QPainter *  painter)
protectedvirtual

Draw the focus indication

Parameters:
painterPainter
QwtPlotCanvas::FocusIndicator QwtPlotCanvas::focusIndicator ( ) const
Returns:
Focus indicator
See also:
FocusIndicator, setFocusIndicator()
void QwtPlotCanvas::hideEvent ( QHideEvent *  event)
protectedvirtual

Hide event

Parameters:
eventHide event
void QwtPlotCanvas::paintEvent ( QPaintEvent *  event)
protectedvirtual

Paint event

Parameters:
eventPaint event
void QwtPlotCanvas::replot ( )

Invalidate the paint cache and repaint the canvas

See also:
invalidatePaintCache()
void QwtPlotCanvas::setFocusIndicator ( FocusIndicator  focusIndicator)

Set the focus indicator

See also:
FocusIndicator, focusIndicator()
void QwtPlotCanvas::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Changing the paint attributes.

Parameters:
attributePaint attribute
onOn/Off

The default setting enables PaintCached and PaintPacked

See also:
testPaintAttribute(), drawCanvas(), drawContents(), paintCache()
bool QwtPlotCanvas::testPaintAttribute ( PaintAttribute  attribute) const

Test wether a paint attribute is enabled

Parameters:
attributePaint attribute
Returns:
true if the attribute is enabled
See also:
setPaintAttribute()
qwt5-5.2.3/doc/html/ftv2folderclosed.png0000644000175000017500000000115012052741134017441 0ustar gudjongudjon‰PNG  IHDRÚ}\/IDATxí]MOÔ@~ÚúuŘlp]öż#›Ĺ]PYEC\9ůĽyŃß`ÖÄ˙ŕ˙ŔÉxóâ˘C &=qĐÄŤŁ—vZçťv¶3m؇vžLűNç}Ţ÷}Ţť˝ZA@n° OäNp ’xóţK°ńń€xÜj”°8sŃ€“ “€śŹ_Ľ[Âíć§ďD'‚•yye+řĽű 7#rNźlďük* ľ0Ь_d«_(ŕńĂ–±ŕôz=ńxőv§÷h©‰zą€šŘP-äó䍒̪uýĽ$»\DăJc—B4ŻăÝÖ.:ŁĎŹ-ŃĎß}µŠLEíşţ #—űáşŔĎgN;BŠ€6ďýń䬜…ö@’Đĺńp&™h>p9¤™EEά¨ÎĘ‘" uĄťn€$R"?{ą<…ë…%PNtâ$‰ß¶±úá+^<é"§2 ŤŞDq”q´\¬«Ň™a–Ś‘©A˙€"Ôµ ™ęźčPŁ}#Eŕz{ű.8i îpłę(ADwD¦E<ę¬cE¦$ HdĘÄ ”Ť.:Ů GŽ-`ŚL‚ýľ'˘‰Ä<¤CIŞ˝;ŮÇTZd±i};>čôß‚z×;K×§8t ¤Ž q”:uv˙v•Ý›¬˛ŮvEân{„M·FXgĽĚfZÖť¨°ą‰*›ßĚß©±ů©:›j–YqčÜë#3çĎSřWř˙˙Ńr'ř Ôůů‚ ©ˇIEND®B`‚qwt5-5.2.3/doc/html/functions_func_0x77.html0000644000175000017500000001710112052741152020165 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- w -

qwt5-5.2.3/doc/html/class_qwt_picker_drag_point_machine.html0000644000175000017500000001733312052741164023616 0ustar gudjongudjon Qwt User's Guide: QwtPickerDragPointMachine Class Reference
QwtPickerDragPointMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerDragPointMachine:

List of all members.

Public Member Functions

virtual CommandList transition (const QwtEventPattern &, const QEvent *)
- Public Member Functions inherited from QwtPickerMachine
virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const

Additional Inherited Members

- Public Types inherited from QwtPickerMachine
enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList
- Protected Member Functions inherited from QwtPickerMachine
 QwtPickerMachine ()

Detailed Description

A state machine for point selections.

Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection, releasing QwtEventPattern::MouseSelect1 or a second press of QwtEventPattern::KeySelect1 terminates it.

qwt5-5.2.3/doc/html/inherit_graph_7.map0000644000175000017500000000116312052741161017240 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_c_pointer_data__inherit__graph.map0000644000175000017500000000026412052741153024425 0ustar gudjongudjon qwt5-5.2.3/doc/html/dir_2ff4213617fffae17c49a9829be91ab6_dep.md50000644000175000017500000000004012052741143022232 0ustar gudjongudjonf990a713ec421f1aa2d86f2ec0eccb23qwt5-5.2.3/doc/html/class_qwt_raster_data-members.html0000644000175000017500000001561712052741142022367 0ustar gudjongudjon Qwt User's Guide: Member List
QwtRasterData Member List

This is the complete list of members for QwtRasterData, including all inherited members.

boundingRect() const QwtRasterData
ConrecAttribute enum nameQwtRasterData
contourLines(const QwtDoubleRect &rect, const QSize &raster, const QList< double > &levels, int flags) const QwtRasterDatavirtual
ContourLines typedef (defined in QwtRasterData)QwtRasterData
copy() const =0QwtRasterDatapure virtual
discardRaster()QwtRasterDatavirtual
IgnoreAllVerticesOnLevel enum value (defined in QwtRasterData)QwtRasterData
IgnoreOutOfRange enum value (defined in QwtRasterData)QwtRasterData
initRaster(const QwtDoubleRect &, const QSize &raster)QwtRasterDatavirtual
QwtRasterData()QwtRasterData
QwtRasterData(const QwtDoubleRect &)QwtRasterData
range() const =0QwtRasterDatapure virtual
rasterHint(const QwtDoubleRect &) const QwtRasterDatavirtual
setBoundingRect(const QwtDoubleRect &)QwtRasterDatavirtual
value(double x, double y) const =0QwtRasterDatapure virtual
~QwtRasterData()QwtRasterDatavirtual
qwt5-5.2.3/doc/html/class_qwt_legend_item_manager__inherit__graph.map0000644000175000017500000000235412052741155025424 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_picker__inherit__graph.png0000644000175000017500000001356212052741157024005 0ustar gudjongudjon‰PNG  IHDR}AäjbKGD˙˙˙ ˝§“'IDATxśíť{TWţŔď@^ZA‚ V´Ô>ÖĄÖ˘č""uŞ,« ş«ń,«ía%ű˛Úő´ěş=u7>Ŕúč9X\Ů…$"V[uUÝZ ä'ĂAÂ+É$™ßł›N“B\ÇŢĎńxfnć~ď7źLn&CfľA1áxŔNŕG ňäČ;Ô•ţţţ””ŤF+›gĚĚĚ+VXV1ęńLAAÁ–-[`$ö,sëÖ­đđđ‚‚K Ăv#ęĂ·°yóf«4żĂy‡ňäČ;\ô®T*“’’X,ÖěŮłÓÓÓ{{{w©««ăp8äfD"q-ÇÁů|ľ@ hkks¦#ą01¸â]ˇPĽňĘ+<ݤ¤¤§§G*•>|ř0<<|TőŘl6ńC ™ŚĽ¦¦†ĂáüîwżsWp·A}ň˙üç?­Zě˛víÚ´´4j‹ŮlŽČČČŽŽ>tčA­­­€O>ů„ µZM±ĽĽÜÖ;Aëׯ߷oąüřńcˇT*víÚ5mÚ´ŔŔŔ·ß~Çq…B1kÖ¬Ó§Oűúúúűűź;w®łłÓAđŰ·oóů|růŢ˝{aaa'(((77—ÚŃBggçH;vĚËËëüůóV Śj,!!!!!Ú2ćý]«Ő–””…Bj#†a"‘¨¸¸866öćÍ›äóçńxĄĄĄ€ŇŇŇ%K–( ҟϷyË–-2™Ś\–H$«V­zá…„BáĐĐPmmmYYYYYYvv6 ŁŁŁ¦¦F©TîŢ˝{Ďž=|>¤ŕjµúčŃŁK—.%W÷ďßż~ýúžžž?üđťwޡv¤F°;¨Z­®®®®ŻŻ ±J`¬űţŢĐĐ€aŽăVírąśËĺŢ»wŹËĺâ8žššşoß>Źg4ßzë­÷Ţ{Źú mÓhllěëëăp8uuuA¬^˝úĚ™3Édööö’Cܸqcٲed÷ÎÎN‚ jkk­¬YçrąqqqÍÍÍd„ű÷ďâ8ž““cŰ‘\p0hGG‡e«ĆşżŰ9Oŕ??? ĂT*Upp0µ˝µµ5 `ѢEŢŢŢ•••ĺĺĺůůůůůůrąĽ´´ôłĎ>ŁnĚfłu:ťmđŘŘX©Tšśś,—Ë/]ş¤V«q÷öö¦Ž`±Xä~íáaçý:RpŔíŰ·ßxă ĂfÎś9Ňt0(ą0jÎ0ćn</222++ËŇ"‹ł˛˛âăă1112™¬˝˝}Á‚kÖ¬‘H$­­­+W®t&89ŐH$’_ýęW^^^ţţţžžž–]o`` ˘˘€aŘXÓtuuýö·ż=uęTeeeffćH›93¨k PqĺĺĘÎÎÎËˉD<ĐétZ­vţüůUUU{÷îÄĆĆž8qbĺĘ•†­YłćřńăŃŃŃL&Ă0“É„ă¸ČqqquuuŮŮŮÉÉÉ6›-ŇÓÓ»şş:::¶nÝzäČ»ť ţß78ˇŃh:d2™úúú,- Î:\ńľpáÂďľűNŁŃDFFN™2%//o÷îÝäÇ=ŕŐW_Őëő€¨¨¨ŘŘXŔŚ3ćĚ™ăëë«Ńhôz˝Őń»H$Lž**ŠëäÉ“FŁ1$$dáÂ…Ó¦M;xđ Ý”¨ÁGJŰĎĎďŔ‘‘‘aaa›6mš;w®@ °tś4i’%‚“Ž‹±~®ŽÄđđ°\.w­ď3ŹŽ#G‚Ăᄆ†ş+Ú3:?äČ;w8 ďp@Ţá`çüĚéÓ§'>ŹgĄRiu:ëß’jkką\.¤ÜĆ ĆáĚőô¤K¶@,SU»ří:·n5Lź.úŕ)ěD\„®óűůówČ˙ŤF3ě\\–Ţ ŁL&ôő ••=€ťŽ+ĐŇ{IIÝĐŕéé!“ÝťŽ+ĐŇ»TzÇÓÓ`4šżü˛fxŘ;Ł1C?ďú+WîŤ&rUŻ7^»vnJ.@?ďTéL*­„ŹkĐĎ»TZIýó¦ŃhľyłN«†’ ĐĚ»F3XVöĐdúÁ±#A—/×ŔJÉ5hćý‹/îÚ6QXHł©†fŢ%’ Âćsł™řöŰGŹ÷AIÉ5čä˝­­÷Îť&łŮÎ…ýžž/Úy+<µĐÉűĹ‹Ő#ÝLÁh4IĄtú5ćßéAäŧMźÎł¬ č9&ńß]gńâňrĚvş¤ é'On˙ĺ/iůă:Í3ĎČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňä㼏 őÍ ›äá1ĘĐ‘‘‘ăô6Ţël6oŢÜÜÜś‘‘á®§ôôsë֭ÇŹÓ›®+›9s揪¤ź[®Có;w8 ďp@ŢြĂa⼻±´µú›ăún\ýÍy&Č»{KËQ«ż…„„ŚT5č©fśß»l+WŘĹíĄĺ,Őß,ő®‚Đjµ;vě Ë·íßżźú¨ŮlޱcÇşu놇‡ ‚p\ NˇP8x.ă©‚ba"öw·—–łŞţf!--MŁŃ(Š’’’ÜÜÜóçĎ“íAĽůć›MMM.\ §ťQ+Á=1˙cśŻ›3ű»ŰKËQ«żQë»1ŚGŹ‘ÁżţúëĘĘJňŃÝ»w3™L˛ĘáD%8ÇĐf·”–łj·--·uëV>źO––#«>Y Î3Z­¶¸¸řůçź§n V«Ífó /Ľ@®®Zµęĺ—_čőzĄRůÓźţT,[¶$+Á‘źŇk×®mjj?¬÷¤™ďO´´ś@KK ązůň墢"“É”JĄ'Nś8räH]]p®Ü“f‚Žgž\i9 l6{Ó¦M{öěéęꪯŻ˙ýďo2™l6{ٲe;věHMMc)?÷ä ďă/-çĚ(§Nťb0óćÍ‹ŚŚÜ±cÇ믿N}ôŕÁ÷îÝ;wîpşüÜdśźNGÚ…¦Ąĺhóą:?ćŇrčü w8 ďp@ŢြĂy‡~ÇQVV¶nÝşńǡ Ź?ńz'żyO<&V_ď0čí­źŕˇ}||¶mŰ6Î t˝/sAA…HtníÚgĎ‹+Đu~?ţXiéľľ!Řą¸-˝wvöýőC@qq5ět\–Ţżř˘šýôÓwŢyÇ`0t:ťX,޸qŁ@ 8yň¤ÉdR©TżţőŻe2ŮkŻ˝f[i¬¸ÁűĐĐPuuµ@  6b&ľůć›ĺË—Ëĺr@MMÍäÉ“ďŢ˝ ¸{÷npppnn.ą“N™2…Ú·»»["‘Ěť;×j ±X<88››+‹żýöŰk×®Ť5BVV–V«ÍÍÍ=räČ•+WĘËËÉv‚ Äbq{{ű˙řG‹En©×ësrrŽ;v÷î]˛ôYwwwCCĂŮłg‚‚Ć)Í ó;YŰpÚ´iVíÓ§Oďéé ËÍÍ5™L555›6m’Édfłůîݻ˗/§nLî¶äňäÉ“CCCß}÷]« JJJţţ÷ż{{{{{{'''çääPk<ŤÁh4^»v-//ŹŚđᇒŠŮŮŮ_}őUaa!›Í&·ĽzőjQQŃsĎ=7eĘ”ť;wž:u*,,Ěh4îÜąÓŰŰ{üŇÜŕťĚŁŁŁcúôéÔö®®®©S§Îž=ŰËËëÁ555řĂ®_ż^___]]ťžžNÝÉd:ž…ÉRBäęôéÓ;;;ÇÁl6[",^Ľ R©pokk{ńĹ É—ŤĆh4nذÁę92 ·HnńNî\2™ĚroěÂÂÂźýěg2™lŐŞU€°°°ňňrŤFZZZÚŐŐµhŃ"˛€Ş“Lť:ĐŢŢNľşjµšlqňagg'ůÖĽ}ű6ŽăAAA ăăŹ?V*•iiiżřĹ/‚‚‚|||<<<Š‹‹ź{î9€N§ëëëÓëőn,hćžĎUˇPxőęŐěěěććfÁ088””T__OŢŻ;,,ěÂ… ‹/Ć0,44´¨¨héŇĄ Ă0łŮl4Úą_-L&3""";;»···ĄĄ%''gÝşucŤ°zőę'Nôőőµ´´=zÔl60 c2™óçĎŹŤŤ% —1™ĚČČČăÇŹ÷őőőööfffJ$’qč±{ĽĎš5ëäÉ“ýýýBˇpýúőWŻ^ݸqŁżżżT*ĽüňË8Ž/Y˛đŇK/ ““;źĎź1cF|||ż3ŁěŮłgҤIIII"‘(,,lË–-.DđôôLLL‰D111«Wݦ>š’’ŇŘŘxýúu@FF†ÉdJJJÚľ}»ŹŹOJJĘXť8f”ű-lٲŵóŔAĄRÍ™3ÇŐÜčĘG}äççWPPŕ`›'xž€ĹbýĄ; :?äČ;w8 ďp@ŢြĂa”ó3äŚ,çůN’śśěxŃď|ůňĺQ…3ńtwë23ĺqqAŃŃ3`çb‡W_}ŐńďôF?ůÚkŻą/·qřđU‚ îßם<™;W ëü.•V74Ь˘ -˝×Ö¶*•ť‹Aľ´–ŢĎźŻb2=±°°‚Ž·°§źwł™(,¬°>hkë­Şď_÷'úyݍhěěüţŻ,^UHčçÝ2É F™¬Ňd2;čňB3ď8n**şC­®čéţć›X)ąÍĽ—•=čď×Y52™TzJ>.C3ď2Y•§§§U#Ž›żř˘Z§Ăˇ¤ätň>tčA­­­€O>ů„ µZM·ĽĽśęť Ű·oóů|‚  …塞žž7ŢxĂ××÷ůçź˙ý÷©Ą‡:;;©CÇĹĹEFF »ÉvŰF…B1kÖ¬żüĺ/S§Nőóó;{öěţýű§L™âçç—››K†صk×´iÓß~űmÇÉ^ÇŽóňňR(,%$$$$$ض»¸żkµÚ’’ˇPHmÄ0L$ÇĆĆ’ĄXĘËËy<^ii) ´´tÉ’%§|>źÚW­V=ztéŇĄV˝ůć›Z­öţýű7nܸtéR^^žÝúÓźjkkĄR)“É´ŰńđáĂ#5¶¶¶vtt455 …ÂÄÄDÁĐŇŇ" ß˙}2”P(Ş­­-+++++ËÎÎ&®®®®ŻŻ qĹ íKáĚţŢĐĐ€aŽăVírąśËĺŢ»wŹËĺâ8žššşoß>Źg4ßzë­÷Ţ{ĎbMˇPPÓŕrąqqqÍÍÍÔý]§Óyxx(•J2¸T*ýÉO~B}7\ąrĹÇǧ¶¶ÖŇb·ăHŃ<< qwt5-5.2.3/doc/html/class_qwt_abstract_scale__inherit__graph.md50000644000175000017500000000004012052741136024325 0ustar gudjongudjon533080bf1c7e56b1ec58fac488961f3eqwt5-5.2.3/doc/html/plot.png0000644000175000017500000007447512052741151015173 0ustar gudjongudjon‰PNG  IHDR8,°Ťż IDATxśěťwXÉÇgA±¬'ŘĐCQQě* ę!ęp XďÔłŕ!Ч'X°Ü©€˘'¶“ĂbC ±TŠ`CŔFG%óűcĎübB6Ë&!›đ~2;ďě›É»™÷»3™%îßżŹ€­p”íPŔj` X T« `50P¬*€Őh*Ű:ĹÔÔc\ăˇC‡™™™QÇ.±ڱ™™™x˙pąÜ>}ú,_ľĽsçÎőąÄ)//˙ůçź“’’ľ|ů’žž.ckiii‘‘‘wďŢ-**Âëëë÷ěŮsҤI666A°łç{őę…š7ožŹŹŹ$1ĆUUUGމŤŤÍĘĘŞŞŞ200čßż˙?ü`jjZŰ÷EF)BČĂĂcţüů˛ż˛ÍôôtIťĎáČšÍ˙űďżqqqˇ;v°ósd?ők PUUuóćÍyóćĹÄÄ4nÜXŮî°Ó§O'$$HJ}č1ľxńââĹ‹ů|ľ µ7oŢĽyóćňĺË^^^?ýô“ĚÎ*Ť‚‚‚yóćeff —ś;w...nÁ‚sćĚQ˘o$dçWWW JČÎżr劧§§···Śíçćć^˝zUĆFę9őn "bđŕÁ›6m)‡Ż`‘ţ©ŞŞ ?pŕ@AAÁĺË—ÇŤ§\÷XĹ›7oBA\ĽxQƦ¶nÝĘçóMLL~ýő×Nť:}ůň%77wÓ¦MŹ=:xđ ŠTăęęę deeq8ś9sćŚ?^OO/##c۶m>ܲeKűö퇮\ťAv~—.]jě|Ů*@vęÝ@…ŇÔÔÔŐŐ­ńy+ĂĂĂŁyóćű÷ďź4i’··÷‡vîÜyńâޢ˘–-[Ž3ĆĂĂC[[!„1.))ٶm[\\\iiißľ}W®\9qâD$tkBüöp Bş}ňF‡»»;—Ë=räČ»wďLLL-Z4xđ`˛5Śń‡vďŢ}éŇĄ7oŢ4mÚtđŕÁ~~~ĆĆĆwďŢuuuE­[·nâĉd}‡¬¬¬îÝ»·Ć/‘ţńňň:pŕBčŮłgäą(ĽĹÇÄÄ=zôÉ“'ź>}266:t¨‡‡GłfÍBä{™;w.A'NśřđáCÇŽťťť§M›FŢ`Á—••íŰ·/..îĺË—Ť5ęŐ«×Üąs Dł7ř|~Ť4oŢ!ôţý{qç7n,鋲´´TÜ ň˝ÔĎđáĂĹ·"{đŕÁÎť;SSS‹‹‹uttĚĚĚ<<<úôéSăąž?Ž244ěÖ­[“&M‚044ť:uęóçĎ–––«WŻľtéŇľ}ű^ż~ݶm[źŃŁGן‰D˝ÚëĎÔÔ!4dČĐĐĐ+!Ňľ}űĽĽ<„‡‡ÇěŮłgĚ‘••%¨CDŻ^˝ÂĂõ´´*++]]]=z$8jddTPP€hTeeeíŁŻ_î………‚:\.7&&¦U«Vˇ’’—gĎž ·Đ˘E‹ăÇŹëééŤ1˘°°pÔ¨Q¤HzóćÍ#BkÖ¬™2eŠp  †‘ţ)))Íž=;==]pT[[»´´IžŁÂĎ›7ďúőëm۶=}ú´ČLŰ™3gČQ'""˘oßľä'Ű®]»ÜÜ\A›äIÓŇŇVMš4)++Cyxx.ŠĎTüŠźŮš2eĘăÇŹB 4î|2ą!Ó/ęë(,,LRÔYXX—§§§ÓôąaÆUUU‚Ţ644$< ‡Ă9yň¤‰‰ ŞÔ»Uă„„„^Bšš†…… ×yůňe@@ŔĺË—gĎž‘ťťÍĺrwîÜyáÂGGGÁÔ+B(222## WW×řřřMÍÚ‰Tęö”––_ąrĹËË‹ Oź>]ąr…<–››K„żżBBÂĆŤ ‚(,,Yžśś<{öěŹ?bŚ©Ż#ЍŹš>Ź3¦_ż~mÚ´±˛˛"KćĎźo``@Î, ±¤®Ô»9ŞSÜů!o"‘7"âââČďPOź>ĺóů999ˇľô P+¨Ű,Ť\Ő 6iĽ§ńÝwß J6nÜ(ř»˙ţÍš5{˙ţ}RR’™™ŮŤ7Bvvvµr˛ĽĽśĽÉ#ŐŰńăÇźź˙ţýŇťÇůň…fWÓtcţăŹ??~śËĺNž99ůŮłg˙üóϤI“ĺĺĺĺä;mÓ¦MďŢ˝ĄžTŇőUŰĎ´Fťżk×.Aˇpç“ÔxIŤ:AŘË×çúF}TTµbذaˇřřřgĎž5iŇäÜąsłgĎž3gŽđR…ŚŚŚ-[¶ĽyóćöíŰ"-w±Ďť;—””tçÎť+VĐoźľ‡</""˘¨¨(&&&:::33Sđ4pŕŔ¦M›qěŘ1Tűű~čëuKím~~ľ—————×_ýUVVÖ¬YłöíŰ“Ť4mÚ”ücüčŃŁ-[¶ÜąsgýúőAčččË Iß=zLöç† BÚÚÚÖÖÖR]ÍĎĎ÷ôôôôô¬ŃqççĚ™3wîÜŁGŹŠß÷#ťÁ?|ř088ô–FMš4‘ę 97óěŮł—/_ććć®[·ŽşľĄĄ%ĆřÚµk+W®LNNľ˙ţŮłgÉ…ÔÇĆĆFjś 6 cś’’^TTtúôé˙ý7++‹ YŢ ÉСCÉźťx¨‹3věXrű‰ß~ű-44477÷íŰ·äú‚¬¬,ŚńâĹ‹)äÎСCBdŔÔx}Őö3­2ö’’’V­ZEvţąsçČuŚäÍX$ů:˘Ž:á‘ŮŞ\|®o€˘’‚»»űĹ‹_ľ|9}úô |ůň… Ö­[/^Ľ!ôĂ?ÄÄÄĽ|ů2<<<<<!dhh(Ň‚ťťÝŃŁG ===ÉE˝ôۧÏ?ţxáÂ…WŻ^mŢĽyóćÍ!‚ :wîvěŘś9sD:?,,lĆŚÂ5ĹŻ#©QGÄřńă-,,8yIĘĹçúFýúÁo€°i¦ě”——˙ý÷ˇ   emÄΞú°á:Şź€˘Ş\ľ|!¤ĄĄ%¸á@mëHYŔ•š16ląÔĐÎÎNd† :Ŕu¤\` R>|řиqcssó… *ŰPUŕ:R"0G°ŁX T« `50P¬*€ŐŔ@°¨VŔjÔagŠ?˙ÚŻl”ĚÖ?„ ŞN€˘Py¶†üˇlŐť;wćÍ›—’’‚*++ ŚŹŹçrąÓ¦Móöö¦xÜ'5۶ţ˙ůoŻ!µňqWŚđp7·LĹRW“t´ĆrńB©%,ě:ąôEf]'Ď~Ăţđ§8!Çúr[C¤ú[rüV(uş×Ƹ´´tĘ”)EEE·oßFćäälܸ±¤¤ÄËËËĂĂĂŃѱ¶Í’·ţ„*P%¤ T Ś× „j{ëO.ßŔu@]žëÖ­#ź<†1®®®>}ú´ŻŻŻľľ~‡fÍš-—łź™‚7Q¨!u5IGk,/”Z®“KżQT`Öuěď7ú†r̬T=ä÷ ,węTQť>}úźţYľ|ů´iÓx<^~~ľťťŹÇărąˇÔÔÔůóç_˝zµ¶ÍŠ**‹6Ȧ˝\J"RQ~)ssPT€Ě0PTŻ_ż–Ë7pPwŠęĺË—Ű·o_·nťŕheeĄ¦¦¦––ůR[[»ĽĽ\ܰ—d„«‘źĆkPCÍeA#^Cý?n†±Ű—tT^^‘˙÷îTĺsoMbűŁMü_-âóW˙?kű?áĎÜ–ň˙đpµL˙ŚtJęŇźşě7Ií(Č«Ú~gŇüfu§¨\]]]\\FŹť““ăääÄăń mmm…ÇsźÄÄDš öęŐ‹tć¨e˛Ě érŃŠ‹Ě[EČŚ°˘|7RSPP Ë7p]RwŠęîÝ»K—.555µ··ŻŞŞ233300ĐŐŐ}üř1Y!##ĂÄ„á˝xXx×›ľ!L0łRżZş‹’6JAČ1FŤCNö~SÜ7°ÜQÂ~łłłťśśČUAAA™™™›6m*..öňňrww§żćŔ @Q,€˘B˛}×%J^2ďççghhhggGŢś8q˘\šeaŽFßŇ[fV*¬¨¤!Ç59ąô›‚ľĺŽ•ĽE°PT `¦¨T6ţYvXŁŃ7„ô–™(*Ɔr̬Ô@Q©  ¨@6ĽĚQ/Cä}VŮ~őPTŞ s4ú†Ţ2łRaE…ý©ŹCČ1FŤC•jŠ ` ¨ŠJő`aŽFßŇ[fV ¨BČ1łEUg¨˘Ů |dWT°ęPT,âľŐXŁŃ7„ô–™• +*i@Č1FŤC•jsT+đ4GfFč§3Ě[EČŚ˘>¤ş_ňTLQŃ„…9}CHo™Y)-˝-®Bş\ŘëOR!„Írů**š7źTPT ÓMŃŘ.hćIć-€˘dć¨Tćhô !˝efĄÂsT ¨†‡ĚQ© ¨VŠ ` ¨Tćhô !˝efĄÂŠJrŚQăEĄ€˘X(*€€˘R=XŁŃ7„ô–™•ŇŇ[ŚŠJb!„ÍrPT€˘Ů×yšŁ +Ű ^ŠŠô˘2 s4ú†Ţ2łRá9*ŘëOa¨qȢR @Q¬Ŕ@Q©,ĚŃčBzËĚ cC9fV ¨ę PT ˛+*XőČ (*Ő…9}CHo™Y)3˝ß VýI*„ŁY._EEs:_UE˛ý1B’ľE  ¨EĄz°0GŁoé-3+夷Ř#„ÂHúT“D`Ż?…ˇ†!÷•z5GĄ©läĆŤťţ‚ż ÝŘéoń“żp!ůRöÂîĺ3oědbŢ˝|&B4jş1:{9"Ë© k0wóg{×QvČ˙ ËŮ˝uÓuÝËg"Ś0ú?!ű#B]çĆÔ\.]'áě5ö§Ôżnîň§ţŕ”ĐuŇbéżÂrtc'“ł3ěşo?Í›»ü…ĎŽÔőĽő‡ń‚X« ó†‡›¸ąe*Îşš¤Ł5–‹J-aa×ÉĄß(*0ëş˙^~UTHĆ»”@Č1F Cî+"ý¦Ţ·ţÔs €şăëUä!ł™3'1kć¨Qď ć¨j L0F-' ĺŤ#Şćź72*Ąă' 䣖!GRŻć¨TLQ‰,µE(ť¸˛„±÷öw÷Řtôč±ďľófŇ(*@f@Q±űBPTcaŽFßŇ[fVJIoutŞ8_Ť5ŇŇüŤŚĘčřÉ9ƨ_Č EĄŔ tşv}»)öŢÄ’c¨÷îĘĘuM›.«ŞRź•´€ ŠJő`aŽFßŇ[fVJIo[·..,ÔFńů«óó›´lÉhš öú“×C×ŢŘéc§˙őеW·®Űáqh_ăÚ¶°wéް°ÎRk6Ó)»đçéË!ë/ü´vöI]í „A`W»kg7nľşuÝĆyQĂŚ„Mšë”®w?z9d}ŇÎÍó&\âÂżn¨ˇŁně\»wéŢŻű ţ%ďříČęĐ·9ýjőÖTPTŔśéÓÓÍfŕemv˘Ţ»oŢükţü±·nµV¶Ső—ëˇk߼ozä’Aŕ-‹ěßy”ŰjÎďîµjáÁłÖ?núQjÍ Ź(›Ţ˙&÷ĂhyűňÝž+ö:Ťů>uµë©ŘłÂ:3G&]ąŰsĹ^'I°÷!‹ž™ÇjrřŽÖĽ?ŽŽ9ž0¦3‚·†nkřn’5ďyţÔµ>‚Ę ¨TĘú†j“ŢŇńGŽVJQT-[–5Fńů«_˝ŇiÝşŽ«˘€˘’E›ądń÷ĹAMČzeŘŁCľ‡ď5ńâŮŤ›·­Űáw Łq!YłGű—{—îMܶîrČúmľ[Ľ4ÖyśĹ˝ëˇký!š 0)łDNô}ϬĎŁ ĂăŹĎ+ĐÜë Bh’5ďő;˝ŔöÇ® ´ňYmląLŘÄĽ[vökĂ-GÇôí—óşĹ„Áw…ʆ…ućxŢ„Kq›~żđGĐŹă®Ä7glj`pä’Ĺ‘K6—ýÚ°}Ë÷¨ŢŠ óÇq©|łvkQďÝ»wźľ{·ĺž=ćµnVýɉëˇkźľhůËźÓ„Ű·,Zď~¬đNě-3÷qW’tą—ŮζßĂ溥Óü}*>iE­ŮŃÎđíá‹8v~ăň˝+ţšJŠí'ívřEđwZşŰůKµ†óđo‹›ÄóľYr<ĽďĂâňFĽÇ9>°µˇÖ§Ń?˙|iˆŹeŤ0"Ś›xőVoén—ěW†“Bôš”/Ţ5]Ă˙ÝóđĐż ·9Ý6yţ¤řôě¶ÉLě-ď7˙ ¬¨o­u‹÷ż{y]¤7}ÝO[E%ܬę~É ¨#E•••5wîÜţýű8péŇĄďß˙— ”••­X±bŔ€VVVŰ·oçóůr9 e}CuJoĄž]ŽVJWTůůMŚŤňS*9útműúꀓ[˝irřś6?Lt·¤Ľađ±Ńn÷ÚphB‹¦%}»ä"„"㯠źtđĽŐ˝Ěv!C˝˙Ô°ľnéÎ%Ç?”jŻŘëôĄZ!tä’…Č(…şt·§÷˛{;Ć5űř÷ĹAˇĆ «Śő?ś»Ů{ď›Vúö­ą$l˛ý¤ť¦Fu¨_ÄVż¨ĘŞZ ľ ë}Ú××W__żC‡łfÍŠŽŽ–ËY( čŞSz+őěr´RŠ˘26.)Ěi€šhńů« ´nN»§ËŹâ˛F ©ÝR»'Ýďú¶¸Ix¸Éűí˘Ź:żě™öËçĺM=|qĐăę´iń®÷B¨Kë7"sT-Z6#ßÚĄ»=·Íá`çá7äĐeŞ@]üćŁm۶iii‚—III;vD”––vëö_FĐŁGŹť;wÖÜD-QÜ—!fŰŇ7¤®&éhŤĺâ…RKXŘuré7Š ĚşŽ|٦MqAAc„‡óŰŔş­Z•ĐqUiŠ BŽ1nn™óͦŹH¶í÷đö“=łúvÉ=g…ŇÔ¨n¦óÉyŘŤ>]ňB‚QáU‘ŢŹżč®›űťmżŁ¦ť»Ů»Ć9Şe.§5ůE)=;·*čÜŞ!tä’Eě-3OűK+fţŰ@ŁÚ¨ŮÇc—"„ćă,îuo˙Ş×ţÓWD“ÜW¸ÁŮłł|'ç2üz°÷ˇëLěßĹߎ’‹ŠČ‘‰CđöČĆĄg·UXϱ‹:]őWPPŕďďŕŔ_ý!TYY©©©©ĄĄEŐÖÖ.//·ę%‘jd^V˙‡‡›(±}IGĺĺůŻ.ű“ťź‹xk"%|ţjť*mm­˛2nűöMůüŐ7n¬02*crFÂ_%úD.ý¦hŻ,,Úś+řč…Wڵz±xę9‡ ­~ ™őˇt#BČtě®ŞĎ ćMLz󮩦–vËćČÇ4[X´ ëĽhÓq>&şŮ¸aŐ‚)qÓ†ÝůôűäŢďÁ‚)± ¦Ä.‡Úćěß—9ͱéťaŘsvź1î|ţjżÉqÁË_ „ś—_ľű´ă´Îí*Ú Úxů^‘6˙:=Ԩ眮mňrLxŰš;ÉŁ[6˙@žËwr|—6ů­ú,Üwvp jL­úăóů‘‘‘»ví1b„ŹŹŹˇˇ!B¨°°ĐÖÖ–Çăqą\„PjjŞŹŹObb"Í6aŽ P.]»ľý÷ßż»ŰýŠ®ÎFB¸Ü/?5l¸RşĄ0GČ 9VÁ•LěÜą3::úŔżýö›‘‘A!]]ÝÇŹ“u222LLŢ‹AˇůL0Fťć¨ÂÂ:·n]üňĄů’Ď_]UĄYZŞĄŻ_Ă]cŚ:…\]öۨ EUUU5tčĐ‘CAAA™™™›6m*..öňňrww‡U€Ş0}zúřńO¦/›C**„СS§:=x`(Őö@Q2ŠJVňóóKJJ†JÎ-™ššöďßź<äççghhhggçââ2zôč‰'ĘĺŚ,ĚŃčBzË̪qÉÇ-P5iäôĆ«W:şşUtĽ­rŚQ§EĄ’€˘”Ëţýѱ±&Găúˇg PłŤˇČČ“'Oö8y˛‡˛]ę ¨Tćhô !˝efU÷ŠjĐ çŹýw7›TTůůM¬P‡˝ţ†:…(*• Dš7ŻČÎŢÚĽů/|ť†EőÓO)]şĽ]¸p´˛˝ę ¨Tćhô !˝efUÇémT˙ćÍÖ|ţ?%UZšŃ÷ßż¤ăí7€˘Ręr ¨TPT€ń÷ż‚ň÷ŠšrŠŞiÓĘçĎőô– 0ZŔŞ?@fD•đ!Őý’ŠŞÖ@zËuJoÝÝßŢĽů˙g$’Šęădž……Ť;u’ó‚ äŁN!W«~ÝÓ•IŤ™(* ŽŃĐŕż{·±cÇďŢ5BÚ Pţ¤ł<ôĎ?G2;~Ľg-šEČ ĚQ±ši s4ú†Ţ2łŞËô¶WŻŚőß˝k„Beź‘¶©¨B©©-{ő* ăđ˙ÝÓ†Ú„śřKŁR `Ž PóćńLLŢ-]j÷ßkţÄůo đ)S–ăí=®͢d•ęÁÂŤľ!¤·Ě¬ę2˝ť2ĺaďŢÖÂGŠęŢ=PTµ+“TŠJ(*¨]şĽML k×ná§O˙ )*řԦ͢âb.ÝAQ2ŠJő`aŽFßŇ[fVu–ŢÎť{7<ĽĎźv>*PT|>q˙ľˇ™Ů:>ÓBŽ1ęr5ľEĄ€˘ę-­ęÔÔ]öö.Oźę˙żTHQ!„vď>ťŘîĐ!3şŤ‚˘d•ęÁÂŤľ!¤·Ě¬ę&˝ut|tţ|ç§Oőż©đ…˙髢B]żŢ¦woPTtK ä$Ö±˘JHH055<ăb„ dyYYŮŠ+ `eeµ}űv>ź/ßóŇĐ… pJĘ_+VŘž?ßů›ďABĐÇ˙đal\ríÚţ®]çWW«g"°ŮŐ?~(R““łqăĆ’’///úO ”ęy!±0GŁoé-3«:Hoíí#„âă;‰Wx˙ţÁ߯_ëĽßhĐ 4ĽFÁ^r5Ö±˘zţüy»víľ=®®®>}ú´ŻŻŻľľ~‡fÍš-ßóŇĐ‚”SC˘Ł»‹űVQ!„Ö­»„Ząrx]zÔgdWT%%%Ďž=ĂŰÚÚ._ľ\[[;??ßÎÎŽÇăqą\„PjjęüůóŻ^˝*w˙©QEŐK ŠĘ,ĚŃčBzËĚJŃéíĄKď33›˙űo·++*„Pl¬I›6ĹÔţüPT CĄCNE%ţ…)őkł˛˛rŕŔ.\8qâÄ‹/‚‚‚ČBMMM---˛Ž¶¶vyy9E# HÇĆćٱcdž ›őŕa ‡Ĺ•†?#c‡µőśüü&Ň[‡U€Ě0PT¦¦¦cTÓöę<oÁ‚‰‰‰………¶¶¶ÂŠĘÇÇ'11Qţo€•QTµ‚…9}CHo™Y).˝µ±y¶wďż·o/Ą¨Uu5çÎc›gŇĽ¦„cT4äj,‘{żĄ§§“ű¦bŚ_ż~mffVTTDŇĐĐ U”®®îăÇŹÉňŚŚ †Ń(  ¨€ +«Ľ“'ŁĆŽťÁăµ’X©p)ęľ˝­.›93­Oźü%Kě$ýPT€ĚČ2G…1ĆO™2ĄK—.«V­*--]µjU·nÝ–,Y‚ ĘĚĚÜ´iSqq±———»»;¬ú“,ĚŃčBzËĚJé­ŽNŐÁ'śyĽVTémŮçg…KEZř÷ßn#FdëęV!©Ŕ^ CĺBŽ˘DqýF‡ĂٲeKQQ‘µµ59bÍź?ź<ęççghhhggçââ2zôč‰'Ę뼵đHb÷îÓ!OĎńRę=[€†„ˇĽŹ"ŧN9~Ľgd¤´-*@Q2;S¨,ĚŃčBzËĚJŢémçYłîµjU˛téČ«‰Ľ|öĚOĽ‘ăÇ{öîťOíB ¨ äj.¬ăßQ±PT Ę AĎ·o?W\Ěőň÷ř±t ŠJW·*-m—©©WI ĺNę ¨™EĄz°0GŁoé-3+yĄ·66϶m;WXčfkë*ˇ `µřř!GE…ŞŞŇüĺ—‘~~7×p•¨·ŠŠćÍ'UJQ™ššzxxřřřDÍwí1Ć;věřóĎ?ÓÓÓćˇD@QR'„©źB«V ‹Ť5a2% iŠ }}śŐňĺ¶ńńťEŹÁŞ?@fęďŐ¸qăşvíJmßµk×qăĆÉŐ%9ŔÂŤľ!¤·Ě¬ŐOđř—_®-_ž(Ozz•..ŤW­6`€űąs]„G)ą¤·ÔŠ !„10ÄÇçV͢Š9ĆÔ[EĄf¨ŘŞ?a@QD¦ťĘË$%µE]˝Ú^Îâ©FxČ#Ýy-ŐÉ””ż.•Řţ› ¨™©żŠęóçĎ }úôž={ôőőőőőgÍš-—GraĽ† ÖĘŢNŤ„‡›¸ąe*Îşš¤Ł5–‹Š—„…už3'S0HlŘ`»|ůE©N2ĂÉI˙رÖRŚ@ˇqăšť9óžü›b„Ôî•o׉ĽĽzŐmç7Šł“fŞ.\čô˙wACQ©Sȉ”°đj•KżQTKČ)´ßŘ•˘233300¸xń"BhřđáEEE7oŢlÔ¨ĆxřđáďßżOMM•ĺÜŻ_ż¶łłăńx\.!”šš:ţü«WŻŇ4—¤¨,,^ČëŕőÁo‰RSŤ”膒%‘ŚĐVT諨ňö{óf›˙Š@Q2ŁŢŠŠjŽ cܰaCňďFŤ‘˙“Ď‚lܸ±ěóI•••šššZZZäKmmíňňrńj˝$ ćíň˙† ż™ëéU*č˙3)±}IG{µ~ýw÷ ŁGg,_>bٲDňůw]ţî\>ß_řs¬í˙áá&Śmé´FŃľµu»«WÝh¶Ś1ŃŻ_Ř‚7řü…ňň¶núD^ýV—^1;—Ľ<”ÔŽ‚ĽRc¤üŽŞm۶gÎśAŤ7îůóçiiiäoŞĆŽűüůs>UPP`kk+¬¨|||išĂŔjٍHľyv0(*@fp˝UTˇŞŞŞ•˘ŇýĘž={:uę´hѢ֭[űůůuîÜůđáĂ đ_>°0GŁoé-3+e¦·_"OLĄădÍţ˙_HŰC:@Č©mČ©¸˘1bBhţüů}úô™?>ĆŘÚÚš˘>­Ufffť:u:yň$ą-ĆxҤIŮŮŮiiiňň›&"ëF@Q¬ r:űfşQ öG„?¬dAµUiiéš5kâââBAôéÓgË–--Z´TźÖU—.]˛˛˛‚_ż~ťźźżuëÖ¬¬,yí"Q+î AQŤ…9}CHo™Y)7˝ŤŚ”a×Â}]¸}ű9ń€rŚQăSiEŐ¤I“?ţř#11ńرcqqqŁ˘©¨˝˝˝…wˇ%bË–-#GŽ”ËL9*€-ČCQ‘~ł ĐFµUmˇĄ¨¬¬¬öíŰ7pŕ@.—ËĺrÍÍÍwíÚEŢdd',ĚŃčBzËĚJ…•ä€VVßěo !Ç59•STŠÚ™bóćÍß˙˝••95%ĆřÚµk7oŢ$«XÇ€˘Ř‚üBČĘ*o˙ţhw÷ 0YЇýŠJQ;SDDDÜ»wŹúÜ÷îÝ‹ ®S÷°0GŁoé-3+e¦·U_öÉIQ!„®]kçî>áرc=§đrjr*¨¨’…¸víÚćÍ›5jB–$%%QŘJŮ™˘aÆÚÚÚöeee•••2>Š ¨¶:Ý/@»xrlŇĆćٱcÇśśś@WtQT‡X¨®Hśśś***Nź>-µ¦”9ŞŠŠŠ"J***ääłuęÔÁ•˛/­PT[Xo‹Š«PĐ5†ćô č* FŘŻ¨[µjµcÇŽČČČË—/ďŰ·Ď××7!!ÎS8h)Ş-[¶”••Í1ÜK©oßľeee[·n•Őq…ÁÂŤľ!¤·Ě¬”›Ţ®_?\ş‹’ §¨HjĄ« äÔ8äTNQ-X°ŕöíŰ÷îÝ311yňäɇ^˝zĄŁŁCÇ––˘2774hжmŰĚĚĚ&Nś¸páÂäää[·nÉě}úˇC‡&NśČĺrŹ=jeeµk×.†.ËPT[¨sEEݰ_Qť={ÖÖÖVCC|I„ŕo©ĐRTK–,iÚ´idd$ĆřÔ©SQQQÍ›7WĘŁ=hÂÂŤľ!¤·Ě¬”™Ţ~Ş^łÁ–Ž“ĚäyŤŻ˘cX«jrŚ«)QQŃüÉi]2fĚ đů| ŤŞŞ*>źOóÎ-E…1~÷îÝ©S§ž>}Ęápşwď>aÂ===IĎ©Ş@Qla™Ňĺ˘ëţĚđđ*€„ýŠęÉ“'‹-˛¶¶^°`ÁÜąsSSSŰ·oÜĄK©¶tç¨ôőőçÎť´~ýzWW×fÍš)w”˘†…9}CHo™Y)7˝]ľÜJş‹’Ľ×ź$g?ĽŠ¦!ýjrŚ«Á•06lČËËk׮݅ îÝ»‡1ÎÍÍ]ż~=[)ĎŁ˘Öeu?h×řśPT€’Qž˘"MÖö+Şţýű[YY…„„řřř\˝zőřńă7nĽwďŢť;w¤ÚŞĚ^$4˛ÂÂŤľ!¤·Ě¬ę§˘"~xU­ éTc\ •>|ČĎĎOJJęŢ˝{ÇŽ«ŞŞ´´´čR)ŞââbňŹ‹/®YłĆŐŐŐŮŮ™ĂáDEEíßżńâĹnnnrńž0G°ÓU"€®ŞĎ°_QÍť;÷Ö­[ä]:__ß—/_žËĐ\®ŠŠtU}ýŠ cüáÇǏůňĄk׮͛7§óK'ZŁ‚••Őľ}űČĺrą\®ąąů®]»FŚAÓąęęjźnÝş]ąr%&&¦˘˘bíÚµäŃ‚‚‚ŘŘŘČČČłgĎFGGÓi“ĆIY—ŁŃ7„ô–™•rÓŰź~ ÝEIČUQ‘ş*6öÄ!ąR+CČ1łRKEőöíۡC‡ —”••­X±bŔ€VVVŰ·o(Iĺ’ČÎÎvppřý÷ßŁŁŁĎś9ěŕŕ••EÇ+…?ácüâĹ‹qăĆĄ¤¤pą\„ĐćÎť{ýúu>źoeeµgĎ333„Đ‘#GbccĂĂĂi¶ Š ` ěST$––yţsüxĎuë†sq €%Č®¨^˝zxďŢ˝ĘĘĘŰ·o Ęsrr6nÜXRRâĺĺĺáááččHQ. OOϤ¤$''§Oź>EGG»¸¸9rdđŕÁ»wď–ę-EŐKtl ‚h۶mZZ9J!„’’’:vě*(((--íÖ­YŢŁGŹěěl:mJ……9}CHo™Y©°˘’ăswŢ§Ź§®nŐ˝{»űö}ͬ}9ĆŐTKQµjŐ*44ôŕÁB§ŔŐŐŐ§OźöőőŐ××ďСìYł˘ŁŁ%•S·ĎăńlllV­ZennŽZľ|ůđáĂy<ßęôżţţţřő×_B•••ššš‚|ikk———‹[Ń&ÉŹMřĂ.‘ă˙nn™ĚlgÍš!{ű’ŽÖX.~F©%±VAýFżŃoíÔX.ŢšH‰°UhčŘť;SřüŐ¬ę7ŇçŹ×{zŽďĐ!2..’ĎĘ }ůö›x ‰‚˘ŽŮŐJÓJęç"ß«Ujż)Ir‚Ěŕp8"?ď­®®¦ą­[‚_ţ"„0Ć)))K—.ő÷÷ź8q˘$ÁöKdű|>?22’śŮňńń144DÚÚÚňx777""ÂŢŢľ¶ţH8©˘„0‚9*Pă 3LĄ»( ™÷úŁi(ř‰ŐČ‘Yi¶!ǸËç¨ŇÓÓĄî›j`` ««űřńcňeFFů ZIĺtîÜ9**ĘÂÂÂĐĐpذa'Nś óŚDSQ‰ I‚ şwď~ěŘ1©¶㼼ĽqăĆ Űjii‘#vEEE@@@||| śťť}||ŕwT€ęˇ"ŠŠdĐ çŰ·ź{ţ\÷·ßlîŢ5V¶;€|` ¨jDXQ‘effnÚ´©¸¸ŘËËËÝÝť\Ý'©\0\LŃľ}űŐ«WÓ©IDűöí…w=OOOôBŁFŤÖŻ_ź’’’śśěëëK”˘†…9}CHo™Y˘˘ixýzŰÜ6Ť‹‹$ź !ÇĚJŐMüüü íěě\\\FŹ-Xš ©\ĐRT7oŢ466ÖÓÓ#_jhh|řđAxɇRE°•Â~GE Ĺň @ĺ—˘b'T ¦şşş¸¸¸¸¸řÇLJJ”ůňeűöí®®®ŠwŹ!,ĚŃčBzËĚJ…•4rä”Utô‘sç>3hB®ž(*6@Ą¨˛łł%­n BGG'99YaŽIŔ»Ł™fhňQ†ćJRT$ «Ôú«¨(ĐŇŇš;w®|]‘#,ĚŃ肢bfĄĚôöSőřI=č8Y3 Ř돾aBB‡Ű·DG±±yV«F ä@QŃÁÔÔTҦ šRÝ“ 5Gejjŕŕŕ ?çĺ(*€-Śë‚<ÍŃ„żš+UQ‘€®RuX«¨LMM6l¨­­MQ§¬¬¬˛˛2==]R*EU\\\ZZŠ1NHH:th±Ě}g ÍťYŁŃ7EĹĚJąéířńŇ´(Ą**˛š`ľJ\WAČ1®ŠŠÄŐŐőňĺËW$půňe©+¨•©©i۶mĎś9#I”)wĐE°ŐWT$ «TÖ*ŞÍ›7˙ý÷VVV’¶őĂ_»víćÍ›K–,‘ÔHťnJ[g°0GŁoŠŠ™• +*iÔYČŐ¨« äWE…Z˛d‰µµ5A㤤¤9sć›››››˙ř㏷oßĆammM1Jˇ:x•âE°uQT$ «TŠMiYň%żhŃ"rwA Ťť;wZZZJµ•2GEŤ|W ,ĚŃ肢bfĄĚô¶â‹­Z(*]!Ǹš•đf@ÔNÖ»víBÍž=;...66ÖŐŐ•Ď燄„б•2G%<ú‰sT€BVíĐz[4„îĆ˙*©«||ĆĆĆšŔÓŮk稙™uęÔéäÉ“‚hLš4)'''55UŞ-ĚQŐPTŚQăôÖÚşťt%Q·{ýѬ–ĐÁŢŢeúôô­{öÄ? BŽÍŠŠ…Ź!ÁŘÖ¶Č0G2ŁŽŠJ€®nŐ”)‚.Lž<51±˝˛Ýj†ýŠj˙ţýÁÁÁsćĚqvvćóůGމđ÷÷1bYAWWâw8(ŞZŠŠ1jśŢŞź˘°mŰwű÷÷urr:qâč AĎ©­ äčT¨źŠjË–-ă}űöŤ9rÔ¨Qaaa|>őęŐč^ˇ€˘Ř‚ŚŠŠe«ţ$f3ěWTÔ»4Ápg ŐŐŐaaaăÇŹ0`€ąąą˝˝ý‘#Gř|~­=­+XŁŃ7EĹĚJ…•4Xr‚“ş BU­¸O Ĺ(…h*Şŕŕŕýű÷ Ż$ÂËËë§ź~’űô¨q4E°‚~ĆčĎ ČüO†ć*˘¨H@W±ö+*Śń‡bbb?~üĺË—®]»:884oŢśÎý9ZŠęčŃŁëÖ­»qăĆŤ78Ndd¤Ěž×ń˘2 s4ú† ¨Y)3˝ý\mÖ_†gşł`Ż?úGşęĚ™~»!G§BýTTŮŮŮż˙ţ{ttô™3g‚˛˛˛čŘŇRT–––;v™¦Oźž——wíÚ5ć^Ë ĚQlÁÔENB˝w34W)EEşŠm°_Qyzz&%%999}úô)::ÚĹĹĺČ‘#Ţ˝[ú…CKQ-^ĽřńăÇŃŃŃĺĺĺeeeŃŃŃOź>]´h‘Ěž+ ćhô AQ1łRnzkff$ÝEI¨”˘"!źb%Ż˘¨ !Gł\íŹÇł±±Yµj•ąą9BhůňĺÇçńxtli)*ęŐ­[·Ž‹‹Łé«E°…ú§¨H@W±ö+ŞZYYýńÇŃŃŃ«V­JKKóőő˝qăFJJŠT[řU­aaz+©Ň[:”ݍ¤ÁÚĚWŤ™E¸ĆĘr4Ë嫨h>şŻ.0`ŔĹ‹ăăăÉ—ż˙ţű•+Wú÷ďOÇ––˘˘Ţ–Ăá4iŇ„ÎÉä (*€-ÔWEE2hĐóíŰĎ=®űŰo6wďʰ¨ö+ŞĚĚĚ™3g:::vëÖmĺĘ•!ť®]ĄočLKQéR˘”QŠćhô AQ1łRfz[ţ٤^**ňŹë×Űŕ~ř°i\\äŮłŐRÍ!äęçUçÎťŁ˘˘,,, ‡ ćááqâĉ.]şĐ±ĄĄ¨0Ćăňňr‘ůRlÍT€˘ŘB»¦čęlÔÖ Ôx•ał˘Ş®®Fihh ¦;ŃRTiiicĆŚ±°°ü-ŚýV4,ĚŃ肢bfĄÜô¶}ű¦Ň]”»÷úŁßoäR@©†«?Š c|ĺĘ•ˇC‡>zôčóçĎ»wď¶łł#w8rtt<~ü8ÍŽh)*''§ŚŚ ńgSÁó¨!PTßşJ)°SQ•––Ž1˘¬¬ěďż˙މ‰9|ř°ČGŢŢŢžžžRۡĄ¨ž8’ćRćhô AQ1łEĹŘPľ!'őÁrőGQĄĄĄ•••Íš5«cÇŽŃŃŃ 4ظqă­[·nܸ¨ˇˇqŕŔ:íĐRTC‡522ŠŠŠ’ŮmyŠ ` 2**_őW#¤®š2eęի𫺀ťŠęÂ… .äńxZZZÖÖÖíŰ·?tčŕčŚ3ž?~őęU©íĐRT®®®—/_ţřńc±ĚÝW0,ĚŃ肢bfĄÂŠJŞr §…‡źJOOŃŐ­˘0„“T¨ŠŞeË–ˇ?˙üł¬¬lÉ’%>üçźĘËËKKKŁ˘˘ž>}J®S— -EuĺĘ•… ~ţüY¤ć¨!„ôˇ ÔbCsuTT$şşUż˙og—ĺă3öÜ9Ś•˙;u…ťŠŠĎç;88dggSÔˇă*-EµvíÚ/_ľĐuŤ°0GŁoŠŠ™•2ÓŰ/|=Ćtś¬ÜëORąHaq1·aĂîî~űíňńăGűö}-^BNRˇ(*‚ ¶oß>xđ`ťĆ ŐťŃěűďż×ÓÓ;zô¨®®.žíKŠ ` MąčŮÔl#CsőUTO™ň04ôě¤IÓ®]SŕC&ë-ěTTˇeË– 6ĚÎÎNŇŘ1>ţüĺË—‚‚$5BKQůúúVTTŠŻPg',ĚŃ肢bfĄÜôVOݎt%ˇľŠJP‚1qěŘwNNN'OF‰<Č BNRˇ(*„Đ™3gž>žËĺN›6ÍŰۛá»O.(*€-€˘˘ l¸® D•đ!ĺŞ+SSS: ‡ ЧŃ×éîéă’’’ĺË— ~ŤRPPyöěŮččh9ťu9}CPT̬TXQICťBNüAVr’ eQTĘýÁ«0úúú4Đ××§hD¦ÝÓk»×Ćxٲe\.÷Ě™3<ŹĎç[YYíŮłÇĚĚ !täČ‘ŘŘŘđđpš­˘Ř(ŞZşJî°vŽJ.0Ü=]GG§   ¶';sćLQQ‘««+ů˛   ´´´[·näË=zPŻb¤ s4ú† ¨Y)3˝-űÜ•„ÂK„dĹ篢ă$3Ô6äTgŽJ.ÔúÖ_NNÎîÝ»'OžěččHß cüňĺËíŰ·Ż[·N0 UYY©©©©ĄĄEľÔÖÖ.//·í%±S¬Aß~xÂ%rüßÍ-“™í¬Y3do_ŇŃËĹĎ(µ„ Ö*¨ßč÷€"úŤ˘ťËĹ[)ůĆęóŞĎńů«ö áŻ~Ł«ÔíË·ß%  ÎoŘp‘ &÷íűšyď)ŕj•KżQ´Ăěj±"/QKč>ć#///..îüůó!‚ ‚HKKŁ6LŁĄ§§Ďš5ËĹĹeôčŃ999NNN<ݰ°ĐÖÖ–Çăqą\„PjjŞŹŹObb"M×)nýaĽ† ÖŇl§¶„‡›¸ąe*Îşš¤Ł5–‹J-aa×ÉĄß(*0ë:‘—^÷›´[jr««{ÍQвu59‘K•«ÔőÖź”ęůóççĎźŹ‹‹{ôč9äѸqc__ß‘#GŇ< ĆŘĚĚLdßÜÔÔTkkë]»v‘sTQQQ±±±aaa4Ű„9*€Eđ× Ž˘xµ6\—ő¨¨ný9;;Ź3&88řŃŁG–––kÖ¬AéëëĎ1ţ(…ľ.=$— üűďż\.7==ťĂáL0a۶mďßżĎÍÍŤ°··—ő !„,„ŐoÂ@ř% »N%& dúĽzíž^Űň6 đ†ërDŤCNío÷ CĄ¨LMMB\.×ËËkĘ”)M›6% ۶m{öěYƧĚÎÎvrrş}ű6B¨˘˘" >>ľAÎÎÎ>>>đ;*@%‘EQŐżU5şJꯢjÔ¨Ƹ˛˛rëÖ­óçĎŹxńâ…ě§ěÔ©9J‘§Xż~}JJJrr˛ŻŻ/ýQŠĘú†JOoĄ»Č5NoşłX= 9Eč*59PT˙QQQ‘pîÜąÄÄÄĎź? 樚7o~ŕŔvíÚ)wß?PT‹(YŽZnFe˘O (*!@W1Ł^+ŞŃŁGoÝş5!!! ŔŇŇRCCcüöíŰńăÇ;;;×™—µ……˛€ľ!KŇ[E Ćé­^-¤Éô~@=Ř돢D$ää««Ô8ä@QŐ ĆřÝ»wçĎźŹŤŤ%ďÝÁó¨ŕ?Ţ˙‚:„ ŹUŇkŠŠJ RWůřŚŤŤ5).ć*Ű ţ**‚Đ××wqq‰ŹŹ_Ľx±âÜ’Ęú†¬Joĺ‹§·°{ş¤Bf!—ĐÁŢŢeúôôĽĽŕ={bČY1@ŤCŽúRĄŘA©…˘b ¨ŠJ1čęVM™ň0(čÂäÉSŰ+ŰöŠŠEĐLX( č˛0˝•jśŢÂîé’ e ąâbîţý}ťśśNś8*Řpť>jr0GĄ€˘X(*®SŠJő`ˇ, oČćôVFÔ8˝mŁ×5Ń’î%# äĐ×Հ²˘‡(*ŐŔ"ž-@CÂPŢGeűˇć€®’(*Ő…˛€ľˇJ¤·ĚPăô¶}ű¦Ň]”D˝ßëOş‹_~A`©őŐ8ä@Q© ¨ŠŞ4čůöíçž?×ýí7›»wŤ•í+EĄz°PĐ7Tˇô¶¶¨qz ŠJRˇ"Bîúő¶¸>lie•GQSŤC•jŠ `˛(*XőÇŘP€ĽŐŰ·o'Ož|ĺĘAIBB‚ŹŹŹ`Ż×:ÄÄÄ „ĘĘĘăăăą\î´iÓĽ˝˝ĺµ«¸8 ¨j ¤·ŚQăôV&E% 9IHÝPŤCNî—ę«WŻĽ˝˝íííKJJ„Ësssíííɧ ¦§§“ŁB($$¤   66622ňěŮłŃŃŃňőGPT î˙„¦C ™Ř‚˘’ ĐUH~ŠJřy$óćÍ:ćóůVVV{öě!źĎ~äČ‘ŘŘŘđđpYŢ ¨j ¤·ŚQăôÖě»HéSo`Ż?Ů ĐUjru6G•››{ĺĘ•AYXXüú믥ĄĄˇ‚‚‚ŇŇŇnÝş‘uzô葝ť­8TFQŐ¸g(*€-¤z˘™'Qz[PTň žë*E%©šÔ/|qEĺęęÚ·o_Ź>¬X±˘m۶Ďž=›4iŇť;wȧfff:;;óx<ůĽ1TFQݢ2 e}CUOo)PăôÖĚĚHş‹’E%jÔUjrÔý&ţ…)ţµijjJg{ő,\¸P[[»uëÖóçĎ'×YhkkůňĺÓ§Odť˛˛˛FŤQ·# *ٍÄ9*€E€˘b¤®š1cŇ… ť0Vć#ČëEĚQaŚóóóGŤuéŇ%„ĐÝ»w/^|ńâEڱµµő®]»Č9ި¨¨ŘŘذ°0ą˝źoQEU+X( čŞGz[#jśŢʤ¨¤!Gź„„':oŘpńäÉ(këܰ°Î Q‰«›9*###“M›6•––ćççďÜąsěرAp8ś &l۶íýű÷ąąąöööŠsČPTl‚ °CĆśŹŠúnĂëúđŚ`Ĺ­ú{öěY@@Ŕť;w´µµíííýüü¸\.B¨˘˘" >>ľAÎÎÎ>>>đ;ŞÚÁBY@ßPťŇ[©g—Ł•rÓ[K3#¤Ł¨oCąÚ‚1ńĎ?=úôńttÔşwowm¬!§ KµS§NÂŁB¨C‡űöí»{÷îµk×~ţůgr”B5jÔhýúő)))ÉÉÉľľľŠĄ(*WgŁŃ5Şí|Ą0fĚÓSS¦L˝zUť {ý©,”ô Ő/˝ý_{wĹ‘6üí‘CÂánĽ"*Š×€+â@ šuwMT଩’¨ ".¨űFt˝ĺC‚("’€  QŁ’`˝U])ڍXlC®E/˛Ň!‡•fŔ qHk"*|꯭hń‹¬0˘âá"ädă`XŔĽ`{8˝UE) ލÁ!ǚضľČJ#†FTš#*Ä!g˙‘?Aę=6e1˘jsÚ·0 FTš‡aó‚íçôVąĄÔ{zëć:x¸zşĆ 9ů/˛Ň!'żß^|ŇQ!¤ ICtś˝Ë¦,FTj˘MqFTš‡aó‚íđôV)ĄÔQą RÜDY0˘Rů»&+®Ň!‡÷¨4FTC0˘ŇXÚ±ŕ:FTš‡aó‚íöô¶•Ą48˘R‡kLz@tÁuzU@ŤrQ)_SSSddä÷ß_WWgggÜĄK¨­­ ÍČČĐ×ן3gβeËŻlâڍ4E‘ٳ޷/ećĚ999*ücÁJ öďßíÚµăÇŹgeeééé}óÍ7tzxxxyyyZZZ|||JJJBB‚R6§ös´Ölç§·¬K©÷ôönŔWO×ŕ!Guňä0//Żďż?~ö¬‚Ą+VŽ•˛¨<˘"„B&Nś5tčPŃt@`ooż˙~ú‘ÇŽKKK‹‹‹cX3FTCâgBĘ]8Z˘îv ÖŇĐU1˘j­ŠŠŠĘĘĘěěl{{űŃŁGŻ_żľ¦¦ĘËËkjj,--élC† )--UĘ9rŽĆ® žŢ˛+ĄŢÓŰyóřŠ›( ®ő§2,şîâEó«WWśVĺׯÜ~“Lˇ©hÔ±űmť6M×Ô4-.î !µ&&ŤÁfv˙_”űŰŞ°ß´Ş.ýńů|B”””yW›P3~éźO†äALóű×PÔ<>OÍ„y`đxlç•IŔö®‘˘ š zđĐÇhBax ëŤjŽqă~ß»7ő÷ßMBB&őhiqڍ8„áiĎŃÄÓ[vĄ48˘’Ľîwä{vţc _Ú˙™qę÷-¨ŤPPÖVN…USśî:Áŕ°ëśüŮ—^Ő`V+ĺ۵ąPĄk'K/%;ńżßšĂ§°í<,*”šçjíLŕřÂVNĄ› _§°ĄACnńbG[ŰOŹĺ§§ÇŰŰ?̆÷¨4FTHKHFT÷"বš/áđi(ěS˙ů— <ÁYŕ[: ›/ţQ‰FWPCźÎf)۵}©đ÷§đ–ą}`©Üßóç·˘MŤŇZz;mx9G˝‹ŤňzK‰¨ćĂ˙%B—uĐąžˇ¤¤´'ô-«Ůł˝łłű*Îýڍ4Ăć1˘bWJ«"*‹řčc¸»RŹ@3µ»Ú_<ĂĘ+°áÜ6…ť‚ëâßę7ů+čWą6˝úWÂ-SéŰýö4Śy{GOůÍ&•—°ręźŮbcĽK˙˝“hú»0%úoçÉNb‰ 3ç€ç\á|#ÖuAńˇ™‚ßŔŁŻáz4 x Cź‹§°Ą‰CîâEsOĎݸŕIDAT9qqgJJňMLe•ÂJ3`D…´„0˘2ő.ĺ·Îł—űđI!\ú&üë/EîF€Yô^5z0úäýWú=*ÚşÉđ•´WÝ/*„z]87Ęŕ»ďj Č„ÁpµŘ.–’.r˙_Ţý$Y5G%äRřzô¨ŤŮfeťÄS\çIŻS{™4~őU†‹ËýYłĽ™Ü˛ÂJóp0,`^#*vĄ48˘ú5~ ‡Ň?®żť KÜ ´Kű‡â9Í_Á˝®PŁPôţ_ľ"üŇ <ç‚çÜeŕ˙FÂöLđ¸#es/Ţ,xřużůrĄ ßčh鏟e-WX\Ľë–ćĂŔ˛…Íá¶)8ţľnâ)liŇ××_ľl™kzzüřńe’0˘Ň Q!-!ڍfÜ~—ť ŹŤÁf1đüş ß@·u)ňŕ0i|QŤz ?”yŹĘđ Tď€ ćŕä#ľÝňťP« Vľ #€ŠŻXFTÂ(P%ÉŞůŰÓđÔ>ź PşŢk‚Ôâ)fźKŻł`¸ŕ:FTš‡aó‚Q±+Ą Ő™Áďţe÷…OáŘ)Húô®r|1V<ç‰a`Ň)G č;%ţmŹX‘+ňćć˙§NäJ{Yźn3tŻ…yĂnś ŹÍż‚…ׄąôŠţ“šM2eEĚ˝ÎóMaM.ÄžäŁĐ§ Žňˇgµx [Z0äč×wěČüí·dŃ×1˘Rľ¬¬¬ččč»wďęččXYY­ZµjčСP[[š‘‘ˇŻŻ?gÎśeË–ńxLçNڍÖęVQgÁő.4Spj(,źöî*źŃOď›`Đ'‡ÁÜŇďQ žÂQ>9CŁŽřV|®Áîs`܇­aÎ ¨Ńk`×9XöĽĺqĐ_2ËŠ¨„Q Đ™ÁŇwJ,˘~ě]ű“ŔéW¨Ő#|X7LëÄS$ßÎ(\p˝őŐýű÷·oß~íÚµ:L0!((¨K—. ű(ÝšŁwK©<˘"„Ľ|ůrŐŞU‹-ĘÍÍ=ţü¨QŁV®\I^^^ž––ź’’’ ¤Ťr.,`^#*vĄ48˘’|üˇâ=đöŁ č‹>Š‹*žˇF>ń“@ĐÝ ˙Ľ/ţś¨-Âq߆k`ő)ł¦źţ¦8ťU`=Ö¬qŤ˘łÔ»=ĺ}!6K˝KFgĂ™Áq3ÜÄ6ňgGýŃČ?+÷ ßwĂôy`°L?‡ĺÓ Aš§°Ą5CŽjúôŹD\WâŻ*!¤ąąŮßßßŇŇňÂ… IIIőőőÁÁÁô·˛ŽŇ*:zKĄňŠR[[ëîî4~üř¦¦¦řřř+W®ÄĹĹ {{űýű÷[YYŔ±cÇŇŇŇâââÖŚB¨˝‘µ0`k"*BČǧOźžźźŻŻŻO׳hѢ+W®H=JÇĆƶňčÝR*ʍ(Š222 Yµj•ŤŤÍرccccĂ ĽĽĽ¦¦ĆŇŇ’Î9dČŇŇRĄl”aó‚Q±+ĄU•˘Ć0„CNű†śpÁu`“F2AQTź>}Š‹‹éY ._ľÜŻ_?}”VÝŃ[޶¸ô×ÜÜĽmŰ6OOĎË—/ź;wnČ!ĐĐĐ ŁŁŁ§÷î⻡ˇa]]ťd ĂeŘĐđ×A/š˘Ä˙.\xŹ]Yźy­Ż_Ö·RÓ%·¨0…˘‚UÔoĚ{@ý&§©é’µ‰ĄpżßŹUůő+·ß$Sh*ę=vż­Jé79ő°űm–şp!ÖËË  N,ż(†‡MIĺĺĺ[¶lůöŰo7lزŹŇ ŹŢʢŞK|>ź%%%>tuu˝r劑‘\˝z5 ''çůóçÎÎÎô4~ýúu˙K—.µt[’—ţč‡ŇvćŻââ,.Ľ§ş‚ňłÉúVjşd˘ÂvťRúMNv]§Ě~Sôšr¬µź!GĎUôĄ?†„GizńńńQQQ“&Mň÷÷ďŢ˝;H=Jggg+ëčÍP[ÜŁzńâ…“““čDµvíÚĚĚLBCTT}•óřńăôŐĎ–nďQ!͆ďŁB­Ćb˘™••faaAQB¤Ącbb”uôf¨-îQ™™™ŮŘŘěÚµ«şşúÉ“'‘‘‘S§NĄ(ŠÇăą»»GDDTVV–••:tČĂĂC)• „•o°¦}7 „ZŐoŠf)r¬ác‚ŇŘŘxäČ‘ýű÷8žĄ@ÖQZĄGo©Účď¨^Ľx±m۶śś===77·Ő«WÓc}}ýÖ­[322tuuçÎťëďďĎâI|ڍfĂ µZk"*BȦOź.Lˇ(JOOďęŐ« ű(­”Ł7CĽ„’Đ1{Âw«»!¤f­ąôÇeÚ°„ÎR!¤Ĺ´aam=‰@!ÚQ!„ŇbÚQIbňwm!¤Ń´ŕ †´s˘Uţ/dý®†ĺg“ő­ÔtÉD…)*}“ »Ę•Ňor2°ë:î÷ó‚8äŘ•RűSŘB­—ţBqNT!„8 '*„Bś¦ đ+IĄW˝µv;Řo¬a×±Ó®ú #*„Bś†B!NÉ !„§iç=*„BZ#*„Bś†B!NÉ !„§áD…BÓ4l˘"„ÔÖÖŮÚÚÚŰŰďÝ»W BDóHfý¶˘˘ÂŃѱMÍIň{‰FÁîR{©Ą$»‹Éhlź÷•v÷ˇć­ž^^^ž––V]]íëëŰ»wď3fČĎŕéé Ź? ˝víZCCšÚÎ!˛z‰Fyňä v—B8¨ZDVwÉŤíSKűJ»űPĂ"*@śśеk׾}űúřř$$$ż%„477Óşuëfnn.šˇgĎžűöí;|ř°šÚÎ!rz‰FQTĎž=###±»äĂ^jÉßAůżłíóľj}¨aUyyyMMŤĄĄ%ýqČ!ĄĄĄ-Ę€{ q ŽFćdő•Ö÷ˇ†MT :::úúúE€ˇˇa]]ťd===úŁdŘKKp42'«Ż´ľ5l˘244|űömcc#ýEmm­d†7oŢĐ%3 Ŕ^B\‚Ł‘9Y}Ąő}¨a•©©©‰‰Éť;w菷oß¶°°hQŘKKp42'«Ż´ľ5l˘˘(ĘÝÝ=""âŐ«W<8t臇‡č·<ŹÎPYYYVV&–Ѱ—Gŕď,s˛úŞ=ôˇ†MT°|ůňîÝ»»¸¸|üńÇS§Ný裏 ´´ÔĆĆFN$F˛—!t7Šý]BކżłĚÉę+íîC\=!„§i^D…B¨]Á‰ !„§áD…BÓp˘B!Äi8Q!„â4Í[=i>źkÖ¬ńńńBHuuő‡~ęzâtřđá››kllL7Źţ™^—«ĄŞŞŞěěě ¸¸X´B•••äłţK–,ń÷÷g·-„Ú'ś¨P[ŚŚtrręÝ»·ş"ÎÍÍ ttTő‹@Q”ťť]çÎť…) RѶŇV8Q!•#„Ô×ׇ„„ěßżźk‘DXXŞ7áďďOÇp!vđR9Š˘zôč‘———(ů-!$''gÁ‚666666 ,ČÉÉ^1>|řđáĂĎť;çęęIˇSNť:ĺęęjee5sćĚüń믿vpp1b„ŹŹŹđĎź?_ż~ýřńă­¬¬ěěě–/_ţŕÁ±kqtmUUU|>¸>źOIII™1c†µµµ““Ó7ß|ÓŘŘH—ĘÍÍőňň˛¶¶ž:ujzz:‹>‘Ü/YŰşpá¬Ył¬­­ÝÝÝÓŇŇř|>Ý6BýsUU•ؾȩŤÎ“čęęjmmííí}ëÖ-ş¶łgĎÎś9sÄvvv›6mzýúuccŁ˝˝=źĎ?uęťçСC|>?00Ĺ.#ÄNT¨-ŔÎť;+**Äľş|ů˛źź_QQŃ#¬­­‹ŠŠüüü._ľ,š'$$dŔ€ýúő¦ěŢ˝ŰŇҲWŻ^wďŢýôÓOOź>mkkkffVXXLçٰaĂŮłgutt\\\zôčqţüů5kÖČjáôéÓÝÜÜÜÜÜzőęEQÔ{ď˝—••µnÝşŠŠ ggg@łiÓ&BČŐ«W}}}oßľ=jÔ¨ž={ł^tJ¸_˛¶•——đË/żŚ5ĘĚĚŚá !µ6Ń aaa–––={öĽuë]gFFĆúőë}úĐÂĂĂmmmź={6yňäű÷ď×××ÇĆĆŔćÍ›ÝÝÝkkk'MštńâĹúúzOOĎ#GŽäĺĺŐÔÔPUXXŘĄK—1cĆ(lBJ„j#+V¬ČĘĘJOOwppMżyó&Ě1ţ8cĆŚččh:QhÄbµŃo1022˘?0ŚŤŤ@ßěŮł'33óôéÓ»víúůçźEż’Ş®®níÚµoŢĽńóó›8qâÚµk !ôĂŠB?˙üsQQ‘deŐ)ö0…‰‰‰Ôý˘ŻżIn«¤¤„ů¶„dŐ&ś¨čWÁvďŢťţřöí[ú cÇŽCCĂôôt@бcÇA 6ěćÍ›ŮŮŮzzzoßľť:uŞęž=AH*p¨ŤmذaĹŠ;wŤ›ÄžąčСÔl˛>ҶnÝúÝwßYYYMś8qöěŮëÖ­“ßÂíŰ·˙öŰoÎÎÎK–,BEQ...şşşÂ<]»vĄg;á>"ça á~ÉÚ–Ř&¤n‹üA4ENm Ł“Eééé úgOOĎ›7offfŇç®®®rv!UŔ{T¨ŤPĺěě!$??ź˘¨ĄK—¶~[¦¦¦Ź?öóó377{:CRhh(lÝş•NY°`A```@@€‹‹KAAÁÝ»wéç5Ľ˝˝‹‹‹###óóóŕÇq•|˛¶5ţü˘˘"á¶ EK :ôćÍ›ź|ň‰………čĹRYµÉi€ŹŹĎúőëCCCłłłKKKëęęÜÜÜ:uęDQ”‰‰‰‹‹Krrr}}ýâĹ‹y<<»Em ÇjSfff«WŻMqppŚŚ´˛˛****..9räč›%­´m۶ţýűß»wݰ°Đ××Wô:¤úúzú‰ľääääääłgĎNź>=$$ÄÄÄäĉ•••óçĎß»w/EQ6lčŰ·ďO?ýtăĆŤůóç·r–˘(ĘÍÍMr[<ĎĹĹeëÖ­ćććůůůĎž=ŁgSˇaÆUWWßąs‡~Ú‚&µĺ<ON;]]]·mŰÖ·oßěě쪪Şţóź˘ĎĽxzzŇ?L›6­5{Š;řâD„4†¬ĺšT­˘˘ÂŃŃqđŕÁ'NśŕÚźlŁö/ý!„d"„ěŮł‡ľpęîî®îć v '*„<111ď˝÷ž«««···şŰ‚Ú)Ľô‡BÓđa „Bś†B!NÉ !„§áD…BÓp˘B!Äi8Q!„â4ś¨BqNT!„8MV¦8p0FÝM@!5Űľ[썣ZC&*Řľ[ÝM@!µYľbµâLKK&*řăŤć!„´ ŢŁB!Äi8Q!„â4ś¨BqNT!„8 '*„Bś†B!NÉ !„§áD…BÓp˘B $$„Ď秦¦BZSOii©ŤŤ !DřĂŁGŹěíí™”-Őš6°PZZ:\„­­­ŻŻďŁGŹ„Mjăö ÔĆp˘BśFihhHMM=ztbb˘Rę¤(Ş˙ţWŻ^Ą( š››•R­Jéëë—”””””§¤¤tęÔiăĆŤęnBm'*ÄuçĎź755ÝĽysnnîóçĎéD:’ŽŽ¶µµ=zô‘#G¶lŮ2räČ?üđĉÂPăŕÁcÇŽ=zô–-[鲢±Ń”)SŞ««ů|ľ0Eô[BHEEĹgź}fcc3yňä´´4a ŐŐŐcĆŚ7n\hh¨°r•˘(ŠÇ㙚š.X°@tͰÇŹ;ÖŢŢţ»ďľŁS®\ą2cĆ kkëI“&%$$ŁŔÄÄÄiÓ¦Y[[»ąąĺććŇű¨–}A9ś¨×%&&Ξ=ű>°¶¶NII¦ży󦩩);;{É’%aaa]ştą|ůňż˙ýď˝{÷ 3Üşu+--íĉEEE¬<==ÝŘظ¸¸XÖÖ7mÚ$222bccřáazHHľľţąsçNžÜ?zôNďÚµk‡~úé']]]©“G[k!äĹ‹{öěIOO˙ý÷ďÝ»—@§×ÖÖ677GDDBŇÓÓ'NśČ©}AH*Ľô‡¸«¤¤äŃŁGnnnffffff¦¦¦®®®ÉÉÉoßľeXĂÎť;_ż~]VV1}út©yš››ASSSaaacc#}M 'L°cÇŽĘĘĘÇŹGEEŃéFFF‘‘‘555Ż_żŢ°aCPPPë÷Wą^˝zUUUuđŕA:Ąďo­ZµęÚµkÍÍÍĎź?744 ŮÔÎáD…¸+!!ÁŢŢŢŘŘX2qâÄšššśś&Ĺuuu---§M›ćííý÷ż˙ýÓO?•ĚÓµk׿ýíovvvďż˙ţÂ… —.]ęääÔŻ_?a†-[¶Ŕ¤I“fÍš5věXazHHČÇťśś\\\šššÖ­[Çz7•‹˘(33łĹ‹Ďź?Ö¬Y“&M4hĐ„ ®_żnllĽrĺĘ•+WŽ5*)))44”.ÂŮ}AFݸÁčV—8ł'|7ľá B~ýőW///Y÷uŇ2Ú}Ä !„§áD…BÓđ©?¤…„‹$©»!!%Ŕ !„§áD…BÓp˘B!Äi8Q!„â4ś¨BqNT!„8MKO_ľbµş›€BH%´a˘Úľ[ÝM@!¤*Ú0QiëňV!„ďQ!„â8ś¨BqNT!„8í˙'čŤpęÇ5IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_scale_draw__inherit__graph.map0000644000175000017500000000026512052741160023555 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_5.png0000644000175000017500000000453212052741161017250 0ustar gudjongudjon‰PNG  IHDR3%ˇÂ™;bKGD˙˙˙ ˝§“ IDATxśí›kLSŮÇ÷Z`l ąĄ*˘ ĆÄąđˇ0Hă#LŤŃAL‰ z‰”‡¦«1Ţ0vŞĐhüŕMh@^cb!"/ ję-aZŰH©bixä%[eßçÚé´‡Ë =ŕţĹ»Ű}Ö^gý×ę>gł‹A k<í U&AFPe"dU&AFĽí>wuu]¸pÁ#®¬öěŮ#‰<íĹ 5W Ž™ŮíÍ>|¸««‹Çă-Żc«˝^˙ôéSRíu#5W„™cżfx<^uuőryµz¨®®NOO÷´ö 5Éać ÷L‚Ś ĘD ČŞL‚Ś ĘD ČŞL‚ڏ_™:ťîرcÁÁÁT*uăĆŤůůůÎ/Ńh4ľľľÖŹĎź?ß·oźżż?ťNŹ‹‹kjjrŰÂą0¬>86–‡W݆¤Ňß4šÁe›q1,QÍţţţĚĚĚuëÖůůůmŢĽą¨¨Čd2ąĽĐíČ ™ăfeŞŐęŘŘXŃÚÚ:>>^[[űęŐ+ŹçRN+ÝÝÝIIIű÷ď×jµz˝>+++55U.—»ç!>>>đĎ„††rąÜąąążp–Eb0ŚßĽŮĚç˙Äç˙$•ţöăŹőËďĂB,QMaRR›Í–Ëĺăăă÷ďßňäInn®Ë ÝÓâkÉ;ŇŇŇŇŇŇ +víÚ•››kŰ3??źPPP°{÷n‰D!4 €’’áŕŕź–ŁŃČçóŻ^˝jkA$]ąrE­V[ăbm«Őę 6”––Ňh´M›6ㆇ‡˝˝˝u:Ýű÷ďłłł‚‚8Ι3g,‹­[đ~ŁŃč ŁŃHhÇ:µZ­v“ŞŞ*Çxö÷Źţüsăwßý;$$oÆB'?$$/$$ď‡nş ňŇY5»»»1 3™LÖË{zzŽ9? '•JY,›Í>{ö¬­4vúVTT0™L6›]YY‰Űq”Bř•dŽ;kćÔÔTkk«P(´íÄ0,//ďÁ ĄĄĐŃŃÁ`0ÚÚÚmmmŰ·o·ŢłŹŹO{{{FF†­…’’’˘˘˘…&ěîîîíí‹ĹuuuxgMMM|||xx¸P(śťťU©TííííííĺĺĺÎo!00Đ1? íX§ćrą‹ Ńččű;wÚ÷ďżÁă])-}¤Ófó'H¦B8KWs۶mQQQ‡jhhx÷î ::Z&“á¦ZZZ”JĺŁGŹnܸAčĆČČHOOŹN§;}útaa!Ţé(ÇôôôęÎś?°«ÔĹ|ËjµZ Ăđ/0[ ťNW*•t:Ýb±äää3ŚŹ?ž:uJ$YďD§ÓaöéÓ§…ľ™ěÚjµB899éëë«Ńh „;wîĽ{÷®Ůl¦P(řUŹ?މ‰Á/±ĺňĺËv6íNěŕS;§ŞŞ èŐŐĎÓŇn®[—Zú˙ŇńyÖĚĄ« !śśś,//ONNf2™‘‘‘çĎźź™™ź…Ójµř0™LM(Ŕh4BU*•9Vkć8V"Áé<—°X, ĂŢľ}aŰo0‚Ł˘˘äryGG‡L&“Éd …˘­­íÖ­[Ö‘L&ż~ýzk§R©ěęęJHH ś”JĄ˛X,ÁµµµYYY …âáÇ‹% ŔÖC€ŹŹĎ˝,dÇ:µKh´ …• 8[˙}€ĂÉ_ĽoîńÍ7Aß~;â|ĚŇŐ0Śśśśśśˇ\.?wî\FFF}}=`Íš5VË\.w``€Đ *•ŹÇ{ĺX­™ă;•É`0ËĘĘ®_żŽ÷\»v-55µ¬¬,%%đý÷ß×ŐŐ EFFňůüššÁ×××gµçÎťK—.YÍJ$’ééé„„řů‘ĎVE ìíôôt‰DBŁŃ8@ŁŃ(Š——×ŘŘżż?`fffttÔÉŢŕB°ŮlB;¶S;gn®ďčŃ“żţŞ4›?zy­±X>-42,ě§OďůRż”ŇR©Ë1KWóäÉ“˝˝˝ÍÍÍ ĂbccKJJţżóóóoŢĽ hµÚB7L(ÇjÍěÖĐEî¨T*&“) 5ŤÉd‹Ĺ …ĹbŤŤŤAëęęđ›‡Ţ»wŹFŁŔĎŃ.++ ĘĎĎ7›Í‹ŻLG9đţUź9B‚ßgÜűÝĐÜÜśFŁŮ±c‡ű+řJ˙-$Ú}šüĺEMŤ\Ą2P©ŢËǸ¸-÷ď˙ëďvÉăjâ<ňäać¸óžąľľľ_mY:'8Ř?;›źťÍ×éŚőő˙mhx!l÷´S.@jz–ż˛2.‰`&&yÚŮA'Ú#ž: ą @•‰@T™A•‰@T™!Ř›ŐétËďĘJçĹ‹žv¤&ů!λ“R©ë“–…ŕńx‹9ó±l 5W Ž™c@ôž‰@T™A•‰@T™ůxĘOć;IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_spectrogram.html0000644000175000017500000017572712052741164022047 0ustar gudjongudjon Qwt User's Guide: QwtPlotSpectrogram Class Reference
QwtPlotSpectrogram Class Reference

#include <qwt_plot_spectrogram.h>

Inheritance diagram for QwtPlotSpectrogram:

List of all members.

Public Types

enum  DisplayMode {
  ImageMode = 1,
  ContourMode = 2
}
- Public Types inherited from QwtPlotRasterItem
enum  CachePolicy {
  NoCache,
  PaintCache,
  ScreenCache
}
- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

 QwtPlotSpectrogram (const QString &title=QString::null)
virtual ~QwtPlotSpectrogram ()
virtual QwtDoubleRect boundingRect () const
const QwtColorMapcolorMap () const
QwtValueList contourLevels () const
virtual QPen contourPen (double level) const
const QwtRasterDatadata () const
QPen defaultContourPen () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const
virtual QSize rasterHint (const QwtDoubleRect &) const
virtual int rtti () const
void setColorMap (const QwtColorMap &)
void setConrecAttribute (QwtRasterData::ConrecAttribute, bool on)
void setContourLevels (const QwtValueList &)
void setData (const QwtRasterData &data)
void setDefaultContourPen (const QPen &)
void setDisplayMode (DisplayMode, bool on=true)
bool testConrecAttribute (QwtRasterData::ConrecAttribute) const
bool testDisplayMode (DisplayMode) const
- Public Member Functions inherited from QwtPlotRasterItem
 QwtPlotRasterItem (const QString &title=QString::null)
 QwtPlotRasterItem (const QwtText &title)
virtual ~QwtPlotRasterItem ()
int alpha () const
CachePolicy cachePolicy () const
void invalidateCache ()
void setAlpha (int alpha)
void setCachePolicy (CachePolicy)
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Protected Member Functions

virtual QSize contourRasterSize (const QwtDoubleRect &, const QRect &) const
virtual void drawContourLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const
virtual QwtRasterData::ContourLines renderContourLines (const QwtDoubleRect &rect, const QSize &raster) const
virtual QImage renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &rect) const

Detailed Description

A plot item, which displays a spectrogram.

A spectrogram displays threedimenional data, where the 3rd dimension ( the intensity ) is displayed using colors. The colors are calculated from the values using a color map.

In ContourMode contour lines are painted for the contour levels.

spectrogram3.png
See also:
QwtRasterData, QwtColorMap

Member Enumeration Documentation

The display mode controls how the raster data will be represented.

  • ImageMode
    The values are mapped to colors using a color map.
  • ContourMode
    The data is displayed using contour lines

When both modes are enabled the contour lines are painted on top of the spectrogram. The default setting enables ImageMode.

See also:
setDisplayMode(), testDisplayMode()

Constructor & Destructor Documentation

QwtPlotSpectrogram::QwtPlotSpectrogram ( const QString &  title = QString::null)
explicit

Sets the following item attributes:

  • QwtPlotItem::AutoScale: true
  • QwtPlotItem::Legend: false

The z value is initialized by 8.0.

Parameters:
titleTitle
See also:
QwtPlotItem::setItemAttribute(), QwtPlotItem::setZ()

Member Function Documentation

QwtDoubleRect QwtPlotSpectrogram::boundingRect ( ) const
virtual
Returns:
Bounding rect of the data
See also:
QwtRasterData::boundingRect()

Reimplemented from QwtPlotItem.

const QwtColorMap & QwtPlotSpectrogram::colorMap ( ) const
Returns:
Color Map used for mapping the intensity values to colors
See also:
setColorMap()
QwtValueList QwtPlotSpectrogram::contourLevels ( ) const

Return the levels of the contour lines.

The levels are sorted in increasing order.

See also:
contourLevels(), renderContourLines(), QwtRasterData::contourLines()
QPen QwtPlotSpectrogram::contourPen ( double  level) const
virtual

Calculate the pen for a contour line.

The color of the pen is the color for level calculated by the color map

Parameters:
levelContour level
Returns:
Pen for the contour line
Note:
contourPen is only used if defaultContourPen().style() == Qt::NoPen
See also:
setDefaultContourPen(), setColorMap(), setContourLevels()
QSize QwtPlotSpectrogram::contourRasterSize ( const QwtDoubleRect &  area,
const QRect &  rect 
) const
protectedvirtual

Return the raster to be used by the CONREC contour algorithm.

A larger size will improve the precisision of the CONREC algorithm, but will slow down the time that is needed to calculate the lines.

The default implementation returns rect.size() / 2 bounded to data().rasterHint().

Parameters:
areaRect, where to calculate the contour lines
rectRect in pixel coordinates, where to paint the contour lines
Returns:
Raster to be used by the CONREC contour algorithm.
Note:
The size will be bounded to rect.size().
See also:
drawContourLines(), QwtRasterData::contourLines()
const QwtRasterData & QwtPlotSpectrogram::data ( ) const
Returns:
Spectrogram data
See also:
setData()
QPen QwtPlotSpectrogram::defaultContourPen ( ) const
Returns:
Default contour pen
See also:
setDefaultContourPen()
void QwtPlotSpectrogram::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the spectrogram.

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rect of the canvas in painter coordinates
See also:
setDisplayMode(), renderImage(), QwtPlotRasterItem::draw(), drawContourLines()

Reimplemented from QwtPlotRasterItem.

void QwtPlotSpectrogram::drawContourLines ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QwtRasterData::ContourLines &  contourLines 
) const
protectedvirtual

Paint the contour lines

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
contourLinesContour lines
See also:
renderContourLines(), defaultContourPen(), contourPen()
QSize QwtPlotSpectrogram::rasterHint ( const QwtDoubleRect &  rect) const
virtual

Returns the recommended raster for a given rect.

F.e the raster hint is used to limit the resolution of the image that is rendered.

Parameters:
rectRect for the raster hint
Returns:
data().rasterHint(rect)

Reimplemented from QwtPlotRasterItem.

QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines ( const QwtDoubleRect &  rect,
const QSize &  raster 
) const
protectedvirtual

Calculate contour lines

Parameters:
rectRectangle, where to calculate the contour lines
rasterRaster, used by the CONREC algorithm
See also:
contourLevels(), setConrecAttribute(), QwtRasterData::contourLines()
QImage QwtPlotSpectrogram::renderImage ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QwtDoubleRect &  area 
) const
protectedvirtual

Render an image from the data and color map.

The area is translated into a rect of the paint device. For each pixel of this rect the intensity is mapped into a color.

Parameters:
xMapX-Scale Map
yMapY-Scale Map
areaArea that should be rendered in scale coordinates.
Returns:
A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map.
See also:
QwtRasterData::intensity(), QwtColorMap::rgb(), QwtColorMap::colorIndex()

Implements QwtPlotRasterItem.

int QwtPlotSpectrogram::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotSpectrogram

Reimplemented from QwtPlotItem.

void QwtPlotSpectrogram::setColorMap ( const QwtColorMap colorMap)

Change the color map

Often it is useful to display the mapping between intensities and colors as an additional plot axis, showing a color bar.

Parameters:
colorMapColor Map
See also:
colorMap(), QwtScaleWidget::setColorBarEnabled(), QwtScaleWidget::setColorMap()
void QwtPlotSpectrogram::setConrecAttribute ( QwtRasterData::ConrecAttribute  attribute,
bool  on 
)

Modify an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters:
attributeCONREC attribute
onOn/Off
See also:
testConrecAttribute(), renderContourLines(), QwtRasterData::contourLines()
void QwtPlotSpectrogram::setContourLevels ( const QwtValueList &  levels)

Set the levels of the contour lines

Parameters:
levelsValues of the contour levels
See also:
contourLevels(), renderContourLines(), QwtRasterData::contourLines()
Note:
contourLevels returns the same levels but sorted.
void QwtPlotSpectrogram::setData ( const QwtRasterData data)

Set the data to be displayed

Parameters:
dataSpectrogram Data
See also:
data()
void QwtPlotSpectrogram::setDefaultContourPen ( const QPen &  pen)

Set the default pen for the contour lines.

If the spectrogram has a valid default contour pen a contour line is painted using the default contour pen. Otherwise (pen.style() == Qt::NoPen) the pen is calculated for each contour level using contourPen().

See also:
defaultContourPen(), contourPen()
void QwtPlotSpectrogram::setDisplayMode ( DisplayMode  mode,
bool  on = true 
)

The display mode controls how the raster data will be represented.

Parameters:
modeDisplay mode
onOn/Off

The default setting enables ImageMode.

See also:
DisplayMode, displayMode()
bool QwtPlotSpectrogram::testConrecAttribute ( QwtRasterData::ConrecAttribute  attribute) const

Test an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters:
attributeCONREC attribute
Returns:
true, is enabled
See also:
setConrecAttribute(), renderContourLines(), QwtRasterData::contourLines()
bool QwtPlotSpectrogram::testDisplayMode ( DisplayMode  mode) const

The display mode controls how the raster data will be represented.

Parameters:
modeDisplay mode
Returns:
true if mode is enabled
qwt5-5.2.3/doc/html/dir_2ff4213617fffae17c49a9829be91ab6_dep.map0000644000175000017500000000041012052741161022323 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_legend-members.html0000644000175000017500000002473612052741140021334 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLegend Member List

This is the complete list of members for QwtLegend, including all inherited members.

AutoIdentifier enum value (defined in QwtLegend)QwtLegend
CheckableItem enum value (defined in QwtLegend)QwtLegend
clear()QwtLegend
ClickableItem enum value (defined in QwtLegend)QwtLegend
contentsWidget()QwtLegend
contentsWidget() const QwtLegend
displayPolicy() const QwtLegend
eventFilter(QObject *, QEvent *)QwtLegendvirtual
find(const QwtLegendItemManager *) const QwtLegend
find(const QWidget *) const QwtLegend
FixedIdentifier enum value (defined in QwtLegend)QwtLegend
heightForWidth(int w) const QwtLegendvirtual
horizontalScrollBar() const QwtLegend
identifierMode() const QwtLegend
insert(const QwtLegendItemManager *, QWidget *)QwtLegend
isEmpty() const QwtLegend
itemCount() const QwtLegend
itemMode() const QwtLegend
layoutContents()QwtLegendprotectedvirtual
LegendDisplayPolicy enum nameQwtLegend
LegendItemMode enum nameQwtLegend
legendItems() const QwtLegendvirtual
NoIdentifier enum value (defined in QwtLegend)QwtLegend
QwtLegend(QWidget *parent=NULL)QwtLegendexplicit
ReadOnlyItem enum value (defined in QwtLegend)QwtLegend
remove(const QwtLegendItemManager *)QwtLegend
resizeEvent(QResizeEvent *)QwtLegendprotectedvirtual
setDisplayPolicy(LegendDisplayPolicy policy, int mode)QwtLegend
setItemMode(LegendItemMode)QwtLegend
sizeHint() const QwtLegendvirtual
verticalScrollBar() const QwtLegend
~QwtLegend()QwtLegendvirtual
qwt5-5.2.3/doc/html/class_qwt_picker_click_rect_machine-members.html0000644000175000017500000001321712052741140025211 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPickerClickRectMachine Member List

This is the complete list of members for QwtPickerClickRectMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)QwtPickerClickRectMachinevirtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/inherit_graph_22.png0000644000175000017500000000314512052741162017327 0ustar gudjongudjon‰PNG  IHDRx%ş¬bKGD˙˙˙ ˝§“IDAThíoHoŔź;öçďfmĺ ™2bő"Ă?¨Ă5ËRhYI ˝°"ĘYXP-}ŁQąčŹ„…l"DRaŚĹ`!+‡č­-MÓnQ-÷ý˝¸_ă~kYŽşŔß}^íľĎ}źçű|v÷ÜÝůóເ˙ ˘hE „(Z $QÇCCCÇŹ˙+Ą,%Z[[sssů,ę­Ăd2 ĺĺĺ [Ř’‚ŘŰŰËF_ѡďOY&“éű ¸F „(Z DŃ!ŠQ´@Ä/š¦éşş:µZ-“ÉŇÓÓŹ9ňţýű…SĽ^/AÜڇJĄÚ±cG ŕźłpOź>­¬¬T($Ićçç Ä=ť?Mś˘GFFrrr(Šś››łŰíŁŁŁyyy?uA.—Ă7†‡‡ ‚Ř·oߢjxöě٦M›¶nÝ:66ćóůöîÝ[SSărą?A€˙b4ŤF#üŚ’’’C‡ń#áp¸°°°±±±´´Ôb±€ßďGť9sŢĽyĂÔápđE€ÓéT©T022iš››Ű˝{·R©LMM=věwÉsLOOëőúsçÎń;ijj:}ú4x<žŤ7ˇŃhnܸÁu›––ÖŐŐĄT*“““{zz`Ë–-ÍÍÍ\îÔÔ”D"ˇiúű\čííÍĚĚ$"++ëŃŁG ˉé0Ń Ăŕ8>>>·Űí«WŻ>ţ|ee%Üľ}›˘(ÁŔý^»vmD"ß&ÚÚÚŠŠŠ¨&łŮĽm۶©©©ŃŃŃěěěłgĎFZÁ Žă~ż?f…ŐŐŐ'OžüüůłŐj]ąr%×mBBÂÁ†9uęTJJ twwët:.ĺÂ… ĹĹĹ1s†‘JĄ<`YöâĹ‹ űům˘ÇĆĆ0 …BQq·ŰM’¤Çă!I2 8p ąą™˘¨Ż_ż644455ńEó/p’$«ŞŞ|>đDł,‹ă8MÓ\çv»=;;;ŇJÓ4†aóóó1+|ńâĹÇŹCˇĐőë×ů#NOOŔóçĎą Ă0Ax˝^(**şzőjĚÜŮŮYą\ŢÝÝýéÓ§p8̲l˘ăYŁW¬XaŘ«WŻ˘â~ż_­Vgee%%%ą\.‡ĂQ[[«R©Ün÷ăÇŹ ˙dţ ďÜą“ššĘ?arr!”žžÎjµÚׯ_GZ•J%7"?ĹăńX­V„Óé,,,ĚÍÍíďĘd2•J…ÂńgÍÝpv»=¸ÝnŁŃ3wٲewďŢ˝yó¦Z­.//ŽCZ<˘)Š*..îččDÚŰŰ'&&:::¶oߎÚĽys__ßää¤N§Óëő6›Íď÷ççç/jµZŤzůň%w811‘’’ÂŻˇ  ŕĘ•+ü‹ĹrďŢ˝™™™úúúË—/»\®ÖÖÖH+†aߏb6›űúúl6[uuubbbĚ\–e Ĺýű÷ßľ}[ZZj6›5Ž›JżBgggQQ444¤ĄĄÁĚĚ̤¤¤žž„Á`¨««+++Ă0LŻ×ďßżż˘˘B*•r7{(ú•!äryMMÍáÇ­V+Ă0---»víŠô •JŰÚÚôz=Žă&“)!!ÁfłÝşukpp»K$Éěě¬Ĺb™źźgćGŁTUUŐ××wvv^şt }{5Ę•H$%%%>\·nA Ľ}.ÄŻ¬/1ßłgOrr˛L&ÓjµŤŤŤ6lhiiá–Nř|>„Őj€>¬Ył†$É'OžD˝uDŕ? gffvîÜą|ůňU«V=zôË—/‘Ţ˝{‡ŁĽĽ<11QˇP p‰'Nś (*##Łżż_§Ó•••ń»Ťz›ÍfŤF‡” ×®]Óh4Aäää8ťÎ…ÍÄtc?!ß6)˲^ŻwýúőńüáKç'8A˘ĺ!îu„(Z DŃ!ŠQ´@˘"Ć—!MÓ]]]—˛d iZ«ŐFGŁ>`ÚÚÚţFmKŤöööź|Šü!Ä5Z DŃ!ŠQ´@üŮvüy jIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_polygon_machine__inherit__graph.md50000644000175000017500000000004012052741141026057 0ustar gudjongudjon48a0ecab21078e1d9700c87e85f65f18qwt5-5.2.3/doc/html/class_qwt_plot_grid.html0000644000175000017500000013012412052741164020424 0ustar gudjongudjon Qwt User's Guide: QwtPlotGrid Class Reference
QwtPlotGrid Class Reference

#include <qwt_plot_grid.h>

Inheritance diagram for QwtPlotGrid:

List of all members.

Public Member Functions

 QwtPlotGrid ()
virtual ~QwtPlotGrid ()
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const
void enableX (bool tf)
void enableXMin (bool tf)
void enableY (bool tf)
void enableYMin (bool tf)
const QPen & majPen () const
const QPen & minPen () const
virtual int rtti () const
void setMajPen (const QPen &p)
void setMinPen (const QPen &p)
void setPen (const QPen &p)
void setXDiv (const QwtScaleDiv &sx)
void setYDiv (const QwtScaleDiv &sy)
virtual void updateScaleDiv (const QwtScaleDiv &xMap, const QwtScaleDiv &yMap)
bool xEnabled () const
bool xMinEnabled () const
const QwtScaleDivxScaleDiv () const
bool yEnabled () const
bool yMinEnabled () const
const QwtScaleDivyScaleDiv () const
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
virtual QwtDoubleRect boundingRect () const
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Additional Inherited Members

- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Detailed Description

A class which draws a coordinate grid.

The QwtPlotGrid class can be used to draw a coordinate grid. A coordinate grid consists of major and minor vertical and horizontal gridlines. The locations of the gridlines are determined by the X and Y scale divisions which can be assigned with setXDiv() and setYDiv(). The draw() member draws the grid within a bounding rectangle.


Member Function Documentation

void QwtPlotGrid::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the grid.

The grid is drawn into the bounding rectangle such that gridlines begin and end at the rectangle's borders. The X and Y maps are used to map the scale divisions into the drawing region screen.

Parameters:
painterPainter
xMapX axis map
yMapY axis
canvasRectContents rect of the plot canvas

Implements QwtPlotItem.

void QwtPlotGrid::enableX ( bool  tf)

Enable or disable vertical gridlines.

Parameters:
tfEnable (true) or disable
See also:
Minor gridlines can be enabled or disabled with enableXMin()
void QwtPlotGrid::enableXMin ( bool  tf)

Enable or disable minor vertical gridlines.

Parameters:
tfEnable (true) or disable
See also:
enableX()
void QwtPlotGrid::enableY ( bool  tf)

Enable or disable horizontal gridlines.

Parameters:
tfEnable (true) or disable
See also:
Minor gridlines can be enabled or disabled with enableYMin()
void QwtPlotGrid::enableYMin ( bool  tf)

Enable or disable minor horizontal gridlines.

Parameters:
tfEnable (true) or disable
See also:
enableY()
const QPen & QwtPlotGrid::majPen ( ) const
Returns:
the pen for the major gridlines
See also:
setMajPen(), setMinPen(), setPen()
const QPen & QwtPlotGrid::minPen ( ) const
Returns:
the pen for the minor gridlines
See also:
setMinPen(), setMajPen(), setPen()
int QwtPlotGrid::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotGrid

Reimplemented from QwtPlotItem.

void QwtPlotGrid::setMajPen ( const QPen &  pen)

Assign a pen for the major gridlines

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penPen
See also:
majPen(), setMinPen(), setPen(), QwtPainter::scaledPen()
void QwtPlotGrid::setMinPen ( const QPen &  pen)

Assign a pen for the minor gridlines

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penPen
See also:
minPen(), setMajPen(), setPen(), QwtPainter::scaledPen()
void QwtPlotGrid::setPen ( const QPen &  pen)

Assign a pen for both major and minor gridlines

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penPen
See also:
setMajPen(), setMinPen(), QwtPainter::scaledPen()
void QwtPlotGrid::setXDiv ( const QwtScaleDiv scaleDiv)

Assign an x axis scale division

Parameters:
scaleDivScale division
void QwtPlotGrid::setYDiv ( const QwtScaleDiv scaleDiv)

Assign a y axis division

Parameters:
scaleDivScale division
void QwtPlotGrid::updateScaleDiv ( const QwtScaleDiv xScaleDiv,
const QwtScaleDiv yScaleDiv 
)
virtual

Update the grid to changes of the axes scale division

Parameters:
xScaleDivScale division of the x-axis
yScaleDivScale division of the y-axis
See also:
QwtPlot::updateAxes()

Reimplemented from QwtPlotItem.

bool QwtPlotGrid::xEnabled ( ) const
Returns:
true if vertical gridlines are enabled
See also:
enableX()
bool QwtPlotGrid::xMinEnabled ( ) const
Returns:
true if minor vertical gridlines are enabled
See also:
enableXMin()
const QwtScaleDiv & QwtPlotGrid::xScaleDiv ( ) const
Returns:
the scale division of the x axis
bool QwtPlotGrid::yEnabled ( ) const
Returns:
true if horizontal gridlines are enabled
See also:
enableY()
bool QwtPlotGrid::yMinEnabled ( ) const
Returns:
true if minor horizontal gridlines are enabled
See also:
enableYMin()
const QwtScaleDiv & QwtPlotGrid::yScaleDiv ( ) const
Returns:
the scale division of the y axis
qwt5-5.2.3/doc/html/class_qwt_thermo__inherit__graph.png0000644000175000017500000000661512052741160022763 0ustar gudjongudjon‰PNG  IHDR…pżç$ÁbKGD˙˙˙ ˝§“ BIDATxśíť{LS×ŔOK …•gGKu˘<| bťŮW3cŚ÷kYx9†Yp Č²™š±%Nt‘ŚD,Q -NÝČĐ ¦8pĽ-*â€M&Ą-…BK{éůýq÷»ąşI‘ŢâůüAî=Üó˝ß{>÷ÜCOĘ=4!@Pşą@<ňA-j|P ygll,55U©Tš+›çľňĘ+Ä.Ťü÷•X,Ž‹‹‹‰‰1GbĎ#×®]۲e‹X,&J3"˙ńL‰ŤŤťV‚Ćj|P äZ Ôů sôŃŰŰ›čććfmm˝bĹŠ={öŚŚŚ<ąJww7‹Ĺ"—¤¦¦Ňh4‰Dň„cţc¨§‚\˝ŻŻ/!!aéŇĄ¶¶¶ŢŢŢź~ú©V«ťs4Ó™‹™L¶iÓ&‡úúz•J%‘HîÜąłeË–UBfbbB,UTTĚ!‡yB¸}űvŹ×ÜܬR©*++222Ě•Ď?9ś9sfZɬfddKŚFŁP(ĚĘĘ :tč„đŻżţ|őŐWÂÁÁAňĺr9„°˘˘bÆ ]]]L&shhŹ#“ÉlllŽ=Ęĺr]]]wíÚĄÓé „b±xőęŐ,kÝşuäŹGW®\Yľ|ů±cÇŘl¶L&ëěě,ËÝÝ˝ĽĽŹ9::š’’Âápx<Ţľ}űär9Q˝µµ•FŁiµZâBÚŰŰăăăg­Î<ž3ţ[ŤFłsçN.—»dÉ’ěělÁđä–Ś‰‰‰‰‰!—<µµZM§ÓďÝ»7­\"‘x{{ýő×ÁÁÁÂÓ§O;88ĽőÖ[ř¶ŻŻ/9oˇH$*..†=z”đ yřđaGGÇĘ•+óňňÔj5“ÉĽté’N§;~ü¸——J&“Y[[ďرcppBľ˙~­V[ZZĘĺrńÉÉÉaaaCCC2™lٲeR©”¨ŽaŘúőë««« Ĺ´+šYqÖSŻëý÷ßOHHËĺ===ŕČ‘#OnĚyđŃÓÓCŁŃfšoii±··ďěě´··7 éééź}ö™†a~řaNN9ďű÷ďłŮlµZ !,,,ô÷÷'űčééÁwOť:µfÍĄRiccSQQ111a4u:Ů€č^·nÝ7 eeeřz˝žÁ`wOCCCss39µZ]TTĘáp|||öíŰ7>>ţ¸Šłž‚¦×ë™LćČČ^ĺ—_~ xć>×?.\¸°rĺJá˛eË®]»ćëëŰŐŐĺééŮÔÔ´víÚúúzr+äĺĺ1 ŹÇăń\\\řµŃétŁŃöűďż;;;C/^Ľřć›o:88566NëD'Ožô÷÷߸qcxx8~@__9 δžŠc4ĂĂĂWqÖSŃúúú¦Ť®®®OnĚyđ!‰D»wď&v>ÜŰŰ»}űöěělá|đńÇsą\ŁŃ¸cÇŽśśGGG˝^Oäm4=<–•Ëĺt:˝©© BŘŃŃ—ët::ťŢßߏóĂ?TWWµvîÜHľ´ĆĆF‡ó¸Šłž‚¦Ó鬬¬ţˇŃhţř㏅đŃŐŐĹáp233»»»µZmnn.“ÉtuuĹÁR©”ÍfăwYEE›ÍŽŚŚ„vww3 ˝^_WWggg§Ńh€ĄĄĄ|>Ă0Ľ„†† uvv®ZµęČ‘#Ť†Íf߸qC§ÓřřřˇČ>†††h4ZKK‹BˇHLLd0xÓDGGÇÄÄČĺň;wîxxxTUUŐŻ^˝jeeučС­VŰÝÝ–śśŚśYqÖSs‹‹KII‘Ëĺ> %ßµĎĐ„đŢ˝{ <ĎÚÚÚÓÓ3+++ 77B8::Ęd2> !”––BÇĆĆÖ¬Ycoo˙Î;ďÄĹĹ‘Ł 3Śšš™LćĺĺuŕŔ77·O>ůĂ0áÉ“'ÝÝÝY,Ö¦M›nܸA„şző*ůÉ“——çŕŕŕĺĺuöěYź7ŢxB¨P(Ţ}÷]ggg>źŕŔr& …˘¦¦fëÖ­l6ŰÖÖvőęŐ999“““x´™g=هJĄJHHŕp8'55ubbb|ĚD«Ő¶´´Ě­îsËLó6_Âb±üüüć+Ús šż˘Čµ@>¨ňA-j|P‹Yľďóí·ß.|Ď'˝˝˝žžžŹ‘?ŚtuuŮŰŰ›)7S ±X+­¬,1sPPP@VđČ÷-”ë×ďEFĄ¤żř"ŇÜąĘb?Ş«oâ?1Ěhî\LĹâ}čőTÚP«'._ľmîtLĹâ}Ô×wOLL¬¬čRéMs§c*ďC"ąieE`±¦¦]«Ő›;#“°lăă“?ýÔ‰aSřîä$vńâ-ó¦d"–í,@§Ó$’f3ćc:–íC"i¦ŃhÄ.†ëęşGGźî †”‚}(•ă—/ß™šzäo\áŹ?¶›+%Ó±`.´Í,„VVZđ#Ë‚}TU5Íś\0áőë÷>T›%%Ó±TŚÜĽŮg4Î2ŮceE?~–®cXŞŹóç[7ń†aS‰Ą~0śeľÝ"đňâňůÄ®F3Éb1ŚnŻőë—š)/SY ó»€%Kö””$…†ZüŽ,őyµXA>¨ňA-j|P äZ Ôů Čµ@>¨ňA-j|P äZ Ôů Čµ@>¨ňA-j|P äZ Ôů Čµ@>¨ňA-j|P äZ Ôů ČĹ0ń Ë………ćľ°±q§ÓíĚť …&¶§©˙?xůňĺµkע%V·nÝŞ¬¬41Č<ü?'—Ë}ýő×MŹhü Čµ@>¨ňA-j±pďË,++kjjăp8Bˇ0))‰Íf?ˇJjjjmm-@$Í< ®®Ž|Ě"`|ôőő}ôŃGAAAřÚ›ýýý'NśHOO/..~˛‚şş:đ¨ˇEÉ=Żľůć›m۶effâËr­ZµęË/żtrrި¨Ř»w/ľn•Bˇ‰D§Nť(•J‘H”””d0D"‘Zý/ďł:wî\hhhDDÄĄK—đ|1¶ččč’’’©©©ţţţřřx©TÜĐĐ/‹‰Z'Nś ‰ dk4šüüü°°°ŘŘŘŇŇR Ăže ýĂBřhmmŤŽŽ&Ňh´čččß~űmóćÍ---€ööv;;»¶¶6@[[›§§gyy9“ɬ««stt|B| Ăîßżúô騨¨ăÇŹă…………“““eeeÇŽkkk«®®(ŠžžžďľűÎÝÝ}xxXĄRť9s&***??ß`0TVVFEEË ŚŹŹ———\ż~˝ŞŞęY4Î4Âľî3—ËťVÎçóU*•@ čččššjooŹŚŚěčč0Ťmmm›7oţŹń!„ÉÉÉvvvBˇpll €aXmmmFF†ŁŁă’%KŇŇŇđ~aXZZľ"(ľ\Ą­­­P(ŰŁŁŁÁP__żk×.''§—^z)99ůâĹ‹ó×$Źe!Ć'''ŔĐĐźĎ'—»¸¸¬X±‚Ífßľ}»˝˝ýóĎ?˙ůçźďŢ˝ŰÚÚşgĎž˙źÁ`ŕxרR©Ä0,$$dZ ßŔ·™L&^‹ĽMD¸ąąá»|>źĽ0ôłc!|ŘŮŮůůůIĄŇôôtĽ¤˛˛ňµ×^“JĄŻľú*@ \ąrE©Tş»»űůůýúëŻĂĂĂëÖ­{đŕÁ‰O~ĺ+Žłł3ťN?wîÜ /ĽĐétjµzrrr摏ďC˙ý7~ â%ĎšĎ333kkk‹ŠŠôzýřřxbbâÝ»wß{ď=€@ řţűďׯ_OŁŃüüüΞ=ëďďĎ`0h4šŃhśĂ@Ęd2·nÝZ\\¬V«GFF<ř´O&“) ‹ŠŠFFFţüóϲ˛˛m۶=ms`|,_ľĽ¤¤dll,33óí·ß®­­Ťŕńx‰°qăFÁŕëë xůĺ—µZ->xĽřâ‹K—. ĂG…§"++kjj*111))ÉŮŮ955ői#ěÝ»×ÖÖ611q÷îÝ ..îi#ĚSß×+—ËsssçPWŻ×÷÷÷{{{›’u¨ŻŻßżż‰íiÎůkkëE#cľ@óWÔů Čµ@>¨ňA-j1ó%mmmŮŮ٦DZtT*•éALőALI!iii&FX$ďÓ_4 ńZ Ôů Čµř®ôwđ—”q'IEND®B`‚qwt5-5.2.3/doc/html/functions_0x6c.html0000644000175000017500000002456312052741151017236 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- l -

qwt5-5.2.3/doc/html/inherit_graph_1.md50000644000175000017500000000004012052741151017132 0ustar gudjongudjon49169cf107531a693a49178b0e3c4f85qwt5-5.2.3/doc/html/class_qwt_plot_panner__inherit__graph.png0000644000175000017500000000570712052741157024015 0ustar gudjongudjon‰PNG  IHDRupŻ«¨XbKGD˙˙˙ ˝§“ |IDATxśíť{LS×ŔĎíş ĄZ^•­&Ó©1ťŰjş­<6ścn#˛*K¶´K†2†Zn&{h63·HFTŘDÍ–â6Ů„V'fË0N(É€)mТ°:˰ˇ´ĐĄ·˝ż?îF®Ř‹KýťĎ¤÷›óřŢOOOď˝ĺž‹Đ`:űä.Č/\_¸°h•nllÜ˝{7¤T‚‚´´´]»vů_Łuü°yóćĆĆF©TJ?±űžžž¦¦&ZĆčŤ_€T*=yň$ÝZ÷'OžĚĘʢUÍżpA~á‚üÂů… ň X~ÍfłBˇŤŤ Y˛dIAAÝnźąJgg'‡Ă!_`"##ĺrůőë×!Ą (~M&Ó“O>Éăńęęę5Í•+W¤RéOJü‡Ńhäp8[¶l‘*t:lÚ´iÓ¦Mw,öěłĎîرńů|2™¬°°đąçž+..&˘··đůçźaµZ©)544PýŃÜÜIľîččH$G$UTTa2™âăăŹ=*bbbNś81] §Ó™““˝xńâť;wz<˛äˇC‡ÂÂÂL&Ó űőăŹ?Ň56÷ăwhh¨®®NĄRQ†ĺççź9s&==ýÂ… ¤DŹW__¨ŻŻ_˝zµÉd"µFFFRëZ­Ö®Ył†ÜüđĂ7lŘ088řŃG˝űî»d°ŻŻĎh4šÍćíŰ·ÍT©T###/^Ôét:ť®¬¬Śě˘˝˝˝««kůňĺs¬Ö»áĎříîîĆ0ĚăńLŠëőúđđ𮮮đđpŹÇ“——÷Áđx<ÇssswíÚ5á×d2Q3 ůĺ—{zzČv.]şärą<ŹZ­¦–żyó&A/^ś!8>>Îfłív;ŮÔożýöÄO%űúúî¸űłż´ĎŹďHTT†a‹%!!ďí퍍Ť]ąr%źĎommmhh¨¬¬¬¬¬Ôëőőőő_}őµphhčŘŘŘ”í777żńƆ=ôĐCÁrÔ3Ś‚V«Őăńđů|j¶dIňĹś3÷óŹÇKNN.--ť”””\˝zµ´´4##đ /hµÚ7n<účŁ)))ŐŐŐ˝˝˝O=ő”?Ť÷÷÷żőÖ[GŽimmÝ»wďDĂ°Ű ßډ‰a2™ă×ét¶´´LW}Nűń (++KJJ""777>>~hhhٲe|>˙ĉ€ôôt…B‘––†aXJJĘ;ďĽóüóĎłŮl ĂĽ^ŻÇ㙡ĺ?t,–Íf+..öz˝‡Ă˙ÄBCCĺryAAÁţýű}>ß–-[rrrîv‡§ĘńŮŠ+ţřă›Í–śśńí·ßnßľťüޤĄĄąÝn™LHMMu:ťéé逸¸¸ĄK— ›Í6]ËQQQ{öěINN–H$™™™‰‰‰rąśVnĺĺĺ8Ž/_ľ|ĹŠŃŃŃűöí»»}˝´fk?ŹĎ¦dttTŻ×Ď®îéééÉËËs:ť~¶Ŕfł/üÇ7ß|R\\L+‡»oáŢ0ż\·nťJĄ‰Dç‘GůěłĎř|ţńăÇ‹ŠŠČEĘRSS+++6›-55U©Tz<žÔÔÔI+ţ ‚W_}µłłsR/N§sßľ}›7o>věŘŔŔ€ź-üő×_ąąąëׯĎĘĘ"? ‹ĺµ×^;{ölFFFffćůóç§ ĆĆĆJJJ6nÜ(—ËËËË˝^/YR«Őľřâ‹‹…–+Ú~GFFÚŰŰ'­ÚŹa\.˙ý÷ß×®]«×ëFŁ‘Ëĺ €Á`HHH¨¨¨ ]DDµîŔŔ@uuubb⤎JJJ\.WEEEIIISSÓąsçülá믿–JĄ555 …âđáĂdĐn·›ÍćĘĘĘĚĚĚ™ĄĄĄn·[­V:tČ`0ś:uŠě˘»»ű»ďľ‰D´tŃžÉg`EGGOŠ …ÂÁÁA‰DRQQáőzŤFcff¦V«őů|aíÚµÔÂä0$_są\±XüŢ{ďM*PWW÷ý÷ßóů|>ź˙ć›oŞŐję3Hfh!;;;66–Éd˛X,—ËEÝn·R©ärą2™ěřńăÓqŻ­­=}úô‚ """¶nÝzäȉD‚ăřÖ­[gqq†¶_˛Źľľ>ˇPHŤ÷÷÷/Z´hÉ’%aaa—/_6Ť»wď>ţ|WWW{{{AAµ0›ÍžîKŚ„|Fll,ą) oŢĽég &“éÓO?Ĺ0Ś:X,9ę©ëPÝ´Ůl8ŽżôŇK“ö—ĹbÍîĘmżä`Ńjµyyyd¤ŞŞę™gžŃjµO?ý4@"‘444Řl6‘H$‹ëëëűűűW®\Iëy‹-ܸq|­V+ą#‡c˙ţý‡^¶lŮŐ«W›››É¸źĐY¸p!Á8sćĚ‚ ccc‡ĂívĎú:łů~S©Tµµµeee===ăăă.—KˇPtuu˝ţúë‰DňÓO?­Zµ Ă0±X|úôé5kÖ°X, Ă|>ŽăţtÁfłe2YYY™Ýn˙űďżŐjőşuëüi\.„Éd˙đĂ>źobŠđłßäää/żüŇápŘíö˝{÷VWWű_ývfă7>>ľĽĽ|xxXĄRmذˇ¶¶văĆŤ111ŤđřăŹ{<žŐ«W{ě±ŃŃQrňŤŚŚŚ‹‹ËČČö§—˘˘˘x@ˇPäççK$’¬¬,ZŕóůJĄRĄR˝ýöŰIII>ř ÝË­………^ŻWˇP(•Ę… fggÓŞ>‰[Ö‡!źOM>˙Ž.ăăă‹eéŇĄw“M°óńÇGEEQźo>gçÇ!!!˙çr§]€ ň ä.Č/\_¸ żp™âüxçÎť÷>ŹűłŮś––FŤÜr~188XXXHë„1‰m۶%%%MlŮúžAšá‚üÂů… ň —˙ýú…= IEND®B`‚qwt5-5.2.3/doc/html/ftv2pnode.png0000644000175000017500000000034512052741134016106 0ustar gudjongudjon‰PNG  IHDRÉŞ|¬IDATxíť=QF‘ŘĄD«ÔkÄ:‰F©PKŘ=V@§Őł Ő8SHxńĚ0ŤbnrróŠ{ň˝żľ’$ ŔĎTŠP  öĽX¬OŰd6ęěňđ"°˛S´±OĄB€(ˇŕQé)š+YÄ ŇŞËRÉĐ>VtÉsm9(ę„䜥k‚-@ȧ-Ü$ó b Ň[he żKp-ôl|Ců˙ApRG'ŹrÍ­aIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_17.map0000644000175000017500000000053612052741162017325 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_round_scale_draw.html0000644000175000017500000007616612052741165021774 0ustar gudjongudjon Qwt User's Guide: QwtRoundScaleDraw Class Reference
QwtRoundScaleDraw Class Reference

#include <qwt_round_scale_draw.h>

Inheritance diagram for QwtRoundScaleDraw:

List of all members.

Public Member Functions

 QwtRoundScaleDraw ()
 QwtRoundScaleDraw (const QwtRoundScaleDraw &)
virtual ~QwtRoundScaleDraw ()
QPoint center () const
virtual int extent (const QPen &, const QFont &) const
void moveCenter (int x, int y)
void moveCenter (const QPoint &)
QwtRoundScaleDrawoperator= (const QwtRoundScaleDraw &other)
int radius () const
void setAngleRange (double angle1, double angle2)
void setRadius (int radius)
- Public Member Functions inherited from QwtAbstractScaleDraw
 QwtAbstractScaleDraw ()
 QwtAbstractScaleDraw (const QwtAbstractScaleDraw &)
virtual ~QwtAbstractScaleDraw ()
virtual void draw (QPainter *, const QPalette &) const
void enableComponent (ScaleComponent, bool enable=true)
bool hasComponent (ScaleComponent) const
virtual QwtText label (double) const
int majTickLength () const
const QwtScaleMapmap () const
int minimumExtent () const
QwtAbstractScaleDrawoperator= (const QwtAbstractScaleDraw &)
const QwtScaleDivscaleDiv () const
QwtScaleMapscaleMap ()
void setMinimumExtent (int)
void setScaleDiv (const QwtScaleDiv &s)
void setSpacing (int margin)
void setTickLength (QwtScaleDiv::TickType, int length)
void setTransformation (QwtScaleTransformation *)
int spacing () const
int tickLength (QwtScaleDiv::TickType) const

Protected Member Functions

virtual void drawBackbone (QPainter *p) const
virtual void drawLabel (QPainter *p, double val) const
virtual void drawTick (QPainter *p, double val, int len) const
- Protected Member Functions inherited from QwtAbstractScaleDraw
void invalidateCache ()
const QwtTexttickLabel (const QFont &, double value) const

Additional Inherited Members

- Public Types inherited from QwtAbstractScaleDraw
enum  ScaleComponent {
  Backbone = 1,
  Ticks = 2,
  Labels = 4
}

Detailed Description

A class for drawing round scales.

QwtRoundScaleDraw can be used to draw round scales. The circle segment can be adjusted by QwtRoundScaleDraw::setAngleRange(). The geometry of the scale can be specified with QwtRoundScaleDraw::moveCenter() and QwtRoundScaleDraw::setRadius().

After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member.


Constructor & Destructor Documentation

QwtRoundScaleDraw::QwtRoundScaleDraw ( )

Constructor.

The range of the scale is initialized to [0, 100], The center is set to (50, 50) with a radius of 50. The angle range is set to [-135, 135].


Member Function Documentation

void QwtRoundScaleDraw::drawBackbone ( QPainter *  painter) const
protectedvirtual

Draws the baseline of the scale

Parameters:
painterPainter
See also:
drawTick(), drawLabel()

Implements QwtAbstractScaleDraw.

void QwtRoundScaleDraw::drawLabel ( QPainter *  painter,
double  value 
) const
protectedvirtual

Draws the label for a major scale tick

Parameters:
painterPainter
valueValue
See also:
drawTick(), drawBackbone()

Implements QwtAbstractScaleDraw.

void QwtRoundScaleDraw::drawTick ( QPainter *  painter,
double  value,
int  len 
) const
protectedvirtual

Draw a tick

Parameters:
painterPainter
valueValue of the tick
lenLenght of the tick
See also:
drawBackbone(), drawLabel()

Implements QwtAbstractScaleDraw.

int QwtRoundScaleDraw::extent ( const QPen &  pen,
const QFont &  font 
) const
virtual

Calculate the extent of the scale

The extent is the distcance between the baseline to the outermost pixel of the scale draw. radius() + extent() is an upper limit for the radius of the bounding circle.

Parameters:
penPen that is used for painting backbone and ticks
fontFont used for painting the labels
See also:
setMinimumExtent(), minimumExtent()
Warning:
The implemented algo is not too smart and calculates only an upper limit, that might be a few pixels too large

Implements QwtAbstractScaleDraw.

void QwtRoundScaleDraw::moveCenter ( const QPoint &  center)

Move the center of the scale draw, leaving the radius unchanged

Parameters:
centerNew center
See also:
setRadius()
int QwtRoundScaleDraw::radius ( ) const

Get the radius

Radius is the radius of the backbone without ticks and labels.

See also:
setRadius(), extent()
void QwtRoundScaleDraw::setAngleRange ( double  angle1,
double  angle2 
)

Adjust the baseline circle segment for round scales.

The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2). The default setting is [ -135, 135 ]. An angle of 0 degrees corresponds to the 12 o'clock position, and positive angles count in a clockwise direction.

Parameters:
angle1
angle2boundaries of the angle interval in degrees.
Warning:
  • The angle range is limited to [-360, 360] degrees. Angles exceeding this range will be clipped.
  • For angles more than 359 degrees above or below min(angle1, angle2), scale marks will not be drawn.
  • If you need a counterclockwise scale, use QwtScaleDiv::setRange
void QwtRoundScaleDraw::setRadius ( int  radius)

Change of radius the scale

Radius is the radius of the backbone without ticks and labels.

Parameters:
radiusNew Radius
See also:
moveCenter()
qwt5-5.2.3/doc/html/class_qwt_plot_scale_item__inherit__graph.map0000644000175000017500000000051212052741157024615 0ustar gudjongudjon qwt5-5.2.3/doc/html/dir_4118f540b2f97d7768d69ea313198c2a_dep.png0000644000175000017500000000127012052741161022041 0ustar gudjongudjon‰PNG  IHDRS;w!`bKGD˙˙˙ ˝§“mIDAThí›1HQÇż„¤6±IąŁ:)hăPP8TbÁBK·čR ×ĺ Ä.Z„‚8(nRqp Ť H#‰ŇIˇ8´ŕ"H¨ÄZ©HIL©ąb2hÂÝuHrH§ćú˝ßtď»Çń˙ńîÇă=ťŞŞ€}˝Ô jަ‡%IŞK”šÂqÇqU%µ‚X,V§`5Çb±¨ŐTŤyˇP€\î›í#‘×űTSÄűťSs|Ps|Ps|Ps|Ps|Ps|Ps|Ps|Ps|2ßŘ÷ôt47_ëë»»µőI÷;;~˙BK‹U÷ …ü訷­Ťq:›ff¦ČD"ažĎź ?››{}tôŰçó@6›ŮÝM&b{{ÇÄÄ IĘmoŤF?hô=TÚőöZ ˲^Ż?9I«Ş"Ďy~čřř{±Xśž~Ĺ0l©T …Vâńo Ă2 »Ľ4™ĚR‘s›Íľş …VśÎ&ŹçŃŢŢ0Ť Ă@6›QĄµővąsoď˝®.îoŹűG0ż¸8olĽ±ľţńŕŕg˙ĂňŇ·N§+ßeŮ[N˙(777?Äb©H˲<8ř`g'fłYó2›L&·Ű39ůňôô×áˇ8>>˘(2T$Ě®ĎÎ.‡ö¶\\|«é0?˙Ć`0twßq»ďóüĐŔŔc©HĚpŔóĎ ••LćüňÚnżą´ôŽL’Kčź >¨9>¨9>¨9>¨9>¨9>¨9>¨9>¨9>®XŤ üäsÔ”d2qEµrËw*•˛Z­Ä‘Ŕĺriö·ëčŮ%tPs|ŕ5˙jOęBÔ!IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_20.map0000644000175000017500000000047612052741162017322 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_27.map0000644000175000017500000000030212052741163017316 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__picker__machine_8h_source.html0000644000175000017500000004154012052741135022473 0ustar gudjongudjon Qwt User's Guide: qwt_picker_machine.h Source File
Qwt User's Guide  5.2.3
qwt_picker_machine.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PICKER_MACHINE
11 #define QWT_PICKER_MACHINE 1
12 
13 #include "qwt_global.h"
14 #if QT_VERSION < 0x040000
15 #include <qvaluelist.h>
16 #else
17 #include <qlist.h>
18 #endif
19 
20 class QEvent;
21 class QwtEventPattern;
22 
32 class QWT_EXPORT QwtPickerMachine
33 {
34 public:
36  enum Command
37  {
38  Begin,
39  Append,
40  Move,
41  End
42  };
43 
44 #if QT_VERSION < 0x040000
45  typedef QValueList<Command> CommandList;
46 #else
47  typedef QList<Command> CommandList;
48 #endif
49 
50  virtual ~QwtPickerMachine();
51 
53  virtual CommandList transition(
54  const QwtEventPattern &, const QEvent *) = 0;
55  void reset();
56 
57  int state() const;
58  void setState(int);
59 
60 protected:
62 
63 private:
64  int d_state;
65 };
66 
76 {
77 public:
78  virtual CommandList transition(
79  const QwtEventPattern &, const QEvent *);
80 };
81 
90 {
91 public:
92  virtual CommandList transition(
93  const QwtEventPattern &, const QEvent *);
94 };
95 
110 {
111 public:
112  virtual CommandList transition(
113  const QwtEventPattern &, const QEvent *);
114 };
115 
129 {
130 public:
131  virtual CommandList transition(
132  const QwtEventPattern &, const QEvent *);
133 };
134 
147 {
148 public:
149  virtual CommandList transition(
150  const QwtEventPattern &, const QEvent *);
151 };
152 
153 #endif
qwt5-5.2.3/doc/html/class_qwt_math_m_l_text_engine.html0000644000175000017500000004171312052741164022617 0ustar gudjongudjon Qwt User's Guide: QwtMathMLTextEngine Class Reference
QwtMathMLTextEngine Class Reference

#include <qwt_mathml_text_engine.h>

Inheritance diagram for QwtMathMLTextEngine:

List of all members.

Public Member Functions

 QwtMathMLTextEngine ()
virtual ~QwtMathMLTextEngine ()
virtual void draw (QPainter *painter, const QRect &rect, int flags, const QString &text) const
virtual int heightForWidth (const QFont &font, int flags, const QString &text, int width) const
virtual bool mightRender (const QString &) const
virtual void textMargins (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const
virtual QSize textSize (const QFont &font, int flags, const QString &text) const
- Public Member Functions inherited from QwtTextEngine
virtual ~QwtTextEngine ()

Additional Inherited Members

- Protected Member Functions inherited from QwtTextEngine
 QwtTextEngine ()

Detailed Description

Text Engine for the MathML renderer of the Qt solutions package.

The Qt Solution package includes a renderer for MathML http://www.trolltech.com/products/qt/addon/solutions/catalog/4/Widgets/qtmmlwidget that is available for owners of a commercial Qt license. You need a version >= 2.1, that is only available for Qt4.

To enable MathML support the following code needs to be added to the application:

#include <qwt_mathml_text_engine.h>

QwtText::setTextEngine(QwtText::MathMLText, new QwtMathMLTextEngine());
See also:
QwtTextEngine, QwtText::setTextEngine
Warning:
Unfortunately the MathML renderer doesn't support rotating of texts.

Member Function Documentation

void QwtMathMLTextEngine::draw ( QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text 
) const
virtual

Draw the text in a clipping rectangle

Parameters:
painterPainter
rectClipping rectangle
flagsBitwise OR of the flags like in for QPainter::drawText
textText to be rendered

Implements QwtTextEngine.

int QwtMathMLTextEngine::heightForWidth ( const QFont &  font,
int  flags,
const QString &  text,
int  width 
) const
virtual

Find the height for a given width

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
widthWidth
Returns:
Calculated height

Implements QwtTextEngine.

bool QwtMathMLTextEngine::mightRender ( const QString &  text) const
virtual

Test if a string can be rendered by QwtMathMLTextEngine

Parameters:
textText to be tested
Returns:
true, if text begins with "<math>".

Implements QwtTextEngine.

void QwtMathMLTextEngine::textMargins ( const QFont &  ,
const QString &  ,
int &  left,
int &  right,
int &  top,
int &  bottom 
) const
virtual

Return margins around the texts

Parameters:
leftReturn 0
rightReturn 0
topReturn 0
bottomReturn 0

Implements QwtTextEngine.

QSize QwtMathMLTextEngine::textSize ( const QFont &  font,
int  flags,
const QString &  text 
) const
virtual

Returns the size, that is needed to render text

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
Returns:
Caluclated size

Implements QwtTextEngine.

qwt5-5.2.3/doc/html/class_qwt_raster_data__inherit__graph.md50000644000175000017500000000004012052741142023641 0ustar gudjongudjon8858eefb86a269244aba21aa54bbb286qwt5-5.2.3/doc/html/qwt__slider_8h_source.html0000644000175000017500000004720612052741135020662 0ustar gudjongudjon Qwt User's Guide: qwt_slider.h Source File
Qwt User's Guide  5.2.3
qwt_slider.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_SLIDER_H
13 #define QWT_SLIDER_H
14 
15 #include "qwt_global.h"
16 #include "qwt_abstract_scale.h"
17 #include "qwt_abstract_slider.h"
18 
19 class QwtScaleDraw;
20 
34 class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale
35 {
36  Q_OBJECT
37  Q_ENUMS( ScalePos )
38  Q_ENUMS( BGSTYLE )
39  Q_PROPERTY( ScalePos scalePosition READ scalePosition
40  WRITE setScalePosition )
41  Q_PROPERTY( BGSTYLE bgStyle READ bgStyle WRITE setBgStyle )
42  Q_PROPERTY( int thumbLength READ thumbLength WRITE setThumbLength )
43  Q_PROPERTY( int thumbWidth READ thumbWidth WRITE setThumbWidth )
44  Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
45 
46 public:
47 
56  enum ScalePos
57  {
58  NoScale,
59 
60  LeftScale,
61  RightScale,
62  TopScale,
63  BottomScale
64  };
65 
70  enum BGSTYLE
71  {
72  BgTrough = 0x1,
73  BgSlot = 0x2,
74  BgBoth = BgTrough | BgSlot
75  };
76 
77  explicit QwtSlider(QWidget *parent,
78  Qt::Orientation = Qt::Horizontal,
79  ScalePos = NoScale, BGSTYLE bgStyle = BgTrough);
80 #if QT_VERSION < 0x040000
81  explicit QwtSlider(QWidget *parent, const char *name);
82 #endif
83 
84  virtual ~QwtSlider();
85 
86  virtual void setOrientation(Qt::Orientation);
87 
88  void setBgStyle(BGSTYLE);
89  BGSTYLE bgStyle() const;
90 
91  void setScalePosition(ScalePos s);
92  ScalePos scalePosition() const;
93 
94  int thumbLength() const;
95  int thumbWidth() const;
96  int borderWidth() const;
97 
98  void setThumbLength(int l);
99  void setThumbWidth(int w);
100  void setBorderWidth(int bw);
101  void setMargins(int x, int y);
102 
103  virtual QSize sizeHint() const;
104  virtual QSize minimumSizeHint() const;
105 
106  void setScaleDraw(QwtScaleDraw *);
107  const QwtScaleDraw *scaleDraw() const;
108 
109 protected:
110  virtual double getValue(const QPoint &p);
111  virtual void getScrollMode(const QPoint &p,
112  int &scrollMode, int &direction);
113 
114  void draw(QPainter *p, const QRect& update_rect);
115  virtual void drawSlider (QPainter *p, const QRect &r);
116  virtual void drawThumb(QPainter *p, const QRect &, int pos);
117 
118  virtual void resizeEvent(QResizeEvent *e);
119  virtual void paintEvent (QPaintEvent *e);
120 
121  virtual void valueChange();
122  virtual void rangeChange();
123  virtual void scaleChange();
124  virtual void fontChange(const QFont &oldFont);
125 
126  void layoutSlider( bool update = true );
127  int xyPosition(double v) const;
128 
129  QwtScaleDraw *scaleDraw();
130 
131 private:
132  void initSlider(Qt::Orientation, ScalePos scalePos, BGSTYLE bgStyle);
133 
134  class PrivateData;
135  PrivateData *d_data;
136 };
137 
138 #endif
qwt5-5.2.3/doc/html/dynsections.js0000644000175000017500000000413412052741134016371 0ustar gudjongudjonfunction toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function(){ var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l Qwt User's Guide: qwt_dial_needle.h Source File
Qwt User's Guide  5.2.3
qwt_dial_needle.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_DIAL_NEEDLE_H
11 #define QWT_DIAL_NEEDLE_H 1
12 
13 #include <qpalette.h>
14 #include "qwt_global.h"
15 
16 class QPainter;
17 class QPoint;
18 
31 class QWT_EXPORT QwtDialNeedle
32 {
33 public:
34  QwtDialNeedle();
35  virtual ~QwtDialNeedle();
36 
46  virtual void draw(QPainter *painter, const QPoint &center,
47  int length, double direction,
48  QPalette::ColorGroup cg = QPalette::Active) const = 0;
49 
50  virtual void setPalette(const QPalette &);
51  const QPalette &palette() const;
52 
53 protected:
54  static void drawKnob(QPainter *, const QPoint &pos,
55  int width, const QBrush &, bool sunken);
56 
57 private:
58  QPalette d_palette;
59 };
60 
73 class QWT_EXPORT QwtDialSimpleNeedle: public QwtDialNeedle
74 {
75 public:
77  enum Style
78  {
79  Arrow,
80  Ray
81  };
82 
83  QwtDialSimpleNeedle(Style, bool hasKnob = true,
84  const QColor &mid = Qt::gray, const QColor &base = Qt::darkGray);
85 
86  virtual void draw(QPainter *, const QPoint &, int length,
87  double direction, QPalette::ColorGroup = QPalette::Active) const;
88 
89  static void drawArrowNeedle(QPainter *,
90  const QPalette&, QPalette::ColorGroup,
91  const QPoint &, int length, int width, double direction,
92  bool hasKnob);
93 
94  static void drawRayNeedle(QPainter *,
95  const QPalette&, QPalette::ColorGroup,
96  const QPoint &, int length, int width, double direction,
97  bool hasKnob);
98 
99  void setWidth(int width);
100  int width() const;
101 
102 private:
103  Style d_style;
104  bool d_hasKnob;
105  int d_width;
106 };
107 
125 class QWT_EXPORT QwtCompassMagnetNeedle: public QwtDialNeedle
126 {
127 public:
129  enum Style
130  {
131  TriangleStyle,
132  ThinStyle
133  };
134  QwtCompassMagnetNeedle(Style = TriangleStyle,
135  const QColor &light = Qt::white, const QColor &dark = Qt::red);
136 
137  virtual void draw(QPainter *, const QPoint &, int length,
138  double direction, QPalette::ColorGroup = QPalette::Active) const;
139 
140  static void drawTriangleNeedle(QPainter *,
141  const QPalette &, QPalette::ColorGroup,
142  const QPoint &, int length, double direction);
143 
144  static void drawThinNeedle(QPainter *,
145  const QPalette &, QPalette::ColorGroup,
146  const QPoint &, int length, double direction);
147 
148 protected:
149  static void drawPointer(QPainter *painter, const QBrush &brush,
150  int colorOffset, const QPoint &center,
151  int length, int width, double direction);
152 
153 private:
154  Style d_style;
155 };
156 
170 class QWT_EXPORT QwtCompassWindArrow: public QwtDialNeedle
171 {
172 public:
174  enum Style
175  {
176  Style1,
177  Style2
178  };
179 
180  QwtCompassWindArrow(Style, const QColor &light = Qt::white,
181  const QColor &dark = Qt::gray);
182 
183  virtual void draw(QPainter *, const QPoint &, int length,
184  double direction, QPalette::ColorGroup = QPalette::Active) const;
185 
186  static void drawStyle1Needle(QPainter *,
187  const QPalette &, QPalette::ColorGroup,
188  const QPoint &, int length, double direction);
189 
190  static void drawStyle2Needle(QPainter *,
191  const QPalette &, QPalette::ColorGroup,
192  const QPoint &, int length, double direction);
193 
194 private:
195  Style d_style;
196 };
197 
198 #endif // QWT_DIAL_NEEDLE_H
qwt5-5.2.3/doc/html/functions_0x7a.html0000644000175000017500000001217712052741152017234 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- z -

qwt5-5.2.3/doc/html/class_qwt_plot_item-members.html0000644000175000017500000004002312052741141022056 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotItem Member List

This is the complete list of members for QwtPlotItem, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
boundingRect() const QwtPlotItemvirtual
detach()QwtPlotIteminline
draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &canvasRect) const =0QwtPlotItempure virtual
hide()QwtPlotItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotItemvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
xAxis() const QwtPlotItem
yAxis() const QwtPlotItem
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
qwt5-5.2.3/doc/html/class_qwt_scale_engine__inherit__graph.map0000644000175000017500000000052112052741160024060 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_0x67.html0000644000175000017500000001420612052741151017153 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- g -

qwt5-5.2.3/doc/html/class_qwt_rich_text_engine__inherit__graph.md50000644000175000017500000000004012052741142024666 0ustar gudjongudjon84eeb4923c1ba4a161ba16d39cf39da9qwt5-5.2.3/doc/html/inherit_graph_36.md50000644000175000017500000000004012052741151017222 0ustar gudjongudjon1067b06116605c0b9ff74af66bc0f4edqwt5-5.2.3/doc/html/qwt__compass__rose_8h_source.html0000644000175000017500000003270412052741134022230 0ustar gudjongudjon Qwt User's Guide: qwt_compass_rose.h Source File
Qwt User's Guide  5.2.3
qwt_compass_rose.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_COMPASS_ROSE_H
11 #define QWT_COMPASS_ROSE_H 1
12 
13 #include <qpalette.h>
14 #include "qwt_global.h"
15 
16 class QPainter;
17 
21 class QWT_EXPORT QwtCompassRose
22 {
23 public:
24  virtual ~QwtCompassRose() {};
25 
27  virtual void setPalette(const QPalette &p) { d_palette = p; }
28 
30  const QPalette &palette() const { return d_palette; }
31 
41  virtual void draw(QPainter *painter, const QPoint &center,
42  int radius, double north,
43  QPalette::ColorGroup colorGroup = QPalette::Active) const = 0;
44 
45 private:
46  QPalette d_palette;
47 };
48 
52 class QWT_EXPORT QwtSimpleCompassRose: public QwtCompassRose
53 {
54 public:
55  QwtSimpleCompassRose(int numThorns = 8, int numThornLevels = -1);
56 
57  void setWidth(double w);
58 
60  double width() const { return d_width; }
61 
62  void setNumThorns(int count);
63  int numThorns() const;
64 
65  void setNumThornLevels(int count);
66  int numThornLevels() const;
67 
68  void setShrinkFactor(double factor) { d_shrinkFactor = factor; }
69  double shrinkFactor() const { return d_shrinkFactor; }
70 
71  virtual void draw(QPainter *, const QPoint &center, int radius,
72  double north, QPalette::ColorGroup = QPalette::Active) const;
73 
74  static void drawRose(QPainter *,
75 #if QT_VERSION < 0x040000
76  const QColorGroup &,
77 #else
78  const QPalette &,
79 #endif
80  const QPoint &center, int radius, double origin, double width,
81  int numThorns, int numThornLevels, double shrinkFactor);
82 
83 private:
84  double d_width;
85  int d_numThorns;
86  int d_numThornLevels;
87  double d_shrinkFactor;
88 };
89 
90 #endif // QWT_COMPASS_ROSE_H
qwt5-5.2.3/doc/html/class_qwt_plot_canvas-members.html0000644000175000017500000002160112052741141022374 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotCanvas Member List

This is the complete list of members for QwtPlotCanvas, including all inherited members.

CanvasFocusIndicator enum value (defined in QwtPlotCanvas)QwtPlotCanvas
drawCanvas(QPainter *painter=NULL)QwtPlotCanvasprotected
drawContents(QPainter *)QwtPlotCanvasprotectedvirtual
drawFocusIndicator(QPainter *)QwtPlotCanvasprotectedvirtual
focusIndicator() const QwtPlotCanvas
FocusIndicator enum nameQwtPlotCanvas
hideEvent(QHideEvent *)QwtPlotCanvasprotectedvirtual
invalidatePaintCache()QwtPlotCanvas
ItemFocusIndicator enum value (defined in QwtPlotCanvas)QwtPlotCanvas
NoFocusIndicator enum value (defined in QwtPlotCanvas)QwtPlotCanvas
PaintAttribute enum nameQwtPlotCanvas
paintCache()QwtPlotCanvas
paintCache() const QwtPlotCanvas
PaintCached enum value (defined in QwtPlotCanvas)QwtPlotCanvas
paintEvent(QPaintEvent *)QwtPlotCanvasprotectedvirtual
PaintPacked enum value (defined in QwtPlotCanvas)QwtPlotCanvas
plot()QwtPlotCanvas
plot() const QwtPlotCanvas
QwtPlotCanvas(QwtPlot *)QwtPlotCanvasexplicit
replot()QwtPlotCanvas
setFocusIndicator(FocusIndicator)QwtPlotCanvas
setPaintAttribute(PaintAttribute, bool on=true)QwtPlotCanvas
testPaintAttribute(PaintAttribute) const QwtPlotCanvas
~QwtPlotCanvas()QwtPlotCanvasvirtual
qwt5-5.2.3/doc/html/class_qwt_data__inherit__graph.map0000644000175000017500000000103612052741154022362 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_33.map0000644000175000017500000000024512052741163017321 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_alpha_color_map.html0000644000175000017500000003460112052741164021564 0ustar gudjongudjon Qwt User's Guide: QwtAlphaColorMap Class Reference
QwtAlphaColorMap Class Reference

#include <qwt_color_map.h>

Inheritance diagram for QwtAlphaColorMap:

List of all members.

Public Member Functions

 QwtAlphaColorMap (const QColor &=QColor(Qt::gray))
 QwtAlphaColorMap (const QwtAlphaColorMap &)
virtual ~QwtAlphaColorMap ()
QColor color () const
virtual QwtColorMapcopy () const
QwtAlphaColorMapoperator= (const QwtAlphaColorMap &)
virtual QRgb rgb (const QwtDoubleInterval &, double value) const
void setColor (const QColor &)
- Public Member Functions inherited from QwtColorMap
 QwtColorMap (Format=QwtColorMap::RGB)
virtual ~QwtColorMap ()
QColor color (const QwtDoubleInterval &, double value) const
virtual QVector< QRgb > colorTable (const QwtDoubleInterval &) const
Format format () const

Additional Inherited Members

- Public Types inherited from QwtColorMap
enum  Format {
  RGB,
  Indexed
}

Detailed Description

QwtAlphaColorMap variies the alpha value of a color.


Constructor & Destructor Documentation

QwtAlphaColorMap::QwtAlphaColorMap ( const QColor &  color = QColor(Qt::gray))

Constructor

Parameters:
colorColor of the map
QwtAlphaColorMap::QwtAlphaColorMap ( const QwtAlphaColorMap other)

Copy constructor

Parameters:
otherOther color map

Member Function Documentation

QColor QwtAlphaColorMap::color ( ) const
Returns:
the color
See also:
setColor()
QwtAlphaColorMap & QwtAlphaColorMap::operator= ( const QwtAlphaColorMap other)

Assignment operator

Parameters:
otherOther color map
Returns:
*this
QRgb QwtAlphaColorMap::rgb ( const QwtDoubleInterval interval,
double  value 
) const
virtual

Map a value of a given interval into a alpha value.

alpha := (value - interval.minValue()) / interval.width();

Parameters:
intervalRange for all values
valueValue to map into a rgb value
Returns:
rgb value, with an alpha value

Implements QwtColorMap.

void QwtAlphaColorMap::setColor ( const QColor &  color)

Set the color

Parameters:
colorColor
See also:
color()
qwt5-5.2.3/doc/html/class_qwt_metrics_map-members.html0000644000175000017500000002515512052741140022375 0ustar gudjongudjon Qwt User's Guide: Member List
QwtMetricsMap Member List

This is the complete list of members for QwtMetricsMap, including all inherited members.

deviceToLayout(const QPoint &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
deviceToLayout(const QSize &) const (defined in QwtMetricsMap)QwtMetricsMapinline
deviceToLayout(const QRect &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
deviceToLayout(const QwtPolygon &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
deviceToLayoutX(int x) const (defined in QwtMetricsMap)QwtMetricsMapinline
deviceToLayoutY(int y) const (defined in QwtMetricsMap)QwtMetricsMapinline
isIdentity() const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToDevice(const QPoint &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
layoutToDevice(const QSize &) const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToDevice(const QRect &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
layoutToDevice(const QwtPolygon &, const QPainter *=NULL) const (defined in QwtMetricsMap)QwtMetricsMap
layoutToDeviceX(int x) const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToDeviceY(int y) const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToScreen(const QPoint &point) const (defined in QwtMetricsMap)QwtMetricsMap
layoutToScreen(const QSize &) const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToScreen(const QRect &) const (defined in QwtMetricsMap)QwtMetricsMap
layoutToScreenX(int x) const (defined in QwtMetricsMap)QwtMetricsMapinline
layoutToScreenY(int y) const (defined in QwtMetricsMap)QwtMetricsMapinline
QwtMetricsMap() (defined in QwtMetricsMap)QwtMetricsMap
screenToLayout(const QPoint &) const (defined in QwtMetricsMap)QwtMetricsMap
screenToLayout(const QSize &) const (defined in QwtMetricsMap)QwtMetricsMapinline
screenToLayout(const QRect &) const (defined in QwtMetricsMap)QwtMetricsMap
screenToLayoutX(int x) const (defined in QwtMetricsMap)QwtMetricsMapinline
screenToLayoutY(int y) const (defined in QwtMetricsMap)QwtMetricsMapinline
setMetrics(const QPaintDevice *layoutMetrics, const QPaintDevice *deviceMetrics) (defined in QwtMetricsMap)QwtMetricsMap
translate(const QMatrix &, const QwtPolygon &)QwtMetricsMapstatic
translate(const QMatrix &, const QRect &)QwtMetricsMapstatic
qwt5-5.2.3/doc/html/inherit_graph_19.png0000644000175000017500000000235112052741162017333 0ustar gudjongudjon‰PNG  IHDR`%2o{°bKGD˙˙˙ ˝§“žIDAThíŰK:[Ç÷tÓ‡4Á[eD‘DDI¦•D„ůľ„D…•]čˇŰC‘$”ĺS(DőĐP™Ň Ń” ÂŚ »`QM6ż‡9GćX:çL‡_Î|žö¬˝×šµľ¬™={ AIdbľ;ź)¤@8ávmµZGFFľ%•źŔŘŘXii)Ö…íbrąÜjµ–••ýŢÄ~háËËËXcx>.úź —Ë?Éw¤@8á@ „)Är»Ý …"999!!!##C­VßÝÝEwqą\T*@X,–L&»ĽĽÄu$0űE ät:KJJčtúÖÖÖíííęęęńńqYY®F!( ň'6›ŤJĄ*•ĘH‹ů|ţóó3±Tż ňWšššššš<ŞŞŞ:;;±–÷÷wˇPŘÓÓS]]­Ńhńx<€‰‰ AĽ^/ö¦‹+‚ ;;;, Űív@@ĄRÓÓÓq:ťčz§ÓÉăń “ÉärąFŁŃçó…Âú|ľ@ ĐÚÚĘápRRRúúú`F]fffťNg”˘>­ťH=<źA‡Ă6űúúww‡ĆŮŘŘ(..F]®ŻŻŁ©öOޏ°Ůl‚ÎĎĎ333±vŹÇ“śśśźźĎ`0ö÷÷-‹Éd2™Lfłyvv»BˇDz­ěěě477C”––öq6!!mŔđö÷z˝0 3 lި : ‘GŚN§‹D"ťN˛hµÚłł3ťN×ĐШ­­][[»şşĘÍÍ‹Ĺ+++ʧĽĽüďżąąiii™źźßßßű¸‚ Hľ\.7666ÔA@`oo/ş .D: ×ë+**ikkăńx999 Ăh4¤R©BˇH$‰Ĺâöööšššřřx‚‚Á ĂQ"˙ŃŘqq~ż_ŁŃÁűűűčÉ„ÂR(™L¦V«'''ßßß•Jefffkk+±Qnóyyy»»»~ż_$%%%---©T*tłH$’——ˇP¨¬¬ R©ššš••Ĺd2ý~¤Čl6{ttT$ ‚ĆĆĆěěl™L=lŘąąą··7>źź——ÇápĆÇljâ“˙Abż;žźź].Waaású.>­ýßBwIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_magnifier.html0000644000175000017500000011527512052741164020414 0ustar gudjongudjon Qwt User's Guide: QwtMagnifier Class Reference
QwtMagnifier Class Reference

#include <qwt_magnifier.h>

Inheritance diagram for QwtMagnifier:

List of all members.

Public Member Functions

 QwtMagnifier (QWidget *)
virtual ~QwtMagnifier ()
virtual bool eventFilter (QObject *, QEvent *)
void getMouseButton (int &button, int &buttonState) const
void getZoomInKey (int &key, int &modifiers) const
void getZoomOutKey (int &key, int &modifiers) const
bool isEnabled () const
double keyFactor () const
double mouseFactor () const
QWidget * parentWidget ()
const QWidget * parentWidget () const
void setEnabled (bool)
void setKeyFactor (double)
void setMouseButton (int button, int buttonState=Qt::NoButton)
void setMouseFactor (double)
void setWheelButtonState (int buttonState)
void setWheelFactor (double)
void setZoomInKey (int key, int modifiers)
void setZoomOutKey (int key, int modifiers)
int wheelButtonState () const
double wheelFactor () const

Protected Member Functions

virtual void rescale (double factor)=0
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)
virtual void widgetWheelEvent (QWheelEvent *)

Detailed Description

QwtMagnifier provides zooming, by magnifying in steps.

Using QwtMagnifier a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction.


Constructor & Destructor Documentation

QwtMagnifier::QwtMagnifier ( QWidget *  parent)
explicit

Constructor

Parameters:
parentWidget to be magnified

Member Function Documentation

bool QwtMagnifier::eventFilter ( QObject *  o,
QEvent *  e 
)
virtual
void QwtMagnifier::getMouseButton ( int &  button,
int &  buttonState 
) const
See also:
setMouseButton()
void QwtMagnifier::getZoomInKey ( int &  key,
int &  modifiers 
) const
See also:
setZoomInKey()
void QwtMagnifier::getZoomOutKey ( int &  key,
int &  modifiers 
) const
See also:
setZoomOutKey()
bool QwtMagnifier::isEnabled ( ) const
Returns:
true when enabled, false otherwise
See also:
setEnabled(), eventFilter()
double QwtMagnifier::keyFactor ( ) const
Returns:
Key factor
See also:
setKeyFactor()
double QwtMagnifier::mouseFactor ( ) const
Returns:
Mouse factor
See also:
setMouseFactor()
QWidget * QwtMagnifier::parentWidget ( )
Returns:
Parent widget, where the rescaling happens
const QWidget * QwtMagnifier::parentWidget ( ) const
Returns:
Parent widget, where the rescaling happens
virtual void QwtMagnifier::rescale ( double  factor)
protectedpure virtual

Rescale the parent widget

Parameters:
factorScale factor

Implemented in QwtPlotMagnifier.

void QwtMagnifier::setEnabled ( bool  on)

En/disable the magnifier.

When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed.

Parameters:
ontrue or false
See also:
isEnabled(), eventFilter()
void QwtMagnifier::setKeyFactor ( double  factor)

Change the key factor.

The key factor defines the ratio between the current range on the parent widget and the zoomed range for each key press of the zoom in/out keys. The default value is 0.9.

Parameters:
factorKey factor
See also:
keyFactor(), setZoomInKey(), setZoomOutKey(), setWheelFactor, setMouseFactor()
void QwtMagnifier::setMouseButton ( int  button,
int  buttonState = Qt::NoButton 
)

Assign the mouse button, that is used for zooming in/out. The default value is Qt::RightButton.

Parameters:
buttonButton
buttonStateButton state
See also:
getMouseButton()
void QwtMagnifier::setMouseFactor ( double  factor)

Change the mouse factor.

The mouse factor defines the ratio between the current range on the parent widget and the zoomed range for each vertical mouse movement. The default value is 0.95.

Parameters:
factorWheel factor
See also:
mouseFactor(), setMouseButton(), setWheelFactor(), setKeyFactor()
void QwtMagnifier::setWheelButtonState ( int  buttonState)

Assign a mandatory button state for zooming in/out using the wheel. The default button state is Qt::NoButton.

Parameters:
buttonStateButton state
See also:
wheelButtonState()
void QwtMagnifier::setWheelFactor ( double  factor)

Change the wheel factor.

The wheel factor defines the ratio between the current range on the parent widget and the zoomed range for each step of the wheel. The default value is 0.9.

Parameters:
factorWheel factor
See also:
wheelFactor(), setWheelButtonState(), setMouseFactor(), setKeyFactor()
void QwtMagnifier::setZoomInKey ( int  key,
int  modifiers 
)

Assign the key, that is used for zooming in. The default combination is Qt::Key_Plus + Qt::NoModifier.

Parameters:
key
modifiers
See also:
getZoomInKey(), setZoomOutKey()
void QwtMagnifier::setZoomOutKey ( int  key,
int  modifiers 
)

Assign the key, that is used for zooming out. The default combination is Qt::Key_Minus + Qt::NoModifier.

Parameters:
key
modifiers
See also:
getZoomOutKey(), setZoomOutKey()
int QwtMagnifier::wheelButtonState ( ) const
Returns:
Wheel button state
See also:
setWheelButtonState()
double QwtMagnifier::wheelFactor ( ) const
Returns:
Wheel factor
See also:
setWheelFactor()
void QwtMagnifier::widgetKeyPressEvent ( QKeyEvent *  ke)
protectedvirtual

Handle a key press event for the observed widget.

Parameters:
keKey event
See also:
eventFilter(), widgetKeyReleaseEvent()
void QwtMagnifier::widgetKeyReleaseEvent ( QKeyEvent *  )
protectedvirtual

Handle a key release event for the observed widget.

Parameters:
keKey event
See also:
eventFilter(), widgetKeyReleaseEvent()
void QwtMagnifier::widgetMouseMoveEvent ( QMouseEvent *  me)
protectedvirtual

Handle a mouse move event for the observed widget.

Parameters:
meMouse event
See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
void QwtMagnifier::widgetMousePressEvent ( QMouseEvent *  me)
protectedvirtual

Handle a mouse press event for the observed widget.

Parameters:
meMouse event
See also:
eventFilter(), widgetMouseReleaseEvent(), widgetMouseMoveEvent()
void QwtMagnifier::widgetMouseReleaseEvent ( QMouseEvent *  )
protectedvirtual

Handle a mouse release event for the observed widget.

See also:
eventFilter(), widgetMousePressEvent(), widgetMouseMoveEvent(),
void QwtMagnifier::widgetWheelEvent ( QWheelEvent *  we)
protectedvirtual

Handle a wheel event for the observed widget.

Parameters:
weWheel event
See also:
eventFilter()
qwt5-5.2.3/doc/html/class_qwt_double_range__inherit__graph.png0000644000175000017500000004326712052741154024122 0ustar gudjongudjon‰PNG  IHDRŘĎa?bKGD˙˙˙ ˝§“ IDATxśíÝw\÷˙đĎe0Â^@DĂA‚¨ ‚‹Ą(¸ ‚żUëŞuPq ˘˘UŞ (¸÷ÂÚ˘(`P)T‘˝!qż?®Í/ED$KŕýüĂGňÉÝçŢů\ňâĽÜŔpGČC!»čé €dÄ@2b ŤěTµµµdŇlÝşuôčŃdW!z5@ÇÄÇÇ{xxŘŮŮ‘]HO‘••eggOv!˘[ÄeăĆŤd—ĐSlŢĽ™ě: ě#’AÉ €dÄ@2b 5@§+**:yňäłgĎjkkUUU­­­}}}ĺĺĺŰ%??? ŕÖ­[ůůůľľľD#ŤFÓ××_¸pˇ™™Ů7Ŕďí«Ť‚Żň—‹’••566^¶lYż~ýľiŃ =`‹€ÎőţýűE‹őęŐkďŢ˝—/_޲eKAAA```]]];{ Óé÷ďßż˙~BB‚łłó† Ţżß©5·Xîýű÷ăââôôôvîÜŮËí č\űöístt ŃŃŃ‘‘‘4hĐöíŰ•””bbbV®\‡*//7nÜ™3gBăĆŤóőőełŮăĆŤ«®®ćwĹ`0\]]ťśśNź>M´ÔŐŐýüóĎ®®®îîîQQQ'??„ Ä«‚ŹB Ó§Oź>}úţýűŮl¶`‘,+<<|úôéłfÍ:|ř0—Ëmń.&NśźźO<ýűďż—,Y2qâDb›:??ßÓÓóĘ•+®®®3f̸{÷.1eCCĂŽ;\\\<==o߾ͯç«KěQ čD éééłfÍlÄ0lÖ¬YOž<5jTZZB(##ŁWŻ^/_ľD˝|ůR__?::šŘ UTTlŃç1cŢĽyC<ŻŻŻŹŽŽ˙óĎ?Ďź?˙ĄJŘlöóçĎOś8ţěŮ3~”"""šššNž<ą˙ţ—/_^Ľx±Ĺěuuu7oŢ9r$ńôřńăcĆŚą|ů˛ŹŹOdd$ŃXUU•››{ćĚ™3fđ#""jkkŁŁŁwďŢ-XŢW—ŘŁ@Đ‰ŞŞŞB-Úµµµ+++---_˝zĹĺr322fĚńęŐ+Ź÷ňĺËQŁFµŃ§˛˛ryy9BÍf?xđ ((HII©oßľ~~~·oßncFbĘţýűĎ›7ďŢ˝{üv‡sëÖ­ŕŕ`EEĹŢ˝{/\¸đÎť;D˙ăţ5uęÔ7n,\¸% ŔĂĂJĄŇh´úúz˘±©©É××·WŻ^ÖÖÖ555DĎ·oß RVVîÓ§ĎÜąsŰ^bŹ?ÖЉ”””B%%%ÚÚÚ‚íeee***zzzňňňoŢĽÉČČřńÇďŢ˝űîÝ»ôôôĺË—·ŃgeeĄŞŞ*B¸Ţ––Ń®­­]ZZúĄą0 ă×ĐŻ_żĘĘJţKgĘ”)-ʦÓéüźňšššŽ=¶gĎ„“Éܶm†a‚ch4±ýŽażgŹ'XaŰKě± čD˝ző>|ř… ‰–sçÎ}÷Ýw.\°˛˛BYZZ&''WTTččč >üáÇeee&&&?~üRźüń‡‘‘BHEE!ôéÓ'"੩Šţ•ĽsÇqţ”………‚ެ¬LˇP.]ş$''‡b±XŐŐŐMMM‚ •––vvv BUWWďÚµ+22ŇĐĐ0///%%…†źż‚=·¨°Ť%~˸v7°k€ÎrëÖ­477×××űřřĽ{÷nÎś9!KKˤ¤¤!C†`6|řđÄÄÄ‘#GŇh4 Ăx<‡Ă쪦¦&))éúőëŢŢŢ!:ťnmm}ŕŔŞŞŞ>śiŇ$ţKt:ÝÖÖöŕÁŐŐŐUUU[·nmu_ł´´tSS—Ë%‚žJĄÖÖÖž={–Çăń÷N´@§Óííí8PYYůńăÇŘŘX"¬ŰąÄž‚€ÎĄ««{řđáÚÚÚÉ“'ßşukúôéššš !3336›=tčP„Đ#‰Äjjj}úôquu­­­ĺ﫝9sćµk×¶mŰÖ·o_˘ó•+WĘĘĘúřř,[¶ĚŇŇŇĂĂCYYŮ××wóćÍţţţŽŽŽü2´µµ }||V®\icc3cĆ Á"W¬XÁĺr}|||}}•••>#***†=zôHIIÉ××7$$dńâĹ666}űömătË–-“••őöö urr˘Ńhí_bĎ×# ëßżżó677çççĽ*qsűömsssbĹăÇŹŹ;vňäÉŽuµyófuuőny=bŘ"€RRR=!…BŹ?ŽŠŠjhh(..>{ö,±g´A čD!!!ŐŐŐnnnóçĎ×ÔÔ$öŚਠ@'RQQٶmŮU;Ř"’AÉ €dÄ@2ř±ˇ\ąr…ězŠŹ?Ş««“]E§€  † "//ż{÷n˛ ůMIVvp]Ý3g}ę/čŐkŹWËb劰0‘XĽx1Ů%t 8ł€n˘´´v÷îżýö'—Ë;zÔoĘ”a맡ˇŮÄd]SgäHÝÍ›§™™é‰´LĐ b$^}}ÓáøËápą\žŞŞÜ‹›étj‡;\»öÜ©SP(ʇ;:šlŘ0uŔ€–—T"A €kjâ;öpßľ;ŤŤÍ\.!DĄRW¬°|ů„ŻÎۆwďŠíěvţ{•5 ʇOž}šËáđţí–Ęăá^^ŁBCť…ď´‡Ż y._N·µÝz®E ÓhÔ©SG$(,°ĺpţżg6›ËĺňΞ}:zô¶ď˛X˙%|¶$›6]úóĎ*•Bě‹háňĺeffşÂ/ÇĂ-,¶U}ţ…‚©¨ČŻYăäĺ5ŠJ…Ť9€A@’xzF>}úBčó¦P0##-‘¤0Ń›ŻŻŤÖĘ/~<^^^·fMüłgy"Y€ @’xyŤnăŐ… íD¸¬9sFvşĐéSÓľi‰pq=1’dĂ—ź~š‰aŘçwęd0dgĚ0á˛TUĺgĚ0űü08*•bo?řňĺ9.®' @ÂřůY=ęKĄbĘ˙g1ťNńń+%%âselŘl®` …‚M™2,*ĘOäËęÉ 0<~őj†¦&CF†Î˙­ŚÇĂ}|D"“>#FčđźBÁĚÍőž?Ď+-­ů˛z2b$ĚÚµç®_ĎŘ·oN|ü÷rrŇt:•N§ŘŰîÝ[©37ľ5Bزvíä… FŻ3@‹1’d÷îgΤ>ě;v¬ÁČ‘şWŻ.SQ‘cły6ť´Ä©S‡+*ĘR((<Ü3(ČÁ‰Ť]Čáp}}ŹŐ×7uŇB{8މqüřŁ .îŘáćă3–ßX\\óî]±••Áç?߉JNNI]křp~K^^©«ë~#ŁŢ±± `g±đ  —/§/YłlŮ„U«&‘] BĄĄĺ»»rt49pŔ[đgCаk đčŃ›  X?żďÄ$…B#Fčüúëü«W_nŘpěZ$uÓ¦Md×hKffˇ·÷Q‡Á»w{vŢţ‡ĐŐUŐÓSŰľýŞŚ Ý¢?ŮĺH0Řą€XËË+őň:‰YiĹĆ.|üří?ś'»qA @IMÍ[°ŕ¤››ĹÚµÎd×B˛‘#uö={6e÷îd×"ŕgşÂ»wĹžž‡­­íŰ7»ŰśÄ, }}uŐLTR’9R—ěrHÖ Ďä@ÜVzz4HłűťÄ,Ś™3Í‹ŠŞ7nLÔĐ`Lť:śěrČA @窪jđö>Ş˘"˝@F†Nv9â%(ȡĽĽ.((VQQÖĆĆěrHgÖЉšÝÝ•–Ö^ş¬©©Hv9â¸ôµk AC†ô!»rŔ˙’č,oÉ’‚‚Џ¸%Â_‚aŘ®]îý˝Ľçć–’]9 č8ŽŻXqćÉ“śč耞pł0 ű÷W÷ö>ZRRKv9$€  SěÚuýŇĄô'ü‡×!» @śMŁQĽĽ×Ô4’]NW @ô˘˘FDÜٻ׫§ťÄ, eeą¸¸%55Ťţţż67÷¬ !±K—Ň6oNúé§™Ó¦Ť$» Ł­­»0+ëcpđiŻGA €(=}šrzţ|ëž|ł0 µŽő»qăŐöíWÉ®Ą át9&“©¬¬LögżSP(r ŁÂČ.¤¶¶¶"Y}ť]ŞŚŚ´´śn!’!…: 222*++ăăăÉ.¤ůăŹ?öěŮ#’®=z4zôč+V¤7ÉţčŃŁ   Ể ¤qss#»„é©[ýúőŐwîÜ9Quű€dÄ@2b 1 ‚HA ÄZnn®ŹŹŹ–––”””žžŢňĺË«ŞŞÚž%;;[FFF°% ð„„„6¦igWßDpö÷ďßĎť;·Oź>˛˛˛?üđCccŁŕ4_Z–5KřŐ÷ôéSgggEEE…±cÇŢşuKřŞÄpH!řb2™ ăÁ••• oßľ3fĚWżĚ‚âăăbbb:ŻÔ¶á8>qâDMMÍÔÔÔĘĘĘsçÎ=~ü888Xp###‹EV…ťAřŐ—žž>qâÄ)S¦äääřůůMź>=55µSË&‡HN ŕ›ÄĹŵçłgoo,ŘÂăń¬­­W¬Xáŕŕ†ăxaa!BhÇŽ8Ž ~¶KKKqʉ‰6lXVVťN/))!úa2™ŇŇŇ{÷îŐĐĐPWW b±X8ŽÇÇÇĘČČžo’śś¬««»˙~yyy&“™™™iii)##ŁŁŁMôYSS3oŢńŘĐа¸¸XYYůĘ•+±±±ZZZŽŽŽ‚]III©««ŹSRR¬­­GŹťH´ńxĽţýűO­¬¬ĚĚĚgg0IIIĄĄĄŃŃŃOž<™3gN«oĽ¸¸Çqâé€ř‹`łŮJJJ†afoo˙ţýű…‰áWźŞŞ*1˝ŕě™™™QQQź>}BéééŤúúú>|řR%RRRjjj! Ąe܉ĎB1Ĺ`0lmm/ôž——áęꊚ4iŇ… >}údlllggwţüů±cÇň§Çq<:::222======++ËÁÁ!::šx•Çăýý÷ßÄăśś‹Ą¨¨xóćÍ’’Áz0ěź Ş•••ůűű9r$55uëÖ­D٦¦&B×®]ăg4BhńâĹü~,,,věŘ‘śśÜę×ÖÖĆ0,77—xš——Ç_•JĺoľŐŐŐ={öL°0±"üęc0VVVÇŽě6,,ěúőëZZZ!ţęËËËÓÖÖF×ÓĚĺ6ĆGچT$ŰŐ|“vţ79++KUU5$$$;;»±±qăĆŤt:]]]ťŘÍzáÂyyůiÓ¦á8#//?cĆ Çłłłi4Zssóýű÷{őęUWWÇď0**J[[›Ăá0™L …âââRRR’™™9hĐ ={öÔŐŐÉË˧¤¤°X¬đđpccc~W‚˙í-))Á0,--­ĽĽÜÇLJFŁßäYłfąąą•––ľ}ű¶˙ţçĎźçĎţűďżS©Ô°°°‚‚‚ĆĆĆěělWWW???ü űÝÝÝ'NśřńăÇwďŢŤ1‚ßîáá1oŢĽŇŇŇââb—eË–µŘ!.ü·G;˙K.äęĂq<%%EVVvÓ¦MŻ_żÎËË ŁÓéż˙ţ;Žă3gÎÜGĽmŰ6b3ůúő륥ĄNNNźŹ*˙±ŕ"„RŘG $[űC᯿ţš;w®¦¦¦”””ľľţŠ+ĚÍÍ7nÜăxMM ťNß˝{7Žăˇ¨¨(ÇkkkŤŚŚ¦Nťęáá!Ř[YYŤF»~ý:“É0`Ŕ–-[TTT´´´Ö®]Ëápp?qâ„ŽŽŽŚŚŚ……EJJ ż«ß˙]đËąiÓ&1`Ŕ€ÄÄDccăńăÇă8^^^îĺ奬¬¬­­˝eËÁJĘËËŻ_żnkk+///++khhÚÔÔ„ů¨ %%Ą~ýúýöŰoüöĘĘĘąsçŞŞŞŞŞŞ444să­>"Ż“““ĺĺĺ­¬¬nÝşEô\VVćĺ奢˘Ň»wď5kÖ©şqăFŃ»wďÓ§O·Ä‚‹fHEÄ.Ň‹ăĐńńńDDv`^‹•ťť=|řp‘WŐ˝ 3ć-¸»»v`Ţî´ú„‡`10222ÝăkÜ3Áęk1 ‚HA $ ’AÉ €d4˛ =—ŁŁc×,ͦq8RÍÍRrru4§kúUÍÍôęj*•M§łi4.ťÎ¦R9ÖYÇő‹°·GŹuŮę[Ż^˝˛±±IWÄ€ŽŽŽ~~~őőő˘í–á°XT‹ĘbŃšš¨,˝±‘ÚÔDĹń. ŁS«ŁSóŐ~š›)oߪ0M::µí_zn®bs3ŐŔ ’FkW~ř _R˘Ř˘‘NçŃh\®”OZšK§˙ršŰ_I«”••żt™ˇo(’~$ťŤŤMPPHş‚3ë€d«©a-]z꯿J‹ŠŞŮD#•JáńpÁĎ6…B10иx1HYY®íďÜy[SÓčé9*<Üłý•ĚšuđÉ“55ůÇ}ÇŽ5řęô/0đÔ•+/[ýR©T*ăńp‡‹:vlžłóĐö$ ě#’-=ýýíŰŻssKů)Śâry‚éFŁQőôTĎźl;…ŮlîŹ?^ôń9V[ËBŮÚ~S%ŽŽ&†•—×»ąܶí2›Ím{zŤrčĐÜ™3Í(”V®őĹĺr››9D cf` ńMĹÉA $›ŤŤˇ‰IźVłŚ@ŁQuuU’’‚ŐÔäŰč‡Éühk»ăĉÇÄ…q0 ł±ôM•Ś?řßK¸ #GŚ·óőëŹmĎBĄRöí›=oŢwm\v‘FŁL`2hÖ7$ 1x«WOâńZ‰FŁöë§|ńb°Şj[)|ěŘŁI“vTpą˙tdl¬ýŐť-  Ń»·2ńĂáĺç—Oš´űرGmďýĂ0lË–é Ř"Ôzs8ĽžţłX·A $Ţ„ CŚŤµ¨Ô–fŤŞĄĹ8>°Ťmáęę†yóŽoÜČfóř)L§Ów¨’Át:•xĚáđ8ަM‰‘ĹĹmýBaئMÓ–/wü<‹i4Š®®Şŕ_Đ-AÉ–ť]´xqt~~—űź OŤŞ®.ꬭ­ôĄyź=ËłµÝy÷îë­l6ÇĆćŰvĆŤ3fł˙“<ţçźąăĆí¸};«íyWŻvúáçŤOKKqѢhkëí§N=ij—cď€hAI•žžďáioż«  âřńy&&ÚüŤbŤ˘¤$›Ô»wë)Ěăá»wß>=˘ĽĽŽĂią±)-Mł´ěß’¬¬Ňé-żS·¦†ĺçw|őę¸ĆƶŽB ż~ýTţS 34Ôşxqé“'ë˙řăšC7lŘp±íík ‰¨›6m"»ľMzz~HČéíŰŻŞŞĘíŰ7ű˙›˘««¦®ÎHLLCQ©%%ŮK—Bú÷˙âýĂ®ďŮsűź_Öţ ðQŁxzŽę@at:59ůmaae‹vb!Ż^65±íěŚÚčÁ¢?…Byň$‡¨eĂ“>JJ˝ěíŤgĎC§SNťúăđáűąąĄFF߼-Ř"’$--ßĂ#ŇŮyO]+.nÉŐ«Ë­­˙9¶aâÄ!¨c&++ućĚ’6R!¤­­„aż?WŤF±·7îp…& ˇR[éVJŠ*''őÝwżÚĂňĺÖ­›‚RS“ź6m$ż]CCaĺĘIĎžý¸~ýÔääwÖÖŰ}}Ź˝|YĐáRř€:€dHKËß±ăjrňŰ#tÖ®ťĚĎ_A·og…‡ßúůç™#Fč´§Ă  Sźďš¸{wŤ±±vÇęĚÉ)±±Ůޢ‘BÁll ÷í›­®®ĐÎ~îŢ}Ý»·ň—Ęhnć$%Ąíß篿J,,ú98:št¬`  ¸kOw ‹ĹŢ´)éÔ©' Ć?,AEEîŐ«­ÂÜPÝĚlSQQ5ńFŁŕ8Z˛dÜ˙ţ7Yä7içńđ»w_ďÝ{+--ßÔ´o@€ÍŚfź=Ĭ3 ľ“'·˛#B$čtęëׇ×ŃÖV"ň‹N§ÚŮ ™& !vzP(ľľ†µő K—ŇëęšDS´jčę IDAT st4ązuybâR--ĹÓÖÖŰŹ{WHb Ž:;‚ űöÝf2?<č}ëÖĘÉ“‡!„8®đ ˛µ5$Îož3gĚőëËđnjboŘpAĄĄ~ttŔíŰ«ĚÍő¶lI˛´Ü˛{÷ŤššĆÎ["-Ř5ÄKçíh!==ßĹeßćÍÓćÍł&Z.]J{đŕ͆ S…<ˇ±±9<ü–……Ţ„ C–GŹŢxy‰Śśëâ2BŘşżćýűňcÇýöŰt:ŐÝÝ2(Č^Słĺ5Ţ€¸ â˘Ë"!Äb±'NÜÝ·ŻrlěB‘ďşmŐúőÎźO˝{wuź>Ę]°¸˛˛şččÇÇŽ%766»¸  q0.$ľ ůş2‚ [¶$ť9óôţý5ZZ]´µŘÔÄqvWSS8sfq—(­şş¦łgS"#ďW;8 ^¶lB{Ž']‚‰Á#Gꆆ:wA#„ž<Éqw?´gŹ—››E,Ž/3łpňä=?ü0eŃ"»®\.›ÍML|qŕŔÝwďŠáX7ńA ČAJ#„jkYăLJ ÖďčQż®Y˘ C‡îíÚuýÚµĺ÷îâEÇşíßçůóżMLú,\h Çş‰bĐŐČŠ`ÂŞUqwîdÝ»Ş˘BÂůÁ<îéYRR{ăĆ z×€zú4÷ŕÁ{wîĽÖŃQń÷·ńöCV%€‚tť/ŢďÜyŤ¬FÝľťĺçwüĉůüăş^QQ•C‡‡ĺĆŤ®dŐ€b2?FFŢOL|ˇ¤ÔË××* ŔFQ±‰őôpÄ +Áˇ˛˛:{űť÷ěńęúĄ şxńEPPě©S „ą¨…HT=úđôé?©TĚĂcT` }—ýz AÎ%Lđ÷˙őŐ«wď®QP!«ľŔŔSOžüuďŢjq¸‚ZEEý‰Éżţú¸®Žĺę:"8Řn‘×Ĺ AgźF%&ľ Š={vI{®ÖjjXăÇď25í{üř|˛kůGCCóéÓ9ň ¨¨ĘÁapHăČ‘şdŐS@Ń«F}üXeożËÍÍbëÖéäV"čéÓÜ™3îŢíéîŢĄGѵŤ8Ö-2ň~vvq¬Űřń»ćś—ž ‚’¸E0BÇq/Ż#ĹĹŐ7n¬”–¦‘]ÎlŰvĺäÉÇ·oŻŇÓS#»––+nßÎ<¸÷˘EvÓ§›Ńhp¬[g ˘!†L‰y˛aĂ…+W–™šö%»––Řl®«ë~:ťzáBxŇ›‘QpěŘŁ‹_ôéŁÇşub ,±Ť`„P^^©Łă/‹Ů­^íDv-­{÷®xҤđŕŕń!!Žd×ňE˙]vüxrlěyy??+%%8ÖM” AÇń#ŘĚLwÍńŠ`„—Ë›>ý‡Ă˝t)Dś˙[}âDňĆŤ‰‰‰ÁbţăXIIí©SżGE=âryžžŁľ˙~\wČß‚t?‚ÇŚęli©OvE­8tčŢ/żÜ¸ysĺŔšd×ŇÇ}}Źĺä”Üľ˝JNNšěrľ˘¶–÷ôŕÁ{u®®#–./ćĂ+ Á·‘F1™ťśö„†:/Y2ŽěZľ®¬¬ÎÁa—““éŽnd×Ň.ü›ćĺĺ•:8 of¦GvQ ‚´×óçďwíş–śüvěX5kśÄ6‚Bl6×É)\QQöÜąŔ.»ć¤nŢĚś?˙ד'ý%čŇh‚7ÍcÝ„A ľîŹ?ţÚ±ăęłgyâÁ„ť;Ż?ţčÎťŐ::Şd×ň V­Š»y3óîÝ5í˝ŮłŕëflÜ{ńb8Öí›A¶H\#„ž??mÚţíŰgy{Ź!»–oÓĐĐMš´;4tňâĹvd×Ňé>żiž]©Ă »§îÁ„ăÇmŮréÚµĺ&&}Č®ĄÓ:to×®ë×®-<¸7ٵtţ…„LMűŘĚa&žw“ âî¦'D0úw#1$Äqٲ d×ŇÍ˙’’Ú7Vô¨»Ćńoš×ŻźĘüůÖs玷;ŔŠq÷ŃC"!Äfs§LŮK§S{Îĺ?}޶·ßĺîn±iÓ4˛kéjü›ć)*ĘÎť;vÁ;Ł[[ AÜ–ĘĘĘsçΑ]E»\»öéŮł*mm;;µĺZś°¤¬¬ěć&š[?ś;w®˛˛R$]u“Y›P¸pa QŢXHTŁôüůóçĎź ßĎçŇÓ«/_.  ¨(.ĹffffffÂ÷ÓžďZe%űÉ“ň´´*ŞŤŤšĄĄdFâć榬üď[ŔÁ—ůůů‘ą˘ľ…ŚŚľŚL[›ŔWŻ^~@®^˝Úeď¨m4Z§\ĘK$Ł$'׉W}ě¤7ŢaňňňÂŹţ-ß5 Ą—‚ÂX99¤?ąüüüřożîmˇúúz77·řřx˛ †auuuÂ÷Ct‚wÓ˙E‰j”ęëëăââÜÝ»Ői~­ŠŹŹ÷đđIWÝć»ÖNîîîőőőü§=e˙-b 1 ‚HA $ ŤÜÜ\---)))==˝ĺË—WUUµ=Kvv¶ŚŚ ńű—´´´ąąůť;wZLÓvbHČ|_555VVV®®®MMMí\ş8Ź ź0C„z˙ţýÜąsűôé#++k``đĂ?466˘/c«ťH"aĆmćĚ™‚‡ŠOžqâDMMÍÔÔTâTÇŹ N#ˇž¶ 9nŽŽŽÉÉÉÄc‹őŕÁ˛˛˛ĚĚL˘%99yüřńťUzŰDr0vwĺćććććöŐÉěíí[x<žµµőŠ+ÂÂÂp/,,DíرÇń˘˘"ÁUśśĚbBppđÜąsqg2™ü—233---eddttt˘ŁŁ[ĽÚ6„P\\\»Ţs›âââÚó™Ő€””” 6ĚßßźËĺâ8Îd2uuuŹ=ŞŞŞŞ©©yúôi˘óĘĘJoooUUŐľ}ű®]»¶ąą™™˝{÷jhh¨««±X¬Ż–-ŞQjO?BQzz:†aŤŤŤüŮ322<==qO…ŕÇŁĽĽÜÝÝ]QQQGGgË–-üöşşşE‹ihhôîÝ{ŐŞUl6›äýű÷ËËË3™Ě¶ßE;?íŃ5ßµ?˙ü!”ťťŤăřµk×LMMÝÝÝ·oߎă8‡ĂQPP¸xń"1n‘‘‘***±±±Ä‚>«VŰů­lń~a‹XX555< lÄ0lٲe—.]rrrş˙>B(99™Á`<|ř!ôđááC‡ňWššZ‹>'OžśššÚ˘qýúő“'O®¬¬Ü°aĂęŐ«;ó= ETRTTdkkkhhEˇüóA-))ÉČČČÍÍ]ştéĘ•+‰ĆĹ‹×ÔÔĽ~ýúŢ˝{WŻ^ÝłgB¨©©éÎť;Ż^˝şwďŢÍ›7wěŘŃ•Đ6á‡hČ!&&&3gÎLLL¬¨¨@™ššž9sćKK\´hQyyůëׯoßľM¤'!$$¤ˇˇ!++ëŃŁGŹ=:pŕB¨¨¨(==ýÝ»wFFFť4#ü¸Ť5J__źxéÚµkÎÎΓ'O&ÎMOOohh7nB¨ąą9333///88xŐŞUÄ‚Z«V;˘}®z¨öü•ÎÉÉÁ0Śřó((--MAA!33SAAÍf®[·ŽÁ`p8ś%K–„††¶şĺBHOOWRRjńŇëׯëëëŮlöÉ“'ż4ă— .Ü"É€Đh4CCC777--­ââb˘bwMii)ŽăYYYÄÄ,‹BˇäććÓ$$$ššSćääŤgÎś122úę»Ő(}µá‡Çńęę길¸¨ŞŞŻ_żľľľom‹¸±±‘BˇĽyó†ńüůóD{ss3ťNŻŞŞ"ÚďÝ»gnnN ]III{Ţio‹dÜ-Z4gÎÇ đŕÁ’’:ť^^^ľgϞѣGă_řµ:V_@Ř"&şş:†aůůů-Ú µ´´LLL”””RSS“““gĎž­¦¦–––öđáC''§6ú,..ÖÖÖnŃ’’bmm=zôčÄÄDż‘É€pąÜ 6ÄÇÇ[YYůúúâ˙žT-%%El/ó·‘?}ú„ŇÓÓ#žęëëřđ@_˙ź‹owŇűí‘ Á LJJ*--ŤŽŽ~ňäÉś9sZ]ń—ĚŔŔ€x:`ŔâAQQ›ÍVRR"~(¶··˙ţ=BHJJJ]]ďT$’qstt|ôčŃ›7oĘĘʬ¬¬ÔŐŐÍĚĚnܸ!¸řóŹY«cőĄěba1 [[Ű~Kxxx^^^DD„««+BhҤI.\řô铱±±ťťÝůóç ÇŽŰFźWŻ^µ´´l)++ó÷÷?räHjjęÖ­[;齄HDJJŠ•¨¨¨¬¬¬Ý»wí-®*‡ŇŇŇBýý÷ßÄÓĽĽ<âoŹÇă7ćääčččţ­v”đC´xńbâ1†a;věŕ˙ Ő‚¶¶6†aąąąÄÓĽĽ<⦦&•JĺoĐŐŐŐ={ö µ6ČbB$-‡Ź?:tČŃŃ‘FŁ!„&Ož|ĺʕǏ;::Ó|>­ŽŐ—°#ľş Ý“µó„¬¬,UUŐěěěĆĆĆŤ7ŇétuuőňňrÇ/\¸ //?mÚ4ÇcbbäĺĺgĚăxvv6ŤFă˙˛DtUVVvčĐ!yyyâ?’ü—JJJ0 KKK+//÷ńńˇŃhUUUâąké€ŕ8ţčŃ#™§Oź ¶ >ž9s¦‹‹KqqńŰ·oMMM·mŰĆd2)Š‹‹KIIIffć AöěŮóŐ˛E5JíéGČ!úý÷ß©TjXXXAAAcccvv¶««+q5ŻVwyą»»Oś8ńăÇŹďŢ˝1bżÝĂĂcŢĽyĄĄĄĹĹĹ...Ë–-k˙‡ 'ăÇ:!ÇŤčdÔ¨QRRRÇŹ'žľxńBJJJNNŽŕKłĎÇŞŐFŘ5AšÁ?}ú´˘˘ÂÖÖVQQńÔ©SK—.%~zFŤ?ľ©©ÉÚÚ!4nܸşş:â˙J}úô100PUU­¨¨hjj"ţwŁ­­}üřń¤¤¤A .B]]}ăĆŤ¶¶¶–––3fĚ8pŕ¬YłHyłí!ü€öfmm˝fÍ//ŻÚÚÚVwäČ999b#ČÉɉř%ł˙ţćććFFFăÇŹź1cĆŇĄK;ým !‡ČČČčĘ•+W®\166VQQquu522:räČ—©¤¤4xđ`{{{ţŻOˇĂ‡s8##ŁÁkhhüüóĎť˙Ö…"’Ź–ŁŁcss3—Ĺ#ÔÔÔlllčô¶®ňÜęX‰lŰű«Gjç_éV566¦ĄĄ‰¶žC]»EÜ*±V‰j”:ÜŹřQ ]żEÜ*‰7¶»ŚŚŚĚđáĂÉ®BŚŔ€| QÇtq ’AÉ €dÄ@2b 1 ‚HF#»±&''wňäIaN˝Ç0)*µ‡óÍDDŁ©pą58ΦyyyafěDlŻE <‘Ś’śśś‡‡‡‡‡‡đ]‰?‘ŚĹwMâřůůńcřż×µꫬ¬äßµč[qąřďżş~˝€ÇĂ·n5—’˘v´†¦­[_ČÉŃśťu,-5¨ÔŽ|Rĺääśťť;V@ ×®]«ŻŻIWâFTŁôęŐ«ěěláű‘FFF¦¦¦Â÷#ĚwMBŤ?^YY™x A,z8Ž_ş”ľu륢˘jÇ­¬ž;÷˝0˝ŮŘl˙ëŻ2 őí«˛nÝ”)S†ő¨ ş=ŘG,b—/§[Yýüý÷§ŠŠŞ?r‹Ů Ó!†aßoŹaÇĂ?|¨XĽ8ĆĘęçË—Óá/(Ýl‹ĚÓ§ą›6%Ą§çS©.—‡Â0Ô·ŻĘź®r¶ą™3|řĆŞŞâ)…‚ńxhčĐ>ë×»|÷Ý@” l‹@^^éÜąQÓ¦Edf"„FQ(”ůó­…ߍ %EóóűŽFűg/3ʇ#„ge}tw?4kÖÁ—/ „ě@.Ř"JIImXصłgź"„qąÜŻJKÓ^ľÜÂ`Č ż ââsóÍüçŁŃ¨\.ĎŢŢř‡¦·Ľ»@"ŔqÇĺä”XYm;{ö)—Ëű<…étę´i#E’Â!MM†“ÓPţF1‡ĂĹqüáĂ7&ü’›[*’eşqDZŮ\‡űĄl6×ßßF„‹[´Č–Ăi÷ SV–“‘iëţ±AÜqĆĆÚ×®­`0zŃé-‡‘JĄXZö2¤Źgf¦7|¸.•ÚrYt:UGGőöíU˝{+‰pq€.A,ccík×–ij*Ńé˙ŮiŔăńlEľ¸Ĺ‹íxĽ˙ě&¦Ń(††Ú—/kj2Dľ8@×€ Vź>Ę&&˝ŐŐřYŚaHMMaŇ$śnÔ‚łóPuug•J•–¦ËÉIËČH‰|Y€.A,Ç—-;“śüvďŢŮ––ýi4 ú÷¨5â±hŃh” l( BJĄ89 IL ~űö“ŹOTsłPW˘‚X(Ű·_MJzéóÝwOťZhkkD5ěé9Ş“–čĺ5šJŦMq菉IďŘŘ…/^Ľ_˛$ćóŰŽ#î¸#GlŮri߾ٳf™-oçÎkššŚ€Q/ŃBBBjQQu` =˙T‘ÇŹßy{őô´Ü±Ă­ó– č$Ä˙lůň3ˇˇÎÁÁăÉ®!„nÜxµpáÉ  ńkÖ8‘] ŕŰP7mÚDv ’çţýěŔŔSţţÖˇˇ˘ą¶¤đ 4űôQŮĽ9INNÚÜ\Źěrß. ˙Íž?˙; ŕÄ´i#7nt%»–˙pw·(-­Ůşő’’’lçí¤ń·ÉÉ)ńő=6j”ţ/żxáE*+VŻŽWP™Ö­›R]Ý«˘"?f̲Ë|üX×^ŐŐ Ó§ŕp¸‰‰Á**rd—Ó.—xęţýěsçľ:´Ůĺľ‚¸]›ÝÝU_ş"—t`łą~~Ç^ľ,HL 60Đ »@[ŕ„ŽŻăpx‹Çää”ĆĆ.”FŃéÔcÇć  ááůáC%ŮĺÚAüu˙űßůÇŹßĹĆ.42’¤+ŻËĘJť<鯠 ăáYVVGv9€/‚ ţŠ_~ą—rř°Ź™™.ٵ|3eeą¸¸Ĺ\.ĎÇ'Ş®®‰ěr­ n˱cŹÂĂonß>ËŃŃ„ěZ:HSSńěŮĹ?VΛw¬© . €8‚ ţ˘K—Ň7mJ\łĆiÎś1d×"==µ3g–df~\Ľ8šĂ  v [÷đᛥKcýým–-›@v-"`l¬»09ůíĘ•gá8Ä q+^˝ú°`Á '§ˇâvł0ĚĚtýu~bâ‹mŰ®] ŕ?ŕ˘?-ĺć–şą1B÷čQżÎ¸¸;‰tuŐôôÔ¶n˝$#C·°čOv9€Ŕ)Î˙QRR;gΑ>}”ŹőŰ“…1}úČęęĆuëe%}ß7Ýń˙«©iôň:LŁQOź^$//Mv9ťĹĎĎŞĽĽníÚó †ěÔ©ĂÉ.AüŻćfŽż˙ŻuIIâ~) á­\9±®Ž«  cggDv9ôtÝjh‡qąĽĹ‹c23?ž>˝XGG•ěrşÂŹ?şĚśiîď"55ŹěZčé BhÝş„ű÷™żţ:ßŘX’Nb†aaaîăĆůúűöŮĺĐŁAŁ˝{oť>ýç‘#ľ=íę˝T*ĺŔo##-OĎĂd—@ĎŐÓřôé?ĂÂnüüó¬ †] ddč'Ohh0<<"KJjÉ.€ŞGńŐ«/CCĎ­\9ŃŰ»çČĄ  óŰo i4Š—×áęę˛Ë 'ęąAś’’;oŢw+VL$»’©ŞĘÇĹ-©­môöŽjll&»zśz‡Ž¬¬Â™3ŘŮ:äCˇÝ=@I‘—W:mZÄđá:ÇŹĎďf§ ćzâ÷­  ÂŰ;jÄÝoHaľţýŐŁŁţř#gůň3<^Oüó Yz\—–ÖzxDjh(DE‰ďťÉ2|¸Î‰W®¤oŘpěZčAzV××7ůúŁR)Ýű$faXY9â{ęÔ“˝{o‘] =E âćfÎĽyżUĹĆ.TU•'»ń5aÂđpݰ°ÇŽ="»z„žr­ _¶ěLFFÁĹ‹Kuu{ÄIĚÂ5ËĽ¦¦ńÇ/Ş«+¸şŽ »şąžÄ6\¸~=ă·ßőś“…4ľuqqMpđoňňŇÉ.€î¬Gěš8tč^LĚ“#G|ÇŽ5 »I˛v­ł§ç¨ N¦¤ä’] ÝY÷âłgS¶m»ňóĎ3{ćIĚÂŔ0lűöY& ńőŤĘĘ*$»ş­n~BÇŤŻ,8ąl™ăĘ•“Č®ER±ŮÜyóŽgd$&ëë«“]ÝĐ‚xçÎťwîÜ!±‘+.Öâp¨}úŃÖÜřńăCCC…줶¶6  ˘˘‹.™ĆĺRňóű«Ş–1Ő]łD‘PUUŤŠŠRPP »ľâ?AŚaŘčŃŁűőëGbA"‡ă›łç ţüóOá˙ďáááćć&’ŞÚC¬†±ťÎť;çîîNv!|EËŁ&–/_ÜÎC¨{UWÝ&q:@OŐý¬1A $ ’AÉ €d âÜÜ\---)))==˝ĺË—WUUµ=Kvv¶ŚŚŚ`K@@†a (ŕóŢÚďéÓ§ÎÎÎŠŠŠ cÇŽ˝uëVÇ:¦†®$üĘjuÄ"ôÍAĚd2-,, Ć*++Ţľ};fĚŻ~˝544ÄÇÇ;88ÄÄÄ|kÂHOOź8qâ”)Srrr üüü¦OźžššÚ•5t%áWVO1Č @ĹĹĹám˛··láńxÖÖÖ+V¬ppp ĂqĽ°°!´cÇÇ‹ŠŠWZZŠăxLL̰aò˛˛čtzII Ń“ÉÔŐŐ=zô¨ŞŞŞ¦¦ćéÓ§‰öĚĚLKKKťččhbJiiiâŐĘĘJoooUUŐľ}ű®]»¶ąąÇńšš___]]ÝS§Nń'¶łłŰµk—`ńˇˇˇŰ¶mkO‡óćÍ# [ż~˝` <oŢĽyŽŽŽŤŤŤmŽăqqq-ĆĽcÚŮŹđ+ëK#†·6PÄüĺ—_TTTÔŐŐcccׯ_ݍ¨¨®®Î_qşşş»wďVWW×ÔÔ\˝z5›ÍĆ[[Ĺ8ŽÇÇÇĘČČÜ»wŻŐ–¶µçó €8ř¶ ®®®¦P(ýőW‹ö„„_~ůĹŮŮÇńłgĎ2 '''âńСC“ÇńqăĆ˝{÷ÎĚĚŚ¸¦¦†Bˇ~ţľÚÓˇźřU[TIDAT««kII “Éěׯ߅ Yx<ŢÂ… íííÚ3Ü]ÄÂŻ¬6F om L&ŤF[łfMmmíO?ý„a˙1±6™L&•Jť2eJqqń«WŻHü1ř|WWWÓéô;wî°X¬ČČČ|ŢňŐQ‚ ’âŰ‚8''Ă0b+FPZZš‚‚Bff¦‚‚›Í \·nÁŕp8K–, LşĽĽ!„ôôô§úúú>|(**âńxüĆţýűTUU‰R{ČĚĚŚŠŠjO‡ü~¬¬¬ĚĚĚBMMMąąąĂ† oßřu)áWV#Öę@!„čtş´´4BBˇ>ćĎNˇPôőő‰ÇFFFÄ\źŻbeeĺ+W®ÄĆĆjii9::fdd|Ţ"şˇ€dßÄ ĂÖÖ6""‚ßž——áęꊚ4iŇ… >}údlllggwţüů±cÇň§Çq<:::222======++ËÁÁ!::šxőó‹”••ůűű9r$55uëÖ­-^ŐŇŇBýý÷ßÄÓĽĽ}úD<ľxńb{¶žşF×ńçH\Y-žélÄ@Rćg™áÇ‹¤+‘HLLüá‡jjjŢżżk×.b—( ŰĘtĎkM8p ¬¬¬oßľC‡ŐŐŐýß˙ţGvEđE-ďĐŃ=hii%%%‘]hÉČČĹb‘]b§{n€ ’AÉ €d-¬»{÷î7]Y|“çĎź‹°·ŁGŹŠ°7YţÄŁGʆďvg3fŚđť 2DAAaѢEÂwŐŤ)((šš’]_‡á8Nv ĐŁÁ>b 1 ‚HA $ű?—/ĄßJgIEND®B`‚qwt5-5.2.3/doc/html/form_3.png0000644000175000017500000000075712052741151015372 0ustar gudjongudjon‰PNG  IHDR\¬«č}0PLTEZ? tRNS.H]o€Źž¬ąĹŇÝéô˙Şg°ď^IDATxí]IŇî lÄ)Ďűßö5&1fŞú¶˙Â’-d š4*üN)ŔOäţµEüyóą‘]w#¨®a0N;4M|đát6Ď&HĹ–ýD¤ÎÉ©ÍÖµ»I+€sćŮöŽš+śV§ÔĆî‹™2”pN™ú­çá%±¶_#°D肿Áéüh^Ź0łhKŃ+x%8ArÄ"d?ŔmĚKg}9Uł´bşWpŢKĘC7đ-‹7p_†ŤtĎ[–š%7#z9€SëęˇUţ n‰9)mő:rnŃcš^Ŕ·´ć3-ÎBŰůB»i{¬›s˝|tľwŔ†ŞËja5«b0¦ůˇO› ˘ăVPMUJ“Ă‹Ű;Ź\,đĆó&ß‚ö)“o˘›Ň Qwt User's Guide: Member List
QwtPlotCurve Member List

This is the complete list of members for QwtPlotCurve, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
baseline() const QwtPlotCurve
boundingRect() const QwtPlotCurvevirtual
brush() const QwtPlotCurve
ClipPolygons enum value (defined in QwtPlotCurve)QwtPlotCurve
closePolyline(const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const QwtPlotCurveprotected
closestPoint(const QPoint &pos, double *dist=NULL) const QwtPlotCurve
CurveAttribute enum nameQwtPlotCurve
curveFitter() const QwtPlotCurve
CurveStyle enum nameQwtPlotCurve
CurveType enum nameQwtPlotCurve
curveType() const QwtPlotCurve
data()QwtPlotCurveinline
data() const QwtPlotCurveinline
dataSize() const QwtPlotCurve
detach()QwtPlotIteminline
Dots enum value (defined in QwtPlotCurve)QwtPlotCurve
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const QwtPlotCurvevirtual
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurvevirtual
draw(int from, int to) const QwtPlotCurve
drawCurve(QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotectedvirtual
drawDots(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotected
drawLines(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotected
drawSteps(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotected
drawSticks(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotected
drawSymbols(QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const QwtPlotCurveprotectedvirtual
fillCurve(QPainter *, const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const QwtPlotCurveprotected
Fitted enum value (defined in QwtPlotCurve)QwtPlotCurve
hide()QwtPlotItem
init()QwtPlotCurveprotected
Inverted enum value (defined in QwtPlotCurve)QwtPlotCurve
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
Lines enum value (defined in QwtPlotCurve)QwtPlotCurve
maxXValue() const QwtPlotCurveinline
maxYValue() const QwtPlotCurveinline
minXValue() const QwtPlotCurveinline
minYValue() const QwtPlotCurveinline
NoCurve enum value (defined in QwtPlotCurve)QwtPlotCurve
PaintAttribute enum nameQwtPlotCurve
PaintFiltered enum value (defined in QwtPlotCurve)QwtPlotCurve
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
pen() const QwtPlotCurve
plot() const QwtPlotItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotCurve()QwtPlotCurveexplicit
QwtPlotCurve(const QwtText &title)QwtPlotCurveexplicit
QwtPlotCurve(const QString &title)QwtPlotCurveexplicit
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotCurvevirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setBaseline(double ref)QwtPlotCurve
setBrush(const QBrush &)QwtPlotCurve
setCurveAttribute(CurveAttribute, bool on=true)QwtPlotCurve
setCurveFitter(QwtCurveFitter *)QwtPlotCurve
setCurveType(CurveType)QwtPlotCurve
setData(const double *xData, const double *yData, int size)QwtPlotCurve
setData(const QwtArray< double > &xData, const QwtArray< double > &yData)QwtPlotCurve
setData(const QPolygonF &data)QwtPlotCurve
setData(const QwtData &data)QwtPlotCurve
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setPaintAttribute(PaintAttribute, bool on=true)QwtPlotCurve
setPen(const QPen &)QwtPlotCurve
setRawData(const double *x, const double *y, int size)QwtPlotCurve
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setStyle(CurveStyle style)QwtPlotCurve
setSymbol(const QwtSymbol &s)QwtPlotCurve
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
Steps enum value (defined in QwtPlotCurve)QwtPlotCurve
Sticks enum value (defined in QwtPlotCurve)QwtPlotCurve
style() const QwtPlotCurve
symbol() const QwtPlotCurve
testCurveAttribute(CurveAttribute) const QwtPlotCurve
testItemAttribute(ItemAttribute) const QwtPlotItem
testPaintAttribute(PaintAttribute) const QwtPlotCurve
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotCurvevirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotItemvirtual
UserCurve enum value (defined in QwtPlotCurve)QwtPlotCurve
x(int i) const QwtPlotCurveinline
xAxis() const QwtPlotItem
Xfy enum value (defined in QwtPlotCurve)QwtPlotCurve
y(int i) const QwtPlotCurveinline
yAxis() const QwtPlotItem
Yfx enum value (defined in QwtPlotCurve)QwtPlotCurve
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotCurve()QwtPlotCurvevirtual
~QwtPlotItem()QwtPlotItemvirtual
qwt5-5.2.3/doc/html/class_qwt_slider__inherit__graph.png0000644000175000017500000001756512052741160022755 0ustar gudjongudjon‰PNG  IHDR»ŢŃ}bKGD˙˙˙ ˝§“*IDATxśíÝw\÷˙đ»KÂÂ[AÄu ˘Ö_ë@kED–D¤ _Tµ¸*¸jmµ Ú*TEˇUż|k­ ę×…˘ "*Tö^ ÷ůý‘~Ó" 9!ďç<’wźĎ;÷á•»$—Ga€÷FĐ]}d j@– d j0Ąď455yyyŐÖÖŇUŤÚµkפI“č®P—~/..ÎĹĹĹÉɉƂĘť;w&OžGw!€ĚŽM0µrăěěLw €2đz j@– d j@– d jt3KEEEîî†JJJfffőőőťŻ’——§˘˘"ľ˙ʞ˛˛µµőµk׺Z€¤··6J˙—˘ˇˇ1sćĚüüü® €LÝÉRnnî„ Řlvjjj]]]BBBAAÁäÉ“ß' eee„B¨´´tĺĘ• .ĚÍÍíF%]%!T\\üŃGyzzĘa\ ş“ĄŐ«W/[¶,<<Ü¢_ż~VVV—/_ÖÓÓ۵k×Ě™3÷ďߏaXii)ŽăűöíĂ0¬ĽĽÇqKK˶¶6Ç«««%]q8___OOĎ˝{÷Š[ęëëÝÜÜtuuMLL6oŢ,¤÷6íö<‡600Đ××_łfM[[›t‘---«V­200čßż˙ĆŤ…Ba»Gˇ­­˝|ůrI†srr&Nś¨ŞŞ:pŕŔččhńXfff‘‘‘şşş†††111â%›šš<<<8Ž™™ŮéÓ§%őĽuDĐ·u9KŤŤŤ©©©ţţţŇŤ8ŽŻ[·î×_ť3gNJJ †a7oŢdłŮ7nÜŔ0ěĆŤŁGŹÎÍÍďtuuŰő9oŢĽôôtńíU«V566>}úôúőëW®\9xđŕ›*ikk»víZVVÖőë×űí·ożýVú·ţţţ­­­999iiiiiiáááíVŻŻŻŹŠŠ˛µµßݶmŰĽyóęęęľţúëŤ7Š+++333‹ŠŠÖ¬Ył~ýzqăÚµkkkkź>}zíÚµC‡˝ű ŹCRbcc۵tTXXă¸@ hמ‘‘ˇˇˇ‘ťť­ˇˇ!üüü¶nÝĘfł…BˇŻŻoPP$K’Ź?ÖŇŇBńx<‚ ŠŠŠÄí ŁFŤ’^^ş Ă Ĺí111’ßňů|‹U__/ţíőë×­­­;F˛ŮlIOź>mii§Nť’˘ŞŞ !”““#é™ÉdJ*LJJędÄη$BČÉÉÉÉÉé­‹^AĆ9DťÓÓÓĂqĽ¸¸ŘÜÜ\şýőë׆††#FŚĐŇŇJOOżyófLLLLLLFFĆŤ7""":鳢˘ÂČČðňňr ĂĚĚĚÄíćććţůç›Ö"BRĂđáĂ+**$ż*++ZZZŇec¦¬¬ĚăńÄ-­­­›7oöňňďHďÝ»·lŮ2ÇMLL$k)))‰÷˘AHz&IRRá A:(Ž.ă±Ůě©S§†……IZBCC_Ľx¶`Á Ă>˙üóÄÄÄňňrKKËiÓ¦ĹÇÇż~ýúăŹ?î¤Ď+W®ŘŘŘ`fhhaŘË—/Ĺí/^Ľg ýď\éh‘$)Y˛°°ĐÔÔTň+!ŮK477?xđ Ý jjjžžžâöęęę•+W?~<==}×®]’epo·–A» ß}DĐÇIď¤Ţĺ!”““Ăápüýýóňň¸\npp0‹ĹŇÓÓ«©©A%&&Ş««ŰŰŰ#„˘ŁŁŐŐŐByyyL&“ĎçKłUWWGDD¨««ççç‹[-ZdggWQQQPP0jÔ¨={öwVÉÉÉUUUsćĚ‘€aggWYY™ťť=lذJ÷ěââ˛bĹŠŞŞŞŠŠ ;;»uëÖu<¶,(( B TVVâ8ž‘‘QSSăîîÎd2ëëëe["„/^üĹ_”——Z[[«¨¨ĽiÄ·nI8ĆëKş“%„ĐóçĎÝÜÜ ”””ĚÍÍ­­­BŤŤŤ,ëŔˇ’’ Ă"##BMMM·oß–$™ĹbYYYýńÇ’ž«««/^¬ŁŁcllüŐW_ńů|„Ppp0›Í666>{ö¬$KŢąs§ŽŽŽˇˇá¦M›„Bˇô_|]]ť››‡Ăáp8^^^­­­łÔŘŘČ`0Îť;‡ ałŮľpႥĄĺĚ™3ß”Ąşşş%K–°ŮěaÆ9rDCCăM#ľu3B–ú’nf©#.—›‘‘AEIş_~ůĄĽĽ\|;))ÉŇҲŰ]A–úĘÎ!RQQ;v,U˝}Č.\¸°eË–ĆĆĆWŻ^}÷ÝwâW‰Ŕůx]^]]=`Ŕ€ŃŁG8póćÍtW>]~O^Ľx‘î*ŔöKP˛5 KP˛5dĽ÷pâÄ ů×ˇŠŠŠÚťÖzŻdiäČ‘>>>tUÓ]¸ŠĘ \$j˘»’.[şt)Ý%jüăş­˝ÔÝ»ĎÂW¬řdĎşkŠ«/Ľ^JJz(ţ)’t×WŻĎź/LLĚŔ0¬ˇˇ5- .„hÓëł”šš×ÚÚ†aA$&>¤» ¸z}–2†aB!™śśÉĺňé®(¨ŢťĄ––¶ß~Ë Eâ»mmÂßJoI@aőî,I Ă0‚ŔŇi¬(˛ŢťĄ„„téK2…dJJ^c#—Ć’€ÂęĹYŞ­mIK+‰ţń>8Bčß˙Τ«$ Čzq–._~ұ!tţ<ćôâ,ĹÇ?čxŇI˘»wźWT4ĐRPd˝5KĄĄőľ"I'@1ÄĄK2vYô¨ŢšĄK—żéDBˇP”Úyë­×{|¸ŠŠĘ#¤?‹ĽyóćŔřáuuőÜÜÜěělSSÓ¨¨(qźŤŤŤ+V¬ŕp8۶m«ŞŞ’¬ţřńcÇą\®ädffşşşJ*‘ľŞ©©qvvÖÔÔ455Ýąs§¤˝ąąŮÇÇG__ßŘŘxÆ  77Wş°Î·ç»lówŰn6eR„é븢¸±ăŇóŰq;ß’NNNNNNŇ-]ËRCCAĎź?oמ0dČýű÷Ďť;!tîÜ96›=gÎńíŃŁGKŤš>}ú‘#GBÖÖÖ‡’L†aóçĎŻ¨¨ČĘĘ:thHHHCC‹ĹşvíŹÇ;zôčŕÁĄ˙Đ•””<==ËĘĘBööö;věŕrą‘‘‘úúúâ>=<<,XPYY™››kbb’(Y](Ž9rîÜąIII555ŇGf–mmm_ż~ťźź?bÄIűĘ•+ÝÜÜŞŞŞ mll<Ř®°ÎÉ3K 2}2W”9„ôăę8ŹťoĚ÷ÍRaa!Žă#›‘‘ˇˇˇ‘ťť­ˇˇ!üüü¶nÝĘfł…BˇŻŻoPPtŃ/^ĽPWWohh@………Ť?^z2 Ĺwcbb,,,jkk•••ŁŁŁ[[[I’äńxŇ“aäyńéÓ§---ŕÔ©Sâř|>“É”üéÜşu+==]ş’†††đđp;;;‡ciiąm۶––$+K\.— üü|ńŠńńń’!X,V}}˝¸ýúőëÖÖÖí ëś<ł¤ Ó'sE™CHz“9ŹťoĚžÚ/]ľ|yčС!“;wîŚ=:''ÇÜÜüÁ}ôQjjŞô& a2™:::†eee‰A$IŠ{ôč‘¶¶6Bč÷ß˙ěłĎŘl¶­­íýű÷Ű=±Ij8yňäřńă­¬¬ěííĹ ĽzőJşC±vO±b$I޿ƌöööHV–^ľ|‰ă¸H$/ź‘‘!˘Ý1łžž^»Â:÷!ě—úŘôÉ\Qć’ŢdÎcçó}ł„š>}úşuë$w8PTT4{öě 6 „ľüňËŤ7ęëë“$éé餩©Éçó%E“$9hĐ ČČȲ˙±µµŻ+~˘***÷7fĚ.—{˙ţ}„ŹÇűć›o $ó¬ŞŞŠ  „˛˛˛Äí<Ź ââbń2W®\IJJ’¬ĺăă3cĆ é‡v˙ţ}‡de©­­Ť gĎž‰—LLL” Á`0$ĎgÍÍÍ/_ľ”9ßo"ç×KŠ0}2W”9„¤7™óŘů–¤ K999Çßß?//ŹËĺłX,===ń1kbb˘şşşřé!::Z]]ÝÁÁ!”——Çd2ů|~JJŠššZssł¤ĂČČH###ˇP(~błłł«¬¬ĚÎÎ6lŘÁ›››ŐŐŐďÝ»ÇăńBCC---%]IOFee%Žă555îîîL&SĽ]ťśśŞŞŞ  /YýöíŰ ăűďż/))árąyyy ,đđđ@ox˝äěě<{öěŇŇŇgĎžŤ7NŇîââ˛bĹŠŞŞŞŠŠ ;;»uëÖ}ČYR„铹˘Ě!¤kč8ŹťoI ˛„zţüą›››’’’ąąy`` µµupp0B¨±±‘Ĺb8p!TRR‚aXdd$B¨©©ÉÂÂBCCă‹/ľpqq‘î­şşšÉd&''çćć”{Urňçź••j&&Mşş\Go_A.úőëúţ—\­«« liiˇ¤Ş÷$eeýJKŐI’°¶.WRŃ]QŹX˝zµtśţ‘Ąľ-4ô·ýű˙aˇˇćš53/ž¨˘Â˘»¨ľćĺËęŁGSÎť»G’$É‘#üöŰzş‹’ĘRSĎĘ*¤ąą Ă0PRb.Y2iőj[6ÝĄőż˙žsřđb±Á_;˘sçV}úépz “ʆaˇˇż:tU($ĹwY,BŘ‚cg¤Gom˝”PH&%=ڏžź_Î`"Ń_Ű–É$ĆŤxń"­`/ĹĘRc#ĎĘ*¤ĄĄMş‘ÉdD䌖7~>z´ ]µő:­­üłgďFD\//o$Ś$Ű˙!ĹĹůţß˙ ŁĄ6Z(V–0 űöŰ+GʦHB$LI’sćŚZ»vÖ¨Qh©­ąvíéÚµ§x&ă/Ĺ"FŽ4ąreĄŃFá>_ňöžĆ`ČxÔBˇ$Qrr–C¸ü«ęuîŢ}^_/ľŚß dPĐąE3…Ë’ŽN?OĎOX,Ć›pq±Q´}u7Íť9ó#™›‘É$&N4Wś·$.K†ůůÍąkÂqÜ×wĆîÝ8ŽËżŞŢ…Ĺbüô“ç”)C:ĆI($·l™OKUôRÄ,ik÷[ąňS돝 đĹ‹'nŮ2Ź®Şz‹ńÝwÎŽ:“ůwśLĆäÉC&LDcatQÄ,aćë;ťÁřű/ÇqMMŐ¬¬’úúV«ę]ĘË–,9Îd}d$Ů; …˘Í›çŇ[]4K::ý<<¦źPq_¶lRrr`CoÁ‚**č®®xń˘ę‹/łXŚ+WΞ]ef¦Ëb1X,bŇ$skkEÜ)a ›% Ă||¦á8†ăŘüůcľůĆŃÔ”ď'-:R^qęL^^ŮÂ…aZZjqq˙ŇÓÓĐŃéďgl¬%AAŠ{¬pź/I‹‰ą›ź_ľm›“ů×sĘë×uNN"ďgb˘Coy¦§OK]]ŹČ9sƇÍV•´WW7—”ÔŽgJcmôRč,ÉTZZďä!ăăýLM9t—óayôčŐŇĄ'FŽ4>uĘ«_?eşËů°(î1Ţ›k%%­QSS^´čČË—Őt—óIO±dɱ1cL˘Łż„ uY’A__ăüůih¨8:BśţrëV«ë±É“‡DG{©Ş*Ń]·˛$›žžF\Üż45Uíí(((§»šÝ¸‘ż|ůOÓ¦Yś8ᡤÔţ»Ř@ ˛ôFşşę‰‰«ŤŚ´śś"ňňĘŢľBőź˙dą»GÎź?ćřńĺťś{ KťŃÔT‹Ťő0@ŰŮ9"7Wătůňź¨E‹¬CC]ežx$`뼛­łĘÔ”ăě‘›[Jw9r÷Ŕ×7ÚÝ}Ę.¤·‚ ôvl¶ŞřŁ}‡#ŹÓ]ŽśśĄ÷"‘kמą|ůɉłgʤ»ś.DkÖśąz5ű§ź<§O· »śŢ ˛ôľD"rÝş_Í8vlůś9Łč.§ ÚÚ„ŢާîÜ)ŚŠúrňäÁt—ÓëA–( ‘ëןKJzá6oŢşËy'<žŔËëä/NźöVĚËQ˛D ’Dëן‹ŹO?thń˘EÖt—ó--mîî‘yyĺ11>p uŞŔwQ¨Axh¨«Ş*kÝş’DNNč®čŤššxnn‘ĎźWĆĹůŽŃźîrúČepßłgŽçHą¸ŘĐ]‘ uu-‹ݬlLJZ3d>Ýĺô)%*á8ľ{÷B <Çĺ <<¦Đ]Ń?ÔÔ4»şkjâ]¸°. C9ČĹp߱Þ đ­[BÎÉ8 ÎÎGQB‚_˙ţďűďqAG%ęá8bŻŞŞ´m["I’+W~úöuzXYY˝“S‹Ĺ¸pa­ľľÝĺôMĄž4—Á ¶oż@’čË/§ŇXÉË—ŐÎÎޱ±ľşşę4VŇ·A–zІ ź«Ş˛‚/´¶ňýýgŃRĂ‹UNNěłg}45Őh©AA@–z–řët{ö\&Iđ™śGĎÍ-su=:p îéÓŢl¶ŠśGW4ĄççgKÄ®]ż’$Zż~¶ÜĆ}ú´ÔĹ娥Ąń©S+ŐÔŕę=˛$ľľÓ ß±ă"Ź'ŘşU˙3ďŃŁWK–7Îôçź=á2«ňY’źiŞŞJ›7Ç#„¶mű˘GÇzđŕ…›Ű‰)S†;W‡”Č’ü¸»Lř¦MçI’Üľ}AŤróf‡ÇO¶¶–GޏAä ˛$WË–M&ü«ŻâZ[ů{÷:R~Ýą«Wł˝˝Ł.ż?\RŢ Kň¶dÉ$‚Ŕ7lEۻב (‹SrrÖŞUQË–}Ľ{÷B¸:¤üA–hŕę:QUUiÍšÓ$‰öís˘$N éëÖĹxz~˛‚D řţR<|řđáÇTőöřqĂĹ‹ĄŽŽýGŚ`żgW<žčđáçŁGk~ţą>UA˛˛˛˛˛˛˘¤+Yę‚~ýúµ¶¶Rء’’1ź_†aLˇ)Qů/«űőë×ÜÜLa‡}d© pž6mÝ…ô¸ÔÔÔ;vŔßF—Ŕ[=P˛5 KP˛5 KP˛D˝˛˛˛˝{÷:88Ěš5ËŐŐőČ‘#o}są¸¸řłĎţúvSEEĹ7ß|ăčč8{öěĄK—ţřăŹmmmŇËH/ü¦N€üA–(öęŐ+55µC‡]ştiçÎť%%%~~~ďřY BhăĆŤÚÚÚÇŹżtéRHHHVVVXXô2¦¦¦WŻ^í™ňA÷A–(vřđáYłfůűű›ššŞ¨¨ 6lďŢ˝ZZZŃŃŃë×ŻŹŤŤĹ0¬¦¦fúôé111†ŐÖÖNź>}ůňĺ`úôéEEEţůçĘ•+9Ž’’ŇСCýýýą\®ôŇűꦦ¦;vĚź?ßĹĹ%55U˛ ŹÇ ]¸pˇŁŁă±cÇD"Qqq±««kbbâÜąs‹‹ĺ?XËd‰J­­­Ź?vtt”nÄqÜŃŃńż˙ýďĉ3220 ËĚĚTSS{ňä †aOž<177ŹŠŠb±X))) 233Űľ}ű­[·ššš0 377˙úëŻß4⣢˘8’’"i kkk;uęÔ?üđäÉ“¤¤$ Ăjjj Oź>mjjÚ3@ˇA–¨T__Źaľ~űëˇŐŐŐŮŘŘdee‰D˘ĚĚL‡¬¬,’$ź?--- €Ăá 0`ĹŠâvˇPxőęŐµk×jjj{{{_»vMÜîíí­ŁŁÓ#^áÁyâTŇŇŇÂ0¬˛˛ŇČČHş˝şşZGGÇĚĚL]]=???33sűöíüńÇłgĎ?~ ˝°ššš˝˝˝˝˝=B(??˙ĉ»wď޵kWÇáęęę0 ëß˙Żk‚‹oÔÖÖ …Âůó˙ţ2Ľ¸0&“)ľzě—¨¤¦¦6věŘÄÄDIËůóçËĘʧL™‚aŤŤÍÍ›7kkkMMMÇŽ{ăĆŤęęę#ţţo|ˇˇˇâŰ8Ž[XXx{{gffĘŽĂá`VZZ*ľ[VV&ľˇ­­MÄĺË—SRRRRR’““Ź;&îúÇ ţ˛D1˙«W݆‡‡—””đůü––ww÷gĎž-]şĂ0›‹/Ž9Çń±cÇ^¸paüřńL&Çq’$…BáěŮłźýńÇË‹ÉdNť:őđáĂ555Ż_żţĺ—_Äí,kęÔ©GŽihh¨ŻŻßµkW||Ľü6˘‚,QlŕŔÇŽkjjň÷÷ź7oŢŐ«W.\h``€a•••@ =z4†aăĆŤărąâKşşşýű÷_°`©©éŢ˝{ďÜął|ůr;;»­[·ššš®_żţMĂŞ««{xxş¸¸H·‹D"ww÷ĺË—kkk{yyőüCWtđť‹.čöw.ř|~qqń!Cz ¨ßąčŘ/É’’R/ čČÔ€,@ ČÔ€,@ ČÔ€,@ ČÔ€Ďj»€ňkM~ČŕZ“]ç‰wÁÝ»wóňňč®BN,,,č.ˇ—ýÔ€×KP˛5 KP˛5ţ´éFáž^IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_dial_needle__inherit__graph.md50000644000175000017500000000004012052741137023601 0ustar gudjongudjon456e05fd382edc846c2b636f9effe609qwt5-5.2.3/doc/html/dir_4118f540b2f97d7768d69ea313198c2a_dep.md50000644000175000017500000000004012052741143021734 0ustar gudjongudjonac76d8d9503ccdb295ad3422aab7cf21qwt5-5.2.3/doc/html/inherit_graph_18.map0000644000175000017500000000030712052741162017322 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_spline_curve_fitter-members.html0000644000175000017500000001567712052741143024160 0ustar gudjongudjon Qwt User's Guide: Member List
QwtSplineCurveFitter Member List

This is the complete list of members for QwtSplineCurveFitter, including all inherited members.

Auto enum value (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
fitCurve(const QPolygonF &) const QwtSplineCurveFittervirtual
FitMode enum name (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
fitMode() const QwtSplineCurveFitter
ParametricSpline enum value (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
QwtCurveFitter()QwtCurveFitterprotected
QwtSplineCurveFitter()QwtSplineCurveFitter
setFitMode(FitMode)QwtSplineCurveFitter
setSpline(const QwtSpline &) (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
setSplineSize(int size)QwtSplineCurveFitter
Spline enum value (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
spline() const (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
spline() (defined in QwtSplineCurveFitter)QwtSplineCurveFitter
splineSize() const QwtSplineCurveFitter
~QwtCurveFitter()QwtCurveFittervirtual
~QwtSplineCurveFitter()QwtSplineCurveFittervirtual
qwt5-5.2.3/doc/html/inherit_graph_32.map0000644000175000017500000000031412052741163017315 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__dyngrid__layout_8h_source.html0000644000175000017500000004165712052741134022577 0ustar gudjongudjon Qwt User's Guide: qwt_dyngrid_layout.h Source File
Qwt User's Guide  5.2.3
qwt_dyngrid_layout.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_DYNGRID_LAYOUT_H
11 #define QWT_DYNGRID_LAYOUT_H
12 
13 #include <qlayout.h>
14 #include <qsize.h>
15 #if QT_VERSION >= 0x040000
16 #include <qlist.h>
17 #else
18 #include <qvaluelist.h>
19 #endif
20 #include "qwt_global.h"
21 #include "qwt_array.h"
22 
32 class QWT_EXPORT QwtDynGridLayout : public QLayout
33 {
34  Q_OBJECT
35 public:
36  explicit QwtDynGridLayout(QWidget *, int margin = 0, int space = -1);
37 #if QT_VERSION < 0x040000
38  explicit QwtDynGridLayout(QLayout *, int space = -1);
39 #endif
40  explicit QwtDynGridLayout(int space = -1);
41 
42  virtual ~QwtDynGridLayout();
43 
44  virtual void invalidate();
45 
46  void setMaxCols(uint maxCols);
47  uint maxCols() const;
48 
49  uint numRows () const;
50  uint numCols () const;
51 
52  virtual void addItem(QLayoutItem *);
53 
54 #if QT_VERSION >= 0x040000
55  virtual QLayoutItem *itemAt( int index ) const;
56  virtual QLayoutItem *takeAt( int index );
57  virtual int count() const;
58 
59  void setExpandingDirections(Qt::Orientations);
60  virtual Qt::Orientations expandingDirections() const;
61  QList<QRect> layoutItems(const QRect &, uint numCols) const;
62 #else
63  virtual QLayoutIterator iterator();
64 
65  void setExpanding(QSizePolicy::ExpandData);
66  virtual QSizePolicy::ExpandData expanding() const;
67  QValueList<QRect> layoutItems(const QRect &, uint numCols) const;
68 #endif
69 
70  virtual int maxItemWidth() const;
71 
72  virtual void setGeometry(const QRect &rect);
73 
74  virtual bool hasHeightForWidth() const;
75  virtual int heightForWidth(int) const;
76 
77  virtual QSize sizeHint() const;
78 
79  virtual bool isEmpty() const;
80  uint itemCount() const;
81 
82  virtual uint columnsForWidth(int width) const;
83 
84 protected:
85 
86  void layoutGrid(uint numCols,
87  QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const;
88  void stretchGrid(const QRect &rect, uint numCols,
89  QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const;
90 
91 
92 private:
93  void init();
94  int maxRowWidth(int numCols) const;
95  void updateLayoutCache();
96 
97 #if QT_VERSION < 0x040000
98 // xlC 5.1, the IBM/AIX C++ compiler, needs it to be public
99 public:
100 #endif
101  class PrivateData;
102 
103 private:
104  PrivateData *d_data;
105 };
106 
107 #endif
qwt5-5.2.3/doc/html/class_qwt_plot_dict__inherit__graph.md50000644000175000017500000000004012052741141023330 0ustar gudjongudjona588be39960141dac513d18132a5d6e8qwt5-5.2.3/doc/html/class_qwt_knob__inherit__graph.md50000644000175000017500000000004012052741140022277 0ustar gudjongudjon57568041047532a2574f8257d91b2968qwt5-5.2.3/doc/html/qwt__text__label_8h_source.html0000644000175000017500000003111412052741135021651 0ustar gudjongudjon Qwt User's Guide: qwt_text_label.h Source File
Qwt User's Guide  5.2.3
qwt_text_label.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_TEXT_LABEL_H
11 #define QWT_TEXT_LABEL_H
12 
13 #include <qframe.h>
14 #include "qwt_global.h"
15 #include "qwt_text.h"
16 
17 class QString;
18 class QPaintEvent;
19 class QPainter;
20 
25 class QWT_EXPORT QwtTextLabel : public QFrame
26 {
27  Q_OBJECT
28 
29  Q_PROPERTY( int indent READ indent WRITE setIndent )
30  Q_PROPERTY( int margin READ margin WRITE setMargin )
31 
32 public:
33  explicit QwtTextLabel(QWidget *parent = NULL);
34 #if QT_VERSION < 0x040000
35  explicit QwtTextLabel(QWidget *parent, const char *name);
36 #endif
37  explicit QwtTextLabel(const QwtText &, QWidget *parent = NULL);
38  virtual ~QwtTextLabel();
39 
40 public slots:
41  void setText(const QString &,
42  QwtText::TextFormat textFormat = QwtText::AutoText);
43  virtual void setText(const QwtText &);
44 
45  void clear();
46 
47 public:
48  const QwtText &text() const;
49 
50  int indent() const;
51  void setIndent(int);
52 
53  int margin() const;
54  void setMargin(int);
55 
56  virtual QSize sizeHint() const;
57  virtual QSize minimumSizeHint() const;
58  virtual int heightForWidth(int) const;
59 
60  QRect textRect() const;
61 
62 protected:
63  virtual void paintEvent(QPaintEvent *e);
64  virtual void drawContents(QPainter *);
65  virtual void drawText(QPainter *, const QRect &);
66 
67 private:
68  void init();
69  int defaultIndent() const;
70 
71  class PrivateData;
72  PrivateData *d_data;
73 };
74 
75 #endif
qwt5-5.2.3/doc/html/class_qwt_text_label.html0000644000175000017500000004320212052741165020565 0ustar gudjongudjon Qwt User's Guide: QwtTextLabel Class Reference

#include <qwt_text_label.h>

Inheritance diagram for QwtTextLabel:

List of all members.

Public Slots

void clear ()
void setText (const QString &, QwtText::TextFormat textFormat=QwtText::AutoText)
virtual void setText (const QwtText &)

Public Member Functions

 QwtTextLabel (QWidget *parent=NULL)
 QwtTextLabel (const QwtText &, QWidget *parent=NULL)
virtual ~QwtTextLabel ()
virtual int heightForWidth (int) const
int indent () const
int margin () const
virtual QSize minimumSizeHint () const
void setIndent (int)
void setMargin (int)
virtual QSize sizeHint () const
const QwtTexttext () const
QRect textRect () const

Protected Member Functions

virtual void drawContents (QPainter *)
virtual void drawText (QPainter *, const QRect &)
virtual void paintEvent (QPaintEvent *e)

Detailed Description

A Widget which displays a QwtText.


Constructor & Destructor Documentation

QwtTextLabel::QwtTextLabel ( QWidget *  parent = NULL)
explicit

Constructs an empty label.

Parameters:
parentParent widget
QwtTextLabel::QwtTextLabel ( const QwtText text,
QWidget *  parent = NULL 
)
explicit

Constructs a label that displays the text, text

Parameters:
parentParent widget
textText

Member Function Documentation

int QwtTextLabel::heightForWidth ( int  width) const
virtual

Returns the preferred height for this widget, given the width.

Parameters:
widthWidth
void QwtTextLabel::paintEvent ( QPaintEvent *  event)
protectedvirtual

Qt paint event

Parameters:
eventPaint event

Reimplemented in QwtLegendItem.

void QwtTextLabel::setIndent ( int  indent)

Set label's text indent in pixels

Parameters:
indentIndentation in pixels
void QwtTextLabel::setMargin ( int  margin)

Set label's margin in pixels

Parameters:
marginMargin in pixels
void QwtTextLabel::setText ( const QString &  text,
QwtText::TextFormat  textFormat = QwtText::AutoText 
)
slot

Change the label's text, keeping all other QwtText attributes

Parameters:
textNew text
textFormatFormat of text
See also:
QwtText
void QwtTextLabel::setText ( const QwtText text)
virtualslot

Change the label's text

Parameters:
textNew text

Reimplemented in QwtLegendItem.

QRect QwtTextLabel::textRect ( ) const

Calculate the rect for the text in widget coordinates

Returns:
Text rect
qwt5-5.2.3/doc/html/inherit_graph_28.md50000644000175000017500000000004012052741151017223 0ustar gudjongudjonf4e5fb4fc807be30ff7212ef3002daa1qwt5-5.2.3/doc/html/inherit_graph_22.map0000644000175000017500000000023012052741163017311 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_array_data__inherit__graph.map0000644000175000017500000000026412052741153023561 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_linear_color_map__inherit__graph.png0000644000175000017500000000717712052741154025001 0ustar gudjongudjon‰PNG  IHDRp~`nmbKGD˙˙˙ ˝§“4IDATxśíťkP瀿 IŔśáJĄÖ‚ ĄU¤TS©HJ«6±”ÁR)0§í­CA¦ÂĐŽ`/€\¤#Žš‚T=ŘîjIŕ€„ką„dĎŹťłł'@‰ĐM÷ůµű]Ţďeźě~{ Y†a@€H+ťÁâ „á BÎ „á ňŇCś:uŞ˘˘béqtž;vÄÇÇ/1´ôłD‚<<<^xá…%ĆŃm¤RéÍ›7µpN/@aaáŇăč6………ZŮÚĆ3a8†3a8†3–OXGG—˵¶¶¦R©ööö111###š»´·· «·oß 466644Üşu+źĎ_`GÍC@ôöŰoc a¶łł[`„ef™„µµµąąąUUU —””Ü»wĎÓÓó©ÎPüýý‚‚Äb±T*=xđ`HHH}}ýŇs#“ÉüńG?ZR]]˝đÄ–›Ą_€\‡˝ůć›GŽÁ–¨T*ooďŘŘŘíŰ·§¤¤Ŕ0ÜÓÓHNN†a¸··›¤L&óőő=}ú46B|||bb" ĂĂĂĂ033łµµ=věŘôôt[[›ľľ>ŇlÎZ;;»łgĎŇéô‹/ęëëďŰ·/55Ť†Fhnnvww700`2™yyy0 #RSS-,,¬¬¬Ž=ŞP(4om]‡-‡°ŃŃQ‰ôŕÁµň’’’µkמ9s&00†á‚‚##Łť;w"Ë...čv—Ëĺ$©§§gÎřg÷îÝŹ=şwďžłłó©S§°Â欥R©aaa˝˝˝HËk×®ą¸¸ íź‹ĹÂ*ommW(ąąąH!A,# ňóóťťť5o%<Ýé°°°€ H"‘¨•÷ôôX[[oذÁ`Ô×××ÔÔěŰ·ĎÜÜ\(VWWďÜąmiff†´ÇvonnÎÉÉéëëŘŰŰ#…ÝÝÝh›ůj©TŞ……ÚŚD"8p 77đÓO?qą\ě@·nÝňöööđđ(++Ăvqpp@–±>W–C‘‘‘ŹŹOzz:Z’––ÖŮŮ™žž (--íëësrrňőő-..îééŮşu+6‚——×?ü€ ›’’rĺĘkkkŔÇ‘ÂÎÎN´Í|µ©%Éăń~ýő×îîîşş:6›Ť– |ôŃGŮŮŮőőő'OžDËU*V,c}ľ,}' 8éhii133‹ŽŽnooźHHH P(0 —––Ňéô={öŔ0|ţüy:ťÎfłanoo'“ÉÓÓÓ0 ßşukŐŞUÇŹommíěěLIIˇP(7nÜ€ařťwŢÁÎR‰‰‰ŘšćZ첛›ŰöíŰy<¶Ľżż‚ ˇP888ČĺrÉdňČČrHÜ˝{wKK‹““rúŁ<Ía<řବ¬¨TŞCllěćÍ›`–Ëĺ 9O“JĄ€śś†ÇĆĆ Ż555,‹N§{yyńů|$ňŔŔŔűďżojjşzőęĎ>űLí,Qs-v9## ÔĘŹ?nddôŇK/•••999íر©MOOg2™–––111ȧJř6›‰‰ džÇXť O'óa``ŕęęş‚ ŕâ^"Î „= ŽŽŽ“““+24! gÂp! gÂp†ľH ßHîÜąŁť@Kż”óđđĐN*ÚJµˇR—ëćŢ‚ńôô\úÖÖÂ7˙n(•ŞW_M46~M"©ßäĹ;:8‡ýů§xhh|hčq]ťxĄsŃ>:(¬¨¨žL&Q(¤˘˘Żt.ÚGׄMN*._ÍĚ( ŐĺˢÉIĹJg¤etMŘőëm¨¤ÉIĹőëm+›ŹÖŃ5a%%őčÓd‚JJ´đ=¸ż:%L.ꬍhU*UČŞR©Ş¨h•ËWć.ísB§„]˝Ú¤RýßUŠJ_»Ö´Rů<tJXqq˝ÚU% ĂĹĹ:uTÔa2ŮX]Ý}•J…-T©ŕşşű2ŮŘJeĄutGXyyĂś÷5 */->Ď ÝváB˝Ú† R©té ZG„őô 76JçD"éţŁ#´óxeĹů׿ô×­ł’Ë'UäÚŮŔ€‚¬Óh4ęŠ%§Utđn=ŕС<@v6oĄŃ>:rHüç@Ă„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0śAĂ„0ĽýńÄ7ŢxcĄÓŃd˛9™lľŇYhooďyŕ‚ wß}wýúő+–ÖÖÖ˘˘"¬#őJ_ż~˝ŻŻď˛&E°9 gÂp! gÂp! g<‹°ŢŢޤ¤$6›Íb±öîÝ›™™ůřńcÍ]$É[o˝…]łVë´··;vl×®]QQQެľđ$‰źźß矎-„aĂá<§żˢ…uuu:tFŁ}űí·—.]úú믥RéáÇźęLL&“Ďç?s÷ů‹ĹGŹőôôüĺ—_.\¸đĺ—_Ţ˝{wé‘őôôD"öí%"‘h)[`á,ZŘwß}Çb±˘ŁŁ™L¦Áşuë’’’ Ćůóçăââ7=úůůĺç熆†üüüx<žBˇđóóť»˙íÝ»·ĽĽ<88Íf ¤ÁäädZZZHHHhhhVV–R©<|ř022ŇßßźĂá ľ‘Ą‰$33s˙ţýÁÁÁ N§±Ůld'{üřń7ß|üŢ{ďĺääĚĚĚ`ó™]«™D"yzzţţűďh>źďăă®Î—[QQQHH›ÍÎÎÎFţŠĹ˛8aOž00`jjjooO§ÓďŢ˝ŰŘŘřŐW_ ‚ű÷ď744ÄÄÄ,"!2Ů Ńźźš™™ RKŁ­­-11‚ ěL&#µH™L†­íěěliiqss˙{‰:ŔĆĆF&“ˇm†††ć¬E##@Äb±®^˝ĹçóŐN7ćĚ ‚ t»1™Lě  gq{ŤFsuu---EKŠŠŠz{{KKK˝ĽĽîîî555CCCL&ÓŐŐµşşz```Æ böKçMLLH$Ryyyeeeeeĺ•+W˛˛˛FGGOź>—ťť6»;ŤF۸qăĺË—±ˇ nßľŤě%}}}Haoo/vGśŻvvbţţţ@&“µ´´l۶ -ź/7†Ń°===sîýOeŃ'ŃŃŃ|>?##C*•NOOŹŹŹsąÜű÷ď#s»»űożý¶qăF‚\]]ËĘĘ^ýu2™ AJĄBçöǦ¦¦4ŹHˇP|||233GGGGFFNž),,ĚËËëęęęëë+,,Ľ~ý:‡ĂˇP(ŢŢŢ###ÝÝÝąąąŘéGs-;;;kkëääd///}}}´\CnHŘ®®®sçÎÍV3‹fgg—••566˝k×.>źbeeURRŘ´i“BˇpqqĽöÚkČfnnľfÍšŕŕŕ±±1…Bń6†3gÎ Qwt User's Guide: Member List
QwtPickerDragPointMachine Member List

This is the complete list of members for QwtPickerDragPointMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)QwtPickerDragPointMachinevirtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/qwt__layout__metrics_8h_source.html0000644000175000017500000006122712052741135022601 0ustar gudjongudjon Qwt User's Guide: qwt_layout_metrics.h Source File
Qwt User's Guide  5.2.3
qwt_layout_metrics.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_LAYOUT_METRICS_H
11 #define QWT_LAYOUT_METRICS_H
12 
13 #include <qsize.h>
14 #include <qrect.h>
15 #include "qwt_polygon.h"
16 #include "qwt_global.h"
17 
18 class QPainter;
19 class QString;
20 class QFontMetrics;
21 #if QT_VERSION < 0x040000
22 class QWMatrix;
23 #else
24 class QMatrix;
25 #endif
26 class QPaintDevice;
27 
43 class QWT_EXPORT QwtMetricsMap
44 {
45 public:
46  QwtMetricsMap();
47 
48  bool isIdentity() const;
49 
50  void setMetrics(const QPaintDevice *layoutMetrics,
51  const QPaintDevice *deviceMetrics);
52 
53  int layoutToDeviceX(int x) const;
54  int deviceToLayoutX(int x) const;
55  int screenToLayoutX(int x) const;
56  int layoutToScreenX(int x) const;
57 
58  int layoutToDeviceY(int y) const;
59  int deviceToLayoutY(int y) const;
60  int screenToLayoutY(int y) const;
61  int layoutToScreenY(int y) const;
62 
63  QPoint layoutToDevice(const QPoint &, const QPainter * = NULL) const;
64  QPoint deviceToLayout(const QPoint &, const QPainter * = NULL) const;
65  QPoint screenToLayout(const QPoint &) const;
66  QPoint layoutToScreen(const QPoint &point) const;
67 
68 
69  QSize layoutToDevice(const QSize &) const;
70  QSize deviceToLayout(const QSize &) const;
71  QSize screenToLayout(const QSize &) const;
72  QSize layoutToScreen(const QSize &) const;
73 
74  QRect layoutToDevice(const QRect &, const QPainter * = NULL) const;
75  QRect deviceToLayout(const QRect &, const QPainter * = NULL) const;
76  QRect screenToLayout(const QRect &) const;
77  QRect layoutToScreen(const QRect &) const;
78 
79  QwtPolygon layoutToDevice(const QwtPolygon &,
80  const QPainter * = NULL) const;
81  QwtPolygon deviceToLayout(const QwtPolygon &,
82  const QPainter * = NULL) const;
83 
84 #if QT_VERSION < 0x040000
85  static QwtPolygon translate(const QWMatrix &, const QwtPolygon &);
86  static QRect translate(const QWMatrix &, const QRect &);
87 #else
88  static QwtPolygon translate(const QMatrix &, const QwtPolygon &);
89  static QRect translate(const QMatrix &, const QRect &);
90 #endif
91 
92 private:
93  double d_screenToLayoutX;
94  double d_screenToLayoutY;
95 
96  double d_deviceToLayoutX;
97  double d_deviceToLayoutY;
98 };
99 
100 inline bool QwtMetricsMap::isIdentity() const
101 {
102  return d_deviceToLayoutX == 1.0 && d_deviceToLayoutY == 1.0;
103 }
104 
105 inline int QwtMetricsMap::layoutToDeviceX(int x) const
106 {
107  return qRound(x / d_deviceToLayoutX);
108 }
109 
110 inline int QwtMetricsMap::deviceToLayoutX(int x) const
111 {
112  return qRound(x * d_deviceToLayoutX);
113 }
114 
115 inline int QwtMetricsMap::screenToLayoutX(int x) const
116 {
117  return qRound(x * d_screenToLayoutX);
118 }
119 
120 inline int QwtMetricsMap::layoutToScreenX(int x) const
121 {
122  return qRound(x / d_screenToLayoutX);
123 }
124 
125 inline int QwtMetricsMap::layoutToDeviceY(int y) const
126 {
127  return qRound(y / d_deviceToLayoutY);
128 }
129 
130 inline int QwtMetricsMap::deviceToLayoutY(int y) const
131 {
132  return qRound(y * d_deviceToLayoutY);
133 }
134 
135 inline int QwtMetricsMap::screenToLayoutY(int y) const
136 {
137  return qRound(y * d_screenToLayoutY);
138 }
139 
140 inline int QwtMetricsMap::layoutToScreenY(int y) const
141 {
142  return qRound(y / d_screenToLayoutY);
143 }
144 
145 inline QSize QwtMetricsMap::layoutToDevice(const QSize &size) const
146 {
147  return QSize(layoutToDeviceX(size.width()),
148  layoutToDeviceY(size.height()));
149 }
150 
151 inline QSize QwtMetricsMap::deviceToLayout(const QSize &size) const
152 {
153  return QSize(deviceToLayoutX(size.width()),
154  deviceToLayoutY(size.height()));
155 }
156 
157 inline QSize QwtMetricsMap::screenToLayout(const QSize &size) const
158 {
159  return QSize(screenToLayoutX(size.width()),
160  screenToLayoutY(size.height()));
161 }
162 
163 inline QSize QwtMetricsMap::layoutToScreen(const QSize &size) const
164 {
165  return QSize(layoutToScreenX(size.width()),
166  layoutToScreenY(size.height()));
167 }
168 
169 #endif
qwt5-5.2.3/doc/html/inherit_graph_3.map0000644000175000017500000000076712052741161017245 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot.html0000644000175000017500000034454512052741164017435 0ustar gudjongudjon Qwt User's Guide: QwtPlot Class Reference

#include <qwt_plot.h>

Inheritance diagram for QwtPlot:

List of all members.

Public Types

enum  Axis {
  yLeft,
  yRight,
  xBottom,
  xTop,
  axisCnt
}
enum  LegendPosition {
  LeftLegend,
  RightLegend,
  BottomLegend,
  TopLegend,
  ExternalLegend
}

Public Slots

void autoRefresh ()
virtual void clear ()
virtual void replot ()

Signals

void legendChecked (QwtPlotItem *plotItem, bool on)
void legendClicked (QwtPlotItem *plotItem)

Public Member Functions

 QwtPlot (QWidget *=NULL)
 QwtPlot (const QwtText &title, QWidget *p=NULL)
virtual ~QwtPlot ()
void applyProperties (const QString &)
bool autoReplot () const
bool axisAutoScale (int axisId) const
bool axisEnabled (int axisId) const
QFont axisFont (int axisId) const
int axisMaxMajor (int axisId) const
int axisMaxMinor (int axisId) const
const QwtScaleDivaxisScaleDiv (int axisId) const
QwtScaleDivaxisScaleDiv (int axisId)
const QwtScaleDrawaxisScaleDraw (int axisId) const
QwtScaleDrawaxisScaleDraw (int axisId)
QwtScaleEngineaxisScaleEngine (int axisId)
const QwtScaleEngineaxisScaleEngine (int axisId) const
double axisStepSize (int axisId) const
QwtText axisTitle (int axisId) const
const QwtScaleWidgetaxisWidget (int axisId) const
QwtScaleWidgetaxisWidget (int axisId)
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
const QColor & canvasBackground () const
int canvasLineWidth () const
virtual QwtScaleMap canvasMap (int axisId) const
virtual void drawCanvas (QPainter *)
void enableAxis (int axisId, bool tf=true)
virtual bool event (QEvent *)
QString grabProperties () const
void insertLegend (QwtLegend *, LegendPosition=QwtPlot::RightLegend, double ratio=-1.0)
double invTransform (int axisId, int pos) const
QwtLegendlegend ()
const QwtLegendlegend () const
int margin () const
virtual QSize minimumSizeHint () const
QwtPlotLayoutplotLayout ()
const QwtPlotLayoutplotLayout () const
virtual void polish ()
void print (QPaintDevice &p, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const
virtual void print (QPainter *, const QRect &rect, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const
void setAutoReplot (bool tf=true)
void setAxisAutoScale (int axisId)
void setAxisFont (int axisId, const QFont &f)
void setAxisLabelAlignment (int axisId, Qt::Alignment)
void setAxisLabelRotation (int axisId, double rotation)
void setAxisMaxMajor (int axisId, int maxMajor)
void setAxisMaxMinor (int axisId, int maxMinor)
void setAxisScale (int axisId, double min, double max, double step=0)
void setAxisScaleDiv (int axisId, const QwtScaleDiv &)
void setAxisScaleDraw (int axisId, QwtScaleDraw *)
void setAxisScaleEngine (int axisId, QwtScaleEngine *)
void setAxisTitle (int axisId, const QString &)
void setAxisTitle (int axisId, const QwtText &)
void setCanvasBackground (const QColor &c)
void setCanvasLineWidth (int w)
void setMargin (int margin)
void setTitle (const QString &)
void setTitle (const QwtText &t)
virtual QSize sizeHint () const
QwtText title () const
QwtTextLabeltitleLabel ()
const QwtTextLabeltitleLabel () const
int transform (int axisId, double value) const
void updateAxes ()
virtual void updateLayout ()
- Public Member Functions inherited from QwtPlotDict
 QwtPlotDict ()
 ~QwtPlotDict ()
bool autoDelete () const
void detachItems (int rtti=QwtPlotItem::Rtti_PlotItem, bool autoDelete=true)
const QwtPlotItemList & itemList () const
void setAutoDelete (bool)

Protected Slots

virtual void legendItemChecked (bool)
virtual void legendItemClicked ()

Protected Member Functions

virtual void drawItems (QPainter *, const QRect &, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const
virtual void printCanvas (QPainter *, const QRect &boundingRect, const QRect &canvasRect, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const
virtual void printLegend (QPainter *, const QRect &) const
virtual void printLegendItem (QPainter *, const QWidget *, const QRect &) const
virtual void printScale (QPainter *, int axisId, int startDist, int endDist, int baseDist, const QRect &) const
virtual void printTitle (QPainter *, const QRect &) const
virtual void resizeEvent (QResizeEvent *e)
virtual void updateTabOrder ()

Static Protected Member Functions

static bool axisValid (int axisId)

Detailed Description

A 2-D plotting widget.

QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (QwtPlotCurve), markers (QwtPlotMarker), the grid (QwtPlotGrid), or anything else derived from QwtPlotItem. A plot can have up to four axes, with each plot item attached to an x- and a y axis. The scales at the axes can be explicitely set (QwtScaleDiv), or are calculated from the plot items, using algorithms (QwtScaleEngine) which can be configured separately for each axis.

plot.png
Example
The following example shows (schematically) the most simple way to use QwtPlot. By default, only the left and bottom axes are visible and their scales are computed automatically.
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

QwtPlot *myPlot = new QwtPlot("Two Curves", parent);

// add curves
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");

// copy the data into the curves
curve1->setData(...);
curve2->setData(...);

curve1->attach(myPlot);
curve2->attach(myPlot);

// finally, refresh the plot
myPlot->replot();

Member Enumeration Documentation

Axis index

  • yLeft
  • yRight
  • xBottom
  • xTop

Position of the legend, relative to the canvas.

  • LeftLegend
    The legend will be left from the yLeft axis.
  • RightLegend
    The legend will be right from the yLeft axis.
  • BottomLegend
    The legend will be right below the xBottom axis.
  • TopLegend
    The legend will be between xTop axis and the title.
  • ExternalLegend
    External means that only the content of the legend will be handled by QwtPlot, but not its geometry. This might be interesting if an application wants to have a legend in an external window ( or on the canvas ).
Note:
In case of ExternalLegend, the legend is not printed by print().
See also:
insertLegend()

Constructor & Destructor Documentation

QwtPlot::QwtPlot ( QWidget *  parent = NULL)
explicit

Constructor.

Parameters:
parentParent widget
QwtPlot::QwtPlot ( const QwtText title,
QWidget *  parent = NULL 
)
explicit

Constructor.

Parameters:
titleTitle text
parentParent widget

Member Function Documentation

void QwtPlot::applyProperties ( const QString &  )

This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin.

Warning:
The plot editor has never been implemented.
bool QwtPlot::autoReplot ( ) const
Returns:
true if the autoReplot option is set.
bool QwtPlot::axisAutoScale ( int  axisId) const
Returns:
true if autoscaling is enabled
Parameters:
axisIdaxis index
bool QwtPlot::axisEnabled ( int  axisId) const
Returns:
true if a specified axis is enabled
Parameters:
axisIdaxis index
QFont QwtPlot::axisFont ( int  axisId) const
Returns:
the font of the scale labels for a specified axis
Parameters:
axisIdaxis index
int QwtPlot::axisMaxMajor ( int  axisId) const
Returns:
the maximum number of major ticks for a specified axis
Parameters:
axisIdaxis index sa setAxisMaxMajor()
int QwtPlot::axisMaxMinor ( int  axisId) const
Returns:
the maximum number of minor ticks for a specified axis
Parameters:
axisIdaxis index sa setAxisMaxMinor()
const QwtScaleDiv * QwtPlot::axisScaleDiv ( int  axisId) const

Return the scale division of a specified axis.

axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale.

Parameters:
axisIdaxis index
Returns:
Scale division
See also:
QwtScaleDiv, setAxisScaleDiv()
QwtScaleDiv * QwtPlot::axisScaleDiv ( int  axisId)

Return the scale division of a specified axis.

axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale.

Parameters:
axisIdaxis index
Returns:
Scale division
See also:
QwtScaleDiv, setAxisScaleDiv()
const QwtScaleDraw * QwtPlot::axisScaleDraw ( int  axisId) const
Returns:
the scale draw of a specified axis
Parameters:
axisIdaxis index
Returns:
specified scaleDraw for axis, or NULL if axis is invalid.
See also:
QwtScaleDraw
QwtScaleDraw * QwtPlot::axisScaleDraw ( int  axisId)
Returns:
the scale draw of a specified axis
Parameters:
axisIdaxis index
Returns:
specified scaleDraw for axis, or NULL if axis is invalid.
See also:
QwtScaleDraw
QwtScaleEngine * QwtPlot::axisScaleEngine ( int  axisId)
Parameters:
axisIdaxis index
Returns:
Scale engine for a specific axis
const QwtScaleEngine * QwtPlot::axisScaleEngine ( int  axisId) const
Parameters:
axisIdaxis index
Returns:
Scale engine for a specific axis
double QwtPlot::axisStepSize ( int  axisId) const

Return the step size parameter, that has been set in setAxisScale. This doesn't need to be the step size of the current scale.

Parameters:
axisIdaxis index
Returns:
step size parameter value
See also:
setAxisScale()
QwtText QwtPlot::axisTitle ( int  axisId) const
Returns:
the title of a specified axis
Parameters:
axisIdaxis index
bool QwtPlot::axisValid ( int  axisId)
staticprotected
Returns:
true if the specified axis exists, otherwise false
Parameters:
axisIdaxis index
const QwtScaleWidget * QwtPlot::axisWidget ( int  axisId) const
Returns:
specified axis, or NULL if axisId is invalid.
Parameters:
axisIdaxis index
QwtScaleWidget * QwtPlot::axisWidget ( int  axisId)
Returns:
specified axis, or NULL if axisId is invalid.
Parameters:
axisIdaxis index
QwtPlotCanvas * QwtPlot::canvas ( )
Returns:
the plot's canvas
const QwtPlotCanvas * QwtPlot::canvas ( ) const
Returns:
the plot's canvas
const QColor & QwtPlot::canvasBackground ( ) const

Nothing else than: canvas()->palette().color( QPalette::Normal, QColorGroup::Background);

Returns:
the background color of the plotting area.
int QwtPlot::canvasLineWidth ( ) const

Nothing else than: canvas()->lineWidth(), left for compatibility only.

Returns:
the border width of the plotting area
QwtScaleMap QwtPlot::canvasMap ( int  axisId) const
virtual
Parameters:
axisIdAxis
Returns:
Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.
See also:
QwtScaleMap, transform(), invTransform()
void QwtPlot::clear ( )
virtualslot

Remove all curves and markers

Deprecated:
Use QwtPlotDeict::detachItems instead
void QwtPlot::drawCanvas ( QPainter *  painter)
virtual

Redraw the canvas.

Parameters:
painterPainter used for drawing
Warning:
drawCanvas calls drawItems what is also used for printing. Applications that like to add individual plot items better overload drawItems()
See also:
drawItems()
void QwtPlot::drawItems ( QPainter *  painter,
const QRect &  rect,
const QwtScaleMap  map[axisCnt],
const QwtPlotPrintFilter pfilter 
) const
protectedvirtual

Redraw the canvas items.

Parameters:
painterPainter used for drawing
rectBounding rectangle where to paint
mapQwtPlot::axisCnt maps, mapping between plot and paint device coordinates
pfilterPlot print filter
void QwtPlot::enableAxis ( int  axisId,
bool  tf = true 
)

Enable or disable a specified axis.

When an axis is disabled, this only means that it is not visible on the screen. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal.

Only xBottom and yLeft are enabled by default.

Parameters:
axisIdaxis index
tftrue (enabled) or false (disabled)
QString QwtPlot::grabProperties ( ) const

This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin.

Warning:
The plot editor has never been implemented.
void QwtPlot::insertLegend ( QwtLegend legend,
QwtPlot::LegendPosition  pos = QwtPlot::RightLegend,
double  ratio = -1.0 
)

Insert a legend.

If the position legend is QwtPlot::LeftLegend or QwtPlot::RightLegend the legend will be organized in one column from top to down. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right.

If pos != QwtPlot::ExternalLegend the plot widget will become parent of the legend. It will be deleted when the plot is deleted, or another legend is set with insertLegend().

Parameters:
legendLegend
posThe legend's position. For top/left position the number of colums will be limited to 1, otherwise it will be set to unlimited.
ratioRatio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5.
See also:
legend(), QwtPlotLayout::legendPosition(), QwtPlotLayout::setLegendPosition()
double QwtPlot::invTransform ( int  axisId,
int  pos 
) const

Transform the x or y coordinate of a position in the drawing region into a value.

Parameters:
axisIdaxis index
posposition
Warning:
The position can be an x or a y coordinate, depending on the specified axis.
QwtLegend * QwtPlot::legend ( )
Returns:
the plot's legend
See also:
insertLegend()
const QwtLegend * QwtPlot::legend ( ) const
Returns:
the plot's legend
See also:
insertLegend()
void QwtPlot::legendChecked ( QwtPlotItem plotItem,
bool  on 
)
signal

A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::CheckableItem mode

Parameters:
plotItemCorresponding plot item of the selected legend item
onTrue when the legen item is checked
Note:
clicks are disabled as default
See also:
QwtLegend::setItemMode(), QwtLegend::itemMode()
void QwtPlot::legendClicked ( QwtPlotItem plotItem)
signal

A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::ClickableItem mode.

Parameters:
plotItemCorresponding plot item of the selected legend item
Note:
clicks are disabled as default
See also:
QwtLegend::setItemMode(), QwtLegend::itemMode()
void QwtPlot::legendItemChecked ( bool  on)
protectedvirtualslot

Called internally when the legend has been checked Emits a legendClicked() signal.

void QwtPlot::legendItemClicked ( )
protectedvirtualslot

Called internally when the legend has been clicked on. Emits a legendClicked() signal.

int QwtPlot::margin ( ) const
QwtPlotLayout * QwtPlot::plotLayout ( )
Returns:
the plot's title
const QwtPlotLayout * QwtPlot::plotLayout ( ) const
Returns:
the plot's titel label.
void QwtPlot::print ( QPaintDevice &  paintDev,
const QwtPlotPrintFilter pfilter = QwtPlotPrintFilter() 
) const

Print the plot to a QPaintDevice (QPrinter) This function prints the contents of a QwtPlot instance to QPaintDevice object. The size is derived from its device metrics.

Parameters:
paintDevdevice to paint on, often a printer
pfilterprint filter
See also:
QwtPlotPrintFilter
void QwtPlot::print ( QPainter *  painter,
const QRect &  plotRect,
const QwtPlotPrintFilter pfilter = QwtPlotPrintFilter() 
) const
virtual

Paint the plot into a given rectangle. Paint the contents of a QwtPlot instance into a given rectangle.

Parameters:
painterPainter
plotRectBounding rectangle
pfilterPrint filter
See also:
QwtPlotPrintFilter
void QwtPlot::printCanvas ( QPainter *  painter,
const QRect &  boundingRect,
const QRect &  canvasRect,
const QwtScaleMap  map[axisCnt],
const QwtPlotPrintFilter pfilter 
) const
protectedvirtual

Print the canvas into a given rectangle.

Parameters:
painterPainter
mapMaps mapping between plot and paint device coordinates
boundingRectBounding rectangle
canvasRectCanvas rectangle
pfilterPrint filter
See also:
QwtPlotPrintFilter
void QwtPlot::printLegend ( QPainter *  painter,
const QRect &  rect 
) const
protectedvirtual

Print the legend into a given rectangle.

Parameters:
painterPainter
rectBounding rectangle
void QwtPlot::printLegendItem ( QPainter *  painter,
const QWidget *  w,
const QRect &  rect 
) const
protectedvirtual

Print the legend item into a given rectangle.

Parameters:
painterPainter
wWidget representing a legend item
rectBounding rectangle
void QwtPlot::printScale ( QPainter *  painter,
int  axisId,
int  startDist,
int  endDist,
int  baseDist,
const QRect &  rect 
) const
protectedvirtual

Paint a scale into a given rectangle. Paint the scale into a given rectangle.

Parameters:
painterPainter
axisIdAxis
startDistStart border distance
endDistEnd border distance
baseDistBase distance
rectBounding rectangle
void QwtPlot::printTitle ( QPainter *  painter,
const QRect &  rect 
) const
protectedvirtual

Print the title into a given rectangle.

Parameters:
painterPainter
rectBounding rectangle
void QwtPlot::replot ( )
virtualslot

Redraw the plot.

If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible.

See also:
setAutoReplot()
Warning:
Calls canvas()->repaint, take care of infinite recursions
void QwtPlot::resizeEvent ( QResizeEvent *  e)
protectedvirtual

Resize and update internal layout

Parameters:
eResize event
void QwtPlot::setAutoReplot ( bool  tf = true)

Set or reset the autoReplot option.

If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call replot() explicitly if necessary.

The autoReplot option is set to false by default, which means that the user has to call replot() in order to make changes visible.

Parameters:
tftrue or false. Defaults to true.
See also:
replot()
void QwtPlot::setAxisAutoScale ( int  axisId)

Enable autoscaling for a specified axis.

This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling is enabled by default.

Parameters:
axisIdaxis index
See also:
setAxisScale(), setAxisScaleDiv()
void QwtPlot::setAxisFont ( int  axisId,
const QFont &  f 
)

Change the font of an axis.

Parameters:
axisIdaxis index
ffont
Warning:
This function changes the font of the tick labels, not of the axis title.
void QwtPlot::setAxisLabelAlignment ( int  axisId,
Qt::Alignment  alignment 
)

Change the alignment of the tick labels

Parameters:
axisIdaxis index
alignmentOr'd Qt::AlignmentFlags <see qnamespace.h>
See also:
QwtScaleDraw::setLabelAlignment()
void QwtPlot::setAxisLabelRotation ( int  axisId,
double  rotation 
)

Rotate all tick labels

Parameters:
axisIdaxis index
rotationAngle in degrees. When changing the label rotation, the label alignment might be adjusted too.
See also:
QwtScaleDraw::setLabelRotation(), setAxisLabelAlignment()
void QwtPlot::setAxisMaxMajor ( int  axisId,
int  maxMajor 
)

Set the maximum number of major scale intervals for a specified axis

Parameters:
axisIdaxis index
maxMajormaximum number of major steps
See also:
axisMaxMajor()
void QwtPlot::setAxisMaxMinor ( int  axisId,
int  maxMinor 
)

Set the maximum number of minor scale intervals for a specified axis

Parameters:
axisIdaxis index
maxMinormaximum number of minor steps
See also:
axisMaxMinor()
void QwtPlot::setAxisScale ( int  axisId,
double  min,
double  max,
double  stepSize = 0 
)

Disable autoscaling and specify a fixed scale for a selected axis.

Parameters:
axisIdaxis index
min
maxminimum and maximum of the scale
stepSizeMajor step size. If step == 0, the step size is calculated automatically using the maxMajor setting.
See also:
setAxisMaxMajor(), setAxisAutoScale()
void QwtPlot::setAxisScaleDiv ( int  axisId,
const QwtScaleDiv scaleDiv 
)

Disable autoscaling and specify a fixed scale for a selected axis.

Parameters:
axisIdaxis index
scaleDivScale division
See also:
setAxisScale(), setAxisAutoScale()
void QwtPlot::setAxisScaleDraw ( int  axisId,
QwtScaleDraw scaleDraw 
)

Set a scale draw.

Parameters:
axisIdaxis index
scaleDrawobject responsible for drawing scales.

By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object ).

See also:
QwtScaleDraw, QwtScaleWidget
Warning:
The attributes of scaleDraw will be overwritten by those of the previous QwtScaleDraw.
void QwtPlot::setAxisScaleEngine ( int  axisId,
QwtScaleEngine scaleEngine 
)

Change the scale engine for an axis

Parameters:
axisIdaxis index
scaleEngineScale engine
See also:
axisScaleEngine()
void QwtPlot::setAxisTitle ( int  axisId,
const QString &  title 
)

Change the title of a specified axis.

Parameters:
axisIdaxis index
titleaxis title
void QwtPlot::setAxisTitle ( int  axisId,
const QwtText title 
)

Change the title of a specified axis.

Parameters:
axisIdaxis index
titleaxis title
void QwtPlot::setCanvasBackground ( const QColor &  c)

Change the background of the plotting area.

Sets c to QColorGroup::Background of all colorgroups of the palette of the canvas. Using canvas()->setPalette() is a more powerful way to set these colors.

Parameters:
cnew background color
void QwtPlot::setCanvasLineWidth ( int  w)

Change the border width of the plotting area Nothing else than canvas()->setLineWidth(w), left for compatibility only.

Parameters:
wnew border width
void QwtPlot::setMargin ( int  margin)

Change the margin of the plot. The margin is the space around all components.

Parameters:
marginnew margin
See also:
QwtPlotLayout::setMargin(), margin(), plotLayout()
void QwtPlot::setTitle ( const QString &  title)

Change the plot's title

Parameters:
titleNew title
void QwtPlot::setTitle ( const QwtText title)

Change the plot's title

Parameters:
titleNew title
QSize QwtPlot::sizeHint ( ) const
virtual

Return sizeHint

See also:
minimumSizeHint()
QwtText QwtPlot::title ( ) const
Returns:
the plot's title
QwtTextLabel * QwtPlot::titleLabel ( )
Returns:
the plot's titel label.
const QwtTextLabel * QwtPlot::titleLabel ( ) const
Returns:
the plot's titel label.
int QwtPlot::transform ( int  axisId,
double  value 
) const

Transform a value into a coordinate in the plotting region.

Parameters:
axisIdaxis index
valuevalue
Returns:
X or y coordinate in the plotting region corresponding to the value.
void QwtPlot::updateLayout ( )
virtual

Adjust plot content to its current size.

See also:
resizeEvent()
void QwtPlot::updateTabOrder ( )
protectedvirtual

Update the focus tab order

The order is changed so that the canvas will be in front of the first legend item, or behind the last legend item - depending on the position of the legend.

qwt5-5.2.3/doc/html/class_qwt_compass-members.html0000644000175000017500000011042612052741137021541 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCompass Member List

This is the complete list of members for QwtCompass, including all inherited members.

boundingRect() const QwtDial
Clockwise enum value (defined in QwtDial)QwtDial
contentsRect() const QwtDial
CounterClockwise enum value (defined in QwtDial)QwtDial
Direction enum nameQwtDial
direction() const QwtDial
drawContents(QPainter *) const QwtDialprotectedvirtual
drawFocusIndicator(QPainter *) const QwtDialprotectedvirtual
drawFrame(QPainter *p)QwtDialprotectedvirtual
drawNeedle(QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const QwtDialprotectedvirtual
drawRose(QPainter *, const QPoint &center, int radius, double north, QPalette::ColorGroup) const QwtCompassprotectedvirtual
drawScale(QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const QwtDialprotectedvirtual
drawScaleContents(QPainter *, const QPoint &center, int radius) const QwtCompassprotectedvirtual
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
frameShadow() const QwtDial
getScrollMode(const QPoint &, int &scrollMode, int &direction)QwtDialprotectedvirtual
getValue(const QPoint &)QwtDialprotectedvirtual
hasVisibleBackground() const QwtDial
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *)QwtCompassprotectedvirtual
labelMap() const QwtCompass
labelMap()QwtCompass
lineWidth() const QwtDial
mass() const QwtAbstractSlidervirtual
maxScaleArc() const QwtDial
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtDialvirtual
minScaleArc() const QwtDial
minValue() const QwtDoubleRange
mode() const QwtDial
Mode enum nameQwtDial
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
needle() const QwtDial
needle()QwtDial
orientation() const QwtAbstractSlider
origin() const QwtDial
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *)QwtDialprotectedvirtual
periodic() const QwtDoubleRange
Plain enum value (defined in QwtDial)QwtDial
prevValue() const QwtDoubleRangeprotected
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtCompass(QWidget *parent=NULL)QwtCompassexplicit
QwtDial(QWidget *parent=NULL)QwtDialexplicit
QwtDoubleRange()QwtDoubleRange
Raised enum value (defined in QwtDial)QwtDial
rangeChange()QwtDialprotectedvirtual
resizeEvent(QResizeEvent *)QwtDialprotectedvirtual
rose() const QwtCompass
rose()QwtCompass
RotateNeedle enum value (defined in QwtDial)QwtDial
RotateScale enum value (defined in QwtDial)QwtDial
ScaleBackbone enum value (defined in QwtDial)QwtDial
scaleContentsRect() const QwtDialvirtual
scaleDraw()QwtDial
scaleDraw() const QwtDial
scaleLabel(double value) const QwtCompassprotectedvirtual
ScaleLabel enum value (defined in QwtDial)QwtDial
ScaleOptions enum nameQwtDial
ScaleTicks enum value (defined in QwtDial)QwtDial
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrollMode enum nameQwtAbstractSlider
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setDirection(Direction)QwtDial
setFrameShadow(Shadow)QwtDial
setLabelMap(const QMap< double, QString > &map)QwtCompass
setLineWidth(int)QwtDial
setMass(double val)QwtAbstractSlidervirtual
setMode(Mode)QwtDial
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setNeedle(QwtDialNeedle *)QwtDialvirtual
setOrientation(Qt::Orientation o)QwtAbstractSlidervirtual
setOrigin(double)QwtDialvirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setRose(QwtCompassRose *rose)QwtCompass
setScale(int maxMajIntv, int maxMinIntv, double step=0.0)QwtDialvirtual
setScaleArc(double min, double max)QwtDial
setScaleDraw(QwtDialScaleDraw *)QwtDialvirtual
setScaleOptions(int)QwtDial
setScaleTicks(int minLen, int medLen, int majLen, int penWidth=1)QwtDial
setStep(double)QwtDoubleRange
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
setWrapping(bool)QwtDialvirtual
Shadow enum nameQwtDial
showBackground(bool)QwtDial
sizeHint() const QwtDialvirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
Sunken enum value (defined in QwtDial)QwtDial
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
updateMask()QwtDialprotectedvirtual
updateScale()QwtDialprotected
value() const QwtDoubleRange
valueChange()QwtDialprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
wrapping() const QwtDial
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtCompass()QwtCompassvirtual
~QwtDial()QwtDialvirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/class_qwt_legend_item_manager.html0000644000175000017500000001777412052741164022426 0ustar gudjongudjon Qwt User's Guide: QwtLegendItemManager Class Reference
QwtLegendItemManager Class Reference

#include <qwt_legend_itemmanager.h>

Inheritance diagram for QwtLegendItemManager:

List of all members.

Public Member Functions

 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()
virtual QWidget * legendItem () const =0
virtual void updateLegend (QwtLegend *legend) const =0

Detailed Description

Abstract API to bind plot items to the legend.


Member Function Documentation

virtual QWidget* QwtLegendItemManager::legendItem ( ) const
pure virtual

Allocate the widget that represents the item on the legend

Returns:
Allocated widget
See also:
updateLegend() QwtLegend()

Implemented in QwtPlotItem.

virtual void QwtLegendItemManager::updateLegend ( QwtLegend legend) const
pure virtual

Update the widget that represents the item on the legend

Parameters:
legendLegend
See also:
legendItem()

Implemented in QwtPlotCurve, and QwtPlotItem.

qwt5-5.2.3/doc/html/class_qwt_analog_clock.html0000644000175000017500000015355012052741164021065 0ustar gudjongudjon Qwt User's Guide: QwtAnalogClock Class Reference

#include <qwt_analog_clock.h>

Inheritance diagram for QwtAnalogClock:

List of all members.

Public Types

enum  Hand {
  SecondHand,
  MinuteHand,
  HourHand,
  NHands
}
- Public Types inherited from QwtDial
enum  Direction {
  Clockwise,
  CounterClockwise
}
enum  Mode {
  RotateNeedle,
  RotateScale
}
enum  ScaleOptions {
  ScaleBackbone = 1,
  ScaleTicks = 2,
  ScaleLabel = 4
}
enum  Shadow {
  Plain = QFrame::Plain,
  Raised = QFrame::Raised,
  Sunken = QFrame::Sunken
}
- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Public Slots

void setCurrentTime ()
void setTime (const QTime &=QTime::currentTime())

Public Member Functions

 QwtAnalogClock (QWidget *parent=NULL)
virtual ~QwtAnalogClock ()
const QwtDialNeedlehand (Hand) const
QwtDialNeedlehand (Hand)
virtual void setHand (Hand, QwtDialNeedle *)
- Public Member Functions inherited from QwtDial
 QwtDial (QWidget *parent=NULL)
virtual ~QwtDial ()
QRect boundingRect () const
QRect contentsRect () const
Direction direction () const
Shadow frameShadow () const
bool hasVisibleBackground () const
int lineWidth () const
double maxScaleArc () const
virtual QSize minimumSizeHint () const
double minScaleArc () const
Mode mode () const
const QwtDialNeedleneedle () const
QwtDialNeedleneedle ()
double origin () const
virtual QRect scaleContentsRect () const
QwtDialScaleDrawscaleDraw ()
const QwtDialScaleDrawscaleDraw () const
void setDirection (Direction)
void setFrameShadow (Shadow)
void setLineWidth (int)
void setMode (Mode)
virtual void setOrigin (double)
virtual void setScale (int maxMajIntv, int maxMinIntv, double step=0.0)
void setScaleArc (double min, double max)
virtual void setScaleDraw (QwtDialScaleDraw *)
void setScaleOptions (int)
void setScaleTicks (int minLen, int medLen, int majLen, int penWidth=1)
virtual void setWrapping (bool)
void showBackground (bool)
virtual QSize sizeHint () const
bool wrapping () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
virtual void setOrientation (Qt::Orientation o)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const

Protected Member Functions

virtual void drawHand (QPainter *, Hand, const QPoint &, int radius, double direction, QPalette::ColorGroup) const
virtual void drawNeedle (QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const
virtual QwtText scaleLabel (double) const
- Protected Member Functions inherited from QwtDial
virtual void drawContents (QPainter *) const
virtual void drawFocusIndicator (QPainter *) const
virtual void drawFrame (QPainter *p)
virtual void drawScale (QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const
virtual void drawScaleContents (QPainter *painter, const QPoint &center, int radius) const
virtual void getScrollMode (const QPoint &, int &scrollMode, int &direction)
virtual double getValue (const QPoint &)
virtual void keyPressEvent (QKeyEvent *)
virtual void paintEvent (QPaintEvent *)
virtual void rangeChange ()
virtual void resizeEvent (QResizeEvent *)
virtual void updateMask ()
void updateScale ()
virtual void valueChange ()
- Protected Member Functions inherited from QwtAbstractSlider
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()

Detailed Description

An analog clock.

analogclock.png
Example
#include <qwt_analog_clock.h>

  QwtAnalogClock *clock = new QwtAnalogClock(...);
  clock->scaleDraw()->setPenWidth(3);
  clock->setLineWidth(6);
  clock->setFrameShadow(QwtDial::Sunken);
  clock->setTime();

  // update the clock every second
  QTimer *timer = new QTimer(clock);
  timer->connect(timer, SIGNAL(timeout()), clock, SLOT(setCurrentTime()));
  timer->start(1000);

Qwt is missing a set of good looking hands. Contributions are very welcome.

Note:
The examples/dials example shows how to use QwtAnalogClock.

Member Enumeration Documentation

Hand type

See also:
setHand(), hand()

Constructor & Destructor Documentation

QwtAnalogClock::QwtAnalogClock ( QWidget *  parent = NULL)
explicit

Constructor

Parameters:
parentParent widget

Member Function Documentation

void QwtAnalogClock::drawHand ( QPainter *  painter,
Hand  hd,
const QPoint &  center,
int  radius,
double  direction,
QPalette::ColorGroup  cg 
) const
protectedvirtual

Draw a clock hand

Parameters:
painterPainter
hdSpecify the type of hand
centerCenter of the clock
radiusMaximum length for the hands
directionDirection of the hand in degrees, counter clockwise
cgColorGroup
void QwtAnalogClock::drawNeedle ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  direction,
QPalette::ColorGroup  cg 
) const
protectedvirtual

Draw the needle.

A clock has no single needle but three hands instead. drawNeedle translates value() into directions for the hands and calls drawHand().

Parameters:
painterPainter
centerCenter of the clock
radiusMaximum length for the hands
directionDummy, not used.
cgColorGroup
See also:
drawHand()

Reimplemented from QwtDial.

const QwtDialNeedle * QwtAnalogClock::hand ( Hand  hd) const
Returns:
Clock hand
Parameters:
hdSpecifies the type of hand
See also:
setHand()
QwtDialNeedle * QwtAnalogClock::hand ( Hand  hd)
Returns:
Clock hand
Parameters:
hdSpecifies the type of hand
See also:
setHand()
QwtText QwtAnalogClock::scaleLabel ( double  value) const
protectedvirtual

Find the scale label for a given value

Parameters:
valueValue
Returns:
Label

Reimplemented from QwtDial.

void QwtAnalogClock::setCurrentTime ( )
slot

Set the current time.

This is the same as QwtAnalogClock::setTime(), but Qt < 3.0 can't handle default parameters for slots.

void QwtAnalogClock::setHand ( Hand  hand,
QwtDialNeedle needle 
)
virtual

Set a clockhand

Parameters:
handSpecifies the type of hand
needleHand
See also:
hand()
void QwtAnalogClock::setTime ( const QTime &  time = QTime::currentTime())
slot

Set a time

Parameters:
timeTime to display
qwt5-5.2.3/doc/html/class_qwt_text_engine__inherit__graph.md50000644000175000017500000000004012052741143023662 0ustar gudjongudjondd0ee9a753d6a110e724e599edecc89aqwt5-5.2.3/doc/html/class_qwt_scale_engine__inherit__graph.md50000644000175000017500000000004012052741142023764 0ustar gudjongudjonf77887921375e6487af4ccee263e08a0qwt5-5.2.3/doc/html/inherit_graph_34.md50000644000175000017500000000004012052741151017220 0ustar gudjongudjon4ffdbe12de9551126514c815f945b41dqwt5-5.2.3/doc/html/tab_h.png0000644000175000017500000000030012052741134015243 0ustar gudjongudjon‰PNG  IHDR$ÇÇ[‡IDATxíÝË ‚@EŃ 7ęÂX’Ńř AADůjGü€ Z€eŘŁ ë8ą›—WxľŢěUK.µ%„0mɤ&+4iŃ$džČt“׿ÍzWf5AZá'wĽřĆ"2¶Wśđňg%öŞdć)ćţ™ÉR15F®děž ÉĐ‘ßO«×Áô»C"ŕ@Żg=IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_legend_item_manager__inherit__graph.md50000644000175000017500000000004012052741140025314 0ustar gudjongudjon51fb0e6b0666c0d8c7151ed0fda3f37dqwt5-5.2.3/doc/html/inherit_graph_11.png0000644000175000017500000000664512052741162017335 0ustar gudjongudjon‰PNG  IHDR8%ŔŔÍbKGD˙˙˙ ˝§“ ZIDATxśíÝ{P×đł!K˘ŔĘKŠšâ´ę R[mq,ă[Ę[®xAůŁŁ­âŕ´2Ž…Ú‘bA‚Ź©Xë ¤s)–Š ¶ÄRÁ( ái^${˙Ř;1%! !$+ý}†?6›=Źě—“łK– F¨ŠfíúŔD€Ň`˘@i0Q 4şćť;wöôôX«7“اź~lí^Ľvüřń[·nY»–Fµ`Ä™rśÜ´óĹ4Żú+//ŹŽŽŽŠŠ˛xÇ&ąşşşĄK—–——[»#ŻaěééiíŽXS€gČqrÓ™/]{;JýL[¶l±vtHMMĄfÇ&e_,ڏ1'7ťůÂgT( &*”J‰ ĄÁD€ŇLś¨„Ba\\ś›››­­­ŹŹOjjjooŻţ"---L&“\Ŕ´TTTÖý•;;;s8śgĎžS\°–ľľWĄĄ?_ĽXoĹ>h3cĐšYčßŰVĚB,úöŰ˙^şôŔ*­ëaÝ Ţ¸(%ůĺË kT*jÝtŰęJű˝Ă0󽾉bĘDŐÜÜĽxńb{{űęęj±XĚĺr?~ĽtéR{\ŤÁ`ÇápLč‰ÁĘy<“Éܵk—ą*7;©Tqőjăöí_/Xp$=˝<-íbw÷ µ;őć Z3 6›-•J'˛ďc34$«¬ü5&¦ 0đHffEBB±Tްv§^›¸ Ś÷FD©P(oŢěß_ěďźµ˙…śśË<ŢSkwę5*ä¨ů®ŰŰŰëçç·sçαż‹ÓěwYYŮ5:˝÷Ţ{IIIškT*UHHHZZÚŞU«rss ‚ččč@}ţůçAD"Íkkkµ'*‚ ÖŻ_ź••E.żxń‚N§ …ÂÁÁÁ={öĚ1cćĚ™P(ÍÍÍŢŢŢNNN®®®%%%]]]z*ŻŻŻwvv&—ů|ţ’%KL¦——WQQ‘fAµ®®®ŃýňË/íěě.]ş4˘÷XTTTTT”暡!YyůýŘŘOĎô™3S=<ŇÜÝSČź®®ŽB¨¬¬L˙6fZťEssłú©ţţţřřxrgfggk>«R©âăă׬Y#‘H‚ĐźKssłţ—ŁťÂŕ Tť‚‡Gšf ‰ÜđN7kŤ8ťAĹâ'''ŹĚĚLÍżCP*JíĺňáäďŢ}ŢŰűŔ¬Y©^^éęŰ îŢń{SrěęęŇl:22244T.—ë,H®×^I&uňäÉ·ŢzËĹĹĺÂ… ŮŮŮ...EEEdUćÍ— 1źQő÷÷WWW'''k®Ä0,%%ĺęŐ«áááwďŢ%÷©˝˝}MM B¨¦¦& @˝+ťťťuÖ]YYI.WTT,_ľ|öěŮÉÉÉŻ^˝÷îÝ»wď^~~>B¨łł“Çă …ÂÄÄÄôôtggçŃ*‰D_|ńĹ»ďľK>ĚÎÎ^ż~˝X,>|řpFF†fAÍt6*‰>|řűďżłŮě0~ď‘G|IIßNM-­©ůmxXI„R©2ľË0{Đ#˛PKJJęééinn®®®.**ştéąž ˝{÷¶µµ]ąr…üĂ…Á\Ś|id »wźź??Kť‚R©˘` Č‚AěÝ»·żżż©©éÎť;×®]+..¦x”AÔÖ>NJúnţüěíŰĎݸÁ—ˇU*BˇPSܨ–ăŃŁG—ËĹq\gÁS§NŤ¶˛ŁŁŁłłł­­-99966V.—···'''gff’U™k¨ľ¦9ks\đÇ`¦P(F¬olld±X|>źĹb)Š„„„¬¬,{{űááá}űö튜Q™=hÍ,4÷6ťNomm%+˙é§źČgq'÷9aD.q8QkÖÄ$&^đóËtw˙Űq·öuΨ,„T*ĄŃhBˇ¬śËĺ.X°€šQ’Ł);»20đ»{ŠŹŹľŃDť3**ä¨văĆŤéÓ§ őťG«ŤFŁIĄR‚ 沑oˇúé<ŁŇq %ý\\\0 ű믿|}}5×wtt¸ąąÍź?ßŃѱˇˇˇ¶¶¶´´´´´´±±±¦¦ćĚ™3š3 ť×çrąüqccăµk×D"‘BˇpttÔl!dkkKĐh:ÎG«!T__až{Üéi”\0ŘmR)ťÇsáńęȇrů°žŤSç81™~ú7Đ ŐD"‘JĄš={6ůpůň塖–™L& óňň>űě3d\.ú˝z…óůÎ|~ůP˙q·ŻďżŤ©sślm ˙ţX&çĎź#„|||ȇľľľííícŞÁbQâń\xĽ{äE2™ľŃqĘ`…fÁdľ­Šäjkk‹ŤŤ-))ń÷÷×_p´Úpg0!Ť¦ąLn6ţˇŞmĚ•˝˝}hhčéÓ§És@„P^^ަM›Nź>ýÁ „Ö­[WYYůüůówŢygĺʕ˖-kmm5Xytttnn®ťťÝ‡~hgg‡ă¸ŤŤÍË—/BCCCÝÝ݉ĴËTş»»wěŘQ__ÄçóŻ_ż®s3WWWŤŽµ8®ôôP*˝ž=㸍ţ·Č“'ŁY¬ żPjÓ¦Żőo0ˇA«ąşş"„ÚŰŰÉC‡ŞŞ*ą\ÎfłqçrąŹ= Ůľ};›Í6&ýLĄ‡Ç \îŢŮ9`kK׸źă6ĆżÓÔ×˙|ô¨m,„››BčĎ?˙$gš'Ož¸»»ŹéµX,J CŢŢýtúŰ­­]¶¶6 …Š F˝´ďСő>>ş?k0Łşşş'^č߆"9Ęd2‡sčСuëÖ,hÚoĹř‡Ş¶1OTˇüüü+V±oß>ooďţţţyóć9::–”” „ÂĂĂăââVŻ^ŤaŘĘ•+÷ďßżvíZÇ1 S*• …ľ‹©"##wěŘ‘źźöěY„Áŕp8©©©'NśP©T»víňőőÝłgŹvAc*˙˙)$ťŢÓÓ“››«T*űúúÔŐ Ć7j<ÂŰ»żĽüČoż=˙ţű‡/Ţďčă8]ˇĐń^ąvíżśťíĆÓś1”JĂ×N\Đj cóćÍééégÎś‹Ĺź|ňInn.BFŁ1Ś   řřř„„„Ű·oŹ?•ŹO_yy!™BII˝HÔ;Z L&n|妑Hł™e‚Ř´iSJJJaaa___NNζmŰ(Ą§ç@yůÚŰĹW®<¸pˇ®­íĺhÇ!!s.ô2ľfÓH$Ź©3 ôäăxBB¢E‹RRRŚ)¨sĄ1}0ű[¨)—§űűűßżż§§'44ÔÁÁˇ¸¸811‘Ľ˘!´zőj™L‚  GÍš5ËĎĎĎÉÉ©§§G&“Ť¸źÜqS§NݰaL& #Ű:{öěđđ0›Íö÷÷ź1cƱcÇtvIłňŃşíââ’““şdÉ’Í›7Ď™3‡ĂᨠN™2E]‘Ťš`Ţ<·ôôużürä‡Ňââ–Mź> !D§Oř‘»iĆ´1­|őŐWt:}îÜąˇˇˇńńń}ô‘ćłÇŽăóůäH6W.ę._NŚŤ]ćŕ0Q8dÁ ¦M›F·‡‡gddP*=çŃzHĄŇ–––… ŽłC“yăzíoɆoßnެ|pó&_©TŃhŘđ°ŠÇűÔgT†•••™đŤ onĐŁĄ ‘ČoŢTVţz÷n‹JĄBS*UBá śQÁ3Áh9«jk_ľü ŞŠ'‘Čmlh …˛Ş*ŐgTŁéĚ×lGL&öőX1ô€€éőëŹ*+U*•ööÖĽA†A“/č)Sl7n\´q㢾ľWUUĽŠŠ†)Sl-đŐ8Mľ ƉN§……±ĂÂŘÇŹGÝşŐÄĺ6D}^^NÖî—Ł1¨{šüŹÂb1·lYĽeËbkwäÍÁaęÖ­Á[·Rč;Î L|ÆŔ ­Ý`6pSZ”J‰ ĄÁD€Ň`˘@i:®ú+((°|?&7ˇP8â_Tpűömăżg f FÜAŽ“›î|5ďP+X,–5ú6ůĺĺĺĽm°%˙/¦Z 0âL9NnÚůţíÎŐŔgT( &*”J‰ Ąýăf­őiS»IEND®B`‚qwt5-5.2.3/doc/html/qwt__thermo_8h_source.html0000644000175000017500000005341612052741135020676 0ustar gudjongudjon Qwt User's Guide: qwt_thermo.h Source File
Qwt User's Guide  5.2.3
qwt_thermo.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_THERMO_H
11 #define QWT_THERMO_H
12 
13 #include <qwidget.h>
14 #include <qcolor.h>
15 #include <qfont.h>
16 #include <qrect.h>
17 #include "qwt_global.h"
18 #include "qwt_abstract_scale.h"
19 
20 class QwtScaleDraw;
21 
69 class QWT_EXPORT QwtThermo: public QWidget, public QwtAbstractScale
70 {
71  Q_OBJECT
72 
73  Q_ENUMS( ScalePos )
74 
75  Q_PROPERTY( QBrush alarmBrush READ alarmBrush WRITE setAlarmBrush )
76  Q_PROPERTY( QColor alarmColor READ alarmColor WRITE setAlarmColor )
77  Q_PROPERTY( bool alarmEnabled READ alarmEnabled WRITE setAlarmEnabled )
78  Q_PROPERTY( double alarmLevel READ alarmLevel WRITE setAlarmLevel )
79  Q_PROPERTY( ScalePos scalePosition READ scalePosition
80  WRITE setScalePosition )
81  Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
82  Q_PROPERTY( QBrush fillBrush READ fillBrush WRITE setFillBrush )
83  Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
84  Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
85  Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
86  Q_PROPERTY( int pipeWidth READ pipeWidth WRITE setPipeWidth )
87  Q_PROPERTY( double value READ value WRITE setValue )
88 
89 public:
90  /*
91  Scale position. QwtThermo tries to enforce valid combinations of its
92  orientation and scale position:
93  - Qt::Horizonal combines with NoScale, TopScale and BottomScale
94  - Qt::Vertical combines with NoScale, LeftScale and RightScale
95 
96  \sa setOrientation(), setScalePosition()
97  */
98  enum ScalePos
99  {
100  NoScale,
101  LeftScale,
102  RightScale,
103  TopScale,
104  BottomScale
105  };
106 
107  explicit QwtThermo(QWidget *parent = NULL);
108 #if QT_VERSION < 0x040000
109  explicit QwtThermo(QWidget *parent, const char *name);
110 #endif
111  virtual ~QwtThermo();
112 
113  void setOrientation(Qt::Orientation o, ScalePos s);
114 
115  void setScalePosition(ScalePos s);
116  ScalePos scalePosition() const;
117 
118  void setBorderWidth(int w);
119  int borderWidth() const;
120 
121  void setFillBrush(const QBrush &b);
122  const QBrush &fillBrush() const;
123 
124  void setFillColor(const QColor &c);
125  const QColor &fillColor() const;
126 
127  void setAlarmBrush(const QBrush &b);
128  const QBrush &alarmBrush() const;
129 
130  void setAlarmColor(const QColor &c);
131  const QColor &alarmColor() const;
132 
133  void setAlarmLevel(double v);
134  double alarmLevel() const;
135 
136  void setAlarmEnabled(bool tf);
137  bool alarmEnabled() const;
138 
139  void setPipeWidth(int w);
140  int pipeWidth() const;
141 
142  void setMaxValue(double v);
143  double maxValue() const;
144 
145  void setMinValue(double v);
146  double minValue() const;
147 
148  double value() const;
149 
150  void setRange(double vmin, double vmax, bool lg = false);
151  void setMargin(int m);
152 
153  virtual QSize sizeHint() const;
154  virtual QSize minimumSizeHint() const;
155 
156  void setScaleDraw(QwtScaleDraw *);
157  const QwtScaleDraw *scaleDraw() const;
158 
159 public slots:
160  void setValue(double val);
161 
162 protected:
163  void draw(QPainter *p, const QRect& update_rect);
164  void drawThermo(QPainter *p);
165  void layoutThermo( bool update = true );
166  virtual void scaleChange();
167  virtual void fontChange(const QFont &oldFont);
168 
169  virtual void paintEvent(QPaintEvent *e);
170  virtual void resizeEvent(QResizeEvent *e);
171 
172  QwtScaleDraw *scaleDraw();
173 
174 private:
175  void initThermo();
176  int transform(double v) const;
177 
178  class PrivateData;
179  PrivateData *d_data;
180 };
181 
182 #endif
qwt5-5.2.3/doc/html/inherit_graph_29.map0000644000175000017500000000025012052741163017322 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_30.map0000644000175000017500000000072612052741163017322 0ustar gudjongudjon qwt5-5.2.3/doc/html/ftv2node.png0000644000175000017500000000012612052741134015723 0ustar gudjongudjon‰PNG  IHDRÉŞ|IDATxíݱðřScOŹx@ –¨y}IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_text.html0000644000175000017500000013303012052741143017421 0ustar gudjongudjon Qwt User's Guide: QwtText Class Reference

#include <qwt_text.h>

List of all members.

Public Types

enum  LayoutAttribute { MinimumLayout = 1 }
enum  PaintAttribute {
  PaintUsingTextFont = 1,
  PaintUsingTextColor = 2,
  PaintBackground = 4
}
enum  TextFormat {
  AutoText = 0,
  PlainText,
  RichText,
  MathMLText,
  TeXText,
  OtherFormat = 100
}

Public Member Functions

 QwtText (const QString &=QString::null, TextFormat textFormat=AutoText)
 QwtText (const QwtText &)
 ~QwtText ()
QBrush backgroundBrush () const
QPen backgroundPen () const
QColor color () const
void draw (QPainter *painter, const QRect &rect) const
QFont font () const
int heightForWidth (int width, const QFont &=QFont()) const
bool isEmpty () const
bool isNull () const
int operator!= (const QwtText &) const
QwtTextoperator= (const QwtText &)
int operator== (const QwtText &) const
int renderFlags () const
void setBackgroundBrush (const QBrush &)
void setBackgroundPen (const QPen &)
void setColor (const QColor &)
void setFont (const QFont &)
void setLayoutAttribute (LayoutAttribute, bool on=true)
void setPaintAttribute (PaintAttribute, bool on=true)
void setRenderFlags (int flags)
void setText (const QString &, QwtText::TextFormat textFormat=AutoText)
bool testLayoutAttribute (LayoutAttribute) const
bool testPaintAttribute (PaintAttribute) const
QString text () const
QSize textSize (const QFont &=QFont()) const
QColor usedColor (const QColor &) const
QFont usedFont (const QFont &) const

Static Public Member Functions

static void setTextEngine (QwtText::TextFormat, QwtTextEngine *)
static const QwtTextEnginetextEngine (const QString &text, QwtText::TextFormat=AutoText)
static const QwtTextEnginetextEngine (QwtText::TextFormat)

Detailed Description

A class representing a text.

A QwtText is a text including a set of attributes how to render it.

  • Format
    A text might include control sequences (f.e tags) describing how to render it. Each format (f.e MathML, TeX, Qt Rich Text) has its own set of control sequences, that can be handles by a QwtTextEngine for this format.
  • Background
    A text might have a background, defined by a QPen and QBrush to improve its visibility.
  • Font
    A text might have an individual font.
  • Color
    A text might have an individual color.
  • Render Flags
    Flags from Qt::AlignmentFlag and Qt::TextFlag used like in QPainter::drawText.
See also:
QwtTextEngine, QwtTextLabel

Member Enumeration Documentation

Layout Attributes.

The layout attributes affects some aspects of the layout of the text.

  • MinimumLayout
    Layout the text without its margins. This mode is useful if a text needs to be aligned accurately, like the tick labels of a scale. If QwtTextEngine::textMargins is not implemented for the format of the text, MinimumLayout has no effect.

Paint Attributes.

Font and color and background are optional attributes of a QwtText. The paint attributes hold the information, if they are set.

  • PaintUsingTextFont
    The text has an individual font.
  • PaintUsingTextColor
    The text has an individual color.
  • PaintBackground
    The text has an individual background.

Text format.

The text format defines the QwtTextEngine, that is used to render the text.

  • AutoText
    The text format is determined using QwtTextEngine::mightRender for all available text engines in increasing order > PlainText. If none of the text engines can render the text is rendered like PlainText.
  • PlainText
    Draw the text as it is, using a QwtPlainTextEngine.
  • RichText
    Use the Scribe framework (Qt Rich Text) to render the text.
  • MathMLText
    Use a MathML (http://en.wikipedia.org/wiki/MathML) render engine to display the text. The Qwt MathML extension offers such an engine based on the MathML renderer of the Qt solutions package. Unfortunately it is only available for owners of a commercial Qt license.
  • TeXText
    Use a TeX (http://en.wikipedia.org/wiki/TeX) render engine to display the text.
  • OtherFormat
    The number of text formats can be extended using setTextEngine. Formats >= OtherFormat are not used by Qwt.
See also:
QwtTextEngine, setTextEngine()

Constructor & Destructor Documentation

QwtText::QwtText ( const QString &  text = QString::null,
QwtText::TextFormat  textFormat = AutoText 
)

Constructor

Parameters:
textText content
textFormatText format

Member Function Documentation

QBrush QwtText::backgroundBrush ( ) const
Returns:
Background brush
See also:
setBackgroundBrush(), backgroundPen()
QPen QwtText::backgroundPen ( ) const
Returns:
Background pen
See also:
setBackgroundPen(), backgroundBrush()
void QwtText::draw ( QPainter *  painter,
const QRect &  rect 
) const

Draw a text into a rectangle

Parameters:
painterPainter
rectRectangle
int QwtText::heightForWidth ( int  width,
const QFont &  defaultFont = QFont() 
) const

Find the height for a given width

Parameters:
defaultFontFont, used for the calculation if the text has no font
widthWidth
Returns:
Calculated height
bool QwtText::isEmpty ( ) const
inline
Returns:
text().isEmpty()
bool QwtText::isNull ( ) const
inline
Returns:
text().isNull()
int QwtText::renderFlags ( ) const
Returns:
Render flags
See also:
setRenderFlags()
void QwtText::setBackgroundBrush ( const QBrush &  brush)

Set the background brush

Parameters:
brushBackground brush
See also:
backgroundBrush(), setBackgroundPen()
void QwtText::setBackgroundPen ( const QPen &  pen)

Set the background pen

Parameters:
penBackground pen
See also:
backgroundPen(), setBackgroundBrush()
void QwtText::setColor ( const QColor &  color)

Set the pen color used for painting the text.

Parameters:
colorColor
Note:
Setting the color might have no effect, when the text contains control sequences for setting colors.
void QwtText::setFont ( const QFont &  font)

Set the font.

Parameters:
fontFont
Note:
Setting the font might have no effect, when the text contains control sequences for setting fonts.
void QwtText::setLayoutAttribute ( LayoutAttribute  attribute,
bool  on = true 
)

Change a layout attribute

Parameters:
attributeLayout attribute
onOn/Off
See also:
testLayoutAttribute()
void QwtText::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Change a paint attribute

Parameters:
attributePaint attribute
onOn/Off
Note:
Used by setFont(), setColor(), setBackgroundPen() and setBackgroundBrush()
See also:
testPaintAttribute()
void QwtText::setRenderFlags ( int  renderFlags)

Change the render flags.

The default setting is Qt::AlignCenter

Parameters:
renderFlagsBitwise OR of the flags used like in QPainter::drawText
See also:
renderFlags(), QwtTextEngine::draw()
Note:
Some renderFlags might have no effect, depending on the text format.
void QwtText::setText ( const QString &  text,
QwtText::TextFormat  textFormat = AutoText 
)

Assign a new text content

Parameters:
textText content
textFormatText format
See also:
text()
void QwtText::setTextEngine ( QwtText::TextFormat  format,
QwtTextEngine engine 
)
static

Assign/Replace a text engine for a text format

With setTextEngine it is possible to extend Qwt with other types of text formats.

Owner of a commercial Qt license can build the qwtmathml library, that is based on the MathML renderer, that is included in MML Widget component of the Qt solutions package.

For QwtText::PlainText it is not allowed to assign a engine == NULL.

Parameters:
formatText format
engineText engine
See also:
QwtMathMLTextEngine
Warning:
Using QwtText::AutoText does nothing.
bool QwtText::testLayoutAttribute ( LayoutAttribute  attribute) const

Test a layout attribute

Parameters:
attributeLayout attribute
Returns:
true, if attribute is enabled
See also:
setLayoutAttribute()
bool QwtText::testPaintAttribute ( PaintAttribute  attribute) const

Test a paint attribute

Parameters:
attributePaint attribute
Returns:
true, if attribute is enabled
See also:
setPaintAttribute()
QString QwtText::text ( ) const

Return the text.

See also:
setText()
const QwtTextEngine * QwtText::textEngine ( const QString &  text,
QwtText::TextFormat  format = AutoText 
)
static

Find the text engine for a text format

In case of QwtText::AutoText the first text engine (beside QwtPlainTextEngine) is returned, where QwtTextEngine::mightRender returns true. If there is none QwtPlainTextEngine is returnd.

If no text engine is registered for the format QwtPlainTextEngine is returnd.

Parameters:
textText, needed in case of AutoText
formatText format
const QwtTextEngine * QwtText::textEngine ( QwtText::TextFormat  format)
static

Find the text engine for a text format.

textEngine can be used to find out if a text format is supported. F.e, if one wants to use MathML labels, the MathML renderer from the commercial Qt solutions package might be required, that is not available in Qt Open Source Edition environments.

Parameters:
formatText format
Returns:
The text engine, or NULL if no engine is available.
QSize QwtText::textSize ( const QFont &  defaultFont = QFont()) const

Find the height for a given width

Parameters:
defaultFontFont, used for the calculation if the text has no font
Returns:
Calculated height

Returns the size, that is needed to render text

Parameters:
defaultFontFont of the text
Returns:
Caluclated size
QColor QwtText::usedColor ( const QColor &  defaultColor) const

Return the color of the text, if it has one. Otherwise return defaultColor.

Parameters:
defaultColorDefault color
See also:
setColor(), color(), PaintAttributes
QFont QwtText::usedFont ( const QFont &  defaultFont) const

Return the font of the text, if it has one. Otherwise return defaultFont.

Parameters:
defaultFontDefault font
See also:
setFont(), font(), PaintAttributes
qwt5-5.2.3/doc/html/inherit_graph_36.png0000644000175000017500000000177512052741163017344 0ustar gudjongudjon‰PNG  IHDRP%ZśůbKGD˙˙˙ ˝§“˛IDAThí™MH*]ÇĎ”š g&SjŃDQi‹tчPA` AĄA-\ôµpä®UŠşiŃ.Śv%‘)ˇI…Xi)NřÜ…Ľ2W˝÷UI/żŐĚß9Ďy~3gt1@?‰ŠÝ@±) —:?NAß ‡ĂJĄňőőő_uóí$©ÓépO&ż źžž †ńńń˘7V(ôz˝\.źH&Śô C[*,†Ą$?î. —:eáR'Oáűűűééi@Ŕb±ęëëU*U(úű§ÓÉfłŰX&˛źť^*Wňv8ťťťAX,–`0h2™îîîş»»˙×9 €Ăá¨ŞŞ‚˙ČŁ“|z˝>%ÉX,^\\¤'ńxĽ··W­VK$’íímđz˝ˇ­­-đů|ôý~Fá‘Hdnn®¦¦¦¶¶vee…˘¨ŽŽŠ˘@ĄRI$’ôR!¤×ëKr~{{«¨¨p»Ý)ąÉdjhhŘŮŮ‘Édp||L„T*Ml·µµĄëežťťU(~żßĺruuuíďďÇăńÍÍÍËËËşşş@ q`ˇ„].†a‰óMÇfłá8~ssă8EQ A|}}ÍĎĎŻ­­e#‹ĹLf(Jěžťť‰D"p»Ý$I666žśśd˝pÎ÷0ŹÇĂ0ěńń1%÷z˝ µµ•ËĺZ­Ö‹‹‹©©©ęęj›Ív~~.•Jł)îóů(Šârą‰Ż1±Xüđđ€ …R©”˘(™L–kĂ)ä,LD__źV«M&{{{ŹG«ŐŽŚŚ „†††ĚfóóóssssżŃhôz˝===Ůçóů•••É+‰D®®®BV«Őb±$Iź7Or]Ň`·ŰI’\ZZr:ťŃhTŁŃ0™LŹŔl6s8śŃŃQ8::âp8rąśN'ÁĹbYŇ099933ă÷ű_^^†‡‡———???[ZZŚFăőő5—Ëőx<饲_Ňů€ŰíV(|>źĹb …BµZ-‰4 Ľżż3™ĚÝÝ]xzzBét:‡ĂMMM8Ž'ÎËź„Á Bˇ I’$IĄRůńń±şş:66–řt}}}pp0˝TÁ…Ó‰FŁ6›-ż±…#]řŰ-Ůlv{{űwU+ĺgéR§,\ę”…Kť Żi‹ßGń ˙(ŰívúKúÇńŰŰ[ş#ĺ˙‡K›˛p©óă„â\"Lφ„IIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_text_engine-members.html0000644000175000017500000001115412052741143022400 0ustar gudjongudjon Qwt User's Guide: Member List
QwtTextEngine Member List

This is the complete list of members for QwtTextEngine, including all inherited members.

draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const =0QwtTextEnginepure virtual
heightForWidth(const QFont &font, int flags, const QString &text, int width) const =0QwtTextEnginepure virtual
mightRender(const QString &text) const =0QwtTextEnginepure virtual
QwtTextEngine()QwtTextEngineprotected
textMargins(const QFont &font, const QString &text, int &left, int &right, int &top, int &bottom) const =0QwtTextEnginepure virtual
textSize(const QFont &font, int flags, const QString &text) const =0QwtTextEnginepure virtual
~QwtTextEngine()QwtTextEnginevirtual
qwt5-5.2.3/doc/html/class_qwt_polygon_f_data__inherit__graph.map0000644000175000017500000000026512052741157024444 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_14.map0000644000175000017500000000026312052741162017317 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_magnifier__inherit__graph.map0000644000175000017500000000030312052741155023407 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_38.png0000644000175000017500000000466712052741163017351 0ustar gudjongudjon‰PNG  IHDR%¨!čbKGD˙˙˙ ˝§“ lIDATxśíśkPRëÇß…‚V˛ h^Đ.Ó.+mJ­a*ě“yůYMŰLŃĘ.'­îÚjŢJÇ<ŮLť¬8˘i·˝›&ó:ŤcyާR´é2yMŃL".˛Î‡ŐasPC;ďoü°x}Ö˙}ü?<Ľë] Š˘ÎŇ @ ł Ř0 Ŕ†@L6 bÖ:ŹNť:e‘Tf#©©©>>>–ÎâOŇÓÓ+++-ťĹŹ…B)**"‰šDç.YXXXCCŻŻďwĎmö%,ťČź âăăłpáBK'ňPZZZRR¦Ń]a3íI0cŃöqć83›Ť ˘3÷0 Ŕ†@L6 b°a € €ů #‹###ét:@`2™‰‰‰CCC†Oioo·µµĹŽ}?»FJ[Óř٧*rBärŐďż?/(¨R©ÔS"8%L¦vShŽ©ŚÍáű'cfĂ´µµ­^˝šD"ŐÔÔ Ţşuëőë׾ľľú®EQEŰÚÚlllĐ˙b^23ŃQuMM{BÂÍ%KNFEýý×_ď54,ťÔ7&_»˙gĚl¸¸¸üü|‹5oŢĽU«VÝżßÁÁ!55•ÍfgffşşşIOOôôô âéé)—Ëéďď7 .•J8@ŁŃśśś’’’T*UaaáĘ•+U*ŕСCl6{B©ÖÖÖµk×Ι3‡Á`\»vM3~ţüyŤFĄRą\®\.×;ťyžT*őŁG­ńń7X¬żîÜů·ňň}ů˘`f˝LSíôÚřůóç={öP(&“yýúuÍj06¸˝˝ťÉdŮŰŰÓét>źŹEJ$’đđp2™Ě`0JKKµgěďď×Îj<ͬ¬, …BĄRoܸ‘’’B&“©TŞöSÂ$Ěiáááššʧ= HBBÂÝ»w9Nuu5 ľľžD"ŐÖÖjkk—/_®YOěíí čóxĽ/_ľ´¶¶ÖŐŐŐŐŐĺççGGG“ÉäĚĚĚgĎž @0ˇTrrň¶mŰSRR’’’°Aą\^YYůňĺËŞŞŞ‡¦ĄĄéťÎTCP}úT|ô¨`éŇäÝ»/ß˝űo©TŽ˘@Ą5Ujş™ľÚéµ1>>^"‘…ÂĘĘĘÜÜ\ĂÁ}}}/^Ľ‹Ĺ\.÷đáĂXdttôŔŔ€P(|ôčQII‰öŚöööÚYéŐěěěěëë{÷îŹÇ۵k—BˇřđáŹÇ;~ü¸™˘˙Khhhhh(j‘H„ R©Ôonn&‰---D"Q©Tq¬†P(”JĄJĄňęŐ«šH€H$Âř|>‹ĹŇ;Ýxšc˝ Ü™ś\ţóϧ-:ěč0ŢO]Ý« ' ¤¤Ä@Ŕäk§×˝6* kkk±XŚ VTT`'Žç9ŕăÇŹ(ж¶¶b‘2™ ‡Ă˝zőÍş˛˛2ť4ăiâp¸Ż_żbšÚÇĆÔWŻźz>3!‚Ľ˙ŢĹĹE{Ľłł“N§/Y˛„L&755Ő××óů|>źßÜÜ\[[[PP`Śxww·R©$“ÉÚÓ\\\8Γ'OŤŃillŚ@DűU8N“ł‡‡GooďxÓÉóçöÍÍuŘí ĄŇĐz~ŃxYł±¶ţ‹á€iŞť^»»»Őj5“ÉÄFśťť ¶|ápß.|z{{QuuuĹ.^ĽŘ¤x<ŢĆĆÓÔ>6üçŔś†!‘Hţţţyyy999ŘHvvööíŰóňň‚‚‚[·n-//ďééńôô (++ëěě\·n]GGÇ„â4ÍĘĘj``ŔÎÎ •J±‹ć¦¦¦šš:ťž——§sE1–ţţţ}űö566z{{·´´wîܱ6ćä䄇‡óxĽ˘˘˘‘‘‘3gÎ`-aĽç!$$$..îĘ•+R©455U'@“Ő$ëh•H$ţţţvvvĹĹĹ\.—Á`\¸pŔfłĺrů† 7náp8'''WWW …"‘H ŞT*‹ĺĺĺEĄRĎž=›’’âáá±cÇŽeË–ĹĆĆFEEiKÉĺňź´ŘżżĂéÓ§ýýý׬Yěććpvvöööf±Xl6;88ËĺęťÎT7ćĎ'˙ň‹ßăÇIŐŐÇâăŮNN?đx+ł¬ťv&_»±†ql,(( ‰îîî{÷îŐĽPďůĹ‹Éd˛——צM›Ž9˘ó[í¬&_GŁĐŮĺłé™LÖÜÜlŢął‘ńĽU×׿>tčnnÇçĎO`2ŹĚśM˙xLS튋‹{zz°ăŠŠ OOĎ)źbZë§™—dz±µµ]±bĹ ÎRp8dýz·őëÝ~űmGuu{yů?E˘>77šĄó2Ä4ŐîöíŰŐŐŐ999Ř6iV3• Ń@°Ţ˛eé–-K-ťĹŔŢC[°`‚ 'Nś°tF“6 dˇÓéwîܱtS ü´2b°a € lÄôlúĹbńĄK—ľ*ł±X¬ó‰¬™ŔăÇŹá¶L#:ďÔdeeY:ŁŮDvvöw|mbfÔ×pţ‰DˇP¨í°î7_B Ŕ= b°a € lÄţzĂgJV×IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_0.md50000644000175000017500000000004012052741151017131 0ustar gudjongudjon86191bda551109928189f8bddf0ca756qwt5-5.2.3/doc/html/inherit_graph_16.md50000644000175000017500000000004012052741151017220 0ustar gudjongudjon067f714cef74d72d2bd370be25a2f410qwt5-5.2.3/doc/html/scatterscreenshots.html0000644000175000017500000000345712052741136020316 0ustar gudjongudjon Qwt User's Guide: Scatter Plot
Qwt User's Guide  5.2.3
Scatter Plot
scatterplot.png
qwt5-5.2.3/doc/html/class_qwt_abstract_slider__inherit__graph.md50000644000175000017500000000004012052741137024521 0ustar gudjongudjon42b4424dbd66eef4f8966896331a0559qwt5-5.2.3/doc/html/class_qwt_plot_curve__inherit__graph.map0000644000175000017500000000051212052741156023633 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_panner__inherit__graph.png0000644000175000017500000000570112052741155022747 0ustar gudjongudjon‰PNG  IHDRupŻ«¨XbKGD˙˙˙ ˝§“ vIDATxśíť{L[ŐŔĎíVŢĚŽŕpsĚĄN-Ů”1ÜĹ©,θĄýCÜ#ls>Gtń‰dl0 #*´Ó«ŰJIśł´0 a+łc}Q Ą·˝ż?®żćĘ ëEÎJ—óůô~{ß~8=÷ŢÓö^Ś €€Ăß Üĺ żpA~á‚üÂ…E«ôĹ‹> )•€`Ë–-‡ň˝űěł   ˛˛2©ÂŠßcÇŽmÝşU*•ňů|‡sß}÷}đÁźţůľţúkŔÍ›7333ëęęFŁ133S"‘8ťÎĚĚL‹ĹBmŤÇă=÷Üs===äćŐ«W÷îÝűÄOlßľ]ˇPôzý /ĽĐÔÔ”ťťť››{îÜąą‚»Ý^^^ž““#‰Ş««].YR.—?őÔSz˝~aU,ĽßÉÉÉŽŽ‘HD b&‰~ýő×´´4µZ Đjµ!!!Ť Ńh’““Oź>MŰđđpjÝ›7o644¤¤¤›ź~úéúőëĹbqUU4›ÍuuuąąąŢ‡Ł¦¦ćřńăŤćĚ™3dýýý_|ńźĎ_X ď×l6bbbfÄăăăM&“P(ěěětą\Z­677·łłÓívk4š´´4jar “Ĺâ©©©W_}•|*??űöíL&“ĹbMLLA‡Ă!‘HBBBŇÓÓ­Vë\AÇ EaaaxxxBB®]»~ůĺ2ľk×®ĄK—.¸Ť…ßżEDD C||<5>66¶téҤ¤¤ĐĐĐŢŢ^­V{řđásçÎőőőuttS łŮlň˝+:ťî˝÷ŢĂ0Śú/d±Xä¨Ç0ĚKĐh4â8ţôÓOĎČ–Ĺb‘ś…÷"äryAA©ŻŻě±ÇärůŁŹ>  …---FŁ‘Ďç ‚ććć±±±ÔÔÔ‘‘‘Ű6n±X>účŁŞŞŞ•+W¶¶¶’qŞV·### ĆŮłg—,Y°Űí‹ĹápĚZ}A€˛“JĄ …˘˛˛rhhhzzzbbB,÷őőíر  żűî»5kÖ`&ľýöŰuëÖ±X, ĂÜn7Žă^Z&×®LćřřřW_}ĺv»=S„/°Ů쌌Ś'NX,łŮ|äČ‘†††˙řb˝ĹďňĺË«««ÇÇÇĄRé¶mŰ ENNNll¬L&<ôĐCN§síÚµ€|pjjŠś|Ł˘˘łłłÇÇÇçj9""B"‘HĄŇ={ölܸqٲetóJJJ\.—X,–H$‘‘‘ůůů˙íµŢÚëż7nÜßúäôô´^Ż_±bĹ<ę.ČőIZĆîÜůqPPP@Ëťhý.Č/\_¸ żpA~á‚üÂ…öůńČČHSSŚT?˝˝˝´ëtřřăŹ!¤í;‡“Âd†ů1´´4ZĆčůő//öÇÇ˝ń†Ě߉Рćß3g.‘qÜíď\|%`üNOărą`±LŞTôçA?0~•ĘžÉI€ÉdČĺ—üťŽŻŚ_™ě“Éŕ¸űǵSSÓţÎČ'ĂďĄ㧟şpÜEn:řĎ?wű7% żTą“ÉÚýŹď†_™¬ťúŽ»/\č±Z§ü’Ź€_ŁqBĄşârýëŚ ~Đú+%ß żMMš[AÔ×Ŕ~Ú[>ňr»‰ß~űóďż-łVY<,vż##ćK—®ąÝł|¤Čd2gÚ‹ŠĹî·±±c®ŹkqÜ%“-ö Xß˙](î˝7&>žëŮ´Ů›ĹúgX¬Y“č§Ľ|…Ţ÷üNBBquµäŮgţNÄWűüč żpA~á‚üÂů… ň ä.Č/\_¸ żpA~á‚üÂů… ň ä.Č/\_¸ żpA~á‚üÂů… ň ä.Č/\_¸ żpA~á‚üÂů… ň ä.Č/\_ČP/V Óé"##ýť‘7‚ů FżłđFEEUéż~ˇŐjM&Ó7ß|ăŻäťňňr•Jµoß>Od–ß·äĺĺÝÁ”î*ęëëgDĐü ä.Č/\_¸ żp™§ß±X”””T\\LŢ–Á ===‡|€QŠŠ‰DäĹí=ećÝÂbc>~u:Ý#Ź<Âĺr•JĄÉd’ÉdW®\Yż~ým{ökµZ‡óňË/ÓĘáż·p‡ žlw®ąí5éüńÂÂBjÄív§§§—””lŢĽą¬¬Ś ááaŔ‡~HÄčč(µÇ––Ş‚ Z[[Ł˘˘ČHĎS&“içÎť<oٲeŻ˝öuxzi ®®.ˇPČápř|ţéÓ§Éf—/_ţÉ'źđxĽŘŘŘ/żür® A6›m÷îÝ111 ŻĽňŠÓé$K?~<44T§Óy1“—————GŤĐżV«U©TJĄRjð˘˘˘łgĎfee]¸pTŔĺr›››ÍÍÍk×®ő¸‹ŠŠ˘Ö=věŘşuëft´gĎ«ŐÚÝÝ}ţüůďż˙ľ¶¶ÖÇŢzë­m۶™L¦·ß~űŕÁdĐ`0hµÚýű÷8pŔKP*•NNN^ľ|YĄR©TŞĘĘJ˛‹ŽŽŽľľľU«VŃóEwüö÷÷cćt:gÄŐjuXXXWWWXXÓé,((xóÍ7ą\.Žă{÷î=tčÇŽN§Ł&öĚ3Ď QÇŻÝng0dă2™ě𥂠ş»»'&&śNgMM µüŤ7‚¸|ů˛—ŕôô4›Í6›ÍdSçĎźřá‡É’Á»™YÇ/íë?DGGc¦×ë“““©ńááḸ¸ÔÔÔööö–––şşşşş:µZÝÜÜ|ňäIjáŕŕ`»Ýëׯ’’’ČÍäääżţúËÇZ[[wî܉aŘ=÷Üă ‘ŁžÁ`x ŽŽŽ:ťNę˝r˘ŁŁÉ’äşĐž¸\nFFFEE…'R^^>88XQQ‘ťť xňÉ'ĺrůőë×ďż˙ţM›6544 oذV/qqq€«WŻ’›3îf4ccc/˝ôŇ©S§ÚŰŰŹ9â‰űxťŘŘX&“éż6›­­­m®ęľ0źă‡ĘĘĘÚÚÚ˘˘˘ŢŢ^»ÝnµZW®\ůÇĽţú뀬¬¬ŞŞŞ 6`¶iÓ¦'NlŢĽ™ÍfcćrąśN§/]çää †ľľľŇŇŇ;vřŇÂ?ďJËh4–••ą\®w“»mż"‘¨¸¸xllĚ`0Ľřâ‹GŹő˝ú­ĚÇďęŐ«˙ýwŁŃ‘‘^[[»˙~r زe‹ĂáHOOdffÚl¶¬¬,@bbâŠ+x<žŃhôĄ—S§N-Y˛„|dee› ‡#Ěeqîhý.Č/\_¸ żpA~á‚üÂe–ő‡­[·Ţů<î:;;7nÜHŤüëú“&“©¤¤„ÖY3Ř·oUq€]ß3ŕ@ó/\_¸ żpA~áň?^|0Ńřu’KIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_26.png0000644000175000017500000000331112052741163017327 0ustar gudjongudjon‰PNG  IHDR€%ŤvÁbKGD˙˙˙ ˝§“~IDAThí™OLKÇgvĚ®TJZ0h­[˙Ĺ(Ť‚‰íAbŚŃˇšTL06P4hEŚ=M‹F=(pŔ¨(1hâZФc„ ŀЦ©m]¤®ýþþ׷Ż”>ź›<ösš™ťýÎo~ßíĚî"I°0GÓ,uX†5€aX&)ŞŢŰŰ{áÂFBY čtş;vĐ[ ¨· ˘˘˘ŢŢŢśśśßŘ’€JěčŤŃżŔÜN,ż„˘˘˘ąŤěŔ0¬ ĂŔ0¬ ĂŔ0ń`·ŰŹ9" ą\®H$ŞŞŞňů| ßbµZˇ  >ź_PP055Eďł(E ĹđđpÜÓů™°˙ â4Ŕb±Čd2 ĂŚFŁ×ëmkkűđáCNNÎ=Ă0ůďŢ˝Cäřń㋊®0>>ľ~ýz•Jµř©0Lś¨ŐęŇŇRÁ ‘H–-[¶mŰ¶ŽŽŽôôtťN§P(®^˝ šš‚ čĘ•+§Ó AT*ýţý;An·›®–™™YQQńúőë¨Q|>źR©äóůYYYZ­Öáp̧ŔăńŽ=j±X¨ęĚĚLyyą@ Xąreuuu(<|řP"‘$''oܸ±«« 0==­R©ř|ľP(¬©©ˇîÜľ}{rrňęŐ«›››ŁBš«lµZE"‘^ŻGQÔjµ.6“ń€ă¸Ńh¬¬¬¤7B¤Ńhž>}šźźOMݧ§Ă0“É0™L›7o¶X,ÔcËçóé÷:ŽëׯoÝş5j ňňrLJ††:;;ź={ÖŇŇ2ź‚Ďçkjj’ËĺTµ˛˛Ňď÷vwwwww ÇKJJ}>źZ­¦~mŹÇb±ŤĆ¦¦¦'OžÎź?żwď^Ż×[SSS]]Ň\e*ţ·oßÚl6‰D˛čl’˙¤°°°°°\‘‘‚‚Á`TűŔŔŠ˘ďßżGQ4 žív»m6›Z­‡Ă. IIʧ®®.ůň…Ň\ĺřř7?łNĹdttT©T .—+‹Oť:•ťť][[K’$Žă§ľľž$ɉ‰ Ŕť;wH’śžž–H$(ŠľzőŠţI'˛ŕ’$év»‹‹‹W¬X‘™™yćĚ™@ °€Žă‰‰‰÷ďß'IŇëő*•Ę´´´´´´˛˛2żßO’äÝ»wW­Z… L&ëëë#IňóçĎĹĹĹ</##ăŇĄK”ÎĹ‹1 [»vm{{»T*U(ôć*ÓŻ.LĚÜĆř?ßq4AV«uË–-˙öˇřź3·żň(A6ű‹…= bÖ†a `Ö†a `Ö†‰qd·ŰoßľýűCůßc·ŰŁNĎó%\__ĎDlK…†††| łüfŘ=€aX†5€aXćŕ‡:IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_click_point_machine.html0000644000175000017500000001775512052741164023776 0ustar gudjongudjon Qwt User's Guide: QwtPickerClickPointMachine Class Reference
QwtPickerClickPointMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerClickPointMachine:

List of all members.

Public Member Functions

virtual CommandList transition (const QwtEventPattern &, const QEvent *)
- Public Member Functions inherited from QwtPickerMachine
virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const

Additional Inherited Members

- Public Types inherited from QwtPickerMachine
enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList
- Protected Member Functions inherited from QwtPickerMachine
 QwtPickerMachine ()

Detailed Description

A state machine for point selections.

Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 selects a point.

See also:
QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
qwt5-5.2.3/doc/html/qwt__plot_8h_source.html0000644000175000017500000011736012052741135020355 0ustar gudjongudjon Qwt User's Guide: qwt_plot.h Source File
Qwt User's Guide  5.2.3
qwt_plot.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_H
11 #define QWT_PLOT_H
12 
13 #include <qframe.h>
14 #include "qwt_global.h"
15 #include "qwt_array.h"
16 #include "qwt_text.h"
17 #include "qwt_plot_dict.h"
18 #include "qwt_scale_map.h"
19 #include "qwt_plot_printfilter.h"
20 
21 class QwtPlotLayout;
22 class QwtLegend;
23 class QwtScaleWidget;
24 class QwtScaleEngine;
25 class QwtScaleDiv;
26 class QwtScaleDraw;
27 class QwtTextLabel;
28 class QwtPlotCanvas;
29 class QwtPlotPrintFilter;
30 
72 class QWT_EXPORT QwtPlot: public QFrame, public QwtPlotDict
73 {
74  Q_OBJECT
75  Q_PROPERTY( QString propertiesDocument
76  READ grabProperties WRITE applyProperties )
77 
78 public:
87  enum Axis
88  {
89  yLeft,
90  yRight,
91  xBottom,
92  xTop,
93 
94  axisCnt
95  };
96 
120  {
121  LeftLegend,
122  RightLegend,
123  BottomLegend,
124  TopLegend,
125 
126  ExternalLegend
127  };
128 
129  explicit QwtPlot(QWidget * = NULL);
130  explicit QwtPlot(const QwtText &title, QWidget *p = NULL);
131 #if QT_VERSION < 0x040000
132  explicit QwtPlot(QWidget *, const char* name);
133 #endif
134 
135  virtual ~QwtPlot();
136 
137  void applyProperties(const QString &);
138  QString grabProperties() const;
139 
140  void setAutoReplot(bool tf = true);
141  bool autoReplot() const;
142 
143  void print(QPaintDevice &p,
144  const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const;
145  virtual void print(QPainter *, const QRect &rect,
146  const QwtPlotPrintFilter & = QwtPlotPrintFilter()) const;
147 
148  // Layout
149 
150  QwtPlotLayout *plotLayout();
151  const QwtPlotLayout *plotLayout() const;
152 
153  void setMargin(int margin);
154  int margin() const;
155 
156  // Title
157 
158  void setTitle(const QString &);
159  void setTitle(const QwtText &t);
160  QwtText title() const;
161 
162  QwtTextLabel *titleLabel();
163  const QwtTextLabel *titleLabel() const;
164 
165  // Canvas
166 
167  QwtPlotCanvas *canvas();
168  const QwtPlotCanvas *canvas() const;
169 
170  void setCanvasBackground (const QColor &c);
171  const QColor& canvasBackground() const;
172 
173  void setCanvasLineWidth(int w);
174  int canvasLineWidth() const;
175 
176  virtual QwtScaleMap canvasMap(int axisId) const;
177 
178  double invTransform(int axisId, int pos) const;
179  int transform(int axisId, double value) const;
180 
181  // Axes
182 
183  QwtScaleEngine *axisScaleEngine(int axisId);
184  const QwtScaleEngine *axisScaleEngine(int axisId) const;
185  void setAxisScaleEngine(int axisId, QwtScaleEngine *);
186 
187  void setAxisAutoScale(int axisId);
188  bool axisAutoScale(int axisId) const;
189 
190  void enableAxis(int axisId, bool tf = true);
191  bool axisEnabled(int axisId) const;
192 
193  void setAxisFont(int axisId, const QFont &f);
194  QFont axisFont(int axisId) const;
195 
196  void setAxisScale(int axisId, double min, double max, double step = 0);
197  void setAxisScaleDiv(int axisId, const QwtScaleDiv &);
198  void setAxisScaleDraw(int axisId, QwtScaleDraw *);
199 
200  double axisStepSize(int axisId) const;
201 
202  const QwtScaleDiv *axisScaleDiv(int axisId) const;
203  QwtScaleDiv *axisScaleDiv(int axisId);
204 
205  const QwtScaleDraw *axisScaleDraw(int axisId) const;
206  QwtScaleDraw *axisScaleDraw(int axisId);
207 
208  const QwtScaleWidget *axisWidget(int axisId) const;
209  QwtScaleWidget *axisWidget(int axisId);
210 
211 #if QT_VERSION < 0x040000
212  void setAxisLabelAlignment(int axisId, int);
213 #else
214  void setAxisLabelAlignment(int axisId, Qt::Alignment);
215 #endif
216  void setAxisLabelRotation(int axisId, double rotation);
217 
218  void setAxisTitle(int axisId, const QString &);
219  void setAxisTitle(int axisId, const QwtText &);
220  QwtText axisTitle(int axisId) const;
221 
222  void setAxisMaxMinor(int axisId, int maxMinor);
223  int axisMaxMajor(int axisId) const;
224  void setAxisMaxMajor(int axisId, int maxMajor);
225  int axisMaxMinor(int axisId) const;
226 
227  // Legend
228 
229  void insertLegend(QwtLegend *, LegendPosition = QwtPlot::RightLegend,
230  double ratio = -1.0);
231 
232  QwtLegend *legend();
233  const QwtLegend *legend() const;
234 
235  // Misc
236 
237  virtual void polish();
238  virtual QSize sizeHint() const;
239  virtual QSize minimumSizeHint() const;
240 
241  virtual void updateLayout();
242  virtual void drawCanvas(QPainter *);
243 
244  void updateAxes();
245 
246  virtual bool event(QEvent *);
247 
248 signals:
259  void legendClicked(QwtPlotItem *plotItem);
260 
273  void legendChecked(QwtPlotItem *plotItem, bool on);
274 
275 public slots:
276  virtual void clear();
277 
278  virtual void replot();
279  void autoRefresh();
280 
281 protected slots:
282  virtual void legendItemClicked();
283  virtual void legendItemChecked(bool);
284 
285 protected:
286  static bool axisValid(int axisId);
287 
288  virtual void drawItems(QPainter *, const QRect &,
289  const QwtScaleMap maps[axisCnt],
290  const QwtPlotPrintFilter &) const;
291 
292  virtual void updateTabOrder();
293 
294  virtual void resizeEvent(QResizeEvent *e);
295 
296  virtual void printLegendItem(QPainter *,
297  const QWidget *, const QRect &) const;
298 
299  virtual void printTitle(QPainter *, const QRect &) const;
300 
301  virtual void printScale(QPainter *, int axisId, int startDist, int endDist,
302  int baseDist, const QRect &) const;
303 
304  virtual void printCanvas(QPainter *,
305  const QRect &boundingRect, const QRect &canvasRect,
306  const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const;
307 
308  virtual void printLegend(QPainter *, const QRect &) const;
309 
310 private:
311  void initAxesData();
312  void deleteAxesData();
313  void updateScaleDiv();
314 
315  void initPlot(const QwtText &title);
316 
317  class AxisData;
318  AxisData *d_axisData[axisCnt];
319 
320  class PrivateData;
321  PrivateData *d_data;
322 };
323 
324 #endif
qwt5-5.2.3/doc/html/class_qwt_plot_grid__inherit__graph.md50000644000175000017500000000004012052741141023332 0ustar gudjongudjon62b182444dca2a5030c8ae5b06f0c72cqwt5-5.2.3/doc/html/inherit_graph_21.map0000644000175000017500000000172112052741163017316 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_spectrogram__inherit__graph.png0000644000175000017500000001756412052741157025064 0ustar gudjongudjon‰PNG  IHDR­őđ#bKGD˙˙˙ ˝§“)IDATxśíťyX×úřß dM&@ ”jmyĽ­Eĺ>ŢJ«R,He«Z—Gj@kŐZkďEí˘R-XˇŢZ(ô";U[żî,޶ ‚˘DYB0@ÂN Ëüţ8÷—;—M@dĐśĎăă3srÎ{Ţ™ůäĚÉdČ$IĆŕaĐťfL€=Ŕ`0ěŔşŇÚÚşvíZ…BAW6Q#<<|îÜąúU‚úy!99ŮĎĎĎ××—ŽÄ0ŁÇü1oŢĽääd}‰qďJÔ—1Ď%+V¬čQ‚çě=Ŕ`0ě`ŘTTTŠD"‹eggÖÔÔ4p“’’‡C]}zçđ„É”””±téRj!I’¶¶¶tmăđމäŤ7ŢŕńxYYYJĄ2--íŢ˝{óćÍ{¬ Ď%ĆĆĆ999rą\_’ťťýĚíŠáxâďď5}úôńăÇżţúëgÎś177_¸páÁ ¶¶– Żľú ęęę‚pppčęę"˘ˇˇˇĎ°ííí6l°´´´¶¶Ţ¶m›FŁ€ÖÖÖŕŕ`@`gg— “ő®\RRbggwüřqˇP(‰QM…BáççÇçómmmSRR¨=644Płę/ćˇC‡……ĹĎ?˙Ľ{÷n>źoaańÓO?ˇ FFFK–,IHHЇŤŹŹ÷ńńŃŻĎ™3gܸq¶¶¶¨U©ö®9Ś=ÉĺrKJJ†vPI III=JzÓÜÜĚ`0î߿ߣ<--mĘ”)|ë­·H’ě;ďĽó÷ż˙˝łłóřńă¨Uź©ö®9Ô=Ŕb±VŻ^-“É>ľľľľľľÔ’!{P^^N„Z­îQ^XXČĺrďÜąĂĺrŐjő¦M›víÚĹăń4ÍĆŤ·oß>°ÝÝÝL&ł©© ­^ľ|yöěŮÝÝÝĆĆƨ0##5쳲D"€úúz’$‹‹‹QÍÎÎNQZZŠj¦¦¦öçA1 †JĄB1©ËÔćZ­ÖÚÚş°°$ÉÄÄÄE‹Q·ńîÝ»íííjµ:66VߪwŞ}ÖĆËĺA˛/ú¸®<0ćććATUUŮŰŰSËĄR©H$š9s&źĎĎĎĎĎÍÍMLLLLL,,,ĚÎÎţî»ď+“ÉÔj5źĎ§v$“Ét:ťťť*yńŨ ,K(ńźóÝŁGŹH’ś2e Z}饗†”0™L6›ŤbR—©m †żżllěáÇăă㩯^»vÍßßź ^xA_Ř;Ő>kc …ˇ2äůŹÇsuuŤŚŚÔ—DDDk>ů$Ă™'FEEĹÇLJ††–––ŞTŞ–––iÓ¦ěÜą<==Ź;ćěěL„››ŰŃŁG=<fź888ŘŮŮ{yy™čË˙3ę+ŠhµÚććć>#ôYóÉ÷Ŕ`ˇž$3?@Üż? ŔŇŇ’ĹbŮŰŰoٲeöěŮ{öě!I˛ĄĄ…Éd:t$Éęęj8~ü8I’­­­Ó§Oçrą˙ţ÷ż{ä°jŐ*’$•Je@@€@ k×®íčč@…+W®äńx/żüňŃŁGą\.J weę)™şÜŘŘ>/Ľđ ?˙üsŹi>«ĆĆĆÁÇěs®—.]ęQţůçźóxĽ—^z)33ÓÁÁaáÂ…ý…í]sŘ{``F`žŘťťťh˘4˛ÄÇÇ×Őա匌 ‡ďbŚó4ö@oFěş2‡Ă™5kÖHEÓ“™™ůÉ'ź´´´TVV~ýő×h bPŚÎëß/DEE544Lž<ŮŃŃŃÖÖMA ŠŃŮCţÜ8ĘD˘_~ů…î,čdtöŔX0Łö€=Ŕ °€>ç‰ß˙ýčçM***z|=ô?WŤŠ‹‹ą\.MąŃÁáL522´­†ęˇ˙źżg2@ţüóţňĺQďżď˛oßňÇ×~~1ôůAFĆ ôżFŁŁ;:1hş»5éé…ĐÜÜ‘“SJw:tbĐde•ttt€‘#=ýÝéЉA{–vĂČŤîě٢ÎÎnş3˘ Ăő ˝˝ëÜą;Ť­vui.\¸KoJ4b¸P%HK˧1z1\ŇŇň©wói4ş+WJZZ:iL‰F Ô…˘='çžVű?źI’üí·"şR˘őŕĚ™[˝ I’LI1ĐSzšš×űBŞNGţůçýGŹúľźřůĆ=¨­mşqŁR§ëズ‘ăôé>†ŠçCôŕôé›ý}©˘ŃhÓŇ ń‚ŇXż?ńiđŇKVV<ýj[[‡Ă46ţĎ[â•W¬iĘ‹N ýűF4),::hٲ‘żéţÂĎ Ţ`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€ůOţpĐá!‘HĚĚĚčŢz6ۆÁ0y|˝§Odd$]‡¶ßG***R*•ÉÉÉt%0ÖČÉÉ ˇĄwš'Ë××—ŢĆ)))4öŽçě=Ŕ`0ěŕ™đ ˘˘"00P$±X,;;»°°°¦¦¦›”””p8´@P …>>>µµµÔ:ŹŤĐcáąd¬{ ‘HŢxă Ź—••ĄT*ÓŇŇîÝ»7oŢĽÇŞ ‡Íf믖q8ś>řŕ©ćüLB׬¤¤¤Áôľ`Á‚Í›7SKt:ť‹‹Ë–-[<<<8@’¤T*€/żü’$I™LFÝşÜÜ\Ş$I^»vM(’$)‘Hô/)•J@0yňä;v ˇľľ^_R__ßÖÖ¶~ýz ‹I“&}ôŃGjµZ"‘ŘÚÚźš'0™L6› ş<”-¦Ť1ť%ŹÇsuuŤŚŚÔ—DDDáp8Ď™´óLz€q°ě=Ŕ`0ě€öűÖ-ZDoc‡Ű·oĎź?ź®Ţi»Ž¤T*·lŮŇŢŢNKďz´Z˘¬ĚL$jçó»čÍBBBčRÁĐźóťśśúŻ ÖŃť ťúü #㑝]ÚÜÜAw.tbĐÔ×·^˝z€€S§nŇťť´gÎÜ$H’LM}ćď!x Úää|ťŽťŽĚĎŻ”É{ôó‡ázPUŐXTTŤ<##Fff!˝)ŃázđË/…ĆĆ˙Ý|­V—’b¸§Ăő %%O­ÖéWI’,)‘Ýż/§1%1PJJdĺĺrôIA“i”™Y@WJôb df°X=Ż©«ŐÚ“'ŻÓ’í˘$I¦¦ćwwkzż$•*‹ŠŞG?%Ú1D *kkűţh°§CôŕŇ% Áb÷ţ§ŐęΞ˝Mw‚40¦˙®í)±jŐ\µZ«_MNΛ7ďĄ^Vç̱ď§Ýóڎß“&…EG-[fĐ7ÂâyÓě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=ŔŚÔ¤¤(•Ę E /^¬«{V)Í×××ĚĚěIŁ<ů#ăýőבŘĚ0 ~ň8ăA[[˙ű:´°bĹŠy¦ ž`°ö€=Ŕ °€Qö ˘˘"00P$±X,;;»°°°¦¦Ç< §¤¤„Ăá ‚‚P(ôńń©­­ĄÖR.—»páÂŇŇŇÁç?pGýu:Č&ô2zH$’7ŢxÇăeee)•Ę´´´{÷îÍ›7ď±*čałŮúĎ»EEEç>RÔUUU3fĚX˝zőĐ7ĺyäÉ/A$%% &΂ 6oŢL-Ńét...[¶lńđđ8pŕI’R©ľüňK’$e25ĎÜÜ\ęQ$IňÚµkBˇ$I‰D˘I©Túűű ‚É“'ďر ýEČĎĎ733CËwîÜqrrâp8666qqq¨099yÚ´igćĚ™ÉÉÉúPőőőmmmëׯ·°°4iŇG}¤V«%‰­­í·ß~;aÂ„ŚŚ 6›]__?&ś8q˘ąąyBB§ź~jjjjnn®Ďa`|}}}}}Ss`Fi÷@ML&›ÍA]ÂÎ F©?Źçęę©/‰xđŕAdd¤——,^Ľ8==˝®®ÎÁÁÁÍÍ-55U*•:;;©‘H>D«<°˛˛ęݞ‰‰ÉęŐ«óňň ˇˇaÍš5111ůůůááᨂJĄ255=wîś\.÷đđđóóÓ·µ´´422ŇżąŰÚÚPôtŘ>éŻÉaôĽ‹ŠŠŠŹŹ ---U©T---Ó¦M+((Řąs'xzz;vĚŮŮ™ 77·ŁGŹzxx0™L‚ ´Z­Z­Ll6ŰŰŰ;44T.——••íŮłgŐŞUD011éěěÔh4čŘ+ŠhµÚććf­V»`Á‚ëׯ‡Ăáp8úPl6ŰÇÇ',,¬ˇˇA.—Ż\ąňđáĂ}¦4Ś&´0zĚ1ăúőë …ÂŐŐŐÔÔ4>>ţĂ?DlX¸paWW—‹‹ ¸»»·µµˇ“‚µµő”)SBˇL/111ăÇŹGЧ§ç¶mŰ ‰‚HKK377ßłgŹ«««““Óňĺ˧Nťęăă3~üřČČH___>źźK ­Ńh¦Oź>cĆ ‹ýű÷÷™Ď0šĐÂ<Ź%99ŮĎĎoxqT*UIIɬYý,”'aĹŠ@ýL;Ąlhˇ¶v’™™bܸž?Ł÷ě"Ž?ÎĺrßdČO<ÄÜ0ŁGVVVRRzäď Îďâřúúşąą Ł!ftČĘĘj}úô?ţńŹęęęM›6µµµ 2“ÉĽň˙9qâ‹Ĺ:pŕŔŕ Ir۶mfff111§OźţüóĎoßľ9¬­1žŠGŽY´h‘X,¶±±áp8/żüň_|Áçóúé§­[·&%%@ccŁ»»{bb"( ww÷   µZíîîŢÜÜLŤ&Ţ}÷Ý’’ž?‡ßÖÖ¶˙~//Ż+V?~Ľ±±Qˇ˘˘˘¦¦fÍš5€ĹbMť:U,wvv@UUŐ{ď˝—’’âíí˝|ůň­V *•*""ÂŰŰŰÇÇ'::vtt|ýő×^^^Ë—/?qâDssłľ‹Ű·oż÷Ţ{éééo˝őVUUUŹd4 jţĺ—_.[¶ě˝÷Ţ»páÂßţö7}ú†>ܸqă›oľéç燆T!99yٲeŢŢŢ/^gÎśÂÂB(**211ąuëÜşuËŢŢ>.. ¦¦¦Ô¶ŤŤŤ©©©S§NíŃQDDD{{{\\\DDÄźţyáÂ}„_|ŃÎÎîłĎ>»zőjkk+ŘŰŰďŢ˝5¬ŻŻ/,,üńÇ:tőęŐÔÔTŚŚěęꊍŤýöŰooÝş•‘‘ [ZZâââ>|îÜą˘˘"j’ŤŤŤĺĺĺ 666=’ŃÇlmmŤ‹‹;tč*Ńo‘ľá?ü0oŢĽÓ§O;v UhhhP*•IIIďľűîţýűŐjuJJĘ»ďľűý÷ßŹŕ‘˘2ň455@ď ĎVVVJĄŇÉÉéöíŰZ­¶¨¨hůňĺ·oßÖét·nÝš3gµ2zĎ!;;;?ţř㲲˛BBBř|ţäÉ“/\¸đß­b0˘˘˘ćÎť{öěY˙ŕŕŕ'NtuuˇWu:jřâ‹/ľ˙ţűçĎź×h4çϟ߼ył©©é¤I“Ö­[wńâEŤFsáÂ…M›6ńů|›Ý»w[ZZRsĐh4ëÖ­›8qbźÉ ć!!!fffÖÖÖ˝ŔÚµkýüüŚŚŚŚŤŤőĎČÖét«WŻ7nś‹‹ č—[ZZžěŕôËČĎů|>Čĺr+++jyCCĂĉíěě&LPZZZTTôŮgź]şt©¬¬ěćÍ›aaaÔĘL&sŕ1PˇP€H$B«VVVőő˙óÜ“wŢyçťwŢ!I˛´´ôűďżß»woxx8ˇĎÍĆƦľľ^ˇPh4š%K–P·BˇPčt:}ŻĽň TUý÷ŹĆĆĆhcűL¦GsęŢĐ7‰D˛oß>‚ ¨ďccc&“‰RĄ.°Cž‘LLLfÍš•žž®/III‘Édéééýë_ŔÉÉ)77WˇPŘŘŘĚš5+;;»ˇˇaćĚ™Cę˝™ęęęĐŞL&C%-[¶ e‚ ¦OźľnÝş˘˘"TB’¤ľˇT*ť8q˘™™Á8sć š™ž={6::=D]Ż×µk×®^˝JÍA`úL5§önŘÜÜüő×_oÝş5&&főęŐCÚ#ËS™'ŠĹâóçĎGEEUWWwww···–••­Zµ śśś~ůĺ—W^y… YłfeffľöÚkĆĆĆAčt:4Ăz,L&ÓĹĹ%**Ş©©©¦¦&66vѢEúoľůć­[·’’’ęëë»»»«««śťťőÍQĂĘĘĘüqѢEL&ÓŐŐőčŃŁÍÍÍMMMááá©©©L&sţüůÇŽknn®©©9räN§ë3É>“a2™ ,ŠŠR*•µµµ ˝ßĐčË^##ŁÖÖÖ“'Oęt:ý©a”y*ŘÚÚFGG·¶¶ŠĹâ·ß~űüůóŢŢŢ–––iiiđú믫ŐjGGGřË_ţŇŮى&BˇĐÚÚÚËË ÍěËÖ­[ÇŤęäääçç§Ź`ccóĹ_üńÇAAAË–-۵k—ŤŤÍÖ­[QC&“9{öěőë×ëŔ–-[´Zm```PP™™ŮÚµkQFFFˇˇˇ‹/ž?~IöNBCCÇŤçďďż}űvOOOcăžga>ź$‹7lŘ0ţüÉ“'ďŮłç wţđÎý{öěĆ÷ÎÝÝÝUUUS¦LjĂ‘e4/]¸paöěŮčqőęŐţóź±±±ŁĐŻ»»űPď?˝ëĘ,‹v F™«WŻ?~ĽŁŁăŃŁG'OžDÓŁ± ţ~á)"‹›››}}}WŻ^mii‰¦Gc{N—ŤŤÍ¨};0qâÄ}űöŤN_O0Ř {€Ŕ`Ă™'޸qcđw`ž Č!âääDwĘÇ0a„»wďé°âsľ1˝Áó öŔ`°Ä˙)E'öĘ/IEND®B`‚qwt5-5.2.3/doc/html/functions_0x6f.html0000644000175000017500000001741212052741151017234 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- o -

qwt5-5.2.3/doc/html/class_qwt_compass_magnet_needle__inherit__graph.png0000644000175000017500000001036112052741153025774 0ustar gudjongudjon‰PNG  IHDRŔpÇtč%bKGD˙˙˙ ˝§“¦IDATxśíÝ{PWűđłĂŢ`ŐŃ8: ˘ÔZ¤#E -aF ˘TD¨ŁÓZ)8ŠVajĹ[­l·Z…Ž/7˘ŻNi!Q * %‚„$$Üvěűî“‘µnđw>%{NžlľŮ=$ †++Ş€Ć7   µ7äČ‘ňňrj{×–-[¶gĎ @¨ý- AE‹M™2…ÂĆŻÖÖÖ;wîPüR ˇPIaăW^^ŹÇŁö„k     ”ń GŹńů|1uęÔ;v¨T*óClmmń ČŮŘŘřűűŻ<ŰŚf†ŚŚ ㍙ţä$§˘Ö8T*]°`“““H$R*•………ţůg``ŕ 3D°±±Á0 Ă0™L¶iÓ&‡#•Jl6{```43XYYĄ¦¦>~üxĚ÷âM5”°nÝşĚĚL6›mooďççW\\>>/^4čN§oÝş5..θ˝ŢŢŢ-[¶¸»»{yyíŢ˝[§ÓŤTT(<ŹĹbůřřäççŹr* géR«Ő"‘H čILLĽrĺĘŠ+®_ż¸y󦓓SUU ŞŞjŢĽyR©?𸹹ĚVSScPÜ·o_XXR©üňË/wďŢmÜÉţýű?~lś-@Đ××W__ăĆŤ7ndffŽTŚ‹‹ëęęzđŕAYY™P(4ľ “Ł,F)€P(4łASS‚ Z­Ö ^[[ëččx˙ţ}GGG­V»m۶/ľřÂÉÉI§ÓĹÇÇďŮł‡qPWWÇb± ~ôŕÁŢŢ^­V›••e0¸ ‰ÜÜÜž={FT†††čtşJĄÂ'©¬¬ô÷÷7Yěďď·˛˛zřđ!^,((0Üä(ó{Oˇůmţiż™úB'ND¤ĄĄeÚ´iúő¶¶6Ź9sć°X¬ššš›7oćäääääÔÖÖVUUť:uĘĚśžžžĹ»wď®[·A3oĚq8@°˙~ĽňôéS­VËb±ô6YěččŔ0lĆŚxeúôé“›eć^XK?…999ť8q‚¨ddd477ź8q"""°|ůň˘˘˘öööŮłg/]ş´   ­­í˝÷Ţ33gIII@@€~E.—oÚ´éěŮł55503öčŃŁ"‘č×_ĹŻş»»[[[‡Ťžžžß~űÍdŃÓÓAGŹá››› f69jÔű‰:”÷ŕE§0 Ăęëë]]]ACCCrr2ťNź8qbWW†aEEE«V­Â0ěâĹ‹\.ð††Ť644¤ž’Ëĺ§NťrppŔO%ÄŹž={† HmmmWWźĎ§Ńh*•j¤“`aa!“É$*</&&¦łłłŁŁcĺĘ•‰‰‰####CCCe2YccăüůóŤ'79Ę K8…Q}óنaýő×úőëÝÝÝ Ć´iÓ’’’üýý“““1 S«Őt:===ðÖÖVŔąsç0 Óh4l6ŰŃŃńÖ­[Äł…N§űůůUTTŕÓę?x_}ő•““ÓôéÓ/_ľ<{öěeË–™YEq8˘˘T*ׯ_ďęęęęęŰ××7R±«« ˙-lĘ”)—.]2žÜä(3`€F cýýýµµµŻĽźńĹdék ‘ŘÚÚúúúRÝdń‹hČÂÁA¤ŔA¤ŔA¤ŔA¤ŔA¤P˙^XEEĹč?Ůéűý÷ß©nę—ˇ-ZDő0‡Áđd0 ßvµ(Ô>‚˙aˇ%Fßy' ‘¤ZY!T·cˇŕhD˙ţw“BŃ«PôÜľÝDu/– hDůů54šťn•ź?>VA Ó´%%bťnX«EKJÄZŞ;˛P0@¦UVJ‰Đ h++ĄÔöc±`€L+,¬A˙,ś),4ü>„2A­(/0<ŚâW‡‡Ńňňjő¨ţ‚ě˙ ®]»‡˘Ď˝ş˘ŘżţuŹŞ~, 5ŻŽaVPĎb&ŔęěÔܾݢ¨~E±Ű·;;5Tue±`€ ×™|ÝAâbńëďÇÂÁĘË«1XáP…Ż(zN[›R"i!@@,n•ÉŕžCýÇ9,Š˝˝ÍĚ™îju?~-ŃÖ–Ž_ť0Éd2(kÎ"Áwă͉‹Ëś=Mu#– žÂ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ R`€ rôżC3˙kkk±X¬Rýď{UÄbńčďy‚dgg···ż¶[ł±čřńă!!!ŔŰŰŰÖÖvćĚ™iii,ëâĹ‹;wî …€®®®ŕŕŕśś€BˇŽŽŽÖjµÁÁÁÝÝÝ'Ož\»vmDD‹ĹrppçrąřA¨§§çСC‘‘‘çÎťÓét---QQQyyy+W®äp8ĺĺĺ?üđCxx8‡Ă)--ŕäççs8.—{öěŮááaŔăÇŹăăăCCCy<ľ%@$ńůüĐĐĐÚÚZ“++«ŔŔŔ˛˛2â.—––WMÎÜ××wřđá•+WFEE•••Ďř¨¨¨âââ.—[QQo<00‘‘ÁápÖ¬YsćĚ…Bˇżh4ÚŞU«ŇÓÓŤwľÁ@üžš,j4š”””đđpŹ'‰F9ŐËzéőőőŐŐŐ­YłFż Čš5knßľ˝páBü1H$L&S,Äbń´iÓ˛łłétúőë×étşX, ŃźaóćÍk×®dddôööfgggddÜąs§   —Ë•JĄP(\˝zőˇC‡´Zm~~ţęŐ«żűî;|xgggmmí… ŇÓÓ«««ńQçĎź Ľző*źĎ?}ú4ŢüÁ‹‹‹9αcÇŚ+ř„Ë—/żví~ypp°şşZżaă™'NśĐh4ŮŮŮéééx8•JőčŃŁśś.—«żńŕŕ`VVÖ·ß~+‹+++‰ý3aÂźĎooo'ŇI0řóĎ?ŹTLOOW«Őx?ׯ_7~(MŽzY/ üŔţÖ[oÔ===•Je@@Ŕ˝{÷†‡‡% —Ë˝wb±xáÂ…Ä–ÝÝÝăɵZ­H$JHH`±X“'Oްa~@QtăĆŤvvvK–,—Őj5>EQ|ÔŰożď÷ŘŘXŹgmmMŁŃz{{ĂĂĂ‚ČĺrE?ů䓬¬,ă >ˇźźźZ­njjÜşukÖ¬Y®®®DźĆ3ëtş˛˛˛„„ggg//Żőë×FGG3™L˘aťNWZZş}űö &Lš4ióćÍĺĺ廂Á`ěÚµëÔ©SúgR“M‡††nܸ±cÇWW×É“'ÇÄÄĚ?šF㥿/ ·őŮłgžžžúuą\îââ2uęT‡‡J$’ýű÷WTT466ÖŐŐíر؆uvvę§°ąąąľľ~Á‚ĽčééŮŮŮ  Ńht:€ ţeb8‚ D?ŢŢŢř(©TzđŕAArttLKKËÍÍ=~ü8›ÍţěłĎŘl¶A…Édↄ„\»v-!!ˇ´´Ô`ái<łBˇ@QTżó˙íb żËDĂ …B§Ó…‡‡ěUďĽóÎ’%K233ů|ľ™&‹JĄŕĺĺ…W&Mšd0ů({xˇ—“Éôőő-**Ú¶m^ÉĎĎ˙ý÷‹ŠŠ/^ ¸yó¦Bˇđöööőő­ŞŞ’ËĺsćĚ‘ÉdÄ sçÎ-))ŃZäććö÷÷‡††ÚŰŰńŕéÓ§&TĆ0 #Fµµµą¸¸twwýő×§Oźž5kVssóÝ»wCCCöööGŹŐjµyyy©©©YYY•Çăs†††&&&ňxĽúúú”””ŽŽĽnrfgggΉŢôŽsvv¶˛˛şr劽˝=``` »»{ppĐř~mٲ%::zÖ¬Yfš,âÇK™L†gHż3SŤfWË"Z ”––fff¶¶¶ őööňůüĆĆF|đË/żĚť;A__ßË—/żűî»4 AEu:`ëÖ­Bˇ0;;űÉ“'íííBˇ°˛˛’ÇăŃétü9§R©ţţűשּׁ,Ą’ř¨'Ož\¸p!$$˙"=kkkŤF“››‹˘hoo/Š˘III Á`0Ś+Ä„>>>‡^Ľx±ŤŤ Q793ťN˙đĂ333•JĄL&űé§źŚsC ÓéAAA'OžěîîV©T(((Đß?{{{@pţüy3Mi4ZPPĐńăÇ»şşÚÚÚ~üńÇŃô0Ę]­o,ňńń9sćŚFŁaaaĄĄĄÇÝÝ˝°°ŕçç§ŐjçÍ›?~?ľrssóňňŠĐh4l6űčŃŁ÷ďßŹŹŹŹŤŤ­®®NKK›3g`çÎťvvv|>?111 €Ç㍦%:ťîďďGŚb±XŃŃŃ`Ë–-|đÁäÉ““““mmm·oßžśś^YYąwď^ăŠţ´ˇˇˇüń~\$śhgg·nÝş={ö¬X±‚F3wtOJJćóůŃŃŃÎÎα±±úűGË%K–h¦čŕŕ°aƤ¤$“»Ń䨗őÜW^ćĺĺńx<“+öjii™1cĆĆ’ÔŇŇkü ËkVVVćď˪««ż˙ţ{bIţĆ …‘‘‘Dĺ•˝•Á`0(IŹĺ¨®®>wî\___GGGnn.ľ"|ăÁ÷Â^@ĐÝÝýé§źnܸŃÝÝ_ľńŢ„Żýööö¦üüpqq9xđ Ő]Ľnđ‘‘‘‘bb˝k×®×ß4N=÷B˘R©LJJÂß^† cöööř‹Ą¸çA/ ® R`€ R`€ R`€ RţPú@»öQźIEND®B`‚qwt5-5.2.3/doc/html/formula.repository0000644000175000017500000000034512052741151017276 0ustar gudjongudjon\form#0:$\cdot value2 - value1 <= abs(intervalSize * 10e^{-6})$ \form#1:$stepSize = (intervalSize - intervalSize * 10e^{-6}) / numSteps$ \form#2:$\left\{ 1,2,5\right\} \cdot 10^{n}$ \form#3:$\left\{ 1,2,3,5\right\} \cdot 10^{n}$ qwt5-5.2.3/doc/html/class_qwt_scale_map-members.html0000644000175000017500000001705112052741143022015 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleMap Member List

This is the complete list of members for QwtScaleMap, including all inherited members.

invTransform(double i) const QwtScaleMapinline
LogMax (defined in QwtScaleMap)QwtScaleMap
LogMin (defined in QwtScaleMap)QwtScaleMap
operator=(const QwtScaleMap &)QwtScaleMap
p1() const QwtScaleMapinline
p2() const QwtScaleMapinline
pDist() const QwtScaleMapinline
QwtScaleMap()QwtScaleMap
QwtScaleMap(const QwtScaleMap &)QwtScaleMap
s1() const QwtScaleMapinline
s2() const QwtScaleMapinline
sDist() const QwtScaleMapinline
setPaintInterval(int p1, int p2)QwtScaleMap
setPaintXInterval(double p1, double p2)QwtScaleMap
setScaleInterval(double s1, double s2)QwtScaleMap
setTransformation(QwtScaleTransformation *)QwtScaleMap
transform(double x) const QwtScaleMapinline
transformation() const QwtScaleMap
xTransform(double x) const QwtScaleMapinline
~QwtScaleMap()QwtScaleMap
qwt5-5.2.3/doc/html/class_qwt_abstract_slider-members.html0000644000175000017500000004575112052741137023251 0ustar gudjongudjon Qwt User's Guide: Member List
QwtAbstractSlider Member List

This is the complete list of members for QwtAbstractSlider, including all inherited members.

exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
getScrollMode(const QPoint &p, int &scrollMode, int &direction)=0QwtAbstractSliderprotectedpure virtual
getValue(const QPoint &p)=0QwtAbstractSliderprotectedpure virtual
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *e)QwtAbstractSliderprotectedvirtual
mass() const QwtAbstractSlidervirtual
maxValue() const QwtDoubleRange
minValue() const QwtDoubleRange
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
orientation() const QwtAbstractSlider
pageSize() const QwtDoubleRange
periodic() const QwtDoubleRange
prevValue() const QwtDoubleRangeprotected
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtDoubleRange()QwtDoubleRange
rangeChange()QwtDoubleRangeprotectedvirtual
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrollMode enum nameQwtAbstractSlider
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setMass(double val)QwtAbstractSlidervirtual
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setOrientation(Qt::Orientation o)QwtAbstractSlidervirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setStep(double)QwtDoubleRange
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
value() const QwtDoubleRange
valueChange()QwtAbstractSliderprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/class_qwt_plot_magnifier__inherit__graph.md50000644000175000017500000000004012052741141024346 0ustar gudjongudjonb23ab78090728c9eed84cf0d4cf554feqwt5-5.2.3/doc/html/inherit_graph_3.png0000644000175000017500000001103512052741161017242 0ustar gudjongudjon‰PNG  IHDR%X<Îv‹bKGD˙˙˙ ˝§“ŇIDATxśíť{PWűÇĎćHŃ\­ĺRîŚĹ:´*´…â XńZo­8#VűŽŘÚW©ŻĐÖß©€A±ţ¦V§ľµEýYFĄ­  Pą$Ü‚‚HHÎűÇúŰnI0<źż˛Ď9űěsŘ|çěnÎ~!0Ć‹Ŕî` zËzËzËÁî€!Ł  `ďŢ˝Ă]đ”ÄÄD??? Ď'G ‘‘‘ţţţĂ]€Č‘››k‡ůmTŃç9,Odddźq¸ËzËzËzËzËz‹TVVĆÄÄHĄR‡ăää×ÖÖf|…BammMʬ[·Ž ĽĽ<#}Śg0ÎíŰ·CBBĆŹogg7kÖ¬+W®źYˇP±hŃ"zcěčč8¨ÚLô6ć(--őőőĺńxůůů­­­yyyĺĺĺţţţJŽNgggnnn```ffćó(˛¸¸ř­·Ţ U*•555±±±aaa………ćgf±Xׯ_W©TTäÚµk»9€ŢĆ[·nŤŠŠJKKóôô´µµť>}úĹ‹E"QbbbPPPrr2BčÁA:t!ÔĐĐ@„——ד'O‚hjjBĺĺĺ9;;;věňĺËjµÚŕ …ÂÉÉ)%%E,KĄŇřřřžž˛éřńă@"‘|űí·dD.—Ďś9ÓĆĆĆŃŃ‘Ro\\Üž={6oŢ,‰ř|ţ† ¶mŰFNqmmmŃŃŃBˇĐŢŢ~÷îÝZ­–~čŢ­d1©©©vvv …‚Éd†††ž:uŠÚ%+++<<śÚě]Ź‘á  Ś""""""Ś÷Ńh4 Ł˘˘Â ž——çęęšśś‚1>sć ŹÇ &?Oť:µ´´ÔĘĘŠę˙ć›o~ţůçcźŁGŹ’AŞOii)ůµnllĽ{÷®››[RRRii)A[¶lŃh4ű÷ď—JĄä^K—.ýä“O?~śžž.‹1Ćííí Ł®®®Ď!,_ľ|ńâĹŤŤŤĺĺĺŢŢއ˘×Ög+‡ĂYłfM}}=ŮóÇś:u*Ůżłłs„ WŻ^Ą2ô®§Ďáv.@oهgŃ›R©$B«ŐÄ‹ŠŠěěěd2™ťťťV«Ý˛eËÇĚăńzzz6mÚ´k×.úwşŞŞŠËĺj4Śqjję믿NĆézC)•J2žťťíííMŐj5ĆX.—SŮJJJ:::´ZíÉ“'É`ee%A:ť®wý]]] ٞ˛’ÜĚËË#3“;ö׊R©TT…:ťnňäÉEEEdm , Ź®w=}Ç´sëąĆ"‘ ęęjgggzĽ®®N*•N™2…Ďç޸q#;;;;;»¨¨čÚµk_|ń˝sFFFWW—»»;BH«Ő¶´´Čd˛W_}•އÁ`P‡đôô¬­­Eq8ˇPH¶R=oÝşE„˝˝=dIT!$“É .\rrr"ÎÎÎdf’†††>[9ŽH$˘×uňäÉŁGŹfeeĹÄÄĐ+ď]OĂ1¸[đxĽyó楦¦R‘”””ŞŞŞÔÔÔ%K– „Ţ~űíóçĎ744xyyś;w®®®nÖ¬YTŚqFFĆ—_~Y\\\\\,—Ë322 ¤×ë˙üóOňłR©ś4iB nMMMk×®ýꫯ ©"gĎž}âÄ zϤ¤¤Ë—/KĄR„•ąŞŞŠĚLŇ_kďă®^˝úôéÓµµµżţúë˛eËŚ×ÓßpLÁř´Ś žĺzc,—ËÁ‡~¨P(?~śŔfłE"Qss3Ćřüůó\.wéŇĄăĚĚL.—»lŮ2ڱBˇ`±XÝÝÝżüň˸qă=zD%LOOź4iROOŹÁőäâĹ‹U*•\.÷ňň:pŕýšŤú¬R©‚(**jnnމ‰a±Xmmmă[·nŮŘŘěŰ·Ż¤¤¤ŞŞ*))‰Íf߼ycüî»ďŇďĐ 2oĄöőő \˝ző€őô9ÓÎčmôđŚzĂWTTDGGK$‡ăěěĽcÇź„„Śq{{;›Í>räƸ¦¦!”žžŽ1~ř𡧧§ťťÝ˘E‹–/_NĎÖÔÔÄb±._ľL×›••UjjŞX,Ž‹‹ëîîîď{żoß>ŹçââráÂ//Ż   2~ăĆŤ pąÜńăÇĎž=űĘ•+ÔáV¬X1qâÄ—^z)>>Ţ łńVúç´´4„ĐŐ«W¬§Ďáv.ŕý·Ńůiďătuu)ŠiÓ¦ I%dŞ®®®!É6ě0śţÎÜż!dmm=TbŚzËz†OOĎQs1‰†t8 7° 7°°ľdÓÚÚQQˇşwݱ˘B­TŞd2᫯6 wQ€1@oĎ‹;wŞNžĽą~ýÜiÓĚϦÓékjZîÝkT*U*ĄRĄT6¶´t „8–‹‹ČĹEĚău› ŕąb¨·łg϶¶¶K)#‹ &ôŮTVÖřýĎ?—1ng°zĂWW·TW7—•5”—7Üżß\^ŢĐŘŘŽb0{ű‰îîR_ßWÂĂ}ÜÝ%ŇńăÇ‘;FF^ެ¬üúëŻÍ`>•••+TIţ¦·K—.őç›PPPđÍ7ß«ŞÔź~úĂĄK0™ „Ƹ¤äń<]]ZJTĺĺŤ÷ď7˙ůgS{űc„­­•‹‹ŘÝ]2w®»ŔÝ]ęě,bł™ýĄňóó;{öěĆŤÍ0¬ZµŞwđoëKrssÉĄ:¬jDŇ{ő@cc{rňĺ3gn3„V«Łâ<žµBńOjSĄzXVV˙ţÓą«şşą®®µ§GO„ĂDww©»»ÔŃQ`0qُ3—ööÇ©©WÓÓŻaŚu:˝NgĐÚőĹżÔ×·)•ŤŞşş6Ś1“ɰ·źčâ" övv»şŠ]]%B!wFXĐ›étui˙ýďë˙ú×OÝÝÚîn]ÝNśČws“ş»Kßyç5rî’HĆ[˛NŕĹôf"MM6oĽńiCC»^Ż7ŇŤÉdÄLJĽ÷ŢL‹ĽČ€ŢL¤Şjü“'m,ӨܓÉP*UĆzc Đ›‰x{7­_/“ŐÉ嵿˙^×Üü!deĹÂÓŻ-»»{ĘĘꇯLŕĹÂÄő\憎t7OkëžE‹¦íŢýΩSďŢýź»wĎśyçÎŕwŢyÍĹEÄd!&“Á`0ĘʆöĐŔČĹ”ů­´´ôŤ7ŢX±bE~~ľ˝˝˝BˇŘ»wŻżżAAźĎ– ¤›ç222ŘlvnnnXXصk×|||L¨‡ĺć)‹ÉeÜ<îÜąsçz›]]Ú˛˛™¬¶¤äżżëó>:0b żěť““žÁŃdţüů|đ=˘×ëçĚ™łcÇŽŔŔ@ŇšŻ®®!tđŕAŚq}ýß.¨Ôju@@ŔáÇévíÚEzB´¶¶FEE ‚—_~ůŁŹ>2xľĎVGGÇcÇŽqąÜďľűÎĘĘjĺĘ•¤Éš5kÖ¬YCeÉd3f̰¶¶vppČČČŔ“Ž9"‰$ÉÎť;{ŰĹđěÎ@gĐz3ß0t»y€q­7ó CG±›'gĐĎK(ĂPxoĂĐ•+W …BŇ0488ęIąyŇw—Édéééýůu’ ÖÍ!Ô§›çś9süüü.\¸@ßeHÜ<Ŕ8Ö›ů†ˇŁŮÍŚbĘóÉ´´´ąsçbŚ7mÚäččŘŢŢîááÁçóOź>Ť މ‰ "" `óćÍ .dłŮä5¤V«%í  Fdd¤ŤŤÍąs粳łóó󭬬¶oßžžž®Ńh苬Ť·ŇńňňrrrŠŤŤ]˛dɸq­ú%çt‹ŐŇŇ’””¤Óé4 Ů´}űö'N¨Őę˝{÷FEE™đg€ˇ_\>ăóIlža(éă;*Ý<Ŕ8Cö>ÎІZ’!tóă Ůz.0 Ącđ{whčkĂ]đBë'‡†ććGryťLV÷Ç5ĹĹŐµµ­z=f0Śńţ#˝$ 7Ý<»şXß_,“Őýö[UIIC[[BÉdčőş ×ë1A xÚ <ôf"wď 7nĚ`±==˝  ÓľśĂfł<<¤–- xqżWy卽ýD„ařëťNďę*¶TQŔ‹Ěo&">ţé§üđĂďűöýŻZý°§GŹPĎuu:}||îńăůRé§0eĘd[[+Ë× ; 7Óa0E‹¦˝ý¶wNÎíO?ýľŁŁ›îĚE±kWHmmkE…ęöíŞĆF BÍf:8\]Ĺ..bWW±››ÄĹEĚç×čôf.l63*Ę?,ěő“'˙/%ĺGťNOż›Ď·eK µ©Őęë™7oŢőëׇ|€9Ě›7/??ź1ü—.]ęčč°hQ#“   #~ć\üé'9A+Wú%% Ú˛Z«ŐUVŞICXRŠŞŽŽ'!ĎĆÉIHŢRR´¶fçďďoîŔ€!˘  ŕłĎ>3Đ—áődHHKťxxH33ב˙ŻcŐ*?2°ŮL)ý‡­VW]Ý|ď^#őĎ:®_/×h:B66gg“Éóóó‹˛aćŃçşH¸{^řúľâëűĘPecł™..b—żý´ĐÔô´m®¨P]˝Ú9TÇž ·ŚPČ ą~~.ˇ„„žá.ř˝,č ,č ,čmlaŽ1vźF×Ďî~=XFşwź€ŢĆĄĄĄľľľ</??żµµ5//ŻĽĽÜßßß˙iÓŢfŇ;44T©TÖÔÔÄĆƆ……šź™rŕ¦"–qŕ&˝Ť!¶nÝ•––ćééikk;}úô‹/ŠD˘ÄÄÄ   ääd„Đ‚8tčB¨ˇˇ //Ż'OžŃÔÔÔ;'}ösrrJOO …R©4;;›ěĐŃŃńţűďK$’É“'ďÜął§§!$—ËgÎśiccăčč™™Iížššjgg§P(âââöěŮłyóf‘HÄçó7lذmŰ6rŠkkk‹ŽŽ …ööö»wďÖjµôzz·d&˝}Oť:Eí’••NmöW[JJŠX,–JĄńńńä(LaŘśS€!!”““c¤ůĆŘtŰ% z«ŤŤÍÖ­[5Íţýű'MšDvX»vmtt´Z­V*•3fĚ —\ôérMůdŹnÜŹűčm”0 ŢĚ7ĆPo!µZŤ1–Ëĺd°»»›Íf·µµ‘ťţůgÜżË5é“= ¸q?zëɱ‚ůĆŘÂáp„B!BÁxú˝ŞŻŻ×jµ|>ź ‚ ćĎź˙ţ}ÔŹË5ĺ“=ЏAoc󍱤÷›%‰„ÉdRóŰŁGŹîÜąÓźË5µű(vŕ†ő\c3Ť±É$ôGyÎŻçYYY…‡‡ÇĹĹ>|XŻ×Ż_żŢŮŮyĎž=¸—kŠQëŔ=ŕe(0"@Ýż‘cŚ}óćM/ĎŞU«úĽ»3ř—}ŃŃŃ@ ¬[·®łł÷ďrM/uD;pă~îß ßF(AäääĆĎbäc[ ¸Q?nĺp˙6ÖclKzËz€Â5k 7° 7° 7° 7°đűŰ( ooo‰D2pWŔ"/`ăţ“ŔĺŕÁżýöŰpWüĹ„ zŻ&ů ,Üż€ĺ˝€ĺ˝€ĺ˝€ĺř/»¨ákCCIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot-members.html0000644000175000017500000007017012052741141021046 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlot Member List

This is the complete list of members for QwtPlot, including all inherited members.

applyProperties(const QString &)QwtPlot
autoDelete() const QwtPlotDict
autoRefresh()QwtPlotslot
autoReplot() const QwtPlot
Axis enum nameQwtPlot
axisAutoScale(int axisId) const QwtPlot
axisCnt enum value (defined in QwtPlot)QwtPlot
axisEnabled(int axisId) const QwtPlot
axisFont(int axisId) const QwtPlot
axisMaxMajor(int axisId) const QwtPlot
axisMaxMinor(int axisId) const QwtPlot
axisScaleDiv(int axisId) const QwtPlot
axisScaleDiv(int axisId)QwtPlot
axisScaleDraw(int axisId) const QwtPlot
axisScaleDraw(int axisId)QwtPlot
axisScaleEngine(int axisId)QwtPlot
axisScaleEngine(int axisId) const QwtPlot
axisStepSize(int axisId) const QwtPlot
axisTitle(int axisId) const QwtPlot
axisValid(int axisId)QwtPlotprotectedstatic
axisWidget(int axisId) const QwtPlot
axisWidget(int axisId)QwtPlot
BottomLegend enum value (defined in QwtPlot)QwtPlot
canvas()QwtPlot
canvas() const QwtPlot
canvasBackground() const QwtPlot
canvasLineWidth() const QwtPlot
canvasMap(int axisId) const QwtPlotvirtual
clear()QwtPlotvirtualslot
detachItems(int rtti=QwtPlotItem::Rtti_PlotItem, bool autoDelete=true)QwtPlotDict
drawCanvas(QPainter *)QwtPlotvirtual
drawItems(QPainter *, const QRect &, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const QwtPlotprotectedvirtual
enableAxis(int axisId, bool tf=true)QwtPlot
event(QEvent *)QwtPlotvirtual
ExternalLegend enum value (defined in QwtPlot)QwtPlot
grabProperties() const QwtPlot
insertLegend(QwtLegend *, LegendPosition=QwtPlot::RightLegend, double ratio=-1.0)QwtPlot
invTransform(int axisId, int pos) const QwtPlot
itemList() const QwtPlotDict
LeftLegend enum value (defined in QwtPlot)QwtPlot
legend()QwtPlot
legend() const QwtPlot
legendChecked(QwtPlotItem *plotItem, bool on)QwtPlotsignal
legendClicked(QwtPlotItem *plotItem)QwtPlotsignal
legendItemChecked(bool)QwtPlotprotectedvirtualslot
legendItemClicked()QwtPlotprotectedvirtualslot
LegendPosition enum nameQwtPlot
margin() const QwtPlot
minimumSizeHint() const QwtPlotvirtual
plotLayout()QwtPlot
plotLayout() const QwtPlot
polish()QwtPlotvirtual
print(QPaintDevice &p, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const QwtPlot
print(QPainter *, const QRect &rect, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const QwtPlotvirtual
printCanvas(QPainter *, const QRect &boundingRect, const QRect &canvasRect, const QwtScaleMap maps[axisCnt], const QwtPlotPrintFilter &) const QwtPlotprotectedvirtual
printLegend(QPainter *, const QRect &) const QwtPlotprotectedvirtual
printLegendItem(QPainter *, const QWidget *, const QRect &) const QwtPlotprotectedvirtual
printScale(QPainter *, int axisId, int startDist, int endDist, int baseDist, const QRect &) const QwtPlotprotectedvirtual
printTitle(QPainter *, const QRect &) const QwtPlotprotectedvirtual
QwtPlot(QWidget *=NULL)QwtPlotexplicit
QwtPlot(const QwtText &title, QWidget *p=NULL)QwtPlotexplicit
QwtPlotDict()QwtPlotDictexplicit
replot()QwtPlotvirtualslot
resizeEvent(QResizeEvent *e)QwtPlotprotectedvirtual
RightLegend enum value (defined in QwtPlot)QwtPlot
setAutoDelete(bool)QwtPlotDict
setAutoReplot(bool tf=true)QwtPlot
setAxisAutoScale(int axisId)QwtPlot
setAxisFont(int axisId, const QFont &f)QwtPlot
setAxisLabelAlignment(int axisId, Qt::Alignment)QwtPlot
setAxisLabelRotation(int axisId, double rotation)QwtPlot
setAxisMaxMajor(int axisId, int maxMajor)QwtPlot
setAxisMaxMinor(int axisId, int maxMinor)QwtPlot
setAxisScale(int axisId, double min, double max, double step=0)QwtPlot
setAxisScaleDiv(int axisId, const QwtScaleDiv &)QwtPlot
setAxisScaleDraw(int axisId, QwtScaleDraw *)QwtPlot
setAxisScaleEngine(int axisId, QwtScaleEngine *)QwtPlot
setAxisTitle(int axisId, const QString &)QwtPlot
setAxisTitle(int axisId, const QwtText &)QwtPlot
setCanvasBackground(const QColor &c)QwtPlot
setCanvasLineWidth(int w)QwtPlot
setMargin(int margin)QwtPlot
setTitle(const QString &)QwtPlot
setTitle(const QwtText &t)QwtPlot
sizeHint() const QwtPlotvirtual
title() const QwtPlot
titleLabel()QwtPlot
titleLabel() const QwtPlot
TopLegend enum value (defined in QwtPlot)QwtPlot
transform(int axisId, double value) const QwtPlot
updateAxes()QwtPlot
updateLayout()QwtPlotvirtual
updateTabOrder()QwtPlotprotectedvirtual
xBottom enum value (defined in QwtPlot)QwtPlot
xTop enum value (defined in QwtPlot)QwtPlot
yLeft enum value (defined in QwtPlot)QwtPlot
yRight enum value (defined in QwtPlot)QwtPlot
~QwtPlot()QwtPlotvirtual
~QwtPlotDict()QwtPlotDict
qwt5-5.2.3/doc/html/inherit_graph_14.md50000644000175000017500000000004012052741151017216 0ustar gudjongudjonb1e81c99f3dcc01e32f6bdeddbe88fa6qwt5-5.2.3/doc/html/inherit_graph_27.md50000644000175000017500000000004012052741151017222 0ustar gudjongudjonf43c9e8bec9256ea87892be201a5feffqwt5-5.2.3/doc/html/qwt__plot__rasteritem_8h_source.html0000644000175000017500000002756312052741135022760 0ustar gudjongudjon Qwt User's Guide: qwt_plot_rasteritem.h Source File
Qwt User's Guide  5.2.3
qwt_plot_rasteritem.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_RASTERITEM_H
11 #define QWT_PLOT_RASTERITEM_H
12 
13 #include <qglobal.h>
14 #include <qstring.h>
15 #include <qimage.h>
16 
17 #include "qwt_plot_item.h"
18 
36 class QWT_EXPORT QwtPlotRasterItem: public QwtPlotItem
37 {
38 public:
57  {
58  NoCache,
59  PaintCache,
60  ScreenCache
61  };
62 
63  explicit QwtPlotRasterItem(const QString& title = QString::null);
64  explicit QwtPlotRasterItem(const QwtText& title);
65  virtual ~QwtPlotRasterItem();
66 
67  void setAlpha(int alpha);
68  int alpha() const;
69 
70  void setCachePolicy(CachePolicy);
71  CachePolicy cachePolicy() const;
72 
73  void invalidateCache();
74 
75  virtual void draw(QPainter *p,
76  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
77  const QRect &rect) const;
78 
79  virtual QSize rasterHint(const QwtDoubleRect &) const;
80 
81 protected:
82 
93  virtual QImage renderImage(const QwtScaleMap &xMap,
94  const QwtScaleMap &yMap, const QwtDoubleRect &area
95  ) const = 0;
96 
97 private:
99  QwtPlotRasterItem &operator=( const QwtPlotRasterItem & );
100 
101  void init();
102 
103  class PrivateData;
104  PrivateData *d_data;
105 };
106 
107 #endif
qwt5-5.2.3/doc/html/qwt__mathml__text__engine_8h_source.html0000644000175000017500000002250712052741135023546 0ustar gudjongudjon Qwt User's Guide: qwt_mathml_text_engine.h Source File
qwt_mathml_text_engine.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2003 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_MATHML_TEXT_ENGINE_H
13 #define QWT_MATHML_TEXT_ENGINE_H 1
14 
15 #if QT_VERSION >= 0x040000
16 
17 #include "qwt_text_engine.h"
18 
39 class QWT_EXPORT QwtMathMLTextEngine: public QwtTextEngine
40 {
41 public:
43  virtual ~QwtMathMLTextEngine();
44 
45  virtual int heightForWidth(const QFont &font, int flags,
46  const QString &text, int width) const;
47 
48  virtual QSize textSize(const QFont &font, int flags,
49  const QString &text) const;
50 
51  virtual void draw(QPainter *painter, const QRect &rect,
52  int flags, const QString &text) const;
53 
54  virtual bool mightRender(const QString &) const;
55 
56  virtual void textMargins(const QFont &, const QString &,
57  int &left, int &right, int &top, int &bottom) const;
58 };
59 
60 #endif // QT_VERSION >= 0x040000
61 
62 #endif
qwt5-5.2.3/doc/html/functions_func_0x67.html0000644000175000017500000001422312052741152020166 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- g -

qwt5-5.2.3/doc/html/class_qwt_plot_marker__inherit__graph.md50000644000175000017500000000004012052741141023666 0ustar gudjongudjon51beaa05fd1a372f9795de1b6f7a5e96qwt5-5.2.3/doc/html/functions_func_0x63.html0000644000175000017500000003157012052741152020166 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- c -

qwt5-5.2.3/doc/html/inherit_graph_5.map0000644000175000017500000000050012052741161017230 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__valuelist_8h_source.html0000644000175000017500000001365212052741135021406 0ustar gudjongudjon Qwt User's Guide: qwt_valuelist.h Source File
Qwt User's Guide  5.2.3
qwt_valuelist.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_VALUELIST_H
13 #define QWT_VALUELIST_H
14 
15 #include "qwt_global.h"
16 
21 #if QT_VERSION < 0x040000
22 
23 #include <qvaluelist.h>
24 
25 typedef QValueList<double> QwtValueList;
26 
27 #else // QT_VERSION >= 0x040000
28 
29 #include <qlist.h>
30 
31 typedef QList<double> QwtValueList;
32 
33 #endif
34 
35 #endif
qwt5-5.2.3/doc/html/functions_0x6b.html0000644000175000017500000001336412052741151017232 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- k -

qwt5-5.2.3/doc/html/class_qwt_compass_wind_arrow-members.html0000644000175000017500000001420712052741137023774 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCompassWindArrow Member List

This is the complete list of members for QwtCompassWindArrow, including all inherited members.

draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const QwtCompassWindArrowvirtual
drawKnob(QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)QwtDialNeedleprotectedstatic
drawStyle1Needle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)QwtCompassWindArrowstatic
drawStyle2Needle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)QwtCompassWindArrowstatic
palette() const QwtDialNeedle
QwtCompassWindArrow(Style, const QColor &light=Qt::white, const QColor &dark=Qt::gray)QwtCompassWindArrow
QwtDialNeedle()QwtDialNeedle
setPalette(const QPalette &)QwtDialNeedlevirtual
Style enum nameQwtCompassWindArrow
Style1 enum value (defined in QwtCompassWindArrow)QwtCompassWindArrow
Style2 enum value (defined in QwtCompassWindArrow)QwtCompassWindArrow
~QwtDialNeedle()QwtDialNeedlevirtual
qwt5-5.2.3/doc/html/class_qwt_polygon_f_data.html0000644000175000017500000003065612052741165021440 0ustar gudjongudjon Qwt User's Guide: QwtPolygonFData Class Reference
QwtPolygonFData Class Reference

#include <qwt_data.h>

Inheritance diagram for QwtPolygonFData:

List of all members.

Public Member Functions

 QwtPolygonFData (const QPolygonF &)
virtual QwtDatacopy () const
const QPolygonF & data () const
QwtPolygonFDataoperator= (const QwtPolygonFData &)
virtual size_t size () const
virtual double x (size_t i) const
virtual double y (size_t i) const
- Public Member Functions inherited from QwtData
 QwtData ()
virtual ~QwtData ()
virtual QwtDoubleRect boundingRect () const

Additional Inherited Members

- Protected Member Functions inherited from QwtData
QwtDataoperator= (const QwtData &)

Detailed Description

Data class containing a single QwtArray<QwtDoublePoint> object.


Constructor & Destructor Documentation

QwtPolygonFData::QwtPolygonFData ( const QPolygonF &  polygon)

Constructor

Parameters:
polygonPolygon data
See also:
QwtPlotCurve::setData()

Member Function Documentation

QwtData * QwtPolygonFData::copy ( ) const
virtual
Returns:
Pointer to a copy (virtual copy constructor)

Implements QwtData.

const QPolygonF & QwtPolygonFData::data ( ) const
Returns:
Point array
size_t QwtPolygonFData::size ( ) const
virtual
Returns:
Size of the data set

Implements QwtData.

double QwtPolygonFData::x ( size_t  i) const
virtual

Return the x value of data point i

Parameters:
iIndex
Returns:
x X value of data point i

Implements QwtData.

double QwtPolygonFData::y ( size_t  i) const
virtual

Return the y value of data point i

Parameters:
iIndex
Returns:
y Y value of data point i

Implements QwtData.

qwt5-5.2.3/doc/html/ftv2splitbar.png0000644000175000017500000000047212052741134016622 0ustar gudjongudjon‰PNG  IHDRM¸żIDATxíݡJCa‡ńç( ë%±Ř4 b±ČͶ3v^Á±…ăó–ŽELő…Ą•ł ,˙b;íç{ĂŹ/ĽđŢŔaYŐŻĺóřq:Ľşą›\ňIIIIIIIIIIIIIIIIII-Ňçlą›«ő揊˘č_t/Ď»ťăŁŃíYQVőđęäíă÷´×ůY¬Ú˙µ§¦ivókľ_íĺýŰŁI@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$ýC[Vě=ü[„fĆIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_37.png0000644000175000017500000001561012052741163017336 0ustar gudjongudjon‰PNG  IHDRC‹tťl=bKGD˙˙˙ ˝§“=IDATxśíÝ{TwÚ8đď@BM&¸č]. T~ľ‚V𥀆CŰăVYéaY@­Ő*čZW[NݲÚŐ˛ĘJTşţ^ßÖh), VĎn[/Ř® (]+&"W+r1·„$ĚűǸŮ4 ą`¸…çóWĚ÷™g2óä™’ †ă8LqNťŔ ’pPÉ8¨di˘ăáСCWŻ^ťč,€Ýđůü={öčOÁŕÚőt€aŘňĺËçĎź?щ;řńÇoŢĽiPąPÉÓ†aëׯźčD€ĆĹĹT.ś'ŕ ’pPÉ8¨dT2Ž*üGcccbb"›Ívqqáp8ÝÝÝć‡HĄRWWWâ†aoĽń†ţł8Ž{{{3Xn<›Ĺ&G!„0SĚŻ™•2PTTd}(3IÚT2xN"‘,]ş”FىĹâ®®®óçĎ×ŐŐ…††Z,f‰T^^ŢŮŮ©›RVVfýp;ĆÄqÇq‰DBˇPđ]ú±±±6EŕrąJĄrtK·T2x.%%%!!A(rąÜ™3g_ľ|ŮĂĂ#++‹Ďçggg#„ž}Šăxmm­•1m­äˇˇ!2™ÜÝÝMüyýúőÇ †źźßĄK—Śł2ĐÔÔd2ۡˇ!‰ÔŘŘH/..¶fGJÉ “• G×!„<<<0 {ôč‘ÁôÖÖV6›H§Ó«««+**âăă™LfMMMYY™@ 0ßÉÉ)!!áłĎ>C‰D˘ÄÄDýgoÝşľ|ůň’’ă\\\L&Äú6ikkS«Őt:ť¸vµrĺĘ––„ĐÂ… Z­Ž‰‰1büNÁápLfŰÖÖ6<věBĎç«TŞđđp„PTTT__qhíĺĺĺăăĂ`0ärą.TRRҵk× =<<>üđĂeË–­]»Ö××766Öäp“LĆD©TŞŮzŢyçóqňňň4 —Ë đôôRđ'NP©T??ż 6ÉdóÉŚ”’5Ł ™?·ŽYşâ5’ÁÁAâR°†H$joo'óxĽ±X \ń6suu]ĽxńDg1e”””ěŰ·OˇP´´´>|¸Ä0> ’°ˇP(“ÉćÍ›äííM\bp/ě†Íf_ĽxqB =G• €#€JŔ@%ŕŕŠ×tqíÚµüŞđHTŞa ZÂřą}ű¶ńD¨äiaůňĺůË_ěĂHĘĎ)”ĘĎ1̵ŁăS„†íj0î\lĐŃŃSZ*˝~]R^^§P ţâž+WňV®ä­XáK"A[žHPÉŔ‚ţ~Őőë’ŠŠşŠŠş––gîînŃŃŃѡˇ>L欉Î<• L{ř°ăŰoď•—×UU5©TšE‹ćčĺě íwŇJ˙1Rű óa0 ýNjPÉŐŐµ_ąR«kż!!śW_ ÷ö;…@%OSĐ~ Tňô˘ß~‡†4ÁÁĐ~T˛ăëëS•–ţ§ýŇén|>´_G•ě°îŢý±˘˘®ĽĽ®˛˛Q­ÖBűulPÉĹ ýzzR_}őĄđpż+|çĚ™9ŃŮ1•ě ý¨ä©J×~ËËë=‚ö;ÝA%O1#µß—^šçädĂ‹•<ôö*Ĺb©®ý˛X´čč@hż@TňäíX*ylőö*©T~ĎÚ/¨ä±˘P(÷»ż^şôýéÓŁŁÍĎL´ßoż­­©iA…†úĽňŠ´_`=¸gȨ¬lܲĺŚLÖ‹ăčň噬d]ű-+{đăŹr˘ýľýö+˙ýßľłgCű¶žlgCCšŹ>şôż˙["^[w÷µµt­Ú/ PÉö$‘<ٲĺó¦&™Vű“›Zmö¬OŻýşGG„‡űAűö•l8Ž˙Ď˙T|ôŃEGeL&;ĎAV(”?[ą’Ĺ[ştÜő Řś'ŰAG‡"5őěwßŐ›|[T«µ?˙ůś˛˛ß±Xîăź& ’_Ô•+µiiçúúTfŽnššdd2ĽÔ` Á1Ţč©ŐÚ¬¬Ż’“˙żB1¨ŃX¸ŰsEEÝřd¦§ź4 ©TÖŐŐ5QŮL-$ĂĂă7čů5jÇq„0„†™xĽvíţš5˙5Ţ)ZQ^^>ŃY€EDDĹbkćüI%ß˝{·«««°°pL’rDuuÝJĺ°R©U*5JĄV©Ôjµ7oŢöő $‘fôö*űű‡TtşŰD'kByyyFF†ń€ÉŕĆŤGʵrf'ożúŐŻěšĎt„aŘÎťo­_ż~˘±lůňĺ°Ĺ''›ţŻçÉ8¨dT2Ž*G• €#e%766&&&˛Ůl‡“‘‘ŃÝÝm~T*uu}ţť{Ěë—® %•JŤăŮ´.ú‰Ť›žž/ľ¸ąvmnbâ©ááÉţŃ÷ŮÜŰÉdĆĆĆ>yňYzĺ-nŘ‹ôŤ¦’%ÉŇĄKi4šX,îęę:ţ|]]]hh¨Ĺ­«ă8Žă‰„Bˇŕ˙6ŠLBú±±±6EŕrąJĄrtK·ŐŕŕĐĹ‹5 §^z)ó˝÷ oÝjĽzőľÁ7.&›ßÜúŰčîÝ»®®®›7o¶8Ęâv™¶{‘I٩䔔”„„ˇPČĺrgÎś|ůňeʬ¬,>źźťťŤzňä †a‡Bµ··cĆăńT*†a2™ĚLđţţţ­[·˛X,//ŻÝ»wk4šĽĽĽ%K–h4„ĐÎť;ů|ľĹPR©”Ăáś:uŠÉd˛Ůěüü|bzooorr2Áŕp8gĎžŐ˝%ëeś’­ŻŘŔŔĐ_˙Z•đ˙}))gËĘ$ZíđđđÔřš}7÷Ď~öł;vTVV,Ą¶¶öĺ—_ž1c†··÷™3gŰĹ ‡Ü‹Ěłą’ …X,NKKÓźaXzzúW_}%JKKB4­¬¬ !TVV¤{ďd2™fâ§ĄĄ ÔÖÖ–————— …Â-[¶Đéôěě쪪ŞÂÂÂÂÂBkBuvvŢ˝{·±±155u×®]ÄÄ;vČĺňű÷ď_˝z5''ÇĘQĆ)YůZ©ŐÚ+Wj7oţ, ŕýŚŚüŠŠ:ŤF«ŐkµSˇ‚Bc°ąŰÚÚţüç?/Y˛Ä`A|đÁkŻ˝ÖŐŐ•™™ą{÷ngMn3i/˛ŇOľź\XXgľS444řúú ‘H?ů|Ř÷ß˙Ę+ŻÜ¸q#44T.—§§§ÓéôÜÜ\ą\žššJŁŃ’““/^¬"•J ¦¨Őę™3g>}úÔÝÝ!TZZúŢ{ďUUU566.[¶ŚÁ`üéOzýő×uĄR)ŹÇ3Ȱ©©I©TňxĽ§Oź2™Ěű÷ď/Y˛D©TŞŐj77·şşş  „JJJŢzë-"~4ăQ&S2˙˛:;»ľőÖG߯čęęwvv2üüńDZőK‰‰á_~ů…™Ď˘˝řć6ŘFT*522ňĉóćÍÓß$‰···‹‹Ëąsç¶lŮbq»č:đ^dM=ęŘüU; Ă=z´páBýé­­­l6;00N§WWWWTTäççççç×ÔÔ”••ť8qšŕmmmjµšN§ë/!´páB@đÝwßĹÄÄ ˇP(Ćç'R©ÔĹĹ…xŻurrŇćp8ğĖ0`r”É”Ěsvv/-m#[< Ţ»×¶‹+vea°Ëć6ąŤ Üşu+!!ðůóç?kĽ]Ěp˝Č&6W2ŤF‹ČÍÍŐ}¶űČ‘#oľůfnnîš5kB«WŻľpáB{{;ŹÇ‹ŚŚ,**jmm khh°śĹb9;;?{öŚxëęďď'ÎaŞ««Ĺb1›ÍÎÍÍ58҉ńeL‹…jnn&^ý¦¦&+G™LÉ<µşsĎž˙§Ń° Ş?–“ÉÎjµv¤™[Z˛Édg‹1dž™88Ô7¦›[G&“mÚ´éÖ­[!!!÷îÝűűß˙n”§ Ąf/˛Éhę„BˇH$JOOđŕR©T(ţţţwîÜŮ»w/BH ś@€ňňňňńńa0rąÜLđĽĽ<ŤFĂĺr<==<™™éďďżnÝşE‹m۶móćÍúˇËŹúŇÓÓG ~âÄ *•ęççłaĂ2™lÍú§dÓË4?+ëÍý룒’Ô¸¸enn.†¦ĐO(Žéć&xxx|řá‡Ë–-[»v­ŻŻŻ­˙2ŕx{‘eú˙C+((0b˝ÁÁÁšššŃŤ7"‘¨˝˝ťx\\\ĚăńĆhAˇ‚‚“Oőö*‹ŠŞâăóćĎß9wnĆÜąéCCš1JĂ"3yš7%6÷·˝Č¦z´ŰÍĄ\]]/^lŻhc¤¤¤¤´´ôčŃŁ]]]‡&ÎôĆ٬Y”uëBÖ­ ‘Ëű/]úŢŐ•eOĎŕ˛e Y,ÚDç–‰oPđůü Lh Áq¬­mîđ°łVë¤Ő:kµÎ8î¬Ő: ›8ŇYµ*@$˛üĄÜq†aآE‹O ‚É¦ŁŁă‡~ŔGń Ščččäääţţţ±IĚŃ »»gă¸Éë=˙= ‚‹ Éßź=n‰YďŹüăíŰ·': `ÚěŮłýë_[93üęę ‘JŰŢyç3ăL6V\śúňË ÍĎŔ¨ÁŻÂĺνrewRŇ ĂśśFü$ý¬Y”Î8ć¦çýű÷OtS‰ä´r%/8Řűúu‰Z­5ľ˝žłłÓüůspŃénłgĎś$ĂŁk»‘ÉúŇŇľ‹Ą/©“Ě©ŻďěęęçpQQܨ(ŢŠ>3f¸LTŞŔń@%ŰŽăçÎÝüŕ ĂĂĂ˙ţEeĂśjj~ďéImiyvĺJí•+µ7o6 ă^ŃŃŃыͳé›ôJ¶żşşöwŢůĽľľ8Ňćrç^żţžţ Cß}÷đĘ•Úë×%Ožt3™łBC}řü€W_ twźŚ?Î &?¨ä1100´ÉŮł70 mßľjßľ×Gš5° ¨ä1ôő×?ś9óϬ¬7ń O‹34jcVX4j`-¨äÉȸQ‡‡űEG,]ş50 *yRş}»ůŰokżţú‡ÖÖ.hÔ`$PÉSĆHŤ:$d™Ą€i*yę©QGGŇéШ§)¨ä©MרoÝjÔj‡ˇQO[PÉbpp¨şőô•쀠QOCPÉŽLרżůć‡ÇŹ»ćĚ™ąb…ox¸ß«ŻľäéIťčě€=A%O--Ď**ę®\©-+{ Ńh_zi4jG•<í@ŁvHPÉÓ4j‡• ąQGGÂ-A§¨d`ČdŁ~ĺżĐP n5IA%éő·ßŢűńG94ęÉ *Xő$• ĐíŰ·­żëµR©­ŻďŻŻď«ŻďëëÓR©$_ßYŻ˝Ćvv†+dölýüPÉÍš5kt?W@&{R(iNw÷×vĎjš›5kVooŻőóC%„aXAAÁúőë':đń»N6Ő&śáŕ ’pPÉ8¨dT2Ž*X«±±111‘Íf»¸¸p8śŚŚŚîînóC¤R©««+ńÓCĄRů|ţôç1ÁfŠőë2Rb„˘˘"ëCY\…ń• ¬"‘H–.]JŁŃÄbqWW×ůóçëęęBCC-ł…BÁ˙íŃŁG7nDqą\ĄRik>D‰D˘ÖÖ Ć‰bccmŠ0şU°/¨d`•”””„„ˇPČĺrgÎś|ůňeʬ¬,>źźťťŤzňä †a‡Bµ··cĆăńT*†a2™L?ÚěŮł“’’$ úiCëííݸq#“ÉdłŮ™™™şůóňň ‹Ĺ:wîśĹTűűű·nÝĘb±ĽĽĽvďŢ­Ńhňňň–,Y˘ŃhB;wîäóů#%¦#•J9ΩS§dňóóu&''3 ‡söěY]c×=09Ę8%›^|k@%Ë …X,NKKÓźaXzzúW_}%JKKB4­¬¬ !TVV¤ë™L&Slww÷çźľjŐ*íرC.—K$±Xüůçź#„†††îÝ»×ÔÔ´cÇŽßţö·łMKK¨­­-///// …[¶lˇÓéŮŮŮUUU………………#%¦ŻłłóîÝ»ŤŤŤ©©©»víŇĎđţýűWŻ^ÍÉɱr”qJ×Âf8öBff¨ŻŻÇ0L­VLŻ©©ˇR©÷îÝŁR©jµzűöíďż˙>ŤFÓh4ďľűîž={tC´_}4­ľľ×;B"‘H DđüăŐŐŐÄŔ§Oźâ8^[[kp$lptM!“ÉÝÝÝğׯ_ ÁqĽˇˇÁ`řůů]ştI qbˇ¦¦&“Ë%2lll$‚ë‚čG3e2%3 l­MčÉŔ2 Ă=zd0˝µµ•ÍfŇéôęęꊊŠřřx&“YSSSVV&ôgÖ/ąţţţäää·ß~[†¶¶¶ááá ®X±‚ř ‹‹ Ń9ťś,ď®mmmjµšN§×®V®\ŮŇŇ‚Z¸pˇ@ P«Ő111CŚĎ“9ŽÉĺĎ"„t©ę39ĘdJö• ,ŁŃhąąąş)GŽijjĘÍÍ]łf BhőęŐ.\hooçńx‘‘‘EEE­­­aaa#tss۸qcUU•ţD‹…züř1ńçßţö·’’„MĄY,–łłł®öőőK©®®‹Ĺ C-Ě3^.‘ass3ńgSS“•ŁL¦d_PÉŔ*BˇP$Ą§§?xđ@©T* ˙;wîěÝ»!$Nž<†aXddäńăÇW­ZE&“1 ÓjµjµÚ8 ››Űŕŕ ţµ …˛víÚ]»vÉd˛‡¦¤¤hµZ[ó¤P(±±±2™¬łł3>>>''GĄR%%%ĺääś>}z˙ţýÍÍÍf3<...--­ŁŁŁˇˇáŔÖĽËLÉÖő˛*X%  ˛˛R.—GDD¸»»‹D˘ÔÔTooďcÇŽ!„ř|ľJĄ GEEEőőő‡Ö^^^>>> C.—dłŮ†ť?^â§ź~J"‘üüü"""6lذnÝşQ¤š——§Ńh¸\n@@€§§çÁ333ýýý×­[·hѢm۶mŢĽY?1â"¶ľôôô‘‚ź8q‚JĄúůůĹÄÄlذL&Ź.ĄQ¬—6ťU‡„,]ńÉŕŕ`MMŤÝó™ĚD"Q{{;ń¸¸¸ÇăŤĹRŕŠW®®®‹/žč,ĆUIIÉľ}ű EKKËáljË“T26 …2™lŢĽyAAAŢŢŢÄe‚É€4Ń 0•°Ůě‹/Nt&@OŔ@%ŕ ’pPÉ8¨dÜďŚţÎő`ěŘzçzř/@7nÜJĄťř .—kÓüĐ“ppž €#€JŔ@%ŕ ’p˙ĘĎg+ D_IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_text_label__inherit__graph.md50000644000175000017500000000004012052741143023474 0ustar gudjongudjond6a17ec62688b747e9b52a292e3517cfqwt5-5.2.3/doc/html/class_qwt_double_interval.html0000644000175000017500000011156312052741137021625 0ustar gudjongudjon Qwt User's Guide: QwtDoubleInterval Class Reference
QwtDoubleInterval Class Reference

#include <qwt_double_interval.h>

List of all members.

Public Types

enum  BorderMode {
  IncludeBorders = 0,
  ExcludeMinimum = 1,
  ExcludeMaximum = 2,
  ExcludeBorders = ExcludeMinimum | ExcludeMaximum
}

Public Member Functions

 QwtDoubleInterval ()
 QwtDoubleInterval (double minValue, double maxValue, int borderFlags=IncludeBorders)
int borderFlags () const
bool contains (double value) const
QwtDoubleInterval extend (double value) const
QwtDoubleInterval intersect (const QwtDoubleInterval &) const
bool intersects (const QwtDoubleInterval &) const
void invalidate ()
QwtDoubleInterval inverted () const
bool isNull () const
bool isValid () const
QwtDoubleInterval limited (double minValue, double maxValue) const
double maxValue () const
double minValue () const
QwtDoubleInterval normalized () const
int operator!= (const QwtDoubleInterval &) const
QwtDoubleInterval operator& (const QwtDoubleInterval &) const
QwtDoubleIntervaloperator&= (const QwtDoubleInterval &)
int operator== (const QwtDoubleInterval &) const
QwtDoubleInterval operator| (const QwtDoubleInterval &) const
QwtDoubleInterval operator| (double) const
QwtDoubleIntervaloperator|= (const QwtDoubleInterval &)
QwtDoubleIntervaloperator|= (double)
void setBorderFlags (int)
void setInterval (double minValue, double maxValue, int borderFlags=IncludeBorders)
void setMaxValue (double)
void setMinValue (double)
QwtDoubleInterval symmetrize (double value) const
QwtDoubleInterval unite (const QwtDoubleInterval &) const
double width () const

Detailed Description

A class representing an interval.

The interval is represented by 2 doubles, the lower and the upper limit.


Member Enumeration Documentation

Flag indicating if a border is included/excluded from an interval

  • IncludeBorders
    min/max values are inside the interval
  • ExcludeMinimum
    min value is not included in the interval
  • ExcludeMaximum
    max value is not included in the interval
  • ExcludeBorders
    min/max values are not included in the interval
See also:
setBorderMode(), testBorderMode()

Constructor & Destructor Documentation

QwtDoubleInterval::QwtDoubleInterval ( )
inline

Default Constructor.

Creates an invalid interval [0.0, -1.0]

See also:
setInterval(), isValid()
QwtDoubleInterval::QwtDoubleInterval ( double  minValue,
double  maxValue,
int  borderFlags = IncludeBorders 
)
inline

Constructor

Build an interval with from min/max values

Parameters:
minValueMinimum value
maxValueMaximum value
borderFlagsInclude/Exclude borders

Member Function Documentation

int QwtDoubleInterval::borderFlags ( ) const
inline
Returns:
Border flags
See also:
setBorderFlags()
bool QwtDoubleInterval::contains ( double  value) const

Test if a value is inside an interval

Parameters:
valueValue
Returns:
true, if value >= minValue() && value <= maxValue()
QwtDoubleInterval QwtDoubleInterval::extend ( double  value) const

Extend the interval

If value is below minValue, value becomes the lower limit. If value is above maxValue, value becomes the upper limit.

extend has no effect for invalid intervals

Parameters:
valueValue
See also:
isValid()
bool QwtDoubleInterval::intersects ( const QwtDoubleInterval other) const

Test if two intervals overlap

void QwtDoubleInterval::invalidate ( )
inline

Invalidate the interval

The limits are set to interval [0.0, -1.0]

See also:
isValid()
QwtDoubleInterval QwtDoubleInterval::inverted ( ) const

Invert the limits of the interval

Returns:
Inverted interval
See also:
normalized()
bool QwtDoubleInterval::isNull ( ) const
inline
Returns:
true, if isValid() && (minValue() >= maxValue())
bool QwtDoubleInterval::isValid ( ) const
inline

A interval is valid when minValue() <= maxValue(). In case of QwtDoubleInterval::ExcludeBorders it is true when minValue() < maxValue()

QwtDoubleInterval QwtDoubleInterval::limited ( double  lowerBound,
double  upperBound 
) const

Limit the interval, keeping the border modes

Parameters:
lowerBoundLower limit
upperBoundUpper limit
Returns:
Limited interval
double QwtDoubleInterval::maxValue ( ) const
inline
Returns:
Upper limit of the interval
double QwtDoubleInterval::minValue ( ) const
inline
Returns:
Lower limit of the interval
QwtDoubleInterval QwtDoubleInterval::normalized ( ) const

Normalize the limits of the interval.

If maxValue() < minValue() the limits will be inverted.

Returns:
Normalized interval
See also:
isValid(), inverted()
QwtDoubleInterval QwtDoubleInterval::operator& ( const QwtDoubleInterval interval) const
inline

Intersection of two intervals

See also:
intersect()
QwtDoubleInterval QwtDoubleInterval::operator| ( const QwtDoubleInterval interval) const
inline

Union of two intervals

See also:
unite()
QwtDoubleInterval QwtDoubleInterval::operator| ( double  value) const
inline

Extend an interval

See also:
extend()
void QwtDoubleInterval::setBorderFlags ( int  borderFlags)
inline

Change the border flags

Parameters:
borderFlagsOr'd BorderMode flags
See also:
borderFlags()
void QwtDoubleInterval::setInterval ( double  minValue,
double  maxValue,
int  borderFlags = IncludeBorders 
)
inline

Assign the limits of the interval

Parameters:
minValueMinimum value
maxValueMaximum value
borderFlagsInclude/Exclude borders
void QwtDoubleInterval::setMaxValue ( double  maxValue)
inline

Assign the upper limit of the interval

Parameters:
maxValueMaximum value
void QwtDoubleInterval::setMinValue ( double  minValue)
inline

Assign the lower limit of the interval

Parameters:
minValueMinimum value
QwtDoubleInterval QwtDoubleInterval::symmetrize ( double  value) const

Adjust the limit that is closer to value, so that value becomes the center of the interval.

Parameters:
valueCenter
Returns:
Interval with value as center
double QwtDoubleInterval::width ( ) const
inline

Return the width of an interval The width of invalid intervals is 0.0, otherwise the result is maxValue() - minValue().

See also:
isValid()
qwt5-5.2.3/doc/html/class_qwt_metrics_map.html0000644000175000017500000003321012052741140020734 0ustar gudjongudjon Qwt User's Guide: QwtMetricsMap Class Reference

#include <qwt_layout_metrics.h>

List of all members.

Public Member Functions

QPoint deviceToLayout (const QPoint &, const QPainter *=NULL) const
QSize deviceToLayout (const QSize &) const
QRect deviceToLayout (const QRect &, const QPainter *=NULL) const
QwtPolygon deviceToLayout (const QwtPolygon &, const QPainter *=NULL) const
int deviceToLayoutX (int x) const
int deviceToLayoutY (int y) const
bool isIdentity () const
QPoint layoutToDevice (const QPoint &, const QPainter *=NULL) const
QSize layoutToDevice (const QSize &) const
QRect layoutToDevice (const QRect &, const QPainter *=NULL) const
QwtPolygon layoutToDevice (const QwtPolygon &, const QPainter *=NULL) const
int layoutToDeviceX (int x) const
int layoutToDeviceY (int y) const
QPoint layoutToScreen (const QPoint &point) const
QSize layoutToScreen (const QSize &) const
QRect layoutToScreen (const QRect &) const
int layoutToScreenX (int x) const
int layoutToScreenY (int y) const
QPoint screenToLayout (const QPoint &) const
QSize screenToLayout (const QSize &) const
QRect screenToLayout (const QRect &) const
int screenToLayoutX (int x) const
int screenToLayoutY (int y) const
void setMetrics (const QPaintDevice *layoutMetrics, const QPaintDevice *deviceMetrics)

Static Public Member Functions

static QwtPolygon translate (const QMatrix &, const QwtPolygon &)
static QRect translate (const QMatrix &, const QRect &)

Detailed Description

A Map to translate between layout, screen and paint device metrics.

Qt3 supports painting in integer coordinates only. Therefore it is not possible to scale the layout in screen coordinates to layouts in higher resolutions ( f.e printing ) without losing the higher precision. QwtMetricsMap is used to incorporate the various widget attributes ( always in screen resolution ) into the layout/printing code of QwtPlot.

Qt4 is able to paint floating point based coordinates, what makes it possible always to render in screen coordinates ( with a common scale factor ). QwtMetricsMap will be obsolete as soon as Qt3 support has been dropped ( Qwt 6.x ).


Member Function Documentation

QwtPolygon QwtMetricsMap::translate ( const QMatrix &  m,
const QwtPolygon &  pa 
)
static

Wrapper for QMatrix::map.

Parameters:
mMatrix
paPolygon to translate
Returns:
Translated polygon
QRect QwtMetricsMap::translate ( const QMatrix &  m,
const QRect &  rect 
)
static

Wrapper for QMatrix::mapRect.

Parameters:
mMatrix
rectRectangle to translate
Returns:
Translated rectangle
qwt5-5.2.3/doc/html/inherit_graph_34.map0000644000175000017500000000023712052741163017323 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial__inherit__graph.map0000644000175000017500000000110412052741154022356 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_32.md50000644000175000017500000000004012052741151017216 0ustar gudjongudjona96ca24dbe1dc20b230bd26a2ba43ab7qwt5-5.2.3/doc/html/class_qwt_spline_curve_fitter__inherit__graph.md50000644000175000017500000000004012052741143025424 0ustar gudjongudjon32d4e9e682603863dbe38e80db8f3a0aqwt5-5.2.3/doc/html/qwt__abstract__scale__draw_8h_source.html0000644000175000017500000004314612052741134023663 0ustar gudjongudjon Qwt User's Guide: qwt_abstract_scale_draw.h Source File
Qwt User's Guide  5.2.3
qwt_abstract_scale_draw.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ABSTRACT_SCALE_DRAW_H
11 #define QWT_ABSTRACT_SCALE_DRAW_H
12 
13 #include "qwt_global.h"
14 #include "qwt_scale_div.h"
15 #include "qwt_text.h"
16 
17 
18 #if QT_VERSION < 0x040000
19 class QColorGroup;
20 #else
21 class QPalette;
22 #endif
23 class QPainter;
24 class QFont;
26 class QwtScaleMap;
27 
37 class QWT_EXPORT QwtAbstractScaleDraw
38 {
39 public:
40 
52  {
53  Backbone = 1,
54  Ticks = 2,
55  Labels = 4
56  };
57 
60  virtual ~QwtAbstractScaleDraw();
61 
62  QwtAbstractScaleDraw &operator=(const QwtAbstractScaleDraw &);
63 
64  void setScaleDiv(const QwtScaleDiv &s);
65  const QwtScaleDiv& scaleDiv() const;
66 
67  void setTransformation(QwtScaleTransformation *);
68  const QwtScaleMap &map() const;
69 
70  void enableComponent(ScaleComponent, bool enable = true);
71  bool hasComponent(ScaleComponent) const;
72 
73  void setTickLength(QwtScaleDiv::TickType, int length);
74  int tickLength(QwtScaleDiv::TickType) const;
75  int majTickLength() const;
76 
77  void setSpacing(int margin);
78  int spacing() const;
79 
80 #if QT_VERSION < 0x040000
81  virtual void draw(QPainter *, const QColorGroup &) const;
82 #else
83  virtual void draw(QPainter *, const QPalette &) const;
84 #endif
85 
86  virtual QwtText label(double) const;
87 
97  virtual int extent(const QPen &, const QFont &) const = 0;
98 
99  void setMinimumExtent(int);
100  int minimumExtent() const;
101 
102  QwtScaleMap &scaleMap();
103 
104 protected:
114  virtual void drawTick(QPainter *painter, double value, int len) const = 0;
115 
122  virtual void drawBackbone(QPainter *painter) const = 0;
123 
132  virtual void drawLabel(QPainter *painter, double value) const = 0;
133 
134  void invalidateCache();
135  const QwtText &tickLabel(const QFont &, double value) const;
136 
137 private:
138  int operator==(const QwtAbstractScaleDraw &) const;
139  int operator!=(const QwtAbstractScaleDraw &) const;
140 
141  class PrivateData;
142  PrivateData *d_data;
143 };
144 
145 #endif
qwt5-5.2.3/doc/html/class_qwt_plot_scale_item-members.html0000644000175000017500000005200212052741142023226 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotScaleItem Member List

This is the complete list of members for QwtPlotScaleItem, including all inherited members.

attach(QwtPlot *plot)QwtPlotItem
AutoScale enum value (defined in QwtPlotItem)QwtPlotItem
borderDistance() const QwtPlotScaleItem
boundingRect() const QwtPlotItemvirtual
detach()QwtPlotIteminline
draw(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const QwtPlotScaleItemvirtual
font() const QwtPlotScaleItem
hide()QwtPlotItem
invTransform(const QwtScaleMap &, const QwtScaleMap &, const QRect &) const QwtPlotItem
isScaleDivFromAxis() const QwtPlotScaleItem
isVisible() const QwtPlotItem
ItemAttribute enum nameQwtPlotItem
itemChanged()QwtPlotItemvirtual
Legend enum value (defined in QwtPlotItem)QwtPlotItem
legendItem() const QwtPlotItemvirtual
paintRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
palette() const QwtPlotScaleItem
plot() const QwtPlotItem
position() const QwtPlotScaleItem
QwtLegendItemManager()QwtLegendItemManagerinline
QwtPlotItem(const QwtText &title=QwtText())QwtPlotItemexplicit
QwtPlotScaleItem(QwtScaleDraw::Alignment=QwtScaleDraw::BottomScale, const double pos=0.0)QwtPlotScaleItemexplicit
RenderAntialiased enum value (defined in QwtPlotItem)QwtPlotItem
RenderHint enum nameQwtPlotItem
rtti() const QwtPlotScaleItemvirtual
Rtti_PlotCurve enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotGrid enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotHistogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotItem enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotMarker enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotScale enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSpectrogram enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotSVG enum value (defined in QwtPlotItem)QwtPlotItem
Rtti_PlotUserItem enum value (defined in QwtPlotItem)QwtPlotItem
RttiValues enum nameQwtPlotItem
scaleDiv() const QwtPlotScaleItem
scaleDraw() const QwtPlotScaleItem
scaleDraw()QwtPlotScaleItem
scaleRect(const QwtScaleMap &, const QwtScaleMap &) const QwtPlotItem
setAlignment(QwtScaleDraw::Alignment)QwtPlotScaleItem
setAxis(int xAxis, int yAxis)QwtPlotItem
setBorderDistance(int numPixels)QwtPlotScaleItem
setFont(const QFont &)QwtPlotScaleItem
setItemAttribute(ItemAttribute, bool on=true)QwtPlotItem
setPalette(const QPalette &)QwtPlotScaleItem
setPosition(double pos)QwtPlotScaleItem
setRenderHint(RenderHint, bool on=true)QwtPlotItem
setScaleDiv(const QwtScaleDiv &)QwtPlotScaleItem
setScaleDivFromAxis(bool on)QwtPlotScaleItem
setScaleDraw(QwtScaleDraw *)QwtPlotScaleItem
setTitle(const QString &title)QwtPlotItem
setTitle(const QwtText &title)QwtPlotItem
setVisible(bool)QwtPlotItemvirtual
setXAxis(int axis)QwtPlotItem
setYAxis(int axis)QwtPlotItem
setZ(double z)QwtPlotItem
show()QwtPlotItem
testItemAttribute(ItemAttribute) const QwtPlotItem
testRenderHint(RenderHint) const QwtPlotItem
title() const QwtPlotItem
transform(const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const QwtPlotItem
updateLegend(QwtLegend *) const QwtPlotItemvirtual
updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)QwtPlotScaleItemvirtual
xAxis() const QwtPlotItem
yAxis() const QwtPlotItem
z() const QwtPlotItem
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
~QwtPlotItem()QwtPlotItemvirtual
~QwtPlotScaleItem()QwtPlotScaleItemvirtual
qwt5-5.2.3/doc/html/class_qwt_rich_text_engine__inherit__graph.map0000644000175000017500000000026412052741160024766 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_func_0x72.html0000644000175000017500000002522312052741152020164 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- r -

qwt5-5.2.3/doc/html/class_qwt_plot_magnifier-members.html0000644000175000017500000003035712052741141023072 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotMagnifier Member List

This is the complete list of members for QwtPlotMagnifier, including all inherited members.

canvas()QwtPlotMagnifier
canvas() const QwtPlotMagnifier
eventFilter(QObject *, QEvent *)QwtMagnifiervirtual
getMouseButton(int &button, int &buttonState) const QwtMagnifier
getZoomInKey(int &key, int &modifiers) const QwtMagnifier
getZoomOutKey(int &key, int &modifiers) const QwtMagnifier
isAxisEnabled(int axis) const QwtPlotMagnifier
isEnabled() const QwtMagnifier
keyFactor() const QwtMagnifier
mouseFactor() const QwtMagnifier
parentWidget()QwtMagnifier
parentWidget() const QwtMagnifier
plot()QwtPlotMagnifier
plot() const QwtPlotMagnifier
QwtMagnifier(QWidget *)QwtMagnifierexplicit
QwtPlotMagnifier(QwtPlotCanvas *)QwtPlotMagnifierexplicit
rescale(double factor)QwtPlotMagnifierprotectedvirtual
setAxisEnabled(int axis, bool on)QwtPlotMagnifier
setEnabled(bool)QwtMagnifier
setKeyFactor(double)QwtMagnifier
setMouseButton(int button, int buttonState=Qt::NoButton)QwtMagnifier
setMouseFactor(double)QwtMagnifier
setWheelButtonState(int buttonState)QwtMagnifier
setWheelFactor(double)QwtMagnifier
setZoomInKey(int key, int modifiers)QwtMagnifier
setZoomOutKey(int key, int modifiers)QwtMagnifier
wheelButtonState() const QwtMagnifier
wheelFactor() const QwtMagnifier
widgetKeyPressEvent(QKeyEvent *)QwtMagnifierprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtMagnifierprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetWheelEvent(QWheelEvent *)QwtMagnifierprotectedvirtual
~QwtMagnifier()QwtMagnifiervirtual
~QwtPlotMagnifier()QwtPlotMagnifiervirtual
qwt5-5.2.3/doc/html/inherit_graph_15.md50000644000175000017500000000004012052741151017217 0ustar gudjongudjonc9abc9fbd6750784e6f17632577efaf4qwt5-5.2.3/doc/html/class_qwt_thermo.html0000644000175000017500000015370212052741165017747 0ustar gudjongudjon Qwt User's Guide: QwtThermo Class Reference

#include <qwt_thermo.h>

Inheritance diagram for QwtThermo:

List of all members.

Public Types

enum  ScalePos {
  NoScale,
  LeftScale,
  RightScale,
  TopScale,
  BottomScale
}

Public Slots

void setValue (double val)

Public Member Functions

 QwtThermo (QWidget *parent=NULL)
virtual ~QwtThermo ()
const QBrush & alarmBrush () const
const QColor & alarmColor () const
bool alarmEnabled () const
double alarmLevel () const
int borderWidth () const
const QBrush & fillBrush () const
const QColor & fillColor () const
double maxValue () const
virtual QSize minimumSizeHint () const
double minValue () const
int pipeWidth () const
const QwtScaleDrawscaleDraw () const
ScalePos scalePosition () const
void setAlarmBrush (const QBrush &b)
void setAlarmColor (const QColor &c)
void setAlarmEnabled (bool tf)
void setAlarmLevel (double v)
void setBorderWidth (int w)
void setFillBrush (const QBrush &b)
void setFillColor (const QColor &c)
void setMargin (int m)
void setMaxValue (double v)
void setMinValue (double v)
void setOrientation (Qt::Orientation o, ScalePos s)
void setPipeWidth (int w)
void setRange (double vmin, double vmax, bool lg=false)
void setScaleDraw (QwtScaleDraw *)
void setScalePosition (ScalePos s)
virtual QSize sizeHint () const
double value () const
- Public Member Functions inherited from QwtAbstractScale
 QwtAbstractScale ()
virtual ~QwtAbstractScale ()
bool autoScale () const
const QwtScaleEnginescaleEngine () const
QwtScaleEnginescaleEngine ()
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
void setAutoScale ()
void setScale (double vmin, double vmax, double step=0.0)
void setScale (const QwtDoubleInterval &, double step=0.0)
void setScale (const QwtScaleDiv &s)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)

Protected Member Functions

void draw (QPainter *p, const QRect &update_rect)
void drawThermo (QPainter *p)
virtual void fontChange (const QFont &oldFont)
void layoutThermo (bool update=true)
virtual void paintEvent (QPaintEvent *e)
virtual void resizeEvent (QResizeEvent *e)
virtual void scaleChange ()
QwtScaleDrawscaleDraw ()
- Protected Member Functions inherited from QwtAbstractScale
const QwtAbstractScaleDrawabstractScaleDraw () const
QwtAbstractScaleDrawabstractScaleDraw ()
void rescale (double vmin, double vmax, double step=0.0)
void setAbstractScaleDraw (QwtAbstractScaleDraw *)

Detailed Description

The Thermometer Widget.

QwtThermo is a widget which displays a value in an interval. It supports:

  • a horizontal or vertical layout;
  • a range;
  • a scale;
  • an alarm level.
sysinfo.png

By default, the scale and range run over the same interval of values. QwtAbstractScale::setScale() changes the interval of the scale and allows easy conversion between physical units.

The example shows how to make the scale indicate in degrees Fahrenheit and to set the value in degrees Kelvin:

#include <qapplication.h>
#include <qwt_thermo.h>
double Kelvin2Fahrenheit(double kelvin)
{
// see http://en.wikipedia.org/wiki/Kelvin
return 1.8*kelvin - 459.67;
}
int main(int argc, char **argv)
{
const double minKelvin = 0.0;
const double maxKelvin = 500.0;
QApplication a(argc, argv);
t.setRange(minKelvin, maxKelvin);
t.setScale(Kelvin2Fahrenheit(minKelvin), Kelvin2Fahrenheit(maxKelvin));
// set the value in Kelvin but the scale displays in Fahrenheit
// 273.15 Kelvin = 0 Celsius = 32 Fahrenheit
t.setValue(273.15);
a.setMainWidget(&t);
t.show();
return a.exec();
}

Constructor & Destructor Documentation

QwtThermo::QwtThermo ( QWidget *  parent = NULL)
explicit

Constructor

Parameters:
parentParent widget

Member Function Documentation

const QBrush & QwtThermo::alarmBrush ( ) const

Return the liquid brush above the alarm threshold.

See also:
setAlarmBrush()
double QwtThermo::alarmLevel ( ) const

Return the alarm threshold.

See also:
setAlarmLevel()
int QwtThermo::borderWidth ( ) const

Return the border width of the thermometer pipe.

See also:
setBorderWidth()
void QwtThermo::draw ( QPainter *  painter,
const QRect &  rect 
)
protected

Draw the whole QwtThermo.

Parameters:
painterPainter
rectUpdate rectangle
void QwtThermo::drawThermo ( QPainter *  painter)
protected

Redraw the liquid in thermometer pipe.

Parameters:
painterPainter
const QBrush & QwtThermo::fillBrush ( ) const

Return the liquid brush.

See also:
setFillBrush()
const QColor & QwtThermo::fillColor ( ) const

Return the liquid color.

See also:
setFillColor()
void QwtThermo::layoutThermo ( bool  update_geometry = true)
protected

Recalculate the QwtThermo geometry and layout based on the QwtThermo::rect() and the fonts.

Parameters:
update_geometrynotify the layout system and call update to redraw the scale
QSize QwtThermo::minimumSizeHint ( ) const
virtual

Return a minimum size hint.

Warning:
The return value depends on the font and the scale.
See also:
sizeHint()
void QwtThermo::paintEvent ( QPaintEvent *  event)
protectedvirtual

Qt paint event. event Paint event

int QwtThermo::pipeWidth ( ) const

Return the width of the pipe.

See also:
setPipeWidth()
const QwtScaleDraw * QwtThermo::scaleDraw ( ) const
Returns:
the scale draw of the thermo
See also:
setScaleDraw()
QwtScaleDraw * QwtThermo::scaleDraw ( )
protected
Returns:
the scale draw of the thermo
See also:
setScaleDraw()
QwtThermo::ScalePos QwtThermo::scalePosition ( ) const

Return the scale position.

See also:
setScalePosition()
void QwtThermo::setAlarmBrush ( const QBrush &  brush)

Specify the liquid brush above the alarm threshold.

Parameters:
brushNew brush. The default is solid white.
See also:
alarmBrush()
void QwtThermo::setAlarmColor ( const QColor &  c)

Specify the liquid color above the alarm threshold.

Parameters:
cNew color. The default is white.
void QwtThermo::setAlarmEnabled ( bool  tf)

Enable or disable the alarm threshold.

Parameters:
tftrue (disabled) or false (enabled)
void QwtThermo::setAlarmLevel ( double  level)

Specify the alarm threshold.

Parameters:
levelAlarm threshold
See also:
alarmLevel()
void QwtThermo::setBorderWidth ( int  width)

Set the border width of the pipe.

Parameters:
widthBorder width
See also:
borderWidth()
void QwtThermo::setFillBrush ( const QBrush &  brush)

Change the brush of the liquid.

Parameters:
brushNew brush. The default brush is solid black.
See also:
fillBrush()
void QwtThermo::setFillColor ( const QColor &  c)

Change the color of the liquid.

Parameters:
cNew color. The default color is black.
See also:
fillColor()
void QwtThermo::setMargin ( int  m)

Specify the distance between the pipe's endpoints and the widget's border.

The margin is used to leave some space for the scale labels. If a large font is used, it is advisable to adjust the margins.

Parameters:
mNew Margin. The default values are 10 for horizontal orientation and 20 for vertical orientation.
Warning:
The margin has no effect if the scale is disabled.
This function is a NOOP because margins are determined automatically.
void QwtThermo::setMaxValue ( double  max)

Set the maximum value.

Parameters:
maxMaximum value
See also:
maxValue(), setMinValue()
void QwtThermo::setMinValue ( double  min)

Set the minimum value.

Parameters:
minMinimum value
See also:
minValue(), setMaxValue()
void QwtThermo::setOrientation ( Qt::Orientation  o,
ScalePos  s 
)

Set the thermometer orientation and the scale position.

The scale position NoScale disables the scale.

Parameters:
oorientation. Possible values are Qt::Horizontal and Qt::Vertical. The default value is Qt::Vertical.
sPosition of the scale. The default value is NoScale.

A valid combination of scale position and orientation is enforced:

  • a horizontal thermometer can have the scale positions TopScale, BottomScale or NoScale;
  • a vertical thermometer can have the scale positions LeftScale, RightScale or NoScale;
  • an invalid scale position will default to NoScale.
See also:
setScalePosition()
void QwtThermo::setPipeWidth ( int  width)

Change the width of the pipe.

Parameters:
widthWidth of the pipe
See also:
pipeWidth()
void QwtThermo::setRange ( double  vmin,
double  vmax,
bool  logarithmic = false 
)

Set the range.

Parameters:
vminvalue corresponding lower or left end of the thermometer
vmaxvalue corresponding to the upper or right end of the thermometer
logarithmiclogarithmic mapping, true or false
void QwtThermo::setScaleDraw ( QwtScaleDraw scaleDraw)

Set a scale draw.

For changing the labels of the scales, it is necessary to derive from QwtScaleDraw and overload QwtScaleDraw::label().

Parameters:
scaleDrawScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of setScaleDraw().
void QwtThermo::setScalePosition ( ScalePos  scalePos)

Change the scale position (and thermometer orientation).

Parameters:
scalePosPosition of the scale.

A valid combination of scale position and orientation is enforced:

  • if the new scale position is LeftScale or RightScale, the scale orientation will become Qt::Vertical;
  • if the new scale position is BottomScale or TopScale, the scale orientation will become Qt::Horizontal;
  • if the new scale position is NoScale, the scale orientation will not change.
See also:
setOrientation(), scalePosition()
void QwtThermo::setValue ( double  value)
slot

Set the current value.

Parameters:
valueNew Value
See also:
value()
QSize QwtThermo::sizeHint ( ) const
virtual
Returns:
the minimum size hint
See also:
minimumSizeHint()
qwt5-5.2.3/doc/html/qwt__wheel_8h_source.html0000644000175000017500000003433312052741135020501 0ustar gudjongudjon Qwt User's Guide: qwt_wheel.h Source File
Qwt User's Guide  5.2.3
qwt_wheel.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_WHEEL_H
11 #define QWT_WHEEL_H
12 
13 #include "qwt_global.h"
14 #include "qwt_abstract_slider.h"
15 
25 class QWT_EXPORT QwtWheel : public QwtAbstractSlider
26 {
27  Q_OBJECT
28  Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle )
29  Q_PROPERTY( double viewAngle READ viewAngle WRITE setViewAngle )
30  Q_PROPERTY( int tickCnt READ tickCnt WRITE setTickCnt )
31  Q_PROPERTY( int internalBorder READ internalBorder WRITE setInternalBorder )
32  Q_PROPERTY( double mass READ mass WRITE setMass )
33 
34 public:
35  explicit QwtWheel(QWidget *parent = NULL);
36 #if QT_VERSION < 0x040000
37  explicit QwtWheel(QWidget *parent, const char *name);
38 #endif
39  virtual ~QwtWheel();
40 
41  virtual void setOrientation(Qt::Orientation);
42 
43  double totalAngle() const;
44  double viewAngle() const;
45  int tickCnt() const;
46  int internalBorder() const;
47 
48  double mass() const;
49 
50  void setTotalAngle (double angle);
51  void setTickCnt(int cnt);
52  void setViewAngle(double angle);
53  void setInternalBorder(int width);
54  void setMass(double val);
55  void setWheelWidth( int w );
56 
57  virtual QSize sizeHint() const;
58  virtual QSize minimumSizeHint() const;
59 
60 protected:
61  virtual void resizeEvent(QResizeEvent *e);
62  virtual void paintEvent(QPaintEvent *e);
63 
64  void layoutWheel( bool update = true );
65  void draw(QPainter *, const QRect &);
66  void drawWheel(QPainter *, const QRect &);
67  void drawWheelBackground(QPainter *, const QRect &);
68  void setColorArray();
69 
70  virtual void valueChange();
71  virtual void paletteChange( const QPalette &);
72 
73  virtual double getValue(const QPoint &);
74  virtual void getScrollMode(const QPoint &,
75  int &scrollMode, int &direction);
76 
77 private:
78  void initWheel();
79 
80  class PrivateData;
81  PrivateData *d_data;
82 };
83 
84 #endif
qwt5-5.2.3/doc/html/qwt__plot__magnifier_8h_source.html0000644000175000017500000002154112052741135022530 0ustar gudjongudjon Qwt User's Guide: qwt_plot_magnifier.h Source File
Qwt User's Guide  5.2.3
qwt_plot_magnifier.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_MAGNIFIER_H
11 #define QWT_PLOT_MAGNIFIER_H 1
12 
13 #include "qwt_global.h"
14 #include "qwt_magnifier.h"
15 
16 class QwtPlotCanvas;
17 class QwtPlot;
18 
30 class QWT_EXPORT QwtPlotMagnifier: public QwtMagnifier
31 {
32  Q_OBJECT
33 
34 public:
35  explicit QwtPlotMagnifier(QwtPlotCanvas *);
36  virtual ~QwtPlotMagnifier();
37 
38  void setAxisEnabled(int axis, bool on);
39  bool isAxisEnabled(int axis) const;
40 
41  QwtPlotCanvas *canvas();
42  const QwtPlotCanvas *canvas() const;
43 
44  QwtPlot *plot();
45  const QwtPlot *plot() const;
46 
47 protected:
48  virtual void rescale(double factor);
49 
50 private:
51  class PrivateData;
52  PrivateData *d_data;
53 };
54 
55 #endif
qwt5-5.2.3/doc/html/inherit_graph_23.map0000644000175000017500000000043112052741163017315 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_spline_curve_fitter__inherit__graph.map0000644000175000017500000000025512052741160025523 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial.html0000644000175000017500000026170612052741164017365 0ustar gudjongudjon Qwt User's Guide: QwtDial Class Reference

#include <qwt_dial.h>

Inheritance diagram for QwtDial:

List of all members.

Public Types

enum  Direction {
  Clockwise,
  CounterClockwise
}
enum  Mode {
  RotateNeedle,
  RotateScale
}
enum  ScaleOptions {
  ScaleBackbone = 1,
  ScaleTicks = 2,
  ScaleLabel = 4
}
enum  Shadow {
  Plain = QFrame::Plain,
  Raised = QFrame::Raised,
  Sunken = QFrame::Sunken
}
- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Public Member Functions

 QwtDial (QWidget *parent=NULL)
virtual ~QwtDial ()
QRect boundingRect () const
QRect contentsRect () const
Direction direction () const
Shadow frameShadow () const
bool hasVisibleBackground () const
int lineWidth () const
double maxScaleArc () const
virtual QSize minimumSizeHint () const
double minScaleArc () const
Mode mode () const
const QwtDialNeedleneedle () const
QwtDialNeedleneedle ()
double origin () const
virtual QRect scaleContentsRect () const
QwtDialScaleDrawscaleDraw ()
const QwtDialScaleDrawscaleDraw () const
void setDirection (Direction)
void setFrameShadow (Shadow)
void setLineWidth (int)
void setMode (Mode)
virtual void setNeedle (QwtDialNeedle *)
virtual void setOrigin (double)
virtual void setScale (int maxMajIntv, int maxMinIntv, double step=0.0)
void setScaleArc (double min, double max)
virtual void setScaleDraw (QwtDialScaleDraw *)
void setScaleOptions (int)
void setScaleTicks (int minLen, int medLen, int majLen, int penWidth=1)
virtual void setWrapping (bool)
void showBackground (bool)
virtual QSize sizeHint () const
bool wrapping () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
virtual void setOrientation (Qt::Orientation o)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const

Protected Member Functions

virtual void drawContents (QPainter *) const
virtual void drawFocusIndicator (QPainter *) const
virtual void drawFrame (QPainter *p)
virtual void drawNeedle (QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const
virtual void drawScale (QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const
virtual void drawScaleContents (QPainter *painter, const QPoint &center, int radius) const
virtual void getScrollMode (const QPoint &, int &scrollMode, int &direction)
virtual double getValue (const QPoint &)
virtual void keyPressEvent (QKeyEvent *)
virtual void paintEvent (QPaintEvent *)
virtual void rangeChange ()
virtual void resizeEvent (QResizeEvent *)
virtual QwtText scaleLabel (double) const
virtual void updateMask ()
void updateScale ()
virtual void valueChange ()
- Protected Member Functions inherited from QwtAbstractSlider
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()

Friends

class QwtDialScaleDraw

Additional Inherited Members

- Public Slots inherited from QwtAbstractSlider
virtual void fitValue (double val)
virtual void incValue (int steps)
virtual void setReadOnly (bool)
virtual void setValue (double val)
- Signals inherited from QwtAbstractSlider
void sliderMoved (double value)
void sliderPressed ()
void sliderReleased ()
void valueChanged (double value)

Detailed Description

QwtDial class provides a rounded range control.

QwtDial is intended as base class for dial widgets like speedometers, compass widgets, clocks ...

dials2.png

A dial contains a scale and a needle indicating the current value of the dial. Depending on Mode one of them is fixed and the other is rotating. If not isReadOnly() the dial can be rotated by dragging the mouse or using keyboard inputs (see keyPressEvent()). A dial might be wrapping, what means a rotation below/above one limit continues on the other limit (f.e compass). The scale might cover any arc of the dial, its values are related to the origin() of the dial.

Qwt is missing a set of good looking needles (QwtDialNeedle). Contributions are very welcome.

See also:
QwtCompass, QwtAnalogClock, QwtDialNeedle
Note:
The examples/dials example shows different types of dials.

Member Enumeration Documentation

Direction of the dial

In case of RotateNeedle the needle is rotating, in case of RotateScale, the needle points to origin() and the scale is rotating.

Frame shadow.

Unfortunately it is not possible to use QFrame::Shadow as a property of a widget that is not derived from QFrame. The following enum is made for the designer only. It is safe to use QFrame::Shadow instead.


Constructor & Destructor Documentation

QwtDial::QwtDial ( QWidget *  parent = NULL)
explicit

Constructor.

Parameters:
parentParent widget

Create a dial widget with no scale and no needle. The default origin is 90.0 with no valid value. It accepts mouse and keyboard inputs and has no step size. The default mode is QwtDial::RotateNeedle.


Member Function Documentation

QRect QwtDial::boundingRect ( ) const
Returns:
bounding rect of the dial including the frame
See also:
setLineWidth(), scaleContentsRect(), contentsRect()
QRect QwtDial::contentsRect ( ) const
Returns:
bounding rect of the circle inside the frame
See also:
setLineWidth(), scaleContentsRect(), boundingRect()
QwtDial::Direction QwtDial::direction ( ) const
Returns:
Direction of the dial

The default direction of a dial is QwtDial::Clockwise

See also:
setDirection()
void QwtDial::drawContents ( QPainter *  painter) const
protectedvirtual

Draw the contents inside the frame.

QColorGroup::Background is the background color outside of the frame. QColorGroup::Base is the background color inside the frame. QColorGroup::Foreground is the background color inside the scale.

Parameters:
painterPainter
See also:
boundingRect(), contentsRect(), scaleContentsRect(), QWidget::setPalette()
void QwtDial::drawFocusIndicator ( QPainter *  painter) const
protectedvirtual

Draw a dotted round circle, if !isReadOnly()

Parameters:
painterPainter
void QwtDial::drawFrame ( QPainter *  painter)
protectedvirtual

Draw the frame around the dial

Parameters:
painterPainter
See also:
lineWidth(), frameShadow()
void QwtDial::drawNeedle ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  direction,
QPalette::ColorGroup  cg 
) const
protectedvirtual

Draw the needle

Parameters:
painterPainter
centerCenter of the dial
radiusLength for the needle
directionDirection of the needle in degrees, counter clockwise
cgColorGroup

Reimplemented in QwtAnalogClock.

void QwtDial::drawScale ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  origin,
double  minArc,
double  maxArc 
) const
protectedvirtual

Draw the scale

Parameters:
painterPainter
centerCenter of the dial
radiusRadius of the scale
originOrigin of the scale
minArcMinimum of the arc
maxArcMinimum of the arc
See also:
QwtAbstractScaleDraw::setAngleRange()
void QwtDial::drawScaleContents ( QPainter *  painter,
const QPoint &  center,
int  radius 
) const
protectedvirtual

Draw the contents inside the scale

Paints nothing.

Parameters:
painterPainter
centerCenter of the contents circle
radiusRadius of the contents circle

Reimplemented in QwtCompass.

QwtDial::Shadow QwtDial::frameShadow ( ) const
Returns:
Frame shadow /sa setFrameShadow(), lineWidth(), QFrame::frameShadow
void QwtDial::getScrollMode ( const QPoint &  pos,
int &  scrollMode,
int &  direction 
)
protectedvirtual

See QwtAbstractSlider::getScrollMode()

Parameters:
pospoint where the mouse was pressed
Return values:
scrollModeThe scrolling mode
directiondirection: 1, 0, or -1.
See also:
QwtAbstractSlider::getScrollMode()

Implements QwtAbstractSlider.

double QwtDial::getValue ( const QPoint &  pos)
protectedvirtual

Find the value for a given position

Parameters:
posPosition
Returns:
Value

Implements QwtAbstractSlider.

bool QwtDial::hasVisibleBackground ( ) const

true when the area outside of the frame is visible

See also:
showBackground(), setMask()
void QwtDial::keyPressEvent ( QKeyEvent *  event)
protectedvirtual

Handles key events

  • Key_Down, KeyLeft
    Decrement by 1
  • Key_Prior
    Decrement by pageSize()
  • Key_Home
    Set the value to minValue()
  • Key_Up, KeyRight
    Increment by 1
  • Key_Next
    Increment by pageSize()
  • Key_End
    Set the value to maxValue()
Parameters:
eventKey event
See also:
isReadOnly()

Reimplemented from QwtAbstractSlider.

Reimplemented in QwtCompass.

int QwtDial::lineWidth ( ) const
Returns:
Line width of the frame
See also:
setLineWidth(), frameShadow(), lineWidth()
double QwtDial::maxScaleArc ( ) const
Returns:
Upper limit of the scale arc
QSize QwtDial::minimumSizeHint ( ) const
virtual

Return a minimum size hint.

Warning:
The return value of QwtDial::minimumSizeHint() depends on the font and the scale.
double QwtDial::minScaleArc ( ) const
Returns:
Lower limit of the scale arc
QwtDial::Mode QwtDial::mode ( ) const
Returns:
mode of the dial.

The value of the dial is indicated by the difference between the origin and the direction of the needle. In case of QwtDial::RotateNeedle the scale arc is fixed to the origin() and the needle is rotating, in case of QwtDial::RotateScale, the needle points to origin() and the scale is rotating.

The default mode is QwtDial::RotateNeedle.

See also:
setMode(), origin(), setScaleArc(), value()
const QwtDialNeedle * QwtDial::needle ( ) const
Returns:
needle
See also:
setNeedle()
QwtDialNeedle * QwtDial::needle ( )
Returns:
needle
See also:
setNeedle()
double QwtDial::origin ( ) const

The origin is the angle where scale and needle is relative to.

Returns:
Origin of the dial
See also:
setOrigin()
void QwtDial::paintEvent ( QPaintEvent *  e)
protectedvirtual

Paint the dial

Parameters:
ePaint event
void QwtDial::resizeEvent ( QResizeEvent *  e)
protectedvirtual

Resize the dial widget

Parameters:
eResize event
QRect QwtDial::scaleContentsRect ( ) const
virtual
Returns:
rect inside the scale
See also:
setLineWidth(), boundingRect(), contentsRect()
QwtText QwtDial::scaleLabel ( double  value) const
protectedvirtual

Find the label for a value

Parameters:
valueValue
Returns:
label

Reimplemented in QwtAnalogClock, and QwtCompass.

void QwtDial::setDirection ( Direction  direction)

Set the direction of the dial (clockwise/counterclockwise)

Direction direction

See also:
direction()
void QwtDial::setFrameShadow ( Shadow  shadow)

Sets the frame shadow value from the frame style.

Parameters:
shadowFrame shadow
See also:
setLineWidth(), QFrame::setFrameShadow()
void QwtDial::setLineWidth ( int  lineWidth)

Sets the line width

Parameters:
lineWidthLine width
See also:
setFrameShadow()
void QwtDial::setMode ( Mode  mode)

Change the mode of the meter.

Parameters:
modeNew mode

The value of the meter is indicated by the difference between north of the scale and the direction of the needle. In case of QwtDial::RotateNeedle north is pointing to the origin() and the needle is rotating, in case of QwtDial::RotateScale, the needle points to origin() and the scale is rotating.

The default mode is QwtDial::RotateNeedle.

See also:
mode(), setValue(), setOrigin()
void QwtDial::setNeedle ( QwtDialNeedle needle)
virtual

Set a needle for the dial

Qwt is missing a set of good looking needles. Contributions are very welcome.

Parameters:
needleNeedle
Warning:
The needle will be deleted, when a different needle is set or in ~QwtDial()
void QwtDial::setOrigin ( double  origin)
virtual

Change the origin.

The origin is the angle where scale and needle is relative to.

Parameters:
originNew origin
See also:
origin()
void QwtDial::setScale ( int  maxMajIntv,
int  maxMinIntv,
double  step = 0.0 
)
virtual

Change the intervals of the scale

See also:
QwtAbstractScaleDraw::setScale()
void QwtDial::setScaleArc ( double  minArc,
double  maxArc 
)

Change the arc of the scale

Parameters:
minArcLower limit
maxArcUpper limit
void QwtDial::setScaleDraw ( QwtDialScaleDraw scaleDraw)
virtual

Set an individual scale draw

Parameters:
scaleDrawScale draw
Warning:
The previous scale draw is deleted
void QwtDial::setScaleOptions ( int  options)

A wrapper method for accessing the scale draw.

  • options == 0
    No visible scale: setScaleDraw(NULL)
  • options & ScaleBackbone
    En/disable the backbone of the scale.
  • options & ScaleTicks
    En/disable the ticks of the scale.
  • options & ScaleLabel
    En/disable scale labels
See also:
QwtAbstractScaleDraw::enableComponent()
void QwtDial::setScaleTicks ( int  minLen,
int  medLen,
int  majLen,
int  penWidth = 1 
)

Assign length and width of the ticks

Parameters:
minLenLength of the minor ticks
medLenLength of the medium ticks
majLenLength of the major ticks
penWidthWidth of the pen for all ticks
See also:
QwtAbstractScaleDraw::setTickLength(), QwtDialScaleDraw::setPenWidth()
void QwtDial::setWrapping ( bool  wrapping)
virtual

Sets whether it is possible to step the value from the highest value to the lowest value and vice versa to on.

Parameters:
wrappingen/disables wrapping
See also:
wrapping(), QwtDoubleRange::periodic()
Note:
The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial.
void QwtDial::showBackground ( bool  show)

Show/Hide the area outside of the frame

Parameters:
showShow if true, hide if false
See also:
hasVisibleBackground(), setMask()
Warning:
When QwtDial is a toplevel widget the window border might disappear too.
QSize QwtDial::sizeHint ( ) const
virtual
Returns:
Size hint
void QwtDial::updateMask ( )
protectedvirtual

Update the mask of the dial.

In case of "hasVisibleBackground() == false", the backgound is transparent by a mask.

See also:
showBackground(), hasVisibleBackground()
void QwtDial::updateScale ( )
protected

Update the scale with the current attributes

See also:
setScale()
bool QwtDial::wrapping ( ) const

wrapping() holds whether it is possible to step the value from the highest value to the lowest value and vice versa.

See also:
setWrapping(), QwtDoubleRange::setPeriodic()
Note:
The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial.
qwt5-5.2.3/doc/html/form_2.png0000644000175000017500000000071412052741150015361 0ustar gudjongudjon‰PNG  IHDRO`2Ň–0PLTEZ? tRNS.H]o€Źž¬ąĹŇÝéô˙Şg°ď;IDATxíťI–… EˇµAöżŰzEřţŞă´bâMcŔ?,ü)>x#rTeÜ˝Ňý­őd™`śVôé<-M°.ô´*-fUçŽ19^/Ą”Tő ‹E ‹ ş_‘űqĺuĄž°ďá,§áĚ2yB+ÂňßČ“…ţož´ę~ăUŻ<8řMOřÁÓ±n×ę°˛+ŞÔzÍĽ´Wž ,áUq—›áÄswř×QÜjśFť§fűýÉÓŚŻbziZľńdäĹ3_÷|ć+üąÄ´m&~¦`Ęłä=©ě¶ÓŤY Ú3ÂĎÍ`ć[íw‡T»é“gUŇÖŐ5Ť[ŹJڵ 3Oh˘ ř»‘ç|Ď›1Ć0ÜgľđU´}űzĽÉ“gm[x!¶%żĘüiž>×?IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_31.map0000644000175000017500000000021612052741163017315 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_text_label__inherit__graph.png0000644000175000017500000000624612052741160023610 0ustar gudjongudjon‰PNG  IHDRxpZU#čbKGD˙˙˙ ˝§“ [IDATxśíť{L[ŐŔĎ-m!<»A •.0ŔđC§ŕ¦pC‡ş° 㣸„°-”u€ó7÷#“¸°ˇ<ŚŮÜ†ŠŚ×†,QDž ‹…–ńäQä1č ”WŰŰÇďŹkú«¬:Řé:ĎçŻ{OOżçŰO/çŢs€s0ťN÷’Ąř·€DC‰† ˛‰×nܸqňäIh©X;™™™O?ýôjŻb&ž:<ŘŘŘt{¨čęꊸrĺĘjL]Ń€   S§NmvV!§Oź6]őŃ@˘!DC‰† ‰Í=11‘••őÚkŻĺçç/,,~‹D"yá…ăHc¬żu}(Ăëo}łjšfŤÇ»ő022’ššşwďŢśś!‘H.\¸’’’źźďč踞 ‰D’””T[[»ń”@6áŠţüóĎŁ˘˘ř|ľ···ťťťźź_VVŤF»|ůrFFFii)ŕÎť;‘‘‘%%%™L™ăxddäÜÜś‰ŕ …B ÄĆĆr8ś˘˘"ŤFS]]ťśś¬Ńhk†>zôč‹/ľ`řEVTTÄĆĆĆĆĆćććâ8n´ąŤű!ب襥ĄŽŽ‡cXa‡Ăimm kooĹb{{{‘H‰Dľľľ—.]˘P( ...&âçĺĺ)•Ę‹/ćććŠD˘ŞŞŞ8::–––ööö644|ňÉ'k†:ţüîÝ»ż˙ţ{.—[XXHâ8ţŰoż}őŐWŕćÍ›ß~ű­Ńć6čGĎFEĎÎÎ ĆŠr&“933ÚŮŮ©ŃhÄbq\\\gg§V«‰Daaaë ®V«kkkŹ;ćââňČ#Ź$''×ŐŐavâĉŇŇŇ3gΤ§§;99­')))!!ÁĆƆL&/..ęËy<ŤFŰľ}űˇC‡ęëëŤ6gŽ Sl´Ź¦Ńh€©©)&“iX.•J·nÝĘb±űúúÄbńÉ“'ţůçţţţŽŽŽ´´´ő—Édjµú•W^YŃ“É »uë–‰ICzzzÎś9aáa>g//Ż™™™ŐšŰ6*ÚŢŢ>$$¤˛˛2%%…()++{öŮg+++źyć@hhhKK‹L&óöö ijj’JĄAAAăăăk߲e ‰DŞ®®vpp( ˘îëëëččŘşukee嫯ľj:ČÜÜÜŮłg ýýý‡††~ůĺ˘\§ÓMNN®ÇĆĆ †Ńć”Jĺ˝Ű1`n†|>ż¶¶V(ŽŽŽŞTŞĹĹE.—Űßß˙ĆoBCCŻ]»öŘcŹarőęŐ'žx‚L&c¦ŐjŐjµ‰Č %<<zćóůKKK]]]ÍÍÍÍÍÍBˇpěŘ1™LÖÝÝ]WW—““cşňÔÔ”X,LMMÍČČ j>|řÎť;ÝÝÝ?ýô±k—777ìŚĆ›ššáóůo˝ő–JĄú믿ř|ţűďżo–7 ć:âăăăăăM,cŞÓé0 Ăq|Ey{{»““Ó­[·śśśpOIIů裏śťťŐjőŃŁGß{ď=ýGҢR©(Ęěě,qZ__˙ä“OŞT*2™<88HVUUo4Zą§§0==­ÓéşşşšËËË$©ŻŻŹ¨Y^^ľ"ýÁj1I$’Bˇ bßýîf…OóÖë Óé†I$___Ăň±±1Ź   ŤÖÖÖÖŇŇRRRRRRŇŢŢŢÔÔTPP`:ěÄÄŽă†ű%Ńéô‰‰ ­VËb±’íŰ·›¨  R©ÄŹ ‰ô÷ŹéíŰ·u:ť~óŚG}Ô¬ ĹÖÖ–ixlúăĹĽ÷8;;‡‡‡Îó ‚ˇˇˇĽĽĽŔţýű+++'''"""ĘËËÇĆĆöěŮc:¬»»»ŤŤŤţ‚ZXX¸y󦻻;`xx¨344d˘2@żö &“‰aŘŕŕŕŠëLŔ1kcö—# ‹‹‹Ź?Ţ××§P(ärążż˙ďż˙ţÁ˘ŁŁ ÷ěŮaXDDD~~ţŢ˝{) †aŤ†Ř30kŔŇŇ’­­-‡ĂIKK“JĄSSSŻżţzNNŽ­­mBBźĎż}űöźţIě*0ZŮhŞT*•ĂáđxĽ‰‰‰ĚĚĚôY­?ć=c¶čŔŔŔ_ýU&“…‡‡»¸¸§¦¦úřřäććöíۧT*ź{î9@ddäÂÂBtt4ŔÓÓsÇŽ®®®2™L©Tn1 99PTT¤V«wîÜČ`0>ýôS@AA“““źźßK/˝tčĐ! ĺďĺ}ŚV6Jaa!ŤF |ţůçßy睯fµţ÷Čjť·Y,//···ßŰ{MP\\<99IWUUlz÷Ź>7gngg˛)ˇ ązőę‡~(—ËGFFΞ=Kܬ”z®C(JĄŇm۶űřř·+ĺ^ŽÍĂĂăÚµk–Îbsx Żč‡ $H4$hHüăfŘÜÜe©T2:;;Ůl¶ţô˙˘őűM#66›Íăńô§Ö·¬•‚úhH Ń@˘!DCâö»NFéIEND®B`‚qwt5-5.2.3/doc/html/tabs.css0000644000175000017500000000210712052741134015132 0ustar gudjongudjon.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } qwt5-5.2.3/doc/html/class_qwt_abstract_scale_draw__inherit__graph.md50000644000175000017500000000004012052741136025342 0ustar gudjongudjone23e9058f1363ba729cd676f1b78fcefqwt5-5.2.3/doc/html/class_qwt_picker_machine__inherit__graph.md50000644000175000017500000000004012052741141024310 0ustar gudjongudjon9df17163319334d9181fcbe66f5bed25qwt5-5.2.3/doc/html/class_qwt_magnifier-members.html0000644000175000017500000002407312052741140022031 0ustar gudjongudjon Qwt User's Guide: Member List
QwtMagnifier Member List

This is the complete list of members for QwtMagnifier, including all inherited members.

eventFilter(QObject *, QEvent *)QwtMagnifiervirtual
getMouseButton(int &button, int &buttonState) const QwtMagnifier
getZoomInKey(int &key, int &modifiers) const QwtMagnifier
getZoomOutKey(int &key, int &modifiers) const QwtMagnifier
isEnabled() const QwtMagnifier
keyFactor() const QwtMagnifier
mouseFactor() const QwtMagnifier
parentWidget()QwtMagnifier
parentWidget() const QwtMagnifier
QwtMagnifier(QWidget *)QwtMagnifierexplicit
rescale(double factor)=0QwtMagnifierprotectedpure virtual
setEnabled(bool)QwtMagnifier
setKeyFactor(double)QwtMagnifier
setMouseButton(int button, int buttonState=Qt::NoButton)QwtMagnifier
setMouseFactor(double)QwtMagnifier
setWheelButtonState(int buttonState)QwtMagnifier
setWheelFactor(double)QwtMagnifier
setZoomInKey(int key, int modifiers)QwtMagnifier
setZoomOutKey(int key, int modifiers)QwtMagnifier
wheelButtonState() const QwtMagnifier
wheelFactor() const QwtMagnifier
widgetKeyPressEvent(QKeyEvent *)QwtMagnifierprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtMagnifierprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtMagnifierprotectedvirtual
widgetWheelEvent(QWheelEvent *)QwtMagnifierprotectedvirtual
~QwtMagnifier()QwtMagnifiervirtual
qwt5-5.2.3/doc/html/qwt__round__scale__draw_8h_source.html0000644000175000017500000002670012052741135023205 0ustar gudjongudjon Qwt User's Guide: qwt_round_scale_draw.h Source File
Qwt User's Guide  5.2.3
qwt_round_scale_draw.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ROUND_SCALE_DRAW_H
11 #define QWT_ROUND_SCALE_DRAW_H
12 
13 #include <qpoint.h>
14 #include "qwt_global.h"
15 #include "qwt_abstract_scale_draw.h"
16 
17 class QPen;
18 
32 class QWT_EXPORT QwtRoundScaleDraw: public QwtAbstractScaleDraw
33 {
34 public:
37 
38  virtual ~QwtRoundScaleDraw();
39 
41 
42  void setRadius(int radius);
43  int radius() const;
44 
45  void moveCenter(int x, int y);
46  void moveCenter(const QPoint &);
47  QPoint center() const;
48 
49  void setAngleRange(double angle1, double angle2);
50 
51  virtual int extent(const QPen &, const QFont &) const;
52 
53 protected:
54  virtual void drawTick(QPainter *p, double val, int len) const;
55  virtual void drawBackbone(QPainter *p) const;
56  virtual void drawLabel(QPainter *p, double val) const;
57 
58 private:
59  class PrivateData;
60  PrivateData *d_data;
61 };
62 
64 inline void QwtRoundScaleDraw::moveCenter(int x, int y)
65 {
66  moveCenter(QPoint(x, y));
67 }
68 
69 #endif
qwt5-5.2.3/doc/html/class_qwt_picker_click_rect_machine__inherit__graph.map0000644000175000017500000000026112052741155026574 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_magnifier__inherit__graph.png0000644000175000017500000000717712052741156024475 0ustar gudjongudjon‰PNG  IHDR€pYÎď…bKGD˙˙˙ ˝§“4IDATxśíť{P÷Ç\Ţo„!ÔÁŘáŇbcŃF^MZMMAŞ "uDŇ©S;SĆkUF*µĄí@qä锎D Pnm©˘P  IĎ<öţ±÷îMSIF÷ó×îÉŮó;śďîžÝMŘ‚˘( € v/;„!€ !dČş»NNN&&&ŠĹâĹËćŔÁÁˇ°°ĐĘĘJG=¸páÂąsç˘ŁŁ JěeˇĽĽśÍfoٲEG=Ŕ8wîśľ›ĽT ˘—?Ń CBČ@†2‹"@?‡Ăquu555őňňJOO—H$ŹßäćÍ›fffŘ‚ 7nÔüEQŤ†9<=řXsss L&#âčč¸ ÁőeáoĽń†µµuSSÓÄÄDUUŐźţřD pČdňĎ?˙<::Š[š››ußü‰¬\ąrvv000pőęŐŃŃŃ®®®ĽĽĽ…ŠŻ¨Î”——ëâš’’˘iQ«Ő cďŢ˝aaaŮŮŮ(О˛˛P …šů´´´P©Ô¸¸¸cÇŽá¨T*¶ÚŐŐE§ÓÍĚĚ<==‹‹‹1ŁL&ărąööö4­¤¤s4íôéÓ...gϞŌT*ubbBs\<¸\.ßąs§łłó’%K>ţřc…B9q℥ĄĄ@ xüź(//×­˘(Š˘ ,€T*%‘H·oßÖ˛WUUy{{ůĺ—‘‘‘(Š–••Y[[GDD`Ë~~~XQĐ˙UçŇĄK~~~ضÓÓÓvvv xŤŢ˙ýĚĚĚ:;;cĆřřřŤ7ŽŚŚôööŕŃĚÍÍ“““ĄRé_|áćć†ńĐEwěرm۶±±±ľľ>:ťţŐW_ SSÓ„„ˇPřÄ*A ŻŻA…Bˇeďčč°˛˛ęę겲˛R(»wďţěłĎ¬­­•Jĺ®]»öíۧU •JĺîîŢŃѢhii)“ÉÔ¬QOOĎÔÔ”Bˇ(**ÂŚóóód2ążżs¨©©ÁŁĆĆĆPíîî~TÝń…ůůy …"‘H°8W®\Y˝z5dttT—*é+Ŕ÷'''A†††´ěĂĂĂ®®®«V­˛µµmoooii‰‹‹sttěččhnnŽĐň'‘H[·n-**”””p8ÍOŻ^˝Ę`0Ţ|óÍÚÚZĚ" Őjµ——¶úĘ+ŻŕΦ¦¦X%‘žüÇ …B…Bakk‹ ‚ ˇˇˇX'''= ˇ3 ,€µµuPPPnn.nÉÉÉąsçNnn.‹ĹlذˇşşzddÄÇÇ'88¸˛˛rxxxíÚµĹĺrĎž={ďŢ˝¶¶66›ŤŰÇÇÇwěŘqęÔ©öööbFŔŔŔ¶zçÎÜ_݇3...&&&ř —Ë˙ýw}čĹÂ_ĺĺĺ•””¤ĄĄÝşukvvV&“­X±âÚµkź~ú) ""âäÉ“k×®E$888???,,ŚBˇ ˘R© ÇÇÇÇËË+>>žĹbYXXŕv¬4d2Y,ggg«T*©TJĄRcbbRSS>>>::wüřń§ŻÉcXx|}}űí7±XdccSRR˛gĎě*đöŰocW߀ą\ŽťÜÝÝ˝˝˝4żoŕrą Zç''§ĚĚĚ   :ťÎfł—-[řć›o¬¬¬–/_ą}űv …bXţJĄrĺĘ•ľľľÎη6¸:ˇ{»Đń2ôˇĚĚĚ`uń())Á–kjj|||u¸Gŕ6áGaffćď│CÔÖÖîßż_&“ =zk9Ď?/Îł ĽĽĽńńq???Ť†µśç˝ż{nquu=ţ<ě,ôćĹ9ŚBČ@†2z7áÓ§O/F//şß2twwëţŻg©©›©©ě,ţ‚••UOOŹîUEPŁý˙•JýĎf:;˙E"-ÖòĹĆ{Ŕż˙Ý'O‰Ĺň¶¶>ŘąŽ PQŃN&“(REĹď°s1c`vVńÓO|ĄRĄP¨ú‰?;«xň6Ď%Ć*Ŕ•+ĽčłłŠ+Wpó1c ŞŞ˙ĘAŞŞv¸ůŚQ “Í^ľÜŁR©±U•J}ůrŹL6 7+Ă0J.^ĽˇV˙ĺęY­F/]ş+ź§Á(¨¬l׺{AQ´˛Ň(ĎBĆ'ŔŘŘd[[ŻZ­Ö4ŞŐh[[ďŘŘ$¬¬ Ćř¨«»ţĐű^AęęřĎ>ź§Äř8w®]«`¨ŐjcĽ#32†‡':;ď>BŔçß˝Á~Dýl0˛ď„˙ńęňĺ.2Ů ¶ŠÝ‹™™ý÷'@66¦Đ’3#~ Řąłpęv"†cd§ BČ@†2„!€ !d CBČ@†2„!€ !d CBČ@†2„!€ !d CBČ@†2„!€ !d CÍ—˝őÖ[°ÓŃ2Ů‘L†3őÁ0ŚGľ° Aččh___ů˝ŘôôôTTThÖ\űźô|}}źiR/7D€ !d CBČ"€P(˙‰;îxzzbŽŚŚ‚ÚÚZ‘HÔßßżPń5Ńűřú믙Lfjjާ§§™™ŮňĺËŹ9bkkűĂ?ddd`óĚD˘ŇŇR€X, árą …"$$D*•jFsppřŕnŢĽ©5Š\.?|ř0‹ĹÚ˛eKaaˇH$ŇŚ@"‘ëëëqŹ„Ż ěÚµ+<<<&&{zz:++kÓ¦M±±±őőőřńWÇb±ŘlvCCřß —Ë9ŽR©Ü´iÓöíŰń]dvv6''góćÍQQQ*• R]]ů÷9ÔŹ~LOO_ż~›µA¨¨¨¶¶¶5kÖttt:;;-,,ř|>€Ďç/]ş´¸¸Bˇ466ÚŘŘhn+‰*++—-[¦5PNNÎÔÔTqqqNNÎŻżţZ__ŻaÆ /^ÄśçććZ[[™L&ľůwß}řăŹ?r8ś“'ObĆÜÜÜÉÉÉâââcÇŽUVVâΉ¤żżż´´”ÍfăÎKKK|ĐââbÜž››;77WTTtâÄ >ź_SSý!}}}gÎśńôôÔ«¤ú €Mięěě¬ewss› Óé7nÜP©Tťťťl6űĆŤjµšĎçŻYłFÓŰ‘18ÎĚĚĚ'ź|˘ĺĐÔÔ”śślkkëá᯹łcČd˛ľľ>Ŕ/żü˛bĹ üÓÄÄÄ2™<55P*•őőőÉÉÉvvvîîî۶mĂťçćć¸\®……ÁÉdŹŻ€R©äńx)))666K–,IJJş|ů2fOJJ˛··×­˙Gż€ťsGGGÝÜţňÎňńńq{{{///KKË[·nuvv~ţůç ˝˝˝×Ż_OOO×tÖě›JĚŐŐ[ussÓňA„Éd^Ľx199™Çăiµ_@€Íĺ†ď+b±X­VkĆÄťÉd2vTé2÷›X,V*•ď˝÷žVMČd2ŢôBż#ŔÂÂÂßßżşş·TTT…ÂęęęuëÖčtzKK‹X,öôôô÷÷onn_µj•^Ł`űŃČȶ* şg…‡‡744ŚŤŤuwwŻ_ż·KĄŇŁGŹfddś:u*!!3ÚŮŮiĹÄýőšsĎÎÎŽD"ŐŐŐ566666^¸pˇ  @ß ščÝ„SSSy<^^^ŢÝ»wçç秦¦8Nooď‡~ ÓéçĎźőŐWń÷÷Ż­­}ýő×±)«ŐjµR©Ôe …Â`0ňňň$É˝{÷ŠŠŠLćß#Đh4WW׬¬¬uëÖQ©TÜŽ=k411™śś,++S«ŐSSS %444//obbâţýűgÎś1¬d %(((??_*•J$’j¶Đ[ŤVPP099™ššúî»ďňxĽÍ›7»¸¸TUU …źźŕµ×^›™™Á€ŁŁŁ»»;‹ĹšśÔéÍ’ććć'--ŤN§ÇÄÄ<4Bxxřµk×ÂĂĂ5·µµµĺrą©©©}ôŃúőë=<<233iiiććć[·nÝ·o_DD™lŕëÚöîÝ«R©8—˵łłKLL4,†ö÷™™™<Žžźźňöö~šT›úúúŐ«Wcç˘ÖÖÖożý›.÷YŇÔÔtŕŔÍš/ĚŁSSÓçĽú€ÖÖÖÂÂÂéé锕•aM :/Ńł ÔÔT©Tťŕââ‚5-čŮk+ź{{űC‡ÁÎB›—čx>!€ !d Ł}°téRěJ™`1čďďä˛˛ţřăŹgžŐËERR’ćŞqżĽű€č!€ !d óyĘs.ËŢIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_layout.html0000644000175000017500000011755612052741141021025 0ustar gudjongudjon Qwt User's Guide: QwtPlotLayout Class Reference

#include <qwt_plot_layout.h>

List of all members.

Public Types

enum  Options {
  AlignScales = 1,
  IgnoreScrollbars = 2,
  IgnoreFrames = 4,
  IgnoreMargin = 8,
  IgnoreLegend = 16
}

Public Member Functions

 QwtPlotLayout ()
virtual ~QwtPlotLayout ()
virtual void activate (const QwtPlot *, const QRect &rect, int options=0)
bool alignCanvasToScales () const
int canvasMargin (int axis) const
const QRect & canvasRect () const
virtual void invalidate ()
QwtPlot::LegendPosition legendPosition () const
double legendRatio () const
const QRect & legendRect () const
int margin () const
virtual QSize minimumSizeHint (const QwtPlot *) const
const QRect & scaleRect (int axis) const
void setAlignCanvasToScales (bool)
void setCanvasMargin (int margin, int axis=-1)
void setLegendPosition (QwtPlot::LegendPosition pos, double ratio)
void setLegendPosition (QwtPlot::LegendPosition pos)
void setLegendRatio (double ratio)
void setMargin (int)
void setSpacing (int)
int spacing () const
const QRect & titleRect () const

Protected Member Functions

QRect alignLegend (const QRect &canvasRect, const QRect &legendRect) const
void alignScales (int options, QRect &canvasRect, QRect scaleRect[QwtPlot::axisCnt]) const
void expandLineBreaks (int options, const QRect &rect, int &dimTitle, int dimAxes[QwtPlot::axisCnt]) const
QRect layoutLegend (int options, const QRect &) const

Detailed Description

Layout engine for QwtPlot.

It is used by the QwtPlot widget to organize its internal widgets or by QwtPlot::print() to render its content to a QPaintDevice like a QPrinter, QPixmap/QImage or QSvgRenderer.


Member Enumeration Documentation

Options to configure the plot layout engine

  • AlignScales
    Unused
  • IgnoreScrollbars
    Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is rendered to a paint device (QwtPlot::print() ).
  • IgnoreFrames
    Ignore all frames. QwtPlot::print() doesn't paint them.
  • IgnoreMargin
    Ignore the margin().
  • IgnoreLegend
    Ignore the legend.
See also:
activate()

Member Function Documentation

void QwtPlotLayout::activate ( const QwtPlot plot,
const QRect &  plotRect,
int  options = 0 
)
virtual

Recalculate the geometry of all components.

Parameters:
plotPlot to be layout
plotRectRect where to place the components
optionsOptions
See also:
invalidate(), Options, titleRect(), legendRect(), scaleRect(), canvasRect()
bool QwtPlotLayout::alignCanvasToScales ( ) const

Return the align-canvas-to-axis-scales setting. The canvas may:

  • extend beyond the axis scale ends to maximize its size
  • align with the axis scale ends to control its size.
Returns:
align-canvas-to-axis-scales setting
See also:
setAlignCanvasToScales, setCanvasMargin()
Note:
In this context the term 'scale' means the backbone of a scale.
QRect QwtPlotLayout::alignLegend ( const QRect &  canvasRect,
const QRect &  legendRect 
) const
protected

Align the legend to the canvas

Parameters:
canvasRectGeometry of the canvas
legendRectMaximum geometry for the legend
Returns:
Geometry for the aligned legend
void QwtPlotLayout::alignScales ( int  options,
QRect &  canvasRect,
QRect  scaleRect[QwtPlot::axisCnt] 
) const
protected

Align the ticks of the axis to the canvas borders using the empty corners.

See also:
Options
int QwtPlotLayout::canvasMargin ( int  axis) const
Returns:
Margin around the scale tick borders
See also:
setCanvasMargin()
const QRect & QwtPlotLayout::canvasRect ( ) const
Returns:
Geometry for the canvas
See also:
activate(), invalidate()
void QwtPlotLayout::expandLineBreaks ( int  options,
const QRect &  rect,
int &  dimTitle,
int  dimAxis[QwtPlot::axisCnt] 
) const
protected

Expand all line breaks in text labels, and calculate the height of their widgets in orientation of the text.

Parameters:
optionsOptions how to layout the legend
rectBounding rect for title, axes and canvas.
dimTitleExpanded height of the title widget
dimAxisExpanded heights of the axis in axis orientation.
See also:
Options
void QwtPlotLayout::invalidate ( )
virtual

Invalidate the geometry of all components.

See also:
activate()
QRect QwtPlotLayout::layoutLegend ( int  options,
const QRect &  rect 
) const
protected

Find the geometry for the legend

Parameters:
optionsOptions how to layout the legend
rectRectangle where to place the legend
Returns:
Geometry for the legend
See also:
Options
QwtPlot::LegendPosition QwtPlotLayout::legendPosition ( ) const
Returns:
Position of the legend
See also:
setLegendPosition(), QwtPlot::setLegendPosition(), QwtPlot::legendPosition()
double QwtPlotLayout::legendRatio ( ) const
Returns:
The relative size of the legend in the plot.
See also:
setLegendPosition()
const QRect & QwtPlotLayout::legendRect ( ) const
Returns:
Geometry for the legend
See also:
activate(), invalidate()
int QwtPlotLayout::margin ( ) const
Returns:
margin
See also:
setMargin(), spacing(), QwtPlot::margin()
QSize QwtPlotLayout::minimumSizeHint ( const QwtPlot plot) const
virtual

Return a minimum size hint.

See also:
QwtPlot::minimumSizeHint()
const QRect & QwtPlotLayout::scaleRect ( int  axis) const
Parameters:
axisAxis index
Returns:
Geometry for the scale
See also:
activate(), invalidate()
void QwtPlotLayout::setAlignCanvasToScales ( bool  alignCanvasToScales)

Change the align-canvas-to-axis-scales setting. The canvas may:

  • extend beyond the axis scale ends to maximize its size,
  • align with the axis scale ends to control its size.
Parameters:
alignCanvasToScalesNew align-canvas-to-axis-scales setting
See also:
setCanvasMargin()
Note:
In this context the term 'scale' means the backbone of a scale.
Warning:
In case of alignCanvasToScales == true canvasMargin will have no effect
void QwtPlotLayout::setCanvasMargin ( int  margin,
int  axis = -1 
)

Change a margin of the canvas. The margin is the space above/below the scale ticks. A negative margin will be set to -1, excluding the borders of the scales.

Parameters:
marginNew margin
axisOne of QwtPlot::Axis. Specifies where the position of the margin. -1 means margin at all borders.
See also:
canvasMargin()
Warning:
The margin will have no effect when alignCanvasToScales is true
void QwtPlotLayout::setLegendPosition ( QwtPlot::LegendPosition  pos,
double  ratio 
)

Specify the position of the legend.

Parameters:
posThe legend's position.
ratioRatio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5.
See also:
QwtPlot::setLegendPosition()
void QwtPlotLayout::setLegendPosition ( QwtPlot::LegendPosition  pos)

Specify the position of the legend.

Parameters:
posThe legend's position. Valid values are QwtPlot::LeftLegend, QwtPlot::RightLegend, QwtPlot::TopLegend, QwtPlot::BottomLegend.
See also:
QwtPlot::setLegendPosition()
void QwtPlotLayout::setLegendRatio ( double  ratio)

Specify the relative size of the legend in the plot

Parameters:
ratioRatio between legend and the bounding rect of title, canvas and axes. The legend will be shrinked if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5.
void QwtPlotLayout::setMargin ( int  margin)

Change the margin of the plot. The margin is the space around all components.

Parameters:
marginnew margin
See also:
margin(), setSpacing(), QwtPlot::setMargin()
void QwtPlotLayout::setSpacing ( int  spacing)

Change the spacing of the plot. The spacing is the distance between the plot components.

Parameters:
spacingnew spacing
See also:
setMargin(), spacing()
int QwtPlotLayout::spacing ( ) const
Returns:
spacing
See also:
margin(), setSpacing()
const QRect & QwtPlotLayout::titleRect ( ) const
Returns:
Geometry for the title
See also:
activate(), invalidate()
qwt5-5.2.3/doc/html/class_qwt_round_scale_draw__inherit__graph.md50000644000175000017500000000004012052741142024663 0ustar gudjongudjoned43c2679fa048169ea4b1082ea2f6bbqwt5-5.2.3/doc/html/qwt__analog__clock_8h_source.html0000644000175000017500000002752612052741134022155 0ustar gudjongudjon Qwt User's Guide: qwt_analog_clock.h Source File
Qwt User's Guide  5.2.3
qwt_analog_clock.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ANALOG_CLOCK_H
11 #define QWT_ANALOG_CLOCK_H
12 
13 #include <qdatetime.h>
14 #include "qwt_global.h"
15 #include "qwt_dial.h"
16 #include "qwt_dial_needle.h"
17 
45 class QWT_EXPORT QwtAnalogClock: public QwtDial
46 {
47  Q_OBJECT
48 
49 public:
55  enum Hand
56  {
57  SecondHand,
58  MinuteHand,
59  HourHand,
60 
61  NHands
62  };
63 
64  explicit QwtAnalogClock(QWidget* parent = NULL);
65 #if QT_VERSION < 0x040000
66  explicit QwtAnalogClock(QWidget* parent, const char *name);
67 #endif
68  virtual ~QwtAnalogClock();
69 
70  virtual void setHand(Hand, QwtDialNeedle *);
71  const QwtDialNeedle *hand(Hand) const;
72  QwtDialNeedle *hand(Hand);
73 
74 public slots:
75  void setCurrentTime();
76  void setTime(const QTime & = QTime::currentTime());
77 
78 protected:
79  virtual QwtText scaleLabel(double) const;
80 
81  virtual void drawNeedle(QPainter *, const QPoint &,
82  int radius, double direction, QPalette::ColorGroup) const;
83 
84  virtual void drawHand(QPainter *, Hand, const QPoint &,
85  int radius, double direction, QPalette::ColorGroup) const;
86 
87 private:
88  virtual void setNeedle(QwtDialNeedle *);
89  void initClock();
90 
91  QwtDialNeedle *d_hand[NHands];
92 };
93 
94 #endif
qwt5-5.2.3/doc/html/functions_0x77.html0000644000175000017500000001706412052741152017162 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- w -

qwt5-5.2.3/doc/html/ftv2plastnode.png0000644000175000017500000000034512052741134016772 0ustar gudjongudjon‰PNG  IHDRÉŞ|¬IDATxíť=QF‘ŘĄD«ÔkÄ:‰F©PKŘ=V@§Őł Ő8SHxńĚ0ŤbnrróŠ{ň˝żľ’$ ŔĎTŠP  öĽX¬OŰd6ęěňđ"°˛S´±OĄB€(ˇŕQé)š+YÄ ŇŞËRÉĐ>VtÉsm9(ę„䜥k‚-@ȧ-Ü$ó b Ň[he żKp-ôl|Ců˙ApRG'ŹrÍ­aIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_4.md50000644000175000017500000000004012052741151017135 0ustar gudjongudjon98245b2d37cfe892ced95dc459fbe5f9qwt5-5.2.3/doc/html/class_qwt_plot_scale_item__inherit__graph.png0000644000175000017500000001311212052741157024624 0ustar gudjongudjon‰PNG  IHDR­»B‰’bKGD˙˙˙ ˝§“˙IDATxśíťyTSWţŔż/+b‚ě.˘V©–ĂT‹…ŞŚ2Ł"¤GÖ©ŽŐӀ޵ÇZ—µ –P\fĽÜĽ,Ź I0î0Łě{€A`0,ęJGGÇÚµk•J%]Ő`FŚ„„„·ß~۰JP_/HĄŇĐĐĐ: ĂŚ?ü𬬬T*5´°L¨c^JV­ZeÔ‚çě=Ŕ`0ě`ŘTWWGFF:;;s8ˇPßÖÖ6ř&rąÜĘĘŠş0ňÖđ ‹‘ËĺA,[¶ŚÚH’¤››]ű8<†ăL&{ë­·ř|~~~ľJĄĘÉÉąwŹĎSUx)a±X………MMM†–‚‚‚n(†ăAlllxx¸D"™>}úرcgÍšuöěY‡„„„E‹íßż=zDÄ?ţńhll$ÂĂĂŁŻŻŹ –––Óvuu­_żŢÉÉi„ ›7oÖjµĐŃŃmgg' ÓÓÓ d¦Árą\(9rÄŢŢŢŮŮ9##E*•ĘĐĐP@ŕćć–••Eí±ĄĄ…ZŐ“r~öŮgvvvŽŽŽ_}őŐ¶mŰŁŁă—_~‰’0™ĚĄK—¦§§ҦĄĄ‰D"Ăjyyůś9sĆŚăć憶zR©¦‘ĂäädŹ'—Ëźí ’233ŤZLQ«Ő ăţýűFí999S¦LŮż˙ď~÷;’$Oś8Áçóв§§§L&ărą$IŚXłfMDDDsssUU•··÷?˙ůO’$ŁŁŁ—-[ÖŘŘXYY9kÖ,ƦÁ2™lĚ1±±±jµzçÎť...(R$-\¸°ˇˇˇ˘˘bĆŚF5P‹0'‹ĹúđĂ;::vîÜI„aĺG›ź?ŢÓÓ%éîî¶µµ˝|ů˛!íŠ+věŘŃÓÓsäČGGG´Ő€ĄšF>ëp8ś÷Ţ{OˇP ~CBBBBB¨-ĎěAUUAŤĆ¨˝¤¤„ÇăÝąs‡Çăi4š­[·ňů|­V»aÆ-[¶ îA?›ÍnkkC«W®\™={v?‹ĹŞ®®FŤ'OžD,“É ąą™$ÉňňrŮÓÓĂ`0***Pdvvö“zýúőđđp‚ &Mšdh4-uŔČaŚZxVžy~ŔçóçĎźźśślhILL¬©©INN €%K–äćć666zxx,X° ;;»ˇˇÁ××wđ´NNNL&Ó xggçŤ7śśśŕÁ(¦¦¦f` Â(­‹‹ AŐŐŐF†XŔЇ%**ę믿®ŻŻ˙ţűď í---kÖ¬9tčPqqqBB‚ˇÝ´Ô#ů ‘áĚ%IZZZ\\\EEEooo{{ű´iÓnŢĽůńÇ@@@@jjŞŻŻ/A ,HIIY¸p!›Í&B§Ói4”¤ŤBww7—ˉDńńń---MMM«WŻNJJârąˇˇˇb±řńăÇ÷ďßßµkÚĎ,•ĂáD˘ŘŘX…BQUUE=CUCĎ9 Bˇ0:::00ĐÚÚÚĐţóY—ĹR*•űöíÓétjµzŔ Fţň*Ô'‰ˇĚ÷ďߏprrâp8îîî7nś={ööíŰI’loogłŮź}öI’uuupäČ’$;::¦OźÎăńţóź˙ŐF’¤JĄŠ°łłłłł[»vmww7j\˝z5źĎíµ×RRRx<*Ŕ4ú”L]nmmEŻ&MšôŐW_M Uµ¶¶=ç€s‰D—/_6j˙ôÓOů|ţäÉ“óňň<<<-Zô¤´¦‘ĂÁ1Ă<ńIôôô ‰’yIKKkllDË'Ožôđđ0{Łśç1¦íş˛•••———ą˛ČËËűË_ţŇŢŢţđáĂ˝{÷˘)E12#0Úß_H$---'NôôôtssCS‹bdFŕ™_7Ž0ÎÎΧNť˘» :™íçĚČ€=Ŕ`0ě`ŔyâáÇGľĚHR]]môöĐ˙\5*//çńx4ŐF„•ŐT&ÓŇö©‡ţľĎd\»v?8Xň‡?Ěݵ+řéŃ//–>?8yň'ôżV«§»:±húűµąą% VwVĐ]ťX´ůůňîî>`2ąą?Ń]ťX´99?1™ ĐjőçΕőôôÓ]mX®]]}çĎßŃjuhµŻO{ńâ]zK˘Ëő€*0DNN1ŤőĐ‹ĺz“SLý4źV«żzUŢŢŢCcI4bˇ(•]……÷tş˙y­H’ä·ß–ŃU˝X¨gĎ–š6’$™•eˇO ęAvö Ó ©z=yíÚýÇŹţ<ńËŤ%zđčQŰO?=Ô븠Îd2ÎśŕTńŇc‰ś9sëIoŞhµşśKĽ 4Ú?źř<<ŮŃĹ…oXíě쳲błX?˙IĚś9¦şčÄŇßo€ńăăŚZľÜüş°ÄçŚ)Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€A`0Ř {€Ŕ`Ř öŔ`°ö€=Ŕ °ě=Ŕ`0ě{€A`0Ř {€Ŕ`~ć—ßtxČd2[[[ş÷€Ëue0¬ź÷üINN¦ëpĐöűHeee*•J*•ŇUŔh#11±°°066––Ţiţť¬z =deeŃŘ;ž`°ö€=Ŕ °€ÂęęęČČHggg‡# ăăăŰÚÚßD.—[YYˇ‚‚˝˝˝H$zôč5橌^JF»2™ě­·Ţâóůůůů*•*''çŢ˝{>>>OUÁ—Ë5\-)++ł˛˛úă˙ř\k~!ˇëVffćPzçťw>řŕj‹^Żź;wîĆŤ.\¸oß>’$ŕď˙;I’ …‚şwEEETH’Ľ~ýş˝˝=I’2™ĚđJĄ ·łł›8qâG}„NÔ ÍÍ͆–ćććÎÎÎ÷ßßŃŃqüřńţóź5ŤL&sssŰż˙¸qăŇÓÓ˙ú׿ÚŘŘ888?~|(2´Á3?Łú|ĐŢŢžźź/‹©ŤAÄĹĹť>}: ŕęŐ«PTTÄçó    ŔÓÓÓpŚííí©Ű*ŠĽůć›F­_żľ˝˝ýîÝ»W®\ůć›oŇŇŇŚ2ŘŰŰS[ÄbqwwwyyyaaaaaˇD"€†††¦¦¦‡ŠĹâţţţúúz±XüŃG=×Q2t 8”óAUUAŤĆ¨˝¤¤„ÇăÝąs‡Çăi4š­[·ňů|­V»aÆ-[¶Ž™L&Łî,ŹÇ[¶lY]]I9ôöö2Śęęj”<''çŤ7Ţ f0ZčďďgłŮmmm(ţĘ•+łgĎ–Éd Ł··—$Éňňrę˛Ń éIĐ{>Ő÷_ppp ˘¶¶Öč&ő ÎÎÎ3fĚĹĹĹEEE%%%_|ń5ËĺöööŇKcc#…B´ęîî^__?HĽBˇĐh4€Z'°Ůl.— şü,{LŁşJ>ź?ţüäädCKbbbMMMrrr`` ,Y˛$77·±±ŃĂĂcÁ‚ŮŮŮ ľľľĎÔ‹łł3łť:;;ŕęŐ«ćJś;vńn6x~€Ŕ`Ř öŔ`hń@ˇPěŮł'88Řßß˙ÝwßMIIAŻ5ˇ¶¶ö·żý-Zđُ}űöÖÖVjĚŕŕńăÇ»wď‰D‹/ ű׿ţŐ×÷l7ob_‡Ť*FÚ‡ľ˙ţűÖÖÖIIIgÎśůŰßţVWWóT °Ůě«˙ĎŃŁG9Îľ}ű†^I’›7o¶µµ=tčĐ™3g>ýôÓŰ·o'''ko^FÚřűű‹ĹbWWW++«×^{mĎž=ŕË/żÜ´iSff&´¶¶úůůedd€R©ôóó‹ŠŠŇh4~~~jµššÍÎÎnĺĘ•rąÜ¨—ÎÎÎÝ»w®ZµęČ‘#­­­† ŐŐŐőőőkÖ¬±łłăp8S§N‹Ĺ===hĂîîî˝{÷=z5>xđ`Æ ‹/ ˝pá‚Q_˝˝˝‰‰‰AAA"‘čŕÁ:ÝϿܬV«©e›†ŐÖÖľűî»R©tůňĺAAA—.]:zôčŇĄK‚‚L{yŢŚ¨ÝÝÝ·n݉DÔF‚ D"Ń÷ß?gÎś’’(++ł¶¶.--€ŇŇRww÷ăÇŹŁÓ€ŤŤ uŰÖÖÖěěě©S§u”ŘŐŐuüřńÄÄÄk×®]ĽxŃáŐW_ …ź|ňÉwß}×ŃŃîîî۶mC&''···?~<))éüůóEEEđď˙ŰÇÇçĚ™3‘‘‘©©©F}%''÷őő;věóĎ?/--=yň$j·±±ˇ–=`XKK‹JĄĘĚĚ\ąrĺîÝ»5MVVÖĘ•+>lž2#ęA[[8::µ»¸¸¨T*ooďŰ·oëtş˛˛˛ŕŕŕŰ·oëőúŇŇŇ9sćPŃ_"22˛§§çĂ?4 ČĎĎŹŤŤ'NŚŽŽľxń˘áQ!‘HŢ~űísçÎ…‡‡GGG=zÍ´ZíĹ‹cbb««ë¶mŰśśś`íÚµˇˇˇL&“Ĺb]ÂÓjµ.\řŕlllĆŹżnÝşK—.™îř“Âôzý{ď˝7fĚąsç€aą˝˝ý ópŃßÝĐÔÔäââBmoii7nśP(|ĺ•W***ĘĘĘ>ůä“Ë—/WVVŢşu+>>žĚfł?m*•JpvvF«...ÍÍÍÔkkë+V¬X±‚$ÉŠŠŠĂ‡ďÜą3!!A©TęőzÆ3gÎD 2™l×®]A¬T*µZíŇĄKŤöqa,‹ÍfAÔĺAöî91˘X[[{yyĺććĆÄÄ –¬¬¬ßüć7ąąążţőŻŔŰŰ»¨¨H©Tşşşzyy´´´Ě1ăŃŁGCďeܸqĐŘŘlS(¨‘X__źALź>}Ýşu[¶lôŢ]ss3:Ţׯ_×h4oĽńĆŢ˝{SSS§M›VSSsýúuj_¶¶¶ ăôéÓcÇŽ€ŢŢ^µZmúęca42ŇóD±X|á‰DRWW×ßßßŐŐYYYŢŢާNťš9s&A^^^yyyoľů&‹Ĺ"BŻ×kµÜQÉ6›=wî\‰DŇÖÖV__ěŘ1C†Ĺ‹—––fff677÷÷÷×ŐŐĄ§§űúú˘ çÍ›—ššŞV«ëëë8 ×ëI’&“ŮŃŃqâÄ ˝^O}j`łŮóçĎOIIQ«Őmmm ŮŮنG ť6iÜÜÜ<ŘŃŃ!‹˙űß_¸p!((ČÉÉ)''fÍšĄŃh<==ŕWżúUOOšŘŰŰO0!00ÍěžĘ¦M›ĆŚçííjČŕęęşgĎž~ř!**jůňĺ[·nuuuÝ´i“aC&“·dÉ’yóć ‚¨¨(±XĽ~ýúyóćMś8qűöíÔľ6nܨÓé"##Ł˘˘lmm×®]kxZö aŁłÝŹE*•†††ď}çţţţÚÚÚ)S¦Ą aÇŽR©Ô,ŮFĹue‡% —Qá†v°ě=Ŕ`0ě{€Aíý…W^yüüüĚ•óT˘ŁŁÍ•Ęś÷wţöŰoÍřÍ ĚSY´h‘ąľ×†ďóŤŔó {€Ŕ`Ř Ŕ˙I3At¶7IEND®B`‚qwt5-5.2.3/doc/html/functions_func_0x74.html0000644000175000017500000003031112052741152020160 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- t -

qwt5-5.2.3/doc/html/graph_legend.html0000644000175000017500000001352212052741143016777 0ustar gudjongudjon Qwt User's Guide: Graph Legend
Qwt User's Guide  5.2.3
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
qwt5-5.2.3/doc/html/inherit_graph_30.png0000644000175000017500000001142112052741163017323 0ustar gudjongudjon‰PNG  IHDRKXóŕBHbKGD˙˙˙ ˝§“ĆIDATxśíÝyPSçÚđ÷$a“$ a › Ö"¸pŰĄBË`]ĆB‹X( j+vT@¬K­h­âhEëU´UîÜQqjYÚK©÷¶cA°~­ą˘TH €l°„°&ď÷ÇńKC{L4>żétNŢśsŢ÷%>s–ś<1F#E1ôOD8Ć "c€1ŁzŔŔnßľ˝wď^CŹčŔ.\¨ŃHŔ˝ô\hhčíŰ·}|| =0)ä‡xőęUŤv8†¤ő_xľ„††jm‡ëpŚD8Ć "c€1ŔA„±‰DQQQl6ŰÔÔ”ËĺnÝşµ­­mäMąąąú‚ÖwuK,GFF:99YXXĚś9s÷îÝÝÝÝăÚĂČÄ×®]Óa:Ć„Ďç/X°€ÉdćççKĄŇĚĚLˇPčăă3jŹŔÝÝ˝§§G‡DaŚ—/_nooĎăń¤RiFFFQQQ\\śn{133Ă­Yłf\{xs× "ŚÉćÍ›#""RSSÝÝÝ---˝ĽĽrssmmm8°téŇ””„ĐăÇŹ ‚8räB¨ˇˇ ŹŢŢ^‚ $ÉĐ}Şáą\nZZšŤŤ ›Íľ|ů2ąBWW×ĆŤíííťśś¶oß>00€*--}íµ×,,,8ÎĹ‹U›ź:uŠÁ`ܸqC(ź<ÜŮŘŘŚÜESSSII‰H$Ú˛e˶mŰČĆřřxą\^ZZzóćÍ›7o¦¦¦"„öěŮóöŰoKĄŇ¤¤¤íŰ·“kÖ××ß»wŻĽĽ|ѢEsćĚY˝zuNNNkk+BhŢĽyް‰‹‹kmmĺóůůůů.\ČÎÎn‡*ZÇ0®Yť–••ýňË/'NśĚÜ'[HHHHHČČëTTTŃß߯Ń^\\Ě`0ĎžZŁłµµ%âŃŁG3fĚPoŻ««cłŮsćĚ™6mŹÇ+,,Ľ|ůňĺË—‹‹‹ Îś93ö.LMMÉă<…ň伲ľľľżżÚ´ięĂ@ýţűďA¸¸¸¨oNľ‹b2™›6mÚ´iĆÇăíÚµkÝşuŮŮŮőőőJĄŇŐŐ•\íő×_'´îpä1™™ ˝ŠZgˇT*ą\.ůRŐűÄć>p–FÇd2ýýýOť:Ąj9~üxUUŐ©S§‚Bo˝őVVVVCC‡‡Ç˘E‹®]»VWWçëë;ö.‚Đh±··§R©ŞăL&»sçŽD"Yż~ýŮłgy<ކnľqăĆ%K–¨,XpřđáÂÂBr‡ˇÚÚZňÝĽĽĽśśśáv8ÂĆ; „Puu5ů˛ŞŞjÂsˇß@„1IMMMOOOHHxřđaOOOGGǬYłîŢ˝űé§ź"„ľţúk___‚ -Ztúôé%K–ˇP(úűűÉť´©‘Ëĺ#÷hff¶fÍš­[·J$’¦¦¦µkמ8qâÉ™'ŤÖÚÚzôčQ…BŃŢŢ®ľUTTTAAAJJJmmmOOĎÇ“““‚‚Č®Zµj۶m‰¤ĽĽ|óćÍ …bäjøţnfffaaańńńŤŤŤ•••ÉÉÉCăyŚsWż*á`LfĎžýÇ´¶¶úűűOť:5==}Ë–-çäÉ“ˇĄK—öööúůů!„Ţ|óM™L€rrrš9s&‹ĹjmmíííµRłaÆQ;ýć›oÜÝÝgĎžmggwčĐ![[Ű}űöůűű{{{ŻZµęĺ—_ÖřšĘ××777777×ĂĂĂÚÚ:88ŘÝÝýěŮłä»gĎžĄŃhnnnţţţ111«WŻu‡CÇ€"ż P—0Ü,Îś9Ă`0ÜÜÜcbbLLLĆň×ÚďŔďĂ_täŻ'öëŃžž@đĘ+ŻčzPFĺŇĄKË–-#O×srrvďŢ]VV¦ó^†űá&ÎÜÜÂ{TdTwttĹâ/żü’Ľsˇ7á<]©©©‰ÄŮŮŮÓÓ“Ăáw.ôľ-ŕébłŮß˙˝ˇz‡c8Ć "cgéĎ…BIˇcůÖt2ÚŰĺŐŐ-b±¤µŐÜÚZ?rţ Q*ń?9’Ç`˙ç?źčj·MMťb±¤ŞJ˘úuu‹TÚ…˛´4ł´śnÄ4#<##C*•d(/++«ˇíăë×:ô/‘¨!„1’J»¬¬,ǵsąĽŻ˘˘Q,nyô¨E,n!?nëďWP(„‹‹őôé,‡č9}:ËÍŤÍĺÚ™ŃBCCE"Ńąsçt3C` "‘HăW¤Až——7\Öe +?ţřc`` ę%Ć87÷ţáĂyŐŐ‚@ŞçŹD"‰—×°ŢŮŮSUŐLĆđÇ BaŁXÜŇŢ.GQ©gg+2—-›3k{út–ĂTSSíçk .ĚČČŤŤŐĺ$!¬[·nhă Oťüˇ<<ĺöôˇĘF@ĆvJĘőňň& …üď_«UW7{yqBÇdr fŤâädĺćĆöós‹`q8¬éÓYŽŽÓLL¨cRbbbbb˘Žç žpn?˙\zěŘő’’:*•@+•Ţ51ˇţóźE/ţ&Kšš:BA88Luuµ™;×)(čo\®Ť««-‡Ă˛´43ĚŔs"\ßĘË;ŢyçÄÝ»bŤ‚V(´ś1)ŠŽŽî×_źŕéęjĂĺÚ×Ěú-xŢÁ?˝˘Óçź>]†F (‡[MˇŔtşůáĂZîÉ0.đÄ‹^ ´±ŮT*˘Ń(ĂÝýB‰ĹZR0^p ׫žžŠ]»ţ´˛¬ěńýű5÷ď×Ü˝[]U%Q*1ŤFĄPP_ź‚\ł­M.“őŇép™ &e‚ÇđÉ$ÇG/|Îz S//îřýýďk w …‡sr¶$%˝Ęá°Č§Ů‚H:źFďŕ…2‘c8źĎăŤ7ÂĂĂóóó]\\ÁŢ˝{}||nßľ­ž;n8ăĺË—żóÎ;<ĎĘĘŠĎçÇÇÇÇĹĹĄĄĄM`0ĂŃš+o\ô–ł~ĘSoďŢŢOWÉz˙üłVˇPpąŁd `tę‰WŻ\ą‚Ć_yńâĹqqqę-JĄŇĎĎ/11qÉ’%GŹĹ×ŐŐ!„>Ś1®ŻŻWďńŢ˝{Atww«6/))yď˝÷Č厎Ž‹eoożgϲńÁŢŢŢćććÓ§OżpáśťW&“ĹĆĆÚŮŮ9::~ňÉ'ýýýZs÷’[q8śsçΑű˙öŰoUťľ˙ţűÖÖÖ'==}hľ[­[ íwÔ?BčĘ•+Ł®€®Śű,}ňÉńçÎť 9ëĐőpË1|ňÉńń‹šłĂ1čݸŻĂu’rÖ ă>Kź|r|ČY€ŢLä۲I&LJśőčÍD"|’ÉńÝÝÝ!g=z˘~Q>ĆoË´ęîî...žŕÝCKOOohh —łłł=<<žRGî´ýŇŮséĎur|Ăć¬× “őŢľ]YT$4ŕ€Ń€çŇB(55566ÖŮŮ™ ŔŔ@=笗Ëű<¨˝ż¦¤¤–Ç«zô¨cLÄ­[»á±60Iáé=g}wwůË“ââGwîjkĄJ%¦P„Růäçâc†Ţ†ŚD¸^™›żśś|o۶˙U(0•J(•ĺĚRĹ6iÚ´)đĂ20yázEŁMmnî!3@hÍî˘ÂáŔů9Đp˝’ÉxÉÉ›ţüĺĺ•P©Äpi^¨TJssGRR¶«« ‡Ăruµuq±W~EHáúĆfO‰‹ ĺó돻ţÓOŇhDżfśS(;;fyyăĎ?—ÖŐI %•JqtśF&lăpX\®Ť«« ‡c3eŠ©Afžá†áááđŹÄü÷żâŻľú÷Ť|*•˘Püç ĹŔ† ţ+Wţů˛˝].?É‹ţčQËýű5"Q“LÖ‹23Łq86dRtçIBekňľ"śN§#mĎ`"˙Č$//ÎĄKîÜ©:tč_ż˙^ĄŠsĄrĐuřÔ©S<=§xzúŐ öŞ$ęü!JOżŐŃŃ21ˇ::NSŹy77öK/ŮŃhšŹ?___¨rc¬¬¬~űí7wwwőF®——×ŐŐĄß˝@,--Ő ž¨`ŚŻ_päČŹĺĺŤA(•¸´ôŕx«ˇ!aŻZ@˙_>A=ě9ÖýűEQQkŻ^˝ŞąC ˝rĺŠFŮ"Íô”*66¶WUIŞ«źüG.wvö „¨T˘ľţÜŔ€LW}""ü9 źęÂ--˛ęjÉwßý’˛ăa3·çÖ‡;mĎ*UIěY,:‹Eݬ´%żśĆ *"`Ě Â0fá3p0&“©rŁĂę1˝˝˝NNNŞ—}}}}ôÁ°µµMJJ"_đŠ: ÂÁčř|ţ‚ Lf~~ľT*ÍĚĚ …>>>ŁąÉĺň¬¬¬wß}·ĄĄEŐ¸cÇ>ź/nܸqńâĹóçĎcŚ—/_nooĎăń¤RiFFFQQQ\\śn3´Ţ†Ff±Qé­˘Îs6ă ź*7………ZKĐHĄŇ‹ĺěěĽk×®ľľ>}šÁ`¨C#şäryTT”ĄĄĄŤŤÍţýűÉĆź~úÉßßźN§[XXĚš5kçÎť˝˝˝ä[---áááVVV_|ńŮřůçź3™Ě—^z)''ÇĂĂcéŇĄę˝HĄŇČČH‹Ĺb±>üđCą\®ő:<>>~¸XŐ:ŁQ#|hżŁ~Fá@Ó3XĺFoőgôưuŕ:LĐSŞróLŐźŃ ĂÎ"<[RSS%‰łłł§§'‡ĂŃsý™§Á°3‚oËŔłEĎőgôŔ°3‚c8Ć "c€1ŔÁť6€–-[fč!€§˛)żĐ¤Ribb"ÔŔ0–––ÇŹ·˛˛Ro„ŔÁu8Ć "c€1ŔýÖöGN&đŹbIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_analog_clock-members.html0000644000175000017500000011255012052741137022510 0ustar gudjongudjon Qwt User's Guide: Member List
QwtAnalogClock Member List

This is the complete list of members for QwtAnalogClock, including all inherited members.

boundingRect() const QwtDial
Clockwise enum value (defined in QwtDial)QwtDial
contentsRect() const QwtDial
CounterClockwise enum value (defined in QwtDial)QwtDial
Direction enum nameQwtDial
direction() const QwtDial
drawContents(QPainter *) const QwtDialprotectedvirtual
drawFocusIndicator(QPainter *) const QwtDialprotectedvirtual
drawFrame(QPainter *p)QwtDialprotectedvirtual
drawHand(QPainter *, Hand, const QPoint &, int radius, double direction, QPalette::ColorGroup) const QwtAnalogClockprotectedvirtual
drawNeedle(QPainter *, const QPoint &, int radius, double direction, QPalette::ColorGroup) const QwtAnalogClockprotectedvirtual
drawScale(QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const QwtDialprotectedvirtual
drawScaleContents(QPainter *painter, const QPoint &center, int radius) const QwtDialprotectedvirtual
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
frameShadow() const QwtDial
getScrollMode(const QPoint &, int &scrollMode, int &direction)QwtDialprotectedvirtual
getValue(const QPoint &)QwtDialprotectedvirtual
hand(Hand) const QwtAnalogClock
hand(Hand)QwtAnalogClock
Hand enum nameQwtAnalogClock
hasVisibleBackground() const QwtDial
HourHand enum value (defined in QwtAnalogClock)QwtAnalogClock
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *)QwtDialprotectedvirtual
lineWidth() const QwtDial
mass() const QwtAbstractSlidervirtual
maxScaleArc() const QwtDial
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtDialvirtual
minScaleArc() const QwtDial
MinuteHand enum value (defined in QwtAnalogClock)QwtAnalogClock
minValue() const QwtDoubleRange
Mode enum nameQwtDial
mode() const QwtDial
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
needle() const QwtDial
needle()QwtDial
NHands enum value (defined in QwtAnalogClock)QwtAnalogClock
orientation() const QwtAbstractSlider
origin() const QwtDial
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *)QwtDialprotectedvirtual
periodic() const QwtDoubleRange
Plain enum value (defined in QwtDial)QwtDial
prevValue() const QwtDoubleRangeprotected
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtAnalogClock(QWidget *parent=NULL)QwtAnalogClockexplicit
QwtDial(QWidget *parent=NULL)QwtDialexplicit
QwtDoubleRange()QwtDoubleRange
Raised enum value (defined in QwtDial)QwtDial
rangeChange()QwtDialprotectedvirtual
resizeEvent(QResizeEvent *)QwtDialprotectedvirtual
RotateNeedle enum value (defined in QwtDial)QwtDial
RotateScale enum value (defined in QwtDial)QwtDial
ScaleBackbone enum value (defined in QwtDial)QwtDial
scaleContentsRect() const QwtDialvirtual
scaleDraw()QwtDial
scaleDraw() const QwtDial
scaleLabel(double) const QwtAnalogClockprotectedvirtual
ScaleLabel enum value (defined in QwtDial)QwtDial
ScaleOptions enum nameQwtDial
ScaleTicks enum value (defined in QwtDial)QwtDial
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrollMode enum nameQwtAbstractSlider
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
SecondHand enum value (defined in QwtAnalogClock)QwtAnalogClock
setCurrentTime()QwtAnalogClockslot
setDirection(Direction)QwtDial
setFrameShadow(Shadow)QwtDial
setHand(Hand, QwtDialNeedle *)QwtAnalogClockvirtual
setLineWidth(int)QwtDial
setMass(double val)QwtAbstractSlidervirtual
setMode(Mode)QwtDial
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setOrientation(Qt::Orientation o)QwtAbstractSlidervirtual
setOrigin(double)QwtDialvirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setScale(int maxMajIntv, int maxMinIntv, double step=0.0)QwtDialvirtual
setScaleArc(double min, double max)QwtDial
setScaleDraw(QwtDialScaleDraw *)QwtDialvirtual
setScaleOptions(int)QwtDial
setScaleTicks(int minLen, int medLen, int majLen, int penWidth=1)QwtDial
setStep(double)QwtDoubleRange
setTime(const QTime &=QTime::currentTime())QwtAnalogClockslot
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
setWrapping(bool)QwtDialvirtual
Shadow enum nameQwtDial
showBackground(bool)QwtDial
sizeHint() const QwtDialvirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
Sunken enum value (defined in QwtDial)QwtDial
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
updateMask()QwtDialprotectedvirtual
updateScale()QwtDialprotected
value() const QwtDoubleRange
valueChange()QwtDialprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
wrapping() const QwtDial
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtAnalogClock()QwtAnalogClockvirtual
~QwtDial()QwtDialvirtual
~QwtDoubleRange()QwtDoubleRangevirtual
qwt5-5.2.3/doc/html/doxygen.css0000644000175000017500000004533512052741134015670 0ustar gudjongudjon/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 13px; line-height: 1.3; } /* @group Heading Levels */ h1 { font-size: 150%; } .title { font-size: 150%; font-weight: bold; margin: 10px 2px; } h2 { font-size: 120%; } h3 { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited { color: #4665A2; } a.codeRef, a.codeRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 4px; margin: 4px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: bold; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; -webkit-border-top-left-radius: 4px; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; } /* @end */ /* these are for tree view when not used as main index */ div.directory { margin: 10px 0px; border-top: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; } .directory td.entry a { outline:none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { width: 100%; margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; width: 100%; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { margin-left: 5px; font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 7px; } dl { padding: 0 0 0 10px; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { margin-left: 0px; padding-left: 0px; } dl.note { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00D000; } dl.deprecated { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #505050; } dl.todo { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00C0E0; } dl.test { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #3030E0; } dl.bug { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 20px 10px 10px; width: 200px; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } qwt5-5.2.3/doc/html/controlscreenshots.html0000644000175000017500000000420112052741136020315 0ustar gudjongudjon Qwt User's Guide: Dials, Compasses, Knobs, Wheels, Sliders, Thermos
Qwt User's Guide  5.2.3
Dials, Compasses, Knobs, Wheels, Sliders, Thermos
radio.png
sliders.png
dials1.png
dials2.png
sysinfo.png
qwt5-5.2.3/doc/html/analogclock.png0000644000175000017500000003055112052741137016461 0ustar gudjongudjon‰PNG  IHDRßé+¸uË IDATxśíťy\Őu˙ďŰş_oÓ3Ó=«4Ú…6¤Fb‘ RDEQ â,Ěn#dăčg¸˘Pĺ”eǧ*śŚI)ă"`$!AH2«3’fßzď·żwÍŐ›73=˝/3ďóÇÔë7ÝďÝîţöąçž{îąÔ•W^‰llĘşÔ °±™[ť6ĺ‹­N›ňĹV§Můb«Ó¦|±ŐiSľŘę´)_ŘR7 |ˇ(Šă8Žă¨Q Ă€ó)^Bŕc ş®†!˲¦iEiţtŔVç†q:ť *Ś1ś„Ś12 ΂ĺ¤ĺ"4M3 Ăqy2ĆX×uUU%I*Ě{Şxf®:)Šr:ť4M#“ŕ,B4 n2Q¦Ďx‰ł,˲,ĎópŢ0 QEÉĺ.Ó‰§N§ÓÉ0ŚĹ°eĘ„JťŇľN)nš¦˝^/<Ó0Śd29Ă•:#Ôép8X–%^cúŠ=Ń4  Ă€­e|x×ÄĂ-Č1ŤęuÂ[O&tźĎEI&“pńĹtV'ô›đMOůŐbŚéQŔ%˘LłXSßE×uMÓĚÂ5_dÂc‡Ăáp8(ŠR%Źggď+‘i¨N†a1chň>ôs‡ĂQ„¶_Ó|RÓ4ѧ–Ćă¸ÚÚZ„$I‚ L{™NuRE–ÚRÂŘŮĺrMięŠY݆a€XS{®.—Ëĺriš–L&UU-js‹ČtP'ÇqdčŤ&|€vÝn7Ă0Ĺn_&Đ4mţŤRÉ-’eY¶şş!$Š˘ ÓĎ1­`ubŚÁďŔ(ŠâyŢăńä * D©†a¨ŞjyŹćaĎón·[–ĺx<>ť4Z‘ę]’c4Îł¤iÚétz<ž2é»sŢ«Ş ÖÔň{3 ă¸`0#'łĹ­\*Lť Kb,-ߌ9<Oq†8%Ćp†a†î©ůż†a°,4M‹Ĺb•>kZIęä8Î҉ÉŤş\. ,4UUUŹ=öŘwľórfÖ¬Ywß}÷ŇĄKu]˙đĂůË_ĆăńÂ5"_ÄŐuÝb) Ă iş¶¶VÓ´x<^ąĂ&Ş"V˝±,;Y(›eŮŞŞŞ˘Ë`0¸}űö%K–8ťÎŰn» NŇ4ý/˙ň/|đÁxžß±c‡¦i˙ôO˙Tś&!„0Ć–ń¦iMÓ˘Ńh%öőĺî–A˘Đ„ă–ekjj‚Á`1űńáááźýěg»wď6ź uuużţőŻA…Bű÷ď_µjUŃš„F?%ďŹŇ4 ‹Ö±ä‘˛îŮa¦‡ÄŐÉç^d{9%ßüć7ÉĂÖÖÖžžžâ7LtÁt”ů_ş®ó<ďrą˘Ń¨,ËĹo[v”©:ÍńK3 ĂTWW“<´rŁşşz۶mëÖ­ŰłgO©Ú@¦ŁHTÎC˙ă÷ű5M‹D"x*»ž>\86«“aŞŞŞşşş˛•ćÖ­[üq†aţúŻ˙şŁŁŁÔÍA,Ë:Ëěa ĂÔŐŐA2T™SF¶ć‘!Vb>IQTUU•Çă)aۦd۶mk×®}ä‘GşşşJÝ–‹€?Ę0Ś9™(.—Ëív‡ĂárŃ—‘:I’›Žă@™Ő9Žű“?ů“]»vEŁŃR·e ŻišŮ…Žľ¶¶V„‚żrˇ,Ô9ˇ—IÓtuu5Ďó%jTŹÇó‹_üB|‡Ä›Ę–eiš¶GÁ:ťÎP(T†žhéăť Ă?ó<_SSS‰“ăĺÔň™Ó4‡Ë-żÄ¶s|^0MÓ@ l‡>ÓČđ7GďÁ­©©)·^ľdę¤išäŰÉó|mm­m2 Ś–(Š2{˘eŘË—`´9DăÓkkkŔ„Ň¬ŞŞzę©§Ň??3ÉôÓ€“ů7 ˘¨şş:’UZJ`;ÁŃ4(ł¬gĚóÚéśź™dýi@ ©Ą—7 Ăď÷'“Éd2Y€Ćf@éGEn·Öʤ ąąůŃG? žěüĚ$—Oę>ϰ,+B,ËS벡”Ł"X[UUUÂ6äȦM›Ö­[‡:qâÄď~÷»R7'{` ´9hŻi,˝ŠD"ĄjUńÔIŢ6Y$*˝_ľâŠ+ÚÚÚBÇU´:ŃhĐ^Q2$ŇuÝétÖÖÖ†BˇŇ4©ř·„QQ}}}ĄKÓĚ´ Y¦ću]gf˛Ńjˇ)¸:!˘iŽPp×ŘŘ8áȦ°¬¸'Ö¤řËY «Nsäzv—ËŐŘŘXćóć3śń%!`  ‹,ĐŞÄěEą\®`0X¸;Úä–eÍî h1;˝B©“˘(ËBźĎ—µ4{{{' ”Lv~f’÷OĂ\p™Z´®Ż ·y[óźĎWSSS{Ů(Je® ëz0,Î )˙ę$+^Ż×–fĺ…ĐČC?ÇCËł:Íĺ*áŚĎç›r*hPÎćąc®î„F§ă@Áď›ÇkYjRbŚ!M3Ź·([¦MĽs2 ¸yEG ýĺ2---yąx$ću˝<Ď744äĺâS²ěÖ­[ďşë®#GŽłŞĄĎçs»Ý###ďľűî—_~Y´ű2 óă˙Řívwtt-Ű Cäv°ŚaÂ-AÎ[ ą:9ŽknnÎË•Óá§?ýéÂ… B˙öo˙öć›oíľĄâO˙ôOďşë.„Đ'ź|ňŁý¨·¶¬ObY6‹ ‚P{ĺ§g7Ź„`jˇ±±1/WN“cÇŽÁÁí·ß^kasÁçóÝtÓMpüŢ{ďůî Ăcňš¦ůýţMJçAť$~„G7ćijj*ňlĐÁ{{{1Ćn·űć›o.歋϶mŰÜn7Ƹ··÷СCEľ;äŐ›ż_MÓjjj ńŤçzE¨ÇЧ744]×őgžyŽ7oŢś/gş iiiŮĽy3?óĚ3ĄŞÝe(ôś…Ěä¤ÎńˇÍęęęRe?~üÔ©SE1 sçťw–¤ ůeţü…ÍÍł,'ďĽóNČĹűlÉWKš1ő°ąBľĐlćŠ,‰›^Ż·´î¦…ŽŽŽÖÖÖW^yeďŢ˝eR5 #-ş$‘HH’tćĚäü‘#G’ɤŰíŢ»woYíňF6H†‡†a¸\.Y–s˙đ3ž+›3†™3gŽ]˝#Źüńou»=ˇP¨łóËóçĎ•ş9ébžC‚­&sĽfĆ=»ŮjRŐĐĐ`K3ŹÔÔÔÖÔÔ˘¨ŞJ_©›“df4:_ű¤]fę4‡0Ćʧ"*V­­mŠ˘jšŤ–]E¸Ô@¤™<ÔuÝçóĺ8~ĎŕĹći!4Z^&—{ŰXđůŞšššEQ’$ńüůóĄnNƧŕačśă€$3ušýÜúúz»OĎ/—^şR–UUdYŽÇKY"&kĚćRěr™;Ě@ť$Őc UÇłľ«Íx\.׼yó%I’e©‚C`K4:0‚]>˛¶béŞÓOIQTÖĂŁ´ÔiÉö¨©©±+yäŽs,^ĽD–eYVúű{+1LK° Ź`ôśÝ¬rZęTU•l–Ę0Ě Y*TL–,YŞ(ަiŞŞôô”~=GĆo’ä÷űł¸ÎÔ&Đ<-ŠÉĂń[íň<ż}űö+®¸BQ”×_}ßľ}e5«QžĐ4˝|ůĄ‚ hšŤFĘv§ŔŚöQ† ÉC‡ĂÁq\¦+W§°ť–™!Žă Üf0|řá‡ţóź[6ąşőÖ[kkkwîÜą{÷îőë×_sÍ5µff˛`Á"ÖI’ĐŐU¦$š¦˙ćoţćÜąs;věصkĎóf«4HB% ĂČbň}juš’ÁĐ„[íŇ4˝aÆçź>‹őőő˝üňË×^{m¦ š´¶^&ËŠ®ŞŞE"áR7gb˛ŘG™„âaǧәép%•: Ă0Ď[:ŽÔ3C555n·űěŮłđ°łłsÖ,kj·Ť…ąsçŃ4ĄiŞ$ çĎź-us&öQ&zHge0ź°ó1ŘŃLÍg*-[ÂTSF‘śN§yďeQíyÎ)ikk‡zŘş® ”ş9S“Ń>Ę Ă»_§ÓińGS3©í´ä;ťÎ)ţ˘(2 C¬7¤QĄŮŽ™ISSłÓÉ˲˘(ňĐĐ a”f [údşŹ˛ežť¦éŚĚ礶ӲĎU:+î"‘H2™ś7oTĹ7o^9¬.(gZ[/A§˘ČÝÝe:"d·Ź˛ą¦(ĘăńÄb±4ş“ÚNóë†qą\S^ c|ôčŃ[nąĹëő666ŢpĂ GŽI§3“ÚÚ€ß_#˲¦©Éd˛@ĺ4ňěŁüă˙8S‹ć“ÄËQ&ŢçĶÓ\¬ !”~µ±_˙ú×;věxňÉ'5M{íµ×>ść g mm—)ŠŚ1Ĺ XĎeeËĆívÇăńtĚçÄąń$ ŇHçÎť›N#Ňaż˙űż?|řđŰożmY77ŁđůŞ®żţϢѨ®ëŃhô˝÷Ž•şE!IJě–-[Z[[˙áţ!żuĚŽ"EQáp8‘HLůމ×™Ë{@™µ|µrëÖ­7nloożúę«űú*)ý;ʬ]{9Ď»TU•$ńüůłŃhtę×ööö‡zčꫯnhhH&“gÎśÉďő©QB,ËfŻNłŐmllĚcçÝwß Żű|ľ«ŻľzÖ¬Y===ĄÝî®řđĽëŠ+®cC’¤Ď>ű´´iłgĎŢąsçM7ÝäóůH`2żĄüĚ~'B¦iQ§|רÓ\†“çůü–9rä ‹-‚çĚ™łyófŻ×ŰŃŃQY rá˛ËV{Ě%\rÉ%›7oáüůóť<–Ç]}ő×DQŔ BâôéĎKňł„zĽ<đŔ˛eËhš†ďýŐW_}üńÇ?˙üó} dŇŞÜLŮąO`;ÉhťeŮ•|W壏>úß˙ý߆††¦¦&„ĂáX˝zu[[Ű´Ż »bĹĘÚÚZEQu]ŹĹbçÎu–¤{öěٸq#){tâĉÇ{ěťwŢ)ÜO,éâiš–e9őČxŚ:-+‡Ľ^o:aά‰ĹbÇŽűꫯ.\ţĂË/żśwgĽ¬`ćšk6Š˘l† $;:ľ,UUžça˙Ůľľľ'žxb˙ţýEđţ!Ç°Ł•$I)ž?¦× O.”]Ćh¦@eĂ-[¶¬ZµęŕÁE¸c Y¸p‘®ş®Öu˝„+4í®±ćxý´ßg˛x<žŮłçȲ Ĺö‰¸$‰Sżlş“¦ëIٱEĂH…;›Ľ°|ůJČ«€ť\fřx`‰+9Ž ýIkĽÓv:óĂá\´h‘$I° Ç0´Ph¤ÔŤ* Ý“¤ĘOčz˛h¬ÓYŞ].§%Ë–-W>^I’Šěqň<żfÍX±;::~« HŤ¦i¤—¦izÂý®¬–Ňž^Ď Ă,]şB’EÖu­żż·÷eY¶˝˝}ăĆŤ+W®”e…e˛,)ŠňÉ'áîécv=']P'@ٶ3_,^ĽD×UXh ŞŇđđPAŐhš^ąrĺĆŤŰŰW«ŞĘ0ś h˛¬†Ăďż˙?oĽńZąMëĂ'CP§Ó KGĚĎaÍum ±üĚ„˘¨K/]%Ë2|Ü’$¨ô!EQK–,ąćšk®ĽňJĂŔ4Íʲ®ëT2™ŚD‘HřŔËv(f^ ©–źczv{´ž/ćÍ[!$ř+IR29őŮŚX°`Á׾öµ 6Đ4CQŚŞęSk’$EŁ‘ÁÁ×^{őĚ™Óů˝i~ŃuťŚÂa»b«:ͶԶťů’ĺ «E!Ź‹‡fĎž˝~ý†kŻ˝†ç]S†TŐ@HG'“B<ëéé:xđwĄZ®”š¦:!X4>^4Fť¶Ó™fĎnq8Éd–Îčş622śă5ëęę6lŘpíµ×VWWë:6 ¤Şh´¤N$Éd˘łó«_íë+ĆŘ+/†A "Ă0ă‡ícÔi—ŰĚ `8áXQ侾ެ‹çWWW_uŐU›6ýQCC˝ŞQ’ta=7ĆŘ0p2O&“_|ńŮ믬¸}d,ýřxÇrŚ--“=Ö+šşşzŻ×‹Ĺ(ŠÂ©ŞÚÝÝťéEĽ^ďĺ—_ľyóć9sć(І-Š:B˘x †aÄă1QNť:ůć›o„ἕ‚cůŃŽďşYó®Gö΂ąÓÖÖ†c¬ŞJ8RŐtWCü|Ó¦?Z˛äIRhšE ! !L쥮ë±XT–Ą˙űż÷~;«ŕ,fřĄ‘Îťă8š¦ÍsC¬ů©ĹnÝ´Łşş&Ćăqř0E1­@ŇŘřąJÓ¬ hS†a táK]FŁI’˙ç~˙Î;‡ˇ4 áó‹Ů&rDz¬ąÜĂEuÚá¤ÜYµŞŤä|¨Ş˘(R Ű6.~îEˇ Ć|g0G‰„eY>zôđ»ďľSnqő\0ŚB“ŞÓ¶ť9âńxš›gÇb1ř EQśĐpŽŹź+Šaôř˘ń°YT$’$ů­·Ţx˙ý÷2ÝŤŞü1÷ăÇYLäEżÓvćČĄ—¶©Ş‚±…±aĆŕŕăăçŃş>ĆRೆB!Qßxăŕńă˙7]ÓéII9’*oţďEŰiçÎĺ‚Óé\°`~<žO_–ĺţţ>0 ĆĎ)ę˘Oi^‰„ăńřkŻ˝zęÔIڧsQ>sÁĂTę´mg.ŔţŐłő$Iřó?˙óŤ7Zâçh'Ę0°˘Čáp( ˙îwŻ|öŮ'Ĺ~ĄŔŇ'X{vrd«3kX–[˛di"qa­iZ]]Ýwż{Ź%~>ş®Ë˛\)“ăÂ\·›`«3'hš^łfÍŠ+EQ"ťĆF[Űećřůd/7 ]ÄĘšĎ/ş®“-cRőě©#J~ż˙ž{îikkSĺ­·Ţzţůç§}‘â)Y˝ző}÷ÝgčěŮł]]݉D¶ f¦ˇˇiJ{ŤĆdY¬¸ÉńÔ´´´lßľ}ńâņattt<÷Üs§O§ę Ě~')ÝMH7˘t˙ý÷ď{ßóx<»víÚ˛eË«ŻľšĂ»¨xÖ¬Yłk×0Ć4Ťëęę.śßÓÓ÷ŃG'GF†V¬Xát24Íč:6Ś1•ÎBš¦ B˘r'ÇSóŕľ˙ţű˙řŹ˙hĆÖ­[ďż˙ţť;w¦ůZ0źć3iŮNżßżbĹŠo}ë[˘(&‰çž{î¶Űn›Pť‹/^ľ|yŠś9sćÓO?Młąe MÓß˙ţ}ᡡ‘‘‘Ƹ·a¬9ťNM3’IcЦ)–e†¦(Ę0 ]74MO&“‰Dâřń㯿~°ś'ÇłűÁ`0|á… Ăp»Ýš¦…BSĽGł˝śŔvšçŮ'»d‡®\Ó´ĆĆĆ źąbĹŠ[o˝5Ek~ó›ßLu®]»!„52AŁóĹņQ__ŹŤĆˇ,Ƣ`6EÓ´Çăv»ť_˙ú ›7oęëëëčřŞ{”töď)Ů}ŹĂĂĂ·Ýv[ssóĎţs„,Ë»wďN}#ł"SŤŠR¨sxxřüůó·ŢzëóĎ?ďőzoąĺ–]µj•¦ińx²ˉŰíńx<,Ë% Pçh‘_l!Ř>ŹRU™¦ą––ysçÎ×4!ět:t]=gÎś{îągńâĹ‚ ;věWżúUęĽ*𦛛›É{9{öěŔŔĹÔjÆ Чűý~»6bF,Y˛ě˛ËV;N·ŰŤ–$™˘(·Űíóy'TčŐu!¶ł,Ë:Mł4MŃ4D÷hš¦˘SO)e|›"ŔŘĐu•eY§Ó1<<ŇÝÝŐŮŮ ţ@OOO9ě@β,Ă`Ś;::ĚcÁ‹¶łŞŞĘ.S“--s›š  tuŤ©kŔqŹÇírą].7¸ÝźĎëóUy˝>ŹÇĂóĽĂÁ;śa#ę–śĂá iÜľ (óL\ST‹FkšJÓřÇ}}}]]]ÝÝÝ˝˝˝ĹßxŽçůúúzřE†ńĺ—__\żzQť^Ż×®ÜY*xžwąÜŘívů|UUU~Ż×ărąyŢĺt:9ŽÓu]× °µ Ă:˲4ÍŚšá 9uÖ¸wŁQXJÓh˘(ýý}ź}öه~(Š/5ęńx‚Á ëş~ćĚ™‘‘‹eú.ŞÓĺrgëA›\ fŘlŹý~ż×ëőx|n·‹çy‡Ă  š¦–e`ŐÎč>ŞŚŮ» KÓ”®«<ďřňËŻŢxăŤcÇŢ)ÜŰ©ŞŞŞ©©cMÓÎś9cž^şďś®Ů×Ó QDqŠ0 B˘h‹].78>_śq:y‡ĂAQ”ač#°»ŕ‹˘1Ň4˝Đľ©y +űĚ˙˝8“™uE›2c#‘H¤3;ʲěX§Âírą"‘đéÓ_ays4*?k :rdŻz›™hšŹÇâń‚o=!dr˘(R˛ŹpŃç(‡ř‚ÍLĂś°ٱć˙^ÜĘ˝¨Ť˛±AŤ]馪ŞĹD˛–y$[¦6Ec =;¨N–e‹:ÇDŦßb~›rĆ’‡)I’eşuŚ:ÍEBll Ťyć||8 ™3čň´)..—+…Ó‰,~§­N›bbV§®ëăK:EvťŤMA1űť˘(Ž·ť´ů”˝Dݦ×iH’4©:‰µF6Ĺçy†aHFU2™ś@ť–ůM[ť6ŬY…ĚNË6ěŤĆVP˛Cž6ĹÁĽôJ–ĺ ×î](°„FUlŰmŠlŚ Ç˘(Nhi„ěJFNŮc#›B›»Ń4 ®g<źÔvZĽŃ"äëŰĚpŞ««ŃčhÇ0 A&L‘»ŕqš]O{`dShČj „ŞŞ“ڏ5ďBbÇäm ŤŮéa˛$ü &öj†cŘ §M´™™ŔÎ/¤w(šĚv^T§ů¬ízÚŽ@ @Žu]a˛HŃEwÓŽzÚ˘(¦X[wQ‘ć@ěb[ ĆŮĚdhšv8¤D8NQCoĚPÝő´;w›B`îÖišŽD"iŮNsß;4¨}ăaYöúëŻ˙Űżý[{'٢Á0Ěž={®»îş"—±&uiBÉdRQ”Ó“LKK yŕp8 OćÍĂţÂŃŢŢţĐC­_żľ±±1™Lž9sĐrT$IDAT¦Đw´AmÝşuÓ¦M«WŻľęŞ«űúúŠpSš¦gÍš…Fc—ĂĂĂ)ěŕujšf©eţ ÄěŮłwîÜůŤo|ĂçóÁźĎ÷ć›oîŽ6„»ďľ»¶¶!äóůÖŻ_ßÜÜÜÓÓ‹¶ćBccŁĎç#毣Ł#ő¦cÔ‰2ËcĚó|!Zéóůî¸ăŽ{ď˝·©é®SÉdrďŢ˝O?ý´=+GŽI&“‹-‚oĽĄĄĺşë®óz˝…›,ś?> ‚ĐÝÝťzxcU'ËŽYÇ0L~}A–e·nÝúŔ,]şVÚëşţꫯ>ţřăźţą-͢aĆéÓ§ßzë-žçA44M/^ĽxóćÍ‚ ś?>ďßĎóćÍ0ş»»‡††RĎűPW^yĺÇĺv»‰:Y–%Ýn^řéOş`Á2ezâĉgź}¶»»;Ź·°É”ŮłgßqÇmmmä{éččřáß»,Z´¨ŞŞ lź¦i}ôQęis«íD9ťNrś÷ÎťçůÖÖV„P˙O<±˙ţBű:6S‹ĹŽ;ÖŃѱpáBHYůĺ—ó><ť7oÉ$ŽFŁÝÝÝSî2:IýŔ0Ś<ŽŤ:::Z[[˙ëżţë©§žęééÉ×emr§ŻŻďСC°‡Ëţçć7¨ĄĄĹ\YűË/ż™Ňy°öě€×ë%{ŹRežz˛™á,Y˛d÷îÝwÜqGFŻşě˛ËŔäaŚeY>qâD˙”Żš8kŮ[v<™ňZ«WŻľé¦›ćĚ™Ŕő«_uvθ ǧ7n·űľűîK]”~<~żbţcš¦{zzŇÜtâۢhŽĂ§łCUUŐ<đŰßţöŰßţöwżűÝO?ýôHŻń6ĂöíŰ˙đ‡?dúŞ9sćŔ,ż …BSîL¬NË–âéd|*ŠŹÇaÝ'`Ţ<Áf°~ýúššš˙ţď˙ÎčU.—Ë\Í vSN3\5ék2™4‡–A¨ŞJµ÷Ł$IO>ůäřCxľ(ŠőW•î;°){ęęęnąĺ–GyÄŇI‡… ’É!]×űűűăńxšŻťÔóI,¨aSn)·cÇŽ·ß~űŰßţö_ţĺ_vvvŢrË-éż›2çűß˙ţsĎ=—iČóývŘL?/^ °Ą\gggF†MŤ7ă÷űÍŽ‚ËĺšlęČď÷ßsĎ=mmmš¦=ztĘÝŹm¦1@`É’%äáŔŔŔţđ‡Ôůră™ZťÇą\.óÔQęÁ»Ť BhÝşu,ËŹóÝwßĚÔZMôWUŐÜącڧśĽ·™áĚš5‹ă8jtóîžžA˛čHÓš’J$ćŕĽ,Ëv"¦ÍdĐ4=wî\ňPÓ´sçÎe—‰––:u]9’ń{š3Q63 ‘§/ľř"‹eWy3Ýé|j']Ľav10›ńx<ž@ !$Śq2™J3çc<éŞ2•Ěý»$Iv=0 Ë—/GŁV cüÉ'źD"‘¬u’A*”$I–ÄvE3óćÍc†h±»»;u1…)É,QŹDSIo»Zť ŕv»ČţŠ˘ś={6‰ärÍĚÔ ÷¶´)·ţŞ\\ýőE®rQh bĘž={ĘłbʲeËĐh]×a0”clg‚uE©Q2ëČ]×ÓÉś/P墵µuéŇĄGŽ)usňĆž={6nÜFFFĘmŃÁüůó˝^/1[===áp8ÇËff;KŞü„;– źĎwÓM7Áń{ď˝WÚĆä—cÇŽÁÁí·ßn^AVrü~0„~!¤ŞjgggîŇDŮ©SQ‹Ĺ–$©L¶’ٶmöŢŢŢC‡•ş9ůäŕÁ˝˝˝c·ŰťNöZq`fѢEh´O×4íôéÓ±X,/ÇlÔ‰ŠÇăf¨rŢliiŮĽy3?óĚ3eňÉş®?óĚ3pĽyóćL]˛±lŮ2łúúú†††2ÍEšŚ,Ő‰ŠĹb$/!„1.ůŇťwŢ ÉOť:uüřńŇ6¦?~üÔ©SE1 sçťw–ş9hîÜąN§–‘!„AčęęĘKźdŻNĂ0,K7 Ă(ˇmoo_µj,^!6fú}ĆxŐŞUííí%lI  Ĺ8a˛ć‹/ľH§†BúdŻN4Q:H©" f[rčС®®®â·ˇ8tuuúŠ’4çyłk«2FFFň;żť“:ŃŘţJ’Á´eË–ććfHOyá…Š|÷"łoß>A(ŠjnnľîşëŠßš¦aÁńěűúúóĺn^ĽQî—FŁ–â’$Y ëׯ‡gź}6ťÚM<?pŕŻ]»¶ř X¶l±Ů†a@É®LóŢÓ!ăhüx !…äÁA.rjĄşÝî˝{÷sîjńâĹ6lXşt)Ă0CCCE»/K{ĺ•WöîÝ[dC°xńbŽăŔQĄ(Ęçź>22RŹnę•iâńx,ëŤhš6/8ž–|ýë_żőÖ[Bűöí#öl3gÎRňŤaĂ0>ţřăáááőWyčŮd2i‰/ęş>s’Ęj.·@Ěž=›HŠť9s&Εʛ:B–ě|š¦ˇ^oaS*,«sĎť;744TĐâŔůT'BDbIT×őrF˛É…úúú`0H–E „z{{ňxź<«!‡ÍCx3ŮË<*—şşşşş:ňrz{{‹Pc0˙ęD…B!b;Iž˛ÝĹW"őőőuuuPŠ‚!°őÖđđpî^ü\Śq8®©©1×P6 C–ĺLëëMČ‹/ľh)/Z>9;%ˇ˝˝ýá‡& ˝˝˝?řÁrżlSSSMM †AÓôđđ0äy'lW¨ěqŇÖÔÔýč| Ô¬Ĺo|ăÝ®"hllŁ8ĹĄ—^zúôé4°"ůçţgżß˙˙ńŹ>úhWW×óĎ?źć !ĹÝ’3 #™Lž={¶ĐsčéP<żÓŚÓé„P¨E‘,ËNłe Ć8 “ Ćc‰D†††BˇP9Ěí•F ˛,ÖÖÖ˛,kŽźiš†1fY6÷`“M 8Ž«ŻŻ·L„P8…BeR=¸d†Ę0ŚááaźĎçńx`‘!ś‡c†aĘłZPĄ1®©©!LNÂyEQz{{#‘HŢ×ĺB‰»Ńx<.Ërmm­ą—7F±¸§ĺĂ0ßüć77mÚät:Ož<ůä“Of]Fµ8°,[WWg1™4M‡BˇP(”÷•ąSúď^Q”ÁÁAĂ0,§®ëŠ˘”sĆoĽń’K.yřᇿóťď¨Şzűí·—şE©¨­­mlldĆÂÓu25ĘMš¨TŁ˘ ńů|^Ż\OóyŠ˘Č2«˛âżřĹO~ň“r+7ŹÇăóůĚ?~Ř #‹ŤŚŚÄăń˛ęÍÍ”Ńzůęęjř}ŤB©R†aĘj´T]]]UUŐŢŢľ{÷nŽă>řŕ˙÷/·uTÇŐÖÖ‚oö2UU…}Ăáp9ÇŚËË A/źH$X–µŚŠĘ­Łw»Ýˇúúúűďż˙ľűŞĘzv»°,ůÉŻ=Ťvuu f±˝U‘)#ŰIH$‚ řý~žçÍ=¬„ťdˇšW  ^ÚÓO? «¦öďß˙đĂ—°=Š˘Ş««I’I§(JĹH$‹Ĺ˘Ńh™ÄŚRSŽęD†‡ťNguu5EQ“©iš®ë0˘/•? …Ŕ߀‡ Ă”ÜQĺ÷űa“5rÔ źg"‘Čq›"“‡Z …C×őd2IQڵږ Ă÷|ü"· c\__żfÍšO?ýÔçómßľýäÉ“§Nť*r3–e˝^ŻĎç#żRÖ cŤFCˇ„Ů+«¦iŤŮSŔ0LuuµĂá »ÎŤBńÇLn·{ÇŽkÖ¬)ážĘN§Óĺr(ÍŰ™"„†‰Çă‰DBĹh4ZYş*CťÇq>źśŃ 5 eWKî’Š˘\.8—Ä·964šÜ î{</ąË‘5eęwNŞŞˇPeYĐ(ôěć'aMÓÓu.Ôáp8ťÎ ŕ_šuY>!Žě¨$uš¦…Ăa†a|>l?ľĎ‚‰PUUaä4 dʲ¬Ăá0ú3/ŦiJQ‹˘L&ăńx%öăă©€0ľÇăá86ľ…ż“˝ŘZbYá/1c¤oµÔ0C&ŮÁu,˝°Eô$ô&W$9=8L&Aö˘$LCu0ĆÉd2™L2 ăt:yž‡$é(ŤvŁđĚtngV­ŮUßG›µ;aÉWUU–eI’ŠżQD90ťŐIĐu\4„˲N§ÄŠLyřEh†Ů4ZL&i ­Ç ĂđJXćČŚP§ŇE"„X– Qb&Íóhś8VU đ*Š"IŇ W¤™§N3š¦% ˛ă8Ö$ű‡’”W%Y?đ*Ň5OÖ_[^n†6–i<čΑ­N ă«’@č‘eY2ľ†2‘H‚üÄÜ’ŢGđnIŔĚdIŢ]%b«3P·‚"§ĺµrĂĆĆŚ­N›ňĹV§Můb«Ó¦|ů˙ĽĎtb2Á€ńIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_dial_scale_draw__inherit__graph.png0000644000175000017500000001440412052741154024560 0ustar gudjongudjon‰PNG  IHDRŁ»†‹ą!bKGD˙˙˙ ˝§“ąIDATxśíťy\SGŔçĺâ0ÄĔà E-ĵ­˛€–Âv-ŠÖPXŹŹ-xuéÇŁ(Ö­[ꉭU>Ý Űµ P«¬TE­‹P9Qn!„®Ä$döŹ×Íľ 9vťů~ü#™7ó›ßĚ7ďMŢ ľG@hcťf”Ŕ¦Q›FlÔ7ťťťQQQmmmc• f¸X´hQll,µ„ ~÷NMM ]¶l٨'†NęęęţůĎśU1úÖKMM­”0#ąÇâu°iTŔ¦Q›Fl†hşşş:,,ĚĆƆĹbM›6móćÍíííĆ›H$SSSjITTA"‘ČHťç 5(¨Íkjj„Bá¤I“ĚĚĚśśś¶oß®T*‡­ß­Äż111ńđđ¸rĺĘ3†bZ,Ďť;—Ăá\ż~].—‹D˘ĘĘĘůóç?S6•žžžÔÔT__ß”””!ä0,@ýüüAaaˇ\.OKK»yófttôđöbbb!„666FFF.Y˛D,oϤpöěY’~ńńń‰ŽŽ¦–čtş lٲĹ××7!!BŘĐĐŘż?„°©©‰ÚŁT*…¦¤¤ĽöÚkĺĺĺL&łĄĄ…Ś#‹MLL>lmmmeeőᇪT*ajjęŚ3LMM]]]©§űyyyS§N=zô(›Í‹Ĺeeežžž¦¦¦vvvÉÉÉdĚŽŽŽŐ«Wóů|@°sçN©TŞo^\\L„R©Ô¤´´tĹŠý6$ űvAćLníęęZ·nťµµőĉ·mۦŃh¨[I˘ŁŁ…B!ŮĐxňM&AőőőFőëqЦ ŤF{řđˇAąH$rrrúňË/ „gÎśáp8ţţţäëŮłgŚŮŰŰű«Żľ‚zxx>|,$?ěďľűnssó˝{÷¦Oźľ{÷n…BÁd2Ż\ą˘R©Ž?îčč¨%‹Y,Öš5kššš „ÁÁÁ{öěQ*•IIIÖÖÖdĚ   ––±Xm$˛‘É4îhxLC˝˝˝7mÚ¤{ŕŔęęj??żm۶A˙đ‡?|üńÇÖÖÖ:ťnÍš5±±±ăÇŹW«Őú1ët:{{ű¤¤¤¦ăëëK¶%?ćŐŐŐdäÔÔÔ×^{M©TŢąsB¨R©ţô§?ŮŰŰSMë'E*•Ňh´‚‚á˝{÷Čr•JEŁŃjkkÉ:/^ĚĚĚÔ·Z·nťŹŹuhwîÜáóů5ě· }4•JE§ÓőűtWW×ăÇŹű]§ĂĂĂź'y#“i\а™.//çóů111‰D©TĆĹĹ1™L+++r©ËČČ`łŮäž‘’’Âfł—.] !”H$ C­Vçććš››wuué&%%ŮÚÚjµZrź lii)++{ĺ•W:ÔŐŐĹfłóóóU*ŐÁ]\\ôˇ¨“ŐŇŇBDQQ‘L& c0䤇„„,[¶L*•VVVÚŰۧ§§ë›ßşu‹N§'$$ÔŐŐ)•J‰DAě۰ß.¨9„††®^˝Z*•677nÚ´‰şµµµő믿fłŮ¦J~ É%Ó‡ …B@Ŕb±¶lŮâáá!ěčč`2™€ÖŐŐ’’’ „ťťťÎÎÎż˙ýďCCC©ŃZ[[ Fvv¶X,vttŚŹŹź0a‚ŤŤÍ'ź|˘Őj!„ß}÷ťťťť©©éÜąsóóóőˇnÝşEÝcvďŢÍápł˛˛\\\-Z!”Éd+W®äńx¶¶¶ńńńÔLd2Yvv¶——›Í633›1cFllěÓ§OÉh}öŰU\. …|>źĎçGEEőôôPO¨L¦»»űŐ«WÉĘ»{żÉ4™ĆNÓ}Q*•EEECk‹^úő8lWCMMMÝÜ܆+fŘÁ×˝Q›Fl°iTŔ¦Q›F…~ţ řäÉ“Łźfůĺ—_ú)Ąž\———[XXŚzbŁ ťnaj:}¬łqćĎźopĺäżţ lßžqęT^fćGóć9Śu.Ł Zë´V«ËĚ,dföw|{©AËôŤ’Ž%@$ş«ŃôŽu:Ł Z¦32îŇét@OĎÓë×%cťÎ¨‚éžőĄK%Zm/€N'D"´ŕ™ľrĄ\ÄÖju˙ű˝îî§c›Ňh‚éôôB‚řĎ[­¶7'§|ěŇmP1ÝŢŢ“›+éíĄžR"Qá%4ę b:;»Ô D§ÓݸQ!—wŹI>Ł*¦ÓŇ uş~®ýřcÉč'3& aúÉE~~uß«Âôô‚1IiôAÂô… Ĺtz?#Őé`aaMSÓ ţăŕ˙/H‰~!OŁű!¸p‰x?żZľ|Ěś9I*í _kµ:•JĂf›č·::ZŤQ^Ł rżeť?_Ľ~}rc㡱Nd´AâčŤŘ4:`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť =GM,óxĽ±ÎnřˇŃĚMLěĆ:‹ÁËËËČńĽĎIii©\.§>ŔóżĚíŰ·2vKŹgÜŃfٲeĂšf¤xćýjđ:Ť Ř4*`Ó¨€MŁ6Ť Ă`şşş:,,ĚĆƆĹbM›6móćÍííϸçŞD"155%_,,,-ZTQQńâY Ô# ¦¦F(Nš4ÉĚĚĚÉÉiűöíJĄrČŃúÝŞ‘‰‰‰‡‡Ç•+W^(űáŕEM‹Ĺâąsçr8śëׯËĺr‘HTYY9ţügĘÖcbb˘?»Ż­­}őŐW׬Yó‚YBčçç' ĺryZZÚÍ›7ŁŁŁ‡·ý ###—,Y"‹‡·‹A3Đ%•łgĎŮŞÇÇÇ'::šZ˘Óé,X°eË__ß„„aCC`˙ţý¦¦&jďyyyTÓÂÂÂBŹGľ–Ëĺ|đźĎźÝŐŐE&oŔĹ‹=== R(ň`'íyňŃ€¤ĽĽśĎçÇÄÄH$ĄRÇd2­¬¬Č%0##ÍfCSRRŘlöŇĄK!„‰„Á`|Ă"©¬¬¤ŃhäŠđŢ{ďQ×é}űö‘;zvv¶T*ő÷÷ď»ŘS_/_ľÜĎĎŻ±±ńÁŻżţ:Y~ëÖ-:ťžPWW§T*%IPPPDDŮ$$$dٲeR©´˛˛ŇŢŢ>==˝ĄĄ… ˘˘"™LĆ`0ÚŰŰ©˝„††®^˝Z*•677nÚ´‰şµµµő믿fłŮä:BÝÔod#“fś‘]§I>|( ‹Ĺrppزe‹‡‡G\\„°ŁŁÉd8pBXWWHJJ‚vvv:;;[XXÜşuËŔtGGťN?sć „°µµuĺĘ•&L8qâ˙řGµZ !Ś‹‹ăp8'N<}ú´qÓ2™,44”ËĺN™2ĺoű›ľ<;;ŰËË‹Íf›™™Í1#66öéÓ§ú&+W®äńx¶¶¶ńńńdáîÝ»9ŽŁŁcVV–‹‹Ë˘E‹¨˝ČĺrˇPČçóů|~TTTOOőË“ÉtwwżzőjßôúŤldŇŚ3¦ű˘T*‹ŠŠ†Ö34FöŮ@ššşąąŤDdĚÁ×˝Q›Fl°iTŔ¦Q›F…güđâĹ‹G'Ě ŇÜÜlĽÂ€¦/^ŃÝý˛=r˝˝ÝäÉ“qÓ§Ëéô—ęž<Źüťf {‚éŞU'rs%GŽĽżlŮܱÎeTAkťnoďůÇ?* 23ďŽu.Ł Z¦Ďź/óň*¤ŇÎ1ÎftAËtzząZńăŹHkíâĹ‹#ÝŐŐČÍÍ!`žÍőë×÷ěŮ3„†xťFl°iTŔ¦Q›F…ˇśO?'MMM§Nť*((čěěäóů ,głŮFšÔÖÖFEEĺääÔÖÖ†‡‡˙š"áŕŕ°víZň$R_Çx@ssó·ß~{÷îÝÎÎNKKKoooˇPhbbňüCxf_%ů?ČHíÓ555ëÖ­377?|řđ… âăăëęę6nÜHž¤=L&377777W$ěÚµ«¦¦`gg7ĐÔS~üńÇ<ďĉ.\Ř˝{÷˝{÷_hTĎťä˙ #eúČ‘#‹/މ‰±łł355}ĺ•W>˙üs.—›’’˛uëVňQ÷2™ĚŰŰű‡~´µµy{{‡‡‡k4ooo…BˇĹáp‚‚‚üýýOź> ¨­­}űí·ÉMŹ?ްaźź_hh¨~™LV__ÉçóY,ÖôéÓcbb”J%ąµ§§ç‹/ľ Zşté_ţň—gF¨TŞ.Y˛$$$ä›oľˇ>čˇß$W¬X‘‘‘P[[Ű7ň@“ŕăăÓÚÚ:Lţ‹1ÝÓÓS\\B-$"$$äçźž7o^QQ ´´ÔÜÜĽ¤¤PRRâŕŕśśLî%ăÇŹ79ţüŠŠ Âożývţüů.\ ;~ü8uÓ„ ¦M›ö駟޼yłłłŕŕŕ°k×.rkbbbGGGrrňáÇ/_ľś——g<ŮäéÓ§§Nť:zôhIIIfffßS“”ÉdUUUß˙˝ťť]ßČM‚˝˝˝ĄĄĺóNô`‘uş˝˝`mmmPnkk+—Ë===“““{{{KKK—.]𑑎ÓéJJJćÍ›g$&ŹÇ“Éd…QQQ666t:ťÁ`<‚“FŁ;v,''';;;!!Çă-\¸pŐŞU&&&Z­ö§ź~úë_˙Ęĺrą\î®]»X,–ńhZ­6'''++kܸqăÇŹ_»ví‰'<==Ť$©Őj×®]ËĺrűŤ<´IxFÄ49Ľ––[[[jykk+૱Ů슊ŠŇŇŇO?ýôęŐ«<(..ŢĽył‘rąśĎçŠĹâ}űöŃ÷S077†VTTśŰ»wo[[›N§ł±±!«Íś9ó™ŃÚÚÚ´Zí»ďľk0F#I2 }ťľ‘‡6 /Â677wssËČČظq#Y’––öÖ[oeddĽůć›OOĎĽĽĽ¶¶6;;;77·7n´¶¶şşş666óöíŰÎÎÎÔ…BńĹ_?~|ĆŚŹ=ĘĎϧn=xđ`}}ýÁA8;;Ż]»666ŔăńR©”ś÷üü|ŤF3kÖ,#Ńx<ŤF;ţü¸qă*•JˇP<}úÔH’AĎs IÄD†‘úF“““sěرşş:µZÝÝÝöŕÁňÉąžžžçÎť›9s&AnnnYYYsćĚa0Ačt:­VK ŐŃŃqîÜąěěě>ř€ZNŢ™śN§wvvž9sF§ÓQą~~~%%%gĎž•JĄjµş®®îűďżăŤ7L&sáÂ…ÇŹW(őőőGŽŃétĆŁ1™L//ŻŻľúJˇP´··ďÝ»7==ýy’4’ç@“0 łß#ezęÔ©ß|óMgggLLĚď~÷»śśś%K–‘Hpww×h4łgĎĽţúëJĄ’\ź,--'MšÔŮŮI~ ÷öö~ď˝÷.]ş´o߾ɓ'S»ŕrąááá111ëׯ_¸páäÉ“ăââô[]]]?˙üóŰ·o‡‡‡îرĂÎÎnëÖ­äÖ­[·ŇétˇP¸iÓ¦wŢygáÂ…ĆŁ¶lŮŇŰŰÎăń˘˘˘ĎLŇHžMÂ1č{ö§¦¦†††íWKµZ][[ëää4„¶ňWË!Đű@ &}˘©©) @$iŞšwĚ1š$čďŻř|ľŻŻŻ···& {ůý÷ßř|>ŐÂT]>3 řřř(µŕóZ`h} öŘZôÓGqq±żżżąąą®®îČ‘#·lŮŇĐĐĐó*úúúäâOôôôěěě’’’úZŐŰ+és †††®®®………}z@鏏üüüiÓ¦q8ś””±Xóřńc‡W*ˇĐÓÓB+**Ö®]»xńâüüü~TŇW¨q!„eeeăÇŹ_łfÍ·@.\Pjé’ŮłgŇ[ …ŁŁăgź}ćâârôčQayy9ŕđáĂÂĘĘJú€ľ] „~~~äc±XĽbĹ SSÓáÇďŘ±ŁŁŁ#??źZžzL> 2d™™Ů¦M›ÚÚÚčK677úé§C† :tčçź.“ÉčsI„Bˇ±±1ůřáÇöööúúú–––äVVV?üđ©©)ŹÇ;wD"YąrĄ‰‰‰••ŐŮłg{ń•[ŇŰŰŰŰŰ›ŢŇçýC"‘¤¤¤Ń ‚ľté’››[rr2ąŃ9Njj* 55uҤIÔć444”Éd7nüç?˙Éápärůúőë·oß®ôŇ¦Ż›••Ĺĺr!„mmm:::ĹĹĹd{LLĚűďżßÝţ(**"ŰĎź??nÜ8jnGG‹Ĺjhh çŢľ}ŰÎÎNőČáp¨=zÔŇŇ"“ÉNź>M˘¶¶B——GőĚd2© ăââz±ç- »Ú?ş¸^Ň3fffA”••Y[[ÓŰËËËÍÍÍ'LŔĺr…Bˇ@ 8ţüůóç333SSSżýöŰú¬®®¶°°TUUFŽI¶[[[żxń˘»µttt¨ĆŽ[]]MÍŞ¬¬”Éd\.—^6@OOŻ­­Ťlimmýâ‹/ČúîÝ»+V¬ bÄÔZşşşäŢ¬ŁŁCő¬P(¨ ß{~Gě+}>^q8ś™3g?~śj )))9~ü¸§§'`ţüů±±±UUU¶¶¶łfÍŠŽŽ.//˙đĂ{čóęŐ«ööösssŔłgĎČö’’Ňüó˘']ŹBˇ –,**˛´´¤fńx<A˝Z›››ďÝ»§4¨Áš5kČöşşşµk×~˙ý÷BˇđŔÔ2A(­Ĺăń”*ěý˝‚ľłôň|ž——gjjTPP •J÷ěŮĂb±ĚĚĚęëë!„±±±l6{ѢEÂ3gΰŮl///aAA“ÉT:?×ŐŐ}űí·l6»°°lůűß˙îááQ]]ýřńă÷ß˙ŕÁäNsýúőÚÚZ777ę`˘ŁŁăááQSSóđáĂ1cĆ;vŚŢłŻŻďęŐ«kkk«««=<<‚UŹ“Ź?ÖŃŃ‘Éd555AdffÖ××űűű3™Ě†††.Ź“ÂeË–-\¸°ŞŞŞ¨¨ČÎÎN__ż»_ą%UŹWýń!|úô©źźŹÇÓŐŐµ¶¶ţěłĎěěěöěŮ!”H$,ë믿†>ţ!ljj7nśˇˇáť;w¨W‹Ĺš:uę­[·¨žëęę–-[fbb2tčĐüăÂ={öp8śˇC‡ž;wŽňaccł˙~ssó;vČĺrúV‹Ĺ~~~¦¦¦¦¦¦­­­Ş>$ ÁŚŚ„îÝ»—ĂáŘŘŘÄÇÇŰÚÚşşşvçC,üńÇgĚ1'Nś044ěnÄ7çC©Tš™™Ůżuµ‹łgĎVUU‘ŹăââlmműÝŐkxżŰúúú“'O~]˝ˇL||üÎť;%Iiié‘#GČłćë_żę3aaauuuÇź4i’••Ő_|ń;ďóű]ŚąąůĹ‹¨sĽ öŘZ`hŃĹůü‡~xóuĽ›+]|éÓ_^^žˇˇˇ†jSB_4ˇŤ•ş‚—ľź¨ĄüńÇS/Ż°Ő«ôŇt-ęň6ś?ââî“˙Ëĺ Mע.ZC› hllMKCëË ý@ë}¤¤´¶¶ ťŘŘűš.G]´ŢGLĚ}C —+®_Ď‘J;4]‘Zh·Ź––ö„„‡ry'9ŮŢ.OL|¤Ů’ÔD»}ĐettˇëQíö#¤˙‰[.W$'H$R –¤&ZěC$jIK{ÜŮůŇ{\áµk9š*I}´ŘÇ•+ŮŞŤ¨(->di±Źčč{Ş řÇO««5R’úh«ŹŠŠ†ű÷KŠ..ö0:—/w±ëhÚęăňĺ¬î.ĽÉĺť11ÚúÁP[˙~nc3Ä‚CM67·ëëłĚ˙˝Ľ&N¦ˇşÔĺm¸ľ :tËwß­ôđĐú/iëńęmű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>~3,'''M—ÓOôô,ut 4]E066ÎĎϧĽôűÁ´´´-[¶888h޸wźśśśqăĆ‘“Ężçś1cÎŻŐ řüŘZ`h} öýńˇNX*E@@A111=,ÓË®ú}őŇŇR??żaÆ 4hÔ¨Q;wî”JĄŕĺh×.ÇRł†čłőĂR­­­|>ßĹĹĺĚ™3}-ŕu!ś7oŹÇ …b±8***===00ľĚ¸qă¨|Ľ7WŕÂ… =G©–JĆ+ž9sćŻýk^^‹ĹŞ©©!űé2BČçóÇŽ«ŻŻ?aÂ>źOu%¬¬¬ţűß˙˛Ůěüü|ŐŔSˇD"Y˝z5xşk×®ÚÚZjő¬¬,‚ ¤R)őDrrr–.] URYÉąőőő>>>FFF–––ű÷ďď9•^XĎŰSi›÷ÍGccŁŽŽÎÓ§O•ÚcbbFŤőź˙ügÁ‚ÂČČH‡ăććF>¦‡Ą’8;;ź8qBhggJů|ôŃGŐŐŐąąąŁGŹŢ»wocc#‹ĹJJJjkk;yň¤ŤŤ }céęę®Ył¦˛˛B¸hѢ}űöIĄŇđđđ!C†}®ZµĘÓÓł¦¦&??ı±±Ôęrą|âĉ ,‹‹#“ú(şô±dÉ—ňňň &Pík×®őóó«­­-**˛··'c÷č…  őĂR!„%%%l6»±±Bxüřń)S¦Đ}(E ŠD"==˝3gδ¶¶* zh0ą<µ{©ž’٦ԫ'==](Ň+ill óđđ055µµµÝµkWKKK—>¤R©ŽŽ’ýĘ`VްôŃÝţqĺʕѣGCGŚńűďżOš4)//ĎÚÚúŢ˝{ăÇŹOIIˇo…˝{÷2™LŹÇăńLLLąąąđĎG…BA.öŕÁ2|911qîÜąÇĹĹ%##Ci˙ j8uęÔ”)S¦NťşhŃ"rŇŇRz‡$Ş)„B…B‘‘‘1{öl2ĆRŐÇłgĎ‚čěě$—ĎĚ̤†P:ţ›™™)Ö3JŰĽoçsőĂR!„'OžĚĘĘĘĘĘĘËËsqq‰ çŞF ¶µµ%$$ÔÔÔ¸¸¸řúúŇëˇnöÚeŕ)™mJE¬^»v->>žZwÝşuT¸3AÓ¦M;|ř°@ čň‰[XXQ\\LNľ2&U5hµ·ôŕŞKÔ KMNN600hnn¦: ·°° Ó5U#P›››ŮlöÝ»wŰÚÚBBBlmm»Ě]í2đB¸dÉooďÚÚÚÇŹż÷Ţ{ŃŃŃÔęwîÜa0GŹ}ţüąT*-((đôô\µjU—ű„ĐÇÇgŢĽyOž<ůŕúĚÚűýŁĎ> za© .ôőőĄ÷VWWÇd2Ż_żŢe*„đÔ©S–––úúúÓ¦M»{÷.=w•ţ´UO!„őőőË–-366¶°°Řż?˝’úúúëׯϜ9“Íf4hěر۷ooooďÎG}}˝ŻŻ/—Ë1bÄŻżţÚ§`ÖőˇĘ»–úÚęś?şăÝ Khđő+´Ŕ>Đű@ ě-°´Ŕ>ĐBůű>_~ůexx¸FJÁĄű·˙űß˙ľ_ű’:;‰'OŚÍÍ[¸ÜvM×Ňgţň—ż„„„““oĂýôůü{ÁÁçf϶ýĺ—O4]‹şĽ 珸¸ű©©…ŤŤ­š®E]´ŢGmmSzúc ŕŇĄ,M—Ł.ZďăĘ•,ňŹ Âčč{š.G]´Ţź/$S¤ (–VVöák.˘Ý>ĘĘęsržS©^ †N||¦fKRíöqńb&•čěTDEi÷!K»}DEÝ“Éţ?źBXPPůôiŤKR-öQPPYTTCľł˘`±ńń4U’úh±ŹřřşşĘ×{d˛ÎČČ ŤÔóZĐVÂčhaG‡\uVyą8'çů›/éµ ­><(­¨čú­­V˛´ŐÇ­[ůşşLŐťťŠë×s5]`?ŃÖĽÔĺËgČdťÔ$źĎÁÁfÄrrútk ŐĄ.oĂő]€óR1öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`hń&~%‹z”¤¤¤ŞŞýe­··7uŁŞb ďż|őęŐ}oňîîĘ€ďÍÍͨýżŠóńńiiičQđů-°´Ŕ>Đű@ ě-ňˇNěgAAń'zzzvvvIIIJËôÜ" âCýŘO*"¨˘˘bíÚµ‹/&sç4±©ýçÂ… ˝EÍŘO@ Ůčçç_΀RÍđě}Ö“·····wŻžł ±H$’”””   z#AÁÁÁ—.]rssKNN‡“šš HMMĄÇ~ĚĚĚ‚(++Sj///777ź0a—Ë …ŕăŹ?Đű@ ě-üz ›ÍhÚÎŞU«z7q˙ök×® č7ÉęëŰČ\¸ĐŇĹeŘŔŤpuuč‰ë‰ ,ĐţŹ» !|ô¨í»ďĽt 7ŔŰpţ‰ŠŠŞ‹Š´8É‹Dë}äĺ•×tu™¤­Fë}ÄĹ=`±€ŽyTÔ˝7p:P´Ű‡BŁ˘îQA9 (˙ŃW»Đn÷î•ÔÖ6Q“şşLíMň"ŃnÔÁФŁC+ěěTô° âh±™¬3>ţ>=Ő Kű­HS%©ŹűHK+ljRţ"(‹EÄÄÜďry­@‹}ÄĆ>`0JŤ2™âĘ•¬¶6Y—« Ź¶úJ;nÜČ‘Ë;UgµµÉ’“ Ţ|IŻmőqëVľTÚEx-€ @\ś¶˛´ŐGYY˝RŇ6Eg'$?±k#ÚšĎ)“ućçWP“óç‡ěÜů‘“Ó˙ľ7t¨ńŕÁl •¦¨|_´Ż°XŚI“FĐ[,-M•Z´m=^˝­`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} öŘZ`h} ö]ü>Ş©©) @$i¤ ţQQ1ÔŘX4höäŕpŕŔ3f(5váĎçűúúΚ5ë ŐőN’——7kÖ,>źŻÔŢíďŐöěŮ3Ŕ%˝ÓěŰ·ŻËv|ţ@ ě-°´Ŕ>Đű@ µ|TVV:tČËËkÎś9K—.=qâ™>ßeeesçÎĄ·=zÔŮŮ9--­¨öÖ{ věŘáîîľ`Á‚M›6‘a…ýčPťT鿏ŇŇŇO?ýÔŔŔ 44ôňĺËű÷ďţüůĆŤ_©„N{{{JJĘ”)Sú]I?(**Ú¶m›ĂŻżţĘçóçĎźżk×®ÂÂÂ7YC—ôßÇ7ß|3gÎś   KKK}}ý1cĆ:tËĺž9sfëÖ­dlT}}˝łłóůóç"‘ČŮŮyĺĘ•2™ĚŮŮ™Ě6KMMµ°° ĚČČ ˘jËĘĘ–.]zĺĘOOO//Ż[·n‘íĎž=[ż~ýĽyó|}}oŢĽ©TOssóW_}ĺéééăă.—Ë­­­‡öđđXştibb"őB>qâÄňĺË===ą\.›Íţ裏ĽĽĽ”ň<»ëđČ‘#da?˙ü3}yá‘#G¶mŰÖŃŃŃď­ÚO­­­YYYJůdA,Y˛ä·ß~›>}zff& ''ÇŔŔ ;;ťťmmmÁb±’““ŤŚŚ7nÜX¸pˇ•••ŤŤ µÝ ĹĹĹçĎź÷ňň:yň$ŮřÓO?988\ľ|Ůßßźj¤ iii‰ ůăŹ?˘ŁŁÇŹojjŠřúëŻÉ˛řěěě9sćĐW˙ä“O–/_Ţ›%IDDDhhhBB‚@ ††„„TUU}ůĺ—şşşýŰŞ ß>Č×ň!C”Ú-,,Äb±˝˝}nnngggNNŽ——Wnn®BˇČÎΞ>}:}áŞŞŞ‚‚r»Ě›7Ź~Čjoo_ąrĄŁŁŁD"!|}} “ÉTş!ĽL&KIIŮ´i—Ë>|řŞU«ĺrybbâ¦M›ŚŤŤ‡ ćççG.Lîš&&&=<Á:ܸq#—˵´´Ü˝{7ŹÇ#— »qăĆżţő/==˝ľoÎ˙§ź>¸\. ¦FůţÜuuu&&&#GŽdłŮ………999®®®FFFOž<ÉĘĘRň‘ĐŃѱbĹ //ŻS§N=yň¤¤¤„śĹd2ÉŚźźżyóć 6¤§§+ŤK^ý477''-,,jkkE"‘Bˇ 7’Čžkk_şGVIIÉ•+WúÔáĉÉC™LVQQaccŐŰ-Ř ýôa``0yňäŘŘXŞ%**Ş˛˛266öoűŔŢŢ^ D"KKËÉ“'§¦¦ÖŐŐM0ZB°eË–üńÇ<}ú4ý¬®šOŃŘŘxäČ‘­[·~˙ý÷kÖ¬QšKľŘ«ŞŞČÉĘĘJ2‹€ŢH?qâÄ«WŻŇ{ŚŚĚČČčM‡”Č»wď’Ż &“ą˙ţ-[¶DGG«¦đö‰ţźĎ‚‚nŢĽöüůóŽŽŽ––˙'OžGa{{ű‹/Nś8‘ É“'ÇÇÇO™2…ÉdˇP(äryvv¶H$rqq1ů“Ůłg'%%)]ß=—ĽÍ`0ššš"## ýĹb±ĂÂÂ^Ľxqúôé9sć°X¬Ůłg‡……‰Ĺ⊊Š_~ů…ŇĽaÆ .DDD”––VUU]¸páöíŰľľľŻěĐÉÉéäÉ“ŤŤŤ/^Ľřć›oČj ‚`±XcÇŽuss í÷&ęř°˛˛úî»ďššš‚‚‚ÜÝÝoŢĽąxńbŹ:uŞL&›4iŕ>JĄäÁjđŕÁÆ óôôŚŠŠúđĂőőő©TCËI¸\îĘ•+‚‚Ö­[çää4|řpĄ+Đ[·n4hżżpp°˝˝=ąq ´bĹŠíŰ·»ąą1™˙»ž=nܸŁGŹ>|řpýúőéé釢ďľÝu¸uëVáçç<ţ|'''ú*%%%ô7&}ĄŰżđ}ĄŁŁŁ¬¬lÔ¨Qý.čő’hggGgŇÓÓÉ٦‹€}űö™™™©ţýă5_/ŃŐŐEG ===<<Ľµµµşş:22’<·ˇĚ[~ý*((¨±±ŃŰŰ{Íš5<Oé‚hëý,{‰‰‰ÉÁ5]ExË÷­ű@ ě-°´čö|NżyíTTT™™u1Ş——G†śb”ŐŤŻ­÷Ó[Áç´Ŕ>Đű@ ě-ţţkťtIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_log10_scale_engine-members.html0000644000175000017500000002352312052741140023505 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLog10ScaleEngine Member List

This is the complete list of members for QwtLog10ScaleEngine, including all inherited members.

Attribute enum nameQwtScaleEngine
attributes() const QwtScaleEngine
autoScale(int maxSteps, double &x1, double &x2, double &stepSize) const QwtLog10ScaleEnginevirtual
buildInterval(double v) const QwtScaleEngineprotected
contains(const QwtDoubleInterval &, double val) const QwtScaleEngineprotected
divideInterval(double interval, int numSteps) const QwtScaleEngineprotected
divideScale(double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0.0) const QwtLog10ScaleEnginevirtual
Floating enum value (defined in QwtScaleEngine)QwtScaleEngine
IncludeReference enum value (defined in QwtScaleEngine)QwtScaleEngine
Inverted enum value (defined in QwtScaleEngine)QwtScaleEngine
log10(const QwtDoubleInterval &) const QwtLog10ScaleEngineprotected
lowerMargin() const QwtScaleEngine
NoAttribute enum value (defined in QwtScaleEngine)QwtScaleEngine
pow10(const QwtDoubleInterval &) const QwtLog10ScaleEngineprotected
QwtScaleEngine()QwtScaleEngineexplicit
reference() const QwtScaleEngine
setAttribute(Attribute, bool on=true)QwtScaleEngine
setAttributes(int)QwtScaleEngine
setMargins(double lower, double upper)QwtScaleEngine
setReference(double reference)QwtScaleEngine
strip(const QwtValueList &, const QwtDoubleInterval &) const QwtScaleEngineprotected
Symmetric enum value (defined in QwtScaleEngine)QwtScaleEngine
testAttribute(Attribute) const QwtScaleEngine
transformation() const QwtLog10ScaleEnginevirtual
upperMargin() const QwtScaleEngine
~QwtScaleEngine()QwtScaleEnginevirtual
qwt5-5.2.3/doc/html/class_qwt_event_pattern_1_1_mouse_pattern.html0000644000175000017500000000761712052741140024730 0ustar gudjongudjon Qwt User's Guide: QwtEventPattern::MousePattern Class Reference
QwtEventPattern::MousePattern Class Reference

#include <qwt_event_pattern.h>

List of all members.

Public Member Functions

 MousePattern (int btn=Qt::NoButton, int st=Qt::NoButton)

Public Attributes

int button
int state

Detailed Description

A pattern for mouse events.

qwt5-5.2.3/doc/html/inherit_graph_3.md50000644000175000017500000000004012052741151017134 0ustar gudjongudjon3de909d65bcb48907c1ae0e454104044qwt5-5.2.3/doc/html/inherit_graph_21.png0000644000175000017500000004106512052741162017331 0ustar gudjongudjon‰PNG  IHDR{đn\SóbKGD˙˙˙ ˝§“ IDATxśíťi\SÇŢÇç„l" `¢,*weA "¨XŃŞ W”ŐĄZA±^·k­Ő뾢¨´˝XPÜX\{µbY\ĘR±˛DٶśçĹé“›&! †„eľ_$3sć˙›qňcÎśsć (ŠQ 8U €@ Cč8Dy@Ç@ Ę:QxU € Ž9ňäÉU«€ $h4Zdd$…BODŕµ*HO@ÄÖÖÖĐĐPŐB †[·nݸqcĹŠâ‰pŽé)ˇˇˇŁ‘‚ ҉p(č8Dy@Ç@ Ę:QĐq ň€ŽQ$,ËÇÇG__źH$‡††666Ę?$??źL&c1čtş‡‡GEE…xů5ô‚ŚŚŚ… jjjR(;;»ÇŹKHúظrZŃ ńťăîî.ž‹˘¨‘‘ŃǶ˝+Ů˝îĂŹ:Da0™Lkkk*•šśśÜĐĐWPP0kÖ¬nMG‰DB˙źśś2™Ľ~ýz€ąą9—ËU¸ŕׯ_Ďź?ѢEEEEeee~~~K—.ÍĘĘč]Ü®Z!“ž‡Ŕăń©©©l6[”’’’Ňóľ•Oő° P¤nܸ!żŚłłspp°xŠP(tppŘşuëÜąsŹ;†˘hyy9ŕđáĂ(ŠVVVŠĹ´´4ńß*Š˘ééét:EQ&“)Ęâp8ţţţ4MOOoĎž=âąBˇĐßßßŐŐµ˝˝EŃ–––ŻľúJWWwÔ¨Qaaa|>źÉdť={VCCÉd:99=zT<âŽ;<(ްqĹ‘hŠ˘ kÖ¬ˇŃhŁGŹţç?˙ÉăńÄc]ľ| qíÚµšš‰Îńňň:qℨ怀€€€Q8accC&“ÇŚsĺĘů˛#""Fڎ««#ŢiX=Ňť)0 ]Śč8Ń­ă455áp¸ââb‰ô¸¸¸qăĆ?~|áÂ…(Š^ż~ťJĄşąąaź§L™"ó獢hEE…——׼yó$˛üüü–,YÂfł™L¦ˇˇa||<–+ 7lŘŕěěÜÖÖ†•\»v­··wMMMQQ‘ŤŤÍ©S§L&‘H ¨¬¬äp88®ĽĽ\ş-2%ő0®śV (şrĺĘĹ‹WWWLž<ůČ‘#ⱆ ¶yó榦¦ďż˙~äČ‘ŇJ=z4eĘ¬Ş¶¶6mmí¤¤$Q¸/żür˙ţýííí‘‘‘şşşrd#Ň××—$-CfgĘ Đq ˝§[Ç)**BDúO_vv6…Ba0 …ĎçîŢ˝›JĄvvvnÚ´iÇŽâc]|ĘCˇPÜÝÝËĘĘP±ßŹÇĂăń"_{öěYVV–D Řl6–ĹăńBcc#öőéÓ§VVVX¬ ‹ĹBD H·EÚqzWN+¸\.‡c±XXɸ¸¸É“'K4ż¦¦EŃÜÜ\ Ř@```ťťŤ˘hll¬«««¸Áĺĺĺµ¶¶ňůü¨¨(ů˛ĺ’Εٙr†Ě1×q ŠAGGAŇŇR‰ôňňr}}ý‰'jiieeeĄĄĄyyyŃéôěěě””777ńÂⳇs÷îÝŃŁG‹¨¬¬ …&&&ŘW{{{KKK@GG‹Ĺš:uęÉ“'E%ů|ľ––¶‚ëěě\RR ‰:::Ť†ÉŻźÁ`DFFJ·®çqĺ´˘ŞŞ `llŚ355ýđáx"‘H§Ó8śě&‡[łfMTT ::ÚÇÇG<7==ÝÁÁÁÖÖ611Qľlů¤s»ęĚ^˘¨TŞŁŁăąsçD)'Ož|÷îÝąsç–,YX°`A|||UU•………““ÓíŰ·ËËËíěě>*Šžž@ôC}řđ!öë"qqq§OźÎĎĎÇJŞ©©‰ţ,·´´dff±‡}¨TŞ˝˝ý?ü ^˙±cÇ~ůĺ—O‰+}}}Ŕű÷ﱯďŢ˝9r¤x™"Iŕëë{íÚµ>Ľxńbٲe˘ôÚÚÚµk×^şt)++ëŔňeË$ťŰUgöč8…ňöí[.—Ëáp>űěłWŻ^íÜąŕććagg‡ ““ÓůóççÎťK °S>źß“$iٲe۶m«­­-,,ÜĽył@ ŕp8‰deeĺďď•ôđđ ­­­ełŮ^^^§Oź–¨íĉÇŽŰż?“É|˙ţýńăÇcccĂÂÂ>%®|ńK—. ałŮ………űöí[˝zµüC¤;ÇÂÂÂŘŘ[ťQWWĄc^€ÇăëëëŹ;&šššş’ý±ô¤3{J·'cÚłkU(Š{{{ëéé‰DSSÓ­[·ZYYíŰ·EQ‡C °K-eee€ČČHE›››ÍÍÍ)ĘóçĎ%®ň_­¨««[µj•¶¶öČ‘#żűî;‰Ü††]]Ý«WŻbź˝˝˝i4ŤF[·n][[›ô…¤´´4WWW MMM{{űÇŹŁ]¬÷0®tqjkkW­Z5bÄQŁF}óÍ7תDŠ>Ëěśđđp@RR’ÄQß~ű-•J;vlbb˘………‹‹K·˛ĄŁËٙ̕]µQ„Ě1÷ÇôA¤÷:é \.7??Ú´i}ˇ Ňź‘9fŕY¤o!“ÉĐn " ă@ ĺ(č8Dy@Ç@ Ę:QĐq ň€oŹô”¤¤$EíĆ"ĺó…d˛Zß…€¨č8akk{ůň徨YMm8™lF"™‰ŁÚÚr8śÔľQ> eňäɉđžcj(/oxôńčă÷ß‹áŚĆóçOts›bjŞŁji>:D©±ďŢÍ~ôńćÍuu˘““ą«ëD— 4š†ŞĄA”t2()©»{7űΝ켼 ==ęüů“ćÍ›do?žD‚çőC č8>¤¸ťřęŢ˝? ŞĆڎyzZ-Z4íłĎôU­ ˘2 ă@Occ[B«ÄÄWYYď)˛›ŰäĹ‹§;8áńđnڎt„ÉÉů7of>zÄPSĂÍź?iÉ’ésć‰đÔ ňĐq '§,&ćĺ˝{r8íłgŹ_łfÖĽy“ŕ Dč8ŢÓŇŇ‘řęĆŤŚ?ţxݧG]ľÜjĺJ›ńăőT­ ŇŽé LfeDÄÓ{÷^«©á–-łô𰲲2Ááşß2ÄŽůP}ö¬đÇÓž<ÉĄÓ5||ě˝˝ítt(ŞÖ0@Çô¦¦¶—11/KJęĚÖ­ű|îÜ pRůX ă@şˇ®®ĺňĺ”čč--\7·)ëÖ}nmm˘jQ Ľšé’ŞŞ¦ßbb^¸5kěüýgh«Zd`ç8V?ţßţÔ××ܸqŽ——­ş:QŐ˘ č8żńţ}íéÓŹăă˙Đ××Ü´iÎŞU¶d2AŐ˘ č8ż(-­;}ú×Ű·3ÇŚˇ».]:@€›cA \Ç€âböŃŁżÔoŰ6Ă'x(ŔGřőő­_}ueńâłăÇë=ľ;0pn?´‹ĺă㣯ŻO$ŤŤŤCCCĺ’źźO&“±t:ÝĂĂŁ˘˘BĽŚüzAFFĆÂ… 555)ŠťťÝăÇŹ%$}l\‰VP(—·oß~”*‰>qwwĎEQÔČČčc›Ü•Ú^wÝÇg qëVćś9G˛˛Ţ_ą˛.2ŇOOŹŞjE2`2™ÖÖÖT*599ąˇˇ!..®  `Ö¬YÝšŽ‰$şa,''‡L&Ż_ż`nnÎĺr.řőë×óçĎ_´hQQQQYY™źźßŇĄKł˛˛DzWĽĄĄĄ&LčµH<źššĘfłE))))=ďRůôQÇĘćÓoE…(˛˛ú5k.„îŮßÔÔ® žžžžžžÝsvvO …[·nť;wî±cÇP-//>|EŃĘĘJń™––&ţ[EQ4==ťN§Ł(Ęd2EYÇßßźFŁéééíŮłGO™2EćĎEŃŠŠ //ŻyóćIdůůů-Y˛„Íf3™LCCĂřřx,W(nذÁŮŮą­­ +ąvíZooďššš˘˘"›S§N1™L"‘PYYÉápp8\yyąt[dJęa\‰V444yxxt%IN͢Ú=z4eʬ†¶¶6mmí¤¤$Q”/żür˙ţýííí‘‘‘şşşrÔ"ŘÔÔôý÷ßëëëK´tذa›7oĆrGŽ)G° ă TrrĘ\]ŹŤłířń_¸Ünţ°ô5=qś˘˘"A¤˙fggS(AˇPř|~``ŕîÝ»©Tjggç¦M›věŘ!>čŧ< ĹÝÝ˝¬¬ űađx<</ňµgĎžeeeaąAAAÍfcY<Ź@ 466b_ź>}jee……ŔʰX,AĎťI;NĎăJ´@ĄR‹ŠŠş’$§f‘@```ťťŤ˘hll¬«««¸Żĺĺĺµ¶¶ňůü¨¨(ůj555(ŠćććJ4Pf®LÁň‡Çë8ý>_pćĚŻ‹źĐÄÄŕmŰHŕÂ˘ŽŽ‚ ĄĄĄéĺĺĺúúú'NÔŇŇĘĘĘJKKóňň˘ÓéŮŮŮ)))nnnâ…ĹgçîÝ»ŁGŹ/PYY) MLţz5¨˝˝˝ĄĄ% ŁŁĹbMť:őäÉ“˘’|>_KK [Áuvv.))‰DŤFĂä‰×Ď`0"##Ą[×ó¸­hmmőóó[·n]W’şŞY·fÍš¨¨(@tt´ŹŹŹxnzzş­­mbb˘|µD"‘N§cJ·Q:·«>ě%ň˝ ˘ňňĘ]]ʇť9ó+Ź×©j9ŃĂuś9sć„„„ľž8q‚ĹbÍź??,, EŃőë×oßľ]WWW(ěرCSS“ÇăuuV%Ž(‹Ëĺâp¸ŇŇR,ýÁ L&“@ pąÜĚĚL2™Ěd2±’jjj˘żĎ---ďßż—1{öěýë_â|||–.]*-©çqĄ[ńúőëáÇw%©«š%äĺĺéč蔕•iiiµ¶¶ŠŇkjjp8\ff&Š˘oŢĽ‘ŻV$Lş~™ą2wůߏ˘(śă xĽÎďĎźBSsXJĘ?]úáĹoů„‡‡GGG‡„„Ľ}ű–Ëĺr8śĎ>űěŐ«W;wąEDDŘŮŮ!âäätţüůąsçěÔ†Ďç÷$‰DZ¶lٶmŰjkk 7oŢ,8ŽD"YYYůűűb%=<E9@Ŕ®ą”••"##Qmnn677§P(Ďź?ďvŽ˘h]]ÝŞU«´µµGŽůÝwßIä644čęę^˝zűěííMŁŃh4ÚşuëÚÚÚ¤' iii®®®šššöööŹ?F»řËßøŇ!8ŽššÚőë×eJ’YłĚ> $%%I„ţöŰo©Tęرc-,,\\\şUŰĂ9NW‚ĺ gŽ÷ÇéđxťÇŽý÷ҥ߬­MNž\edDSµ"¬X±póćÍ^Ëĺróóó§M›¦hQţČÍ›7W®\)Ó[Ŕbä ''§,$$¶´´îĐ!ŹŐ«mĺű0Éd2´€ŽŁZř|ÁŃŁż\şô›ĄĄń“'ŰŤŤéŞVô-ĐqTĆ›7BB®×ěرpăĆ9đő»ˇt€˘hTÔłî™čÜż2i’ŞA J:ޞ©©i ŤMNÎß´Éů›oÜÜĹoäS€ŽŁT^íÜy‹FŁÜ»2}úUË@” t%ŃŇұk×íŰ·łÖ®ý|÷îEŠzŁ 2°€ŽŁ 22XAAW[[;~ü1ŔÍm˛ŞĺôžÔÔTWWWĄ…ëěÄ·µ çó 4Z­Ň‚B>ťęęꮲ ăô-˘ëßNNć'NüCG‡˘jE˝§«ű÷ ʧĆáššMM¤¶6<@C?v¬`0ŢĄ4hŃÖÖ^˝zµĚ,xĎqňţ}íćÍ1Lfĺţý_Ö[ű>E Ş33ߥĄdd°Ş«9‚š­íXÓ3چ'©Z#Da@Çé+>Ě »ˇ«K _ŻK€˘č›722ŢefľKO/fł›‰DüĚ™¦ËXZ««U­Ň'@ÇQ<ťű÷'^ąňÂÇÇnßľ%p‘s™´´‚ŚŚwŮŮ%µµ-$ŢĆĆôóĎͬ­M&O=lt™Át“›[ľqăĎÍÍíçέqp0Sµ#˘ Ć_.óęUI]] …BĆÎĚ&L0ŔăáťÖC č8Šä‡RĽgk;öěŮŐz‘řSŕóŮŮ%™™ďRS ˛łKZZ:¨ÔaŘttĹĐŘضuëő_Íýç?nÚäŚĂ ­Ebq—yőޤµµCSS;]˛±1™8Ń>5Á€ŽŁ23ß}ýu´@ <Ţ{Ö¬±Ş–Ł$ř|Áďżgd°°3¦ÖÖmíáłgŹwp0ł¶67Nş Dč8ź„Pž:őčĚ™_ç̱8ujŐĂU­¨oáń:ÓÓYËüńÇű¶6Ť¦ag7ÎÁÁĚÁÁ¬n$éW@Çé=Nű–-×’’ň¶m[ä2XϤ:::32X©©,ŁĽ˝ť7j”–ťÝ8Sč2Ź:N/a0Ę7lârů/úŘŘŞZŽ‚árůآLZZA^^yg§ĐĐp„ŁăgÖÖ&66¦Đe ˝:No8>éČ‘‡óćM:uj…˘¤WÄ÷57=˝8#ăťČeŚŚhŘé’ŤŤ‰žž¦ŞBĐqş„ĹŞ>ś¤§GOlmíŘľýćîÝ»xíZ‡ţŕ‡Óž’ň»÷s33}ě26tH_G6,VÍś9G´µ‡'%m§Ń4°ÄüüĘőëŁZZ¸>¶¶őšTSS[jjć2ąąĺB!:yňhě2öĚ™cuu‡čmDĺG(Š.]ţęU ŔŇŇčÖ­@<wçNvXŘŤ3Ś.\đyĐ@ˇ±±--­»÷·¸Ť˘č¤Iٱ‰Ě´ic†ěÍŠĺG?˙üb×®ŰB! PSĂ­^mGˇ.\xŕđŻ-(ű„Ö×·>^ąLQQ5@ä23f 8Ó„  ăHRUŐ4{öˇövž¨c™1c̆ NîîJzăź/蝯UV6>{VíüPRRG ¨M›6{Zrút# ¸íDĹŔą$Ů»7Ďü݇ќśĘą$ÜÜĚ=xđŢ­[Y?ţčďädŢ“CĘË^Ľ(w[۱VpsH?:ÎßxôńŕÁź‰( „BÔ×÷‡¤¤oúô®â§O™[·ĆÖ×· …ÂÇŹrçdžääüŚ Vfć»’’:lsĚeŕć2ţ <«úmm<‡WWs„Bˇt.Ż6{öř }qoquuÓöí7ź<ÉĂálýČŘţâĹnń2ĄĄuŘ-yŘFypsČ@Îqţlj˙­©‘m7Đ””·MMmÚÚ žćÄÄĽÜż˙Ź× ŔěPRRWSÓ\_ß*ľ'¶ąĚşuźĂm 8Çů ŁÜÍí„@ ŮD"ľłS@&,Ľl™Ąłł…VT4†…ÝHIÉGDä5‚čëkVV6‰řéÓÇŘŮŤłµ Ď 8Ç>_ŤĂá–‚Çăá°aD7·)+VXŰŮŤSěŢ B!úÓOi‡?ŕń( ¤}ŹW31ˇź;·ÚŇŇD‚˙MAĘđź˙<+*ŞFQ€Ů ‚łĄK-çĎźÔŹM±X5!!×ţřŁE˛ç|~gu5ÇÎnśÂŁC *Dň¬ęÖ­[ ŞRŁZ[;Oź.ćó…ŚŚÔ'OÖś02lX_ÝćWXŘrëV9ź/ěötAÜÜďµ´ÔűHÉÇ2ÇäSđôôÔÖÖ–HüŰçáÇ+V¬P˘¤ţ•ę(p¸Ü‚ŠŠÖ—/ű6™l¦Ą5AÄM˘(‚ŕřŰU0EÓÓYóçOę[A=cČŽ HŻyůňĺţó‰Äż9NKK 2Ö §©©ŤÍn®©i®ŞjŞ­mał9l6§˘˘©ŞŞ±®®Ą©©+ĆĺňU«SŹbĹŠ­­­ŇépG5hjŞkjŞŹŻ'3×ĂcEg§Úż˙}ŇÂb¤’…A } ĽˇŁ?‚Ă"Qí2ř€Ž@”t˘< ă@ ĺŃKÇa±X>>>úúúD"ŃŘŘ844´±±Qţ!ůůůd2ű€A§Ó=<<***ÄËČŻáŁŔÂą»»‹'˘(jddô±µÉĐ;U ĎäçWŞ$´ÜŘŔ ‘HVVVOž<ůŘJäÔ)Ń„®Ę÷¤]f÷ĆqL¦µµ5•JMNNnhh‹‹+((5kV·K‰DB˙źśś2™Ľ~ýz€ąą9—Ëí…$ůŕńřÔÔT6›-JIIIéąZůô‘f9…čďżďŘqkҤ=ÎÎGďŢÍVftů ¸±! WQQ±víÚĄK—2™LEŐ)Ń™ôĽ]c÷Ćq6oŢĽfÍšđđpssóáÇ[ZZŢż_GGçŔ...ÇŹTTT räČ@UU‚ ‚ÔÖÖŠ×6jÔ¨ŕŕদ đwŁmnn Óéúúú{÷î?EŃ€€€yóća}ÔÚÚşqăF===íŰ·wvvćççź;wŽBˇäçç«©©-Z´(&&FTCtt´‡‡‡čknnîĚ™3‡ fddôóĎ?ËpńâEŤ¦§§wőęUđ÷żBĆĆĆ‘‘‘Ř!±±±Xyiy˝čs ŁüŔ»S§ţkٲđk×~on檩áŰ{]ˇÂpcCt ŤFŰ´iS@@Ŕż˙ýođ˙˙›˘b]Ť???Ťfll#sŽ Ţ@ccŁ··7ťN744Üąs'źĎ—3~jkkĹ{fp ăŹv‡“śśĽeËńDABBBîŢ˝ëććöŰożŇŇҨTjJJ %%eĘ”)L&ó~:ť.~leeĺ™3gfĚ!(88¸ľľžÉd&''_ąr%!!KGQtăĆŤ%%%wîÜÁúhË–-mmmąąą©©©©©©áááXµŻ_ż.,,477řúú^ąr«ˇ˝˝=!!aőęŐ˘X{öěůâ‹/öîÝ»}űv9x<Áx÷î]pppXX„f6›ť““Ăb±‚‚‚¶mۆ%Ę”÷Qdd°öîM:ő_ó揌L©«kB¬ç?¶¶ľc€Ž qľř⋬¬,QtQ19#$//ďÉ“'§Oź–Ů'Mظq#‡ĂÉËË{úôéNť:%^XbüĐét‰žĐĂř/P1nܸ!‘"MQQ‚ |>_"=;;›Bˇ0 …ÂçówďŢMĄR;;;7mÚ´cÇQßIĚZ)Š»»{YY–…•áńxx<ľ¸¸«üŮłgYYYXnPP@§*Đj IDAT`łŮXŹÇ#ŤŤŤŘ×§OźZYYa!°2ŘQŔŔŔ ;;EŃŘŘXWWWQ,EóňňZ[[ů|~TT”|€ššEsssEÍo—D®Lyň{EQOOOOOO‹}üř/vvGŽ 3fŰČ‘!Ň˙ ·]ąňĽŰ ?ťA<6ÄĄľ~ýZKKK¤DTUW#„Ĺbaşm—ËĹáp˘Câââ&Ož,üç¬aŚŤaéôŹľçXGGAŇŇRSÓż˝ú¶ĽĽ\__âĉZZZYYYiii±±±±±±ŮŮŮ))).\/L"‘äź4VVV …Bě«˝˝= ??żŁŁĹbMť:őäÉ“Řě·˛˛’Ďçkii‰+‰Dě‡[łfMTTÔéÓ§ŁŁŁ}||ÄĂĄ§§ŻYłACCCůD"öׇ“1=”ÎíJ^·äçŹ=űß8‚íĆç dCQô‡RĄwJU8ŐŐŐD˘ü2tlH4säČżnĽ/ÖŐ166ĆľŠôČiBUU@t©©é‡Ä Č]`ci>Úq¨TŞŁŁăąsçD“'O.]şôÜąsK–,,X° >>ľŞŞĘÂÂÂÉÉéöíŰĺĺĺvvvĹĹĹ=Ź˘§§řđáÖw>äńxććć!..îÍ›7ľľľćććzzzjjjuuuššš€ÖÖÖÚÚÚöövéÓ ___GGǰ°°/^Üşu«´´KŻ­­]»vmzzş••Ářĺ—_ä#ť+S^Ďűˇ' FTÂóĺÍÍxíjwÄż¸cCÄlll°Ď˘brFČű÷ď±ßó»wďşU®ŻŻ/qČÝ$"ĘaŔcń OOfÎŘ\‹FŁmٲ%??ż˝˝}ßľ}AGG§®®EŃřřx Ť/żüEŃźţYCCcٲe(ŠćççăńxŹ'=•!žĺáááééYSSSPP`bbrűömńÜM›69;;cźW®\éďď_SSS]]˝xńâń’âź­­­çÎťëëë+žÎfłÉÎή««óńńÁăńŘěQľ‰é®D ńĎŇňşíalFÚŘŘzófĆŇĄçFŤ =zk˙?«Bňب­­˝pႆ†ĆŰ·o%˛ş!«V­rwwŻŞŞ***˛˛˛"“ɨ¬35q–/_ľxńâęęę‚‚‚É“'|řplŠçćć&Zßí ™=3°†±Ű‘ëćÍ›+W®D{µ#—ËÍĎĎź6MIďÜ`;ŃÜĽyS"ťÁ(OHř#..‹Ín&ń<^§šîŕÁĺ>>v}- Ž ibbb\]]±3—ÄÄÄ]»vĺĺĺ©ZTˇ«1¬°?d2yđ ©ţƤI{÷.~őj|üć•+­54ČPKkŞuuĂ`Ëp8ś’’’ŁGŹbkUůŔýq8bk;ÖÖvě÷ß//.f››ĂM-TCxxřW_}5zôhA.\¸sçNU+@ÇŔjĐnTľľţť;wT­b€ŃŻ—!!Č :QĐq ň€ŽÓ ʧĆdö»˝o O®«†îŢc;÷hD„Ď’%ÓU-Qs ĐĎ6@P˘7ä 2ްŁXzţ†<™Üým¬ĘaČŽ HŻńóó“N”| đÇeľ×jÓŇÂ˙öŰ?°·›P¬­u§N1|x_ýÔóň˘˘ x<Á€{ đOÁĹĹEú-Ŕ’Ž34ą|9e˙ţD‚ @ÄÎnś§§őüů“(ĹoţZSÓĽ{wÜýűâp8l3 ™™é''ďPxtD…@ǡuw?Ă`|mCĂ!‚ (:mÚücć’%Ón=żţš»mŰő¦¦v™{ßj3gŽ qµ´4&‘ŕrdç/Śr7·do¨©!B! ‘đ Löđ°rv¶P`P§ýŔ{WŻľTSĂa»ŠŚĄYQŃH$â§Ocg7ÎÖv¬ĄĄ±ş:Q %ç8p722ĄłSöiŹP〶öpĹĆýí·ü­[Ż×Ö6‹›¶Ç«eg—¤¦dd°^ż.„ăĆéŮŘ88ŮŰŹ1BÁJ ľ:Î˙hkă9:®®ćtvĘ<ÍÁ;8Ś˙ůçő8śâŻ×47sŹýĺ§źŇÔÔĚňĆŤÓMMýŰ“­­Ż^ýĎ}ř|‘ÍÁÁĚÚÚÄŢ~ü¨QZ]Ô ô# ăüŤ—/‹=<ÎK÷ €34¤=z´mřpRßEú”ąmŰőúú6ˇPčí=ëĐ!Ź®J¶µńţřă}F+#ă]z:‹Çë42˘Y[›ŘŘ:9™Ź-yé'@Ç‘dË–«‰‰Żřü˙ťŕŕpȰa„GŹÂLM{ą›tĎinćźn6f ­Ż5C =:Ž$ ­öö‡8śvˇđŻžAdćL??‡Ĺ‹•´­ź/ Ôş/'—ËĎÉ)w==ŞŤŤ)vňőŮgú — |ĐqdpűvÖ–-W±ŽÁ᯿vFQpáÂS??ű}ű–‰ăZug§0/Ż<-­ #ăÝďż77s1÷±¶6±±1™ď ŞÔÔpcÇęb÷ű88őź}T!Ę:Ž‚ůđˇá믣Ś,]˝z–Şĺ¨6»9=˝»ĺçÍ›ŕ?Cč8Š§ŁŁs˙ţĨ¨ç>>vß~ű%\LQSÓüűď˙sEá?C č8}ĹÇ9aa7tu©áák&M2Pµś~GmmKvv vňĹ`| Q¸ĹĎP:NR[ŰvăéÓĽŻľšóÍ7nř†ťO¤ą™űúuijj´űŔ-~Đqúś[·2wíŠ33Ó _cbŇç{ző)GŽyňäIź†ŕóńíí­­ę­­Ă;:H2ąÝÔ´>Ü>€ Ńh‘‘‘ E: :Ž2()© şš›[ľsçëÖ}®j9˝A[[[CCCĺ„ăóŐššj-ʉQ·nÝşqăĆŠ+¤łŕýéĘŔČżůĚ™Çű÷ßyů˛čر•÷Mhh¨Ě‘łÝN™:†2x>>úúúD"ŃŘŘ844´±±Qţ!ůůůd2ű€A§Ó=<<***ÄËČŻáŁG"‘¬¬¬>ý†#‰&P(—·oß~l%ââîî.ž‹˘¨‘‘ŃǶWfő®ßz tŐŁ§GŤŠZ{čÇ•+ĎćĎ?ńçźeŞVôI0™Lkkk*•šśśÜĐĐWPP0kÖ¬nMG‰DB˙źśś2™Ľ~ýz€ąą9—ËU¸`Q¸ŠŠŠµk×.]ş”Éd*ŞNEKKK'LĐëÚđx|jj*›ÍĄ¤¤¤ôĽ?ĺÓG˝Ú%(¤ßPZZçánh¸őűďďńxťŞ–#ŔŤ7ä—qvvO …[·nť;wî±cÇP-//>|EŃĘĘJń™––&ţsEQ4==ťN§Ł(Ęd2EYÇßßźFŁéééíŮłGźŻĄĄ…-â:;;—””D˘ŽŽě§j«««GŽük˙Fńbééé¶¶¶‰‰‰â2ŚŤŤ±Ż"=Mhmmőóó[·n]WzşjŽ88nÍš5QQQ€ččhńÜ®´I×I$ét:VˇtŰĄs»ęŔŢÓ­]ATHiiÝŞUGŤ ŠihhUµś­ăĚ™3'$$Dôőĉ,kţüůaaa(Š®_ż~űöíşşşBˇ0 `ÇŽššš<Ż«ł*qDY\.‡Ă•––béĽ+=]5G˘¶ĽĽ<ť˛˛2--­ÖÖVQşm]Ő‰ţ}j#-[Ľ«ĄËţŹCÎ8sś~Ťˇák׾şxŃç·ßňťśßż˙§ŞuOxxxtttHHČŰ·oą\.‡ĂůěłĎ^˝zµsçN€››[DD„ťť‚ NNNçĎźź;w.@@D đůüž„ ‘HË–-۶m[mmmaaáćÍ›‡ĂaW¸ýýý±’ˇˇˇµµµl6ŰËËëôéÓ]U[WWńÓO?íÚµK" űµŕńřúúúcÇŽ ‚¦¦&‰´rĺĘ-[¶TWW nyˇBÂĂĂkkkGŹ=eĘ###l­ "¸ŕ€ÄĘĘä×_ĂÂĂ“Nž||ýzĆKťśĚU-j(˘ŻŻçÎU«HŔ9Î@…@P ť÷âĹîéÓǬ^}yĹŠ oßV©ZŇ Đq6zzÔłgW?xŇÚÚ1oŢń˝{š›•řTň‘@Ç L›6ćŢ˝ăÇW&&ľúüóßş•‰ÂWt@ú%Đq 8âéiýěŮÎE‹¦mÝz}ůňóLf…ŞEA ’Ŕ•ăA…¦¦úK˙ń›Ý»ă]]Ź/[fůí·_*öM5IIIŠÚ™2oČś…čµkż>ü€@ŔóÍ‚+lÔÔ0źť5kÖďż˙ţéő@7 %==ÝÂÂB: :Î`¦©©íäÉÇQQĎĆŽŐÝ˝{ŃÜąT­2ÔŽ3ř©Şj:yňQllú”)Ł÷î]lk;VŐŠ Cč8C…ÂÂęăÇ˙{ďŢkW׉ß~»ÄÄDöî0HźghńěYÁ÷ňó+W®´ŮľÝMG‡˘jEˇtś!Š˘÷ď˙yčĐýÚÚ?żŮ!!®Ă‡“T- 2T€Ž3Dioç]ş”|áÂSMă›o.Y2‡“˝›˘@ ă ijk[NťzóŇŘ2ońâi ątt¨«kąx1ůÇSétŤ ś||ěDxk(¤O€Žů‹ŇŇşÓ§˝};sĚZp°ëŇĄ35U‹‚ 6 ă@ţĆű÷µ§O?ŽŹ˙C__sÓ¦9«VŮ’ÉU‹‚  ă@dPSÓ|ůrĘO?Ąáń¸+l‚‚\tuáut€Žé’ŞŞ¦ßbb^¸5kěüýgh«Zd`Ň uu-—/§DGżhiáşąMY·îskk“î@dŇ#ř|Á˙ű&&ćeZZ©©Žźßl//[uu˘ŞuAĐq GFë§źžýňK޶¶şŹŹ˝··|TŇs ă@z‡Ó~óffddJyy˝ýx+w÷iđޤ[ ă@zź/řĺ—7ׯ§§¦ľŐѡ,_nµrĄÍřńzŞÖéż@Ç(€Ćƶű÷˙üĎž1™ffúžžV+WΤÓ5T­ ŇQB!úâEallúÇ98nţüIK–Lź3Ç>3˘xššÚâă_%&ľĘĘzOˇÝÜ&/^<ÝÁÁ ʇʉu ă@ú††Ö'Oňîß˙ó·ßŢĹe‚‡‡•““9|bkȢ JJęîŢÍľs';/ŻBOŹ:ţ¤yó&ŮŰŹ'‘ŕ ×Đ:D©±ďŢÍţďß0ĺęęD''sW׉..h4¸Ě<$€ŽQ ĺĺ Ź1ţű_Fzz±@ ś1Ăxţü‰nnSLMá–ďč8ޤŞO"Ť!‘LČdÓ¶6fsó3…T Q>ŽŽŽÉÉÉňË@Çô†+V”••mÝşUuvv ů|á°apeg@ňňĺËS§Nuë'đŇK ===U­Ň_čáÜŢ@”t˘< ă@ ĺ(č8Dy@Çô-,ËÇÇG__źH$‡††666Ę?$??źL&c1čtş‡‡GEE…xů5|rÂ)0ĘG‰qwwODQÔČČčcĘÔ٧âĺ҇0™Lkkk*•šśśÜĐĐWPP0kÖ¬nMG‰DB˙źśś2™Ľ~ýz€ąą9—ËU¸ŕ®Â©<źššĘfłE))))=ď:ůôQv tH˛yóć5kÖ„‡‡›››>ÜŇŇňţýű:::pqq9~ü8 ˘˘A#GŽŞŞŞ±°°ččč@¤¶¶VĽ¶QŁFgdd€ż˙‰nnn Óéúúú{÷î?EŃ€€€yóćaż®ÖÖÖŤ7ęéélßľ˝łł3??ßŘŘřÜąs %??ż«p€ĆĆFooo:ťnhh¸sçN>ź/*ůđáĂńăÇ‹ľZXXÄÇÇ777űůůŃh4ccă‘Zéz0 ‘‘‘Xbcc±’jjj‹-Љ‰Őíáá!úš››;sćĚaÆýüóĎň{ăâĹ‹4MOOďęŐ«ŕďI™ŃĄűŞ˙áÝŇWp8śäää-[¶'"r÷î]77·ß~ű ––FĄRSRR)))S¦La2™Ř\N§‹[YYyćĚ™3fH ®ŻŻg2™ÉÉÉW®\IHHŔŇQݸqcIIÉť;w°_×–-[ÚÚÚrssSSSSSSĂĂñj_ż~]XXhnn.'ÜĆŤ9N^^ŢÓ§O>>âąééé¶¶¶‰‰‰ň{Ł«ú1¤s»ę«O:¤Ż R©ŽŽŽçÎťĄś}[ ŃÓÓSSSýÝniiÉĚĚ Ňm}}}Ŕű÷ﱯďŢ˝9r¤x ÄÇÇ·¶¶:;;cŞÄËËŻGŽ__ßk×®}řđáŋ˖-Ą×ÖÖ®]»öŇĄKYYYßňŰ(ťŰU_}:Đq }HxxxtttHHČŰ·oą\.‡ĂůěłĎ^˝zµsçN€››[DD„ťť‚ NNNçĎźź;w.@@D /ÍĘD"-[¶l۶mµµµ………›7oG"‘¬¬¬üýý±’ˇˇˇµµµl6ŰËËK|yĄŰ(K—. ałŮ………űöí_O 6ĚÍÍí믿^ąr%zĺĘ•[¶l©®®...>xđ ö«î¶i,,,ŚŤŤýüü–,Y˘®®.JÇĽŹÇ×××;vL 45GI‘ŇIDAT5uŐ˧ô•| ă@ú &dddÔ××;::jjjFGGť={ŕââŇŃŃáŕŕ3gNKK vJe``0nÜ8ŤV__ß“(—.]ÂăńfffŽŽŽţţţË—/Ď=tčÁ¸víŕâĹ‹ťťťććć&LĐŐŐ=tčPĎŰréŇĄáÇcÓ1777ŃJ­ĺË—WWW‹äÂ…  ĹĚĚláÂ…ţţţˇ‡őHăëë›””$qJĄŁŁłoß>GGG›eË–Ť?»Ś%ż7zΧô•<ş]é@¤éÉĘqW´··cKˇ ěąčktttUUö9!!ÁÂÂBEş”\9†ôSČdň´iÓT­BÁ|řđáĉŢŢޢ”ÄÄÄ]»vq8ś’’’ŁGŹbKWč82e ŹÇżů(<<Ľ¶¶vôčŃS¦L122–® p@DH/9éëëßąsG%bú3pŽ@”t˘< ă@ ĺ(¸r é%©©©®®®ŞVé/TWW÷¤tHoŔž€@DhkkwűÄ€ďä„@ Ę®ă@ ĺ(č8Dy@Ç@ Ęă˙8)ÖVŢâôoIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_27.png0000644000175000017500000000274612052741163017343 0ustar gudjongudjon‰PNG  IHDRu%óč1bKGD˙˙˙ ˝§“›IDAThíš]HŰlǓڴašŘâěş]¨«ç'¬Š^(ÚuÝŐvAÝh+âĢâđ '‚_ űb WyáÍ@‡""nŽŽ©Ë&µ8EË,¶Z?ZŚöĽyßµőó %ż«'ç99˙“ź>ICQ@xCtÚ D8‚żü"řË/‚żü"ć¬ŻŻ›Íf·Ű}ZÝD ŮŮŮě!Ę}~°Z­÷ďß×ëő§ŃX$066–““cµZŮ84‰;-p$îÝ»ö_~üĺÁ_~üĺÁ_~9¦ż‡Ł¨¨H©TJ$’¤¤¤ĘĘĘŐŐŐýOůůó'ŽăĚĺ@„V«ýőë×áŐŮR‡Éd…¤R©Z­8‘ʇä8ţR•™™I’äĐĐÇăéííť™™ÉÉÉ9Đb©T ˙1??ĺĘŁŃxŚNޤµ´´d2™îŢ˝KQOZaďßżŠ„EŁŃX,n$äććVUU]ż~˝ĄĄijj§ÓÉUáú rąśOMMeeeá8žđúők&hµZSRRpOKKă>ž»\®ŤŤŤ’’…BqáÂ…ęęjš¦)ŠJLLěč艉ůđáC–Ĺb1 aµ\.·rŘNöGŻ×ëőznäČţ®­­‰D˘ŮŮŮ xooďĄK—Z[[oßľ ===$Ięt:fśžžNQs©ě€Áăń”——2‡wîÜ©ŻŻ÷ů|ÝÝÝ …‚QÄ0l``Ŕď÷?ţ<99™[Ád2 —Ëe·Űł˛˛ž={FQ”D"1ŤN§3H >~üššş—7?tö@NŔ_»ÝŽ˘(MÓAq›ÍFÄÔÔA4M—••ŐÖÖ’$ąłłSZZZSSĂő7č;D’¤Ýngęüřńcss“¦éWŻ^1ůn·[*•ľyófkk+řý~¶Ôöö6†a«««Ěąź>}R«ŐLýĺĺeů,ŕŰ·o2™l/-n~čě1ü=ňţŹ˘čüü|P|qqQ©T¦ĄĄÉd˛‰‰‰‘‘‘ś={Öfł ët:n2·ÝÍÍÍGŹ™Íffj||<777;;»ŻŻŹ‰Čĺňţţţ·oß*•Ę7n|˙ţť­ăt:iš–ÉdĚLŁŃüţýA‰D¶˙?ţś?~/-.űĎ®Ů‡Ü ***Řö¶6‡ĂqëÖ­ęęj(..~ňä‰BˇFٱ¦¦&66v{{{ŻýYSŃŃŃŕrąD"Ń—/_`rr’Ióů|ź?żßßŘŘxńâE¶‚ßŠb×ďĆĆĆÜÜ·~¨–Ĺbyřđá^Zl~ŘŮ ]żaŢďHggg^^”––&&&z˝Ţ””™LöîÝ;At:]QQ‘V«EQ4??˙ńăÇ7oŢÄ0 EŃÝÝ]š¦C ž9sĆçóíěěüŰ“Xěv»[ZZvww×ÖÖÄb±FŁĽző*Žă8ŽłĄ¤Riaaaeeesss (..V©T%%%aŰ^YY±Z­/^Ľřúő+»Ś‚´ŘĘagcccŹl×ěC®_ťť5 çÎť“H$*•ŞŞŞJ­V×ŐŐ€×ëĹ0¬­­ éîî€őőőË—/1::´Ľ^oTTTOO<}ú”$ÉäääľľľÔÔT­V /_ľLHHŔq<33s||ś-µ˛˛âńx C\\\\\śŮlŢÚÚ Zżě•bvíÚµÁÁAV7T‹[9l'G]żÇô7źĎgłŮŽwnÄp÷·˝Ŕq<##㤪E Âű~üĺÁ_~üĺÁ_~üĺ—0żßşşşţ˙>"‡ĂˇR©ţ q†§§§ ‚8ĄŢ"„ööv®ĄýGŕÄö_~üĺÁ_~üĺ———SŰÓ)zIEND®B`‚qwt5-5.2.3/doc/html/graph_legend.md50000644000175000017500000000004012052741143016507 0ustar gudjongudjon149b2e5914207f0adee18790fbeb5afaqwt5-5.2.3/doc/html/functions_0x63.html0000644000175000017500000003362212052741151017152 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- c -

qwt5-5.2.3/doc/html/qwt__double__interval_8h_source.html0000644000175000017500000010467312052741134022716 0ustar gudjongudjon Qwt User's Guide: qwt_double_interval.h Source File
Qwt User's Guide  5.2.3
qwt_double_interval.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_DOUBLE_INTERVAL_H
11 #define QWT_DOUBLE_INTERVAL_H
12 
13 #include "qwt_global.h"
14 
21 class QWT_EXPORT QwtDoubleInterval
22 {
23 public:
39  {
40  IncludeBorders = 0,
41 
42  ExcludeMinimum = 1,
43  ExcludeMaximum = 2,
44 
45  ExcludeBorders = ExcludeMinimum | ExcludeMaximum
46  };
47 
49  QwtDoubleInterval(double minValue, double maxValue,
50  int borderFlags = IncludeBorders);
51 
52  void setInterval(double minValue, double maxValue,
53  int borderFlags = IncludeBorders);
54 
55  QwtDoubleInterval normalized() const;
56  QwtDoubleInterval inverted() const;
57  QwtDoubleInterval limited(double minValue, double maxValue) const;
58 
59  int operator==(const QwtDoubleInterval &) const;
60  int operator!=(const QwtDoubleInterval &) const;
61 
62  void setBorderFlags(int);
63  int borderFlags() const;
64 
65  double minValue() const;
66  double maxValue() const;
67 
68  double width() const;
69 
70  void setMinValue(double);
71  void setMaxValue(double);
72 
73  bool contains(double value) const;
74 
75  bool intersects(const QwtDoubleInterval &) const;
76  QwtDoubleInterval intersect(const QwtDoubleInterval &) const;
77  QwtDoubleInterval unite(const QwtDoubleInterval &) const;
78 
79  QwtDoubleInterval operator|(const QwtDoubleInterval &) const;
80  QwtDoubleInterval operator&(const QwtDoubleInterval &) const;
81 
82  QwtDoubleInterval &operator|=(const QwtDoubleInterval &);
83  QwtDoubleInterval &operator&=(const QwtDoubleInterval &);
84 
85  QwtDoubleInterval extend(double value) const;
86  QwtDoubleInterval operator|(double) const;
87  QwtDoubleInterval &operator|=(double);
88 
89  bool isValid() const;
90  bool isNull() const;
91  void invalidate();
92 
93  QwtDoubleInterval symmetrize(double value) const;
94 
95 private:
96  double d_minValue;
97  double d_maxValue;
98  int d_borderFlags;
99 };
100 
108  d_minValue(0.0),
109  d_maxValue(-1.0),
110  d_borderFlags(IncludeBorders)
111 {
112 }
113 
124  double minValue, double maxValue, int borderFlags):
125  d_minValue(minValue),
126  d_maxValue(maxValue),
127  d_borderFlags(borderFlags)
128 {
129 }
130 
139  double minValue, double maxValue, int borderFlags)
140 {
141  d_minValue = minValue;
142  d_maxValue = maxValue;
143  d_borderFlags = borderFlags;
144 }
145 
152 inline void QwtDoubleInterval::setBorderFlags(int borderFlags)
153 {
154  d_borderFlags = borderFlags;
155 }
156 
162 {
163  return d_borderFlags;
164 }
165 
171 inline void QwtDoubleInterval::setMinValue(double minValue)
172 {
173  d_minValue = minValue;
174 }
175 
181 inline void QwtDoubleInterval::setMaxValue(double maxValue)
182 {
183  d_maxValue = maxValue;
184 }
185 
187 inline double QwtDoubleInterval::minValue() const
188 {
189  return d_minValue;
190 }
191 
193 inline double QwtDoubleInterval::maxValue() const
194 {
195  return d_maxValue;
196 }
197 
205 inline double QwtDoubleInterval::width() const
206 {
207  return isValid() ? (d_maxValue - d_minValue) : 0.0;
208 }
209 
215  const QwtDoubleInterval &interval ) const
216 {
217  return intersect(interval);
218 }
219 
225  const QwtDoubleInterval &interval) const
226 {
227  return unite(interval);
228 }
229 
231 inline int QwtDoubleInterval::operator==(const QwtDoubleInterval &other) const
232 {
233  return (d_minValue == other.d_minValue) &&
234  (d_maxValue == other.d_maxValue) &&
235  (d_borderFlags == other.d_borderFlags);
236 }
237 
239 inline int QwtDoubleInterval::operator!=(const QwtDoubleInterval &other) const
240 {
241  return (!(*this == other));
242 }
243 
249 {
250  return extend(value);
251 }
252 
254 inline bool QwtDoubleInterval::isNull() const
255 {
256  return isValid() && d_minValue >= d_maxValue;
257 }
258 
264 inline bool QwtDoubleInterval::isValid() const
265 {
266  if ( (d_borderFlags & ExcludeBorders) == 0 )
267  return d_minValue <= d_maxValue;
268  else
269  return d_minValue < d_maxValue;
270 }
271 
279 {
280  d_minValue = 0.0;
281  d_maxValue = -1.0;
282 }
283 
284 #endif
qwt5-5.2.3/doc/html/class_qwt_plot_zoomer__inherit__graph.md50000644000175000017500000000004012052741142023721 0ustar gudjongudjonf7c3c16eaaca2aaf53e6cb8223f408cbqwt5-5.2.3/doc/html/class_qwt_array_data__inherit__graph.md50000644000175000017500000000004012052741137023463 0ustar gudjongudjon483c6907570638ae0b2bfe32b33e5b16qwt5-5.2.3/doc/html/class_qwt_dial_simple_needle.html0000644000175000017500000005023112052741164022237 0ustar gudjongudjon Qwt User's Guide: QwtDialSimpleNeedle Class Reference
QwtDialSimpleNeedle Class Reference

#include <qwt_dial_needle.h>

Inheritance diagram for QwtDialSimpleNeedle:

List of all members.

Public Types

enum  Style {
  Arrow,
  Ray
}

Public Member Functions

 QwtDialSimpleNeedle (Style, bool hasKnob=true, const QColor &mid=Qt::gray, const QColor &base=Qt::darkGray)
virtual void draw (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const
void setWidth (int width)
int width () const
- Public Member Functions inherited from QwtDialNeedle
 QwtDialNeedle ()
virtual ~QwtDialNeedle ()
const QPalette & palette () const
virtual void setPalette (const QPalette &)

Static Public Member Functions

static void drawArrowNeedle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob)
static void drawRayNeedle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob)

Additional Inherited Members

- Static Protected Member Functions inherited from QwtDialNeedle
static void drawKnob (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)

Detailed Description

A needle for dial widgets.

The following colors are used:

  • QColorGroup::Mid
    Pointer
  • QColorGroup::base
    Knob
See also:
QwtDial, QwtCompass

Constructor & Destructor Documentation

QwtDialSimpleNeedle::QwtDialSimpleNeedle ( Style  style,
bool  hasKnob = true,
const QColor &  mid = Qt::gray,
const QColor &  base = Qt::darkGray 
)

Constructor

Parameters:
styleStyle
hasKnobWith/Without knob
midMiddle color
baseBase color

Member Function Documentation

void QwtDialSimpleNeedle::draw ( QPainter *  painter,
const QPoint &  center,
int  length,
double  direction,
QPalette::ColorGroup  colorGroup = QPalette::Active 
) const
virtual

Draw the needle

Parameters:
painterPainter
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
colorGroupColor group, used for painting

Implements QwtDialNeedle.

void QwtDialSimpleNeedle::drawArrowNeedle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
int  width,
double  direction,
bool  hasKnob 
)
static

Draw a needle looking like an arrow

Parameters:
painterPainter
palettePalette
colorGroupColor group
centercenter of the needle
lengthLength of the needle
widthWidth of the needle
directionCurrent Direction
hasKnobWith/Without knob
void QwtDialSimpleNeedle::drawRayNeedle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
int  width,
double  direction,
bool  hasKnob 
)
static

Draw a needle looking like a ray

Parameters:
painterPainter
palettePalette
colorGroupColor group
centercenter of the needle
lengthLength of the needle
widthWidth of the needle
directionCurrent Direction
hasKnobWith/Without knob
void QwtDialSimpleNeedle::setWidth ( int  width)

Set the width of the needle

Parameters:
widthWidth
See also:
width()
int QwtDialSimpleNeedle::width ( ) const
Returns:
the width of the needle
See also:
setWidth()
qwt5-5.2.3/doc/html/class_qwt_abstract_slider__inherit__graph.png0000644000175000017500000003706012052741152024631 0ustar gudjongudjon‰PNG  IHDRŘĎa?bKGD˙˙˙ ˝§“ IDATxśíÝw\÷˙đĎeĘŢ Ęr*ŽŠ8( KĹ…¨€“!ü‚ gë(VkݨEÄ…P•á^ÖVEAe©dďȸß×ć—"˛¸ďç>Â'wź{ß'É+çĺ†ă8@ Ů@A $ ’AÉhdú©?˙üó§ź~"»Š~D^^>88XRR’ěB@+08jÂŢŢţĎ?˙ś2e Ů…ôWŻ^Ť°··'»Đ Ř"¤™2eĘ•+WČ®˘żŔ0ŚěŔ7Á>b 1 ‚HA $ ’Aa—ťťíč訢˘"""˘©©éăăSUUŐö,™™™bbbÄě_˘˘˘±±±ť-€Ű[»ŤĽĎb<$%%---ßżßŮE~‚µŚŚŚ‰'JIIĹÇÇWVVFFF~řđaĘ”)íf1—¨¨(Žă8ޏşşÚÚÚfddtkÍ-–‹ăxnnîČ‘#W®\ŮË˝1jË—/ĐŐŐź0a­[·÷ěŮciiyřđa„PAA†a@a¦§§×ÔÔ„aXYY·+yyůuëÖ­\ąrßľ}DKUUŐŠ+† ňăŹ?2™LŢíÜŰĽÇŹWVVVRRZż~}SSo‘őőőnnnĘĘĘjjj›7of±X-ÖBVVÖÉɉű––6iҤhhh\Ľx‘X–¦¦fpp°‚‚‚ŠŠJxx81emm­łłłĽĽĽ¦¦fXX·žv—zb Ľjjjâă㽼Ľx1 óööľqㆵµőăÇŹB‰‰‰RRROžgĎžť””DĄ¬¬LĄRąŰ§uuu/_ľl±Đ®\ą’h/++suu JJJÚłgwšŻŻˇ¬¬Ü˘ÂŽ/ô.Ä@¨„††z{{ż˙žÁ`ÔÔÔčččĽ~ýúÇDY[[Nť:ðiÓ¦ť8q‚N§cĆfł™L&oWĺĺĺçΝ۶mBHTTÔÖÖÖŰŰ»¤¤äăÇŹľľľË–-“••mnnľwď^YY™źźw^ …âíí]ZZš––¶cÇgggîS˘˘˘‹-ňńń)+++))Yşt)ďÎ\®666˛X¬ţ+JŁUTT:tÍfWWW·şî˘˘˘^^^ĹĹĹ˙ý÷Ţ˝{‰°îŕA/A „ÚČ‘#_ĽxQQQajj*--ş~ýz Ťß~ű !diiŮÔÔdllŚ233«««ł¶¶F©©© 6L^^ľ˘˘‚8|Ă0UUŐłgĎ^ż~}ÄDçAAAâââÄÖ´µµőćÍ›•••}}}ĆŽ»bĹ nZZZşşş––– ,Xż~=o‘§Nťb±Xşşş#GŽTRRúő×_ż^ Ă"##}}}MMM ,X0|řđE‹}kőOž<)))9bÄYłfą¸¸ĐéôŽ/ô"p=b@â¸]» &ÁČĚĚ7nś ‹:aaaVVVÄ>Šm۶Ą§§w­+ ĂŕzÄB ¶Aď#&&ÖRýľ555ź?>xđ ±gô=ÄŻ€€€˛˛˛ÁŹ3FCCŘ3ú8| ᥢ˘rýúu˛«Ý¶€dÄ@2b 1 ~¬¤ÉÎÎ>}ú4ŮU@>b@ŽÉ“'_˝zuíÚµdŇ9TŞ$ť®Â`|$»N“””Ô××'» Đ:8ł€Nض-ęÂ…Äččő“&i·?5űč(‹ť„ŠŽ~Ev- O  Łž<ɬ©iDEFľf2Ůd—úb:**ę5•JE544ĹÇg’]č; 膆ć;wްXl„•ŠEFÂŢ 0ÄtHllww‹Ĺąwď]}}SŰłĐAÄtȵkIĽ73b±Ř¤‘WčS h_UUĂăÇ™l6ﱞXddiľ‚€öÝ˝ű¶E ‡Ăyňä}ee=)ő€>‚€ö]˝šÄá´ręÓ­[ozľĐ÷@ĐŽ˘˘ęçĎłż>Çńk×ŕ>ö@ hÇÍ›)Tj+źOJú\XXŐó%>‚€vDFľ"ţŽŁ›7aďŕ\} €vŚ­VZZCţĽvíÚ;věćÍ›»wďÎËËswwo7‹y555ĹÇÇ÷Ýw÷ďßďľRۆăřćÍ›eee‚‚nŢĽąk×®wďŢůűűóNŁ®®ţŕÁ˛*ä‚ ÂëřńăVVV^^^ęęębbb#FŚŘ·oźŚŚĚĹ‹7nÜ*//733 GUTT™™9991™L33łęęj„Đ“'OTUU===_ĽxŃâ\ľČČH[[[[[Űß~űŤÉd"„âăăgĚáââĎíęÝ»w‹/ŽŠŠš5kVnnî§OźÖ­[7cĆ nz644>ž; Áđóółµµ]´hŃ©S§Řlvnn.oaÝ÷Z€nA „TCCCJJʢE‹x1 [´hŃłgĎ&Mš”śśŚzűöíŔ߼yzó捶¶vHHťNüř±´´4BčŢ˝{sçÎŐĐĐ:tčŁGʏ]1™ĚWŻ^ť?ŢĎĎďĺË——.]jhhŘ»wŻ··÷­[·lmmy»*//ĎĘĘ SWW?{öě”)SnŢĽéččHtčďď_SSrěرű÷ďż}ű–;»–––¦¦ćO?ýôôéÓÚÚZ„¶¶öÎť;żµîGŽ!ş:räČăÇŹąíţţţMMM.\ří·ßŢĽyŤâ-LpĂz1RÄÖ«’’R‹vUUŐĘĘJCCĂwďޱŮě·oß.X°ŕÝ»wçÍ›7“&M❸¨¨(33ÓĘĘ !4cĆŚ{'<<|čîî.##Ł®®ľsçNeeeîĽ % `ňäÉwďŢ]ľ|ąłłóąsç}Ä_knnNHHđńń‘——**ĘČČ!dhhXQQˇ®®>nܸ'Ož”••Ť5Ş  €Çńű÷ďűřřL™2…hŮ»wďýű÷ÝÜÜg‹ŠŠ,ÎĎĎWRRjnn?tč“ÉĽrĺĘîÝ»÷ďßĎ­Ă0âAuuőÁuttrrrž?Ž’••E•––Ńüüůs&“ÉÝWŕçç÷ĺË???˘]]Ý5kÖlÝşµŐ———GY\XXH´ËĘĘR(”7n‹‹#„ FuuuSS·0Đ{Á® ĽĽĽĽzôh ĂĆŤóÝwßŃh4 Ă8‹ĹzóćMEE…………ÜżĚÍÍccc9Bð€€€ŞŞŞOź>ť={vćĚ™gÆ ™™™!nWĽUWŽĄR©µµµ—/_ćp8őőőt:ÝÄÄ$00°şşúË—/ÇŹçp8ÜŮgĚńćÍ›ŇŇŇćć漼Ľ°°°©S§¶şÖ4ÍÔÔôřńăĺĺĺůůůˇˇˇD;ťN755=qâDuuuUUŐž={®]»Ö­ăz 1^§NťŞ­­őňňš={ölmm•••###B&L`2™cĆŚAŤ?ľ±±‘ŘA¬   ¦¦fccsőęŐ©S§Š‰‰q;466®ŞŞJJJB©ŞŞęčč8::nܸŃÄÄdÁ‚bbbžžžľľľsć̉‹‹űᇸ]ż°dddśśśĽĽĽÜÜÜLLLL\ĎsăĆŤT*uĹŠŢŢŢ3gÎ411áή®®ľoßľ?˙üÓÉÉiŢĽyŰ·oWWW߸qă·V|Æ ÎÎÎ6lpppŕmgłŮŽŽŽNNN˛˛˛«V­ü 2Ŕ…á ®\ąâŕŕŔ{<@Ç577çćć6LŕUőmńńń?˙ü3|Ţ…l^FDDRô1Ä@2b 1 ‚HA $ ’Á)΀4›6mę™±Ů"l¶(›=@D¤’JeöĚBŰĹf‹54(S(ÍTj…¤њ1¬Ăşë8_â@8AXYY9;;×- ‹Â`P *Akj˘2ôĆFjSÇ˙ąşz­şzM»ý47S>|“’jRWŻmwb®ěléćfę°a•4Z‡ÂôˉâbéŤt:‡Fc‹‰±ED8˘˘l:ťř—-)ŮÜńJľeÍš5üwşśYz·šĆúőˇ˙]ZXXŐŘřĎÖ.•JáppŢ÷6…B6L):ÚCVVĽíccÓ=<Âjj/žäç·¸ă•,ZtâŮł,‰S§ś¦Nm˙”‹ăîzëÖ›V?T*•JĹ8śĹb#„Îśq™5kLÇ‹˝ ě#˝[JĘç‡ÓłłKą)Śbł9ĽéFŁQ55ĺŻ]so;…™LöO?E;:ž©­e „LMu:U‰•Ő( ĂĘËëíěNěÝ{“Éd·==ŤF9yrĹÂ…(”V.źĆfł››YD c6lXËë2ľ‚ôn&&:ŁF©µšeŤŞˇ!wýş§‚‚Dýddšî?ţ)B8Žă†™ŚčT%––#ń   x3łéémĎBĄRŽ_ęâň}W˛¤Ń(Ó§Ź1BĄSŀނôz›7ĎäpZŠFŁ"í)/ßV ź9“0s摼Ľ 6űźŽôôTŰ݉ŃÂСJÉŹY,NnnůĚ™GÎśIh{ď†a»wŰ®^mŠPëaĚbqĽĽ¬:U ču AŻ7}úh==*µĺ›™FŁŞ¨H]»ćŢƶpuu‹ËY_ß&“ĂMa:ťfa1˛K•ڤөÄc‹ĂbqvíŠqp,.nëB ĂvíšďăcőuÓh yŢoĐ'AŢ-3łĐÍ-$7·‚Íţφ'ŤFUT”‰ńTUýćm„^ľĚ15=đčQz‹ŤV&“ebŇąÄ33=&ó?‰Éáŕý•mf¶˙áĂ´¶çÝĽŮz۶Y-Y,ŽŠŠôÚµ!ĆĆűBCź55±ZťôvÄ ·JIÉup47?—Wqö¬Ë¨QŞÜŤbŤ"#3 2ŇcĐ ÖSĂÁŹągkë_^^ÇbµÜŘĄjuˇ$#ŁátzËϋŮ©a8;źÝĽ9˘±±­ŁĐ<<,wěËý“BÁttT˘Ł×?{¶ÝÂbäO?EŹłsçÎč¶·ŻAoDݵkŮ5Đ9))ą^^—öí»-//~üřŇśŁˇˇ ¨(“Ś˘R)22nÜđŇŇRüV‡Ý=zôá?ż¬ý†a“& ]ĽxR«3¶ŤN§&&~ČĎoyę±wďň›šÓ¦é¶ŃĂĉZ ĺŮł,˘–ť;獥ĐÜ\oéŇ)t:%4ôĎS§gg—ęęvz/6Z°E z“ää\‡ŔYłŽÖŐ1""ÖÝľíclüϱ 3fŚ:TðDÂĂ×µ‘Â!UU CÜýąĽh4Šąą^—+ś>}4•ÚJ·""Tqq‘ďżŢn>>Ó·oźRP?˙;n»’’äĆŤ3_ľüiÇŽą‰‰ŤŤ÷99ťyó&ŻËĄá't€Ţ!99w˙ţۉ‰ĆŹW˙á‡ŮÜüĺőđašźß_]8~ĽzG:ôđÍË«řz×ÄŁG[ôôT»VgVV‰‰ÉľŤ fb˘süřREEÉöóčQú A˛ß*Łą™uýzňożĹţýwÉĉZVVŁşV0Ä@Řu$‚»†Á`îÚu=4ô…‚qK“÷n?÷¨ź0aWaa5ńFŁŕ8Z·ÎěÇg üľ÷ţčQú±c’“sőőŻZe˛`Á„ŻŹÂ^3 Ľłg·˛#B čtjzzÁ¸qꪪ2D~ŃéÔiÓtůLĚéÓG;=(L[[ÉŘxÄŤ)uuM‚)š…‚YYŤş}Ű'&f˝ŠŠ´—×%că}gÎ$ŔÁ˝1FÝÁ„ăÇfdś8±üÁŤłgŹE±XlţdjŞCśßĽlŮ”»w}–751wîŚ@Ĺß`h¨˛ęáĂMš»w_74Ü}äČ˝ššĆî[",Ř5„K÷íh!%%wŢĽă?˙<ßĹĹhąq#9>ţýÎťsů<ˇ±±ŮĎďÁĉšÓ§Ź&ZŢ/Y¸bŢĽńüÖݞϟËĎśIřý÷?étŞ˝˝ˇ‡‡ą˛rËkĽaA „EŹE0BÁ`Îqdđ`ٰ°5ßuŰŞ;˘®]Kzôhłššl,®¬¬.$äé™3‰ŤŤÍóćŤóň˛:.$Ľ ůz2‚ »w_ńřń•ÚZljbÍšĺ§  îÖĆ%Š«®®éňĺ珋‹«-,Fz{OďČń$ çA2q#ř»ď4¶nťŐŚzö,ËŢţäŃŁKěě&öŔâ¸RSógĎ>şmŰśµk§őär™LvLĚ뀀G?ñn ‚”FŐÖ2,-Ť;äôiçžY"Ż“'ăĽ{çŽĎČ‘zxŃınżýűęŐ§QŁÔÖ¬1…cÝ„1čidE0aÓ¦ŘŘ´¸¸­rr$śĚáŕ‹–”ÔŢ»·ALŚŢó „^ĽČ>q".66]]]ÎŐŐdůň)dU¸ AĎyýúówČŠ`„ĐÇiÎÎgĎź_É=žˇçVYXrp0ôőµ!«„PFFA`ŕă×22ťśŚV­2‘–Hb=ý1č ¤G0B¨¬¬ÎÜü€…ĹČŁG—ôüŇyEGżöđ ]ÍĎE-"/Żâôé'—.ýEĄb“ÜÝÍ{ě×KŔ ‚t/a`‚«ëąwďľL9rĐÚµÓlm'Đhp¬[w ‚!„L¸xńŮÎťQ·nyëë&»––L¶ŤÍot:5*ĘC8é}ű6ďĚ™„čč×jj˛«VÁ±nÝ‚đKh#!”“SjeuxíÚi›7[“]Kë>~,ž9ÓĎÓÓŇËËŠěZľéÓ§˛łgĂžIH9;ąşšČČŔ±n‚A şŽÁ&hlŮ"\Śbł9¶¶,űĆ /aţoőů󉾾111žBţăXIImhčÁÁ l6gńâI˙űźYwČťA ş‚ÁS¦ Ýşu–ˇˇ6ٵâäɸÇďÝżżqřpe˛ki ŽăNNg˛˛J>Ü$..Jv9í¨­eDDĽ8q"®˘˘ÎĆfüúő–B>Ľ˝1čś^ÁˇŚŚkëŁ[·ÎZ·ÎŚěZÚWVVgaqĐÚZ˙~;˛kéîMórrJ-,FzzZN IvQ˝1č¨WŻ>.·˛:´rĄń?Ě&»ŕŢ4/+«ÄŇr¤‡‡ĹĉZd%\ ű»>Á/ŻKOź~|üx‹”Ô˛k€Ë—źoÚqĺĘ˙¦NFv-‚Á{Ó<8Ö­âţ‹ÁFFĂ6oîĹŚşuëÍÚµ!áákMLtČ®E`ÜÜB’“scc7 Ă•ě{Ó<•uëĚćĎ˙®·ďáqÔ—"!TRRkn~`Ö¬1Ú“]‹ UTÔ[X41Ń9~|)ٵ^FFa``\LĚké5k¦-]:yŕŔţ{¬q˙ŇÇ"ŕě|öăÇâ‡7ő˝OrBÂű%K‚Nž\acÓ‹~l÷¦yĐ—,™ĽzµiŻ;™E ű‹?ţČ:x°ŻE0B("âŦMŃŃ}ó÷źť;ŁŻ^}ůčŃf55Y˛ké.Ü›ćŐ×7Í›7ÎÇgş––"ŮEő(⾯ŻF0BčË—J ‹+VLݱc.ٵt—ćf–µőQié×®őšëftM‹›ćmŘ0cěŘ!dŐC ű˛>Á!_Ľ8°ĽĽîîÝ ""Âu$Áz˙ľhćĚ#[·Îvs›Fv-Ýîë›ćő˘« uqßÔ·#pölÂîÝ7îÜń5JŤěZşÝÉ“qŢ˝sÇgäČAdhźŮIDAT×ŇC¸Ň׼j•É‚„ónRAÜ×ô‡F˙n$zyYy{O'»–ž@lţ—”ÔŢ»·ˇ_Ý5Ž{ÓĽ!CäV®4^±bްÝV űŽ~Á!&“=gÎ1:ťăŮ.·XTTmn~ĐŢ~â®]óÉ®Ą§qoš'-=`ĹŠ©«WO“’ęSÇVC·Ą˛˛ňęŐ«dWŃ!wî˝|YĄŞ*6mšÂđáâ-NX’••µłĚ­®^˝ZYY)®ş,#Ł622Í-%%AŢXHPŁôęŐ«WŻ^ńßĎ×RRŞoŢ,ôô*--,Ĺ&L0a˙ýtäłVYÉ|ö¬<9ąJLŚjb˘`hŘ»#±łł“•ýwpđmÎÎÎdľPť!&¦-&ÖÖ&đíŰ·ůŰ·o÷صŤFë–Ky d”ÄĹ»ńŞŹÝ´â]&!!Á˙áťů¬Q(%%§Š‹ ýÉĺěěĚ]ý>¸·E€ęëëíěě®\ąBv!üÂ0¬®®Ž˙~Nđ>úż(AŤR}}}DD„˝}ź:ÍŻUW®\qppHW}ćłÖAöööőőőÜ?űËţ5ZÄ@2b 1 ‚HA,ŮŮŮŽŽŽ***"""ššš>>>UUUmĎ’™™)&&F<Ŕţ%**j``Űbš¶{B|ďzŐÔÔŮŘŘ455upéÂ<2\ü BčóçĎ+V¬PSS0`Ŕ°aömŰÖŘŘľ=Ś­vŇń3n .ä=T|öěŮÜ?÷îÝ«ŁŁĂçřtmvbČČČ8q˘””T|||eeedd䇦L™ŇîűKTT”8ś°  ŔŐŐŐÖÖ6##!¤««Ë`0şłönÁ˙€pUVVZXX¨««GFFŠŠ ňô rń9D8ŽĎ1CYY9))‰8âéÓ§žžžĽÓôŇ7OŰř7++«ÄÄDâ1ÁŹŹ/++KMM%Z---»«ô¶ ä`ěľĘÎÎÎÎήÝÉĚÍÍ===y[8ޱ±ń† ,,,:„ăx~~>Bh˙ţý8Žňľ‰‰‰Ü &xzz®X±ÇńŚŚ îS©©©†††bbbęęę!!!-žmB(""˘CëÜ¦ŽĽg5 %%%cÇŽuuuełŮ8Žgddhhhś>}Z^^^YYůŇĄKDç•••Ë—/———kýőB(33Çń;wîčëëŰŰŰďŰ·Çq‹%))MŚ[`` śśś’’RXX± ŻÇŞŐĆ~*[¬/l󫦦&>>ŢËË‹·Ă0ooď7nX[[?~ü!”(%%őäɄГ'OĆŚĂ}ÁZô9{ö줤¤Ť;vě={veeĺÎť;7oŢÜťëÄA Haaˇ©©©ŽŽNpp0…ňϵ¤¤äíŰ·ŮŮŮëׯ߸q#ŃčććVSS“žžwűöíŁGŹ"„šššbccß˝{w˙ţýýű÷÷ä ´Ť˙!=zô¨QŁ.\SQQŇ××˙Ö×®][^^žžžţđáC"= ^^^ iii ˇÂ”””Ź?ęęęvÓt ˙ă6iŇ$mmmâ©;wîĚš5köěŮÄů˘))) fffˇćććÔÔÔśśOOĎM›6 ju¬Zm슎}]őSů–ÎĘĘÂ0Śřz䕜ś,))™šš*))Éd2ÝÝÝ·oß.%%Ĺb±Ö­[·uëÖV·\)))222-žJOOŻŻŻg2™.\řÖŚß‚zp‹X BŁŃtttěěěTTTŠ‹‹‰Ý5ĄĄĄ8ާĄĄ3 …’ťťML©ŻŻOL™••E4†‡‡ëęę¶»v‚ĄvűápŻ®®7ožĽĽĽžžŢŽ;ęëëńÖ¶)Ęű÷]»F´777ÓéôŞŞ*˘=..ÎŔŔ€ş’’’ެio dÜÖ®]»lŮ2LJ_RRB§ÓËËËŹ=:yňdüołVÇę[[Ä$PTTÄ0,77·E{~~ľŠŠĘ¨QŁddd’’’—.]Ş  śśüäÉkkë6ú,..VUUmŃřüůsccăÉ“'ÇÄÄxJ ÂfłwîÜyĺĘ###'''üß“ŞEDDíeî6rQQBHSS“řS[[űË—/ÄÚÚ˙\|CGG§¸¸¸›Ö· 2DRRRîîîׯ_/-- yöěٲeËZ]ńM6lŘ0âϡC‡ ™L¦ŚŚ ńC±ąąůçĎźB"""ŠŠÂx§"Ś›••UBBÂű÷ďËĘĘŚŚŚ'LpďŢ=ŢÄ_żÍZ«o `@óKJJĘÔÔÔßßźŰâçç—““ăďďoccš9sfTTTQQ‘žžŢ´iÓ®]»–źź?uęÔ6úĽ}ű¶ˇˇ!oKYY™««kPPPRRŇž={şi]B """BÄJpppZZÚ‘#GöW•C©¨¨ „>}úDü™““C|‡q8ncVV–şşşŕWµ«ř"777 â1†a'NÜż?÷g¨TUU1 ËÎÎ&ţĚÉÉ!(++S©Tî]]]ÝË—/Qk,$ňÖ˛°°(((8yň¤••ŤFCÍž=űÖ­[Oź>µ˛˛"¦ůzZ«o `W´» Ýźuđ„´´4yyy//ŻĚĚĚĆĆF___:ť®¨¨X^^ŽăxTT”„„Äüůóqżxń˘„„Ä‚ pĎĚ̤ŃhÜ_–®ĘĘĘNž<)!!AüG’űTII †aÉÉÉĺĺ厎Ž4­ŞŞJ8wMŕÇÄÄÄ^ĽxÁŰÎűxáÂ…óćÍ+..ţđáľľţŢ˝{322(ĘĽyóJJJRSSGŚqôčŃvËÔ(u¤>‡čŹ?ţ R©‡ĘËËkllĚĚĚ´±±!®ćŐę./{{ű3f|üřqüřńÜv—ŇŇŇâââyóćy{{wüM…“ńcźăFt2iŇ$‘łgĎľ~ýZDDD\\śŕ[ołŻÇŞŐFŘ5Aš‘#Gľxń˘˘˘ÂÔÔTZZ:44týúőÄOĎ!KK˦¦&ccc„™™Y]]ń%55µaÆÉËËWTT455˙»QUU={öěőë×GŚÁ»EEE___SSSCCĂ  >|ѢE¤¬lGđ? Ľ˝oٲeÉ’%µµµ­..((H\\śŘ˛¶¶&~ÉÔŇŇ200ĐŐŐµ´´\°`Áúőë»}µ;Ď!ŇŐŐ˝uëÖ­[·ôôôääällltuu‚‚ľµ¸ŔŔ@™‘#Gš››s}Bť:uŠĹbéęęŽ9RIIé×_íţUç‹@ŢZVVVÍÍÍÜ]ăÇŹWPP011ˇÓŰşĘs«c%°ěčVżÔÁoéV566&'' ¶ž.C=»EÜ*ˇV j”şÜŹđQ =żEÜŞ^7n8l÷11±qăĆ‘]…i Q×ôq ’AÉ €dÄ@2b 1 ‚HF#»ˇ&..~áÂ~N˝Ç0*u ‹Őé ˘ó˘ŃäŘěgńÓ‰„„?łóv"´×"ŕź@FI\\ÜÁÁÁÁÁ˙®„ź@F âłÖë8;;scřż×µ_«¬¬ä޵¨łŘlüŹ?ŠîŢÍăpđ={ DD¨]­ˇiĎž×ââ´YłÔ •¨Ô®ĽSĹĹĹgÍšŐµZ¸sçN}}˝@ş6‚ĄwďŢeffňßOŻ «««ŻŻĎ?ü|Öz)KKKYYYâ1±ŕá8~ăFĘž=7 «q72~őę˙řéÍÄdßß—Q(hđ`ąíŰçĚ™3¶_m8ĐçÁ>b»y3ĹČč×˙ý/´°°Šř’[»v?böż˙™câpđ/_*ÜÜ.ýzóf |ĐgŔ±ŔĽx‘˝k×ő””\*•ÂfsB†–űëŻ|nŔ67łĆŤó­Şj ţ¤P0ŤٶcÇĽďż.€Ň¤‚-bČÉ)]±"xţ|˙ÔÔ|„‘Â! …˛rĄ1˙»DDhÎÎßÓh˙ěećpp„đ´´{ű“‹ťxó&ŹĎţä‚-bľ””Ô:tçňĺal6»Ĺł˘˘´7ovKI ŕAĹĹ5?s#ž‹FٞŮss˝mŰćč鵼» W€-â®ËĘ*12Ú{ůň 6›óu ÓéÔůóżH #„”•Ą¬­Çp7ŠąX,6ŽăOžĽź>ýpvv©@–čaÄ]Çd˛Y,ö·v<0™lWW.níZS«eÜ(LVV\L¬­ű „q×éé©ŢąłAJj ťŢr©TЎˇÖčŃj\Ü„ šăĆiP©-—E§SŐŐĺ>Ü4hŚč1Ä|ŃÓS˝sÇ[YY†N˙ĎN‡łj•©Ŕçć6ŤĂůĎnbŤ˘ŁŁz󦧲˛”ŔčÄüRS“5j˘˘$7‹1 )(HÎś)€ÓŤZ5kŚ˘˘wg•JĄ‹‹‹Š‰‰|Y€AĚÇ˝˝Ă?;¶ÔĐP‹FŁ ŹZ# ŤFY˝Ú„Bˇ „¨TеőčĎŠ››ůş€DÄ|Ů·ďöő믿˙~xhčSS]â¨áĹ‹'uÓ—,™LĄbaóçŹ?yŇqÔ¨Aaak^żţĽnÝĹŻnô pq×ĹďŢ}ăřńĄ‹-,çŔ;ĘĘR«V ňx‰"#“ «ÝÝÍą§Š<}úqůňÓ‹îßo×}Ëtâ.şr奏OřÖ­ł<=-É®!„îÝ{·fÍË-[¬É®Đ9Ô]»v‘]Cďóřq¦»{¨««ńÖ­‚ą¶$˙† SVS“űůçëâ⢚d—č¸0|§˝zőiŐŞóóççëkCv-˙ao?±´´fĎž22şo'5@ŕ ;'+«ÄÉé̤IÚ‡;áEÝÝ-*+6oľ"))6{öX˛Ëtq'T-^¨ĄĄxö¬K‹38„ÇöísŞ«=<Âää$¦LJv9€öÁŹuU]Ý`kŔb±cb<ĺäÄÉ.§-l6ÇÝ=ôńăĚ«W˙7f̲˴‚¸C›ííOV߸áŐ+.éŔd˛ťťĎĽy“ă9lŮĺÚ't´ŹĹ⸹]ĚĘ* [Ó+R!D§SĎśq:TÉÁ!đË—J˛Ë´‚¸}?ţxíéÓŹaaktu{Ó•× ąpÁURRĚÁ!°¬¬ŽěrßA܎ÇďEDí,´'1óĂÖö»ęęĆíŰ#ĄĄôö}ßôÄ˙ݦ¦qÉ’S4őŇĄµ˘d—Ó]śťŤĘËë~řᚔԀąsÇ‘]‚ř_ÍÍ,W×suׯ űĄ$ř·q㌺:†‡G¤¤Ř´işd—@×§öv›Íqs»šZpé’›şş<Ůĺô„ź~š·pˇ«ëů¤¤˛k ż FˇíŰ#?Î8wnĄž^o:‰™†:dof¦ëätöÇ"˛Ë _ FÇŽ=¸t鯠 §ţvő^*•°\WWeńâSyyd—@˙ŐßřŇĄżş÷믋¦OMv-$Ł_¸°JIIĘÁ!°¤¤–ěrč§úußľýfëÖ«7ÎXľĽ˙Č%))öűďkh4Ę’%§Ş«Č.€ţ¨˙ńóçŮa..ßoŘ0ěZH&//±®¶¶qůňŕĆĆf˛Ë ßé§wčHKË_¸0`Ú4Ý“')ˇ»()rrJçĎ÷7NýěŮ•}ě”B„\üĽĺĺU,_<~Ľ†ż˙rHa.--ĹUţ™ĺăÎáôÇŻgČŇ´´ÖÁ!PII28XxďÄL–qăÔĎź_uëVĘÎťQd×@?Ňż‚¸ľľÉÉé •JéŰ'1óĂČhXPShčłcÇ] ýE? âćf–‹ËąÂÂŞ°°5ňňd—#Ľ¦Oíç·äС{gÎ$] ýBąÖ‡{{‡ż}›˝^CŁ_śÄĚŹE‹ jjú)ZQQŇĆf<ŮĺĐÇő— Ţą3ęîÝ·ż˙ľ¶˙śÄ̧•+Ť‹‹k<=—µ°Iv9ôeýb×ÄÉ“q/> rš:uٵô&?ü0kńâI«W_xţ<›ěZčËú~_ľü|ďŢ[żţş°žÄĚ Ăöí[4}úh'§ŕ´´|˛Ë Ďęă'tÜ»÷nőę ŢŢV7Î$»–ŢŠÉd»¸ś}ű6/&ĆS[[‘ěrčţÄŤŤ%±+.Va±¨jjB´5giiąuëV>;©­­]µjUEE]2ŤÍ¦äćjÉË—IIU÷ĚB^^>88XRR’ěBhÇ‚ðɓ'2„Ä‚Ç&4gĎĺĺĺýő×_ü˙/äĘ•+vvv©Ş#„j;čęŐ«öööd@;Z5áăăoÜîC¨{TW}Öëľ:@Ő÷¬!A $ ’AÉ €d] âěělGGGMMMźŞŞŞ¶gÉĚĚămYµj†a‘‘‘](ŕëŢ:îĹ‹łfÍ’–––””ś:uęşÖ!?5ô$ţ_¬VG @ťâŚŚŚ‰'JIIĹÇÇWVVFFF~řđaĘ”)í~Ľy544\ąrĹÂÂââĹ‹ť-€)))3fĚ3gNVVV^^žłłł­­mRRROÖĐ“ř±úŰ@śB(""o“ąąą§§'o ‡Ă166ްa……šC‡pĎĎĎGíßżÇńÂÂBŢĹ•––â8~ńâűcǦĄĄŃéô’’˘źŚŚ ŤÓ§OËËË+++_şt‰hOMM544SWW !¦%ž­¬¬\ľ|ąĽĽüŕÁřá‡ććfÇkjjśśśäää444BCCąO›6íŕÁĽĹoÝşuďŢ˝éĐĹĹ…(lÇŽĽ5p8++«ĆĆƶ‡ÇńcŢ5ě‡˙ë[#†·6PÄ+xřđa999EE۰°;vHKK+**r_8 Ť#GŽ(***++oŢĽ™Édâ­˝Ä8Ž_ąrEGGGLLlÔ¨Qqqq­¶´­#ďg„A炸şşšBˇüý÷ß-Ú###‡ vřđáYłfá8~ůňe)))kkkâń1cx“Çq33ł'Nŕ8n``pěŘ1˘1##cŔ€ŐŐŐżüň‹ŞŞ*Ń>ţüźţą±±188XII ˙o;88Ě›7ݏ¸řÇúúúŔqÜŮŮyîÜąEEE?~ś0a1qMM …BÉĎĎ˙z˝:ҡŤŤMIIIFFĆ!C˘˘˘Y8Κ5kĚÍÍ:2Ü=ÄüżXmŚŢÚ@eddĐh´-[¶ÔÖÖţňË/†qŻfFF•Jť3gNqqń»wď†N||ýWWWÓéôŘŘX8tčĐŻ[Ú%bĐ[t.ł˛˛0 #¶bx%''KJJ¦¦¦JJJ2™Lww÷íŰ·KII±X¬uëÖmÝş•7érrr$$$Ş««q÷÷÷˙î»ďöŚŚ î&sZZwúôôôúúz&“yᢑŰÁ P(ŮŮŮÄ”‘‘‘úúúÍÍÍ4ŤŰMLśťťŤa›Íţz˝:Ň!7Ńž>}š””D̲~ýzŢŤúvődó˙bµ1b­TFF…Ba08ާĄĄń>ćľpˇ¬¬,b®đđp}}}Ľµ—¸˘˘BTTôâĹ‹ ‡Á`|ÝŇî(Aޢsű1 ËÍÍmŃžźźŻ˘˘2jÔ(™¤¤¤ÄÄÄĄK—*(($''?yňÄÚÚšwâ1bÄ__ßׯ_§¦¦O‰((( „(”˙/ěůóçĆĆĆ“'Oމ‰i±Ü˘˘"„¦¦&ń§¶¶ö—/_ 9·QKK‹x //O”ĘŰCjjjpppG:äöcdd4a„PSSSvvöرcýüü:6~=Š˙«Ťku Bt:]TT!DˇPxsg§P(ÚÚÚÄc]]]b®Ż_bYYŮ[·n………©¨¨XYY˝}űöëÁ $ë\KII™ššúűűs[üüürrrüýýmllB3gÎŚŠŠ***ŇÓÓ›6mÚµk×ňóó§NťĘťÇńŔŔŔ””””””´´4 ‹âŮŻ/PVVćęę”””´gϞϪ¨¨ „>}úDü™““ŁŞŞŞ¬¬Ü˘‘[Ľ‘‘Ń™3gx{8tčĐÝ»w;Ň!ˇ;wîyA§Ó###Ź;–™™ŮŃAě)üżXmŚX«Ő‘Ş8w®¬¬,UUŐV_b!--}˙ţý’’ ‡Ż[ş:0ŢÍcÔ˙ĘĄĄĄÉËË{yyeff666úúúŇétEEĹňňrÇŁ˘˘$$$ćĎźŹăřĹ‹%$$,X€ăxff&ŤFknn~üřńŔëęę¸«ŞŞ˛X,ŢÝÜÇ%%%†%''———;::Ňh´ŞŞ*Ţ).\Č»§’řiÉ’%Ä>⬬,111bâçĎź0`×®]ééé999‡˘ÓéüńG».Z´ČÎή´´ôÇZZZ×®]ăťeÝşućććůH˙XÇç‹…{ÄđÖŞŐW÷1±kbŢĽy%%%iiizzz{÷îmő%®««“xţü9ÁđóóÓÓÓűşĄÝŐďČűaĐé Ćqüďż˙^±b…˛˛˛¶¶ö†  |}}qŻ©©ˇÓéGŽÁq}jddĘď@ŔWŽď} ŇX—řřęŔů{`č| }ň=0ôAľ†>Č÷>ČÉÉqvv¦Ńh"""jjjŢŢŢŐŐŐť7a0bbbÄڇ¬¬¬ťť]aa!oťÎ{ $%%Íž=[ZZZJJĘŘŘřÎť;}ôćDď-##cňäÉ %..®ŞŞ*"""++ËČȨ˔Ď%**Š˙żÔÔT11±µk×ö(†×Ż_˙ý÷sçÎ}÷îÝÇŹW¬Xakk›śśÜówŔŕů0ĐÜÜÜśśśčtş¶¶¶¤¤ä¤I“bbbäää|||,,,Ž=Š*,,Ä0ěСCˇââb ĂtttZZZ0 +//çíMIIÉĂĂ#))©Í(ŐŐŐË—/—••UQQŮľ}{QQoŢŢŢ;věظqŁśś•J]·nť»»űť;wxçxgÔÔÔüýýĄ¤¤444vîÜIT(--%“Éąąą ®®® ĘĘĘ[¶la±Xý˝ č)Č÷€U[[çééÉ[a——Wtt´µµőÇB‰‰‰ %>>!ݧ§—‘‘AÖËĘĘň¶-**:qâÄĉŰ äęęZ[[›žžţŕÁŘŘŘŔŔ@n˘˘˘ Ë–-ă­đŕÁ;v|.좢˘×Ż_gggďŮł'22’( ź6mÚčŃŁ===ÓŇŇčtúl!úä{Ŕ€*++Ăq|Ô¨QmĘŐŐŐKJJ¬¬¬Y,Vbb˘»»űăÇŹŮlv||Ľµµ5oeâ0ť ĄĄUWW÷Ç´©ćçç'//?věŘ˝{÷q_-//ÇqśFŁu?ěÖÖÖŇh4›ÜÜÜĚĚL„PHH‹‹ “É đ÷÷—••3fĚÁŻ^˝Úăí@?|Prrr†ĺçç·)/(( ŃhăĆŤŁR©ÉÉɉ‰‰K—.•••MIIiźďyĎß×ÖÖFGGŹ9’·Bqq1BHMMŤxŞ®®ţéÓ'î«222ÄĽMŢľ}{ţüůĎ…-"""''‡˘P(ÖÖÖ………)))öööEEEL&“JĄß?fÎś™——×ó @˙‚|P ĹÔÔÔßßź[âëë›››ëďďocc˛˛˛ŠŚŚ,..ÖŃŃ133 /((066îŃ(ıű‡§ąąąŠŠŠĽ1L›6íÂ… ĽMŽ9ň×_!„¸wăýŠ€a÷±ŁŁcdddxxř‚ † ¦   $$T]]M|˙¨ŻŻńâEŹ˘`ŔýrŤN§Ď1Çń 6¨ŞŞÖÖÖjiiQ©Ôk×®!„¬­­ťťť-,,0 333۸qăwß}G&“1 cłŮL&ł;CŠŠÚÚÚzyyť?ľ¦¦fĎž=Ë–-ăö@&“Ź;fffF"‘ÄĹĹĂĂĂăââ†ŢÚÚú÷ßřúúvŘůĽyóVŻ^M§ÓĎž=KŚeggçíí}řđa‡łvíZuuőăÇŹ÷áŕËÁń=` éęę&%%UVVšššJKKş»»«ŞŞžČ÷ŔĐůú`}=@űý÷ßŰÖÔ0ĄĄÉŚ`ĘÉÉQWWçwŕëůĐgĆŹ/%%µ~ýzŢB2YaŘ011Ťňň&ł_± š6wă żÁúz€~Ábq®_yţ|üŰ·“&©yxXĚšĄK"a]·ôČ÷€>FdúÓ§de•̡éęj>c†&ďýĺň= Ď°Xśä'îTŮÚN\żŢ\GG±ëf€ţçď} ą™ôôěهőNNĆ7š+*Růŕ?ď_„ĂÁĂĂ“}}oV-ZdŕĺőťŞŞ ż´ůĐ{Ďž˝ß»÷FZZťť§§Ąšš,ż#t ň= 7Ś˘={˘łćÍÓ?}ząşşż#tň= gęęšOś¸{áB¨Q#®\Yci9Žßş×çzŕîÝ´mŰÂ[Z›7ďädL& ń;"@·Ŕń= [ŠŠŞ·m żw/}ٲ©;wΧPÄř  ßş€ăřŐ«Ď~ý5zÄa›¦NĂď=ůĐ™˛˛ş ąw/ÝŃŃpď^ Eśßzň=ŕł>dxy]şvm˝©©żĂôä{@[·m O¶ł3Řż‘”ś­`p|h+-­`ăĆŔŇŇşsç\ćÍÓçw8€>@âwÁ’dcsR\\$6Ö ’=CßţŐŇÂÚą3ňÚµg6oÝ:~[ŔPů€B>”Ż^}©¨¨:0píĚ™:üĐÇ`>€nÝJýţűc˘˘ÂwďţÉ€! ň=_5ÇOś¸»~ý33í°°ŤĘĘĂů _Ŕ|>_ŻÚÚć ®_ŁÇŹßYXa2Ů·o˙É€Żä{ľ:—.%.YrĆĐP=&ĆkÔ(~‡ďřŠŕ8~ŕ@ĚĎ?G.[ftáÂJIIŃţËÔÔ˙kÄ Ł˙¶9ť€ó÷|-Z[Y^^Á7oľŢżáĘ•&ý=\BB‚···‘\ř‡ÔÔTmmm~ľFďř*TTÔ»¸\x÷®$8xýôétÂ~ęÔ©ööö3 sďúrsË–-űťÉdGEyhk+ň;Ŕů{†¸7o>.Xŕ?lhLŚ'${ľZďĘžD%&&R(”řřx„P||Ľžž^FFqX/++Ë۶¨¨čĉ'Nl3««kmmmzzúbccą=HHHܸqĂŰŰ»M“Ť7r ‹ŠŠ^ż~ťťťÍ».Ţúőë+**ŇÓÓďŢ˝ŇG›€~ů€ˇ€ĹâlÜž|ůňš Ú&<ÁTVV†ăř¨QŁÚ”«««—””XYY%&&˛X¬ÄÄDww÷ÇŹłŮěřřxkkkŢĘÄa:AKK«®®îŹ?ţhS!,,ĚĎĎO^^~ěر{÷î âľZ\\ĚfłŐÔÔ§÷îÝăöĆ=”omm=xđ ŤFă¶jnnŽŚŚ<}ú´’’’¦¦ćľ}űún«Đ_ ß0č1™ěŤîßϸzuýĚ™:ü§»äää0 ËĎĎoS^PP@ŁŃĆŤGĄR“““—.]*++›’’Ň>ß󞿯­­ŤŽŽ9r$o…ââb„7Ł«««úô‰űŞŚŚ †ayyyÄS ˘«gĎžqëČÉÉńöYRR‚㸆†ńtĚ1_° ďÜZZX«W_ŚŹĎĽzuť‘Ń`J< ĹÔÔÔßßź[âëë›››ëďďocc˛˛˛ŠŚŚ,..ÖŃŃ133 /((06îŮ© â¸üÇÄÓÜÜ\EĹ˙”––677?věX›Vׯ_ç>n˙EEE Ărrr¸}ö($ř~• Ŕ Ćbq6m |öěý•+k ŐůNŹŃéô3fŕ8ľaĂUUŐÚÚZ---*•zíÚ5„µµµłłł……†afff7nüî»ďČd2†al6›ÉdvgQQQ[[[//ŻóçĎ×ÔÔěŮłgٲeÜČd2ťNź>}:™L^µjŐ1cJJJ.\¸Đů%x"""vvvnnn—.]jhhđńńé›Í@‚ă{+6›ăîźyíÚúÁudĎĄ««›””TYYijj*--čîŞzňäI„……EKK‹‰‰ BČÜÜĽľľžĚWVVÖĐĐ‘‘©¬¬ěÎ(çÎť“””$& ¬­­·lŮÂ۶¶vrrreeĄĄĄ%•Jµ°° ‘H))) Ą“>Ďś9CĄRuuugÎśůăŹ?öĹĆ a8Žó;@ʱXś âăÁÁ&MRĺw8Ŕ0,$$ÄÁÁˇ§ ››› †ľľ~DĹ_˝Ţ&|9Ď`đápđ~~ř0#8ŘU0“ý—’Éţ‚|Ŕ Ăáŕ›7˙yóć뀀µ“'Źćw8€Áň= ±‚ŢőëŻ._^mb˘Éďpä{“˝{o>>wn…™™v×µŕ˙Aľ`Đřĺ—/&ž>˝ÜÚzżc 2óűďńľľKćÍkŮ=ů€AŔß˙ŢŃŁ=ęŕŕ0™ß±%Č÷ş«WźsĆ™D¬GÁl6çÖ­Ô  §Źg+*RW¬foo(//Ĺď¸řę@ľ@}üX9ţIMM…  ud˛żĂéŤĘʆŕŕgWŻ>ËË«>}ěš53fÍŇĽ_\ě ß p**ęçÍ;!))é&%%Ćďpz,99÷üů„Ű·ßJH,[f´té”ŃŁĺř_;Č÷–ĆĆV{űSeeu7oz*(Hó;śŕpđż˙ţçŇĄÄÇŹßihČ»¸Lł·7¤Pß÷†$ř=„¸ËmnnyT”ű Jöőő-!!Ď/\Hřô©ęűďLJ†n6m,öU]y€Ŕ|€Ůľ=üńăěĐĐŤšš4~ÇŇ-ŮŮ%ţţ÷nŢ|-!!şjŐtgçirrp-‚ň=‚Â×÷vHČó?ţX5qâ ¸Ąý«Wyż˙ëÖMzëÖ9K—N…©{ä{ÂĄKŹŽýűČKËqüŽĄ3~˙~úéÓž?Ď™8Q•N_>{¶ž°0‰ßqş×ëŔŹż[şôěúőf;vĚĺw,źŐŘŘzíÚłóçă «mm'®_o6nś2żtä{ř,#ŁČĆ愵µŢ‰KůKÇJJjčôaaI­­ěeËŚÖ¬™ˇŞ*Ăď =ů~*/Żź3çř¨Q#®]sŔuu**ęĎžŤ»r囍/^<ĹŐŐLEeżôśż€oZ[Y«V]:~Ą %ű˛˛ş3g<"­Ze˛v­©ŚĚ0~č=Č÷đŽăWłłKbb<©T ~‡óźĘ}}o߸‘2b„ä¶ms–,™"))Ęď _ ň=üáçw÷Żżţ Ů0fŚ<żcůWNN™źßť7Rdd†íÚ5ٲ©ââ"ü Đ7 ßŔׯż:zôo_ßĹS§Žáw,!ôţ}éáĂĹĆľˇŃ¤÷ď_äčh(hç_ň=íĺËĽ~ްÁÜŃŃß± ěě’ŁG˙ŽŤ}ŁŞ*{üř’ &B¦`H‚ëóPUsćź4Iíüů•ü˝9ěŰ·GŽüu˙~účŃréÚ ß0pjk›çĎ?!))á&&FćWÄyQQŻ”•‡»»[ŘŰO†LŔóů Ç·l ©®n¸zuż’}IIÍńăw‚źŹ9âرŶ¶“`)\ľď ľľwîŢM‹ŽöTV>𣗔Ô;öwHHŇČ‘#čt§9sľáďŮŔ|Ŕ@Ť}ăë{űĉĄăÇôšó55Ťtú‹ĺ䤎u„óô|ť ßĐď˛˛Š˝˝W¬ngg0ăÖŐ5ź>>GŹEbvčĐ!„Pqq1†a:::---†•——óö¦¤¤äáá‘””Ôf”ęęęĺË—ËĘĘŞ¨¨lßľ˝¨¨·!!ˇąsçqëÚŮŮqź¦ĄĄM™2E\\\UU5 !Ä`0ÔÔÔüýýĄ¤¤ Q ÇńU«V}÷ÝwÍÍ͡††WWWeeĺ-[¶°X¬[Ŕ_ďčtúýÄĬłgťĄĄű&×x{ŰÚúă8~ýşűáĂ|ą±^ꍭ­Ť‹‹óôôä-Ä0ĚËË+::ÚÚÚúáǡÄÄD …ŹŠŹŹ×ÓÓËČČ ëeeeyŰť8qbâĉmruu­­­MOOđŕAlll```›\\\®\ąBTnjjş~ýú˛e˸ÍwîÜ9gÎśŞŞŞ]»vmٲ…;ÖëׯłłłµµµB8Ž»şşćĺĺݸqŢ÷ôôlllLKKKHHHHH Óéí[Ŕ8 ‡*+ëţëíŰOÜ’řx†˛˛÷… ń}ŇCCË‘#©«˙4mÚţŘŘ7}Ňg˙ éň/É»wď0 c2™mĘSRR¤¤¤Ţľ}+%%Ĺd27mÚôóĎ?S(‹µaÆ­[·rłuFFď.))©yóć}üř‘x‰¨ÓÜÜL"‘rrrÎ#""&LŔۨ¨(›ÍVVVNIIÁq<88ŘŇŇ’[Çńôôô††&“yůňeŢqKKKą=¸»»“Éd˘ÇńÖÖV2™\]]M<}đŕo«.ŮŰŰŰŰŰw§&_Žď豨¨”ăÇo[Yůž?ŹăxIIŤ»űŐŮłőVŻžń…=3™ěS§îě zrđ ]BÂöŮłőú$fţ’““Ă0,??żMyAAŤF7n•JMNNNLL\şt©¬¬lJJJ||Ľµµ5oeŢó÷µµµŃŃŃ#GŽä­P\\ŚRSS#žŞ««úô©Í$ÉÉÉéňĺˡŔŔ@gggŢWź?nbb2uęÔ¨¨(nˇśÜżë¶´´äää|óÍ7ľľľDIQQ“ɤR©Ä…„3gÎĚËËkÓ Aů€‹ŤM%‘06›óË/Ń úoŢü§¸¸Č‘#_zĎ›7_Ďśyřر۫W›#Ł03ł8+«8/Ż"+«X\śĂď ]|@wÝżź.$Dbł9ÄR*sçę˙ö›…ŇÁ R?|(_»örç—¬3™ěK—wď¶éŻpűB]]ó»wĄYYĹŮŮ%ŮŮ%YYĹ?Vr8¸f·s˘ IDAT¤¤čر šš ¦¦Zďź>ĺw €®@ľ »îÜIăppa!!ě×_.Y2µĂj55ŤK–ś­Żoi3“/""„ăÉd#„äĺ)zz#çĎ˙¶×ÁÔÖ6551(˝îˇ Çóó+ł˛Šł˛Š33‹ł˛Jňň*jj1 5j„¦&MS“6wî7ZZ4UUŢĹ…BCË;é ßĐ-ŤŤ­OžĽĂq|„‘tş“ŞŞL‡ŐL¶łó…ĽĽ C˘˘d&“ĹáŕBBşşĽžžĘ¸qĘăĆ)ŤŻ<|¸dŻ#a2Ů—/?:zôvk+39yŹŚĚ°^tÂfs÷¬¬S{nnY]]37»›h®^­ ĄESS“ĄPÄ{-@@üĎz; ĂŘŘ¸ŞŞŠŹáďďďććĆď(ţE§ÓÝÝÝůEH$ŃáĂçµ´äŐ×'#ôىzIR^~B“YĆd–˛XĄLf‹Uăüd˙s¨TęÓ§OŰßGÇńčč×>>ŃEE5Ä˙ÜđđMĆĆ]vŘŇÂĘĚ,"ŽÚóó+23‹ssËL6‰„ih(hiŃFŤ’ŃÔTĐҢŤ-'%ŐÁŠNÜşukÎś9=jÚX±bĹĄK—řâţçř>55µŞŞ –yň|}}'ß'$$čęęÚŰŰó;î‡ĐěÎk´´ŕ""ĂdęĺŤĎ÷íŰ—ššÚ&ß߼ůúŕÁ[yyĺ8ţď·taaˇĚ̢öůľ©©5;»„ČîÄ|aa5“É"Ť#ŻĄE›7ďb~^]]îË—ú™={vlllCCĂöó5ł°°ŕw`čë`>üŮ˝ĆďÚ’——733ăw‚bßľ}ĽO˙ůçÓŢ˝7ž={O"aĽ×`ĘÎ.©ŻoIO/ČĘ"|qVVqII-BHDDX[[QUUĆÎΠł{‡fĎîâ;€ďŕü=‚+/Żâ×_oŢş•*$DÂqśÍţźóL&űţýŚ  §,‡DÂTTFhjŇ-2;VAK‹¦ˇˇ0l(ż"Č÷˘¦&Ö®]×/_~DdúWěGUU5řů-;VACC^\Vë|ä{ް°¬ŹOJc# !Ä]xżCőő-3gęP©ťÔëé €pś9l™¸ŹID¤łďĺYYĹ`ă{›]łc‡ţÂ…vďß—ffĄĄ¦§¦Ą× „ÄÄČ$ÖÔÔŠăð¬¬CCu~‡ t˝<ľĎÉÉqvv¦Ńh"""jjjŢŢŢŐŐŐť7a0bbbĽ^űľ0aŘĽyóx qWUUĺ×{ěţüyζmaĆĆű_ľĚăw8˙)**úí·ß.\hiiąxńâS§NŐ××wŢ$??˙»ďľ#󰱱ٳgOEEoť.{hó _ “´´hóç»}űśŔŔµŻ^íÍĚüíĆ Ź}űŘŰOţö[U QÇEEá[; k˝ůK‘‘‘1}úô%K–ÄĹĹ©¨¨0ŚÝ»w=}ú”JĄöyNXX8!!ˇ´´T^^ž(‰ŹŹďňŰŹŔJK+¸~ýUhhRyy=™,ÄfăĎźżź4I•ßq!„P^^ž»»ű¬Yłüüüäĺĺóóó/^Ľ¸iÓ¦S§N Ö­5ćČdňť;wÇgĎž=räČÁű3ęľ$%%6yňčÉ“GsKĘĘęää¤ř`°čÍń˝›››““ťN×ÖÖ–””ś4iRLLŚśśśŹŹŹ……ĹŃŁGB………†:t!T\\ŚaŽŽNKK †aĺĺݶÝĐĐŕęꪠ  ¬¬ĽeË‹…Ş««[±b…ŚŚŚššZPP÷ ą}eˇ¦¦vţüyYYYŤLÔ¬¬¬ttt¤R©ŞŞŞm~w^^^ÎŐçú|JLL¤P(ńńńˇřřx==˝ŚŚ QQQÇeee;ěŮÓÓł±±1---!!!!!N§#„<<<*++ÓÓÓďÝ»ççç×yĺŇŇŇÔÔÔśśww÷Í›75ׯ__QQ‘žž~÷î]"%pÉĘĘňFŐaźĄĄĄyyyžžžË—/ommýôé“§§ç¶m۸ý¸¸¸\ąr…xÜÔÔtýúőeË–q_Ýąsçś9sŞŞŞvíÚµeˢ°ĂP;¬ŮŁ-PTTôúőëěěěöK±včÇňcÇţž6퀕•o@Ŕ㲲:„‹%·7mll|ýú5ď)„†avvvOž<™2eJJJ B(55UBBâÍ›7ˇ7oި««_ąr…L&?|řPZZš·mEEExxřرcŰ äëëŰĐĐpĺĘ__ßgϞݽ{·MŇŇŇĽ%ţţţ---—/_>yňä›7o®_żŽ*//ŻŞŞ Y´hŃLfXXآE‹~˙ý÷~ÝJđ9=žĎ/++Ăq|Ô¨QmĘŐŐŐKJJ¬¬¬öíŰÇb±ÝÝÝýýýŮlv||ĽµµuçÝ2™Ě€€€˛˛2iiiYYŮţôÓO›6m ĘĘĘRPPPPPŘąsçâĹ‹?WŮĘĘŞ©©iĎž= ĹÖÖÖÇÇ!ÔÜÜ™‘‘ˇ¤¤„Ú·oo&î2+++‡óË/żŠŠÚÚÚîŢ˝›űčź`aaQQQńúők}}ý7nĂ8 ŞŞ*,,L&“ą‡íCí°&“ÉěŃhmm=xđ śś\—źcyąř‚'_ĽČŰ—l#îŰÖ^JJ^PP˙Ţî´ŞŞëkS$Ü“&\ŠŠŠUUU†††W®\ałŮ©©© .ŚŚŚäp8oŢĽ™2e oeâ śx,!!ˇŻŻ˙ÓO?µ©wőęU*•JĄRW¬XqůňeccăĎEĹb±îÜą%)))--˝nÝşsçÎr8śU«V‘Éd“‹/rs§m`€ő8ßËÉÉa–źźŻ®ţ?—Đh´qăĆQ©ÔäääÄÄÄŕŕŕŕŕŕ”””řřřÓ§OwŢmQQ“Éä=ý/''WTTÄápÔÔÔ’ŃŁGwR!$""BLH˙Î[”””ŕ8®ˇńďăcĆŚéQ!2™,**JôÉű·-‰Drrrş|ů˛źź_`` łł3ď«Ďź?wrrÂ0LEE…[Ř>Ôköb t'Ů#„ †1ą†ÚÜłµ ÇccSccS»ÓgŻŤ!ŮeÔÄ›---UTTä-///1b„ššÚ°aĂ233SSSwďŢ}˙ţýěěěׯ_{{{óVć=ߡĘĘJ„ŤF#ž***–••u^źĹbÍť;·MśÄ—6„†aĽŹ»x“Đozśď)Š©©©żż˙ńăljâ䥿żżŤŤ BČĘĘ*22˛¸¸XGGÇĚĚ,<<Ľ  ŔŘŘřýű÷ťt«   $$TQQAL™644”——+(( „>|ř@äąÜÜÜN*755µ˙{ި¨aXNN‘ňą=t3€¦¦¦nnSSÓüńÉ“'aaaůůůDyyyůęŐ«ź?n``đöíŰżţú‹(oj‡5ż| |΄ ĺ..ŰCC_ÄÇ3pá8ŢaâÇ0lçÎy7Îěf·˝ăŕŕĐiVEč˙Ç###7mÚD”„……Mź>=22rÚ´i!CCĂÄÄÄĘĘĘQŁFéëëÇÇÇ———Ź7®°°°ű‘Ś1!T\\L|«(**"J>gřđá$)::ZRR!ÔÜÜ\SSÓŇŇŇý``ôćj,:ťčĺĺ•™™ŮÜÜ\[[«ĄĄőęŐ«íŰ·#„¬­­Ďś9cllŚa™™Ů©S§fÍšE&“1 cłŮL&“褚Gccٍ¨¨ťťť··wyyyiiéŇĄKýüüDEE===KJJŢżż˙~"źuXąĂPEDDěěěÜÜÜŠŠŠŢ˝{Ç; OŕFŐý>;¤ŁŁŁ¦¦¶bĹ  ‰˙;ĂqÇqaaáĘĘĘ#GްŮě6WŤu^óË·ŔçHřĽyúkSS}|}O™˘Ža°pżÜLĄŻxzzŢąs‡N§üř±µµµˇˇÁŮŮ9;;›8GchhxăĆŤńăÇc¦ŻŻ5qâDaaa Ă8qůg—Yw:ť^]]ýéÓ§Ë—/[ZZ¶ď[B&“MMMOť:USSS]]íăăŢ_ďľ@oň˝®®nRRReeĄ©©©´´t`` »»»ŞŞęÉ“'B---&&&!ssóúúzâ佲˛˛†††ŚŚLeeeKKËpëÖ­Cť={–ĹbikkëęęĘËË8p!túôi)))MMÍŮłgŻ\ą’ý\ĺť9s†JĄęęęÎś9óÇló*oTÝďłC...÷ďßo3™/''·gĎSSSCCĂ… Ž;¶Íg]Öüň-Đ9*UÂŢ~rD„Ű‹»wďžŻŁŁ„âIüťÍö0UUŐłgĎÖŐŐyzzΙ3çÎť;¶¶¶ ˇI“&1™L===„Đ·ß~ŰÔÔDśĽ—••UVV¶±±©««ëÎ(›7owvvöňň244tttlßoÉ?üŔfłťťť]\\†ľfÍš~ŰĐ{ŘżwŇF!ęččČ[Ň}ÍÍÍ C__żďbCˇ   KKKbZ;**jÇŽééé};„€ëŹ-ŕŕŕ€ íđŐׯóŁ˘^EDĽŞ¨¨CŰąsî€Ěç—íŮł§m[[[óóóą—h ććć!!!ÄÇô9ĄĄu Fáű÷ĄŽŽS$$ŕN9€.ôŮĘ\bbb}žěBQQQ><~üxUUŐáljKľ*żôőGéëŹÚ˝ŰćÉ“wOžĽsp0ěďż„ČKöjjjÍĚ,ÎČ(ĚČ(zű¶ -­ ®®™x©®®ĹĂĂ‚żáź ŻÄI§Óׯ_?räH ĂfĎžM\"đUá× ‘°éÓÇNźŢöçé`@`ĺĺͱ±oŚ˘7o>ýóϧŇŇZÇI$†álö3p$¦Ş*ĂÇ@… ç{ŤvăĆ ~GÁO°ľBd2í×_SJ!“…™Ě˙®äpÚ.…Äáŕšš `P ŐR6»ĆĐPĂ0©‹X’HşzŰ5 =Č÷§qéRŤÄÄíş† }ö˙)…"îćtčĐ­¨¨Wii--ÝúŮ!ŕ+$čóů|µÔŐĺÎź_ńęUŢž=QŻ^ĺ‘H›ý?óů†Ť-+))Ǹp!ˇˇˇEH¤˘2běXMMÚر šš cÇ*HJŠňë-ä{ÚĉŞ7ozŢ˝›¶sçő‚‚J˙ďłd2iĆ ­­[gOkj33‹ł˛J23‹SS?ĆÄĽÎË«@IKK¨ŞĘhj*hiŃ45išš´QŁFŔâľ|m:Č÷–––H˙üóĎŚ3řĹ˙xóćMűŐ ›-B"11¬‹*ššäI$–°p˝Pk_ mi9ÎĚL;$$é·ßbjk›‰}&“3věëIKKŞţwc‹ššĆĽĽ âK@VVqPĐÓüüJÇ)1559Ţo**#:ąV ®®nÍš5ÄÍŔŔóńń™:u*żŁřě‚……ĹÖ­[yKţg˝ťŞŞŞ~řˇˇˇaŔÍÍÍMpR~||ü©S§řEZ[I/_ŇÄĹ™ZZUââź=MŢŇ"ôâĹż·Űć Ć$ţIH´Š‹łşyP-))éëë;|řđö/UU5ś8q÷âĹD„0‹}űöć Fv˙]ÔÖ6}řPÎý•UL|VS“ŐҢij*ß44äą× +qŮŰŰw ĐWž>}jddôąŐ±řöÁ÷ńăÇgĎžµY=ëÝjz|mpź0aWeeđŢ˝ \\Ś?7%îçwçđῸO…„HÇ‘°††ü·ßŞN0rÜ8%Ą^Ż‹——Wqŕ@LYYݵkëĹÄČ˝ë„PRR›ťÍM˙%™™ĹUU ! ElěXMME ůŇŇě}űÜ8ś>›®Ý×ůj|ń%+±‚Ńágçďč ĂfĎÖ IjmeíÚštúôr55Ůö5˝ĽľËÍ-ż~ý%‹ĹAq/˛kmeĄ§fg—?çp8†:dďädÔ‹`TUeÎťsů’·ĂĄ @QP Lź®É-©«kÎÍ-#ćňó+BB’˛ł‹I$‰N:>Č÷t—Ąĺ¸  g!6›óömÁ¬YGöí[ĐaÂ>zÔńăÇŠ—/óLv›—¸%8Ž76 âł””žžŠžž ·äŇĄk«VťŕcH€/żż »LL4EDţ˝s ‹ĹnnnÝş5lŐŞ‹••m/y!“…ÖŤ-űą[ ‘ĆŽ•_˝Ú¤#î#’’Âu§D@/@ľ »ÄÄČ&&šÜ«Řpá8~˙~ş‰É»wÓÚT6LôĎ?7 .!,ÜÁ˙26›ł˙˘NŇ€ľnčďľצ„Éd×Ô4­XńÇ–-!mćçi4é  uBB¤6Wö‘ÉBcĆČŹßëęŕ Aľ fÍŇĺpÚÎls88ŽăţůâűďŹćć–ńľ4aÂČóçW¶ąźĂÁKKkŤŤ÷_¸Đţ˙ –““ăěěLŁŃDDDÔÔÔĽ˝˝«««;oÂ`0ÄÄÄYYY;;»ÂÂBŢ:=ęAJJĘÂÂ"33łűńw>Đçíf“ţĂfs=Ę>zôďÚÚ&ţFŇ÷„P^^ŢňĺË•••ĹĹĹ544věŘŃÔÔ›H>ô^€|@()Q54:ľ? ›Í~˙ľ,))·Mą……îîÝ6Ü”/$$´~˝YJĘľŐ«M12ú5,ěĹĐřiSFFĆäÉ“)J\\\UUUDDDVV–‘‘Q—âąDEEń˙—šš*&&¶víÚĹŔŰC~~ľ®®îŞU«zţVŤ””ü={˘ôő÷88śöő˝sőę3~Gôľď8Ž˙ý÷ ÉÉÉUUUaaaŹ=ňđđčŐ» ßĐ3óćé“ÉmŻÂ"ýň‹­ĂäöMÖ­3utśJśČ6LÔĂĂBBBdóf«ÇŹwĚś©ăí~¬k”ÖÖÖĆĹĹyzzňbćĺĺmmmýđáC„Pbb"…B‰ŹŹGĹÇÇëééedd‡q˛˛˙łAQQщ'&NśŘf WW×ÚÚÚôôôÄĆĆ~®‡ęęę+W®Ěš5‹xşsçÎ9sćTUUíÚµkË–-DĚË–-;uęTuuµ››ŰöíŰy»ňôôlllLKKKHHHHH ÓéDTŻ_żÎÎÎÖÖÖFÉĘĘv٤   ´´4//ĎÓÓsůňĺ­­­ź>}ňôôܶm[O7ňű÷Ąű÷ÇLš´oÁ˙€€ÇĺĺuˇÖVAĽ)˘ ěăÇŹ7nܢE‹˘˘˘Ő'LL4üôéÓÇßľ}{ďŢ˝¨¨(???„P‡ź ‡‡GeeeFFF\\Ü•+WyäÝ%Úsüřqnóôôô{÷îŁpß·aűťőéžó/ĐgüřťŠŠ^ŠŠ^JJŢJJ޶¶ţż˙ßeĂÚÚ¦¤¤‹Ýá«wîĽ52úU]ý§_˝YW×Ü×Q‘.˙VĽ{÷Ă0&“٦<%%EJJęíŰ·RRRL&sÓ¦M?˙ü3…Ba±X6lŘşu+÷O'÷@ś %%5oŢĽŹ?/uš››I$RNNŃyDDÄ„ >×BBˇĽ{÷ލśžžŢĐĐŔd2/_ľLÔŻ¬¬ hlläp8ÍÍÍÜ®Z[[Édruu5ŃöÁD˙ĄĄĄĽ!uŮ„D"577ă8ž––Ćűw˛şöööóć->zôŻéÓ(*zŤµYIÉ›ŘýÚüSUýńôéÝéó –ýÇńšš:ť>ţ|ťť;w644p;çîÁÁÁ&Lčđlmm~˙ţ=QřčŃŁäää6A»D‡ÁÍą…ׯ_oßďhçüÂ=§ĂĎÖŰ g0 ł´ţ‚DÂH$ŇożŮUTÔűřÜĐÓ9eŠz' Ą¤Ä&OýąW‰;â\ąňřčŃżĂĂ“7oţ~É’)č{rrr†ĺçç««˙ĎF((( ŃhăĆŤŁR©ÉÉɉ‰‰ÁÁÁÁÁÁ)))ńńń§Oźć­,**ÚÜÜÜÉ(ĹĹĹ!555⩺şú§Oź>×CccăöíŰ׬YCJ>ţÜÉÉ Ă0•—>|xLLĚ‘#GÜÜÜ&OžüŰożIII/1™L*•ĘűB"""Äö>ׄL&‹ŠŠ"„H$ďăNŢf ĆääŰÄĚQ'xâ8îăíăÝýž{‡Jíú˲?P(”M›6mÚ´ Çńäääm۶-[¶ěúőë!‰ÄŤM[[űÓ§O~‚EEEgôč˙çN›6 !DśÍ!pw‰!šs ąý ˙Ý—Ú/öś6 ßĐc––ăţüóą¶¶âůó+ĆŚ‘ÇqüĺËë×_ľsg‹ĽĽTŻ»%“…Ö¬™aggpęÔźŽ |˛wď#Ł1}y˙ˇP(¦¦¦ţţţÄ&BČ×××ÖÖÖßßßĆĆ!deeY\\¬ŁŁcff^PP`llüţýűîŹBŁŃB>| ţnććć***~®˛„„ÄŞU«?Đĺĺĺ«WŻ~ţüąÁŰ·o˙úë/„Pssł´´ôíŰ·[ZZ|}}oÝşE´UPPި¨––F544”——755uráĎ5éţ»űś‘#륥 ’’rÉdŚÍĆŰ˙B„€aآEí2Úç’“ź˙ňKuapuuÍÎÎľ˙>Bðɓ'”÷Iź˝Öťů[ÇÓŇŇddd<== FSSÓž={Čd˛śś\EEŽă‘‘‘Æ [°`ŽăÆ [¸p!Žă CXX¸µµ•w¶ Ţ—-Z4ţü’’’¬¬¬ &ěßżż“˛˛˛H$“É,--Ĺ0,%%Ą˘˘ÂŮŮYXX¸şşşľľ~ذaĎź?onnöőőŐŃŃáv…㸣ŁăĘ•+ËĘĘJJJćĎźďĺĺĹŰ?÷q/š´yÜ9{{{{{{Ç««BC“.ôWRňVQ٬¬ÜvV_ ćóqŘ?~,$$täČ‘Ź?6551 ›+Vŕ˙?ť>ţüŇŇŇ´´4ťýű÷ă}‚8ŽŰŮŮŮŰŰ—••eeeŤ=:<<üsA¶Çń%K–Ě›7ݏ¸řÝ»wbbbmŢB‡;çî9~Ff¶˘­­Č{•>…"ţÇ«’“?řůÝí“ţut”BB6®ÍĘ*ž1ă·Ý»Ż·_µWĐčęę&%%UVVšššJKKş»»«ŞŞž„ĐéQÝ«éIDATÓ§Ą¤¤455gĎž˝rĺJ2ąí -;Ü9żpăw¬ËŻ €nş|ů‘˛˛w\Łűäp8ŃŃ)ÜKůjjšú°ónęćń\‡šššRRRú6žŻ ÷řľ˝ţůôË/7ôőw+*z©«˙¤¬ě-PÇ÷ýˇűó+_.00°¸¸x|ýúuťŽďč_..Ó.śäîT\\ÓW}b6ož~|ü¶}ű„…%ýzęÔ}Áü V‡ÄÄÄôőőůĹĐ4~Ľň®]ó_ľÜéfoo0j”ĚÔ©‚~µÇW¸?DEEíŘ±Ł¶¶6//ďđáĂÄĺ |ů€ľtđ ýĂÖ®˝Ü· ĺ’ÉBNNFOžěܸŃüĉ»Ó§2«ň/D"aS§Ž9xĐţÉ“źżývżĂmŃéôňňň‘#Gęé驪Şnßľť_‘@ľ /IHś;ç’‘QxčĐ­ţč|Ó¦YOźîüţű ›7˙9gŽßăÇďú|†3FÎËë»yóľ®M!ˇ˝{÷ň;†>IIщUş%""lh8Đ—_II‰Íś©cm­—ž^čçw799WCCžF“ŕ0|Ç÷ ś  §Ű¶…]¸°ŇĘjżbČĘ*>věvLĚ57·Y––ăř ` Aľ`@8sţ||xř¦I“ÔřFRRαc·łLMµĽ˝żř)Ŕ|Ŕ€Âq|ăĆŔÄĬ/55Yţ“‘Qčçw7&据®’‡‡\ÍŔů€ÖÜĚ\´ŢĐĐíAˇó;”‘Qäçw'&捶¶˘««Ů˘EE! żAľ€JJjçĚ9®©I X+ ?‹ĎČ(:sćAdäKMMÚ† ć NŔ}ň=ü‘–V°`żáţý ůËŚ˘Ó§\żţJEeÄĆŤ3a•† ř=ü!/O7NißľTŞÄ·ßŞň;śÉĘJY[ëÍ™óMAAť~?<ĚçŔg[·†]żţňĆ %~ÇŇÔÔŹ~~wďÜyKŁIŻ[g¶lŮTIIQ~č1Č÷đYk+ËŢţtYYÝÍ›ž22ĂřNÇ>~¬ xřÍĆ/ž˛qŁą˘"•ßAzň=üWQQ?w®źŚĚ°ĐĐŤ}vÇú>WVVwéŇŁ+W773—,™˛nťé¨Q2ü Đ-ďůů66'54äŻ^]/""Ěďp:ÓŘŘúçźĎ˙=ľ  ĘÚzÂşu¦Łů  ďE¶¶ţććÚ§N-üopô(űÂ…„{÷ŇutW¬ngg &Fćw\€ŽAľ@€>Ń**#ĆŤSćw8Ý%!!bh¨ľ|ą‘‚ĺţýôłgăłEEÉňđ«}ß öí»qńbâ•+kĚĚ´ůKo¤¦~ zń’L&Íź˙íęŐ3´´hü €Żä{Žă^^Áý•á6aÂH~‡ÓKµµMˇˇ/.\HČĎŻ|(żzőٵkĎęë›­¬&89Mź>Ăý—‡ ďh……ŐóćťPT”v•’âçďÜ †±±qUUŐöa˘:z&RZúBđ'čłüýýÝÜÜř" ß 貳K-˘Ź#őęz>®¶ęččÚ'˝á8^UŐ:bÜzçł|}}UTTúj ĐËvBcÇ*DEy,ZD_ĽřlpđzţŢžÎŢŢžŹŁUÂÂÂřRŕBYuuąk×\srJW®ĽŘÜĚäw8€Áň=ŽŽbhčĆ·o?­\ůGk+‹ßáČ÷ şşJˇˇ_żţčęŔd˛ů`0|Ŕ`2~ĽrPĐÚÄĬŤY,żĂ ďd&MR»zuÝÇ›7˙ÉáŔďkÝů€ÁÇĐPýâĹUŃŃ)?ţ"€?©ÍÉÉqvv¦Ńh"""jjjŢŢŢŐŐŐť7a0bbbÄڇ¬¬¬ťť]aa!oťÎ{@ĺĺĺ-_ľ\YYY\\\CCcÇŽMMM=z Ý«ójČ÷ J3ţŻ˝»ŤjęĘ׾"#Ń2TFEꯖ¦QąµŐ$ŘŁ(,Ű .mŃQ*ŢŽ‚čbDŢTl]­ENo‹\™A!€/AŚŃ@€Ü™¦ZŚĆç÷édź}öţ'‹•'űäp˛pú‘#ţ_RR‘ľků7b±ŘĂĂÉd–••Éd˛‚‚‚ĆĆĆyóć=3ňµčtşúg555 cýúőĂ/@­V/Z´ÍfWUUÉd˛S§N]şt)66vDĎŔp ď^W>>Üżüĺżłł˙ţĺ—ßč»–_ÄÄĬZµJ(rą\333ww÷’’kkë;vřůůĄ¦¦BÚÚÚ(ŠÚ˝{7!¤˝˝ť˘(Ź×ŰŰKQ”T*ŐmҤI±±±•••CféęęŠ`±XS¦LIHHH$Újjj“““mmm ƬYł222zzz4vwwż˙ţű,‹Ăá$%%ikkkçÎťkjjjooěر!s)Ѝ¨(6›mggßß˙ŻŽJĄşe˙ş[}}˝Ăž={¬¬¬lllNś8‘””diiiccóëYĆňŕ5¶|ůě={ţ+-íBrňY}×B!rąĽ¬¬L č6RwćĚ>źńâEBHEE“ɉD„‘Häćć&‹5Ëz‹Ą{¬D"Ůż˙ěŮł‡L%—ËëęęJKKĎť;—““ŁaĆŚ...AAAĹĹĹťťť„WW×ÜÜ\ͱ±±ťťťb±¸¬¬,;;»¨¨’řŢ{ďÉd˛¤¤¤řřř!s ‚GŹŐÖÖ–————— …BM;‹ĹŇ-ű7»µ¶¶vtt477 ‚ľľľ––@°eË–QzɆM Żąoż˝fo˙§O>ůŰŔŔŕŘÍrňäÉgľcܸq˘(•J5¤˝şşÚÂÂâÚµk*•*::z۶mL&łżżÆ ›7oÖ§X,Ö}˛°°¸{÷®f—¦ŹR©422şuë–fđ‚‚WWWí^µZýđáCˇP¸téR+++Ź—¨P(Ôju__ꉉÉÍ›75Ý.]şTUUĄV«ëęę …JĄĘĘĘŇ–ˇŮčëëŁŃh]]]šCJKKçĚ™Ł[íÓ»)•JµZ][[«»­űťĹ“„„„„„„<łŔ0á~şŻ=—żţuíşuG=ęKK ×ăĚ[[[SuçÎGGGÝöÖÖV‡ăââbiiYUUUQQ‘›››››[]]-‰8 Ű™N§+•ʧĚŇŢŢNqppĐţÚĆŤÇőůBˇ0'''..®ˇˇA©TĘĺňéÓ§_ąr%!!Âçó<čééIQ”··wFF†ŻŻ/ŤFŁ(j``@ĄÖOĐéôĺË—ÇĹĹutt\ż~}űöíáááÚ"##E"QjjjKK‹R©lhhHII иbĹŠO>ůD*•^ż~=&&f``ŕ_§:ML:;;żüňˇęÎĽiÓ&©TÚŃѶoß>í^í¤Oďđ*@Ţ—ěěu.Ô­YóŐăÇ}z©ÁŮŮą˛˛˛łłÓËËk„ 9997n´··OKK#„řůůőöö.X°€âăăÓÓÓĂçó !vvvNNNVVVš+ěž)33ÓĚĚLs’€ĎçÇÇÇkGŕrą%%%%%%<oâĉ\.733S{ ‰‰É´iÓĽĽĽÖ®]dmm˝}űv//Ż·ß~{ĹŠo˝őVpp°î\‡ęďďçrąÎÎÎ666;wîÔîŇ-ű)Ý^”úŐ»YĽšš»áá‡íě~wâćVVćŁ5l^^^hhčČŢ1”Je}}ýĚ™3G«7ÁĘ•+ !yyyú. Ö÷†ĆÍmJQŃĆzV¬J$Ă˝ËÍb0{ýBŢ ''›’±±Q``ZSÓ}}—ú‡Ľ0Llö„ÜÜ( Ó   ±X˘ďr@Ď÷‹ÍfFOťĘZľ<­˘˘Qßĺ€>!ď Ů„ ăOžühٲŮaa™YY×w9 7¸ż€311Úµ+Äɉ˝m[ÁÍ›ź}¶ĚČŇwQđ˛!ďŢëÖ-dł™±±'îÝ{–Î`Đô]ĽTČ{€7E@ŔLssĆ˙ůŐáĂ«--ÇŹ`˙Q/ ~ÓŐ«W.\¨ď*Ŕpŕ~;o±¸-2ň«qăLŽ[÷űßŰ ˙@™LöńÇ+б« †‰‰AäĂhAŢĽqşş­[wôź˙Ľ+®Z´h†ľË€—×çĽq,-ÇçćF-Yň‡÷ß?˛gĎy}—/ń§ź~Şďŕe366Ҭě÷îýöÁî… §ăÓ?€!Ăů|€7ÚéÓŐü7»Ă‡Ws8ô]Ś|˘xŁÎúî»?)Joď]ß|sUßĺŔXAŢĽé­ĎťŰôî»X·îhJJÉŔŔ ľ+€Ń‡óů@!jµúđaQJĘY^zz8“iŞďŠ`4!ďŕWݶ¬_źőřqßţýaŢŢ\}—Łçóŕ®®“KJâf̰‹ŚüźýűżÄzŔ@`}żáÔ©Ë[¶äsąśŚŚ–ľË€…ő=ü†ŹŻżŢôř±jѢ=ĹĹWô]Ľ(¬ďŕ‰ärĺź˙śwöě?ÂÂţ#)i)“ÉĐwE0BČ{x†S§.oß^lj:n÷î??g}—#Ľ€g“Ë''ź=qâG??ç/ľałq'>€× ň†ëüů« jőŕŽ+fę»xČ{xrůăĎ??“›űÓÜąŽź~čć6EßŔ° ďŕą]ż~ďóĎO˙˝ŘßßĺłĎ–áö^}Č{ µZ}öě?’“Ď>x Ř°Á磏Ţ?~śľ‹€'BŢŔČ©T'OVîÚu®ŻŻőę˙ܸŃ7Ţx5!ďŕEÝżßť‘ń}NÎ˙š™Ťűč#ßŐ«=MM±Öxµ ď`tÜżß}đ`é±c?™Ń7lx©đJAŢŔhęééÍÎľ$– „†ÎŤŠň¶łűťľ‹ä=ŚÎNĹŃŁGŹ^R(z‚ć|řˇ×´i}đFCŢŔHČd˛S§N=˝ŹJ5X]ýđÇ;e2•“Óx>ź3q"Îđ?Ť»»»»»»ľ«Ă„Ľ€‘X»vmVVÖđúR †“™Ůl™¬dpP1¦U˝îĚÍÍ»»»ő]&ä=ŚÄĘ•+ !yyyú.Äpäĺĺ…††â=Ć‘ľ €1‡Ľ0|Č{ÇĽ0|Č{ÇĽ€±uëÖ­ČČH‡3nÜ8‡M›6uuu=ýúúzˇŮ t°X¬ŕŕŕ¶¶6Ý>OŇÜÜagggjjęää´uëÖÇŹ?×SĐ­ç)“ĽĘ÷0†Äb±‡‡“É,++“ÉdŤŤŤóćÍ{fäkŃétőĎjjj Ćúőë‡_€Z­^´h›Í®ŞŞŇÜ#čŇĄK±±±#z6Ż1ä=ڎU«V …B.—kffćîî^RRbmm˝cÇ??żÔÔTBH[[EQ»wď&„´··SĹăńz{{)Š’JĄşŁMš4)66¶˛˛rČ,]]],kĘ”) ‰D;BMMMcccrr˛­­-Á5kVFFFOO!dÉ’%‰‰‰š:::h4ZSSSww÷š5k¬¬¬Ž?®»š—JĄş…)Ѝ¨(6›mggßßß___ďŕŕ°gĎ+++›'N$%%YZZÚŘŘ;vlL_g€gBŢŔX‘Ëĺeee@·‘˘¨¸¸¸3gÎđůü‹/B***L¦H$"„D"777±X¬YÖłX,Ýc%ÉţýűgĎž=d˘¨¨(ą\^WWWZZzîÜąśśí3fĚpqq *..îěě$„¸şşćććBBCC 5#äççĎź?ęÔ©±±±ťťťuuu.\Ř·oźî,,K·0@đčŃŁÚÚÚňňňňňrˇPHimmíččhnn}}}---`Ë–-ŁűÚ<75Ŕó yzź7nPĄR©†´WWW[XX\»vÍÂÂBĄREGGo۶ŤÉdö÷÷oذaóćÍÚX‹ĹşďWwďŢŐěŇôQ*•FFF·nÝŇ ^PPŕęęŞÝ«V«>|( —.]jeeĹăń …¦ťÁ`Ô×׫Őę… 9r¤ŻŻĎÄÄD;TQQ‘¶Ś!}}}4­««KÓł´´tÎś9b±ŘČČH©TŞŐęÚÚZÝmÝo%žääÉ“xO†±ő=ŚkkkŠ˘îÜą3¤˝µµ•ĂḸ¸XZZVUUUTT„……±X¬ęęj‘HÄçóu;ë&Ą\.?sćĚäÉ“u;´··B4[ZZt;0™ĚčččÓ§Oßż?;;ű‡~×´óůü‚‚‚¶¶¶ęęę‰D288¨jęÔ©Ozj‰DĄRYZZj.$|çťwš›› !4ŤN§BŚŚŚt·ź˙Ĺeř+€±Âd2˝ĽĽŇÓÓµ-{÷îmjjJOO $„,^Ľ¸°°°˝˝ťÇăy{{ççç·¶¶zzz>×,‡rűömÍæ¦&[[[íި¨(___Í6EQ»víŞ¨¨Đ´hNéççç/[¶ĚÜÜśÍfęI“˛Ůlcccíúľ§§çňĺËĎU6ŔK†Ľ€1$ srrâââ”JĄ\.ź>}ú•+W!|>˙ŕÁžžžEy{{gddřúúŇh4Š˘T*Őp¦ ÓéË—/Ź‹‹ëčč¸~ýúöíŰĂĂõ#DFFŠD˘ÔÔÔ––ĄRŮĐĐ’’ 96  ľľ^(®YłF3Thh¨@ ¸wďŢÍ›7SRR(ŠŇťK;,ťNŢ´i“T*íčč ňe?Ŕ«ycČŮŮą˛˛˛łłÓËËk„ 9997n´··OKK#„řůůőöö.X°€âăăÓÓÓŁ9™oggçäädeeĄąÂî™233ÍĚĚ4' ř|~||Ľv.—[RRRRRÂăń&NśČĺr3335Ž?~É’%˝˝˝>>>š–XXXL›6íÝwß]»v-ŤFÓťH·°C‡ő÷÷są\ggg›ť;wŽâë0ęđ{¸0/ň{¸JĄ˛ľľ~ćĚ™Ł]Ô(8~ü¸żżżćÄ~qqńÖ­[ëęę^ÎÔř=\SXßŔËĆ`0^Ͱ'?gĽ\.onnţâ‹/4×ä=Ŕ/„BˇT*ťŚ„™™YVVÖŰÍ 277×w `°p= ™LváÂ}Wah¸\®«««ľ«Ă„Ľ0|řţŔđ!ď ňŔđ!ď ß˙iéS§“Lä IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_scale_engine-members.html0000644000175000017500000002220012052741143022475 0ustar gudjongudjon Qwt User's Guide: Member List
QwtScaleEngine Member List

This is the complete list of members for QwtScaleEngine, including all inherited members.

Attribute enum nameQwtScaleEngine
attributes() const QwtScaleEngine
autoScale(int maxNumSteps, double &x1, double &x2, double &stepSize) const =0QwtScaleEnginepure virtual
buildInterval(double v) const QwtScaleEngineprotected
contains(const QwtDoubleInterval &, double val) const QwtScaleEngineprotected
divideInterval(double interval, int numSteps) const QwtScaleEngineprotected
divideScale(double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize=0.0) const =0QwtScaleEnginepure virtual
Floating enum value (defined in QwtScaleEngine)QwtScaleEngine
IncludeReference enum value (defined in QwtScaleEngine)QwtScaleEngine
Inverted enum value (defined in QwtScaleEngine)QwtScaleEngine
lowerMargin() const QwtScaleEngine
NoAttribute enum value (defined in QwtScaleEngine)QwtScaleEngine
QwtScaleEngine()QwtScaleEngineexplicit
reference() const QwtScaleEngine
setAttribute(Attribute, bool on=true)QwtScaleEngine
setAttributes(int)QwtScaleEngine
setMargins(double lower, double upper)QwtScaleEngine
setReference(double reference)QwtScaleEngine
strip(const QwtValueList &, const QwtDoubleInterval &) const QwtScaleEngineprotected
Symmetric enum value (defined in QwtScaleEngine)QwtScaleEngine
testAttribute(Attribute) const QwtScaleEngine
transformation() const =0QwtScaleEnginepure virtual
upperMargin() const QwtScaleEngine
~QwtScaleEngine()QwtScaleEnginevirtual
qwt5-5.2.3/doc/html/inherit_graph_12.map0000644000175000017500000000025712052741162017320 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_func_0x78.html0000644000175000017500000001412312052741152020167 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- x -

qwt5-5.2.3/doc/html/scatterplot.png0000644000175000017500000005651212052741136016554 0ustar gudjongudjon‰PNG  IHDR–±A˝O IDATxśí}}Ś^Ĺu÷¬ĺZ#+-®ťň6.‘Y–)ví´Ň¦JĺŠZ$6˘  ˙A„ş1Ť 8B*^“•Ǧ©x‘^˛Ä–¨˘*rp‘S¤:˛M)†ÄDöy#LYŐëĽűţq_ßw<_÷Ě™33gîťź¬ÇwďsďĚ™3çĚůš{ź‘×_]TTTTTT„aţ… rÓPQQQQQ<ćĺ& ˘˘˘˘˘¨ć¤˘˘˘˘‚ŐśTTTTT š“ŠŠŠŠ \aNŢ}÷ÝO}ęSň™sçÎmßľ}ÝşuŁŁŁ{ö왝ťĹťŻ¨¨¨¨č7ć7˙ť9sćŃGýéOzńâEůë]»vMMMőÔS7ŢxŁâąçž;xđŕ3Ď<ăuţ[ßú–/M˙űé˙C5ĽŠŠŠŠ /|c××~ţóź#ntŐN¦¦¦fffV­ZŐüązőęS§N!ÎWTTTToěúú^—9ąxńâüůó.\ŘüąxńâóçĎ#Î+¸Ţů˛5_óÝs˙‹Éç7v}­ýôý–öłůÇ'˙üĆ®ŻŹ;ďj˙qEbé%ç<úsMŐ#Ë'Ú–w˛ëťwŢٰañcÇ-Z$„8~üřŘŘŘáÇ˝Î9rHĘő×_ßÓ$»ľ{î… Ěɧ·­¸çëú1ü.ßo+z‰fŇ}§~ňémBVŇ’Xzq (__Ő-ů¤Ov-]ştÉ’%'OžlţśŕŞGF˛ĹjNFFFćÍ›·iӦݻwOOOź>}zbbbóćÍľçŃ”=|ômÜŤýôZÜBL%âŔe͆ \IłE^ á”·qI#0ퟸµ7gh7”aâ" ůú@^őIŹČ–ŽÇď»ďľeË–ÝtÓMwÜqÇĆŤoąĺÜyĐv˘ź^ CCÂv˝ȲŇ'ŻŠp%MĚ–v5ô¤vĘqĽěŤ›3„ t'äa¦ č…ÉqALě8’őčŠÚI^ĐÖN:mIçe^ŰéěšjY Ż%KO—›§ť¬rů„lB"‰™C€I<„™ŠU;É‹ÖN"·ďCë‘y‰—ۇ¸l@÷çřGJĽ8Ü:*/5}ĐFEygş)Đ)fÎĘĂ”ĎÓ®ËVôÇ–ŢŰ’Xµ“ěزĺNZ×’ĄĺîŕŮ$H6<ą‰NO“+ŚMÉ g ČŞ|!ĺťÎM ŤgR$0 1ÔÓ­_mŹ8¶$ÎŃĄGÜÚIFLLěĂéy:¸Óą>ËŠM"dĂÝśčGR%o.źlŹCÚŹ´Ű1GBŤgť+·4˙b°Î(Ŕşžâj')ýÔ¨°­i}ŽNL›;‚6Ű.‘p7ŃQ<…Qňćä)µŘA[^„Řř&Ęoۡ#ĘĘâŮw_Í1 OěCD…Műť6ŽŐdk>F¸ŢŮ)Ő]ťĐ•ś|M Ú¨’`1hă›(_o4t—‚Ľ}ă±Ŕp–Špu°·ŃIk'łë€đtRsŇ™¤Â˝ +9yJ-0hSć‚ŐÚhă>ú6ź€ĚČó,€LŚ0šŚ˘ŢŰč„UÎ×Ë=„K!BĎÝlé´dŮ.%iNEĐŮ4„´sŃłµc|t99yůF9FÉEŚW± ’TČÎ^/ŘÖ´ţG'١¸‡®J=włĹáeÇ«[xAYĐSÖNÜcď´%…®M R䎳ÚW8ëVs_›ČeĎ65:I Aě.'ŢÉyM4’šÝŹA@ ł)Ű[Y%»%ơ©A6HO6[l…Z†¦Ń& ě…s»>źť¶¤ó˛HĐ˝l…†ě)ťŚ8şr¬,[ÂeńÍ—Ú”ŁóJx é™ě÷Sń  E„ CgíÄ—´4ŕB"Bčq„ŚN·Ë«vb»#ŁŘ™™nŞ8 »Ń®¶T<·±aKbB¨rŚ7Ů„É7jtâ `đÁÁ)Ë'ąÁŮ ěěş=ć0ËÉ€'rEĺ9şq*ŞŚíŔ9ŻGŇľ$…D'™Í‰ň ڞ9Yóń5|Şń8ÄřńŃ女ĄBĐm×ÇcK§&3·%´śÁ9ú1 !-ŮH-ŐŃíčôű65>şĽyîµHs"Ł”čŢű­$şWDtâOŞ˘"ű`yň^+_ŐÁÜ|Î0fVmĂä#0¬PŮŇ@ńNťčjłBzőÓ ş×@Áa4$‘V®pŻŞË«ĐŘ˘Ś ˝e€”\Ł-j‰ę†—+K…F'1.{'C‰NZŢ…l("‡’đI@[¸W$’ŰJá¦Ga‹2Ć~l”3«ĆhŘ8̨n8+eôBˇŃ ĂU’®íě’7Pq_δµ€ÉŤŐľô´W† „Űv& ąć‹[/†X6!ú“Źb;»[t™{ٱ7;‘xU@"YŮá¤GgK;ĆŔ-¬pÇÄنŰ çł»Ď …F'ÂźáFnUI©€¨v˘8_@žR-ł”`łIíH$·•ÂAŹ^;iÇ(źÇ łęž8ŰÎص>»űĽPníÁp]€egK>9 Ú‰ÎG †“,ł”`łIíÄx¬ ęJÝôčµĺ8$HebVqŇ»vb<ćŹBŁĂVś-yYJt"¸TË/5™WuĄ@„Śnz:Ů‚Rů8ŕ8‹Řr&0ë«ßž8ŤŚ€ÂBŁtVTI^Ö†ť A¸pđR őŞtĐÚf[p=ňqŔq±ĺL`ÖWżťUUÉ#…“[ B§ËËÚ€vvĺ…qOAŞR ëeŹ1^¤˝=;?;Ą]ž÷ěÔrνÉěěňy$ÎÄK…»á‚ŞŰ@žAęd źśUń±Ě™ŔđZżťCĽî–vŁ-™|z[Ë–r…ʲ6”Ú‰d)g»¤âdKJG aąÉmsĂ%y˝çgĺÚIAuä¸X›-‘/h‹ÍŹDőlqP€şRk'×kP.±“ścŰŔ•ȸ۾Ňq°Ü [8Pb aň„ÂWpąv"7…č]9Ždˇi“v= Ö^61±Ź›!uµvbg‹•0ßÚ‰-ąěE!>óˇD alĄš^cÄIěŘŘŔwڵvb€˛DRQĺKń8D޵ă±ăzG*‚ě9t9ž=÷baľÂ“f m©ŇkŚ iňémű4]lřJ]ŤN @»Řä0:AÜ<#¸„·9P˘€0nÂÓ‚0¶c, č¸MÔčDFŢş«B‰Ń–¬gDîlÚâĹßd[ĺnĐÖN˛Sbް–Ď-˙;k'ú4‘˙(şńX„ĹÜJ *üCxî!u5:aŤâü,ÝŁiĎŘJ,ń ›v ŰÓTćôö«`ô5:aŠ~Vl¶(ŤĽ:p¶%yĄ…¶r Łĺ6śíĘ•äśqŘQN5˘ËK ÔçN""p™‘{IÉ%ëĹÖ–ÜҲâňËYĺH.¤A™çâr˛ ¸R+W’sĆH Ű4Ł –—Ä€¬fĄ>wŇ în›ST@˙6űBń79ě”s »´Ëc!­MJ?Ľ¨śwܨG 䵓˛˘˛ Lz@VłZ;‰>¶HaŰ}S 9Ű$iŞÂ ´˘ÎJq: ¨µzčنŚÄČđzu.mNß&…)™cQviQ˘Ş6Ă› ›-´i `kń*prłnˇŞµ“(P˛ $ŠM".¶č‰)rź(WĐÖovi—IjĄ%dş sJ,@yÉ[l+-CZ‹­SˇŞµJč\–÷56N".ľŻÎŤW<ĎU–7öËÁWŠ!ÓMXŮćŔ†č|É[`t¨´ l-ŞNA„ŞF'”…@D¨7Ęâ‚ó^!?;¨w#vÎU–7öËÓç°Ž'g˛ŁeKĽ}Ďş?ÜI‘1µ^Łb(UÚŮU ¶ďŐ‹-ńöáäÚácëw|ty‚Ôł/˛Ż˘F'¸_ňFsîÚIö]sug1â%Ś<˛{Ż}BÔ䞣GýŘýUE'Ňp/^/QéŹÝ¸¨;»HĐ:z55ş“‚đ^{ďlâ‚ 9Îak€`ód_ˇ».íő’7„LFťýxĚ©Ń =Ň8ąŐ{µÍ˙ôщÜoĘ>ŚÍ%ZÄŰ& ŤN"ýc ŇČ Î)ÔŮôňďü·µÓÔN2–sTkt*0"2c}ŮÂÁ–(Â9eďězM‚ňUĆ)śB7ęx…çţŰÚyřčŰY’Kʧn &ďÖ#cu’ĐDv˛Ei™Ăš  ?9Iug1/ĺ:›@˙®“˙Ćv2î4óš3±«ť˝ëÇŽőÔ—ČN¶Č-·4d_Ľ¶Š!Pk'4]ˡĘ>3Ěb÷ ů¬“”fë$ţ‚k'”ë†GE<¶DőF©b>[;UZlá ‡ Źť$‘¶p~‚ÄIŤNBQwXÉŔq ň°`8§:Ińd8ü4¨ŃIňć}•-hw,;ÉŮ’·MÚ‰ń8#t’ĐDBj'¸–‹ˇ¨ó5')·0”‹ŹÇ–ŔP:/ÉŮ’Ý@RˇĐ­€±cKoś „˘Îל¤Ě†Ë^9s‰‰Z;1ŰŔj'e ¶äd8P«JFŘŘbS˙vW?ś ­¨—ý܉p÷A_׌_/šWÎ\b¨śM/¦Áj'e ś[%‡ťac‹˘ţúRĐ'CA;Řú܉*n{`Üş.+xK •łidZdQi•=ŃŁvÂäQ@ô#:ńuw:Żw°EVůX73%˘ÓźiśŻ9ń˛“ŠpŰNk‘@bŚâŃ™@÷AiVašńĽ»5&ŞŁvbúĆo<öŘcgĎž˝÷Ţ{?˙ůĎßzë­Žó$~*žĘŃwšŚY&ŻĹ—Zĺ–“9n„q츄­3KK$Űa2Ő,.h"Ft˛páÂ}čC######Í™řĂsss—.]:pŕŔÖ­[Żąćšë®»nË–-ű÷ď·ťGĐÔ@±“äţ/ˇ-žN“Ňo{쎫4lÁ9•Ę]¶ ‡ÄIĹ#F{U´čú6®ý.Úŕ˝  YĐ9łM_P!Ás'%˛±aKú$­qŁM“„4ńą“K—.íÜąóÖ[o}饗ţă?ţcőęŐ»wďB\Ľxqţüů .l.[Ľxńůóçç\orYc'ĺω‰}“Oo›ŘgüVż˛ů…>ăőíůöJř˝¸›kŚÇ^źăŁËqíčw‘ĐÓÉĎÎOcśŃśŃŹĺOYp”r ó2˘B?ŰYSŽ96˙ڞűS_ÇÂ%ąĄ?°ťć Wíä—żüĺÍ7ßüĂţđꫯBĽüňË[·n=zôč;SaÆcÇŽ-Z´Hqüřń±±±Ă‡Ď9rHбv’ëODÂŻI\9`‚¨ #Kĺ:“¸rşëdč“QÂ&cŽăđîdIfĹÉXµ“«®şJ9Ó؉ĄK—.Y˛ääÉ“ÍÉ'N¬\ąŇq‡qé׿E@•Ń5đ^ŵI“>Ö݇ô{ ť8Jڬ3®ĽJí§=PŘ’‘'d±%ţ¦ T˙\h٢˞QŞim‰Ü ®‚IÂĄĹeNţŕţ`íÚµŹ?ţřŮłgßzë­'ź|răĆŤ###óćÍŰ´iÓîÝ»§§§Oź>=11±yófŰy4e[¶Ü‰®m:lOç4xŮ-ŮŠŔď =ą™W±Ťc÷˘ÄĆ:›y6.Ę!•¶d°Ť(Şń‹W;):Ňjk'FŮÓĄšj8ăal'†„Ç}g×ăŹ?ţë_˙ú/ţâ/ţćoţćcűŘ}÷Ýלżďľű–-[vÓM7ÝqÇ7nĽĺ–[Üçh2ڏ{sÖ9 »Ą,ť%Dää»NWS$0ŽÝ‹#ĂÝĚŔćdË*Í’đ„j­wŚ(Şń‹ť„»ąbۆ-6e×ă>1nH‘µ“Ä謝‚jˇ1ÖN€ŤŇ ÷¨7;- ámżpžZŮ4;Ľ}4Ű7Ć-cwi|&ŰĐ|{l§ó–H<™Ś÷T|Fčî¨LşîÚřÚ ­űÉłÝ^B_Oá@`Ö ŃcŰWłO¦…WîŇ©Ń\Źq ‘I#Ű!ţ&bľ¨’6@Ż›¶Ř†ćŰ»1ľ±ŤB'÷-„Ń ˇ$sŹNČŐ«’g×Ń đ$Äs§ňÎâ!ß;˘•É@‰ é:RF'´€O®qŚŽ["Ĺß}ŽNČĎ«’=bqŮÎ';„y›ąD$ş˙âĺ× ă ŞŇ‹«´»°±:\ŠeRg;PŹŇĚ´±fx%%z\â ßfKŚ·´'› HâÚÁżĆŘĂč$jü¦$K×6Vřú5!qI¤ŕڏąĚhĆ4#= Ő‘ď’Ĺ qK ©5:1íPÓ"’»a‹QČŚ¶Bb w[÷×ŕÍ:ÉŮt¤•c¸Ě0˛X;13•đ$Nt®ĘiđNqrOJ{M¸ěJrŁ“lIlJŚ˝Đ:51ÂÍ©wŁ,j‚r§¶ŕŃrŁF'*˛'‚ăą{2[ŚžZg×^ÎHŚxĹF@Äs6K·%iŠ)A"<ąŘB.N+üťČOĹçúůL†YB˙ö’N[¬=™¦~NkQâ=űťÝ5 D‚7 §DvË×oŮr'1e`ĹÉ Aܧâ3"¤vb<îô—SQIgč„7ĺîE^ř×NJwM¸á!ľď˝!Ú-GóĘJiŕ%NFÎ謢|ľć$˝W•ŇCGCf áb§— Ńpł1’±‡H b~{ŕšő(DřCĘăú˝±Ő°é¨ůÝ Ä*ď%N¶T¶lH€MÁ1čč„Vl sC©ťŹ“ÁČ˙ôlśĽü +Â)EĚ/9€ţf sBbMĺŢÓÔąęE$:—/#WŁóťK˙şk¤ MŽKŕ†ŮĆ˙Äl\qĎ×›Txg§üç—p a"éŞäm”}J1¦©5!ňID_î4”kPçňeäjÔb^ŮŃIçŻ1v‚Vňř×]ŁnaţQŽ‘˙éŮŘ<ßI<˙ů%\`ĐĚÁ%]WHŹs+Ű“"MSë-ÉrâčËf!Ś :śkëXľŚ\Ť]ĚúSńíD†[ą‘ˇů°hčüĎÂFČ׊M?KřmľH$J”Ć…óÝzÂ)W6łäčp“ĂÉÁ>w˘ ‡¸ŇŹđBöR¬#0úJ^l$©~M^ިăvŮdRąép<ŔŁ|ăqT#¨”´ 6?«n ±tąeß ĘjčCŻť(đ5"pÂrÍ7«ÇÂ5ź¤úµâžŻ·l4Rś- 6VÓ@žń\éGÇŻš¶hĂcőBŇP^Ăq¨‰^ PvíÄßE÷]#',×|§9Ul,î^l)®‚"l¬ÂŮz€H’©6Ű`dKKRËpcô ›ĹŔ,YśžE'nĄB¬–eľqîC§˛ĺ˛Ž‚hqWŘâoěb¦áÖ-l ŁŃ5»|ŘČ–VőFÜmÚâŚyĎâôô<:Ń“î˛2îéDL‘říľĐéÇąeËbCwÇä:Ć›ĄHn­ŃÂĆ0:]ĂÁ±ËK€ŤÉ[Ć ôĽë©ł4vĄ˙;»ŚII%Ćt@7B¶3@:o÷…Ă*]w’áľŔÝOŔ™Ă^ä>N&~1$>d & 2-%rŢ ×HĘAMěěâkNÖ||My)_aKĂ9¤@ËaJ]Ţ<Ü·ŤÂ6["<¸Úx–3qNSéÎVRş˝6Ęc¤€Â3<ťh™c´%"mÄ8=đ5xeâE“„Ű^Ó'űţđ8 Ą‰]đůŔŐĆwjú_;Ń ÎbĺöđtmâuJďΖóí\¤”cň%ŔÖol["LsĂ:†NŹŻlw^™ćgiýŻé3öŽcK ĄhÉCp&|µńťšţ×NŕR(‘ҵŮ’P’ףHY)n'ć€Ď&ĂÚI #˘JhGJ‰çť#ŻŢ'{_;I"Ö>Úśo;ŘcO©N…V Y‘ \~ĐŤ l‰-ĚW_ř˛%¤vÂלţVĽ/ř¸É ČŮ@FÝWd`®ѶD>fťpbjB˘dŕ–m·Š-JZ6°â— -ÁăŁË‹#žr–\>›-ä¶Ä—`˝wtI)qeßęŽď˛6 §â‚Şvo‡Š-Šl1×"#äŐgË–;9;iĐşŐäµńÎNĂű");ŹŤ0ęź2öĚö|gW'ŇěP˛jváím-»d6öž—É6Čéň,?ýÍ ĘŢŠÉËOäÄî—$;”x)çů˛HjTĆcQŁô‚NµD"f×Ř5°  Îş”Ţ®Z¦5őCđ´ťť°e/gă1şëěĽňQÉ#ÂąíPçRŁ“ë5(Ŕí$Î\{-‘IEĚ®±k`;´^śu<ë“rtBµś±µťnřf/ů$©¨ŕ5˘BŁ*nŰÔypĎťÓóJčĹ~—qËGHŇvŻŢaµÓHĐ rł(ńŘŁAž@ 3*ŰĂÁ$†p¨óäĐvv)›XĐćÚ+°0rťđUşv·#Ź—°H÷třx 2dFŃÖNdoHŕĐ#Ü09GođťŔˇÎ­ťČ›Xä“đö}—H¤ł·Őą/míÄxr% iýŹv–kQd˛mU%÷0ÝSŔ-Nmŕ5qĺÖNá.K­ťtÂm'IęQĆcGw˘KRŽbunÇ;Ż á˙˛2;„u쀄łđ€Řahk˝Ôjzd„{fk턯—ŁA†ăŤć#eXLRN›Ă–PuÁ=©c8C¬ťŹ9 †ăŻHŔľlLďlaKBÂYŰ„¤—ŤÇYa ç*QĘ5ĐÚ O$H»çbKʵÁĆ”l‘—ěˢ2qOäxMP6ôŐyňémíőňqx=ÖÖ?[",3¨G|“]éß(\2ľ:—sz'1[dVđdH noV®‘W´”l˛Ą)tyąţ˙c…ŚŚlá¬W‰sPž‘Jń˛%F’X®ŕ¶DyV‰;A——čή”`%:ŮÂ9˝“ř7…´€2OݧlWgý €µă±`YV!ńöjí$Zů5‚[¬Ľ™.ÁőiŚ”>¸¸ňÉYĹ®pC˛L—lŁWŽ[fʦA8[¸ë$BXŁ3ÂC ĹŠ EbŤŕ+WtÂy7ťHëËgřWPŇÄmĆcČŤr˛+qí$°V>•·WŁ3H˘Q*÷˛Ü—¤ěAOx±Ew5€¤1WSŁ“ČnÁ:•·WŁ+Â}FĹńD‹<łÜŮ>ź’+x±Ew5€¤~\Ł“Bň8ŽĐ’u„„ĺEŤN¬ôŤVW;é´Fp‹UťM#|٢śIHéĄâň·:gXm-É´1,¢F'f„ë9UüiŢg3ńŞäîΗ-ş«s>R–”p ™Î™~/@„čç`45:1ŁSĎ őѨ˘ň­ ±)qwç[;±ĺ¸b„’†XČl?ŠŢ×=â\* DŮŃ ÉŻ1â oÜjżâ,(TlˇÝކGwľµĺ8jA 2#gzĽ ŃůÂră±ŕW„§Ĺß(ÜBÖOś®ę- ĘkŁÝŞ›’˘'Ę–„·FŐNż‘Fزυqý{ÉJ‚W~*>ZKaĐc«B´ Ś{ŔH’ńđ^Ľ¦ěáŁoëü4¶ďf‰Mź.ZŰ1®‹xP×ÝĺŘm&Ť‚tĂÓÇšy7:ůíoűÄO|ň“ź\»víÖ­[§§§›óçΝ۾}űşuëFGG÷ěŮ3;;ë>Ź@k'©,A$%Gx|Ž[:Ĺ—°H t´âňΙ¨Kˇ×l§¬a‹|};(ĺĘËbĘ•WŘ-Gs0>ş<°Ě`ë"t"Ýýv:ş Ýđ,±fFÄÝŮőä“OţřÇ?ţÇüÇ«ŻľzÇŽżű»ż»cÇ!ÄŁŹ>úĆo<öŘcgĎž˝÷Ţ{?˙ůĎßzë­Žó¸wv…O§8oˇ"Ŕ«ÓÄtĘ+`‚a‰ôe…ľŽó?^4ř"‹Ěř‚–°HC&o Ý ŰyŚÉH;»fggżóťď|éK_şöÚk—,YňřăŹďرcnnîŇĄKŘşuë5×\sÝu×mٲe˙ţý¶óČ1iűĺÝ"ś{Ĺ'ŢÂV;1űv*’¸źŔŮT˛ç™mhj':”[HrYn$č şŔO1Ô„HŁîĂłX‰cÍĽX;y÷Ýw§§§><::ş~ýú|pffF155533łjŐŞć˛Ő«Wź:uĘqąvh»wť=.#ŇŽĹŁŹZ;Φž=wĚBS;Ńď%Ł»Xčďě‚i8hŐ„6·f4đ@8Ë—k'333sssoľůćóĎ?ŕŔ÷Ţ{ď±ÇB\Ľxqţüů .l.[Ľxńůóçç\orYăo6™_ĺX\¶˘ňg3Ůú±ísbb_ÓćäÓŰ&&öŮ®lľm®ěl3üłßf¤ĆQ4˙hűmƸ➯·#uđ9đSnŘKC•cŽôëŤÇőłĺąb¤C$§•[Ó;&38>ş"WidÉwíŠý‰†«vrćĚ™żú«żúŃŹ~´xńb!ÄO~ň“/|á GŽyçťw6lŘpěرE‹ !Ž?>66vřđaăů#GŽI1ÖNĽ’žU÷·Ęź˛B`â»Â–*Ĺ˙‚¦‰•\ń!&VídٲeW]uŐ|ĐüyéŇĄ&ňXşté’%KNž<Ůś?qâÄĘ•+çqh줋q¶¤¬6Đ} x>Ú«MH¶3[ 䤍3T¯䳯†@pËb1±%zä2'óçĎżů替ň•ŻLOOżőÖ[{öěąůć›GFFćÍ›·iӦݻwOOOź>}zbbbóćͶóhĘš,ž—Đ#.NyĘRŠwóÓĽ$ěRVR`e›3[ <ŕűĐ(Ń'üvL0ac ul>{öěŽ;:´`Á‚M›6Ý˙ýM"ëÂ… ăăă/ľřâ‚ nżýö±±±yóć9ÎC $»Ö||Í–-wÂsMńS|l‰b|t9óĄ3ś]Ŕź?[ Ľ¨ś)7ĚJ`ř°q|tů–-w l˛k o†Ďźśf bWĽšŐu#°Čyh|ŚcMM¬ÚI^D͆—»Ms‘€Š]ťż>}p¶xĺ‘bT ŔqŇ84ÎcDžËĄY‰g67"âήÄH˙{'̧¶pűh˛?ńÍ+4Ŕ{‹ O "Ő†Ä<ď_G!¨Ń ÚW.çÔâśMnM·"$dó§[ĽĘž%Úyh% Lž·lIVgRlw#âήĽh*B ČçLđ Q>őCÜ+pѧÎß<á*[<ŚC+Q`¬ĽňĆQ?›Í0mnDÜť])aŰŮ•Ý7D”CăŃĚjG nţ ą‰-äÔô©łâ&MŐş8¶¤AĎwv1±%č 62 µŰ·˝AʇVŃô¶v’=ŰQcÓ¬'7xl—QcíÄń­ĄTŇ‹t)śIŚŢł·,ôąvb\ĘSŞ˘ď— CŞGčĄěAŚŠ"YčEpĆŤęOÎ^ťŇ/bYčíoĹ7ďďlPĘŠâ_at8TRBW]śW•x H :ŠsĂőI‰ˇţälá°F)4 –…ˇŢ×É^îě*bÖi ąJkFŃ'ôŞ8Tˇ©ĐƲ˝Q ZV¤tĂ™ó_V(*¶ÄNË1_ó§’Ć í®·;»8ËeÚrŽŢšQ9˝’›YgX‹ AS;ńQŃ$dV¤¬ť0—(Yˇ¨j' R|­lŰ7nß"AŮ;»dčo–׬¶ĺCr[ŻŞ}ý ĽťţńGzŁNďůSĦPjbb![d¤Ó¤ÁËŢŮĺ@3Ů~e/ýE…˛ő ¬—-<ÓKôŇĐ?ţ(!Wďm 0ÄTŠÜ–D ČI %F‚žďěrŁkÍ`;7ę(ÚĹ<ťMtηüQÖć[Âs+ k'QS|úŽVe íŘçť]ť·ô>S!>X˝¤/®ĚU4čqľ´¬á„ODYăĄBÝŮE§ťäSúKPŃm;1±Żł ąv§Ű•^çUé®_? űL˘·Ž&®!&¶Čđ]FbÖŽNř€Uśd«Ý奪[ÂH}tŮ °AIúë„…Ç%¬Ć‹€oB?&ˇA 0:á†vRنJ Ť[y€pE;¨ć·; †íi(TB.„E˘bK€ÝŮ.#©ťÄ>|żP)"mDŞŃ Č"ÂĘ?˛y1ŠńkŹ“OŐ«¸°…Îjnşf`\ě4*WÝŻR%!¸F'™Ń*ôĺË[y@÷ÓŰ׸á-%ô­m şŞo1m9ٰ¨=N@ˇ›-1¦ hK¸¬x„$÷ö©ř‚ö˧tí Ů"WěłÄ%$Ąi-Ůłßťŕ–l |ş“Š YĆÚ–C26íŤňźđ¶ŘîŠ1eťmzm ‘™)čźA?wB[fžEĄ]"€°Hv+ߊfƆ—ڸѲ˛á- Ś9®ŚW;1 s`QÁ8ď8WFÎLzľ˝jĹĺW™ŮËäm*”S5[k'4°e-KL| ŮzBFĐů81€HŻgGˇÂăůÜ B&GLo&…\/Ьť\ŻAą qíÄ&ÓÜ– [:É–#eŮU¤ 1 ܉i ôľupZ=ŠaK„Óąv‡Î¸°Ż)¶1 gAë‹rk'ŻiP.H\;±Ée–4…c]˛Ą“li}_8Ö2i IĺÁ˝´zD;˘ÎĄP.5ëŕ2HÍ]}[žnů[ż1Xş m0j턎dqŚ,ŞńX†c]ÖN:ÉćÖ÷…TÚ©$´%‚TxpdŹqMqQ ścŢ\ŮŚqÓ a´ &ĂĐk' Sęť$Đ †Ă„c¤™čţU;DÉjă[€BŰmű%2\Z;é„W‘@pšĽN’ŕ¶D÷űkŚnW”ŞvĂűΛú]^¨-i ”÷d„0Vr](KąZ”Z;é<‹G^4{ÁkW•íaZרRáÜ ŞťŹĂ›őőx-Pűt%β>#Ę(Đ®¤,0äşP®rőü×!7’Çňá :ZLÚÔ×3‚?[|çšJŞfˇp7(ţ“żĆČל䭝„Űr’*h‘ršp¶ˇ Ź Š-©Ś"ÄĐk'Ćă&"ĺLô*ł”@°%^ŐMIUáRTŞ‚âk9’S*-)Qk'8—yŢłFčFŕŘɱU ½ Bgňn0bŕeÎ(÷zőUőČúÜ ÁŤ[„Cf Ă!ÜĹIKĽu ˇ"Bgn‰ŕ·9čÇľ¨Ń‰5:A˘Đ”«Ěž+B$¸‹–¨a(źÍTÎU Ą×’Śo5:1bĐŃI§ w&µ8(Ľ¶jݰ͚c°¸Ú‰~ŚX:ő[çKŃqP’y-)ůVŁ#ťt şíć’zQ·e‹<.ÎC@Ŕ=kĆÁR9›ĄSż%qľ·y©@Ż%%ß *)ĄÄ ŁK¶W iˇu+R„QD@ź5÷` ťMÄŇ™=FDÄm^*Đ?ŻĄ¬’R8€frĐщ?a^®&(+…bEäËňĐú¬ąK GLv‹·±ňZ¨˘‡đ’RYšÉAG'ť‚ÎJpPVŠě+W fŤ*:Atť]ĆbÇm¬ĽŞč!Ľ¤dĽŃxĚ3Yö…•_ÍĘřkŚL Ď÷ä•oQŐ˙Ě®Ű(S{âtÁńČF% Í @Ú&Ë}*ŢńóY}Úzw[ôb‰üŐŠ{ľŢ˛…ˇĽfCiŃ ]BZˇČ=Y›Ű®s†ąÝ ’ť¤¤dĽťł-]1ôĐk'EŔ+BwH¤ľł‹r-UŮĄĹ8p}»„R¤Ž¶QrtÎ]m¦J-F¶ąhŰD+¤öĽv\žř;\p·Ĺ!‘i‚fćZŞ˛ż,Ŕ8p=.Q6ĐrÉ(9F“­Ý ŞBNŚpgęŇ‹«CI{ť—'ţĐmQ[ýú A 3ł,U/ QieŕƸ$Ţ® ŰZfô7Ů:ŃÉ@ř»AĆópůϲvŮ”´çщ/Oś.¸Ű˛Bz¸D„2ÍBÂĚ,KUŕËHTZ¸m[GAŮd›Űn¬ťä‹ç PE'$’“~í˛)iĎŁáă׳UßÝ&^É43PŘjŻü©xUú˝TZ_Âô;ZS"¨ë±vb<.¸ť°vn Ż]%íyt\žúçp˛"Éήf&XŞZí•?•Ú‰‘~÷XĽTZ_ÂôřĂ|$sHîy#‚™„lń’#BB’ń¸CIË~îDî×űcţ˝,$‚lKÂŻÄl»RĎzéĂéŻčDĽ)víŐlš©G÷2Yîs' Á«2ÂíŕÁ–ŘŐE%:N¶@” T)6C?ĐŤ‡ţg‚`ş ™ŠLÖNŚÇî[¸¸^ú_; ®LÇٰ"žÎč™.˝vbĽžś!-RŽpDçCĘęE)QťáĚ”e2#[ŇTJp˝ôĽvŘnrz”âlĆÓąVŃ~ÚŘ)0.aňjĄ‡#T]ű"žŔ„űjľ-Ş30śŤ @’0'öµvŇ _áłĺC{c“bcLÓłŐ˝çCxŃ‚»de»¦¬ąČXZ«µn˛â±Šo˛G'×)e2§Éow†Ŕč¦çލľäál‰qúÜŞŞĚEv=rĂ‹-„‚ť®vňĘ+ݬ[·®9>wîÜöíŰ×­[7::şgĎžŮŮY÷y¨j'¸ OžNV;p˛§ÂYŮ×vN>úvçüFĄśĺ0"ŞŔ„§4˝ZčTg¸Ş’ł…ÖYńbK`+d§¨ťĚÍÍť={öˇ‡jÍĂ®]»¦¦¦<¸wďŢ^xa˙ţýîóPŐNŚÇťĐă&•|^űę«H|(G˛lĄŮ^—ňmˇSťáŞJ®G„Î ‚±hÁVČNťěÜąóźř„bnnîŇĄKŘşuë5×\sÝu×mٲe˙ţý¶óhĘbxU@53Ć%L,JöčD0łŻľi>”ăY¶ŇDámH祪1ôĘYA°EqőoŤÇm-Ů)˘“˙÷˙ŐŻ~u×]w5NMMÍĚ̬ZµŞůsőęŐ§NťrśÇ!† 8lÓÉÁ«ÍťpłŻĘT:4'ĺ¶ă…e«˝&»Ŕ$—ŞĆ{ŁpzĄëö¶ş‘î^(*3I±á­ŰśĽůć›{öěŮąsçĽy˙ďâ‹/Îź?áÂ…Íź‹/>ţĽăĽ‚ë-0öŢ ŹđSá;yű±?>úv^&&öŹł|N>˝­ˇabbßäÓŰÚůWďhĘ›6őc!©ź­G%$ŁVč±]IŹJ˙$ףv–ŰyO6ą_›¤éß6g&/?5%K Ý…ďşë®;î¸căĆŤoĽńĆm·ÝvěرwŢygÆ ÇŽ[´h‘âřńăccc‡6ž?räeŁđšŹŻ‰”ď*:Ţh‚âeÄKâîhŘŇţIH¤C`:˝BZJô!ťňśŻěP†!|'"‡ú·Ę™ńŃĺ[¶Ü)âmţÉO~ňŔÜpĂ ›7o~˙ý÷oĽńĆĄK—.Y˛ääÉ“Í'NśXąrĄÂv‡Ř¶„C˘ĆGžÄń30ńF”&Ý–Pqᢊ-1ć¬É% ’Ňá–ˇm/ű‡s["<•Νȵ}«ËgôÚÉ«ŻľÚü–ű÷ľ÷˝E‹˝úę«óćÍŰ´iÓîÝ»§§§Oź>=11±yóć‘‘ăy4eMP†€Cj–ÖŤ°UŐÚü†¸r-ńzć!]ËňůuĹă3ꪒ4Ë+ZŹČa“Ő,f†[€+ťŰ0~k”Ď@¶x<ęÔ©Űn»íĺ—_B\¸pa||üĹ_\°`Áí·ß>66ÖTVlç! |*Ţ7ŁĹ39ĐRbŽ1Óo Ą' Ťčd—ăV÷’«nt¦ łPĹYŘ2đT<ß—¬ÖNh3Ź!Ŕ­;6;a«ť¸mO–!¤:žFcf)X : QÉ(aĹ#˛(]ôÚI.„Ű’Î,žJ‚\éŹ#ňQJ*§­ťŻq˛RLrńť%%ŇxŽ¦á‚†-ÉJŹdź ‘˛väoć1Z["ßĺh0%„ąřŔFp\)Ů%Ű­\u‚Z˘0‚C8LPHí¤‡ŃI ËŁĎśŰ– Ľ %@GÉÍ&Y©x°ÍNZ’±K–‘vý’9“}©âe+ “h>űŐč¸sšĚŤ­Úî@?bŻŚ(ç—l•‹E&¨F'HŔťÓ4n,ÄQ*bż|$8fˇ¶¤ŻÄ{"§h´µ“öLö: ‡ Ô#ľć„ĎŽ”4 SŃl‰Wld–ΦĎF¶żÓćŮ’u-CťYî]ßŮ%rçš8dŞëήž(LEł%žČ„-Ů=\ăÚË(ł¦Üµ;$•ě–€Ą8 žmbí„C–łŤŢOĎr  GWE¸8č_É˝pŕ•ńč\í„·E„—ÁÄ G#’ȇ-Ü<\ůőéŮłL^4´Wz­›ĹaňĘ·÷ë˝đ_U"Ů’ÖN’yQsľ»Č¤H€CĽb#¶p¨¦*_É“‘* ŠvŔ)w/ÍW}[i“Ĺ…#µ­ť$›űŘ‘Ż]äă†#ŻŘČ„-Ş© šÚIűgYuf%bę»{qhZSF‰„€äĺB ŕp‘Ë®ť(?ÂȶvŻ—RrµéĐßĹŹ¦\ÖŁ.¸vňšĺ+›ű  ™-‰áłxyÍm*śś˘Á$:ar9óÁ}wH†ŘÚLxĘ’°mÔC©ť¤äµžQq˘`Gz×xńäÓŰ”·ÓW4 ¬ťD­–ĄG g¨¸h'jŽ®eKłHľ(Ą, G= Ú‰ĽŤŻ= ‘ßëmRuš!˘É$*gBĽ7űŘ8T *n7\AH"ĽáM8‹´*™¦$ěuٵťĎťČů>ߌg`6ÜťňÉóöC`2\ś¨¸ŃŮNqNH°­v’×NĐk'˛EőťBś-IśëpÇ^Í·ňCÎ-h+Yf?:źß‚«)´“Ě– m&\I„d ‘ťČ€XÝÂç&‹k€¦¶‚ĂÄŔ)QH_ťíTÉ—˛G=kNdťÝÂťdőG§6!(wŁNTĐÖNŚÇ…ÂQ;*‘ńŘv˘n{Q€”Őť,{ťŔQ˘§âŁ%v'+*Ĥ%MüDÂOô"ťŔQbÜíŁu˛%ĺV>JKJď’ Ň„łeI‹`Kš\\xP[újtbĹp<&ɶ⇚ťŹ‡!pµů©µá^UĎ’ŕ lIą‡ ŕŇÂ- E˛b[AŇ"j'ÉŞ;!@/}Cy*ž'Ň'O:Ůâ%ńúKŃśpi)kŐ G=*KZ„‰-]*c@OĹű"ÁZź>e ©ťŹmŰč/Ks൓˛V˝@I6^#:Ń;ÂIKĆR–íĄ‚MĘ. sjíÄ…¨‰Î¶Y]ŁÂŰ Ĺš‰ţT8”äd™}ŞŽ¸•"řP"21§ÖN¬:Mă´ŽC§‹Dîlö#ůÓűÇq€’¬_‰3JGhW:—-1˛…›.¤gN­ť¸F>VÜóuÂ^Ü2D› /4ůŁ#R…€ĎĆb $ë—ĹăŚÜ:S¤´“ŚáĆÚ 7]HoŢjíÄŠ4ňŃ6NĺD¸eöi޲ $DőÁEîP’Ť—EŞťč!\i˝ťd 7ÖNlDĆ#Ă,ć­ÔÚ‰ň;Ś b<ď xő"Fť#^í„[’ş T¦A0 xs`ř`őĄČÚÉk” reĂáţQ ׾łMň§yůäsBOZ¸ĺÓ}‘FŹ€®4Dąâ1ÜKÔK·%8˝®µzp–$4[lZ’ő6g[ŕ”+™ś”äbo=‚»Vn劚áńőŇÝś^÷żv’~Ůâ,I1žćĹ™O&u…^lń @•ň@‘^ b/·=onĺŠ]ĚkEÝ͆eyz]jíD‡ăą“”yĚxŐ ¶aoą,ň˘<×0ËeŻ‘”Ë·ŢŮ3®Ú€l‘µ“NČvRaJTůf§HĎť”#Ć'Śóe‹幆IŇ/«č$’r#ąâbŽÄ n°‹NâYđGąaś幆Y.{u¤ C.…<ý˘×óčD1łÜ$&1ř8›¬Â8ßÚ‰ń¸âć&UżvL$(łůFrĄü LâEŻ˙;»ó^D”Ş€PĄ‹xŃrz˛…víËľš3Ů1uYÔ;ťlO¦GOĽčőgW˘óžíźáĹ':aZ¶®}ŮWóńŃĺ <ÜÎĺ±,ęmÚzŃ#ąN¶gů4őŹ ˘vR(”ĽgÍÔ‘#ęNˇH[ŹŇ#MţÝŃ zšô6˝Ć’]ăJ,úöĽvR.t[îbŔŮŇö5)=L”‚ľ?ąK2_aôčÓx¸Ž]ŇŰôµ%¶!'«ťÍLT˛˙µ#lÜg2+-+.?MMĄŇđä¦Ţ—1ĹL˛ gd;ąßG[{OśŻĐg6ŮV‚VSoŘK'ŰSÖ !4gOŠ6JíDŤűLfEXôY˙ÓÇżW\~´çĺÁ;9Řž¸Vé‹ôĂ”™eőήŔ6á˝t˛=qíDŔhNŁ>çoе÷łŰ&—Ú´WwT­ůöX'˝·L}ť# RNś»Đ%X;±ąĄĚÝŐ@xŐNôŔ(^>= Űe­„¬¤Đg¶ěŮH‘Đ–@Ë­4›%)ŞOÇ@Ł›Ëăp…Ş—ĽÍ>5Ü<úČ;ĆÄýaBé–9ů+1„čÄf´myŇN߼DpóŞV§&-Ą/=lx‚1:6Ĺ$Ž\;ËSŹ€h9‰SG$Tvt˘ü&cgtît˝jômŤ§ý3ŮLőŔ™íBš1ę˝d ={0ˇnČ$Ż€ŠBŁß_c$±%EçÇ‹öŞh§¦„°%qÚ:ÜŮđdcÔÉ˝·(«pŞůIDATM‰ -]Ź[B5§eG'2 µ“kś=A_a25B[węÜu‚‰?ž… &cO wز(4:qŔX; ń°BĽ$>›J÷ŞŚ°Uąô36ťé%[ŕ— §"#*¶¤h1ň™Ä– +:É!x@Ů94ŃĂ”xYEŃ‚n&ĂP˘“\h×µŘ$ŠĘ–Ä›ßôń®°˙6»ž)–‰ä#-ÜĐ{ÎŕB˘Ţł‡ľł+%V\~ďVšŽ„s5ŹÍ–¨^žmó¨^ĽUÎ(K†~Á–-w{©ŕŁG‘€Kb'` ź 9}gW(ľs¤.ňî—Ź´ůMŽđ&µwb ď2 Fc#_01±/e\UęQ',Ä Ř’8Ö'AŤNˇŽ4ŰömDeKĽRŞÍ<čăí¤ÁxÁĂGß."{žŢc /‚©Fo!–&YľąLĘ¨Ń @éO¶_%ű~ů¨ŹČöXY,lőÝŇŘ])®˘EzŹ•ä}F0áč"-Äé«üeRFÝŮ„ş'$ç9dŽĘÚîĹźB^“Ś.Şb¦´%){$AÝŮ…Gq¶¤ÄT¸¸¬Nrń ÎsČML쓯!56{¬áăE0Éč˘ćđ_–đrBÔÚ‰ ťé¬â˘ŃBw¤„¤Ń sÄ­ŇfC˛Äi gZÚäR;!]Ľ¤+-˙mšRbľÁ€j'“Wţć9DÜóš^·Ă1´)Ŕ9 dK˛ yÔę”8ΫYÚ‰ń8 “(ŰÂ)thJqiŹqŁ“×_ýî»ď^»víúőëxŕéééćüąsç¶oßľnÝşŃŃŃ={öĚÎÎşĎ# ŰÉ6xôŠóJ˛n’ŻDî#ąáúŢ*&Ę\ˇ٢KBú-X‘ sĆkP´2ČO ©€«3•ٸO{(C‹-xQ——9ątéŇŘŘŘŞU«~đ<˙üó.\xä‘GšŻvíÚ555uđŕÁ˝{÷ľđ ű÷ďwźGŔöFaĺ îy ×r_ŢÝ`¤čDé´¸`8[I`˘…@ćŚ<(ůšyŕ@~o‡«3•ąä•öP†[đ˘./®ť]żüĺ/?ýéO˙řÇ?^´h‘âç?˙ůÝwßýĂţpvvvttô©§žşńĆ…Ď=÷ÜÁźyćăůo}ë[@R€onŹ!Ľ–Y¦°OY7gŽ|b:7J_Lá0JB/‡/G`nçZ?¦ę:Ňí‰kB.Ĺ<…Ta_?'#íěúČG>ňłźý¬±%B—^zéŁý¨bjjjfffŐŞUÍůŐ«Wź:uĘqŰŻ16\\iZlp¤J[â…‘űňŽăŐNŚŞ¨0Ťm (Ľv˘»“îieË  gäAąóŔĆcĄ)ă± jŇy»WL@˘GTµ"yh“—ßA+TJ`iy•⧦¦ţáţáŮgźýň—ż,„¸xńâüůó.\Ř|»xńâóçĎ;Î+¸Ţc×ÍđšĎ‰‰}+îůş~ŚţlŐ©9Ƶ#·ĐĚP U“Ook¶˝6/Qľ}řčŰ퇌B‰”cP‚űÔĄĹW”c÷,ČçŰ+#ŤNîr¬|6o33ÎrCąă^÷§:ů.ź2 ťôDŇ#Ż”9Ó~ !h×eľÜí˘ă1ĆŮŮŮ˝{÷ţËżüË_ţĺ_ŽŤŤ-[¶LńÎ;ďlذáرcMŕrüřń±±±Ă‡Ď9rHŠ’ěZóń5±w&ŤIĐhBH ş)óa]8[pHĂ› Bx|tů–-wşóx!Łŕ#^H,0™ŠÍÉ6‘ĂSĺšFZD¤ÇżůÍoîßż˙ŮgźÝ±cÇňĺËGFF„K—.]˛dÉÉ“'›kNś8±rĺJÇyâM¶ě_Ç+Ł"ś-$µľIé5ŽŃ–$ŰJq†lo3#IÔ§>- Đ–D⤢­ŽÚIÄť]ďż˙ţľ}űžz꩏}ěcŤ!BŚŚŚĚ›7oÓ¦M»wďžžž>}úôÄÄÄćÍ›mçŃ”‘_Fčx>Ëb'Hآ×Ű7N^Ţ|N-âI‹ ^™z’ľô^ kĐx´·™Ąä9ŚR[r×ጜT®G—댎ńĘ@¶¸’]§Oźţô§?ý˙/Y¸páË/ż,„¸páÂřřř‹/ľ¸`Á‚Űoż}lllŢĽyŽó$~g+ç:1”Č ‘ď‚ßH•T,Z¦)iF!- Ć–ČÇHË‚®)¶ŚĄ~˝q˛BňóŠrď°Ŕ%»řľ2jíD™•‚T.$ç« +Ú–čÇŔ#ő•«v’NĘy틡ŹÉŘ™,ŐńjĐxWsŕ6Ňqk'Ű–ç+ÓŮ"„-F[⛦đĘą“Ä@0/%® 8 á :‹íáő…ŻŔŕXT1Ł-™4=!ŹÓŮ6G-Żx©k'yµv˘ŁCČÄd‹±nu ±[pS”ľv’NB8ĂĐťjǬ×(|Á"¸Š='9ŚÔY¸ ¨G|ÍIb“Ľ\âń9îUŘâŰ‹qŽş‚¸#!ýzÔčîeŃ n5rĆh¶ŤŢ±ń[Z(´ŻEČł-¶1úzś@S¦UąK±"CPŁÄpŐC<>Ç˝ [ĽzI‘ŘzÔ)´ŃŻűť!:Á­&@Îí˝ŃeÖç‹\–äTŚ--cÜ)t°Ĺ&“đĆ!F×(ŰúHÉÝ\7"îěJŚ,żĆ!ŮDX](Śô·.Şí‚ _č z÷±ű <™îQ„´†hÂśÎkhGÄdŔήťDDga»WgKb˙Ąîü•ńzýrĺĐÝ`¤%dÎŘb GÜŁĎO["<Ł7·ŔčŁö !ĚéĽĆÝixâQoˇÖNh@žÉ,9îŐk'‰óWťPÖ,w.ÎFżíĽ­ÁBk'8©óşKáŚRÇ‚¸Ďžőň•:r-CĂ]; ×)sÁtş­…@=â›ěZóń5Í»†šořA .YŢ5¤ǻѷń…>]!°RżKá Ul(Ůe)ŞŔ@¦T8'ĺ“Ďťđ5'Mí$ńĎÜ–dď´é©Öí˘ťA٧KźYŽßě9Ú$č­eá˘Ó"\˝ô@Ë€Q–Ú D_k'ä+‘ń¸=Ă?xO_$ ™Ş\śś—y>yůĺçäđť_„<(©'ĺvcBĂË–(µąS‘0GÚö˘Źr[’LŹâ-¸IÔm‰ÜBĎwvŐ&$N´éaĘŕ˝,ÄÎĆ"vŕ ~˝-\pĽűJÎŁU1$-cE|'1!Ń _s⮝ŕ”ÜŘT8R Jµ“ͤ‰NҤÂc\ďľÝa`€Ń źŞŽ31”7ŁeD''Ë®ť(?ÂčőÜIż#•ĎA\8 ™ďŐEPzIfJŤ©mů+ŰIxăI0XM)kŕ×N^“ |ĺ»1ĽňŚĆHĺ4fNCŇ©ü°Ág[GíqĽÚ‰×@®ß.ŹQ®ťč'mč|î$ 'Cص M-'eí$q™ĘF†ńXAĎk'F0ĎŔ@ú-ËaˇB^︢AÔdogăîâĺp¤"˝.9\ptâ€űĄ:Ćch}/gĘ8…hÍI˙+r„-ÇóŽůmém7Î ÂúNxM«MňŰ’ě“>R„p¸>Âą[‹‚QŃZíĹÜŇUĐ#­|ŞÍJFčĎ0Š.§ !6điµI~ ;ç!/âŹĺ“ť®oΠ(8$Tňb zi‹ç*FZ5XI «¤ŤńąátŞbśV›ä§/0pZ]pĎĂŠNXĄ€˘^JUŕë>ŕ–6ňE_ô…łŮÂw€żŇ}¸_cô¸1°IľŻFčű˛(»Ŕİ ŽYrx@Ń ź4BzgŞ…Żű€X»;G’ ‘‡“Ô Îf„lt väă~ŤŃKlŚKUTçO'Ř—E´ÓăqHËáŽÚŕvve·%Ać-ßŰŚ†x#ĘŽÎáÄŻbKÂ;… IHűî3Éo°Ŕ– gM dgWâzť`–aţµăq8๣¸Ť<´9ˇ|˘:™ćâשÄFBmŇâĹ"r‰WWŕ-sĆc/ «v’>ĹÄ'ĂÖ {ηo2„pîŚzˇ-Ćăλ:ł‹hîk'14K*mr一C ZOW—H¸â «vb<ŽŤ1,ÚM“Ů’+rňU]EÓHň]JżL˘ßĺRŽŚ Gx¸¬ť Ű·Á&$$Ú¤ě;ňÚ ą=V‚Ĺ4epµ“ô”%i6vz:¬ťxfśAţÓŠíĐŠ‡^Ôć’ŐNbŔíăÇ˰ádEaKŰHH¤5ĘQ\ďŔ.lN(“čDř'=Śb@¸ŽđጠMčěY¶Ŕ©M™Ř'Tľć$Y6Ü=Ç<pzpÉVăoĹËM!–ˇőˇŘ]ŕž® b0Ša"žIU©AڬÎôćb Ú”‰}BÝäkNRşťsěµA¦í}(µą‘—6AXµ ÜÓäPJDť3kZĎ­Gh뛸¤‡3˝ą‚6BG­nÖÚ  k±ďzť%é‰^˛c'j•:sĆw‚yéMĺ=dčqí$đ.a˛©«µ$€Î –ÄđAll qiS&j#ńtE<°˛%!z„H2 “Bąj'Ćăλ˘FŐ„ęź-:Q~‡±Ďť] ŕWYSJÄÖwÉćĄF'eq …MFX‘ŃÉk” ŕţ¦ń^#[HtŃ». š**G*6ŕěÔ#žÍęńŃĺÍ/°Hvť;wnűöíëÖ­ÝłgĎěě,ş©”¶$q¨®tŞŕ÷ή¶ĺ¨#ňÍŞ•ś6:1ţއŤĂö}abKÄ•?ěΤąÓ†^IĹxđ`‰¶DÄß/Ŕkg×®]»¦¦¦<¸wďŢ^xa˙ţýč¦$7c¤Şqť¶ÇEä|5 ‡ÉmăíŻzę"NůT€/§ę„Ű@r0ź^ä G Á¨vréŇĄŃŃѧžzęĆoB<÷ÜsüÖ·ľĽ˝wvE‚˛ü…hf2­Îľ|¸‘‘<>ÉB¸óH|’{©ťPF'SSS333«V­jţ\˝ző©S§Đ­ Ç}Ô¶Hąk'ťM%pŠůxß úńT| č‘;ÄĚĺb8Ë‹=ńâĹůóç/\¸°ůsńâĹçĎź×/»Ţc›ÍđúýŮĽB\?6~>|ômŰ·ŤVŹŹ.oµ:ÍMé[\N1qŕˇ,-ÉřPħĚôgĂOýň-ĎO‡ ů3”É®©©© 6;vlѢEBăÇŹŹŤŤ9rÄ·ť˙ýô˙ůĆ®ŻQQUQQQQá…üÉ®ĄK—.Y˛ääɓ͟'NśXąr%˘ťjK****ŠĂ|¶ćÍ›·iӦݻw˙Ó?ýÓ˙üĎ˙LLLÜsĎ=vp†±˘˘˘˘"#7 ßwß}Ë–-»é¦›î¸ăŽŤ7ŢrË-´íWTTTTđ٧âŘŠó‘b(“]ä7uíł,ÚáÓ+bř4Š:"ţÄđi„ŰůľQ¸˘˘˘˘˘ TsRQQQQA€jN*****ĐssÂjŁA%Ć>”NÄđˇDTb,ŕC‰ŕALĎÍIEEEEETsËĎ•-FT¶QŮbDźŘRÍIEEEEř>ĆXQQQQQjtRQQQQA€jN*****PÍIEEEEŞ9©¨¨¨¨ ;srîÜąíŰ·Ż[·ntttĎž=łłłą)J‡ąąą×_ýî»ď^»víúőëxŕéééąąąąą9ť-¶óąsssŻĽňĘşuë*OZüö·ż}â‰'>ůÉO®]»vëÖ­ÓÓÓÍy†ŔśąąąC‡}öłź]łfÍúőë?÷ąĎý⿸̼űúÔ§ä3ľa;s˛k×®©©©îÝ»÷…^ŘżnŠŇavvvlllŐŞU?řÁžţů .<ňČ#ÍW6¶ Š]333=ôP+Ç•'B§žzę§?ýéżţëż:tháÂ…O<ńDs~ČĚ™žžŢ¶mŰÝwßý_˙ő_˙ůź˙ů'ň'_ü⛯Ȗ3gÎüíßţíć͛Ϟ=+ź÷e„EĽĚÉĄK—8°uëÖk®ąćşë®Ű˛eKźćµgÎśyóÍ7ď»ďľ«Żľzٲe÷Ţ{ďŹ~ô#!ÄěělĂ–ß˙ýß˙ă?ţă–-¶ó}ĹÎť;?ń‰O4Ç•'BŮŮŮď|ç;_úŇ—®˝öÚ%K–<ţřă;vě››3ę‘í|îAĐcáÂ…úЇFFFFFFš3ţđ‡ĹPećÚkŻýçţçoűŰí_ K/s255533łjŐŞćĎŐ«Wź:u*/I)ń‘Ź|äg?ű٢E‹5x饗>úŃŹ ;[†Ă®ąąąüęWżşë®»š3•'Bwß}wzzúđáĂŁŁŁëׯđÁgffÄŕ™łxńâ;v|ń‹_\»víźýŮź=óĚ3_ýęWĹŕŮ"Ă—@ń2'/^ś?ţÂ… ›?/^|ţüůĽ$ĄÇÜÜÜÔÔÔ#Ź<ňěłĎ~ůË_—ŮŇš™–-¶óýĂ™3göěŮłsçÎyóţźÄVž!fffćććŢ|óÍçźţŔď˝÷ŢcŹ=&ěz4ýšťťÝąsç_˙ő_żôŇKß˙ţ÷WŻ^˝{÷nQeF‚Ż„%‡—9YĽxń|đ›ßü¦ůóÜąsżó;ż“—¤”›››ťťýö·ż}Ë-·\ştéßţíß®żţú‘‘‘†-ďż˙ţÜÜśŘb;ß?<ôĐC÷wפ,Tž!-Z$„xđÁď÷~ŻÉŽ:tHŘőh úućĚ™3gÎüýß˙ý’%Kţđ˙đ _řÂáÇE• ľ”^ćdéŇĄK–,9yňdóç‰'V®\™—¤Äřć7żą˙ţgź}v|||ůňĺÍI[†Ă®W^yĺ¸á†6oŢüţűďßpĂ •'BeË–]uŐU|đAóçĄK—˙qŕ̹ꪫ”3ŤÝ8[dř˛Č"^ćdŢĽy›6mÚ˝{÷ôôôéÓ§'&&6oŢś›¨třÍo~łoßľ§žzJ™Ş‘‘‘†-żţőŻ'''[¶ŘÎ÷Ż˝öÚkŻ˝öꫯ~ď{ß[´hŃ«ŻľZy"„?ţÍ7ßü•Ż|ezzú­·ŢÚłgĎÍ7ß<22bÔ#ŰůÜ ÇŇĄK×®]űřăŹĎĚĚü÷˙÷“O>ąqăFQőč2|%.9ě^yáÂ…ńńń_|qÁ‚·ß~űŘŘX›.ď=Nź>ý™Ď|¦‰¸,Z´čرcB‹/*liňĽúůłknnîŤ7޸í¶Ű*OZś={vÇŽ‡Z°`Á¦M›îż˙ţĆ·éŃôknnîÝwßÝąsçŃŁG.\ř™Ď|ćţűďoâ¶ÁĘĚ©S§n»í¶—_~ą=ă+!ÉagN*****JDŻ,pEEEEE.TsRQQQQA€jN*****PÍIEEEEŞ9©¨¨¨¨ @5'¨ć¤˘˘˘˘‚ŐśTTTTTŕ˙ †žGĽ#IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_thermo-members.html0000644000175000017500000004712212052741143021371 0ustar gudjongudjon Qwt User's Guide: Member List
QwtThermo Member List

This is the complete list of members for QwtThermo, including all inherited members.

abstractScaleDraw() const QwtAbstractScaleprotected
abstractScaleDraw()QwtAbstractScaleprotected
alarmBrush() const QwtThermo
alarmColor() const QwtThermo
alarmEnabled() const QwtThermo
alarmLevel() const QwtThermo
autoScale() const QwtAbstractScale
borderWidth() const QwtThermo
BottomScale enum value (defined in QwtThermo)QwtThermo
draw(QPainter *p, const QRect &update_rect)QwtThermoprotected
drawThermo(QPainter *p)QwtThermoprotected
fillBrush() const QwtThermo
fillColor() const QwtThermo
fontChange(const QFont &oldFont)QwtThermoprotectedvirtual
layoutThermo(bool update=true)QwtThermoprotected
LeftScale enum value (defined in QwtThermo)QwtThermo
maxValue() const QwtThermo
minimumSizeHint() const QwtThermovirtual
minValue() const QwtThermo
NoScale enum value (defined in QwtThermo)QwtThermo
paintEvent(QPaintEvent *e)QwtThermoprotectedvirtual
pipeWidth() const QwtThermo
QwtAbstractScale()QwtAbstractScale
QwtThermo(QWidget *parent=NULL)QwtThermoexplicit
rescale(double vmin, double vmax, double step=0.0)QwtAbstractScaleprotected
resizeEvent(QResizeEvent *e)QwtThermoprotectedvirtual
RightScale enum value (defined in QwtThermo)QwtThermo
scaleChange()QwtThermoprotectedvirtual
scaleDraw() const QwtThermo
scaleDraw()QwtThermoprotected
scaleEngine() const QwtAbstractScale
scaleEngine()QwtAbstractScale
scaleMap() const QwtAbstractScale
scaleMaxMajor() const QwtAbstractScale
scaleMaxMinor() const QwtAbstractScale
ScalePos enum name (defined in QwtThermo)QwtThermo
scalePosition() const QwtThermo
setAbstractScaleDraw(QwtAbstractScaleDraw *)QwtAbstractScaleprotected
setAlarmBrush(const QBrush &b)QwtThermo
setAlarmColor(const QColor &c)QwtThermo
setAlarmEnabled(bool tf)QwtThermo
setAlarmLevel(double v)QwtThermo
setAutoScale()QwtAbstractScale
setBorderWidth(int w)QwtThermo
setFillBrush(const QBrush &b)QwtThermo
setFillColor(const QColor &c)QwtThermo
setMargin(int m)QwtThermo
setMaxValue(double v)QwtThermo
setMinValue(double v)QwtThermo
setOrientation(Qt::Orientation o, ScalePos s)QwtThermo
setPipeWidth(int w)QwtThermo
setRange(double vmin, double vmax, bool lg=false)QwtThermo
setScale(double vmin, double vmax, double step=0.0)QwtAbstractScale
setScale(const QwtDoubleInterval &, double step=0.0)QwtAbstractScale
setScale(const QwtScaleDiv &s)QwtAbstractScale
setScaleDraw(QwtScaleDraw *)QwtThermo
setScaleEngine(QwtScaleEngine *)QwtAbstractScale
setScaleMaxMajor(int ticks)QwtAbstractScale
setScaleMaxMinor(int ticks)QwtAbstractScale
setScalePosition(ScalePos s)QwtThermo
setValue(double val)QwtThermoslot
sizeHint() const QwtThermovirtual
TopScale enum value (defined in QwtThermo)QwtThermo
value() const QwtThermo
~QwtAbstractScale()QwtAbstractScalevirtual
~QwtThermo()QwtThermovirtual
qwt5-5.2.3/doc/html/sysinfo.png0000644000175000017500000004017412052741143015675 0ustar gudjongudjon‰PNG  IHDRPŠLÍčĆ IDATxśíÝ{Tgž?ţ§šľ€\‚¨ëęÄdwŔaJ˘&GÄYuł0P"4<Ü2ł:!îzA@qÉâ-9(JFsGcĆ/\El ĐĐőüţ¨ď·żýk)x ŢŻĂ]ŐŐUﮢúÓőtŐSÜŤ7ŔX'éĂ$$$$$$$$$áĹ ŢÝ»wßx㍰°0J©0†RĘóü[o˝ĺćć&BĽ@)˝{÷®›››a6Ł1đ2(Ąµµµ~řáěŮłgÎś••ĄŐj=7ěł0ś^řO&“ŐÔÔ477ëÇ\ľ|YŁŃ i*`Ńőë×7lŘPYYY]]ťššzîÜąśśś‘Î0 /\đärą··÷©S§ôcJJJüýýőŤ&&&fîÜąîîîÉÉÉ]]]úom={öś9sţüç?'&&şşşÎź?˙«Żľ˘”RJ?~ĽyóćYłfyxxěŢ˝[xá˝{÷ćĚ™óĹ_¸ąą>|xáÂ…<Ď Óż÷Ţ{eeeü&H)=qâD@@ŔĚ™3/^|éŇ%aü·ß~űŢ{ďÍś9ÓĎĎďřńăúą=yň$22ŇÍÍÍ××÷ŕÁúă×ŢďîEW Ŕč•––¶aÆŔŔ@KKK•Jĺěě\\\Ľyófý>žźź?oŢĽ9sć$&&vuu #…×>ěł0äóŢ’%KŽ?.žÎÎÎ˙ůź˙yűí·őĎ&%%©TŞ3gÎ߼y333SŻŐj»»»Ďť;÷ŃGíŮłG­V_Ľx1$$$++K >>žRQQń—żüĺęŐ«ůůůÂřÎÎΆ††ŞŞŞeË–=}úôÖ­[„;wî˝zőŞáÎnD«ŐŢĽyłĽĽü«ŻľşvíZ^^ŢË,ű, ąÁú¨ßw0ć=~üX&“©Őę>¦‰ŽŽ¶±±™:ujXX~ěł0ää˝G]ľ|ů˙ř‡ŃČ   ýc™L¶dÉ’'NĽţúë%%%K–,Ń?ŐÜÜÜÓÓ3wî\aă8SSSá±BˇP*•ÂË  Ď ű’ŁŁ#!„R:iҤĆĆFá)SSSKKKaüoűŰśśśőë×———ÇÄÄ ü}ŞŐęÜÜܢ˘˘ÔÔT;;»đđp___BHAAAQQŃ«Żľ:qâDĂwÁqś0čääÔď»#„<Ŕš:uęěŮłźůT»żµµ5Ďó---¶¶¶ú§ľúę«ÂÂÂŇŇRB~ˇß…/z öYś>ţ˝Ť žđďnXŢžiÉ’%ÁÁÁ˙ń˙Q[[›––VWW'Ś·µµ•ËĺŐŐŐB= äÝÖÖ–çůşşş &B Cîy˙ޤw“ć@ŞÇqżúŐŻśśś>ţřăßţö·fffúń–––^^^ŮŮŮŤ¦µµ5...66v -,,ĽĽĽöîÝŰÚÚúđáĂśśśŢ?ßÎ<==“““LLLŚ&ppppvv޵kףGŹzzzţţ÷ż§¦¦Bxžß˛eKmm­N§kll477׿ęÉ“'Oź>ÍĎĎďééimmĄ”ZYYy{{ďÝ»·ĄĄĺáǯ‰/óîÔű0Ž `÷ŹŠŠĘÍÍ=|řđÓ§OŰÚÚűěłÖÖÖ{÷îeffľóÎ;fffÝÝÝ555ťťť‡ę=Cěł0äž÷ďM^ćÂóĄK—VWW/^ĽŘh|RRŇýű÷}}}ýýý»»»·mŰ6Ŕ~ňÉ':ťÎĎĎ/((ČŐŐ544ô™“ůůů=~üř™ĺP&“effň<żbĹ 77·Ť7ş»»GGGB,--######gÍšuňäÉäädŽăěěěBCCß˙ýŔŔ@??ż3fx{{˙ý÷B­Vëăăł~ýúŔŔ@}qô»ÜÜܲłłËËË}||ĽĽĽ*++?˙üóéÓ§ Ď*Š×^{- `ĹŠżůÍoÖ®]ëŕŕđÁ¬[·Î××÷ź˙ůźŤć†}†wăĆ ĂáââbĆóĎť;·gĎž’’ŽăxĆĘK:ţ|JJĘKţŔ”gîéŢý)Ą?ýôSPPĐ•+W†gŻěöY‰{ŢňhęZŚRÚÔÔTTTôÎ;ďČd2Q÷«+V|ţůç]]] üă===Ĺ[Ľ<ěłĐŻŃTđ! .|úôéęŐ«Ĺ^Đ®]».^Ľ8oŢĽĄK—Ž?>""Bě%ŔËŔ> ýzĆe Ěâ8®¦¦fx–5cĆŚ?ýéOĂł,€ŃŽă¸iÓ¦ ŰîůLŘgˇ_Łě`pPđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@Pđ@ä#F=J)ĎókÖ¬),,$„466ĆÄÄhµZ•J•’’B1´··ţ„:ťnÍš5_~ů%!¤ˇˇ©x,gcËľĽ±éîÝ»AAA555}ŚyQ”Ňź~úé%gcRUUUzzz}}˝0••µ|ůňE‹UTTäääčt:ĂÁÄÄÄšy^~ÁóžĘHOűá‡úťĂ˙ţď˙2Źĺl„ů-ű˘Đ¤ /kÁ‚ÇŽS«ŐÂŕµk×|}} !>>>µµµFCµĐŚô´Çűď˙ţo6㱜Ť0że_Žđ¤čĉąąą>śyň$!!áóĎ?˙Ío~sôčŃť;w–——B’’’ĚÍÍĎś9ŁŃh¶oßž™™M‰ŹŹç8®˘˘˘˝˝}Ó¦M#ý`P(]]]JĄ˛»»[.—Ëd2­V«4šŘđłĎP—/Ď0ŹL&3L;˛ńXÎF߲ýB“¦äPJ !uuuZ­6((čСC„öööŠŠŠ­[·ZYY999EFFž={–˘ŃhÎź?ŁV«'Mš6Âéa4puuýć›o!UUU®®®F#ťŽéx,g#ĚÇëŽđ¤…ă8[[ŰÜÜܢ˘˘ÔÔT;;»đđpźććfťN7wî\ý”fff„––™L6iŇ$BĄtňäÉ#Fʰ°°íŰ·>|X8yŹRj88ŇéŽÇr6öăő ol255íîîîěěT©TÇBZ[[ÇŤG)moo×ét™™™”ŇÓ§OďÜąÓÇÇÇÖÖÖÄĤşşZˇPÓ ĆŹO)}đŕÁĉ !<±·Ě+--ŘŮŮ;;[?¸eË–!Ě 0lp„’€‚’€‚’€‚’€‚’ âYš}ÜúA¤{¦H.KÄ»g ;F°[á`9ËŮ3ńD/x“3Ĺ^ڬ€#ĆĂţőů4Är<–łfâá7<<<<<qĎŇĚHO#é˘.`@D<“ÂeC0Zx„‡.!€ř $$Aô®Ĺěä`42ěś a8:ŹŕŽęââ‚)1%¦|Ţ”™ ú€&MÜFㇰ,Çc9a, ŚĽŢM»L}P˛Źĺl„±x 5iŠń›<ć‰yJmžđ< <ńŚĘ‚7Zľ#çĐBNxٞŕĽ(Ń Ţhů¶‹śC 9‡ÖhÉ Ŕ2á€$ ŕ€$ ŕ€$ ŕ€$ŘÓJCCCLLŚV«U©T)))öööâ-k~ţůçřřxJ)Ďó;vě°¶¶f9mCCCpppIIIcc#›9ŰÚÚ !ÉÉɦ¦¦l欩©IOO711áy>22ŇÉɉµśÂ˙äš5k !F[śÂZ`€ŃBÄ‚—••µ|ůňE‹UTTäää$&&Š·¬AŘ»wďÚµk=<űŚÍśzFkR§Ó)•JŽă ›_S˝÷Ćr<–łfâ‰Xđ EWW—R©ěîî–Ë™»-ĎóGŹ---őňňŠŽŽľté›iSRR˘˘˘”JĄ0ČěZ•ËĺK–,ŮşuëÝ»wcbbÍ™››{äČ‘×^{íöíŰü1ł9őŚĘd2­VËrŕ—ax}=#‘†XŽÇr6ÂL<›4]]]żůćBHUU•«««x śÔÔÔöööĽĽĽŕŕ`fÓŢľ};###$$äŃŁG!!!Ěćtuuµ´´$„››†·>ĎóBkˇŤŤ ĎóĚćÔ3JČ~`f‰ř 1,,lűöí‡Öź]Ć”ĘĘJGGÇŞŞ*B……EBB›iOť:Eˇ”.]ş´   ©©‰ÍśáááńńńZ­–R7qâD6sĆĹĹEEEÉĺrJillěäÉ“ŮĚ©g´QJ Ŕ, žťťÝÁĹ›˙K*//7ĂrZŽăNž}úO?ýtĺĘŽăÄX®0˙ššš!ź9Ś^˝oIŃÇ űŃ7$ŢÇĺ Ý1c㱜í™ńÚ˛ýB“ćXĐŐŐőá‡zyy•––^˝ző믿ž6mÚ¦M›F:Hă·¤`9ËŮóńú…#Ľ± ĄĄĄĄĄeĘ”)VVV2™l„ ›6mÚ´iĄTŕСCű÷ď—Ëĺ‘‘‘Ë–-#„|÷Ýwź~úéO?ýdggńî»ďBîÝ»š››ű_˙ő_¶¶¶)))•••2™lńâĹŃŃŃÂmů?~śxéŇ%µZ-Ě Ŕă·¤`9ËŮŘŹ×/Ľ±ŔÁÁaŐŞUˇˇˇŽŽŽóçĎź3gŽ»»»ŤŤŤđ¬V«˝˙~eeĺáÇÓÓÓ—-[ÖŇҲaÆ-[¶üŰżý[YY٧ź~*}úôé|đAgggzzzZZÚ[o˝EQ(ÖÖÖ„ýy+”Ň‚‚‚˘˘˘W_}uâĉ†3155n\ŢÜܬÓéćÎť«ĘĚĚŚŇŇŇ"“É&Mš$ĚgňäÉĂőţ^ ŢXđčŃŁ… ^ĽxŃ‚ă833łwß}W¸a,1¨szMMM§Oźvpp¸sçÎńăÇőOé'¶µµ511©®®V(†s?~<ĄôÁBĄ|đŕ¸ď ` Is,0a‚‹‹KBBÂÇyžŻ««ËĎĎ÷÷÷ďűUOžĎóBkˇŤŤ ĎóĚćÔ3JČ~`f‰ř 1,,lűöí‡Öź]Ć”ĘĘJGGÇŞŞ*B……EBB›iOť:Eˇ”.]ş´   ©©‰ÍśáááńńńZ­–R7qâD6sĆĹĹEEEÉĺrJillěäÉ“ŮĚ©g´QJ Ŕ, žťťÝÁĹ›˙K*//7ĂrZŽăNžR(Ç p”Ňź~ú)((čĘ•+€ăý̱Źĺl„ůxýB“ćŘA)ýë_˙şaÆ€€€ĘĘĘęęęÔÔÔsçÎĺääŚt4€‘‡‚7¦¤ĄĄmذaٲe–––*•ĘŮŮą¸¸xóćÍÇQJżýöŰ÷Ţ{oćĚ™~~~ÇŹ^B)mmmÝşuëěŮł===ł˛˛(ĄÂS‡š7ož§§çŃŁG)Ą”RŤF3wî\ww÷äää®®®‘{Ż/oěĐh4WŻ^}űí·źůlKKˆ Ż\ą˛qăĆ˝{÷ęźJJJ˘”ž={ö믿ľpáÂŃŁG !Z­öţýű•••ÁÁÁéééú)U*Ő™3gŠ‹‹oŢĽ™™™9 ď `H ŕŤŹ?–Éd¶¶¶ĎüáÍÖÖöÚµk«WŻ®««kjjęěěĆ···WTTDEEYYY988üĺ/Yľ|ąđÔúőëÍĚĚ,XĐŃѡźrëÖ­VVVNNN‘‘‘gĎž¶wđ’pŇĘŘammÍóüăÇŹŐjµPó(ĄĹĹĹ………ÂÍŐ ŠŠŠ^}őŐ‰'ę_ŐÜÜĚqśŁŁŁŃÜ …µµ5!D_>›››u:ÝÜąsőÓ™™‰ý¦e.eFcś©ó$Ń oě°±±qqq9qâÄď˙{ýČóçĎĎš5‹ŇÔÔ”‘‘qúôi‡;wîčĂS«Ő<Ď744ŘŮŮB>ýôS˙އ‰¶¶¶&&&ŐŐŐ/tÎ'#Ф9¦DEEĺćć9räéÓ§mmm—.]2¬Ož&+//·´´Ľ~ýúéÓ§…Ç%%%©TŞ3gÎ߼y333S¸łłłˇˇˇŞŞĘŇŇ2!!!11ńňĺË«WŻŢąsç°Ľ'€!€ł4ÇŽ®®®7ŢxCx¬P(vîÜÉó<Çqy-Ą´˝˝˝˘˘ââĹ‹ćććÖÖÖ‘‘‘±±±ŃŃŃÂłćććZ­–RWW§Őj‚‚üüüÄ{;C oěP©TW®\!„PJŻ_żž””tűöí-[¶NÓÇ™)ÍÍÍ===sçÎ…¦Qᱩ©©……Çq¶¶¶ąąąEEE©©©vvváááBOzěCÁk8Žă8îÍ7ßŚŹŹ_·nťPđôuîńăÇĎ{ˇ­­­\.Ż®®Ö÷¤ˇp(ętşĚĚLJééÓ§wî܉‚Ł~Ăk„Ű‹\ż~ý“O>~Ć333ëî©éěě4şŮ·Çq–––^^^ŮŮŮŤ¦µµ5...66Öh2žç·lŮR[[«ÓéÍÍÍE?CGxc‡áoxrąÜÍÍ-))‰âŕŕđÁ¬[·NˇP¬X±âÂ… Ď›CRRŇ'ź|âëë+“ÉĽ˝˝ăââ źĺ8ÎĘĘ*22222˛ĄĄeĆŚÉÉɢľ#ű×7Är<–łfâˇŕŤÓ¦M{^ß䄨¨¨¨¨(áńćÍ› !NNNµwú„µZ˝oß>Ł×ţÓ?ýSuuµ~pĺĘ•+W®ÚđĂ˙aF>" ±Źĺl„™xhŇI@ÁI@ÁI@ÁI@ÁIń,ÍĽüľz뀕‘žöĂ?Śt €Ń GxŁCFzÚHGÝDżor†ŁŘ‹OŔŤ€‘ŽCGx (x (x (x č<Fýb9ËŮcńÄ-xéi$]Ô%ŔXĐű^L}P˛Źĺl„±x"6iâ˛!`‡GxčŘ“V@Pđ@D?K“©źOFŻŢ?ţŔ ŽË¸Łş¸¸`JL‰)ź7ĺ@&€> I$žŔ)s)3ăLťEZŽđ@*xbü&ŹybžR›'<C@<Ł˛ŕŤ–ďĹČ9´^ƨ,x/Jôł4GË·]äZČ9´FKΗÄřĺ†,Çc9a&.KVÖuF>" ±Źĺl„™xhŇI@ÁI@ÁIń7Ľ†††­V«R©RRRěííĹ[Ö üüóĎńńń”RžçwěŘammÍrÚ†††ŕŕŕ’’’ĆĆF6s¶µµ%$$466B’““MMMŮĚYSS“žžnbbÂó|dd¤““k9…˙É5kÖBڶ8!„µŔŁ…/++kůňĺ‹-ި¨ČÉÉILLoY°wď޵k×zxxܸqc×®]S¦La3-Ą”RšśśÜŃŃA^«pqq ţî»ďöď߯T*ŮĚą{÷îýű÷ŰŰŰ×××GDDĽţúë¬ĺ¬ŞŞJOOŻŻŻŤ¶¸N§c-0Ŕh!b“ćµk×|}} !>>>µµµâ-hp~üńÇůóçBśťť›››YN[RR2uęT ÂđZ˝pá²eË8Žswwßłgł9U*•FŁ!„h4ą\Î`Î ;vL­V F  0ZXđt:ťJĄâ8N.—÷ôô· Á)++“Éd<Ďzzz2›¶±±±¸¸xÆ  ł9;::ňňňBBBÖ­[wëÖ-fs†„„,_ľ|ŐŞUAAAk×®e6§žQBťN§T*9ŽS(l`–Mš …˘««K©TvwwËĺĚ]đÇóüŃŁGKKK˝ĽĽ˘ŁŁ/]şÄfÚ”””¨¨(ĄR) 2»Vĺrů’%K¶nÝz÷îÝfsććć9räµ×^»}űöÇĚlN=Ł„2™L«Ő˛€Y"áąşş~óÍ7„ŞŞ*WWWń48©©©íííyyyÁÁÁ&&&̦˝}űvFFFHHČŁGŹBBBÍéęęjiiI177' o}žç…ÖBžç™Í©g”ýŔĚńbXXŘöíŰ>¬?»Ś)•••ŽŽŽUUU„ ‹„„6Óž:uŠB)]ştiAAASS›9ĂĂĂăăăµZ-Ą4..nâĉl挋‹‹ŠŠ’Ëĺ”ŇŘŘŘÉ“'ł™SĎh?˘”20 4ËńXÎĆ~Ľ~‰Xđěěě<(Ţü_RyyąŃ–ÓrwňäIÂđZuppČĎĎ7ĂfN77·C‡Ža3gii©đ ÷g3°!ĆOf9ËŮŘŹ×/\xCŚńS YŽÇr6Â|Ľ~áGobeeeB«×—_~éééYUUŐÇ™ĄĂß•pYY!D§Óéă©T*BČ3ĎÔćx,g#ĚoŮ~ˇŕŔë} tg–>ďÎGâ}\ľĐÚĂŹĺlĎŚÇÔ–í  ±ÔÔT{{űĽĽ<…BAţ .däĚR}<á3š©x,g#ĚoŮ~ˇŕŔcüh–㱜ŤýxýBÁ€!Ćř)Đ,Çc9a>^żp–&H H H H ëţţ÷ż‡‡‡Ďź?˙Í7ßôňňÚ´iÓť;w(Ąb,ëîÝ»nnn}ŹyQ”Ň—ź ŔËCÁcZggç‡~čĺĺUZZzőęŐŻżţzÚ´i›6mé\Ł ÓZZZZZZ¦L™beeebb2a„M›6ť:uŠă¸U«V9r„RúÓO?˝ńƇ¦”Ţ»wďÍ7ßliiůöŰoß{ď˝™3gúůů?~śRŞ?ŇĘĎĎź7oŢś9s»şşćĉ3gÎ\ĽxńĄK—„yj4šąsçş»»'''wuu ă›››#""ÜÜÜŢzë­Ţ§2Ŕ°)s)3úéD#ŹiŽŽŽ«V­ ]´hŃÎť;KKK[ZZ„§<<<._ľL©©©177Ż©©!„\ľ|ůÍ7ߤ”nذ!00đĘ•+7nÜ»wŻ~†Z­öćÍ›ĺĺĺ_}őŐµk×ňňňRÚŇŇ’xůňĺŐ«WďÜąSx*))IĄRť9s¦¸¸řćÍ›™™™Âřřřxžç+** Ďž=;„ë`pPđX·}űöcÇŽ­\ą˛®®nÇŽ~~~gÎśˇ”zzz^ľ|™RzíÚµU«V]ąr…RzĺĘOOOµZ}őęŐŐ«W×ŐŐ555uvvÎ0::ÚĆĆfęÔ©aaaBOµ!üjXWW§Őj‚‚„;ě´··WTTlÝşŐĘĘĘÉÉ)22R¨mŤćüůó111jµzҤIaaaC˝V^zZaÇqÓ§Oź>}zppđ/żü’žžž––öÖ[oą¸¸čtşü±¦¦¦  ŕčŃŁ÷îÝ»|ůňż˙űżB ŠŠŠ^}őŐ‰'ÎM&“9:: ʧNťÚŘŘ8Ŕ ¶¶¶ąąąEEE©©©vvvááá>>>ÍÍÍ:ťnîÜąú)ÍĚĚ!---2™lҤI„JéäÉ“‡jmŔŘĆ`˙ú†XŽÇr6ÂL<<¦=zôháÂ…/^´´´$„ššľűî»Âť`e2ŮüůóKJJxžwttś={ö±cÇş»»˙ĺ_ţĄ©©)##ăôéÓwîÜ9~ü¸~†<Ď×ŐŐ 5ďţýűŻĽňŠáâLMM»»»;;;U*Çq„ÖÖÖqăĆQJŰŰŰu:]ff&ĄôôéÓ;wîôńń±µµ511©®®V(Âô‚ńăÇSJ" ±Źĺl„™xhŇdÚ„ \\\@‚p„’€‚’ b“f^~x3 Śô´~řa¤SŚV8Â2ŇÓF:Ŕč&úI+“3Ĺ^ڬ€# 8ÂIŔe 0ňěďŘËńXÎF‹‡‚#ϰ7}S”,Çc9a,š4@Pđ@ÄmŇĚHO#é˘.`@D<ÂĂeCŔŹđĐ%°żá€$ ŕ€$~SW„Ś^˝Żg€2žpGuqqÁ”S>oĘL}@“&H H HCOŚßä1OĚSjó€çÁÝ€Śź›Ăr<–łfâŤĘ‚7Zľ#çĐBÎ1ĎpŐ1ňiĺx,g#ĚÄc¨I@<˘ĽŃňm9‡r­Ń’€e8ÂI@ÁI@ÁI@ÁIń˛„†††­V«R©RRRěííĹ[Ö üüóĎńńń”RžçwěŘammÍrÚ†††ŕŕŕ’’’ĆĆF6s¶µµ%$$466B’““MMMŮĚYSS“žžnbbÂó|dd¤““k9…˙É5kÖBڶ8!„µŔŁ…/++kůňĺ‹-ި¨ČÉÉILLoY°wď޵k×zxxܸqc×®]S¦La3-Ą”RšśśÜŃŃA^«pqq ţî»ďöď߯T*ŮĚą{÷îýű÷ŰŰŰ×××GDDĽţúë¬ĺ¬ŞŞJOOŻŻŻŤ¶¸N§c-0Ŕh!b“ćµk×|}} !>>>µµµâ-hp~üńÇůóçBśťť›››YN[RR2uęT ÂđZ˝pá²eË8Žswwßłgł9U*•FŁ!„h4ą\Î`Î ;vL­V F  0Zx„§ÓéT*!D.—÷ôô· Á)++#„čtş/żüŇÓÓłŞŞŠÍ´ŤŤŤĹĹĹ_|ńEee%ax­vttäĺĺýíoS*•›7of6gHHČňĺËýë_߼ysßľ}ź}ö›9őŚÖ¤N§S*•Ç) 6÷ĆřŻ,Çc9a>^o"á)Š®®.Jiww·\Î\f<Ďřá‡ÇEGG3›6%%%**J©T Ěć”ËĺK–,9xđŕÖ­[Í™››{äČ‘˘˘˘ŻľúęŔĚćÔ3J¨P(´Z-ĄT«Ő˛¸7ˇUöOúÓŠ+rrrF:Ž1–㱜Ť0Ż7 ž««ë7ß|C©ŞŞruuoA“ššÚŢŢž——lbbÂlÚŰ·ogdd„„„^o"~C Űľ}űáÇőg—1Ą˛˛ŇŃŃ±ŞŞŠbaa‘ŔfÚS§NB(ĄK—.-((hjjb3gxxx||Ľpđ7qâD6sĆĹĹEEEÉĺrJillěäÉ“ŮĚ©g´QJÜ[ßͰ#ŢÓqßÍď#Źĺl„ů-Ű›ĎÎÎîŕÁâÍ˙%•——Ťa9-Çq'Ož$ ŻU‡üü|Ă1lćtss;tčá6s––– zoq6÷Ah†U*•Ďl7H7ˇéi$]śp˙·ŃÍx,g#ĚoŮŢpá9ë%›a3ŇÓDő˙°Źĺl„ůx˝qFE¸¸¸8((hCŔ0{ćž.ŇîßŘظ}űöžžˇö•W^ňEĽ –㱜Ť0ďy˙ÉŁă,/˝m‡°Źĺl„ůx˝ˇI$$$$$$FĆÝ»wÝÜÜú3"Ţxă —^ž7ń<==ź÷,Ą´ß7E)ýűß˙>ţü7ß|ÓËËkÓ¦MwîÜx`J©R:đW a eÓŻ™¬˘ˇ‚‚đ˙sýúőëׯź8qBĄR]ż~ýĆŤ}÷’ĄÓé^fq]]]~řˇ——WiiéŐ«WżţúëiÓ¦mÚ´éEçó’1¤Xtâĉ€€€™3g.^ĽřŇĄK”RJ©Fى‰‰™;w®»»{rr˛pă¤{÷îÍ™3ç‹/ľő(RúřńăÍ›7Ďš5ËĂĂc÷îÝÂŇ.\¨ŃhŢxă Jé·ß~űŢ{ďÍś9ÓĎĎďřńă<Ţjiiiii™2eŠ•••\.ź0a¦M›Nť:E)˝páÂÂ… yž¦|ď˝÷ĘĘĘ(ĄF+‡˛hŃ"}Śg®%á(ęŔłgĎž3gÎź˙üçÄÄDWW×ůóçőŐWâ­7C”Ňććć77··Ţz«w‡Ć„Ţá‡0 °…RÚŇŇ’xůňĺŐ«WďÜąSx*))IĄRť9s¦¸¸řćÍ›™™™ÂřÎÎΆ†áć'≏Ź'„TTTüĺ/ązőŞĐ[úéÓ§---˙ú׿¶´´lذ!00đĘ•+7nÜ»wďgëŕŕ°jŐŞĐĐĐE‹%&&–––¶´´ĹrÎś9Oź>˝uëĄôöíŰŹ=Z°`Á“'OzŻśňňrKKËëׯ“çŻ%­VŰÝÝ}îÜąŹ>úhĎž=jµúâĹ‹!!!YYYb¬®gŠŹŹçyľ˘˘˘°°đěŮł˝'x^ř!‚Ě>îëęę´ZmPPp‹öööŠŠŠ­[·ZYY999EFFę?1)Ą½EŇÖÖvîÜąm۶ŮŘŘ899­_żľ¬¬L˙,Çq¶¶¶WŻ^]˝zu]]]SSSggççĚq\LḺcÇV®\YWW·cÇ??żŠŠ Žă”JĄŹŹOee%!¤ĽĽÜĎĎĎÔÔô™+GŻŹµÄq\hh¨©©©··7ÇqëÖ­355]°`AGGÇЬŁţh4šóçĎÇÄĨŐęI“&………>K)mkkÂ[[[Oš4É0ü@_šŔˇxäć楦¦ÚŮŮ…‡‡űřř477ëtşąsçę§433šš ÷ĎăÇŹe2™ŁŁ#!„R:iҤĆĆFŁi ŠŠŠ^}őŐ‰'ľčü§Oź>}úô>ř łł3===--ÍßßźňŰßţ6''gýúőĺĺĺ111„µZÝ{ĺčçÓÇZR(ÂÝőd2™áăŤ:h---2™lҤI„JéäÉ“Ť&hnnîééчç8ÎÔÔt ŕŔČ055íîîîěěT©TÇBZ[[ÇŤG)moo×ét™™™”ŇÓ§OďÜąÓÇÇÇÖÖÖÄĤşşZˇPÓë ŠÁÖÖ–çůşşş &B|““óöŰo Oét:ýy%Ožü@Á€‘Áq\ff&Ďó+V¬pss۸qŁ»»{tt4ÇqVVV‘‘‘‘‘‘łfÍ:yňdrr˛đ’¤¤¤ű÷ďűúúúűűwwwo۶m8ňÉ':ťÎĎĎ/((ČŐŐ544”bkk;aÂŹW^y%44ôý÷ß ôóó›1c†··÷÷ßßďl9ŽËĘĘ7nÜď~÷»™3g®ZµĘÎÎîř~??żÇŹë뫥ĄeŹAFz-ő-11‘âçç(°5 Qwt User's Guide: Member List
QwtScaleArithmetic Member List

This is the complete list of members for QwtScaleArithmetic, including all inherited members.

ceil125(double x)QwtScaleArithmeticstatic
ceilEps(double value, double intervalSize)QwtScaleArithmeticstatic
compareEps(double value1, double value2, double intervalSize)QwtScaleArithmeticstatic
divideEps(double interval, double steps)QwtScaleArithmeticstatic
floor125(double x)QwtScaleArithmeticstatic
floorEps(double value, double intervalSize)QwtScaleArithmeticstatic
qwt5-5.2.3/doc/html/class_qwt_spline_curve_fitter__inherit__graph.png0000644000175000017500000000723612052741160025540 0ustar gudjongudjon‰PNG  IHDR•pIĄ)bKGD˙˙˙ ˝§“SIDATxśíť{P×€O !Cx„‡Đ6Ö–†ˇ-…†G…*,#Ó ‘Á±´Q‡NiˇupĘČTVmE´N‘Wl­^ćć„@‹U,„‡Ä‚a`Ŕ$D$!{˙Ř{×($ ŕĆýţ`vOÎţÎďě·»'9 »8‚j1[ď0 ó‡n0čó‡nđnßÚÚš››k”TžC¶oßžťťmHśď?wíÚŐÚÚJ§Ó ň|244týúu÷żˇç€N§WUUçyŁŞŞŠÉd˙Đ ćÝ`ţĐ ćÝ`ţĐÍÚů …ÉÉÉ7n´°°pssŰżżT*Őż‰@ °´´DVoܸ±cÇkkëŔŔ@.—kÄônĂĂĂH žÖČ_ooďŰożMˇP'''kkk˙ůç:ťţT…ŃŃŃýýýCCC)))qqqmmmFL’H$BŹóâ‹/zzzÎÎα#FBBBBBÂS«˝÷Ţ{űöíÓ.Ńh4!!!YYY۶m+,,„ hddpôčQ‚Äb±v’‰$44ô›oľŃŽťť}äČ‘ŢŢ^dż#Ë˝˝˝›6m:qâ™LŢĽysNN\all ŹÇ …‡îŮłÇÉÉÉŐŐőŕÁ*•J;Ž6pąD"Y¸ë$ɢq¦{{{őě“ĘĘJĂ÷˙ZśSSSŤŤŤl6[»‡Ăeff^ľ|9**ęÚµk€ććf …ŇÔÔhjjňńńAö)‘Häńx‰‰‰ÚŽ=úůçźëjT,wttôőőĺĺĺq8¸°¦¦&((ČÝÝťÍfĎĚĚôôôđx<ŹWRR˘ż ÚĽŕŕŕ°h¤iOOĎí°ĺ` ˙Ąśýýý8NĄR=QŢŢŢnmmÝÝÝmmm­R©222rrr(ŠZ­Ţ»wovv6˛§„B!‡›źź_\×ů¸˙>A2™ĚŇŇR @ôî»ď–••)•J •Já­üüüŕM´ÉĎĎ"ć zâŔMëÇ(çźćĎžŠŁŁ#‡‰DÚĺ###7nôňň˛µµmkkknn®¨¨¨¨¨hooojjúî»ďšT*®˙ŇK/!…ÝÝÝ­­­!!!‹6jaaáčč P(QQQµµµ)))íííWŻ^‹Ĺ*•ĘÖÖV;C‘H\ÖP§+Ňô°×O …˛uëÖââb¤¤¨¨h`` ¸¸8&&ÉápFGG_{íµĐĐĐššš‘‘‘ŔŔ@íAAA?ţřŁvŘÂÂÂşş:ô˙)ŕááaäU‡,3™L‡SSSK&“ťťťÍÍÍ‘óćáÇ7oŢ\AżtĹŃnzŐ1đü]âű—žž*•ĘfłBˇČËË#ŽŽŽăăăq82™ AĐůóçÉd2Á€ H ŕńxĄR AĐ_ýeeeőŐW_Ýľ}{`` °°@ üńÇŁŁŁ€şş:‰DőÄ%fzzzÆ [¶l©ŻŻ‡KLfjjŞD"Űąsgff¦ţ÷/ÚÉhgµô8 1ĘősŤüAt÷îݤ¤$ggg ʬ¬,??żĽĽ<‚¦¦¦±cÇ üđĂÉĺrOOOkkkXssssxx8™L¶±± ârąp似< …âęęúóĎ?/ę‚ &“IŁŃ4 Ľ:99™””DĄR©TjZZÚĚĚĚSý!É "Y-=ÎBŚâĎß˙VöýŃěě¬@ đőő5$ôdŕţ_Ďů3KKËçVž±Ŕć?Ń ćÝ`ţĐ ćÝ`ţĐ ćÝaţS(ž>}Úđ8Ď·nÝ2B?˙;vĚI¬8KË-ććÖ띆Nčtú:Ďż<Ë\ż~—Á(IM 9r„±Ţଦ<ţ]şt ţ«VkÖ;—ŐÂdý)•j§ “ÍđxwÖ;ťŐÂdý56 ffćććfŽ1Ţ)<“¬żÚÚ[ććfµZSWשP(×;ŁUÁ4ýMOĎýűßÝjő<Ľ:7§ţĎnŻoJ«„iúÓ–03ĂŐÖó—˘Ď¦éݶ¶MűG(jµćÚ5ÁÔ”bSZ%LĐßÄÄ4Ź÷Ďüücź ú׿:×+ĄŐĂý]ąÂ_XAPuµ ^BMĐ_MÍÍ…“J týúݱ1Ůş¤´zšż{÷¤·n j4‹L š››ýöŰ"§&Ş15żýÖˇkBW­žŻ­5µňkńűůµdóf' ˛úđᜥ%Ź˙ßaęíýÂ:ĺµZň÷W×ý'O˛vî4Ů_)šÚőóyó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0čó‡n0(ą¨öóĄL"‘ffFZď,ŚLHHbíŃ˙żóxĽ×_=!!a3Ăx*·oß®®®FV»““ShhčZg„aŘř‡n0čó‡n0čó‡nVr˙,±X\^^~óćMą\NĄRCBBX,™LÖł‰H$JKKărą€±±±3gÎüý÷ßrąÜÁÁ!,,,))‰H$ęßP;²ĺĺĺ]]]yxx¤¤¤řůů-7.D"‹Ĺz˘°ŞŞJˇP<‘öŠó×ϲý ~úé§Ű¶műöŰoťśśD"QYYYFFFii©~…0:tN§ź:u ~–lIIIqqńÁőoHŁŃVĐůţţţC‡ĄĄĄ}öŮgx<ľ±±ń‹/ľ8~üř«ŻľşÜPş ‹&ftU‹˛ěëçńăÇĂĂĂŮl6ŤFł´´|ĺ•W lmmĎź?ŕŔř™Ľăăăaaa€‰‰‰°°0‹ĄR©Â„BáđđđîÝ»©TŞ……Ĺ–-[Řl¶BˇD˘?ü°şş:..ŽÁ`ś:uj~ţŃ=¬E"ŃűᅬT»rĺJLL Á¨ŻŻ‡+ĚÎÎĹĹĹĹÇÇź>ţĎ?˙ hootvv’H$>źŕóůçÎť#×®]swwwssËÍÍmii‘ËĺŹ/żü%‘HÚŰŰĎž={ěر–––šššEÓJĄBˇ°˘˘‚Á`|˙ý÷paqqńÜÜ\yyů‰'ř|ţĄK—fffř|~xx¸ö¶éé鉉‰ş:8>>Ţßßá‹ŐÜÜ 655y{{»¸¸,lB˙±A:Ž,ŘŘŘ,išFŁé«ÍňüIĄR€““Óĺ...“““ţţţ]]]óóóťťť Ł««KŁŃđůü€€€Gí™™•””ĽóÎ;uuu}ôQJJJYYŮÜÜüŞFŁůä“OlmmÝÝÝSSSu]‚ćććX,‰D ™šš¨Őj.—»oß>WW×ôôôß˙]&“ěíí—ŢAµZťžžnoo,‹á‡™744DDD,Ú>«~úé§§6±h¤éĄg –;ţŮÚÚîßżďââ˘]ţŕÁ{{{7772™|çÎťÎÎÎÜÜÜúúúľľľŽŽŽýű÷kW&‘H±±±±±±ÝąsçôéÓ_ýu~~>‡Ă!‘i4šD"Yż˛˛R"‘(•ʡˇˇ ."ńKJJ¤RéŕŕŕŮłgźşô@ ¶nÝZZZ*“ɤRi~~>ř€ËĺĆĹĹ9;;×ÖÖŢzë-•J_ťŢxă …B~/ĽđBLL ŤF+((hmme±X;wîĚÉɡŃh€??ż={ödffúűű3™ĚĄ'–••5??źśśĚb±ěěěŇŇŇžžž………ÝÝÝ{÷îMKKkii)((đňň˛łłc±X‡Ţ˝{·®Ł„H$ŇétĄRéëë«§ ý '‰đ‚\._A]<şň®]»$I^^Ţ ˘(•J‘HôňË/Ż8đřg| ]466>|±fśů3 ĺa¬ lţÝ Qwt User's Guide: Class List
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
oCQwtAbstractScaleAn abstract base class for classes containing a scale
oCQwtAbstractScaleDrawA abstract base class for drawing scales
oCQwtAbstractSliderAn abstract base class for slider widgets
oCQwtAlphaColorMapQwtAlphaColorMap variies the alpha value of a color
oCQwtAnalogClockAn analog clock
oCQwtArrayDataData class containing two QwtArray<double> objects
oCQwtArrowButtonArrow Button
oCQwtClipperSome clipping algos
oCQwtColorMapQwtColorMap is used to map values into colors
oCQwtCompassA Compass Widget
oCQwtCompassMagnetNeedleA magnet needle for compass widgets
oCQwtCompassRoseAbstract base class for a compass rose
oCQwtCompassWindArrowAn indicator for the wind direction
oCQwtCounterThe Counter Widget
oCQwtCPointerDataData class containing two pointers to memory blocks of doubles
oCQwtCurveFitterAbstract base class for a curve fitter
oCQwtDataQwtData defines an interface to any type of curve data
oCQwtDialQwtDial class provides a rounded range control
oCQwtDialNeedleBase class for needles that can be used in a QwtDial
oCQwtDialScaleDrawA special scale draw made for QwtDial
oCQwtDialSimpleNeedleA needle for dial widgets
oCQwtDoubleIntervalA class representing an interval
oCQwtDoubleRangeA class which controls a value within an interval
oCQwtDynGridLayoutLays out widgets in a grid, adjusting the number of columns and rows to the current size
oCQwtEventPatternA collection of event patterns
|oCKeyPatternA pattern for key events
|\CMousePatternA pattern for mouse events
oCQwtIntervalDataSeries of samples of a value and an interval
oCQwtKnobThe Knob Widget
oCQwtLegendThe legend widget
oCQwtLegendItemA legend label
oCQwtLegendItemManagerAbstract API to bind plot items to the legend
oCQwtLinearColorMapQwtLinearColorMap builds a color map from color stops
oCQwtLinearScaleEngineA scale engine for linear scales
oCQwtLog10ScaleEngineA scale engine for logarithmic (base 10) scales
oCQwtMagnifierQwtMagnifier provides zooming, by magnifying in steps
oCQwtMathMLTextEngineText Engine for the MathML renderer of the Qt solutions package
oCQwtMetricsMapA Map to translate between layout, screen and paint device metrics
oCQwtPainterA collection of QPainter workarounds
oCQwtPannerQwtPanner provides panning of a widget
oCQwtPickerQwtPicker provides selections on a widget
oCQwtPickerClickPointMachineA state machine for point selections
oCQwtPickerClickRectMachineA state machine for rectangle selections
oCQwtPickerDragPointMachineA state machine for point selections
oCQwtPickerDragRectMachineA state machine for rectangle selections
oCQwtPickerMachineA state machine for QwtPicker selections
oCQwtPickerPolygonMachineA state machine for polygon selections
oCQwtPlainTextEngineA text engine for plain texts
oCQwtPlotA 2-D plotting widget
oCQwtPlotCanvasCanvas of a QwtPlot
oCQwtPlotCurveA plot item, that represents a series of points
oCQwtPlotDictA dictionary for plot items
oCQwtPlotGridA class which draws a coordinate grid
oCQwtPlotItemBase class for items on the plot canvas
oCQwtPlotLayoutLayout engine for QwtPlot
oCQwtPlotMagnifierQwtPlotMagnifier provides zooming, by magnifying in steps
oCQwtPlotMarkerA class for drawing markers
oCQwtPlotPannerQwtPlotPanner provides panning of a plot canvas
oCQwtPlotPickerQwtPlotPicker provides selections on a plot canvas
oCQwtPlotPrintFilterA base class for plot print filters
oCQwtPlotRasterItemA class, which displays raster data
oCQwtPlotRescalerQwtPlotRescaler takes care of fixed aspect ratios for plot scales
oCQwtPlotScaleItemA class which draws a scale inside the plot canvas
oCQwtPlotSpectrogramA plot item, which displays a spectrogram
oCQwtPlotSvgItemA plot item, which displays data in Scalable Vector Graphics (SVG) format
oCQwtPlotZoomerQwtPlotZoomer provides stacked zooming for a plot widget
oCQwtPolygonFDataData class containing a single QwtArray<QwtDoublePoint> object
oCQwtRasterDataQwtRasterData defines an interface to any type of raster data
oCQwtRichTextEngineA text engine for Qt rich texts
oCQwtRoundScaleDrawA class for drawing round scales
oCQwtScaleArithmeticArithmetic including a tolerance
oCQwtScaleDivA class representing a scale division
oCQwtScaleDrawA class for drawing scales
oCQwtScaleEngineBase class for scale engines
oCQwtScaleMapA scale map
oCQwtScaleTransformationOperations for linear or logarithmic (base 10) transformations
oCQwtScaleWidgetA Widget which contains a scale
oCQwtSimpleCompassRoseA simple rose for QwtCompass
oCQwtSliderThe Slider Widget
oCQwtSplineA class for spline interpolation
oCQwtSplineCurveFitterA curve fitter using cubic splines
oCQwtSymbolA class for drawing symbols
oCQwtTextA class representing a text
oCQwtTextEngineAbstract base class for rendering text strings
oCQwtTextLabelA Widget which displays a QwtText
oCQwtThermoThe Thermometer Widget
\CQwtWheelThe Wheel Widget
qwt5-5.2.3/doc/html/class_qwt_analog_clock__inherit__graph.md50000644000175000017500000000004012052741137023770 0ustar gudjongudjon6cf13c2a3208bb3ce722706cf40ced37qwt5-5.2.3/doc/html/class_qwt_scale_engine__inherit__graph.png0000644000175000017500000001416612052741160024101 0ustar gudjongudjon‰PNG  IHDRTpÎşvbKGD˙˙˙ ˝§“+IDATxśíÝw@ÉţđŮz" EäTT,Řő»'‚Ň‹íĹ# ¶§gᔂx"Ô,€íô‰ĺ©pçă'Š  ŠR¤†zHöý±ď—ËADJ’2źż’ÍîĚw6ó%;Ëě.‚˘(€ Hţđ‚ |Ŕä‡ 9“‚äL~’S$Ľ<>üđáCĽŁĚ8`aawĎöK ‚ ăĆŤÓŃŃÁ;ÁéíŰ·VVVWŻ^Ĺ;ÁţňK’ŁŁŁ••ŢQ Nx‡0ŘŔ1?É)ü$§`ňCś‚ÉAr &?É)x¶_ÖJKKŮlö‹/¸\.ŤF›3gއ‡‡ššZ›úúú&%%ĘËË###_˝zĹĺrµ´´ćÍ›çć榨¨ŘýDKű©‡‡G‡…ű÷ď·´´”TP?“_¦ ~řákkë“'OęččFEE1ڰ°°®ó˘č¶mŰfÎśůË/żP(”‚‚‹şuëV I&“ű·†††0óű?xŘ/S§NťZ¸p!“É444TRR=zôˇC‡ÔŐŐ/\¸pĺĘ@UUŐĽyóbccŐŐŐóćÍóđđŕńxóćÍËĎĎ/..öńńˇŃh ŁFŤb2™ÍÍÍXáMMMGޱµµµ··ŹŠŠÂ~úôiăĆŤ‹/vrręś---!!!vvvgĎžĺóů_ŠĽ°°ĐŮŮůÎť;XůŹ=VlccăěěüŕÁE‹a+ _ÝŞűőBŇ“_vššš^ż~íŕŕ şA‡?ţřcĆŚééé€ĚĚL•ŚŚ @FF†±±qLL ™Lţ÷ż˙=bÄ##Ł˝{÷¦¤¤pą\€±±ńž={°˘BCCëëëcbbNžźďîîîáᡡˇáëë ÄŤůY,Ö—Z´yófeeeWW×;v,]ş”DęÖ±¤Řz!×óK ‚ űöíëĹ%˝mmm………#GŽ”BPR÷ŕÁiÓ¦aÇ˙)))çĎźgłŮҨ(00P[[^Ď/Ađ— 4ó)))MMMĺĺĺqqqŘÉ h@€Éő “ɬ««sttôöö¦ÓéŘÉ h@€gűˇ>ŃÔÔ Â; ¨7ŕ/?É)ü$§`ňCś‚ÉAr žđ“¤—/_644ŕĹŕTRR˘­­Ťw L~‰177żsçÎť;wp©ťDRWVŁ˘2ľˇáeccşd §P,••ŤššŢ67çňů\ÉŢ}6lŔ«ęA ÎđŘŞ«oŢLŹŤ}ž•U‚ Š˘GŹ®rq™)ŮZŽűWHČ}AQtŇ$Ă5k,ľűn’şşŠdkd &˙€ÔĐĐzăĆ«ŘŘ˙Ľ~]D$ÚŰů‰8eŠabâÝąş¦Gx<ľ•ŐáÂBźŹ"B"ÚŰffĂVݶ°µťLˇ(I¶:H6`ň$<˙É“ś+Wţ/)) EŠ˘Á__‘Hxřp›‰‰®4ŞNMÍ··g‰ö!ŔÜą&NNćK–L “‰Ň¨’üCyy}TTrll*‡Ă% |ľ Ă d2ŃÝ}övŇ‹Á¸řŰommď·G$Á!ĘÓüüji}ýN¤P˙Ő70üúëóĐЇĐ9óP©JŰ·/•j ű÷Ż$“Éť—óů|Ekk›Îźvď^¦Tc€$&˙ŔŕâbˇĄE!‘Ä_(Š;J{ě­­M9xĐ;ÔďŚD"šš¬Ze.Ő ‚É?0ĐéC˘Ł˝ĹÝ ÉD++“ĺË'É ŚU«¦››Ź ‘:Ží DMMÍöQT„˙<0`ňS§9˛ €Î?ĽčĎ?/›9vĚYěňČH Ů„ILţٶ¶)!ᥞ•Hüë[#‘~~‹ŚŚ´d†±±61_t‚ `äHťĂ‡ďVVâ6˙ęüCFF‘µőŃ‚Nt´ďś9ٰމľľĆ?XË8&s!ť>ü“HD'§‘‘Ţ55ŤóçůăŹ÷2ę5ü@||ÚĘ•§GŚĐşwĎ„ˇ,–›¶6•H$ŕŕA{Ył•”Č?˙ü=Љ0z4ýçźż76ÖľsgóÔ©FÎÎá‘‘ĎdÔK(ÔŹńů‚oëëo kkk.ĎÎ.16ŢćîclëÖ±'OŢ_\\-\"Ž»§Żże۶+˘ŃBýśäÓŐ×·0ž={ô˝««„§ëKĎ­[ŻýýcMM ""Ľtt(x‡}Lţ~Ş  ĘŰ;˛˛’á5c†1ŢáôLvv‰—WT[[űůó^S¦ Ç;H<8ćďŹRRŢ-]‚˘ŕöíÍ.ócÇęß»·eÔ(ş˝=+..őë@x€żüýNXأÇď.\hzú´‹ŞŞ"Ţáôź/ľöČŐufPĐ÷đ˛źţ&?Âăńw튿|ů?»v-˙Ç?ćKüĘ\\$&ľ 333qĽ˝ŁĘËëĎžuź3g4Ţá Z0ůĄBÎçđô]cc+“yůţý¬ť;—1˛ľ=±ś€É/y))yë×ÇččP˘Ł}dyGýAEŃ3g:ô›­íäăÇť•”Ä<&ę üvţüłź~şą`ééÓ.jjň>‡§ď>üsÓ¦‹††´¨(źˇCá$ &żÄŔ9DQ´¨¨hýúőNNNÂ%@SSóéÓ§ŘŰÓ§OĎź?ż¸¸ö LŹ“ż®®Ž@ |řđˇĂňřřř‘#G;vlٲe(ŠĆĹĹQ©ÔĄK—bŻ'Nś(Ú®“_YYyÓ¦MuuuÔÓÓĂVđńńqss«¬¬|˙ţ˝ąąů‰'P]ąre```sssDD„ŽŽ¶ą‚‚‚··wiii{{űřńă—-[–XUUŐˇFOOO[[ŰŠŠŠěěěaÆ%$$|©@a´ťcčâkŰ OOĎ+V”••ĺĺĺMť:µó×Üý¶wAĆÉ/Ą.˘¨“““ŤŤMyyů»wď&Lpřđaô űPH´¨’’@CCö699YWWö ˇ'˙ű÷ďéüg&==ťBˇdeeQ(ŹÇ`0vďŢMĄRŰŰŰ7nܸcÇŽî'? ˛˛EŃ·oßb ŰÚÚČdrmm-¶ňăÇŹ§M›†˘čźţŮŘŘČăńŘl¶čćŘšuuu,ËĆƆFŁŤ;öÇlllÄ $‘HÂţš’’’––öĄ»«®Ź?~©$)??+!11±ó×Üý¶wAĆÉ/Ą.ŃŇŇB „»+>>~„ _Ú‡B˘E˝{÷ŽH$ ?ĘĚĚTSSCaŻř=ľňA[[AÂÂBcccŃĺź?ÖŐŐ555UWWOKKKNNŽŤŤŤŤŤMOOúôé™3gş_…‚‚‚––€@řß)‰ŇŇRʧ®®. 55ŐŐŐAaƉnŽ}  R© Á` (š––¶sçN—ÄÄÄŇŇR@0bÄlµŮłgc/ÄŘu ŠŠŠťÇf999b[!ŚŚŚ°·ÂÚ{×öţCJ]˘¬¬ Ü]ĆĆĆĹĹĹÝهBjjj|>ż±±QUUP[[‹í:Ř+0=>áGĄR---E/ö ůřńchh¨­­-`É’% eeecÇŽµ˛˛ş~ýúçĎźgÍšŐý*:ß!‹N§‰Dáßą†††/^p8ź_~ů%--íŔť7ß°aµµµpáôéÓ“““±ĹĹĹاwďŢ˝qăĆ— ě"†ž¶đéÓ'ěíÇŹ{Ýö.ę•=)u ]]]đ÷ÝĄ§§×ť}(¤§§GŁŃ^˝z…˝MOO=z4ěB˝9ŰĎb±.^Ľ¸yóćÜÜÜ–––úúz“WŻ^ýóź˙,]ş4<<|Ö¬Y‚XYY………Y[[“ÉdAř|>ŹÇĂ ©ŃÔÔÔuŤŠŠŠ[¶láp8kÖ¬9yňä˙]H¤ęęęŁGŹňůüşş:Ń­ÜÝÝź>}zěرâââ–––ÜÜÜ   +V`ÚŰŰp8śĽĽĽM›6ńůü® CŹö›˘˘˘“““É,//˙đáCPPPwnŘ÷ze@]BQQŃÎÎnóćÍyyyűöísqqéé>tssŰ˝{wIIÉ›7oBBBÖ­[{Ĺ_ş|ɇÜÜÜčtş‚‚‚±±±żż˙´iÓöíۇ˘h}}=™L>~ü8Š˘EEE€Eą\î1c(Ęďż˙Ţ!±Ă?Ń×555nnn4ŤFŁůúú655ˇ(ş˙~*•úÍ7ßܸqcěر ,č0zĽwĄĄššš˛˛˛‰‰ÉŽ;Z[[±ŹŞŞŞVŻ^­ˇˇˇ§§÷ÓO?a ».°s bGwL&ł‹V¬Ył†JĄŽ=:,,ŚBˇ Ýużí]ýŮ~T ]EQ‡łzőjMMM}}ýíŰ·cgűĹîCˇ ©©ÉÝÝ]UUUKK+00[{¦—ÉßYssszzzď¶•/^,++Ă^'&&Ž;Vµŕ’üťI©KČfĘ^˝BbÓ{•””ĚĚĚ$UÚ`uăĆŤ]»vŐ××9rVRęoâŐ"8·_¦X,‡Ă:tčĉ‡Ž ‰ˇ|űŻÁ›śÉ”®®îÍ›7ńŽb`|űŻÁ_~’S0ů!HNÁä‡ 9“‚ä”~ .”}•——K°´gĎžÁ.1tîKţ… zzz666Ę0$Hň444\\\$RÁH9î:÷ ř N’SpĚAr &?É)ü$§`ňCśú/%ĂpÁĚHIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_curve_fitter__inherit__graph.png0000644000175000017500000000711312052741153024162 0ustar gudjongudjon‰PNG  IHDR•pIĄ)bKGD˙˙˙ ˝§“IDATxśíť{LS×ŔO_@±´@…Zś`'F؆y 2# Ä„@q6× ›ÁL#3ÎhÖˇSd!{d‹Ŕ e›:26‘‡§ŢRµÂhĹ•GE(´—Ţßwąż;(Ďę­÷ó9=Ţűý~ďůÜö\Nń^ Ă€·Ť]^ţđ áßţđ UĎý›ššŽ9bR^@vîÜ™››«O’ž×ź»wﮫ«sww×'Č‹ÉĐĐĐÝ»wő}ßww÷ĽĽ<ýăĽhÔŐŐ=zTĎ Äü‡oř†đ‡oř†đ‡o pýąDäryqqńíŰ·ÇÇÇŮlv`` ŹÇc0 ě"•JÓÓÓkjj—b±¸¸¸¸ŁŁ†aggç´´4oooC•'•Jy<ެΟ~úIĄR!5 Ĺ̪ʸ¬‘żľľľ?ü044ô«Żľ˛··—JĄçĎźçóů……… +D‘H$HOO?xđ •J­««;|řđ™3g¶mŰf¨"i4šN+ω*ť¬Ńçç™3g²˛˛-,,^~ůĺ'NX[[—””|üńÇĺĺĺ€áááŇŇRŔČČHHHŹÇÓh4!!!JĄ˛°°099966ÖÚÚšÁ`DGGÇÇÇ777KĄŇ·Ţz É‚¶ĄRéž={D"QTTTrrň÷ߏl066¶sçNą\>55uęÔ©¸¸¸„„„˘˘˘™™™ů*Gb*•J´lUsă`SKĄŇŐصđ799ŮÚÚš€í$‘H ýő—ŻŻoKK  ˝˝ÝŇҲ­­ ĐÖÖćěě|áÂŤvíÚ5ŤÖÖÖ†Ť‘‘‘śś<_Ňááa‰DňăŹ?ňxĽĆĆF¤łľľŢĂĂËĺLOOź={¶­­­ŞŞjáC`±Xh1hĹb錦vtt\Ń€-µđ766°··źŐĎĺrGGG}||:::fffÚŰŰăăă;::´Zm[[›ŻŻ/şĄR©ŘÚÚ.=)A¶¶¶rą\&“jkkĂĂĂ!Ş©©ÉĚĚd±Xţů'yWˇüđĂ‹¦ĐM˝ôjWĚZĚÖÖÖ€ˇˇ!.—‹íň䉭­íćÍ› Ć˝{÷ÚŰŰŹ9rőęŐ´¶¶fggŁ[˛X,€BˇŔž˝˝˝]]]žžž:“R©T$ŻĄĄĄŻŻoCCCDD„D"  (::zV…óÍó1_4ő°ţ,--˝ĽĽD"źĎGz***D"‘żż?ŔÇǧ±±qddÄŃŃŃËË«ľľţÉ“'îîîŹ?F#xxx\ąreďŢ˝hز˛2•Jĺéé‰.+ ô_I$Ú )++ŁÓét:ťJĄ’Éä_ýuÝşu€©©)ĄR9==˝Ü㲱±Ń›zµYŁë—¬¬¬šššsçÎÉd2µZ=11‘ššúŕÁdóńńůĺ—_<< _}őU•J…L~ëׯ߸qcllěřř¸«««@ čěěÜżzzúőë×Oś8áîînccĂăńŽ=şoßľY8(ććć;věP«Ő^^^HONNÎĚĚLjj*ŹÇł±±IOO_ôĐbĚÍÍŃŞVǰŕű?…B±˛ďŹÔjµT*uqqѧü‚|¤çřsýĚĚĚě…•g(őO|CřĂ7„?|CřĂ7„?|CřĂ7X?{üřńĺË—őŹó˘qďŢ=Dő#??ßE¬$ ‹­Š•±Ë___=Ç_ßő—ç™›7Ćǟۻ7đřńxcײZňüWUuů AZcײZ¬?µ‰ZJĺdC!fšç“őWW'žśśP(d‘莱ËY-LÖźPx‡B! H[]Ý®R©Ť]ŃŞ`šţ&&¦˙˝‚ţý«˛éičŹ?î·¤UÂ4ýaĺČd’PŘlÄzVÓô'6c˙‚´×®‰ź>U±¤UÂýŤŚL44Üź™ůĎď 0 ˙ö[»±JZ=LĐßĺËms;a®¨0ÁŹPôWYy{V ߼ůppPi”’VSó÷řńŘť;}Z­ŽEA …|é’Ž·&®15—.µÎ·  A3Bˇ©ý"żv˙˙omزŞËe˘/ź=›¶° Q©˙ž¦ŤT×jaĘß?˛‹Šx11^Ć.dµ0µĎĎ Âľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáÂľ!üáôN Ć®Ĺđ›;’É–Ć®ÂŔé¸ëîÝ»e2YNNŽq‹#X¦¦¦Ó§OŁÖţs˙‚M›6%&&Ł*‚Ą2ë~Äü‡oř†đ‡oř†đ‡oV⯧§'55uÆ fff›7oÎÎÎFžľb±ŘÂÂi÷őőĄ¤¤lܸ‘N§»¸¸|úé§*ŐĽwVEwÄFX·nÝŠŠŠb±XVVV~~~ËzÂô˘ĹbŇ=z4·ě׿0Ëö×ÝÝ˝}űv&“YWW7::* ďßżżcÇŽE"Ŕ0Îápš››GGG+**®_żž™™ąčŽ®®®SSSË­¶µµ5<<<::Z"‘Čd˛´´´¸¸¸ćfCŢÔÜÜ|Ö3Q^z饕U»Ь‰‰‰‰‰‰‹>°ĺÍ7ßĚĚĚÄöhµÚŔŔŔśśśĐĐP@Ăp?ŕäÉ“0 ËĺrlşÖÖV‰¤R©ĐÝŰŰŰ÷ěŮĂpww·““S~~ľťť‡Ă9pŕ€FŁéîîFŰprrúć›oŘl6‡Ăąxń"çŮłgďľű®˝˝˝Ă'ź|˘Ńh`ţâ‹/°Őććć?~Ť67ňŮłg Ć–-[:„l088HĄR{zzć¦ŔĆÁ‚ôcźgŽ˘P(tĆASwww/0ţĺĺĺXkËó§T*ÉdňÇgő …B—/żü2** †á˛˛2&“‰´===Ńă„ ČĂĂ#**ŞŞŞjxxxÖ1S(”čččÁÁÁŽŽŽ­[· ťţčtú| T*?˙üs.—‹ěľoßľ””…B!‘H|||Nź>ýôéS2™Üßß?ßřÎjwww›™™˝óÎ;rąĽ¤¤ÄÍÍ Ů °°Y˛š›ba:óĹAS/¬@/‰„D"!§6–––++«ÎÎN+++ŤFĂçó:Äd2!Úżnn.¶zĄRyîÜą6›íććvřđ቉ ä‰٬´´ô•W^Ń9ČY ĂpWWŇ©V«i4ÚŘزomm­··wOO‰Dš™™Y`|çFBŠ´°°‹Ĺ0 żńĆçĎź×™Ů˱cÇŕý-I˝0łü-ďţźvvv$I*•:;;cűűűű7lŘŕîînmmÝÜÜÜŘŘXZZZZZÚŇŇR__˙ő×_c7f2™|>źĎçĂ0ÜÜÜ|đŕÁää䪪*™LF#»şş>zôHgfffëׯG¶GzärąFٱ¶¶Ć–Ęfł‘Ú6mÚ„öwvv655ÎŮÎÎ)222R(¦ĄĄµ´´\ąrEg €ąąů˛¦şůâ ©—Ĺň®_LfPPö›ŠS§NőööÄĆĆ"""D"ŃŔŔ€››[pppeeeżźźşý{j´I$ŇöíŰOž<ŮŘŘôhµÚţůiK$.—«ł ěł8…BAOęgϞݾ}›Édúűű÷ÝwŘ-Auu5Ŕ,$bĎl䤤$‘HTYYąk×.ˇ3Ĺ’Gn‘RuÔ’@߉KĽ~éęębłŮYYYb±XĄRĺĺĺŃh4;;;d2‰D c×®]0 —””0Śřřx†Ĺb1•JU«Ő7nÜ P(@&“©T*±X›––†~|ĹÄÄ uuuąąąa/4tN$ŘvRRŇŢ˝{ Ĺŕŕ`LLĚG}Ăđß˙M§Ó?űěł»wďööö ŤvăĆŤ@uuµBˇŚŚś†á‰‰‰uëÖmÝşőęŐ«óĄXtţCm,+Î\ôš˙>|’’ÂápĚĚĚśťťsrrĽ˝˝óňň`~úô)ŤFËĎχaX&“ľýö[†ÇÇÇ]]]­¬¬†‡‡«««‚‚ ťNß¶m[nnîôô4zĚŽŽŽöööŮŮŮjµzéţFGGSRRŘl6›ÍNOOźśśDúĂ ‹Ĺň÷÷Ż©©AúóňňL¦ĂĹ‹uúCÚŃŃQ«ŐΗbQč÷őőˇ#°ô8s1€żą¨TŞ–––•틲ôcx‘™ĺĎ0ëg^^&{Źéçbýß Qwt User's Guide: qwt_plot_marker.h Source File
Qwt User's Guide  5.2.3
qwt_plot_marker.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_PLOT_MARKER_H
13 #define QWT_PLOT_MARKER_H
14 
15 #include <qpen.h>
16 #include <qfont.h>
17 #include <qstring.h>
18 #include <qbrush.h>
19 #include "qwt_global.h"
20 #include "qwt_plot_item.h"
21 
22 class QRect;
23 class QwtText;
24 class QwtSymbol;
25 
45 class QWT_EXPORT QwtPlotMarker: public QwtPlotItem
46 {
47 public:
48 
53  enum LineStyle
54  {
55  NoLine,
56  HLine,
57  VLine,
58  Cross
59  };
60 
61  explicit QwtPlotMarker();
62  virtual ~QwtPlotMarker();
63 
64  virtual int rtti() const;
65 
66  double xValue() const;
67  double yValue() const;
68  QwtDoublePoint value() const;
69 
70  void setXValue(double);
71  void setYValue(double);
72  void setValue(double, double);
73  void setValue(const QwtDoublePoint &);
74 
75  void setLineStyle(LineStyle st);
76  LineStyle lineStyle() const;
77 
78  void setLinePen(const QPen &p);
79  const QPen &linePen() const;
80 
81  void setSymbol(const QwtSymbol &s);
82  const QwtSymbol &symbol() const;
83 
84  void setLabel(const QwtText&);
85  QwtText label() const;
86 
87 #if QT_VERSION < 0x040000
88  void setLabelAlignment(int align);
89  int labelAlignment() const;
90 #else
91  void setLabelAlignment(Qt::Alignment);
92  Qt::Alignment labelAlignment() const;
93 #endif
94 
95  void setLabelOrientation(Qt::Orientation);
96  Qt::Orientation labelOrientation() const;
97 
98  void setSpacing(int);
99  int spacing() const;
100 
101  virtual void draw(QPainter *p,
102  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
103  const QRect &) const;
104 
105  virtual QwtDoubleRect boundingRect() const;
106 
107 protected:
108  void drawAt(QPainter *,const QRect &, const QPoint &) const;
109 
110 private:
111  void drawLabel(QPainter *, const QRect &, const QPoint &) const;
112 
113  class PrivateData;
114  PrivateData *d_data;
115 };
116 
117 #endif
qwt5-5.2.3/doc/html/qwt__plot__printfilter_8h_source.html0000644000175000017500000003004212052741135023125 0ustar gudjongudjon Qwt User's Guide: qwt_plot_printfilter.h Source File
Qwt User's Guide  5.2.3
qwt_plot_printfilter.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_PRINTFILTER_H
11 #define QWT_PLOT_PRINTFILTER_H
12 
13 #include <qcolor.h>
14 #include <qfont.h>
15 #include "qwt_global.h"
16 
17 class QwtPlot;
18 class QwtPlotItem;
19 
30 class QWT_EXPORT QwtPlotPrintFilter
31 {
32 public:
34  enum Options
35  {
36  PrintMargin = 1,
37  PrintTitle = 2,
38  PrintLegend = 4,
39  PrintGrid = 8,
40  PrintBackground = 16,
41  PrintFrameWithScales = 32,
42 
43  PrintAll = ~PrintFrameWithScales
44  };
45 
47  enum Item
48  {
49  Title,
50  Legend,
51  Curve,
52  CurveSymbol,
53  Marker,
54  MarkerSymbol,
55  MajorGrid,
56  MinorGrid,
57  CanvasBackground,
58  AxisScale,
59  AxisTitle,
60  WidgetBackground
61  };
62 
63  explicit QwtPlotPrintFilter();
64  virtual ~QwtPlotPrintFilter();
65 
66  virtual QColor color(const QColor &, Item item) const;
67  virtual QFont font(const QFont &, Item item) const;
68 
69  void setOptions(int options);
70  int options() const;
71 
72  virtual void apply(QwtPlot *) const;
73  virtual void reset(QwtPlot *) const;
74 
75  virtual void apply(QwtPlotItem *) const;
76  virtual void reset(QwtPlotItem *) const;
77 
78 private:
79  class PrivateData;
80  PrivateData *d_data;
81 };
82 
83 #endif
qwt5-5.2.3/doc/html/inherit_graph_4.png0000644000175000017500000000520112052741161017241 0ustar gudjongudjon‰PNG  IHDRc%ÖsbKGD˙˙˙ ˝§“ 6IDATxśíśiLëÇß)ÔÓNѦ”V@ŤTÄřz‚ŹĆ]Ž\ÁH "'jpÜâ‰K’[ŁĆš¨h‚˘ ąÇh4®G˝śšŢ@´ĐŠ$€€…˛t´Ŕ{?Ln­Lu°Črôů…Ó—÷}úď<˙ü3óv€Ŕ#€ŻÂéoü€¤€H ؤ€Ď.Ż wíÚŐ/R±X¬Őj…Ba ůřá'ÄĄ‰.ß},Y˛¤°°0<<Ľoµ!téŇĄ‹/.Y˛¤ż…|üđâ҇]Ż)Báááyyy}Ą řAý-Áŕ‡ź —>„} ؤ€H ؤ€H Řq?)***|}} 4bÄÔÔÔĆĆĆŻ/1™L|>ßńňÉ“'‘‘‘"‘H(Nš4éÖ­[n‹ůľL& ˇP8cĆŚçĎź÷·.„Ş®n]­VcŚ«ŞŞBÄWWW;żi]]ÝÔ©S>ě\!===##cl±XâăăĹb±źźßÖ­[?~üh4‡~äČ‘ˇC‡J$’óçĎďÜąS$I$’łgĎbŚé ™™™‰D*•nŢĽŮn·cŚ Ăĉů|~@@=cś——7fĚ>źr÷î]ćŃhtîĆXŻ×2„>fĘsYłĄĄeĺĘ•>>>rą|Ó¦M´žŻşxń˘óH}}łVűŕ÷ßłĺňT˙4ąt‰Ë¤pń47+‰„ 7oŢ:ŹWUUůúú†„„x{{ëőú‡ćććććć=xđŕرcŽ™b±žďďďď4 ………łfÍBŤ1‚ |űö-BËĺňx<„‡Ăq>v,çp8=ÁÁÁô*ťNO„㍆ ríÚ5µZ˝fÍĄRyŕŔĄRŮeD(ňx<Çíq[[۶mŰ’““ďÝ»WSSÔǬ)•Jív»···óIc=±|~VkrĽěěěřŇĚ–J.Oe-ŘsHR2~|Ý×çôÜ!’$SRRRRR0Ćz˝~ëÖ­Ë–-»rĺŠó÷<@S]]Íěř°ű¸“$IN™2EŁŃdggÓ#YYYóçĎ×h4ŃŃѡ9sćÔÔÔ(Š©S§^ľ|ąŞŞjҤIĺĺĺŽ §NťÚ»wŻŁ¬Z­nnnNHH@˝zőjäČ‘ˇ—/_Ęd˛î¨ęěět¬2›Í2™¬ľľ~ĹŠ:ť.,,Ě`0ܸq!DQ”H$şyó懲˛˛bccKKK»Ś\ż~ÝąňŕÁ“’’"""BľľľLyĚšôUhCCH$Bµ¶¶Ö×׳~»˝ć×_ĄĎžY›šl\®‡ÝţŤŕóąM|wNKŃh2YçôÜ«V­zńâĹť;wBA(•ĘÎť;÷[Ő2=ŕř•T*ev|ř tąĆčćVII‰X,^ż~˝Éd˛Ůl»wďćrą‰„ľÉ,((111ăśś@°`ÁڱÉdňôô¤·^t:ť——מ={JKK_ľ|©V«ą\îăÇŹ1Ć .tľËČČpľLuyL_§EEE˝{÷®¤¤DˇPdddĽ{÷Ž ˘˘˘†††„„OOĎĆĆĆ––@ Óé(ŠĘĘĘR(ĚćNRYY‡Ăˇ/°™ň0Ʊ±±Ë—/Ż«««­­ŤŠŠÚ°aC7Żú:::uşň; ‚·Édüý]Ü ¨»Üc?<~üŘĂĂC­VWVVÚl6“Éť?o±pžé˛#ŕC&č{íSĐ”——«T*©T:hĐ ŔŔŔ´´´°°°Ý»wcŚ­V+—ËÍĚĚÄWVV"„´Z-Ƹąą988X(ŇzřđáĚ™3H$Џuë]ąľľ~éŇĄC‡•Ëĺ[¶lˇ÷śY;Äăń4M@@€ŹŹOjj*ťG{öě!I2((čęŐ« …bĆŚăÓ§Ođů|ĄR©Óé#ĚY­VŹ .¸”粦ĹbQ©Tb±X,'''·µµ}k‡ÚŰ;ţúëůš5ç7Ëĺ©Îűš-)pŹýpăĆŤ)S¦//Ż1cƤ§§řđcR0=ŕ<óKvÁeR¸ř˙!÷ţʢ(“É4aÂ7/ozýľ˝úĹ{@„Ë˙OaµÚ®_zůň˙ţŰěáAtt oo/aHúůa x` hč9.}čÎ>Ĺ—ŕóůý?<$é÷K\Ü/µµÖ?˙,ÎĎ׏çĎľ¬ż?üH|Ϥz©”LNţ-9ů·ţütü !ÖŰĎüźŕ ˇ—řA’€^’v )`’v\|÷QQQqňäÉľ— LŔBڧą33Ůźóz ˇPXZZĘú]_~ř qéĂ®Ďh0} ؤ€H ؤ€ť˙Żâ†ężşIEND®B`‚qwt5-5.2.3/doc/html/tab_b.png0000644000175000017500000000024712052741134015247 0ustar gudjongudjon‰PNG  IHDR$ÇÇ[nIDATxíÝQ Â0„áŕśRĄXcŤ±I7IÓ¨g|ňŐŮśäăgY3Ď÷‡u{ŁÔW—ĘSíŚ1Ü ĽCjiC†G¬ýççJ+| ÖÝs7ůŚ+Ů›`t‚3ťÜ‚a˘K¤Gq°űQÍZÝT=@*éC݇LIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_8.md50000644000175000017500000000004012052741151017141 0ustar gudjongudjon721f3e9892678e9ae654dd2e812693b6qwt5-5.2.3/doc/html/class_qwt_double_range__inherit__graph.md50000644000175000017500000000004012052741137024002 0ustar gudjongudjon5f3352424266747d7479cc1c333a8c77qwt5-5.2.3/doc/html/inherit_graph_30.md50000644000175000017500000000004012052741151017214 0ustar gudjongudjond34b87499e01a1e9e087b62e55041d8dqwt5-5.2.3/doc/html/cpuplot.png0000644000175000017500000010724512052741136015676 0ustar gudjongudjon‰PNG  IHDRÄ -AĽľ IDATxśěÝw`Őú7đsf6»ŮlŠIčEş€$Xˇ ˇ(‚°\Ż"¨‚Š”+—°ˇb@±EÁźŠA1 ‚AŠ ˘@Ú%”@l™zŢ?óbhÉNŰÝ|?m†Í̉Îî>{Îsž‡ćçç€@qVB‚ ĐÁh‚`4A0š ML€&&@  ‚ ĐÁh‚`4A0š ML€&&@  ‚ ĐÁ@8HJJJJJš3gcěrÇcÉÉÉÉÉÉsćĚ©Ě9—-[6bÄ#FT8'@6«AęСCëÖ­łzLT#yyy„»Ýnő@ ¬ ¨FştéB>|ř¨QŁ!ŞŞ._ľüłĎ>ŰłgŹ(ŠuëÖíŢ˝űđáĂăăă۶m[ľş‘śśśźźOaŚąÝîwß}wĺĘ•………N§3))ičСť:uň˙k۶m !Æ KHHxď˝÷îşë®Îť;˙ă˙ „dee 0€RJ8pŕźţ™ššúî»ďZô_ô„` |‚PZZZůçđÁŻżţzyĐpäȑŋŻ_żţłĎ>»äó˝^>úÇř,++۸qăĆŤ§Oź>pŕŔň§­\ąňСC„ĆŘŤ7ŢX«V­“'OţüóĎ `Śť8qbßľ}„>}úög@°A&@řřŕ:˙Ý•ź˙ŃGB:tč°bĹŠüń©§žbŚ:t(777//ďź˙ü'Ą”RşaĂ˙ósrrvíÚE)}řá‡WŻ^ť““Ó AJéK/˝taSXX••µvíÚGy„RÚłgOBȆ E!„äĺĺQJyžOOO7ę? Á@őuöěYBČąsçöďßďt:yä‘)S¦L™2ĄU«V111‡Ă˙´˙•+WBZ·nýôÓOשS'%%eüřń„·Ű]pBz÷î=pŕŔ5jDGGSJ{őęE)--Ýąs'!Ä˙ĚNť:ĹÇÇ›ú×€aL„ŹÇ|çÎťů¸ňóożývBČ®]»FŽŮĄK—xŕŕÁmÚ´iÓ¦Ť?ąˇ˙âE»víĘ˙µ]»vţ,Z˝ző.ü­””Ü——§ŞęĆŤ !ţ•tLT_S¦LY¸pá?ţńŹfÍš©Şšźźź““3xđŕ;vT˛¶ÇťąđůĺËôŻt¬_ż>??˙Üąs6›Í‚ €ę1VRR˛aĂY–GڱtéŇŐ«WŹ;–1¦(ŠéĹ®˝öZBČŻżţZ:lŢĽůÂşśôôtĆŘďż˙ţÍ7ßB:wî«çß–B0PM?~ü‰'žxâ‰'.\čv»ăăă5jä˙§¸¸¸ źéőzýük»vízýő×Oś8±uëÖ^xârąşvíz…kĄ¦¦ĆĹĹQJ—,YB°ĆvLTS-[¶ôg?ĽóÎ;;vLII=z4Ą´V­Z}űö%„Ô¨QĂ˙Ěň@áź˙üg«V­cďż˙~Ďž=~řáÂÂBĆŘ„ Ę“4/F)ŤčŃŁ!DQ”[o˝ŐřżĚ` :˘”r÷ć›o6¬Yłfv»ťă¸š5köďß˙ŁŹ>ŠŹŹ§”Ţ~űí;vä8.**Ę˙[QQQďż˙ţСC4hŔqśËĺęÔ©Ó»ďľ[^Ťę ü{:!iii111W}>„zŐ|oí<O‡!/ľřâm·Ýfőp@O™3¬Ył†b·Ű»uëfőX@g(§ ĆbŚőčŃăÔ©S„ŚŚ —Ëeő@g&ŔpgÎś‰ŠŠj×®Ý1c¬ č9  r&@  ‚ ĐÁh‚`4A0š ML€&&@k‚‰âââîÝ»_xÄívOś8±}űöiiisćĚQUőĘÇ HÝ›ăčŃŁ3fĚŘľ}»Ďç»đřěŮł‹ŠŠrssKKKź|ňÉ ÜyçťW8AšŢű÷ďż÷Ţ{·nÝJaŚ©Şš––¶`Á‚¶mŰB>ůä“ÜÜÜ÷ß˙’Ç?řŕŞ^îí…ďéýBČł_ýý÷ß/>ž””dţ`ŚŔ»äxˇ čZTTTVVÖ˛eK˙Ź­[·ž7oŢŽ7fżz…Í=Ö´‘dôS•ú‚"đů|6›Ín·űtą\Źç Ç+¸BôwáĽË•˙—čnř°G­‚‚"pą\˛,‹˘čp8!n·Űét^áx—[© ›)&€`[CkÔ¨Pŕ˙q÷îÝÍ›7żÂqÖ”RŽăú÷ďźťť]RRrčСśśś;î¸ărÇ­/üMP,sBFŹ=}úôŚŚŚÁ0ŕĘÇCcěěŮłGŹ=~üxaaáîÝ»GăĆŤëŐ«W§NťV­ZńýG|ëV†í0tčŮŁGwmŢĽ6+ëčfôéóÄcŹeddđWh`"@ëÖ­{füř˘sç’ <|x„ĂA®–ý 0vńÁłî˝Í[ôő?Ž«WŻíŔdŔÉç;´eË##F´lŇdęóĎwíÚU˙?‚Őž={˛łł·mŰVVVwóÍ7Ź5ŞYłf•Oł+,,4hĐĎ?˙lč8ËYż›#älÝşµgďŢ÷ZŁgĎ~/˝tíÍ7GDF^5’đSUąÂŹűdĂëŻ˙Ű!J#śÎć]»xýuŰŤ7ŢűĐC˝úöݶm›^ă€`ćóů{ě±®]»®X±b۶mźţyÓ¦MGŹ]Őó(ŠbÄđ. ÁD Ľçž;ďżźoŰöŽ×_oұ#Ą´’a„Ç]8¤ž9ł‡QRď’Ĺ3(Ąע[·;łłŐ–-{ßqÇŔ{î9xđ Ć?‚\IIIIIɵ×^Ëó|íÚµGŹýí·ßRJţůçŢ˝{«ŞĘcŚ 8đ»ďľcŚ-[¶¬oßľ7ÜpĂí·ßľaĂĆXďŢ˝KKK“““cĄĄĄ&LčСC§NťfĚ!cl˙ţý)))o˝őVűöíSSS/^ß.55őÜąsţZŽűöí;věX÷îÝĎś93yňä)S¦lٲĺ:u*!dĺĘ•111;wN›6Íáp|˙ý÷K–,ٵkWvv¶˙l˘(J’´nÝşÇüĹ_ŚŹŹĎËË{ôŃGçĚ™SŐ1#gâ*c˛,?őôÓËľ˙ľÇsĎĹÔŞUŐ˘śÄŞžűرu®Z—MŘü˙(ĺ#"’nżýÚvíţőôÓw|˙ýěW_µŮl¨QZęNź~ÉăÇžţÂÇŹß}÷­[·nÓ¦M˙ůĎTU}á…zőęŃŁGŹü±U«Vąąąééé‘‘‘^Ż—rüřqQď˝÷Ţôôôňó0Ćüű óňň\.W\\Ü1c&NśřĚ3ĎB(ĄĂ‡·ŰíÝşu{ăŤ7žxâ »ÝŢ˝{÷ůóçWőďB0q'Nś¸óŢ{=.Wż_´ýŐrL/%Ą»tîXŮgS[·nß^X?ţ-·ŢúŐ’%uęÔŃw<`¨ AĂĺPJ›5kÖ¬YłGyÄëőΞ=űŐW_íŐ«!¤gĎžóćÍ{ňÉ'sss'L@)MHH?ţÇ3fLyůĺ~řóaă¸9sćDEE 4č†n¸˙ţűkÖ¬9nܸň'¤§§ź>}ş_ż~„Jillě1cĆŚÓ®]»ĺË—Ď1’P»ví.]şB¦M›väČ‘[o˝5##C’¤çž{N÷1#gâöîÝ;řÁ»>űldt´Ž§U !$`9˛Ú™ ĺ„15k¶yđÁ!=ôóÚµ×]wťÖń@pHLLôÇ—ݰaĂ Ű9 2dČ!>Çét._ľÜ˙8>>ţµ×^«p’ ›d]îqĺafâocEEE·Ývó#ŹÔjŃBŻ9‰K:}vgbófšNAiŤfÍÚ šŃŻ_QQć'ÂcěÔ©Süńm·ÝĆq\đěé ·™ ŤŤ7ÝnwźŰnkÚ»w“Ž•Ţd¨2÷Ń®żGűyštěč+)ésŰmëÖ¬‰Öu*‚MďŢ˝[¶lůŔX=ż ·`"??żüq• Ƣ(÷yÝu­uʸĽŘ_ Ş,{dÉפm[NJië~ý~=yňÁţséçźëpBJ”ŇÖ L€eŽóco-Xp\–oş˙~.A)Ď;üŹüĆ^łfdT”^'żůÁ÷;¶hńbÔÇ“!8ݏ¸xjVVŇ}÷w ‰1Irű>ü}dl¬Ž'ç8®Ý°aOŹW\\¬ăi® ÁÄy“§MkŢłglť:†&]ţ…—lŹoÚDĎSRS«Vłž=źź2EĎÓ\M¸ĺL€1–źź˙ů—_ŢYőÖ&;ç>آuŹ«?ŻŠ’üjôčO<‘””1räú5kLX¨Zm×G0A–,YrěĚ™>Ýş™vĹ#G~äޏ5ô?5ĄÍşvÍÍÍýꫯîľűnýĎ•óűďż[=óTëś ĆŞŞĎŽź:|8ĄÔčl žŇ!äđáܸ-Ť»P»G]“ŁŞjµŠ‹Ŕ*Ő: „äĺĺńŃщŤ›p-ĺŻÝE'7»jh*¤}e5š6=PX——gÜ%ĘUë`‚1–łhQÎťMľîY÷źuZ83A©ß±c΢E™Të`B’¤ŻľúŞy×®&_×ç)i¬KíËËkš–¶téRI’ ˝ ©ćÁÄŞU«5ŠJH0Ą¶ÄyEE[ ĺj6h`ŕ5(uĆĹŐlŢ|ŐŞU^€RÍws|`ĹÇ_;kÖ4áB şty˙ŁŹnżýv®hl<<cWÝ™RM ĆŰí^µrĺ˝ |éă'6Ä5ilÂ…ště¸ä˝÷JKKŁŁŁQsŔ|™ŁCľhU%ënUÓ`‚’›››2`€Ăĺ2튔rޏ“%ż¶ľů.3.çp4ąé¦íŰ·§ĄĄ™p9¸ŘđaŹZ=3Tßś‰üü|·ąů‰c‚pÖă9UÇ”ť¨„G˝z«řÁśk@µU}‰]{öÄÖ«gňEE±DUäú×]gÎĺbëÖý}÷ns®ŐVő &öěŰ[§ŽÉ=wî #!‘ă8Ę™ń_ţšúő öě1áBÚ1Ć••1ÔG9á“3qŐĽŮ'N”?fŚýągOëÄDŹÇcŇľPĆTĆ$©´fÓÖŹÇś+ÚěŰwâÄ $`BđcŚ­\ůó϶ɓKíöęű=BKíÚµ­BPź`"??żÂ‘+„gÎśQ qDG<¨ŠSŻihd…‰ Qjs8QQEEE¸Ý!ř1ĆD‘üú«#/OčŃC¶z8PŐ4üß·o_BÝş–\şn«Vf^îšşu8`ććó‘„uŃ"WI Ĺb@©¦ÁÄáÇă52ů˘cÄfkxýőf^4®^˝Ă‡›yE€€‰"‰Šb˛LV¬°‡M0ÁSöűďüńăŐôýŞjzsź>}Úoţu5kńŤ¸şýű÷§¤¤”ß*ڱ G‚P5 &˘˘˘8U5˙şq š|EU‡ÉŚ$QY¦GbbŘ‚.I Őťڱ’úőב™™±ďĽăÚ°ˇzö,7{¶K¬€Şi0árą„łgMľhĎ#úŤ{ĆśMˇĺDźĎf ź4[o’DyžB®ą†9b[ł&ô;c‡sďĽă|ę©Ř/żŚtąXýújt4#„ÔŞĄ8`{˙ý(U Ő ,Ç[¶lYßľ}o¸á†Űoż}Æ ţ㥥Ą&LčСC§NťfĚ!cěСC©©©ďĽóNJJʡC‡ X5 &˘ŁŁ=%%¦^’R>"ÂÔ+B‘˝^*D‘”/ĘŐŞĄ|ţął¬,dv53ĆŽç^x!úß˙ŽŮ°ÁQ«–ZŻžZaZ°n]eýzdž & 0gÎś™_QQŃO?ýÔ°ˇ±óâŐôc&&&Fňů¬…$ź/&&ĆęQTŠ(ţ˙™;‡ś>M—.uţăˇńReŚmŰfËĎŹhŘPą\aŽ#uë*óç»âăŐ6m,XiËMź~鍄Ď?¬2żîCŹ?.Šâ˝÷Ţ›žž~ľoĺŞUyyy.—+..nĚ1'N|ć™güĎ5jT´ńuŞi0-y˝VŹÂ ˛Ďeő(*E–É…ąLµk«+W::t®»N‰Âkn7µŰŮ•GAŘkŻĹLź^Z·®訒AĂĺÄÇÇĎź?˙ăŹ?ž5kVÍš5GŽŮŁGŹââbY–;tčŕĄ422Ň˙822Ň„H‚TŰ`Âĺr‰ŐdfBśN§ŐٍA î=ňgbľ÷žsúôsv{|čz<•ʉrąĎG_}5jĘ”RĚÂĹ"##%Iˇ<&8{ö¬˙kˇŰíV%;;›1¶rĺĘ©S§öčŃ#!!ÁfłmŢĽŮn·—źÄ?‡aZ´Z}s&™ŐmËZžłgkÔ¨aő(*E–ą o}ţL̵kCcG’×[ŮëÄDőäIţ­·BxÇ §Nť:mÚ´ÉĘĘ:vě,Ë{öě™5kVßľ} !ŞŞŽ;vűö튢ś‰|üqwgx<´ň%â(%őę)ß~ٰˇÜµ+z‘ŔßÔ¬YsćĚ™—ü§!C† 2¤ÂÁřřř×^{­ÂÁFŤmŢĽŮń]¤š„]».Z»6Ľ‰Ówöëgő(*K’¨Ăq‰Żéµk«›6Ů7–ťÎKíŰ‹QQĚňPĂç#UfŕyRł¦’“ăşţús ŞĺăXő &:wîüúüůVŹÂXE»wwš>ÝęQT–,“Kćř31?úČuÉß*-ĄĎ?ݶk'ZţaěóqU-^INť˘{÷ň©©ŘŮ!¬úÍ›7ĘĘĽçÎ9Ă4ĄŔ]\Ě$©YłfV ˛d™réoö.są”KţÓŃŁü±cAŃČĂç»Ä2ÍUŮlěđa>5Ő€Ąš&`RJ9Žëбă‰?ţ°z,F9±kW{Ľ?AH‘¤KĎL\DZ ©ăőV!g˘Ď·sÚŞi0á×=-ÍsLSý`v¦  oŻ^VŹ ˛ü-ľŔqD’‚âĂX &8Žx<Őú­Â@¸ÝÁI¸ę“{őęU´}»,á¶A”1Éë=´eKzzşŐC¨,9Đ G‚ˇť,ĆHi<Ď<`˘pË™ČĎĎ/|Őx˘^˝z7\ýź?ýÔ2ěľÁď]µęÖ[oMHH°z •%Ë|B(%˘hý÷"Q pv„ă×3+ »ŃOŤµz& ·`˘J(ĄOŤyßCµčŮłĘIŘAL‘ĺ}«V˝ňé§H‡"Ë3QÔw,ÝMbł!OŐŞYu&Z·nÝŞE‹C76éŇĹęáčć@^^r›6-[¶´z UđĚÇ>+ #A$a‚ś_ć°~ü »ß˙Ýę!ÇúąAËŤÍĚÜűí·VŹB'Ś1Ćö­X1fÔ(«‡P5J u(%Á13ŕ/ň<ÚL:$FGŰą3<Ň0 ·oŻyÍ5©Ř ˇ&ŕLž'‚ ëP"I4°·Ž#>‚ m&ĄôéŃŁ˙·vm„ڱ}_=yâDdK@Č‘¤Ŕ0eŮú·˛€·…q‘e˘\ş"@h°ţ 222jŮíˇżŘ±kůňFuęt Łü¨>%Ŕoö<Ď‚ak¨ ĂSŠ•m&ÎWĂś;{öţU«N8Ş‹ŚťúóĎ?ü0wölŽă03!'ŕ™ ˘a‰DG˘`0DΧ}ŕ5 ! ÁÄy‰‰‰s^}ă›oĘÁĘUu’Ď·yŢĽąłgרQĂę±BU©Şň‹<źÄ˘H?A&„>çQJ»uë6 oßí‹Y=–@l˙đĂ}űvëÖ s˘DQK΄ޣ©:Q 0ň †R€€!ř›O ýď‡7oĄĹĆţň‹|ěŘż'N´z(S”żŮó|Pôćđů(Ď>Ś`\‚‰ż±ŰíďĽőÖ‘ďż/;uĘę±TÖéC‡Ž­^˝8'Çn·[=€ŔIRŕÓjŞjýn˛2Ęq~ a ËÚLü Ą´E‹/LžĽfÚ´“{÷űüc'÷îÍ{őŐ¬çźoĐ 8 ¤i ‚ar"°ţă~Śa™B‚‰KčÜąó‡ďľ»iÎśă»vY=–+9ľk×ĆěěśwŢIKKłz,ZIĺ¸ŔËÓ&<ž[¨BTËÚ‚%XłfÍ AnľůćÔÔÔÇ{ěŹ?ţđw»Ý'Nlßľ}ZZÚś9sT- N•F)MIIů8'gŰ‚…żýŚóŚţö۶ ţďĂ۵k‡9 —*—ň|ŔďËŇ‚"8}úôرc‡şaÆü±]»vcĆŚń˙ÓěŮł‹ŠŠrss-Z´bĹŠŻżţÚ´Q%''ţÉ';rroŮbÚE+éđćÍ;rrľřôÓääd«Ç Ź€eB8ŽH’®Ł©:ź/đ™ BĐ8B[Pv»ýšk®ˇ”–Ă®S§cLQ”oľů&33311±qăĆ?ü°™ÁĄôşë®[úůç…ß}÷ű—_2S&E®JU”?ľţúŕ˛e«ľű®E‹“€°ˇežź1˘ŞÁ03ŕďň<++ĂkBXP´ ŹŽŽž6mÚżţő/÷w—˵téRBHQQQYYYy+íÖ­[Ď›7Ďä±5nÜř«Ď>?iŇĘ Ú ^ŁiÓŔ«ôiÄŘé]¸°]RŇK—ĆÇÇ[3 c x7ÇYźŔčóľ›ăş_RRR…#”Ň;v\üŐ‘1vôčŃA­_żţr_,÷ďßď˝÷nÝşŐ±^ (‚ EQ˛˛˛îĽóΧź~Úź$‘ťť=sćLźĎgłŮĘw<ş\.ŹÇsńŻ_üźţ’Nž<đł¦Nýůçź§deŐşé¦VwŢÉGDR0¦HŇžoľ9ľyó&MJKKSĺTčl^¨ŚÓ§Ż‘$Îë Vs.v IDATdąÂëŤ8uę´ËeećŮłv»ťH*0ZíÚµő=a~~>©J Xľ+š$ËGŹ=zôč¸qăâââęŐ«7jÔ¨uëÖB\.—,Ëâ_ő­Ýn·ÓéĽř×ó/CÇRJ»víúő_´tąÖLž\´{·Ž'żŞ“?MťzťĂńő_ÜrË-ś–…Y€`%łçy&Šż.!đ—&Ç1ŻŻk¸’Ó§O?őÔSíÚµëŇĄË /Ľ !¤Oź>ĄĄĄÉÉÉŚ±_~ůeŕŔ7ÜpCzzş™)~AqűFFFV8âp8!5jÔŤŤ-((đÜ˝{wóćÍÍÜ˘ŁŁ§<˙ü+YY{/ţuîÜŁŰ·x1ĆcÇóóť7ďĎĎ>{÷Í7˙óďGGGxEKiŮŽpÇQ Bŕ»9xž!®ěůçź'„¬ZµęÓO?ݶmŰÂ… !ąąą111;wî,))ů׿ţu÷Ýw˙ú믙™™/żü˛ÉĂ ŠeŽš5k¦¤¤Ěš5ëé§ź.++›;wnź>}üůýű÷ĎÎÎ~ĺ•WÎť;—““3lŘ0«KÚµk·ě«Ż~řá‡Ĺź~šżxńµiiŤnąĹyÍ5ş-|0&”•úůçĂ?ýTżnÝÇ ęŮłgDD„>'V˘Čiů0öů,ű0fŚi,™ĹóÄç 4{BÇôéÓ/yÜ(\c¬¬¬lÝşuß˙}|||||ü“O>ůꫯŽ1˘ü9 żýö›ŞŞ………§Nťňů|:ýj‚" „Ěš5+++«GŹv»ýöŰo=z´˙řčŃŁ§Oźž‘‘1xđŕX;NBĄÔn·÷íŰ·oßľţůç§K–¬:5±yó&˝{'4iÂŮ˙OĘĺÔŢ˝˙[·îÜÁ=nąĺ?óć5kÖLÇ‘3-3˛L ±ň›˝–Zŕä|0™‰đwĺ á Nź>Íq\ť:uü?6hĐ B cě˝÷ŢűřăŹ[´hQŻ^=­­ş` &jÔ¨1{ö싏;ťÎ™3gÎś9Óü!UFłfÍ&Ž?fôč•+Wţß’%?ďÝ›PŻ^ěµ×F7lX;9Ůgs8.;cÁŞ(çŽ=}ŕ@Ů˙ţWzřpń‘#ÉmŰ>Đ»wżľ}/™ĆD1đeŽł¸·…$qZ‚ ŽcŘÍW Şę‰'üńDaaabbâ…O8uęÔoĽ±rĺĘ:uęěŰ·Ďüś‰` &BšÓé8pŕ€DQÜ»wďîÝ»wţţűď|ph˙ţ5®iĐŕ’żĺ>uętaa˝ Ú\ý ©©my¤E‹v»Ą# zŇ–3`ÇQ˝˘¦ŠUÇďĆpi”Ň®]»ľüňË“'Ov»ÝóćÍëׯź˙_E)Ż }ćĚ™¨¨¨… ʲ|ćĚ™ŘŘXÓ‰ŰW7”R‡Ă‘”””””tĎ=÷BdY>pŕŔˇC‡Îť;çóůĽ^ŻŞŞN§3**ĘĺrŐŻ_żE‹ţTSĹŔ‹>QjqŁ/A m őóWđTUB)Ă× ¸¤éÓ§O›6-==Ýn·÷ďßřđá„„„„ÚµkwéŇĺ—_~>|řC=tÍ5׌7îŔÝşuűŕâââĚ‚ Ůl¶-Z´hŃÂę„-3ŞJĹâś ŤIGD‘:VoJŕĐ´iÓ E&ßx㍠Os:ťË—/÷?9räČ‘#ýŹ322ĘźcBĹ*$[C4ćLX[gB’(Ó¶9•R+7¤h„`‚‚–©Ë0E‘2¦ufB’đ† ˇ ÷.IŇ”3aíĚ„ hÚÍAAri& (hÉ™ŕ8¦Ąé¨v’¤C Nk˙-L@PĺŔs&(µř“X’¨Ć PĆ,އ´@0AAÖĐň“ç­ü$fŚyűěłFŤţŠÂ'ČĎĎŻpäŞá YÖZŞRË0˝^žçő)Zĺő†Ď{2\ěâ á JJJ8Ž«_żľ˙dž VxBqq±˘(:t(?ât:µ20¸qŔzÚ+R+Ц&ćZř|Z×hü8Žy˝šŰŹB¸HLLdŚ=zÔOVxBBBĎó›7oŽ0B®äL€ő$‰Óřylac QäL€ľ(ĄŃŃŃÝşu{á…Nź>]XX8ţü Ď‰ŽŽîÚµëÜąsËĘĘΞ=;iҤ‰'Z2Z‚`‚,kýfE)jÉć{źŹ×%“ă €˙oĘ”)„ôôô»ďľ»cÇŽ?aÚ´iGŽąőÖ[322$IzîąçĚâ_°ĚÖÓcf²F_˘¨uđ~<ĎĽ^|Á«îš6mşuëV˙ăÄÄÄąsç–˙Óرc+>ţµ×^3ĂŤ ÖÓž€I“$kŢĐ|>NŻLĚL@B0Ö“$­9Ś|ÇĐH0qęÔ)ÝÇŐ–ŞęĐ5”BÎ%*CôÜ?Âq& $LPJ‡>jÔ¨+úč•W^ńZ?~ü>¨Ëi :$N—`B–)!”ÓÖeđäŻ#č ˇ(Ŕ»VýűdâŰożťžžľiÓ¦ŚŚŚ č10¨.$‰ŁT‡•ž'&Ż( UĘqDź©•ó,_Đ(Ŕ[vřđáůůůĺ5_é_8ŽC!X¨˝ľÜ+ 5ůíGQô .Äqś€Đŕ-űÜsĎ˝ńĆ&L8zô(clřđá«V­JMMÍÍÍ>|¸ľC€đ¦WLóws§ăVŽr& ä3ѢE‹ üřăŹO>ůd÷îÝ{ě±äää;v$''ßtÓMśP’¤ąsç~ůĺ—ʧK—.S§NŤŹŹ'„¸Ýî3f¬ZµĘáp 4hĆĽvŔ::ÎL\gBÇ„‰ `™BOŕ·,Çqéééź}öYTTÔ=÷ÜóÇ 2Äż•# ,Řľ}ű§ź~şfÍ»ÝţúëŻűŹĎž=»¨¨(77wѢE+V¬řúëŻ0'Y¦!š3!I”ÝWV(f& äxËž8qbčС7ß|óżţőŻ;ďĽóĂ?ܱcÇťwŢůăŹ?ŞUßč­Şę’%Kž{îązőęĹĆĆΚ5kÚ´iŚ1EQľůć›ĚĚĚÄÄÄĆŤ?üđĂ&ÂŹ^ßďÍ_ć$Ž1ť§&(%˘höžŤ|áM™2Ą  ŕŃG-((>}zíÚµ_|ńĹéÓ§żýöŰŹ<ňHUĎV\\\RR˛nÝş´´´ÔÔÔńăÇ—••BŠŠŠĘĘĘZ¶léZëÖ­÷ďßŘ€ hI’>uźĚ˙Ö«BF˘"b̙شiÓ?˙ůĎ#FBŢ˙}˙ÁoĽń˙ţď˙–.]ZŐł•••1Ć —/_.IŇż˙ýď—^ziÚ´i>źĎfłŮív˙Ó\.—Çăąřד’’*s•Ó§OWu``‚ŇŇ:’Äű|’ĆóČ2;sĆgć+ýÔ©8Q}>źŽçR\\†÷+-5kÖüý÷ßÝnw~~~Ť5üý»Cďşë®ŞžÍápBĆŹďrą!O>ů¤żń‡Ëĺ’eYE˙Ün·ÓéĽř×óóó/yÚJ`-YÖg%Ąfď$N÷ͨŚQYF΄oŮ#FäĺĺuěŘ1//oäČ‘Q«V­ČČHY>_’VQ˙lDŤ5bcc üÇwďŢÝĽysŤ×€`#Ëúl ĺ8&I¦.Ȳţ9Ś!BO€3wÜqGÓ¦M·oß~ăŤ7¶iÓFë l¶~ýúÍś9süřń>źoÎś9ýúőóĎsôďß?;;ű•W^9wî\NNΰaĂ4^ ‚Ť~_Ä™ÉßéE˙`‚ă׋öbyáÍš5kýúőIII>ř`RRŇ%ÖŻ_?k֬ʟó™gžQUµWŻ^wÝuWË–-Ëű›Ź=şV­ZC† éÓ§Ď€03˝f&Ěol!6*`˘×„ž@nŮśś‡Ăѵk×+Ż÷ç>Ç1QÄ;3„ěf+éŐśśŻ3aę2‡(ňF$`šÜ® @;ܲ`%Ć(!úD”2E1ő=Í eôć€`¬¤ëĚQ”ź™ŕyz´®Ě=zôóĎ?ß»wď!C$IjҤɵ×^«ËČ :`ڍŞnĄD’¨Í¦ŇÍó"˘ČŮíúTȸżÉͦóWh§ifbĎž=wß}÷Â… ×®][TT´qăĆAíŰ·OŻÁ@Ř“ežçuűrŻohrU’¤çŕ˙߱ @#M÷ëkŻ˝ćv»ďż˙~˙Ź7Ýt“Űí~ăŤ7ôT ŞJTý*5p3çc1&ËĆE-LL@(ŃtżţúëŻÝşu?~Ľ˙Ç^˝zÝzë­›6mŇc`P-č=3AuďĽu9’Ä´ A)1ą”'€Fš‚ J©Íö·¬ I’Ž{Ć Ü1FtÜ‚ÁóŞi]Č ­ie-š0SRR~řᇗ^z‰ň믿îÜąsÝşuiii:Ť Âź(r<ŻŰ:‡ŞęYëĘ$I˙}ˇ~”,s@hŃL<óĚ3Ź<ňČâĹ‹cK—.Ą”&$$TľS¨’’’,Ľ:TŐuf‚™63aÜ2cÄ´ż@š‚‰ćÍ›/]ştéŇĄ{÷îĺ8®U«Výű÷ŹŹŹ×kp¸°o €ŕ'ŠśŽ˝˛…Ó1ťóĘŚ[ć` Ëb4©©©ţ¸zőęąsçBxžONNž4iRŁFŤ4ŤŞ?•MŰÍA‘$Π%Ć(‚ -š‚ Ż×{ątË_~ů%33󫯾ҧ „)Qäm6Ý>“UŐĽ:†Ř͡EÓ'ý«Żľ5iҤ_~ůeÓ¦MS§NŤ1cĆĆŤ{ě±ýű÷˙ńÇz •Ž3”š×8Ô¸´J™ĎÇcg„MŻşéÓ§7oŢ|đŕÁ111.—ë®»îjÝşő¬Ył\.×ăŹ?N9~ü¸Nă€đ$Iz¶·`ŚŞŞIÁ„,sŐ´ŕ8ćóˇ 9„MŻ:Y–wíÚµlŮ2·Űíőzżűî»Ý»wK’äńxćÍ›Gqą\:Ť–ľÝąŚ,LYáBF<Ď<,s@(Ńü>řŕóçĎź4iҤI“ĘŢ{ď˝x˙ý÷].Wrr˛ć@8EÝş†˝K`]ńBĚç3ŞÎÇ1A0âĚŃL<ů䓉‰‰üńţýű !uëֽ뮻{챂‚‚¸¸¸¬¬¬ččhťĆ a1¦oŠcÔ´LźĎ¦{˙q?Žc‚€™ %š‚ Žă=ł=.„`BŽÖWcLQ›Í!˲ ąąą6›ÍfłQŠĂ@Ńw¤ży·9ű DÁŔyšf&<8věŘ˝{÷^řŇĄ”öíŰWóŔ Z$NÇ®ˇg^ónA0p™CL@(ŃZgbĎž=ľÄÄÄhT#’¤ç¦™Í»EѨš|™€ŁéĄ°uëÖ–-[ţôÓO±±±ďĽóNNNNttôË/ż¬×ŕ ěɲž9ÇÁĚś CŮ® @š^ueeeőë×OHHhٲĺľ}űnľůć›nşéő×_×kpöd™'D·`‚R“¶†B$Éf\·ĆĚ+ĺ  ť¦›5..îż˙ýoAAAłfÍ~üńÇcÇŽ>|xßľ}z ž$éąX@©jZ¶(Ug‚ü•IjĐÉt§éfíÜąóéÓ§ß~űíöíŰoٲ%##ăСCÍ›7×kpö…Óqă—™˝9D‘ę:ZĄöţĐť¦WÝÓO?ťššjłŮŇÓÓ `·Űëׯ?qâD˝aOďś óľĐëŰUä"ćĚĐNÓÖĐZµj˝űî»ţÇYYYYYYz ŞYćt\, Ô¤Ď`YćŤK ćnKĐ.|Ó%%%]ů gÎś1g$PIŞŞz<’ŞĘ„(şśP’·[:sćŚQ»6˙âńđ’$ ‚`Đůe™/.v;ťg :?€ľ4ÇŹź8qbăĆŤ333333wěŘ‘śśś••Ő¨Q#˝ĆWyůůůŽ\5ĽËéľ5TQĚřB/Ë÷Üsz ›ŞęąĆń×9©ˇ©‘~F‡,Ç|>24íćhѢŲeËĽ^ŻÓ餔Ž3ćŮgźĹ2T’}4x^•$Ţá0rŢ€ř× Y8Ž Břl݇°ČÍzń–KJ)Çq-Z´ČĚĚĽĺ–[ô„?EŃ?ń€1Ž13f&‘›98NE2ôůZŔSĄ  `Ô¨Q;wîÔĺśötĎľ$„pśjÂ>I26dá8âó!€ČÍúÉ'ź\|P„Ĺ‹ŻZµę˝÷ŢCr¨ UĄşżgŚŞŞá3‚`3˛1f& ÄčłĚáײeËüń×_Ő6$¨.ô-2áG)3"ŁQŚ0´ÎÇ1IB0!CĎ—śËĺşćškΞE1y¨¦L&!¸ţă„Jf& „čů’óx‘/Ą”RÚĽyóĚĚL”Ó€J2âźR3ş˝›śźbáyŢđ@;Ý–9ŞJQxÝ?’…šP´J’ &a˛Ě;’ÁWĐJ_€eÓCÇ1úmJ’ţaĐ%Żbô%tn >—«AH’ôß͡(śˇ…®ý$Éćt;g@)‚ áL\¸Ŕ čQÝkB=3Á#„J’ţ…Ŕ/†`B–9Ŕ2’ÄéľX Ş†çLłĆAŚot `!Ş(úďć0şµ;Z/Ć5ˇc€.4˝ä’““ŮE‹“”R4€ĘEý÷DPJŚ®)ËüĹo}şc 32ö€eŚ(UI©á»9dY˙ţdcŚ"€Pˇif"//Żü1clË–-Ď>űě”)S´ Ş#’8ŽýlÎg<ĄĚçł1ĆP‚ź¦Ż±‹‹ëŮłgóćÍßzë-˝áÍ™ Ă?ěÍŮdÁqLÂmĂ„+}îTĆcěČ‘#………n·[—s@Ř“e›îŤĽ)UŤÎ[4g™ăχ`Bţ ­[·ÖrN¨>tßĘAˇ”Ý›C–yz‰afBžw*Ą´QŁF“'OÖńśĆ$‰ç8ťY™PNŰ„çä|0aÂ…´Ó-“ÂóĽÓé4c˙5„ÝË_úɲáE«Lč%ĆqŞŃ3ô˘éNŤŤŤŐkP …ânĆ$ń&´˙ ” ¶†BhĐçkĎçA—S@őaD΄żs·§ý˙!„rÚÇDË4ÍL(Šňá‡~ţůç‡"„4iŇä¸ďľű(ĄŘ W%ËÍL»Ř*fôćŕyćőb™B¦—\vvö«ŻľęŹ$!ČĘĘŇ^gb۶míŰ·÷?v»Ý'Nlßľ}ZZÚś9sTUç\-°,s„č_NŰčݢhÚĚ–9 4h &>űě3›Í–••µqăĆŤ7Nź>ťçůE‹|BĆXiié„ ʆٳgĺćć.Z´hĹŠ_ýµ–@PQCf&$ÉŘ™QA°éľ ĺRcTU‘Ň!@ÓmĘq\RRŇ€˘ŁŁŁŁŁئMŤ»9˛˛˛:tč@aŚ)ŠňÍ7ßdff&&&6nÜřá‡F0NŚ©3ÁTŐč™ žR3Zt!‡ˇé˙é§ź.((X¶l™Çăq»ÝË–-Ű»wďرc>á·ß~{ęÔ©üăţ‹ŠŠĘĘĘZ¶lé˙±uëÖű÷ď×2`*˛ĚP“˝5Ôf§—D©IĄ»4Ň”Ýóź˙ü‡16iҤI“&•śřŔëőúŹř|>›Íf·Űý?ş\.ŹÇsń/&%%UćüçÎť«“îT˙ IDATü`Ŕ‚ đĽ¨o<ÁSGIIÇ)Fd‚«Şęv«˛,Š˘dt¦ą˘H%%Ć.ńľT‚(Ux„ O=őTť:u8ŕ?ârądYEŃápBÜn·ÓéĽřóóó/yÂJ`Eá úŠŻ(Ô¸úy˘hĆnB!L–č]ŕrô¬€YAU“'~űí·m۶=űěłţ۶műß˙ţ766¶   m۶„Ý»w7oŢ<ŕŃ@°QU˙nťżßSĘ…Źő=m9Y¶EFŠťü˘ka™B@ŕˇ»ŞŞ‚ řűŹÇÄÄGGGÇÄÄ”7%ŹŽŽ®Ň wîÜ™źźźźźżlŮ2‡Ă±sçNŽăú÷ďźťť]RRrčСśśś;î¸#ŕ@đ`ŚÉ2gP#cÄĐF\˛l3+“"€H0Á[łfMzzú¸qăĘ4¨Oź>ëÖ­Óol„2zôčZµjedd 2¤Oź> Đ÷ü`ă>ď ­¨ÍUŽă ĄůC0ˇ!`bÇŽO=őÔÉ“'/\Čŕyţرc™™™;věĐ8¦¦M›nÝşŐ˙ŘétÎś9sË–-6lČĚĚD1€°ˇ(Fm°dŚęľtRN–ÍŰĘ–9 4ňŮüöŰo«Ş:xđŕ7ß|łüŕęŐ«ďľűnUU.\¨ßđ l©*µŰ%#Îlł)ĆŐz’$ó&x^5-pĐ"×ŰÖ­[ívű3Ď<ăßdAˇ”ş\®ńăÇŰíöm۶é:BOŞĘô‘/ËĽqk(ŞĘÔ9ýbŠÂ••]b @° ä%áńxśNgDDĹvv‡#66¶´´TŹ@SUŁ8N5®ß¦˘đF÷ţ(ÇójiiŐ2Ů,H0Q·nÝłgĎţöŰoŽś:uŞnÝşz Âśq»9T•c̸ś ó2·x^)+‹4ír äUŃ»woBČSO=őĹ_ś•)50oQ–mşw:˝›MőxL@¤hŐ°aĂÖŻ_żwďŢ)S¦\xśRÚ´iÓaÆé34kŠÂ´çÂĐ:f6Ëŕ8Őëµ›v9€€ňÍ ::úĂ?|衇bccýG(Ą111÷ß˙G}T~ŕ ţ*ij\Z˘đĆ­ˇTŔóŠĎ‡™ ĚLřC‡qăĆ=óĚ3GŽ)++‹ŽŽ®_żľÍ†ňPYŠbT5Ć inî'Ë&dT@)SU*IĽÍ&›P# `üSJyžoÔ¨‘ŽŁ€ęCUyžWŚ83Ď«<ŻqfB˘Öĺ‹Bx^E›ÍfTź]  $XCU©au&8I2jk¨Ďç`&Ö‘RUÎçCÚ;` E1Ş´ĄÄçł1c>ó=‡™3”źĎaÚĺ`¬ˇŞÔ äŽc’dT —×ëŕ8ŁÖP.¦ŞTŚšeĐ ‚ °†ˇE©ŤŰÍáő:ŚKȸ$,s@đ ·ýIIIV*ĹČ™ UŤ &|>Sg&(eO$c »9 …[0‘źź_ţ@ĐbŚI’˝ĽŤ›™đůě6›!›P.‰çUôú‚ŕ‡e°†qź÷§—3!v3g&l6ŐíFÝ*v&Ŕ˛lTÁJ ‰Tc˛Ě) 5nBĺb§x˝& Ř!kȲQË”2}‰˘ÍĚ}ˇ„žW=l …`‡`¬šÁ„ÝĚi BĎ«‚`7¨î8€^L€5…3hĄĚ }§˘aćç:Ą”RB)C© r&Ŕ’dŁÔLFC—9Ś8íU!€ ‡`¬a\Ń*0 !˘h3­eh9Žc˘´ j&ŔƵßä8fX0a7łË—źŞRA·š@fL€5Ś«3A!9Ś1ŹÇšĺTÔ† ‡`¬!ËĽAŐź8ŽÉ˛!on>_¤ÉŤ9!ŞĘ –9 ¨aę ¬aP΄ż‡…Ş2íáńDšYţŇŹçTÔ† ‡™ °†q0 !<ŻQQŰëµ›?3Áó¨¨ ÁÁXCU |˙QU΂>ź©Ť9üx^u»13A ÁXøś rľ×—ţ+‚ŕ°bfBńz‘3A ÁXCUŤ-Ř`DAź/Â’™ äL€5Ś«3AÎWÔÖyfBQlŚQŽ;źăiŽSEѦ(”™_ă rL€5T•ŁÔ¸fĘÎďo‚`3ąËW9ŽCEmjáł54))éĘO(--5g$pU’Ä1&˘hĐůeŮ~îś×fÓóUölŚ˘ČĆŤů E<}ZŠŤ-5yR ’Â'ČĎĎŻpäŞáX‡ş›PÇB#±ff‚1*Š(‚ Á Ë`Yć9N1ň ú+’a~—/?JQQ‚‚ °cúç4T¸‚î ˘aDíŠĘPUĚL@PC0P›q[9!Śqşo=E»U3„ź/»9 h! 0fH Ż (:ç„ů|‘”š]dÂŹç·;Ę’KT‚ °€˘Ř ­ţÄŐ=Xńů,čňĺÇqŞÇŠÚĽL€نVŔ¤”ȲÎ3^ŻeÁ„ͦx˝& x! Č2oh(UĺtO0đů"ÍoĚáÇqŞ×‹ĆˇĽL€ŚX†¸ĄŞ$é\2RVÍLđĽâó!€ŕ…`, (ĆÎLPJtßęóYLPĘT•WŐđ)3aÁX@UŤ­3A)“$ť?zEŃnU0AˇTô… …`, (ĽˇĄ©)Ősk(cL’x˙iő:gŐQQDŻ/R&ŔŚqçL0}ws˘ÝŇH‚PĘ03A ÁX@÷.\PŞs9mIа6@Ż/f&Ŕ!73!I–5ćđcڤL€…ŁF~4ë>3!Š–µ őŁTőzQQ‚‚ °€,ŰŚNŔ”e} ‹gx^E{Z&ŔŠb3¸Î„ţËÖÎLđĽ‚ö´Â­JRR’ŐC€«“$ŢĐeBŞęöe‰1faËP?TÔ†`nÁD~~~ůcAKQxC?›9Nç™ ŹÇ˛._~<Ż € …e°€˘ŘŚOŔÔóýM,&8N¤L€…3ľ¦ž ^Że-Cý(e”2A`ş·CĐ ÁX@QlJÁ„…-C/@% Ą& ! Ȳ± ,sŘ9NŃń„@EmZ&ŔF'`B(ĄŠBőZEëg&#‚€^_ŚL€TŐŘ®ˇ„BŞęłŇ!ËvBÁ{Y+Š"f& ! Č2otß,J‰^Ą&$)ÂÚ"~ŞJ}>;0!! ¨ŞŃE«!şĄMHRDLKžW=TÔ†`„`, Ëś 3zmč°ĽË—Ç)& 8! ¨ŞáËŚ˝"Q –™ Żí9 ! (Šá3:VÔ–$»ŞZMđĽ‚`‚‚ °€ 3ŞJ ŃkfÂ$Ë>vs@0 –`âĎ?˙:thJJJjjęłĎ>[RRâ?îv»'NśŘľ}ű´´´9s横ő Ő ť93’¤ĎĚ„×kqc?žW!‚±`yß(7Ą˘(#GŽlٲĺÚµk—/_îőz§Nťę˙§Ůłgĺćć.Z´hĹŠ_ýµµCŤcŚ>U•굉Ň糸1G9J*jC Š`âčŃŁ………ŁGŹŽ‰‰©]»ö“O>ąqăFƢ(ß|óMfffbbbăĆŤ~řaa@–m&”¦¦T·ś‰ ™™ „pt‚"hذáŽ;ŽókyyyMš4!„•••µlŮŇĽuëÖű÷ď·l” Ćt+'uŞĘé•čŕó9,oĚáÇEtô ŰőRTT4oŢĽŐ«WżőÖ[„źĎgłŮěöóŻ—Ëĺńx.ţ­¤¤¤ĘśĽ¬¬Lǡ@ŔĽ^'c‚$I†^EUĺ˛2Éívk?•ŰÍ«Şhô€+C–ĺ3g§ďf\‚%PUuѢEóçĎOOO˙â‹/jŐŞEqą\˛,‹˘čź´p»ÝNç%¶Eĺçç_ňś• 2Ŕ|ŚéŮü’T•굟S쇠˩4b í9 K01oŢĽ5kÖ|řá‡Í›7§”Bc5jÔŤŤ-((h۶-!d÷îÝÍ›7·z¤ •99ä|;1­#’äp:˝ÚOĄĄÔçC© :A‘3!ÂâĹ‹,XТE úWť9J)Çqýű÷ĎÎÎ.))9tčPNNÎwÜaíP@&äLť‚ IŠ0zkĺqśâőş¬@EA13qüřńŇŇŇîÝ»ű¤˙Ż˝űŽŹŞJ~ÎmÓÓ+BI’˘‚4W”˘bYwëÚ^w]Ůź®źŐÝ•dU”"ݏË+˛ŻWQ, ňéÄP¤$¤Lę”ĚĚťŰÎłaZ&™ÉĚ$ó|˙JfćŢ9óĚť{Ď=íÁ㸠„~÷»ßýío›>}:˲wÜqÇM7ÝË‚"A’XšŽÂl$I©LpqV™€ô îÄEe"???иťN·dÉ’%K–DąH€©\A`¬HR&>Dd'‘BÓP™ń(.ş9 E’Ř茙H•%®‰˘(Ĺí†1 î@eÍE)Y´JŘđw)4-ĂL‡ 26Ib˘ł d¤ĆLÄC–/ĆŠ,Ó˛ §n_ŕDŽÂĺ˘YŽ@ŁBś¤ ő ("ÚX—€‹@em˛ĚPT4ćGDdĚ„Ű­Ź“Ä?#°˘67P™D!8 ëL`¬ČrĆLÄO–/h™ń*€h“$: +7`L"Ô2ˇŤ“,_*ČőâT&Ńť– ‘– AĐĹUË!¤çń*€h“e&Z-¨L¸ÝńŐÍ1١ Ţ@em˛Lăžź1‰Čś·›‹«nš–ťNXĨL˘M’XŚŁpŻ– B°$qqŐ2ąľ@‚Ę Ú˘!„1 dF\Ą UQ”ĚóĐ2â T&Ń&ItÖ™ČlQdŁĐ#Ó%4­Ŕ oâ"khĹş€NČ2ŤP4*ágE6 E튒ťNčćńĄŻU&:¦2‡ŠńIQ˘Ôw ćúb©Ű{Ÿ›„‰1! Ëqb¬ËŔĐÍ‘¸D‘Ĺ8J‡‡,SQ€˘ČĹŰ „Ă(’?^GúZË]EĹš–/»lo¬ N7֙ȇđUž-7–ş) BŢŁ0że‚íá,_$Mlµ1If|ˢ`AĐčőΞ,]•‰ÄŐĐĐ!• }˛ÜĄĺ´ Mä{ÍëşĎËŘĎ­ÂŻGżţ>iĽďĹ:ô+´_=ť24Uj[X»r[Úµ˙—4ˇKEEXQĨL$¨övŰ­S˙0±.H,]śdA®´íÉ›«5ü>mP—ŰËżOďűƲ(ŇÚ0˛bńĽľÇş9«÷4üoŠlk;đIş°%Á<ąľ@1 Ş­-Ó뢦K-I’íĆÖ-&9Đ \”.ß]M?‹T‚ ë,ÇóúZţ#ĺöć çĎsýç9E}[B°Ű • G 2‘ ęëű3ŚDÓrk+T&.p8Śp‚ŽEaB€ycëV†ČŘŞŻ #”!¶ř>Ĺ0rÝn·†¦{¤2q•ĺ˙ĆŮ÷5˛™aQąBCčŰRTd˛«)P™HD„ ¦¦Ť†×hřúúţ$îĆŞÇ€ÓiرcöŃŁ—Ĺş A–©ĐZ&Čľj¬}3›üu‘\ŃěďŤč0ož×ő@Ë„2Üyüć–ĎĚl–‚(„Ť”<ˇ.ôí)Jv»ănÎ*HdP™HDííÉjă-MK‡©˝=`r‚$z×®©˘ČVUş\°¶`Ź qĚM¤ąM´AéěLEŔ×ř}*ĚlÝ‚ ‰ř‰,ˇé^óż,L˛„/´.đX3Ěu:ô=P”b±dD¶T„*˝ž(˛‚еqÝÍÍa›-ˇ+„ Ż´ZÓŚFB¸±17Ö%ęű%¤ĺ´Ż´íÍ”ZmtR§ŻtRş,±É÷qŠR¬ ‚†¦Cě‘!ibË`ţ,&A^OôŠó7 ëdL»¨˙T[ť´>Ó_ůˇią‡'¬Đ5P™čő~üńŠŠŠ+ş´ICĂšľ0óžaÄúúţ=P®^ٞräąs…FŁ!¤Ő:Oťý>=ŤN—Ó&I’őĆÖ-–j!'Ąč>ʉâµ[Y¦ĂÉőĄ(8ô§(÷›×?Q»âÉóŻ”:*8…÷} M¤»Ěďšäv+}Q ^Ŕ\?ˇÁ(·‡¸t7EÉ.äúq*˝›˘ŕşşŐŐCBď@%›ÍąçV˙Őhř††ţ {—S_ßďČ‘Ń&“U=‰ł¬ĐÖ–ÚÖ–ërőq!Ś™ 7¶~ÎYÄ!­ó¨`*I¶§K­^ŹcLÂY)RYOµ»SŁ?ćąëją<Łâ¸Çüösçžż¶íë$ÉŇń5ł[żĺ<ćwf A8Ď]â{Ń´ÜŢž”°?[‡ 2Ń»Y,é’Ä"„kkýOÁ÷eµ&+ ëéć (Y´Vk"ötŘíÉ»w_­ŃđGŘQ9sć’–ŞĎ Ą©`6”q—^rď1ŠB…3ëA’¸Đf–ŤÂßÔň™ZKpP†6ŰEëg¶}ů×ę%w4ý»źP‹2Öľ˙Ë7 l6ń7Á#%ß]zR1ډ ŔŠÚ ^Ŕä˘Ţ­±1!ÄqüéÓ#‡ 9Ę&­­YŠrŃąLQpkkVJŠ%Đ&}’ pee×`LXö˘ůýz}{uőŇŇý, Y”zDgÍ„&ňܦmtR§ă.˝$Éj Óoډ$u?qhČŁ‘Čë÷ś"´1©˙Ůsf6‹&ňöăíűŽčGşN7łé ö˙ˇś”ŢďěÖ@0&‚ Ńhş°:=Z&z·šš!ŤKŁáŰŰ“Bś†PW7ŔÓǡâ8ÁjMé™Ć)EˇöîťâtôzďŐ?)JQşµµk÷Ä t„PZ­+ČóWÚö¤K­şkY¶ť”n¸łŇëAŚ Çu˙r+ŠśW]ÓŻÉz]Ű×vÚäű”ŚéF6ÓĚfđg\”6ČjNJ?ĚU‰C°CQ2!á&X R 2Ń‹ą\:›-E=W* uöla§›( ŐÔ”«ŃxU&řšš!áŚSëuŽąĽľľżŃhóű,Ç ÇŽ]ĺ"%Y¦¤«U×»ô{aÎE醻Nŕ‹» (JQsĐtŹ$qˇ ąŮö%…gž§/‚°…Nć©`K˘ÉN’í™bseSĆ`‚ř‘@׏ľ§ą9Űó·^ď8ujd§«5•ďěĎĄHgµ¦ÚŞŹ9{vȉEIIÖ@/Đj]--Ův{Hó@W‚‚Ścčt˝Ë@$Ě0DJ˝xŔŁF㪩Ü튲 °ť-‰Aú»Ď_Ńőá~a„ú ő!ľé9@ü€1˝Xmí O,MK<ݵZSSSu»67gů]ÎŹÜŢn ľm/ŇŢnjjĘńű”,ÓÇŽ• öÎćű‘ĆĆ“ÉÓEo¤®®Ńř™Że˛Lkµ~sg“AüąÇán_%̦J–Vć?›Ó´Ś¶Ű“““Űş±CAčd-mŚ”›[>ᱦ«Ă;ü’ť-6†řbBpčK’ĐÓúNe˘¨¨(ř Ž>•SQ¨óçs´ÚvIşĐ®+Ëň©SýFެ˛Őąs9ą$É{¶ĆŽsç˛ÓŇŽöTqŁkßľÉuu.z˝ !Ń'aYëÉ“Cł˛*:¬îŐ»íÝ;Y«u–”ěŚuAĂÁŠ˘‚±ď Śµî‘%„PwÂÎČîtWý &żă‚@Ş«“‡ 9ߍZ­”˘ľżŹ"×OýřÚ6&[¨*TJ›ď¬’L!MF%DhkcÓÓűÔi ô^}§2qäČŻG:­^ôjK&B¨ă2‚ZműŮłE…… “eş­-G§łű>Ĺq|că@Y¦{(§Q4ńĽˇ©i`JJS8K2ŚdłĄ·´ôËĚěÎE(ި1A v@«ŤńĺGQYfr{=Ž)qţÔq]Č®rQşKťG0]”‹\ŁqUWŹ2¤;e·[x®&at[ë§A†Jt•ë†ó§8Ĺ-P\§ůÉ(J¶ŰĄkÄ?3ŚĂ‘ěpÄiÇySÓŻž`Š"ŠB55ĺÚÄjMÇř]ĆXÝÖnď ‹5ŐÖE„źOaÄšša)RĚ©1A54äwúâžFň»xC¦Ř˘—ťŐýµś´nŰ;CË Ng˛ĂŃĺť!·[xŮo2Áľ/Clmď⬓`0Rîç/c™/š–`‚x•‰€,–Śť;oÝłgf‰‚zHmmoÇ3˺ϟ¸ŕRkknygŠÂôÔA„પ’]ň]ŁŐ:ęꆺݽ>ď—'&ŤłşzDĚ—M”eĆﲒÜŐ8ä%›ü’0ŁQřÉâŐś@e±dÚ*Q 2Ô ;o´lka"Ü6@9O¨ eé*Š’E±ËĂTč!P™đĎbÉܵëFš–xŢtđŕ4ŻUžbÎé4ą\I 㽪’Făjl¨5Ĺl컉Ëňµµ˝~ĺÇÖÖž×ůˇĂ „kk‡„ż«ŘňÄ„e›-˝µŐ˙ĐÔ(¢观^âüÉM…]qÇTŽĎF†qź;7˘;s»µ9^ký–#˘@EřrÎSÚKř҇R”Ý ~@e‹%c×®hZŇhx˝ŢÚÔ”ęÔĺ±.ÔEZZrüŢ_bŚ0Főő~®’ÄZ,Y^ËUuÄqn‹%+śDńŕÜąöˇŐ:«ŞJz{ŢŻŽ1ˇią{—Ő’$Ćç M("ŹŕOÚic;§ŇO¨÷şł×hřÖÖÜn41Š˘Ö_Ëɛݶ—53‘ďtRúˇüŮP^IQD–Y†s8 p zó´I¨“č0FFŁĺĉ1ŤŤq”Złľ~(Ăře©Ń8Ďž-ň˝ţY­™ÁG`L"VkfËe‚ ­ŻŞŐ¶Gj‡,+đ|R÷ZČă„WL´Úöúúˇ‚ăő |~Čę˘Č8Ü%]X[č>ăő ĆcŇÚÚµäňj^c&Čś¶ĎD‡_Z_ĹšäödŮĎ(i_Q„Ą&@\€ĘÄE:¶Ix¤(E«uüřă4žŹŔH+›-Íĺ ëöK–™¶¶ŤĆ˙°–DQcłyŹ~hnÎ aL"¶ŮzqĂi]Ýŕ@#L» cŮlŽý ĹnóŠ EB¨¦¦~1,’$±>yOČPw•ßôW]ĺ¤ti’źĺČ(JiiéZeB’8–őł,ÇPţěpWeO4K¨ŠK-IEɲܻ›Aꕉ˙PŰ$Fđ]؇ăIb+*®ęl9Ľ`AgĎŽüî»_<Ĺ`°µ¶ć†Óom6đ;~ÍC§k?s¦´ăYF5v{z ž–囚ßyܲZ3ŽäPŇ2u E)<ŻŹ‡•Ýŕ7&çnn΋a–,ł^uN†¸«]82A¸źŘŕő MËŤe…N[Č)ŠčőöýűgNś¸IŻi„B¨ˇa`yů/hZňlÂ0ĎÎś)6ě`W ěp$c¬0L'hÚ][[šzaŽ\SSžße‚|) ÝÖ–•”ÔË’t"W_?8Đ8’0qśëüůK Ęőú 팂 1Ńéě§N]6pŕ‰Ş~ůEjiÉ=~|śÍ–áUŞBľŠŠÄrÔ*žŇđU;M˝×h\uuýű{§)D’8ź9ád¤ëD$ĘŚŚišČYRł™í¤őăřÓ§KĎś)ĆBQ”Ä0‚^ß®ÓY““[˛ł«ŤFKđ=) Ú2!IŚŮśđŕ/ľüň¬bó8òL——O ĺ>@Qđńăc÷í›ÉqnŻ6Ávňäę’Ř]ŇÜśëvw>T«uť;7Šç/tB›ÍBĽlh4®óç{߲Źfsľ˘řx#Bp]]AOěĽç‰ E)‚  ˛Xjd‚š›sËĘćěŢ}ŁÓ™¬×Űć˘E«JťGÂźęá¤tůsľŹł¬ĐÔ4Ŕé u)LQä$É{‰1í?Ú"WÔ@0Aýďž_ #šLŁŃf0ŘŚF‹N×NÓ˛Ó™ÔŘ8čر+÷îťő”Đ( IDATŃK[Ao”X• IbĚćjb˙ţëĚć|ťÎn4ZşÔŃ®Ó9,–ěǧÂćvëöě™YY9Úhló˝cLX–ݍ¸ş«#1ëę hşójĆ„T_?!ävkŽ”P¶B1ŚĐÖ–­fěEŞŞŠý.Ş)Z­ăôéŇp†ÍF_đpś; «§t¬F´·§ŤmŤëâî6bą‚ŮIElehâ’e»Aqří&hj uŽ· hĺ˘×™bKšlá©˙uČĘW…˛fG#š–9Ž×é&SĎë¸6H¶w"(ŽłŃĐ0HmZĐéěáÜĹ –ÚÚÂĘȨ÷Çń #~÷Ýíń?M4ÄčtíÇŽ]hé”ęęK¸NŁqX­ÇŽ]zkąĂ‘üĂ7:ťÉçbYˇÓ{â×O6ş;)=pc®Ŕß° ډ$±6[z(;]‡Eë‰Aq qźµSQ…Đ•ôˇÁv‰Éd-+›ÓÚš‘rő=˛Lť<9zçÎ[ËĘn }< đ•@•‰ă8Á`°i4.ŽăiZî^C˘Á`«¬ŰÖÖů<=BP}ýĐŰ0T:]{eĺAĐu:űŁ#–››űGdąĎ(hl (4EEl.@,+čt¶}űfTV^Ď ;BŚ MËíí©ľcA'NŚ®¨¸Z«u0Śd0ŘĎźvôč„P>2Ďëw1ńá_šdI‘­Čďu1'ĄěöS™@Q”$łnG‚pQ#ÄPţ,AD«Ă€&ržjh%ëtŽýűg´·§„ż·>¦˝=Ą¬lÎÉ“cŚF«,Ó{÷Îđ Z]•‰SGbž81¦ÓĤv{EI]ĘbEÓ˛,wçBKQ˛Í–ÖĄ\Ő„ŕććĽöö”(g¸®Ş*f.T°ÂÄ0˛Ńh9~|ÜéÓ%ťŽÇŚ˙°¬»ąů˘5O…:|xJUU‰ŃhńlFŁĺěŮ‘fs'«ŁŠ˘fďŢY’¤ }ŚĹ`÷ąž„ŕ¦4éR›VńŤĆi6 %°Ű­íđs#ĄŽĂrű…COÚ)–…*/źËez‚Ξľk× Ng˛ÉÔFQŠNçp:M^Qęžľµ˘˘P» â‡VëljĐĐ0¤_ż`玖–4:ťĂfË8vlü¨Q?D§/žńĽţС)--yZ­ŁăČ6ÁŢÖ–säČÄââď#|8AôµĘÄ‘#G<÷˘Š…^o«¨¸*-­>Č-]míЇ^vÔ˝Ç '¸Ýúňň_0Ś0dHĹŔ'|ËĆóúęęKÎś)•$NŁq©#;Ý*‚jk $IŁŐFµ2.\\[Ďťe±dŹ»µczWLÔśőçĎ_2lŘž×íŰ7ĂjÍ0-ľmůjkůľ}3'OţČw)$BđˇCS››ű›Lť\ˇ;n„ é:aŁzä MĹoeBU_?4xeB–)YţĎ`ç(,|éE ŘTˇ-Y¶YiŠÄUÁrölMK#Gîo˝WCĂŔŠŠi˛Ěčő6ßăÜ`°ÖÔŚ „ąôŇÝ8ß&2čć #) }ěظ@/ŤŐšŐŁł}qśŰd˛°¬PY9vűö_UTL±Ů.,ŃmłĄUTLŮľýW••cYV0™,ž ~­"KQ¨łg‹"pĽK0F&“ĹnOűá‡9ęlĂ^­¶ýěŮ"»=ĺ‡ćŘíi&“źš„ŠeŚÉŢ˝×{eo!ýôÓ•µµA&Bű•#6ę/Q=r…0[ŔWů}JŁqŐÖv˛™$qÇkŹtťŚdáBC0•ÂŇU!ÂŤm§O_ZSS©}ö.˘ČVTLŮ·o&MKźšşđ»n­­-řé§+ăy\Tęk-qʤJ„P“âu·a0Řęë ŇŇüV‡ťÎ$ˇ GrđI•,4‘›Ůôŕ÷= #ŤEÁçĎ_RS3Ľ˙.—ÉnO#„Ňëm&ČřnńÉi'­K—Úü>Ų‚Ă‘$IleaEQ“ž^ëYm6: _zÁDÉ›Žë "Ň2~NpěŘB¨Híł· ť:uą˘ĐťVy1FĺĚ™âţýO$'÷˛Ä1•‰¨˘‰ôůM'­_žý‚/:ŤbL8ÎučĐÔ@ŰŤ­lvSK‚z5÷AGłÝ(ŠŤVBPCĂ–us\çiĂĽ¶Ş©r_Ěhlíˇ%´C§Óµ ‚ĆéLę˝1á8'E!żé¶} –ŁG'1Ś8pŕ „PMMÁ©SŁuşönś%ÎźznŮkµ %Ěř^8 ˇ¬ÖŚôôzżŰ"„$I#Šę$SlÁDaáK/NZźą– ĂŠBUTL‹ěn{ٱ5ÄAKEŚFŰwßÍ˝ňĘO23k{ş`}T&˘j˘}_®hF"šlßł3i‚׳,+°l”*ÂjIĚ=l^·2çAłˇÜ©`Śtş. Żë¸U76ě-:]ťĚW\ŤK3‡ŐÖňŠŠ«1V8ÎUQ1­{5 †HĂř3­LŹÍWÄ!R®ŘXĂőóóîŚűĉ1&|hkQdíö4ÁŠĆźJ•-f*ÚK58)ÝÎň÷ÉśČNâ8w7ŽŘDCQ˛Á`ÝłgÖرźggźŹuqz35$Y¶ÝdŮÚ¤·0é7Y¶&˶č,ͬ$lZľ»öŽ–Ź0JôŢ tžÖň®×éÝ›˘2@¨Ł‘˘ŕ쥢’#6ú}JŁáíötQôÎăĺ!IŠşđą˘¶đĄOúĐčż5@1ڤŐ:šV]=\Íóîvë˘<Í»–‰¨!7µ}.#Z X„#ËĄÎĂ;MWƢçň˘’ŮĚńíö.?ˇë}ÉBÉÍzŮyžë'P\˘ő GĂ„`ŤFęvóľŠÇ^«Ę‹ŚNq#D|Źډ˘PçÎŤôĘľáaµfŞÍ-Ĺ©Qř(-|éCDL’l7łť/jzË ‚ 9th ĆŠšç!ÄqN˝ľ]Ż·$%µćäř_-Ae"J†đgG¸*­?/ÜĤĎmŮ|Z3¨–‹Rč@%!›ŮĚÇĚ˙órî#g5zcI•,Ź5ü3I¶»hÝnĂčăşa§4„Hݱş”k×W©ó(ßĂ_Š“Ö ĺĎ–™®đű,ËşŹ»2ČćFcBh(Ö ¸"ľFgÜ´ö·ćľ—~Ë^ĂeŘŽzŽWŻ!HQh§3ÉnO­«+ĚË‹ĚÂb}T&˘€ĐDž×˛‰" úy„ÁŘAînÚ°´ßďdLGëîŮOIBf,LŇcćµ/ćţWożâp_ÓŰ:…oŕ˛)"O´ďťj/“}X?bŻá˛“Úh«D§đ„óŤLfŹľŤ kÇ8+Ţ%·ř˝ ł¬ĘĄRÇŁěŚUeÂIéÜ»łůŁI¶=ë3ď0ł™pôĆ–šçÝł¤U—–hëŰzűmhŻ@&Ú÷fHm¶‹—Ďł1¦\Ń|ąăPGNř/ BČEéÂó›Ţ×+ÝY13>Ś”;Z6ĺ -lBHÁt+›jfłZ™”QÎżiúßż×,ş«ůý~B}ŻýŚŃD0Q.áOőNyč¶|wŤ€5¨‡ó\ŚEĚš Ęh"EyáK_2¦ëąě,©ůéşĺ—9a¤ŔŃ âT&z\˛lżÖö­…Nň}Ş…IźŰşY§t!ąs•!ÔƤô꯵|I/ŚI¦ZżáŞlaĽ×ęX«¸Ěqä˙ŐŻĘ ;cźF8Ĺ=®}˙łu/?l~óçpEđF†ń§•hÝa›äî/k–/ś·SĆh.|H“bĄ“ďozçćÖ-zĄWP { 2ŃănjŰŞSü/ó'P,GÄÚľyITŤ\ćtŰw3,_G§<‘5ÂuňÖ¶-NJ$ŻŁ‚é6­ť6>Y·ęŠöć°x#ɲí:ëŽçk_řuˇ ‘›ŘŚvÚřdÝĘ+ÚFđm.u‰NÇOii\7ÁľŁn¤Z #]'’¨‹D–@±u\Îűîgj_ĺ:G/+P™čQd_uEűA ťčMLúű®!|U7]v^U›5Ëş˝·]hI¶ŘxÓ;&)”©†<ĄµŇI š7Ě´l‡Făź‘~Býť-.:żt–ĺkÖ5°YęőľC¸ľęÖ%Ů[˛lĎZ˘S™pR:eúUËĆ»š?řyfGŚi˙ŃIÇ`RhMlş‚ń#ćuóš?Ň*<˝ NÄľů.¦&dűLşzv˘‹śĺÔłŮűŻ“ŃDš×ň‘ť6ąWVGb^cŰyNÓ_ĆţÓ'b˘/ä9®›d g(%Q)jaRooů¸žÍ:ĎĺŚCđu!’vĘPĎf‡ĽUdčçCŤo‰ }1‘bÍlÖ,Ë—"bv$O ůP¨ßÎĎ<>kçť焌vV ĺĎ*jfR}+d‡krĐ!Ăť˙¦2Ĺfg—m)¶ŽÍă¨ČĚk˛ď¶vVźöŐ—ťrQ:žŐ\ŮľżĐ]őuň”@ßEđłS¬u~śtµüÝý%šČ…ümŠţą«/‰÷Ę„ĂáXĽxńW_}ĄŃhnżýöG}”˘"ňŰ ś"\ćáŰiCđťŘS©óh‘ëx…ľŘë)Ná/sî´˘­LҶäi?é.ńÍúzITnJĂůɆŐ?´áAg@\I„Ph[E ˇ‰Ľ é}Ťâ¶Ó]%'cşžÍąÉ˛Ő@śŰ’Żá)MWKŰńŰA˙ůŕ~Ž„Ř ő8·ŇIMLF\®iĽźÚ@~Sf¶gçqxĂŘĚffJ-O×-3óΓڡˇ4ĘăOłDPľ}ß5¶˙Ó)ĽŤ2:i}8%ÔËÎ$ĄÝEi·'MŢmóó}I–í®}©ť2ŞkCÇ)˘Qi_”÷˙<醓eëřöýˇRُSdBä'í%ß%M8©*_5Öµ’ţhc}R!űŹdg[E–2§mëµÖď긜nď"[h<Ďő[“˝Ŕň=«ßo'Ŕ‘+>Î=~×ݶ˙|ł=ő^§Uř4ɲ-eÚ–äkÜI˛«ÇÖäŠf[+©qĄ·“ť–ż{żDšHĂřÓWŮ~Éź@[č$µÓ­箫®ú÷ŞU«BGŹíR,úž¸®LȲÎŃĎájˇSň…Úž~Żž)67łé;’&zAşŘZâú)šEęi˝ý ˙”*Y‡ń§Ý'`N :é˝ ńÜ•ô‹/ţă*q>f‚çy†a8î·n0śN?¬‹ŠŠBŮ[ő ú°qTĎßgäcBr[ZN%gl×.r&GŁ(ĺ‘+$Ą(ą--Rş\’ň1!ýZŞ5š®DňÂVŁm'#Q†‹|? ߙʆęźnłŤnţ&Č+Ş33ăäŃĹBv[˙4›Ť`•÷ę ý3¬ÖŃ-;‚ĽbĎ€bÄŽ®8ŃۏɰNAőÍqcqWŠŃy¸ŽSBŢ[ו Á I’ jË„ĂáĐéü ĄqeĹňe‘/â|ť‰ŚŚŚ¤¤¤'N¨˙?~Ľ   űšĐsâşe‚˘¨n¸aĺĘ•/˝ô’Íf[ż~ý<ĐŤý@oĐsâşe!ô»ßý.++kúôéóćÍ»ţúëoşé¦X—‰ëŮ‘â8M D‰s .®»9"+ČWî™DÚUÝŰ0š[Eůí ±Ý*Ęo…ŚíVQ~;(¤ß­şń^}RĽws ÎAeaĘÂ’@0{B·űçú*/‰/‰/Iď- T&¨L ,0fa– „* T&¨L ,P™č>Q˙ůĎşÝnBH¬Ë{„O@b]–x1ń1ńg_“^*ݧ(ĘoĽqß}÷µ¶¶Ćş,qÁ––8¨ &ľ &^ŕLâ bŇë@e˘ű8Ž+--moożóÎ;Ož<™ŕ§EڱFŁń¤˛˛2Ö%Š=‰/‰/8“ř‚ô:ô#Ź<ë2ôbuuuŁFŤ2dČsĎ=WXX¸iÓ&‡Ă1dČX—+f:¤  @ ČŕÁ1Ʊ.ZĚ@L|ALĽŔ™ÄĤwab]€ŢmĚ1ëׯ_µjŐ A.\ȲěĽyób]¨X‚€ř‚ř‚x€ř‚ô.ĐÍ–’’’Ç+Š’››Ë˛,˲kÖ¬!aĺüDĹX—+ÚAđ|j‰/‰×C8“ „ÚÚÚ^{í5Q!&˝T&BE‘$iÍš5sçÎ}ôŃGwěŘAá8nđŕÁ_ýőăŹ?ţ—żüeÆ ---N§3Ö…Ť(Š‹/7nÜřńăWŻ^­( ÄDQ”m۶­\ą˛˘˘B}bŇq€ˇ:Ž$‘Bá‰'ž8räÚŐ1éu`ĚDĽüňË»wďž?>MÓ+V¬8věؤI“ZZZ^xá…{îąçŽ;îHJJš9s¦V«M®ß7ŢxŁ©©©°°°ă j@ćÍ›ç H¬J}/żüň‰'^}őŐ«Żľzůňĺ………ůůů “%K–|řá‡ă•+Wöë×oذa(Ꮪ¦÷îÝkµZß˙ýqăĆĄĄĄy’€gBČßţö·łgĎľţúëZ­V‡ĂˇŃh9&˝Ś™• 6lřä“Oú÷;wîOyňäDŽÉńăÇ·nÝúůçź›L¦Ď?˙ü>={6JŕăÄcĚ1ŤĆétÎź?éŇĄ‡ă¶Űn{đÁc]®xçťwľţúë 6 †˙ůź˙yăŤ7xž3fĚsĎ=—°g×^ş9BĄ(Š˘(<Ď#„0ĆŮŮŮ˙üç?9Ž{饗n»í6Š˘°ľ,Š˘ÉdúđĂźzę)žç !cŽăԀĺt1ŕv»eYöüKŃétjLćĚ™“€GB¨ˇˇ!99Ůh4"„ŇÓÓOž<9qâÄG}T˝v&ćq˘3fĚÁ}ôŃgžyfáÂ…7n|ŕóLR\\,Ëňůóç·nÝúÁĽţúëź|ňIjjęď˙ű[ną%1cŇë$î/ą«´ZíŚ3–.]*I’úN§űűß˙ţĹ_455Ŷl±ňᇾňĘ+ď˝÷^MMÍ˝÷Ţ›°qPaŚÓÓÓ§L™˛lŮ2ő‘ăÇŹŹ5ŠbµZożýöňňňŘ–0&®¸â Aţýď#„6nÜxĎ=÷üë_˙rą\ýë_c]´†ĄĄĄK–,ůĂţđÖ[o-Z´hôčŃ ZştikkëŃŁGc]:¨LtÁSO=e6›üńöövő.<777##ĂjµĆşh±ńŇK/Ť7.33sÝşu999wŢyç±cÇđTŘŃŇĄK=ă*++‹‹‹%IZ¸pˇŃh,**Šm٢cl0ţńŹ\wÝuˇ%K–<đŔ .Ü·o_¬KŠ˘,_ľĽˇˇv„1ž6mÚcŹ=vňäIuH BaŽă M˘·€ĘDçÔßżŮlNIIY·nťŐjť;wîW_}e±XŢ{ď=ťN—hë¨xNęOc¬Óé^~ůĺ9sć,X° ¬¬,ÖŚOLL&“çx°ŰíFŁqéŇĄµµµË—/gY6¶…Ś2OLśššŠb¦­­Ťňý÷ߏ5*ÖŚĎDĐćć毾úęäÉ“ęăăĆŤ{ňÉ'ďĽóÎ믿>//oŐŞU))) uůô$„Űoż}Æ )))„BČ›oľ©ÓéFŽë2‚ŔĚε´´|őŐW—_~yvvvFFĆşuëŢyçťeË–ŐŐŐ•––®Zµ*Ńú}=ÉÉÉńräH¬ËŹDQ|ë­·ćĎźĎqśúŻúGG’$Ń4ť·ęj@4 BH–eáłJLľýöŰÇüµ×^›8qb"Ä*”TTTTWWOš4)ˇnÁ !÷ßKK‹ËĺZµjUaaˇúŮyžç8.Ń®—ÁĎ®Š˘?~Üáp”––úžuA܂ʄn·{âĉÇ_±bEzzşçqBŰíN´ßżş¤Ś' iii/‰yB %&ăęęęüüü–3šŕ8 „˛fÍu"čŰoż˝téŇňňň˘˘˘Í›7ggg?űěł±.`TÁٵO‚ďĚż@9ë!řĂ/^ŰâEY LŹ„EQ0 (´`ڧ&ŕ8 Ęk"čűďż_\\|ë­·^sÍ5±.Z´ÁٵO‚0 ”łNŻ×0 ÖŚ6ż™9 bâÄÄŻŚŚŚeË–Íź?ßápl۶ŤeŮÖÖÖ_ýęWůůů‰ÓÝăg׾`ä7gĆřꫯŽuŃb#Pż„ ‚ř1‘$iíÚµ;věČĚĚĽőÖ[§NťJQ”g"čóĎ?˙—żüĄ¤¤déŇĄN§3999ÖĺŤ8»ö=ĐÍ,)ă2=ú‚ř‚,[¶ěŰoż]°`ÁđáĂ˙ô§?ýáPW¦‰ pví{ 2dőÇ+ ýALüt¤!ܰaĂK/˝4kÖ¬Ç{ěăŹ?6›Í÷ßżĂá¸ďľűž}öŮDËľg×c&.€Ś ^^zé%Ż€Lś8±ĄĄeéŇĄ ›ébâ bâE]źę–[nQç) †3flÝşµ˘˘búôé#GŽT×y‹u1Ł Î®‰¦†"„Űí?~Ľ'#hccăOŐŻľúę &Ħ|Q( !I’ÔI\ 1ńbâWZZÚ”)S–-[¦ţ{üřńQŁF!„l6Űí·ß~đŕÁ–.Úŕěšŕ«2?ţŽ0Ćéééľ!„X­ÖŰoż˝ĽĽ<¶%Ś>‰/IK—.őL«¬¬,..–$iáÂ…Fٱ¨¨(¶e‹28»&¸ÄjC-]şÔłěZ‚˙řU__•$Ik׮ݱcGffć­·Ţ:uęT“É„"„ŘívŁŃ¸xńâÚÚÚwß}·ă<—I"ëű• řńw¤öćzÄh4ŞĎzDťŘçAL|ALY¶lYyyů‚ Îś9ó§?ýéĘ+Ż\´h‘Á`@ 8páÂ…»vízűí·SRRb]Ňh€ł+đčű‹VůM‘¬žţľüňËÝ»wďرcíÚµýúőKŮJ~Ó«?ő/ľřÂĽĽĽ ‚ř1ń˘fI}üńÇ×­[7fĚqăĆÝpĂ }ôŃćÍ›gĚÁq\vvöš5k–/_~饗&HLŕě <úň˘UAR$Ż]»Ö`0|÷ÝwŹ?ţřkŻ˝6iҤX6JĄö ČĉçÇ1ń1ńĄ®Ą1~üřŤ7ŞŹ¸\®‡z¨˙ţK–,Ať;wnŕŔ‰8»/}|f ÉK–,ÁOť:uóćÍ'NŚm!Ł)P:`őTxŐUWmŢĽyҤI‰p6ô€ř‚ř %Kj~~~âÄή Łľ\™€żŻŕé€1Ćůůů±-aôAL|AL,©*8»/}ą2ˇ‚żHě bâ bâWJJŠ'&dI…ł+đčű• řńw„1NMM…tŔAL|ALÁgff®[·nîܹ˖-›úč#„Đúőë B§Nťşůć›·nÝşhŃ"ŤFëŇőŚq8UĄN™L¦^x!¶«jbŚçÍ›wÇw@e€pŔ BârąBŰ·o·Űí„‚‚‚Ç:tHŁŃ¸ÝîI“&oܸQ}ńúőë‹‹‹ź~úiBHKKË3Ď<3eĘ”’’’iÓ¦-^ĽXÝCqq1!„2aÂBČçź>gÎśŇŇŇiÓ¦˝úę«n·[}¶¸¸XÝóĚ™3KJJnąĺ–={öĽňĘ+“'OľôŇK,Xpć̵ż Dž}nÚ´éúëŻ/))™9sć»ďľ«(Šo©ÔWÚl¶ĐKčł„R¶ť;wΞ=»´´ôWżúŐ©S§<[©ĹP˙^ ŻOŞnč÷‹č *„dćĚ™„×^{mҤIsçÎ}ţůçżřâ žç !ÇÍž=!´}űvőĹ;wîD©}O=őÔćÍ›ÓÓÓ§OźNÓô† žyć„ĐěŮł1Ćăë®»î›oľyę©§ZZZ®ąćEQŢ|óÍgź}¶ă»/[¶ě’K.ÉËË«¬¬|ŕ6mÚ4věŘĚĚĚ>÷ÜsÝűDýë_óňňĆŚS]]˝dÉ’/ľř«T~·ę´$ť~– /^\XX••učС?˙ůĎžÇgĎž={ö쎽-!dÖ¬YłfÍR7 ôE—X‰ľč5‰Ń|°m۶Ç‹˘¨Ţ4gggŻ\ąräČ‘'OžĽí¶Ű†Ůąs'ĆxňäÉ&“iűöí Ă\vŮe˛,˙ë_˙şôŇK-ZIJ쫯ľŠň o|ä‘G***Ţzë­Ë/żĽ®®îúëŻGmٲeŔ€ękÔ§ęëë§OźŽÚ´iSAAÁ‰'~ůË_šL¦˛˛˛ŽťÁ`šL&őď‡~ř‘GA­^˝zÍš5—]vŮúőë;–ĘóĘŽwZ’»îşËďg8p W ÓÓÓżůćµäEEEˇµk׎7îôéÓ7ß|3EQ?ţřŁo'úĘőë׫ĹP+=}ôQÇbüđĂľß ß/bůňĺ~#č3@çÔ$FóćÍ›7ožŰí>~üxYYن ˙ň—żlܸń’K.5jÔŃŁGwîÜÉqś$I×_=˲ˇ±cÇîŢ˝{ţüůýúő=zô´iÓ|oúŹ;†Z°`AÇwüé§ź<©ś BFŁQýwčС!“É„ęRGGsćĚńü±fÍšŁGʆ˛U§% ôY:V&Qcfff"„E §ľĆŽ»k×®»îş+///Đč¨LĐ9BČ믿Nąűî» CiiiIIÉ5×\sŰm·UVVŞŻąů曏=ş}űvő’6sćLőńŐ«W—•••••íÚµë“O>ůä“O>üđĂwŢyÇk˙ˇë®»N­¨ŇŇŇ<{Ý ST'”E)Š"˲úŻçŹŽzö©ţŃé>C,I§źĄÓť‡2$Óë5ˇlŇń‹řôÓO?ýôÓ?üđÝwß Ą`€ŕ 2@H6oŢ\WW§ÓéîľűnőŇuüřq„P~~ľú‚3fĽřâ‹ß˙˝^ŻĎËËS×Q0›ÍŻżţzVV–Ú=đŕÁ üôÓO÷¬çţřc„şŇCÇRuď­#ţY"ÂóEüéOB•——ű~€nĘ!ą˙ţűź{îąW^yĺý÷ßĎËËknnVwzôŃGŐL¦éÓ§úé§N§óÁT+©©©ß~űmkkëÁ pčĐ!„ĐرcŐM8Žáĺ—_ž?ţÓO?ýŰßţvúôéű÷ﯬ¬T‡v»´<đŔ˙řǧžzęăŹ?¦(j×®]ęďŕßxă µ’±wď^Śń>čUŞE‹uă­#ţYBüăBţóźu:]č[© R©˙"a‚ŮtcüË_ţňŐW_3fŚĹbŮ·o_KKˤI“Ö®]«ŽCTÝ|óÍę3fĚP·Ňh4k×®ť:uęńăÇ?úč#łŮźţůúúúýű÷6lĺĘ•ăĆŤSźő”Ş{ďŮϢúěłĎ>űě3I’şşá–-[¶lŮ"IÇqAľ@`6‘Aimmť:uęđáĂ?řŕX' xąŕ;›#¶â!&ôjĐÍ@d¬X±˘¬¬ !tĂ 7Äş,˝Ýnúé§'LpĂ 7ÄŞJAٰaCEEELŢ€>ş9Ś7ß|ł¦¦fćĚ™sçÎŤuYz·ŰýŮgź©SIc¨˘˘âłĎ>ëö€S‚n„ Z&¨L ,P™@X 2€°@eaĘ• „*Ë˙,¦ą…o):IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_compass_wind_arrow.html0000644000175000017500000004163712052741164022353 0ustar gudjongudjon Qwt User's Guide: QwtCompassWindArrow Class Reference
QwtCompassWindArrow Class Reference

#include <qwt_dial_needle.h>

Inheritance diagram for QwtCompassWindArrow:

List of all members.

Public Types

enum  Style {
  Style1,
  Style2
}

Public Member Functions

 QwtCompassWindArrow (Style, const QColor &light=Qt::white, const QColor &dark=Qt::gray)
virtual void draw (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const
- Public Member Functions inherited from QwtDialNeedle
 QwtDialNeedle ()
virtual ~QwtDialNeedle ()
const QPalette & palette () const
virtual void setPalette (const QPalette &)

Static Public Member Functions

static void drawStyle1Needle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)
static void drawStyle2Needle (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)

Additional Inherited Members

- Static Protected Member Functions inherited from QwtDialNeedle
static void drawKnob (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)

Detailed Description

An indicator for the wind direction.

QwtCompassWindArrow shows the direction where the wind comes from.

  • QColorGroup::Light
    Used for Style1, or the light half of Style2
  • QColorGroup::Dark
    Used for the dark half of Style2
See also:
QwtDial, QwtCompass

Constructor & Destructor Documentation

QwtCompassWindArrow::QwtCompassWindArrow ( Style  style,
const QColor &  light = Qt::white,
const QColor &  dark = Qt::gray 
)

Constructor

Parameters:
styleArrow style
lightLight color
darkDark color

Member Function Documentation

void QwtCompassWindArrow::draw ( QPainter *  painter,
const QPoint &  center,
int  length,
double  direction,
QPalette::ColorGroup  colorGroup = QPalette::Active 
) const
virtual

Draw the needle

Parameters:
painterPainter
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
colorGroupColor group, used for painting

Implements QwtDialNeedle.

void QwtCompassWindArrow::drawStyle1Needle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
double  direction 
)
static

Draw a compass needle

Parameters:
painterPainter
palettePalette
colorGroupcolorGroup
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
void QwtCompassWindArrow::drawStyle2Needle ( QPainter *  painter,
const QPalette &  palette,
QPalette::ColorGroup  colorGroup,
const QPoint &  center,
int  length,
double  direction 
)
static

Draw a compass needle

Parameters:
painterPainter
palettePalette
colorGroupcolorGroup
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
qwt5-5.2.3/doc/html/index.html0000644000175000017500000001623012052741151015465 0ustar gudjongudjon Qwt User's Guide: Qwt - Qt Widgets for Technical Applications
Qwt User's Guide  5.2.3
Qwt - Qt Widgets for Technical Applications

The Qwt library contains GUI Components and utility classes which are primarily useful for programs with a technical background. Beside a 2D plot widget it provides scales, sliders, dials, compasses, thermometers, wheels and knobs to control or display values, arrays, or ranges of type double.

plot.png

License

Qwt is distributed under the terms of the Qwt License, Version 1.0.

Platforms

Qwt 5.x might be usable in all environments where you find Qt. It is compatible with Qt 3.3.x and Qt 4.x, but the documentation is generated for Qt 4.x.

Screenshots

Downloads

Stable releases, prereleases and snapshots are available at the Qwt project page.

For getting a snapshot with all bugfixes for the latest 5.2 release:

svn co https://qwt.svn.sourceforge.net/svnroot/qwt/branches/qwt-5.2

For getting a development snapshot from the SVN repository:

svn co https://qwt.svn.sourceforge.net/svnroot/qwt/trunk/qwt

Qwt doesn't distribute binary packages, but today all major Linux distributors offer one. Note, that these packages often don't include the examples.

Installation

Have a look at the qwt.pro project file. It is prepared for building dynamic libraries in Win32 and Unix/X11 environments. If you don't know what to do with it, read the file INSTALL and/or the Qt documentation. Once you have build the library you have to install all files from the lib, include and doc directories.

Support

  • Mailing list
    For all kind of Qwt related questions use the Qwt mailing list.
    If you prefer newsgroups use the mail to news gateway of Gmane.
  • Forum
    Qt Centre is a great resource for Qt related questions. It has a sub forum, that is dedicated to Qwt related questions.
  • Individual support
    If you are looking for individual support, or need someone who implements your Qwt component/application contact suppo.nosp@m.rt@q.nosp@m.wt-pr.nosp@m.ojec.nosp@m.t.org. Sending requests to this address without a good reason for not using public support channels might be silently ignored.

Related Projects

QwtPolar, a polar plot widget.
QwtPlot3D, an OpenGL 3D plot widget.
QtiPlot, data analysis and scientific plotting tool, using QwtPlot.

Language Bindings

PyQwt, a set of Qwt Python bindings.
Korundum/QtRuby, including a set of Qwt Ruby bindings.

Donations

Sourceforge offers a Donation System via PayPal. You can use it, if you like to support the development of Qwt.

Credits:

Authors:
Uwe Rathmann, Josef Wilgen ( <= Qwt 0.2 )
Project admin:
Uwe Rathmann <rathm.nosp@m.ann@.nosp@m.users.nosp@m..sou.nosp@m.rcefo.nosp@m.rge..nosp@m.net>
qwt5-5.2.3/doc/html/class_qwt_abstract_scale_draw.html0000644000175000017500000011425112052741163022432 0ustar gudjongudjon Qwt User's Guide: QwtAbstractScaleDraw Class Reference
QwtAbstractScaleDraw Class Reference

#include <qwt_abstract_scale_draw.h>

Inheritance diagram for QwtAbstractScaleDraw:

List of all members.

Public Types

enum  ScaleComponent {
  Backbone = 1,
  Ticks = 2,
  Labels = 4
}

Public Member Functions

 QwtAbstractScaleDraw ()
 QwtAbstractScaleDraw (const QwtAbstractScaleDraw &)
virtual ~QwtAbstractScaleDraw ()
virtual void draw (QPainter *, const QPalette &) const
void enableComponent (ScaleComponent, bool enable=true)
virtual int extent (const QPen &, const QFont &) const =0
bool hasComponent (ScaleComponent) const
virtual QwtText label (double) const
int majTickLength () const
const QwtScaleMapmap () const
int minimumExtent () const
QwtAbstractScaleDrawoperator= (const QwtAbstractScaleDraw &)
const QwtScaleDivscaleDiv () const
QwtScaleMapscaleMap ()
void setMinimumExtent (int)
void setScaleDiv (const QwtScaleDiv &s)
void setSpacing (int margin)
void setTickLength (QwtScaleDiv::TickType, int length)
void setTransformation (QwtScaleTransformation *)
int spacing () const
int tickLength (QwtScaleDiv::TickType) const

Protected Member Functions

virtual void drawBackbone (QPainter *painter) const =0
virtual void drawLabel (QPainter *painter, double value) const =0
virtual void drawTick (QPainter *painter, double value, int len) const =0
void invalidateCache ()
const QwtTexttickLabel (const QFont &, double value) const

Detailed Description

A abstract base class for drawing scales.

QwtAbstractScaleDraw can be used to draw linear or logarithmic scales.

After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member.


Member Enumeration Documentation

Components of a scale

  • Backbone
  • Ticks
  • Labels
See also:
enableComponent(), hasComponent

Constructor & Destructor Documentation

QwtAbstractScaleDraw::QwtAbstractScaleDraw ( )

Constructor.

The range of the scale is initialized to [0, 100], The spacing (distance between ticks and labels) is set to 4, the tick lengths are set to 4,6 and 8 pixels


Member Function Documentation

void QwtAbstractScaleDraw::draw ( QPainter *  painter,
const QPalette &  palette 
) const
virtual

Draw the scale.

Parameters:
painterThe painter
palettePalette, text color is used for the labels, foreground color for ticks and backbone
virtual void QwtAbstractScaleDraw::drawBackbone ( QPainter *  painter) const
protectedpure virtual

Draws the baseline of the scale

Parameters:
painterPainter
See also:
drawTick(), drawLabel()

Implemented in QwtScaleDraw, and QwtRoundScaleDraw.

virtual void QwtAbstractScaleDraw::drawLabel ( QPainter *  painter,
double  value 
) const
protectedpure virtual

Draws the label for a major scale tick

Parameters:
painterPainter
valueValue
See also:
drawTick, drawBackbone

Implemented in QwtScaleDraw, and QwtRoundScaleDraw.

virtual void QwtAbstractScaleDraw::drawTick ( QPainter *  painter,
double  value,
int  len 
) const
protectedpure virtual

Draw a tick

Parameters:
painterPainter
valueValue of the tick
lenLenght of the tick
See also:
drawBackbone(), drawLabel()

Implemented in QwtScaleDraw, and QwtRoundScaleDraw.

void QwtAbstractScaleDraw::enableComponent ( ScaleComponent  component,
bool  enable = true 
)

En/Disable a component of the scale

Parameters:
componentScale component
enableOn/Off
See also:
hasComponent()
virtual int QwtAbstractScaleDraw::extent ( const QPen &  ,
const QFont &   
) const
pure virtual

Calculate the extent

The extent is the distcance from the baseline to the outermost pixel of the scale draw in opposite to its orientation. It is at least minimumExtent() pixels.

See also:
setMinimumExtent(), minimumExtent()

Implemented in QwtRoundScaleDraw, and QwtScaleDraw.

bool QwtAbstractScaleDraw::hasComponent ( ScaleComponent  component) const

Check if a component is enabled

See also:
enableComponent()
void QwtAbstractScaleDraw::invalidateCache ( )
protected

Invalidate the cache used by QwtAbstractScaleDraw::tickLabel

The cache is invalidated, when a new QwtScaleDiv is set. If the labels need to be changed. while the same QwtScaleDiv is set, QwtAbstractScaleDraw::invalidateCache needs to be called manually.

QwtText QwtAbstractScaleDraw::label ( double  value) const
virtual

Convert a value into its representing label.

The value is converted to a plain text using QLocale::system().toString(value). This method is often overloaded by applications to have individual labels.

Parameters:
valueValue
Returns:
Label string.

Reimplemented in QwtDialScaleDraw.

int QwtAbstractScaleDraw::majTickLength ( ) const

The same as QwtAbstractScaleDraw::tickLength(QwtScaleDiv::MajorTick).

const QwtScaleMap & QwtAbstractScaleDraw::map ( ) const
Returns:
Map how to translate between scale and pixel values
int QwtAbstractScaleDraw::minimumExtent ( ) const

Get the minimum extent

See also:
extent(), setMinimumExtent()
const QwtScaleDiv & QwtAbstractScaleDraw::scaleDiv ( ) const
Returns:
scale division
QwtScaleMap & QwtAbstractScaleDraw::scaleMap ( )
Returns:
Map how to translate between scale and pixel values
void QwtAbstractScaleDraw::setMinimumExtent ( int  minExtent)

Set a minimum for the extent.

The extent is calculated from the coomponents of the scale draw. In situations, where the labels are changing and the layout depends on the extent (f.e scrolling a scale), setting an upper limit as minimum extent will avoid jumps of the layout.

Parameters:
minExtentMinimum extent
See also:
extent(), minimumExtent()
void QwtAbstractScaleDraw::setScaleDiv ( const QwtScaleDiv sd)

Change the scale division

Parameters:
sdNew scale division
void QwtAbstractScaleDraw::setSpacing ( int  spacing)

Set the spacing between tick and labels.

The spacing is the distance between ticks and labels. The default spacing is 4 pixels.

Parameters:
spacingSpacing
See also:
spacing()
void QwtAbstractScaleDraw::setTickLength ( QwtScaleDiv::TickType  tickType,
int  length 
)

Set the length of the ticks

Parameters:
tickTypeTick type
lengthNew length
Warning:
the length is limited to [0..1000]
void QwtAbstractScaleDraw::setTransformation ( QwtScaleTransformation transformation)

Change the transformation of the scale

Parameters:
transformationNew scale transformation
int QwtAbstractScaleDraw::spacing ( ) const

Get the spacing.

The spacing is the distance between ticks and labels. The default spacing is 4 pixels.

See also:
setSpacing()
const QwtText & QwtAbstractScaleDraw::tickLabel ( const QFont &  font,
double  value 
) const
protected

Convert a value into its representing label and cache it.

The conversion between value and label is called very often in the layout and painting code. Unfortunately the calculation of the label sizes might be slow (really slow for rich text in Qt4), so it's necessary to cache the labels.

Parameters:
fontFont
valueValue
Returns:
Tick label
int QwtAbstractScaleDraw::tickLength ( QwtScaleDiv::TickType  tickType) const

Return the length of the ticks

See also:
setTickLength(), majTickLength()
qwt5-5.2.3/doc/html/inherit_graph_5.md50000644000175000017500000000004012052741151017136 0ustar gudjongudjon1186de5494b10b740daee6998f040eb7qwt5-5.2.3/doc/html/inherit_graph_25.map0000644000175000017500000000025612052741163017324 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_25.png0000644000175000017500000000250112052741163017326 0ustar gudjongudjon‰PNG  IHDR%îşÍÂbKGD˙˙˙ ˝§“öIDAThíšKH2mÇź©× ”hf("ČŠ"˘ ŃÍE."#¨hUT„e7,Z´"˘‹]·BRt mĄmş’Y™&eŤ5ďbľOć33µľp~«™ăsţçĚüź™y…8 ŕ· ř Ľ@8'đÂěÎĂĂCuuőíííouă?đx<±XŚŤ@صÓěělYYYiiéŹ7ć_čőúŤŤ §Uëź÷ăfggŞ%?ťńNAâ9'đá^ śŔ „xÁG't:]UU›Í&“ɱ±±ÍÍÍ÷÷÷îSŽŽŽ¨T*şa`2™ŕęę ;Ćg—ă˝RCąĽĽÄpÚř?đĹ ŤF“™™I§Ó×ÖÖîîîćççONN˛˛˛>5Ă…BAţEĄRQ©ÔššŻzđDĂáŘl6oŐP˘ŁŁ=O˙°ĺgffś".ÉĎĎollÄFŢŢ޲łł[ZZ úűű1 €ľľ>AŚF#¶âúúşÓ‘onn2™LA4ŤăŁ»»»ĘĘJÝŃŃťňîbbb†‡‡ŃahpjjŠÁ`„‡‡OOO›Íf7j(ŽfĐ lŠŮl¶Z­µµµ,+22˛­­ †aliŤFăćş<Ď^_‹emm­©© „ H$---ńůüŐŐUôđčtş\.ČĺňÔÔTÇ1™Ll®ŃhJOOw*TWWg±XWVV–——ĄR©‡ FŁq_«Őr8Ç“ɤR©t:ťP(lmme2™©}„SJSSÓăăŁZ­V( …B"‘|TÚS>őʉÓÓS‚`vŠ+•JŤvpp@ŁŃ`nhhčęę˘Óév»˝ľľ^,c§¶ŤVTT¤×ë±ÓĐfłčt:T|~~>%%ĹCôĽ;Mj€ŮlFD­Vcgú{5@OOĎűk»ńňňB"‘îďďŃöVVV222°ĄÝăň<»xŰáž°°0‚...âââ°qÁŔfł“““CCCwvvÖ××e2™L&S*•rą|ll ;Bˇ¸ż___bccŃݸ¸¸ËËKČdrXXŘű :÷\Ü>íÇ ŁŃĂphh¨#‚VtYÚCĽľ;Ńéôśśś‘‘Gd``ŕěěldd¤¸¸PXX¸°°p}}ť››;77g0¸\®WUŘl6ŕüüÝ=;;‹đ0‚ >č¸&¬Vëööö«ř˛v’H$R©T$Űl6‹Ĺ’°··×ŮŮ ŕóůăăă\.‚ ÜÜÜŃŃŃ‚‚‰AĐëë+ Ăž” P(%%%"‘Čd2iµÚîî Ż>Ĺ5G …BÍÍÍ777&“©ĽĽ|ppđ‹ýřâDRRŇÖÖÖíímNNNHHT* …č˛ŔăńžźźłłłyyyV«•Ď碢˘âăă †‡żLNNˇźĎooo÷VÁ=>¨aS&&&ěv;‡ĂIJJb±X˝˝˝_mČŰ'öG<==)•JßrýŤďYĹ~•JMKKű.5?„xď„'đá^ śŔ „xp/¸xď455őó}ř»»».˘Ř/jµšFŁýxcţHVV–Ó7»˙üŕ!žxp/Nŕ ĽđĂŠhGQ ¤dIEND®B`‚qwt5-5.2.3/doc/html/qwt__global_8h_source.html0000644000175000017500000002253212052741135020633 0ustar gudjongudjon Qwt User's Guide: qwt_global.h Source File
Qwt User's Guide  5.2.3
qwt_global.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_GLOBAL_H
13 #define QWT_GLOBAL_H
14 
15 #include <qglobal.h>
16 #if QT_VERSION < 0x040000
17 #include <qmodules.h>
18 #endif
19 
20 // QWT_VERSION is (major << 16) + (minor << 8) + patch.
21 
22 #define QWT_VERSION 0x050203
23 #define QWT_VERSION_STR "5.2.3"
24 
25 #if defined(Q_WS_WIN) || defined(Q_WS_S60)
26 
27 #if defined(_MSC_VER) /* MSVC Compiler */
28 /* template-class specialization 'identifier' is already instantiated */
29 #pragma warning(disable: 4660)
30 #endif // _MSC_VER
31 
32 #ifdef QWT_DLL
33 
34 #if defined(QWT_MAKEDLL) // create a Qwt DLL library
35 #define QWT_EXPORT __declspec(dllexport)
36 #define QWT_TEMPLATEDLL
37 #else // use a Qwt DLL library
38 #define QWT_EXPORT __declspec(dllimport)
39 #endif
40 
41 #endif // QWT_DLL
42 
43 #endif // Q_WS_WIN || Q_WS_S60
44 
45 #ifndef QWT_EXPORT
46 #define QWT_EXPORT
47 #endif
48 
49 // #define QWT_NO_COMPAT 1 // disable withdrawn functionality
50 
51 #endif // QWT_GLOBAL_H
qwt5-5.2.3/doc/html/class_qwt_dial_simple_needle-members.html0000644000175000017500000001535212052741137023674 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDialSimpleNeedle Member List

This is the complete list of members for QwtDialSimpleNeedle, including all inherited members.

Arrow enum value (defined in QwtDialSimpleNeedle)QwtDialSimpleNeedle
draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const QwtDialSimpleNeedlevirtual
drawArrowNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob)QwtDialSimpleNeedlestatic
drawKnob(QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)QwtDialNeedleprotectedstatic
drawRayNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int width, double direction, bool hasKnob)QwtDialSimpleNeedlestatic
palette() const QwtDialNeedle
QwtDialNeedle()QwtDialNeedle
QwtDialSimpleNeedle(Style, bool hasKnob=true, const QColor &mid=Qt::gray, const QColor &base=Qt::darkGray)QwtDialSimpleNeedle
Ray enum value (defined in QwtDialSimpleNeedle)QwtDialSimpleNeedle
setPalette(const QPalette &)QwtDialNeedlevirtual
setWidth(int width)QwtDialSimpleNeedle
Style enum nameQwtDialSimpleNeedle
width() const QwtDialSimpleNeedle
~QwtDialNeedle()QwtDialNeedlevirtual
qwt5-5.2.3/doc/html/class_qwt_dial_needle.html0000644000175000017500000002420312052741164020666 0ustar gudjongudjon Qwt User's Guide: QwtDialNeedle Class Reference

#include <qwt_dial_needle.h>

Inheritance diagram for QwtDialNeedle:

List of all members.

Public Member Functions

 QwtDialNeedle ()
virtual ~QwtDialNeedle ()
virtual void draw (QPainter *painter, const QPoint &center, int length, double direction, QPalette::ColorGroup cg=QPalette::Active) const =0
const QPalette & palette () const
virtual void setPalette (const QPalette &)

Static Protected Member Functions

static void drawKnob (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)

Detailed Description

Base class for needles that can be used in a QwtDial.

QwtDialNeedle is a pointer that indicates a value by pointing to a specific direction.

Qwt is missing a set of good looking needles. Contributions are very welcome.

See also:
QwtDial, QwtCompass

Member Function Documentation

virtual void QwtDialNeedle::draw ( QPainter *  painter,
const QPoint &  center,
int  length,
double  direction,
QPalette::ColorGroup  cg = QPalette::Active 
) const
pure virtual

Draw the needle

Parameters:
painterPainter
centerCenter of the dial, start position for the needle
lengthLength of the needle
directionDirection of the needle, in degrees counter clockwise
cgColor group, used for painting

Implemented in QwtCompassWindArrow, QwtCompassMagnetNeedle, and QwtDialSimpleNeedle.

const QPalette & QwtDialNeedle::palette ( ) const
Returns:
the palette of the needle.
void QwtDialNeedle::setPalette ( const QPalette &  palette)
virtual

Sets the palette for the needle.

Parameters:
paletteNew Palette
qwt5-5.2.3/doc/html/qwt__paint__buffer_8h_source.html0000644000175000017500000002236512052741135022202 0ustar gudjongudjon Qwt User's Guide: qwt_paint_buffer.h Source File
Qwt User's Guide  5.2.3
qwt_paint_buffer.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PAINT_BUFFER_H
11 #define QWT_PAINT_BUFFER_H 1
12 
13 #include <qglobal.h>
14 #if QT_VERSION < 0x040000
15 
16 #include <qpixmap.h>
17 #include "qwt_global.h"
18 
19 class QPainter;
20 
29 class QWT_EXPORT QwtPaintBuffer
30 {
31 public:
32  explicit QwtPaintBuffer();
33  explicit QwtPaintBuffer(QPaintDevice *, const QRect &, QPainter *p = NULL);
34 
35  virtual ~QwtPaintBuffer();
36 
37  void open(QPaintDevice *, const QRect &, QPainter *p = NULL);
38  void close();
39 
40  QPainter *painter();
41  const QPaintDevice *device();
42 
43  static void setEnabled(bool enable);
44  static bool isEnabled();
45 
47  const QPixmap &buffer() const { return d_pixBuffer; }
48 
49 protected:
50  void flush();
51 
52 private:
53  QPixmap d_pixBuffer;
54  QRect d_rect;
55 
56  QPaintDevice *d_device; // use QGuardedPtr
57  QPainter *d_painter; // use QGuardedPtr
58  QPainter *d_devicePainter; // use QGuardedPtr
59 
60  static bool d_enabled;
61 };
62 
63 #endif // QT_VERSION < 0x040000
64 
65 #endif
qwt5-5.2.3/doc/html/class_qwt_scale_draw.html0000644000175000017500000015477312052741165020566 0ustar gudjongudjon Qwt User's Guide: QwtScaleDraw Class Reference

#include <qwt_scale_draw.h>

Inheritance diagram for QwtScaleDraw:

List of all members.

Public Types

enum  Alignment {
  BottomScale,
  TopScale,
  LeftScale,
  RightScale
}
- Public Types inherited from QwtAbstractScaleDraw
enum  ScaleComponent {
  Backbone = 1,
  Ticks = 2,
  Labels = 4
}

Public Member Functions

 QwtScaleDraw ()
 QwtScaleDraw (const QwtScaleDraw &)
virtual ~QwtScaleDraw ()
Alignment alignment () const
QRect boundingLabelRect (const QFont &, double val) const
virtual int extent (const QPen &, const QFont &) const
void getBorderDistHint (const QFont &, int &start, int &end) const
Qt::Alignment labelAlignment () const
QPoint labelPosition (double val) const
QRect labelRect (const QFont &, double val) const
double labelRotation () const
QSize labelSize (const QFont &, double val) const
int length () const
int maxLabelHeight (const QFont &) const
int maxLabelWidth (const QFont &) const
int minLabelDist (const QFont &) const
int minLength (const QPen &, const QFont &) const
void move (int x, int y)
void move (const QPoint &)
QwtScaleDrawoperator= (const QwtScaleDraw &other)
Qt::Orientation orientation () const
QPoint pos () const
void setAlignment (Alignment)
void setLabelAlignment (Qt::Alignment)
void setLabelRotation (double rotation)
void setLength (int length)
- Public Member Functions inherited from QwtAbstractScaleDraw
 QwtAbstractScaleDraw ()
 QwtAbstractScaleDraw (const QwtAbstractScaleDraw &)
virtual ~QwtAbstractScaleDraw ()
virtual void draw (QPainter *, const QPalette &) const
void enableComponent (ScaleComponent, bool enable=true)
bool hasComponent (ScaleComponent) const
virtual QwtText label (double) const
int majTickLength () const
const QwtScaleMapmap () const
int minimumExtent () const
QwtAbstractScaleDrawoperator= (const QwtAbstractScaleDraw &)
const QwtScaleDivscaleDiv () const
QwtScaleMapscaleMap ()
void setMinimumExtent (int)
void setScaleDiv (const QwtScaleDiv &s)
void setSpacing (int margin)
void setTickLength (QwtScaleDiv::TickType, int length)
void setTransformation (QwtScaleTransformation *)
int spacing () const
int tickLength (QwtScaleDiv::TickType) const

Protected Member Functions

virtual void drawBackbone (QPainter *p) const
virtual void drawLabel (QPainter *p, double val) const
virtual void drawTick (QPainter *p, double val, int len) const
QMatrix labelMatrix (const QPoint &, const QSize &) const
- Protected Member Functions inherited from QwtAbstractScaleDraw
void invalidateCache ()
const QwtTexttickLabel (const QFont &, double value) const

Detailed Description

A class for drawing scales.

QwtScaleDraw can be used to draw linear or logarithmic scales. A scale has a position, an alignment and a length, which can be specified . The labels can be rotated and aligned to the ticks using setLabelRotation() and setLabelAlignment().

After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member.


Member Enumeration Documentation

Alignment of the scale draw

See also:
setAlignment(), alignment()

Constructor & Destructor Documentation

QwtScaleDraw::QwtScaleDraw ( )

Constructor.

The range of the scale is initialized to [0, 100], The position is at (0, 0) with a length of 100. The orientation is QwtAbstractScaleDraw::Bottom.


Member Function Documentation

QwtScaleDraw::Alignment QwtScaleDraw::alignment ( ) const

Return alignment of the scale

See also:
setAlignment()
QRect QwtScaleDraw::boundingLabelRect ( const QFont &  font,
double  value 
) const

Find the bounding rect for the label. The coordinates of the rect are absolute coordinates ( calculated from pos() ). in direction of the tick.

Parameters:
fontFont used for painting
valueValue
See also:
labelRect()
void QwtScaleDraw::drawBackbone ( QPainter *  painter) const
protectedvirtual

Draws the baseline of the scale

Parameters:
painterPainter
See also:
drawTick(), drawLabel()

Implements QwtAbstractScaleDraw.

void QwtScaleDraw::drawLabel ( QPainter *  painter,
double  value 
) const
protectedvirtual

Draws the label for a major scale tick

Parameters:
painterPainter
valueValue
See also:
drawTick(), drawBackbone(), boundingLabelRect()

Implements QwtAbstractScaleDraw.

void QwtScaleDraw::drawTick ( QPainter *  painter,
double  value,
int  len 
) const
protectedvirtual

Draw a tick

Parameters:
painterPainter
valueValue of the tick
lenLenght of the tick
See also:
drawBackbone(), drawLabel()

Implements QwtAbstractScaleDraw.

int QwtScaleDraw::extent ( const QPen &  pen,
const QFont &  font 
) const
virtual

Calculate the width/height that is needed for a vertical/horizontal scale.

The extent is calculated from the pen width of the backbone, the major tick length, the spacing and the maximum width/height of the labels.

Parameters:
penPen that is used for painting backbone and ticks
fontFont used for painting the labels
See also:
minLength()

Implements QwtAbstractScaleDraw.

void QwtScaleDraw::getBorderDistHint ( const QFont &  font,
int &  start,
int &  end 
) const

Determine the minimum border distance.

This member function returns the minimum space needed to draw the mark labels at the scale's endpoints.

Parameters:
fontFont
startStart border distance
endEnd border distance
Qt::Alignment QwtScaleDraw::labelAlignment ( ) const
Returns:
the label flags
See also:
setLabelAlignment(), labelRotation()
QMatrix QwtScaleDraw::labelMatrix ( const QPoint &  pos,
const QSize &  size 
) const
protected

Calculate the matrix that is needed to paint a label depending on its alignment and rotation.

Parameters:
posPosition where to paint the label
sizeSize of the label
See also:
setLabelAlignment(), setLabelRotation()
QPoint QwtScaleDraw::labelPosition ( double  value) const

Find the position, where to paint a label

The position has a distance of majTickLength() + spacing() + 1 from the backbone. The direction depends on the alignment()

Parameters:
valueValue
QRect QwtScaleDraw::labelRect ( const QFont &  font,
double  value 
) const

Find the bounding rect for the label. The coordinates of the rect are relative to spacing + ticklength from the backbone in direction of the tick.

Parameters:
fontFont used for painting
valueValue
double QwtScaleDraw::labelRotation ( ) const
Returns:
the label rotation
See also:
setLabelRotation(), labelAlignment()
QSize QwtScaleDraw::labelSize ( const QFont &  font,
double  value 
) const

Calculate the size that is needed to draw a label

Parameters:
fontLabel font
valueValue
int QwtScaleDraw::length ( ) const
Returns:
the length of the backbone
See also:
setLength(), pos()
int QwtScaleDraw::maxLabelHeight ( const QFont &  font) const
Parameters:
fontFont
Returns:
the maximum height of a label
int QwtScaleDraw::maxLabelWidth ( const QFont &  font) const
Parameters:
fontFont
Returns:
the maximum width of a label
int QwtScaleDraw::minLabelDist ( const QFont &  font) const

Determine the minimum distance between two labels, that is necessary that the texts don't overlap.

Parameters:
fontFont
Returns:
The maximum width of a label
See also:
getBorderDistHint()
int QwtScaleDraw::minLength ( const QPen &  pen,
const QFont &  font 
) const

Calculate the minimum length that is needed to draw the scale

Parameters:
penPen that is used for painting backbone and ticks
fontFont used for painting the labels
See also:
extent()
void QwtScaleDraw::move ( int  x,
int  y 
)
inline

Move the position of the scale

See also:
move(const QPoint &)
void QwtScaleDraw::move ( const QPoint &  pos)

Move the position of the scale.

The meaning of the parameter pos depends on the alignment:

QwtScaleDraw::LeftScale
The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the left of the backbone.
QwtScaleDraw::RightScale
The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the right of the backbone.
QwtScaleDraw::TopScale
The origin is the leftmost point of the backbone. The backbone is a horizontal line. Scale marks and labels are drawn above the backbone.
QwtScaleDraw::BottomScale
The origin is the leftmost point of the backbone. The backbone is a horizontal line Scale marks and labels are drawn below the backbone.
Parameters:
posOrigin of the scale
See also:
pos(), setLength()
Qt::Orientation QwtScaleDraw::orientation ( ) const

Return the orientation

TopScale, BottomScale are horizontal (Qt::Horizontal) scales, LeftScale, RightScale are vertical (Qt::Vertical) scales.

See also:
alignment()
QPoint QwtScaleDraw::pos ( ) const
Returns:
Origin of the scale
See also:
move(), length()
void QwtScaleDraw::setAlignment ( Alignment  align)

Set the alignment of the scale

The default alignment is QwtScaleDraw::BottomScale

See also:
alignment()
void QwtScaleDraw::setLabelAlignment ( Qt::Alignment  alignment)

Change the label flags.

Labels are aligned to the point ticklength + spacing away from the backbone.

The alignment is relative to the orientation of the label text. In case of an flags of 0 the label will be aligned depending on the orientation of the scale:

QwtScaleDraw::TopScale: Qt::AlignHCenter | Qt::AlignTop\n
QwtScaleDraw::BottomScale: Qt::AlignHCenter | Qt::AlignBottom\n
QwtScaleDraw::LeftScale: Qt::AlignLeft | Qt::AlignVCenter\n
QwtScaleDraw::RightScale: Qt::AlignRight | Qt::AlignVCenter\n

Changing the alignment is often necessary for rotated labels.

Parameters:
alignmentOr'd Qt::AlignmentFlags <see qnamespace.h>
See also:
setLabelRotation(), labelRotation(), labelAlignment()
Warning:
The various alignments might be confusing. The alignment of the label is not the alignment of the scale and is not the alignment of the flags (QwtText::flags()) returned from QwtAbstractScaleDraw::label().
void QwtScaleDraw::setLabelRotation ( double  rotation)

Rotate all labels.

When changing the rotation, it might be necessary to adjust the label flags too. Finding a useful combination is often the result of try and error.

Parameters:
rotationAngle in degrees. When changing the label rotation, the label flags often needs to be adjusted too.
See also:
setLabelAlignment(), labelRotation(), labelAlignment().
void QwtScaleDraw::setLength ( int  length)

Set the length of the backbone.

The length doesn't include the space needed for overlapping labels.

See also:
move(), minLabelDist()
qwt5-5.2.3/doc/html/functions_func_0x6d.html0000644000175000017500000003026512052741152020247 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- m -

qwt5-5.2.3/doc/html/class_qwt_plot_curve__inherit__graph.png0000644000175000017500000001257312052741156023654 0ustar gudjongudjon‰PNG  IHDR­»B‰’bKGD˙˙˙ ˝§“0IDATxśíť{T×ýŔżłěĐ]–§¨P4‰ˡŃ@ Z!b ©†jéR©‰• šG“6µćŃVCM€„ÔÓ dyúJN4"Ź45BD@ÜE^„EËň^Ř]ć÷ÇM÷7Y€ÁťŐý~ŽÇ3s÷Î÷~çÎgďÜťv(š¦±x8l'€č€ ôŕ2W†††âââT*[Ů &ăСCO<ń„a•b~^Éd‘‘‘l$†Ž˙ţ÷ż2™ĚPÂťZ‰ů2ň@˛mŰ6Łś čB@ô! Ŕ]{ĐÜÜíââÂçó=<<’’’ÔjőĚ›( kkkć‚陚Ă÷LFˇPPµyóff!MÓîîîlíăÝq7ČĺňÇ\$•””ô÷÷ççç߼y3 ŕ;Ux árąeeeÝÝ݆’ŇŇŇű®+îĆřřř;v¤¦¦®\ąrÁ‚«WŻ>{ö¬ŁŁăˇC‡BBBŽ9ťťťEýío€®®.Š˘ĽĽĽĆÇÇ)Šęííť6ěČČČsĎ=çěěěććvŕŔťNCCC±±±‰ÄĂĂ#++Ëđ&›ZYˇPxxx;vĚÁÁÁĹĹ%;;›ÔT©T‘‘‘b±ŘÝÝ=77—Ůboo/3«;Ĺ|űí·%‰““Ó‰'ţřÇ?ŠĹb''§?ü±˛˛Ú´iSVV–!lff¦T*5¬ÖŐŐůűűŰŘظ»»“­î”ęÔšwŃ)))BˇPˇPĚí Ň rrrŚJ¦200ŔápšššŚĘóóóW¬XqäČ‘§žzЦé“'OŠD˘°°0˛ěăă#—ËMÓ†#víÚµsçΞžžĆĆF??żüă4MÇĆĆnŢĽą«««ˇˇaőęŐ† §V–Ëĺ666ńńńŻżţş««+©)•J7lŘĐŃŃQ__ďíím”3™icrąÜ^xahhčő×_§(ʰLâ“Í?ýôSdttÔÎÎîâĹ‹†°żřĹ/<866věŘ1'''˛Ő´©N­9×ŕóůżţőŻ•JĺĚ1"""""‚Y2g)ŠŇjµFĺUUUBˇđúőëBˇP«ŐîÝ»÷•W^‰D:ťnĎž=/ľřâĚLLLđx<µZMV‹‹‹×¬Y311Áĺr›››Iaaa!ŮpÚĘrązzzh𮫫#5ÇĆĆ8N}}=©™——w'î“Ăáh4“ąĚÜ\Ż×»ąąUUUŃ4ťťť˝qăFć>޸qcddD«Őfdd¶ššę´5»»g>‚ôtLs]yf)Šjkkóôôd–wtt¸¸¸x{{‹ĹâĘĘĘňňňěěěěě쪪ŞŇŇŇ÷Ţ{oć°JĄR«ŐŠĹbfCJĄrrrŇĂĂ”üŕ?ˇ2đů|ŕpľ9ßÝľ}›¦é+VŐĺË—Ď)ŕńx€Äd.3·ĺp8;věČČČ8zôhffftt4óŐ/żürÇŽE-]şÔP85ŐikŢE…ą2çůH$Zż~}JJЎ$99ąĄĄ%%%%<<BCC şşşĽĽĽ‚‚‚ňňň:::gëěěleee|xx¸˘˘ÂŮŮľţúkR§ĄĄe†Ę@Q”QXWWWŠ˘š››Ť"Ě2ŮwKLLĚG}tëÖ­/ľřbëÖ­†ňŢŢŢ]»v}đÁ•••‡2”OMuÚšßżfÉÝĚSSS333ëëë5Íŕŕŕ#ŹRMMMżL&c+s#99ବ,>>ž•ÖYţť¬v0rssYlçz€Đ=@čp_xĐÜÜíââÂçó=<<’’’ÔjőĚ›( kkk˛@1pppJĄťťťĚ:ßÁháÄÜ=ËĺŹ?ţ¸H$*))éďďĎĎĎżyóf@@ŔwŞ`@ ®–ÔÔÔX[[˙ć7żą§9ß—°u+''g6­?ůä“űöíc–LNN®[·n˙ţý6l8|ř0MÓđ׿ţ•¦iĄRÉÜ»ňňr¦4Můĺ—4MËĺrĂKýýý;věH$K–,y饗ȀÁŚĐÓÓc(ééé~öŮgťśś/^üűß˙^«ŐĘĺrww÷#GŽŘŰŰ;::fee˝úę«‹-rtt<~üřl:$"""""bvť7˙őx088XRR’Ŕ,¤(*11ńôéÓaaa—.]€ňňr‘HTZZ ĄĄĄ>>>†cěŕŕŔÜV©TľóÎ;Ź=öQCĎ=÷ÜŕŕŕŤ7Š‹‹Ďť;—™™iÁÁÁY’0::ZWWWVVVVV–šš ÝÝÝ­­­ ;wuëVBBÂK/˝tO{i~`KŔŮŚŤŤŤEiµZŁňŞŞ*ˇPxýúuˇP¨Őj÷îÝűĘ+ŻD"ťN·gĎž_|ŃpĚär9sg…BáćÍ›ŰŰŰiĆx Ńh8Nss3 žźź˙ĂţÁhabb‚Çă©ŐjRż¸¸xÍš5rąśĂáh4š¦ëęęËFŇť`w<0ëç/8::RŐÖÖfôúŽŽooo±X\YYY^^žťťťťť]UUUZZúŢ{ď1+ ŤF3C+]]]ŕááAV===oÝş5C}ĄR©ŐjĹb13Oŕńx8sy.{ĚfťĄH$Zż~}JJЎ$99ąĄĄ%%%%<<BCC şşşĽĽĽ‚‚‚ňňň:::çÔŠ‹‹ |ýő×dµĄĄĹŐŐu†úÎÎÎVVV†ń`xx¸˘˘b®»fnµššš™™™X__ŻŃhyä‘«WŻľüňËöţűďR”––¶aĂŹGQ”^Ż×jµłiB lٲ%11±»»»ˇˇáµ×^‹ŠŠšÁP"¤RiRRRoooww÷öíŰŹ=zŻößT»Ź>úč•+WT*Őúőë-Z”™™ů»ßýÎÝÝýÝw߀ńńńuëÖ@ppđđđpXX¸ąą­X±B"‘¨TŞŮ´ňÁ,X°€ *aaaY’žž®ÓéV®\ů裏:99˝ůć›÷¬LkĎĺ‘Éd‘‘‘w׺FŁQ(ľľÔ“t¶mŰlÝaîăÁ´X[[?`°Î}é2ď z€Đ=@čŔú}ë7nd7󡶶ö'?ů [­łv©żż˙ţý###¬´n@ݧě\\FÄâqv3€řřx¶T°ôç|Ëd‰‰=ů¤WVÖn¶saKź~@•–Ö ڞť ›X´==Cź~€€Ó§Ż±ť›X´gĎ^Ł( hšÎË»ďď!ř>X´2Yĺä$ ““tee«R9Ű{ <,×¶¶ľššvâXYqŠŠŞŘM‰E,×S§Ş¸Ü˙ß}˝~27×rO –ëAnn…V;iXĄiZˇP65uł‹X¨ …˛±±›|R0ŔăY]e+%v±PŠŠ®ňůĆ×ÔµZýÉ“WXɇu,Ńš¦óň*'&tS_ęč诩i7}J¬c‰\˝ÚÚŮ9ýGD‹=5X˘/Ę(>ź;őź^?ůÉ'µl'Čfýwm÷¨¨'´Z˝aU&«Xľt©=Yő÷÷ĽĂv2–ţ}#,^ś”žóôÓ}#Ľ%ž© z€Đ=@č€ ô@z€ =@Đ„€ čB@ô! z€Đ=@č€ ô@z€ =@Đ„€ čB@Ó˙Jnnnż‰ýN>űěł®.óúĄ´;;;Óµgʇ˟;wÎt;vźkĘCcŇń`xx.]şdĘFďG‰Db¨3s˛ŞP(222jkkišöôôŚŤŤ]łfÍ<îŁYaŽăAkkëłĎ>kkk{ôčŃ3gÎüĺ/iooß»w/ůŘ9x<ŢĄ˙ńď˙›Ďç>|xN94668p ŕĉ2™,44ôŐW_­ŻŻźűŢÜŁďĽóÎĆŤ–-[fmmýđĂżőÖ[b±řĂ?|ţůçsrr ŻŻ/888;;T*UpppLLŚV« `F“H$żüĺ/ …Q+ĂĂĂoľůfxxř¶mŰŽ;Ö××ÇŚ––.‹.\¸iÓ¦­[·VVV¶µµýô§?% ËmmmżúŐŻ žzꩨ¨¨ýë_¤‚Z­ Q*•Ť&99yË–-R©4==]Ż×™avŚŽŽ^»vM*•2 )Š’JĄ_|ń…żżUUÔÔÔŘÚÚVWW@uuµ§§çńăÇÉ0°hŃ"ć¶}}}yyy=ôQCÉÉÉ###ÇŹONNľ|ůň…  x<^uuµŃł§wďŢu§´űúúł˛˛bbbĘËËIaiiéŞU«\]]SRRĆÇÇ322Ţ}÷ÝęęęÂÂÂďŃC÷łó@­V€“““Qą««kżźź_mm­^ŻŻ©©Ůşukmmíääduuµżż?ł2y[˘ŁŁÇĆĆ^xᣠ%%%ńńńb±xÉ’%±±±.\0ĽJF{{ű٧­ÓévďŢmoożvíZĄRŮŢŢĹĹĹ?űŮĎt:Ýůóç÷íŰ·hѢŋďŢ˝űłĎ>›cŻÜsĚnž(‹ »»ŰŐŐ•YŢŰŰkooďáá±páÂúúúššš?ýéO/^lhh¸víZRRł2ŹÇ»Ód R©ŔĹĹ…¬şşşöôô^%#JOOSÇ–––şş:źirą\’ą­­­żżYYYhhhcccPPJĄŇét›6m2ÚGłÂě<°µµőőő-((Ř»w/)ÉÍÍ]»vmAAÁŹücđóó+//W©TË–-óőő---íííőööîěěś}+ä˝ŢŐŐElS*•Ěwż­­íŞU«Îť;÷Ě3Ď Ož<966ćăăC˙ďILuČsa ÁÁÁ'Ož´±±Y»v­ŤŤ —Ëĺp8§Oź^°`h4ŁŚ9`vçHHH8ţ|jjj{{űÄÄÄČČHtttCC9=űůůť:ujŐŞUEůúú=öŘc\.—˘¨ÉÉIťnš§.M…Çă­[·.55U­Vßşu+##căĆŤĚżýíosrrŽ?ŢÚÚÚŐŐ•““S\\) u:Ý•+Wrss§ ŘÖÖVXXJÚZż~}ZZÚŔŔ€Z­>tčP^^ŢüőÖü`ޏ»»§§§ %$$üüç??ţü–-[śťťóóó`őęŐZ­–ŚĎ?úŃŹĆĆĆČäŔÁÁÁÍÍ-<<|hhh6­<˙üó666ŃŃщ‰‰~~~‘‘‘Ě+W®<|řđőë×÷ěŮ÷ůçźżőÖ[ŢŢŢvvv111ܵk—ŃDŇ€@ đőýćŮű÷ď×ëőŃŃŃ111vvvqqqóÓSó‡IźÇ"“É"##ďî{牉‰¶¶¶+VĚ{VfČÁe2™ÉZ4Çń`Zř|ľ…HŔ ÷ŤČ==@Đ„€ čB@ô!ôűrCQpp°)˝O‰ŤŤ5es¦~ľóÇlâżĐ¸O 1ĺßµásľś ô@z€üJCÍÖřžUIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_math_m_l_text_engine__inherit__graph.map0000644000175000017500000000026412052741155025625 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__counter_8h_source.html0000644000175000017500000004423512052741134021055 0ustar gudjongudjon Qwt User's Guide: qwt_counter.h Source File
Qwt User's Guide  5.2.3
qwt_counter.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_COUNTER_H
13 #define QWT_COUNTER_H
14 
15 #include <qwidget.h>
16 #include "qwt_global.h"
17 #include "qwt_double_range.h"
18 
60 class QWT_EXPORT QwtCounter : public QWidget, public QwtDoubleRange
61 {
62  Q_OBJECT
63 
64  Q_PROPERTY( int numButtons READ numButtons WRITE setNumButtons )
65  Q_PROPERTY( double basicstep READ step WRITE setStep )
66  Q_PROPERTY( double minValue READ minVal WRITE setMinValue )
67  Q_PROPERTY( double maxValue READ maxVal WRITE setMaxValue )
68  Q_PROPERTY( int stepButton1 READ stepButton1 WRITE setStepButton1 )
69  Q_PROPERTY( int stepButton2 READ stepButton2 WRITE setStepButton2 )
70  Q_PROPERTY( int stepButton3 READ stepButton3 WRITE setStepButton3 )
71  Q_PROPERTY( double value READ value WRITE setValue )
72  Q_PROPERTY( bool editable READ editable WRITE setEditable )
73 
74 public:
79  enum Button
80  {
81  Button1,
82  Button2,
83  Button3,
84  ButtonCnt
85  };
86 
87  explicit QwtCounter(QWidget *parent = NULL);
88 #if QT_VERSION < 0x040000
89  explicit QwtCounter(QWidget *parent, const char *name);
90 #endif
91  virtual ~QwtCounter();
92 
93  bool editable() const;
94  void setEditable(bool);
95 
96  void setNumButtons(int n);
97  int numButtons() const;
98 
99  void setIncSteps(QwtCounter::Button btn, int nSteps);
100  int incSteps(QwtCounter::Button btn) const;
101 
102  virtual void setValue(double);
103  virtual QSize sizeHint() const;
104 
105  virtual void polish();
106 
107  // a set of dummies to help the designer
108 
109  double step() const;
110  void setStep(double s);
111  double minVal() const;
112  void setMinValue(double m);
113  double maxVal() const;
114  void setMaxValue(double m);
115  void setStepButton1(int nSteps);
116  int stepButton1() const;
117  void setStepButton2(int nSteps);
118  int stepButton2() const;
119  void setStepButton3(int nSteps);
120  int stepButton3() const;
121  virtual double value() const;
122 
123 signals:
128  void buttonReleased (double value);
129 
134  void valueChanged (double value);
135 
136 protected:
137  virtual bool event(QEvent *);
138  virtual void wheelEvent(QWheelEvent *);
139  virtual void keyPressEvent(QKeyEvent *);
140  virtual void rangeChange();
141 
142 private slots:
143  void btnReleased();
144  void btnClicked();
145  void textChanged();
146 
147 private:
148  void initCounter();
149  void updateButtons();
150  void showNum(double);
151  virtual void valueChange();
152 
153  class PrivateData;
154  PrivateData *d_data;
155 };
156 
157 #endif
qwt5-5.2.3/doc/html/functions_func_0x7e.html0000644000175000017500000002766212052741152020260 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- ~ -

qwt5-5.2.3/doc/html/inherit_graph_35.png0000644000175000017500000000270412052741163017334 0ustar gudjongudjon‰PNG  IHDRc%ŮXŔłbKGD˙˙˙ ˝§“yIDAThí™mHSmÇďsš/‘;ŹG'ßu–/ř!?,Ë 9‘M\łĐőM1 ZTD‚1­Hżź,Á×Mëłb*0ËŐĆX3Ó‘KtŠĘŃ)Ţχóß[D|ŢűJKK§§§ĄR©k .űűűKKK˝EßžHĄŇUŚ ň»ČÍ)¦pN1…sŠ)śSLáśb {§ěvűÍ›7…BahhhRRRmmíĆĆĆ/±X,ááátĽ¸¸¨ŃhD"ŃéÓ§Ĺbqcc#EQě*ńN{RwţK§Ěfsvv6†accc.—KŻ×[­V©Tz¬Y4Â+W®ÄĆĆÎÎÎş\®ÁÁÁ÷ďß×ÔÔ°+ĆOŔ_Q«ŐjµG^^^MMŤ·rxx““SWW'“Ét:„ĐápZZZ „ßż÷~čÜÜ‚ Ey–üřńúőë·oߊĹbŹN’dsssbbbkkkTTA===MMM€ îînˇŮl {ńâELL AwîÜŮÝÝ…ş\®7nŕ8ďŢ=·ŰMßyěîýýýľ" §677Qýň勏®×ëĹbqkkkaa!„°ŻŻĂ0ą\NÇ™™™žBŇÓÓ ‡‡‡×ÖÖĽ“ěíí ‚ůůyá‡ÁÜÜŹÇkhhŘÚÚzňä ‚ ž8..Žv PTTät:çççSSS=z!ĽvíšBˇp:ťV«5##ăéÓ§ţvĘfł!˛żżďŁŤF>źo2™ř|ţţţ~UUŐýű÷1 ;88¨¬¬Ľ{÷®wˇ››› …Çq‰DŇÔÔ´łłC_*//üř1„°±±ńöíŰfłEQşM>}úäÓŮh§l6˝Ľ··—$ÉÝÝ]Eív;-ęőúŚŚŚ?qŠÍś"Aoßľůč‡C(¦ĄĄEFFÎÎÎNLL”••EGGŤĆńńqą\î}3†aUUU###«««ÝÝÝSSSĺĺĺô%•J5<şóq×jµ‹…˘¨‡†„„AÁQ\\ !|ýúuDDDII „Đb±đx<·Ű=99yęÔ)ťN·´´DQ”ĹbQ*•·nÝňäżzőjll¬V«…˙ lZ?2¦Ź§Bˇřńă‡Éd:{öěóçĎ!„*•Ę{N577űűôÎź??33łľľž››+ŢĽyS]]ťřňĺK@~~ţŢŢ^NNŕňĺËŰŰŰôщDb±Çq’$GGGGGG%ITT”R©$I˛łłÓ“_ĄR9ťNĎy<–äää .$™źź_RRR]] čěě˙óçĎ>Îřţ‡ĚńopsŠ)śSLáśb çSţb}ĚćřšIEND®B`‚qwt5-5.2.3/doc/html/functions_0x79.html0000644000175000017500000001331712052741152017161 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- y -

qwt5-5.2.3/doc/html/class_qwt_plot_print_filter.html0000644000175000017500000003637112052741142022205 0ustar gudjongudjon Qwt User's Guide: QwtPlotPrintFilter Class Reference
QwtPlotPrintFilter Class Reference

#include <qwt_plot_printfilter.h>

List of all members.

Public Types

enum  Item {
  Title,
  Legend,
  Curve,
  CurveSymbol,
  Marker,
  MarkerSymbol,
  MajorGrid,
  MinorGrid,
  CanvasBackground,
  AxisScale,
  AxisTitle,
  WidgetBackground
}
enum  Options {
  PrintMargin = 1,
  PrintTitle = 2,
  PrintLegend = 4,
  PrintGrid = 8,
  PrintBackground = 16,
  PrintFrameWithScales = 32,
  PrintAll = ~PrintFrameWithScales
}

Public Member Functions

 QwtPlotPrintFilter ()
virtual ~QwtPlotPrintFilter ()
virtual void apply (QwtPlot *) const
virtual void apply (QwtPlotItem *) const
virtual QColor color (const QColor &, Item item) const
virtual QFont font (const QFont &, Item item) const
int options () const
virtual void reset (QwtPlot *) const
virtual void reset (QwtPlotItem *) const
void setOptions (int options)

Detailed Description

A base class for plot print filters.

A print filter can be used to customize QwtPlot::print().

Deprecated:
In Qwt 5.0 the design of QwtPlot allows/recommends writing individual QwtPlotItems, that are not known to QwtPlotPrintFilter. So this concept is outdated and QwtPlotPrintFilter will be removed/replaced in Qwt 6.x.

Constructor & Destructor Documentation

QwtPlotPrintFilter::QwtPlotPrintFilter ( )
explicit

Sets filter options to PrintAll


Member Function Documentation

void QwtPlotPrintFilter::apply ( QwtPlot plot) const
virtual

Change color and fonts of a plot

See also:
apply()
QColor QwtPlotPrintFilter::color ( const QColor &  c,
Item  item 
) const
virtual

Modifies a color for printing.

Parameters:
cColor to be modified
itemType of item where the color belongs
Returns:
Modified color.

In case of !(QwtPlotPrintFilter::options() & PrintBackground) MajorGrid is modified to Qt::darkGray, MinorGrid to Qt::gray. All other colors are returned unmodified.

QFont QwtPlotPrintFilter::font ( const QFont &  f,
Item  item 
) const
virtual

Modifies a font for printing.

Parameters:
fFont to be modified
itemType of item where the font belongs

All fonts are returned unmodified

int QwtPlotPrintFilter::options ( ) const

Get plot print options.

See also:
setOptions()
void QwtPlotPrintFilter::reset ( QwtPlot plot) const
virtual

Reset color and fonts of a plot

See also:
apply()
void QwtPlotPrintFilter::setOptions ( int  options)

Set plot print options.

Parameters:
optionsOr'd QwtPlotPrintFilter::Options values
See also:
options()
qwt5-5.2.3/doc/html/functions_func_0x65.html0000644000175000017500000001742212052741152020170 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- e -

qwt5-5.2.3/doc/html/class_qwt_plot_layout-members.html0000644000175000017500000002620212052741141022440 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotLayout Member List

This is the complete list of members for QwtPlotLayout, including all inherited members.

activate(const QwtPlot *, const QRect &rect, int options=0)QwtPlotLayoutvirtual
alignCanvasToScales() const QwtPlotLayout
alignLegend(const QRect &canvasRect, const QRect &legendRect) const QwtPlotLayoutprotected
alignScales(int options, QRect &canvasRect, QRect scaleRect[QwtPlot::axisCnt]) const QwtPlotLayoutprotected
AlignScales enum value (defined in QwtPlotLayout)QwtPlotLayout
canvasMargin(int axis) const QwtPlotLayout
canvasRect() const QwtPlotLayout
expandLineBreaks(int options, const QRect &rect, int &dimTitle, int dimAxes[QwtPlot::axisCnt]) const QwtPlotLayoutprotected
IgnoreFrames enum value (defined in QwtPlotLayout)QwtPlotLayout
IgnoreLegend enum value (defined in QwtPlotLayout)QwtPlotLayout
IgnoreMargin enum value (defined in QwtPlotLayout)QwtPlotLayout
IgnoreScrollbars enum value (defined in QwtPlotLayout)QwtPlotLayout
invalidate()QwtPlotLayoutvirtual
layoutLegend(int options, const QRect &) const QwtPlotLayoutprotected
legendPosition() const QwtPlotLayout
legendRatio() const QwtPlotLayout
legendRect() const QwtPlotLayout
margin() const QwtPlotLayout
minimumSizeHint(const QwtPlot *) const QwtPlotLayoutvirtual
Options enum nameQwtPlotLayout
QwtPlotLayout()QwtPlotLayoutexplicit
scaleRect(int axis) const QwtPlotLayout
setAlignCanvasToScales(bool)QwtPlotLayout
setCanvasMargin(int margin, int axis=-1)QwtPlotLayout
setLegendPosition(QwtPlot::LegendPosition pos, double ratio)QwtPlotLayout
setLegendPosition(QwtPlot::LegendPosition pos)QwtPlotLayout
setLegendRatio(double ratio)QwtPlotLayout
setMargin(int)QwtPlotLayout
setSpacing(int)QwtPlotLayout
spacing() const QwtPlotLayout
titleRect() const QwtPlotLayout
~QwtPlotLayout()QwtPlotLayoutvirtual
qwt5-5.2.3/doc/html/qwt__abstract__slider_8h_source.html0000644000175000017500000005017612052741134022703 0ustar gudjongudjon Qwt User's Guide: qwt_abstract_slider.h Source File
Qwt User's Guide  5.2.3
qwt_abstract_slider.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ABSTRACT_SLIDER_H
11 #define QWT_ABSTRACT_SLIDER_H
12 
13 #include <qwidget.h>
14 #include "qwt_global.h"
15 #include "qwt_double_range.h"
16 
28 class QWT_EXPORT QwtAbstractSlider : public QWidget, public QwtDoubleRange
29 {
30  Q_OBJECT
31  Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
32  Q_PROPERTY( bool valid READ isValid WRITE setValid )
33  Q_PROPERTY( double mass READ mass WRITE setMass )
34 #ifndef Q_MOC_RUN // Qt3 moc
35 #define QWT_PROPERTY Q_PROPERTY
36  Q_PROPERTY( Orientation orientation
37  READ orientation WRITE setOrientation )
38 #else // Qt4 moc
39 // MOC_SKIP_BEGIN
40  Q_PROPERTY( Qt::Orientation orientation
41  READ orientation WRITE setOrientation )
42 // MOC_SKIP_END
43 #endif
44 
45 public:
50  enum ScrollMode
51  {
52  ScrNone,
53  ScrMouse,
54  ScrTimer,
55  ScrDirect,
56  ScrPage
57  };
58 
59  explicit QwtAbstractSlider(Qt::Orientation, QWidget *parent = NULL);
60  virtual ~QwtAbstractSlider();
61 
62  void setUpdateTime(int t);
63  void stopMoving();
64  void setTracking(bool enable);
65 
66  virtual void setMass(double val);
67  virtual double mass() const;
68 
69 #if QT_VERSION >= 0x040000
70  virtual void setOrientation(Qt::Orientation o);
71  Qt::Orientation orientation() const;
72 #else
73  virtual void setOrientation(Orientation o);
74  Orientation orientation() const;
75 #endif
76 
77  bool isReadOnly() const;
78 
79  /*
80  Wrappers for QwtDblRange::isValid/QwtDblRange::setValid made
81  to be available as Q_PROPERTY in the designer.
82  */
83 
87  bool isValid() const { return QwtDoubleRange::isValid(); }
88 
93  void setValid(bool valid) { QwtDoubleRange::setValid(valid); }
94 
95 public slots:
96  virtual void setValue(double val);
97  virtual void fitValue(double val);
98  virtual void incValue(int steps);
99 
100  virtual void setReadOnly(bool);
101 
102 signals:
103 
112  void valueChanged(double value);
113 
118  void sliderPressed();
119 
125  void sliderReleased();
131  void sliderMoved(double value);
132 
133 protected:
134  virtual void setPosition(const QPoint &);
135  virtual void valueChange();
136 
137  virtual void timerEvent(QTimerEvent *e);
138  virtual void mousePressEvent(QMouseEvent *e);
139  virtual void mouseReleaseEvent(QMouseEvent *e);
140  virtual void mouseMoveEvent(QMouseEvent *e);
141  virtual void keyPressEvent(QKeyEvent *e);
142  virtual void wheelEvent(QWheelEvent *e);
143 
152  virtual double getValue(const QPoint & p) = 0;
178  virtual void getScrollMode( const QPoint &p,
179  int &scrollMode, int &direction) = 0;
180 
181  void setMouseOffset(double);
182  double mouseOffset() const;
183 
184  int scrollMode() const;
185 
186 private:
187  void buttonReleased();
188 
189  class PrivateData;
190  PrivateData *d_data;
191 };
192 
193 #endif
qwt5-5.2.3/doc/html/inherit_graph_37.map0000644000175000017500000000120512052741163017322 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_picker__inherit__graph.png0000644000175000017500000001335012052741155022740 0ustar gudjongudjon‰PNG  IHDR}AäjbKGD˙˙˙ ˝§“ťIDATxśíť}TWÚŔď„L’" `‡¸EKý@t]ęZ»Ý%UÖŐÝ­Eô,«ía%ÁʶV»ž-»¶§îR¬čžă‘Ĺ#»@"jµ•®ĘG·ľ ŕ%Ă„ĐÂW’I2ďÓ7›0×±÷wzzfnć>÷™“›É™#I Üv?Pw8 ďp@ŢáŔ´_éďďOIIŃét°˛y†ÉČČXąrĄmł?ź)((زeKbb"ŚÄženßľYPP`kaŽÜČţeÄ´°yóf‡4żĂy‡ňäČ;\ô®R©¶mŰČb±ćÎť›žžŢŰŰëĽKCC‡Ăˇ°ą–‰óŕ@$µ··O¤#µŕ\ń®T*_~ůeŹWZZÚÓÓ#•J>|9®zl6›ü>"‘Č…LĆ ^WWÇáp~÷»ßMWđiĂ~ç˙ůĎ:´ŚĘš5kŇŇŇě[¬VkTTÔž={âââŽ=J’d[[ŕăŹ?&IRŁŃŘŹXQQ1Ň;I’ëÖ­;xđ µüí·ß2™L•J500°k×.˙   }űöˇT*çĚ™sćĚ>źpáÂ…ÎÎN'ÁďÜą#¨ĺúúú‡ś››kßŃFggçXž8qÂËËëâĹ‹ Śk,11111ŃľeŇÇ»^Ż/--‹ĹöŤ†I$’Ë—/ …Â[·nQűĎăńĘĘĘeeeK—.U*•”@0jä-[¶Čd2ją¨¨č•W^yá…ÄbńĐĐBˇ(/////ĎÎÎhµÚşş:•Jµ{÷î˝{÷ ‚±‚k4šăÇŹ/[¶ŚZ=tčĐşuëzzz>řŕýű÷Űw´Ź0ę Ť¦¦¦¦±±144Ô!É:`ňÇ{SS†aA8´Ëĺr.—[__Ďĺr ‚HMM=xđ ŹÇ3›Íożýö»ďľkż‡#Óhnnîëëăp8 $I®^˝úěŮł&“ ÇńŢŢ^j›7o._ľśęŢŮŮI’¤Bˇp°ćśËĺ&$$´¶¶Rîßż?88HÄąsçFv¤ś ŞŐjmC8$0Ůă}”ëÎńóóĂ0L­V‡„„Ř··µµ.^ĽŘÇÇ§ŞŞŞ˘˘"?????_.——••}öŮgöłŮlÁ02¸P(”JĄŰ·o—ËĺWŻ^Őh4AřřřŘŹ`±XÔqÍ`Śň~+8ŕÎť;oľů&†aĎ?˙üX;čdPjaÜ&¤»ńxĽčč謬,[KfffsssVVÖ† ńńń2™¬ŁŁcѢE111EEEmmm«V­šHpjŞ)**úŐŻ~ĺĺĺŕááa;ô*++†M6m@WW×oűŰÓ§OWUUeddڵŮDu-{\ůseggçĺĺI$’ ˝^żpáÂęęę„Bá©S§V­Z…aXLLĚÉ“'ăââpÇ0Ěb±á$rBBBCCCvvööíŰl6[$Ą§§wuuiµÚ7ŢxăرcŁvśHđďŢŕL¦N§;zô¨Ĺbéëëłu´-L|Đ©ŕŠ÷°°°»wďętşččhoo\ĽÝ»wS÷€µk׍ƨ¨(@llěŔŔ€P(Ěž={ŢĽy|>_§ÓŤF‡ów‰Dđôô\ż~˝ŃhŚŤŤĄĆĘÉÉ1›ÍˇˇˇaaaţţţGŽ5%űŕcĄíççwřđáčččM›6Íź?_$Ů:>÷Üs¶tJLösu,†‡‡ĺrąk}źy¦ásćĚ÷çńlŁR©.g}ď[’Bˇŕrąr›,‡3ßĂ.Ů‚ĚĚL{Ő.~;…ÎíŰMłfIŢ_ ;ˇëü~ńâ=ę˙fłv.®@Kď&“Y&“úú†ĘËŔNÇhé˝´´ahČđđ`Čd÷`§ă ´ô.•Ţóđ`Ěfë_Ô ›`g4ičç}pĐxýz˝ŮlˇVŤFóW_݇›’ ĐĎ»˝tIĄUóq úy—J«ě˙yÓl¶ŢşŐ ×CLÉhć]§,/h±|ďÜ‘$Ék×ę`Ąä4óţůçµ#I’,,¤ŮTC3ďEE•äĚ­VňţçŃ·ßöAIÉ5čä˝˝˝÷Ţ˝«u”ű=<W®ŚňVxjˇ“÷+WjĆz‚Ůl‘JéôjŇżÓČ‹/úϚų­ 9śÉüîĐY˛d6¤Ľ\9]Ň…  ôśśä_ţ’–?ˇÓ<ó,ĽĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@Ţ!1Ĺç¨Ř? ŮͰŮÁ †'”ˇŁ˘˘¦čmŞ÷7•——‡……ý JËÝżż°°pŠA¦áľ2˙©ÇůAćw8 ďp@ŢြĂy‡űî“×h4çÎť«¬¬ěďďçóůQQQÉÉÉ^^^Nş¨Őę”””’’µZťśślkçńxáááiii|>ß¶ŤóÓĽ3SĆMÇ{KKË®]»<==Ź;vĺĘ•?ü°µµ555u```‚pżő˙ś={–Ĺb=züj7y?~üř«Żľ*‹9΂ >úč#źż˙ýď{÷îĄęŠtwwÇĆĆćççt:]lllrr2A±±±}}ß{¶ źĎýő×jµúç?˙9Ő>44ôÉ'źlذaÓ¦MgĎžµďB’ä'ź|˛˙~“É0 ™™™7n‰D999‹E­V˙ú׿–ÉdŻ˝öšZ­~ŇBÜá}hh¨¦¦Ćˇň!†a"‘č›oľY±b…\.ÔŐŐyzzÖÖÖjkkCBBrss©ĂÜŰŰŰľowwwQQŃüůóĘĘĘŇëőąąąÇŽ»~ýzEEŐN’dfffGGÇźţô'‹Emi4Ďť;wâĉÚÚÚ‹/Ra›ššÎź?üÄd|‡;ćwŞNĄżżżCű¬Yłzzz"""rss-K]]ݦM›d2™Őj­­­]±b…ýĆÔO-{zz†‡‡żóÎ;öÍ毾ú*//ĎÇÇÇÇÇç> ˛łłżüňËÂÂB6›MmYRRR\\}:""Âl6ďÜąÓľRŮ“ĂŢ©=ŃjµłfͲoďęęš9sćÜąs˝ĽĽ~ü¸Őj`†ăřÂ… …B!Uń Çńččč“'OöőőőööfddL±Ú± ¸Éűś9srrrúűűĹbńşuëJJJ6nÜ •J?ýéO ‚Xşt)ॗ^¦&w@0{öě 6ô÷÷Od”˝{÷zxx$%%I$’řřřŐ«WŰżš’’ŇÜÜ|ăĆ Ŕž={,˶mŰ’““}}}SRR¦źť2Őç\mŢĽąłłóđáĂ.ô5™LjµzŢĽySIŔý”––ţńŹś˘7× X,í¤Očú w8 ďp@ŢြĂy‡Ă4\'¨­­Ý·oßÔăĐ…žžž©™ŞwŰ%7c±`ŤŤľ>>F÷ŹľsçÎ)F ës™ *%’ kÖ,:~Ş  @×ůýâĹ{`eeúú†`çâ ´ôŢŮŮ˙ő× —/×ŔNÇhéýóĎk¨kĺ$IUÂNÇhé˝  ŠŞňaµ’UU-M/ěŚ& ýĽ«ŐÝuu­¶ę*Śâb9Ü”\€~Ţ/]’Űjz,ka!ý¦úy/,¬$˙Ö+#I˛ˇAóč‘bJ.@3ď š¦&-u&cÇ=Š‹«aĄä4ó^\\Íb9~Ç&Ë?ţqJ>.C'ď$IU™LŁüĽ ­­§®®Őý)ą ťĽWW·´·Ź~ĘH»©†NŢoÜP€±XĚ‘˙Y,Ö/ľř_Ř N:Չۺu%Aü·ŇpAAedä‹Ď??“Z]±"R^®@×ë‘Ő‰C¸ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂaüű= §ĺI7O‚ýë_Oăť|‰‰‰ÔóŠÇÄy9ł«WŻş+ŐgŠíŰ·O©NU‚ľ÷â@aóćÍηAó;w8 ďp@ŢြĂaÚĽ«TŞm۶˛X¬ąs禧§SelśĐĐĐŔáp¨Ě@ ‰¨â¶mžt73=Ţ•JĺË/żĚăńJKK{zz¤RéÇ###ÇUoÍfŰÎmëęę8U{fâŚ!44Ô`0Lz—ž4ÎOď©Jbη!IrÍš5iiiö-V«5**jĎž=qqqGŹ%I˛­­ đńÇ“$©Ńhěs¨¨¨°·F’äť;wI’JĄŇöROOĎ›oľÉçóôŁ˝÷Ţ{öŐn&AŻ×ďرĎç:tČţU«ŐşcÇŽW_}uxx$É]»vůűűíŰ·Ź ĄR9gÎś'Nxyy)•J'6ť›†ă]Ż×—––ŠĹbűF Ă$ÉĺË—…Bá­[·(5<ݬ¬ PVV¶téRŰ> űľŤćřńăË–-sč­·ŢŇëő÷ďßżyóćŐ«Wóňň&!--M§Ó)•ĘŇŇŇÜÜ\ŞL€$É·Ţz«ĄĄĺŇĄKÔ´#‹‡†† Eyyyyyyvv6¶¦¦¦±±144tŞÖś˙Y&rĽ755aF„C»\.çrąőőő\.— ÔÔÔňx<łŮüöŰożűî»6kJĄŇ>%.—›ĐÚÚJÚŹÁ`¨T**¸T*ýńŹ<©&“‰Éd>zôŠđő×_WUUQŻîŢ˝Çq­VK˝d2™pďííĄVoŢĽą|ůrjŰ6NČń> ĎAńóóĂ0L­V‡„|ďI$mmm‹/öńń©ŞŞŞ¨¨ČĎĎĎĎĎ—Ëĺeeeź}ö™ýĆl6Űů,ÜŃŃ;w.µňřńăIEĐh4V«ő…^ V©’] FŁQĄRýä'?ÉĚĚü裏¨- ‚°Ż]ćçç`±XÔÂÔ™†y†ÇăEGGgeeŮZ233›››ł˛˛6lŘŹŹ—Éd‹-Љ‰)**jkk[µjŐ¤Fˇ Ŕýç?˙ˇV›››ŞÎŤK@@Ŕö׺víZqq1Çq©TzęÔ©cÇŽQ5.<<pŕ@(ž:ujŐŞU†ĹÄÄśhoď­®VĂMÉč署˛ąłłß¶Ęb1éUQ…‚~Ţm“ …Éd–ÉŞ,«“.O!4óN–ââ{öŐU==Ăß|Ó+%× ™÷ňňýýŽ?ÖŔqL*˝%—ˇ™w™¬ÚĂĂá‘ ¬ź^c0LčWO tň>oßĚwhˇ tšgž%w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäČ;w8 ďp@ŢြĂy‡ňäŁÜďŃßßź’’2Á'żB¤˝=Č×W÷ÜsO_-ď“‘‘±rĺJ‡ĆQĽlٲ%1‘–ĎuyÚ¸}űvdddAACű÷ŮŚÜá›7oµÍďp@ŢြĂy‡ň‡)y‡[€ŤĆTöČm¸îýi¨ g_ąˇ··wŢĽy)))“ߌ,=A—ÚpťťťöC'$$DGG›L¦Q;Rí#©ęoůË_fÎśéççwţüůC‡y{{űůůĺććRˇžDÍ8Ź÷§­6Üź˙üg…B!•Jqµă§ź~:Vc[[›V«mii‹ĹIII&“éńăÇb±ř˝÷ŢŁB=‘šq#˙t© găúőëľľľ …ÂÖ2jDZ˘1 Á@’¤Bˇ°_¶U—{5ă\|ÇSRĐŇŇ’””táÂ…°°0çÇŠ†ă8›Í0 űejł'T3ÎĹyć)© g4E"ŃâăăÇíčZĄą'T3Îő󙧡6\jjęK/˝$‘H&ŇqÔƉäđDjĆŤśz&^ŁěŃŁGIII,+$$dĎž=Ë—/?|ř0I’z˝ÇńżţőŻ$I¶¶¶ţö·ż‘$ŮßßĘĺr˙ýď;LÓ6ěgđ®®®ßüć73gÎ zçťwL&“-Bww·“=ŮqÔFű±ĆZîééIJJâóů|>?%%ehhhägĚXŚ5żOÉűH~°µáĆbšĎ#ÇŐ†› čú w8 ďp@ŢြĂy‡Ă×gÎś9ăÎ<žUT*•Ă%¬ďyJŻP(¸\®Ű3|fÉĚĚ)™NĎe~–@ó;w8 ďp@Ţáđ •Á[ĺ]˙@IEND®B`‚qwt5-5.2.3/doc/html/qwt__scale__div_8h_source.html0000644000175000017500000004114412052741135021463 0ustar gudjongudjon Qwt User's Guide: qwt_scale_div.h Source File
Qwt User's Guide  5.2.3
qwt_scale_div.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_DIV_H
11 #define QWT_SCALE_DIV_H
12 
13 #include "qwt_global.h"
14 #include "qwt_valuelist.h"
15 #include "qwt_double_interval.h"
16 
17 class QwtDoubleInterval;
18 
30 class QWT_EXPORT QwtScaleDiv
31 {
32 public:
34  enum TickType
35  {
36  NoTick = -1,
37 
38  MinorTick,
39  MediumTick,
40  MajorTick,
41 
42  NTickTypes
43  };
44 
45  explicit QwtScaleDiv();
46  explicit QwtScaleDiv(const QwtDoubleInterval &,
47  QwtValueList[NTickTypes]);
48  explicit QwtScaleDiv(double lowerBound, double upperBound,
49  QwtValueList[NTickTypes]);
50 
51  int operator==(const QwtScaleDiv &s) const;
52  int operator!=(const QwtScaleDiv &s) const;
53 
54  void setInterval(double lowerBound, double upperBound);
55  void setInterval(const QwtDoubleInterval &);
56  QwtDoubleInterval interval() const;
57 
58  double lowerBound() const;
59  double upperBound() const;
60  double range() const;
61 
62  bool contains(double v) const;
63 
64  void setTicks(int type, const QwtValueList &);
65  const QwtValueList &ticks(int type) const;
66 
67  void invalidate();
68  bool isValid() const;
69 
70  void invert();
71 
72 private:
73  double d_lowerBound;
74  double d_upperBound;
75  QwtValueList d_ticks[NTickTypes];
76 
77  bool d_isValid;
78 };
79 
85 inline void QwtScaleDiv::setInterval(double lowerBound, double upperBound)
86 {
87  d_lowerBound = lowerBound;
88  d_upperBound = upperBound;
89 }
90 
95 {
96  return QwtDoubleInterval(d_lowerBound, d_upperBound);
97 }
98 
103 inline double QwtScaleDiv::lowerBound() const
104 {
105  return d_lowerBound;
106 }
107 
112 inline double QwtScaleDiv::upperBound() const
113 {
114  return d_upperBound;
115 }
116 
120 inline double QwtScaleDiv::range() const
121 {
122  return d_upperBound - d_lowerBound;
123 }
124 #endif
qwt5-5.2.3/doc/html/class_qwt_c_pointer_data.html0000644000175000017500000003634212052741164021423 0ustar gudjongudjon Qwt User's Guide: QwtCPointerData Class Reference
QwtCPointerData Class Reference

#include <qwt_data.h>

Inheritance diagram for QwtCPointerData:

List of all members.

Public Member Functions

 QwtCPointerData (const double *x, const double *y, size_t size)
virtual QwtDoubleRect boundingRect () const
virtual QwtDatacopy () const
QwtCPointerDataoperator= (const QwtCPointerData &)
virtual size_t size () const
virtual double x (size_t i) const
const double * xData () const
virtual double y (size_t i) const
const double * yData () const
- Public Member Functions inherited from QwtData
 QwtData ()
virtual ~QwtData ()

Additional Inherited Members

- Protected Member Functions inherited from QwtData
QwtDataoperator= (const QwtData &)

Detailed Description

Data class containing two pointers to memory blocks of doubles.


Constructor & Destructor Documentation

QwtCPointerData::QwtCPointerData ( const double *  x,
const double *  y,
size_t  size 
)

Constructor

Parameters:
xArray of x values
yArray of y values
sizeSize of the x and y arrays
Warning:
The programmer must assure that the memory blocks referenced by the pointers remain valid during the lifetime of the QwtPlotCPointer object.
See also:
QwtPlotCurve::setData(), QwtPlotCurve::setRawData()

Member Function Documentation

QwtDoubleRect QwtCPointerData::boundingRect ( ) const
virtual

Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false

Reimplemented from QwtData.

QwtData * QwtCPointerData::copy ( ) const
virtual
Returns:
Pointer to a copy (virtual copy constructor)

Implements QwtData.

size_t QwtCPointerData::size ( ) const
virtual
Returns:
Size of the data set

Implements QwtData.

double QwtCPointerData::x ( size_t  i) const
virtual

Return the x value of data point i

Parameters:
iIndex
Returns:
x X value of data point i

Implements QwtData.

const double * QwtCPointerData::xData ( ) const
Returns:
Array of the x-values
double QwtCPointerData::y ( size_t  i) const
virtual

Return the y value of data point i

Parameters:
iIndex
Returns:
y Y value of data point i

Implements QwtData.

const double * QwtCPointerData::yData ( ) const
Returns:
Array of the y-values
qwt5-5.2.3/doc/html/inherit_graph_32.png0000644000175000017500000000377412052741163017341 0ustar gudjongudjon‰PNG  IHDR­%ż.ţˇbKGD˙˙˙ ˝§“±IDATxśíš}HŰÇĎl»;+¸ëËşîjĄ¦‚ŠA*ľ Š[”BZ‘™ÖJĄPˇZh/‚•†f‘†¤”%Q–/AAD˘ć’!Úún–˛6»ş®Ż“ëzîçw‡ąëş–xëwď=źżÎ<3ó}žgćëxÎěB€ůĎĂůÝ`ţ/Ŕ>Ŕ€}€A``€ËŢššJII˙]Ő`~ůůůAAAĚ&Á^/ÔÔÔÄÇÇÇĹĹýŽÂ0żŽwďŢ×ÔÔ0îŇŘ»1˙J8`Áó Řöě űŔŞ}000””$“Éř|ľ››[ffćÄÄ„ĺSşşş )Šőë×[YYyzzž;wnnnî§ `«™…0ÇOĄ° MÓˇˇˇ$IRµ†˛ L+vş&¬Ć*•* @$˝~ýZ§ÓŐÖÖöôôŻh„pçÎťR©T©TętşGŹ577§§§Ż˘ËY „*•Š$Iř'k¨?44ÔÚÚJQ”ŁŁăĘ.ĹŰŰ›¦éż5^/ÄÇM"f‰ŚŚLOOgGĂ²˛˛äryQQ„pddPXX!T«ŐěŚ?~$bnnŽ9˝˝˝ýŕÁh<99yôčQ±X,•JsssQ°ŁŁ#00P ¸¸¸TUU™ÜŕéééăÇŹ;:::;;ź>}Ú`00Ę&>@WW×7nX[[«T*łĘ®®®¨†ű÷ďŁkjjĽĽĽŻŻo]]ÓŽZ­Öét‡‹Ĺ6l8sćĚüü<;K}}˝««kqq±˝˝˝D"©®®ÎÍ͵±±‘H$(ăŇ5 ŁßÔÔÄ´°\˘ĄŐZ&.....Žůičőz‡ÓßßoŻ­­őôô,..ŽŽŽ†>xđ@$EEEˇń–-[[˛°°°yóćčččúúú±±1ť#GŽÄĆĆRĄR©6nÜXWW!ÜłgĎĹ‹çćć*++á_oprr˛BˇĐh4}}}×®]cÔĚú€Ďç;vL­V/§lee•––¦×ë śśśP×<ďĺË—4M———{xx°•ăăăcbbľ}űÖÓÓăççwĺĘv•JĹĺrłłł§¦¦ ‚`ĆHÜr+&ZZ튬úúú‚`˙Í!ÚÚÚ„BaGG‡P(4 ©©©çĎź‰D 'OžĚÉÉa÷Ł×ëËĘĘbbbÄb±ŹŹOnnîĚĚ „p~~žËĺ2&knnV*•ÂOź>ÍĚĚ †;wî\ťůůyŹ711Nyőꕿż?S•Y(ŠB›f•ŤBŘŮى‚ăăă$IŢ˝{wvvvqq‘¦iF™¦i‡300€kkkýüüŘYT*‡Ăˇi ˛ÇLmü‘D&Ő®ČRüôü@"‘ńĺË“řČČL&óőőµµµU*•MMM‰‰‰mmmŤŤŤQQQěE"Qjję“'O4MUUŐŰ·o:„ž±‹‹‹›6mB‡…††n۶ ĐŇŇÔĐĐ`’W­V [[[4ŚŚŚ˛ÜźĎ—H$hlV™Ďç;888ś˙];;»§OźVWWËd˛;v´··3ŹŽŽÜÜÜЦ»»űđđ°IŹG’$dŹ ţH"“jWÁOź)‰ÂĂĂKKK™HIIÉŕŕ`iiill,`×®]uuuŁŁŁ>>>Ź? aŽ?qâ„\.Gc‚  ›ššR©€Ú<{ö¬ˇˇA«Ő&''ßşuK©Tćçç›Ô#•J×­[Ç<¦§§[[[-·Ŕ,–S^ş˛ iÚĆĆćĹ‹EÉĺňřřxf—L&|ţüm:99™YË ®a" ¬ĆAeee÷îÝËČČčîî¦izrrŇËËëÇgĎžDEE•——‡„„qóćMą\Îăń‚0Ť!))©±±±¸¸xxx¦éîîîË—/ďŢ˝@’äľ}űNť:ĄŐj{{{ÓŇŇŚF#şÁ\.w||Ľ¨¨Čh4ęőz¦’$÷ďßź™™©Őj)ŠJLLĽ~ýú6bY™ŤŃhŚŚŚ|˙ţ=@ °r$IîÝ»7##˘¨ŢŢŢĽĽ<ôlűqĚ–Á\®5L´r\/@űűű …T*ĺóůîîîYYYţţţyyyÂÉÉIŹwőęUáׯ_•••©©)oooˇP866öüůóđđpkkk+++//Żśśśďßż#ĺ±±±„„;;;''§K—.ˇŕ… D"‘‡‡GCCŹŹĎöíŰŮ˙řu:ťBˇ‹Ĺb±8%%evv–©Óěü€±¬Ěßľ}ŰĹĹE ´´´°wiµÚ„„{{{ggçěěl4Ť7+˛ÜxiĚĺzóćÍ*YféüŔĚ÷pUëlš¦»şş¶nÝşVĹü} ßťŮ¬Ů{e@€MđĎ˙ľ€űŔ>Ŕ€}€A``Ŕ>Ŕ Ě|·^QQńëëŔüJÜÝÝ˙bżTęěě …ż©6Ě/Ą¤¤dŮ÷‰˙,x~€űŔ>Ŕ€}€Aü{gł$0řIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_panner__inherit__graph.map0000644000175000017500000000026612052741155022741 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__spline_8h_source.html0000644000175000017500000003554412052741135020674 0ustar gudjongudjon Qwt User's Guide: qwt_spline.h Source File
Qwt User's Guide  5.2.3
qwt_spline.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SPLINE_H
11 #define QWT_SPLINE_H
12 
13 #include "qwt_global.h"
14 #include "qwt_double_rect.h"
15 
16 #if QT_VERSION >= 0x040000
17 #include <QPolygonF>
18 #else
19 #include "qwt_array.h"
20 #endif
21 
22 // MOC_SKIP_BEGIN
23 
24 #if defined(QWT_TEMPLATEDLL)
25 
26 #if QT_VERSION < 0x040000
27 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
28 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
29 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
30 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
31 #endif
32 
33 #endif
34 
35 // MOC_SKIP_END
36 
77 class QWT_EXPORT QwtSpline
78 {
79 public:
82  {
83  Natural,
84  Periodic
85  };
86 
87  QwtSpline();
88  QwtSpline( const QwtSpline & );
89 
90  ~QwtSpline();
91 
92  QwtSpline &operator=( const QwtSpline & );
93 
94  void setSplineType(SplineType);
95  SplineType splineType() const;
96 
97 #if QT_VERSION < 0x040000
98  bool setPoints(const QwtArray<QwtDoublePoint>& points);
99  QwtArray<QwtDoublePoint> points() const;
100 #else
101  bool setPoints(const QPolygonF& points);
102  QPolygonF points() const;
103 #endif
104 
105  void reset();
106 
107  bool isValid() const;
108  double value(double x) const;
109 
110  const QwtArray<double> &coefficientsA() const;
111  const QwtArray<double> &coefficientsB() const;
112  const QwtArray<double> &coefficientsC() const;
113 
114 protected:
115 
116 #if QT_VERSION < 0x040000
117  bool buildNaturalSpline(
118  const QwtArray<QwtDoublePoint> &);
119  bool buildPeriodicSpline(
120  const QwtArray<QwtDoublePoint> &);
121 #else
122  bool buildNaturalSpline(const QPolygonF &);
123  bool buildPeriodicSpline(const QPolygonF &);
124 #endif
125 
126  class PrivateData;
127  PrivateData *d_data;
128 };
129 
130 #endif
qwt5-5.2.3/doc/html/qwt__legend_8h_source.html0000644000175000017500000003655712052741135020645 0ustar gudjongudjon Qwt User's Guide: qwt_legend.h Source File
Qwt User's Guide  5.2.3
qwt_legend.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_LEGEND_H
13 #define QWT_LEGEND_H
14 
15 #include <qframe.h>
16 #include "qwt_global.h"
17 #if QT_VERSION < 0x040000
18 #include <qvaluelist.h>
19 #else
20 #include <qlist.h>
21 #endif
22 
23 class QScrollBar;
25 
36 class QWT_EXPORT QwtLegend : public QFrame
37 {
38  Q_OBJECT
39 
40 public:
63  {
64  NoIdentifier = 0,
65  FixedIdentifier = 1,
66  AutoIdentifier = 2
67  };
68 
88  {
89  ReadOnlyItem,
90  ClickableItem,
91  CheckableItem
92  };
93 
94  explicit QwtLegend(QWidget *parent = NULL);
95  virtual ~QwtLegend();
96 
97  void setDisplayPolicy(LegendDisplayPolicy policy, int mode);
98  LegendDisplayPolicy displayPolicy() const;
99 
100  void setItemMode(LegendItemMode);
101  LegendItemMode itemMode() const;
102 
103  int identifierMode() const;
104 
105  QWidget *contentsWidget();
106  const QWidget *contentsWidget() const;
107 
108  void insert(const QwtLegendItemManager *, QWidget *);
109  void remove(const QwtLegendItemManager *);
110 
111  QWidget *find(const QwtLegendItemManager *) const;
112  QwtLegendItemManager *find(const QWidget *) const;
113 
114 #if QT_VERSION < 0x040000
115  virtual QValueList<QWidget *> legendItems() const;
116 #else
117  virtual QList<QWidget *> legendItems() const;
118 #endif
119 
120  void clear();
121 
122  bool isEmpty() const;
123  uint itemCount() const;
124 
125  virtual bool eventFilter(QObject *, QEvent *);
126 
127  virtual QSize sizeHint() const;
128  virtual int heightForWidth(int w) const;
129 
130  QScrollBar *horizontalScrollBar() const;
131  QScrollBar *verticalScrollBar() const;
132 
133 protected:
134  virtual void resizeEvent(QResizeEvent *);
135  virtual void layoutContents();
136 
137 private:
138  class PrivateData;
139  PrivateData *d_data;
140 };
141 
142 #endif // QWT_LEGEND_H
qwt5-5.2.3/doc/html/class_qwt_wheel.html0000644000175000017500000013373212052741165017556 0ustar gudjongudjon Qwt User's Guide: QwtWheel Class Reference

#include <qwt_wheel.h>

Inheritance diagram for QwtWheel:

List of all members.

Public Member Functions

 QwtWheel (QWidget *parent=NULL)
virtual ~QwtWheel ()
int internalBorder () const
double mass () const
virtual QSize minimumSizeHint () const
void setInternalBorder (int width)
void setMass (double val)
virtual void setOrientation (Qt::Orientation)
void setTickCnt (int cnt)
void setTotalAngle (double angle)
void setViewAngle (double angle)
void setWheelWidth (int w)
virtual QSize sizeHint () const
int tickCnt () const
double totalAngle () const
double viewAngle () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
Qt::Orientation orientation () const
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const

Protected Member Functions

void draw (QPainter *, const QRect &)
void drawWheel (QPainter *, const QRect &)
void drawWheelBackground (QPainter *, const QRect &)
virtual void getScrollMode (const QPoint &, int &scrollMode, int &direction)
virtual double getValue (const QPoint &)
void layoutWheel (bool update=true)
virtual void paintEvent (QPaintEvent *e)
virtual void paletteChange (const QPalette &)
virtual void resizeEvent (QResizeEvent *e)
void setColorArray ()
virtual void valueChange ()
- Protected Member Functions inherited from QwtAbstractSlider
virtual void keyPressEvent (QKeyEvent *e)
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void rangeChange ()
virtual void stepChange ()

Additional Inherited Members

- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}
- Public Slots inherited from QwtAbstractSlider
virtual void fitValue (double val)
virtual void incValue (int steps)
virtual void setReadOnly (bool)
virtual void setValue (double val)
- Signals inherited from QwtAbstractSlider
void sliderMoved (double value)
void sliderPressed ()
void sliderReleased ()
void valueChanged (double value)

Detailed Description

The Wheel Widget.

The wheel widget can be used to change values over a very large range in very small steps. Using the setMass member, it can be configured as a flywheel.

See also:
The radio example.

Member Function Documentation

void QwtWheel::draw ( QPainter *  painter,
const QRect &   
)
protected

Redraw panel and wheel

Parameters:
painterPainter
void QwtWheel::drawWheel ( QPainter *  painter,
const QRect &  r 
)
protected

Redraw the wheel.

Parameters:
painterpainter
rcontents rectangle
void QwtWheel::drawWheelBackground ( QPainter *  painter,
const QRect &  r 
)
protected

Draw the Wheel's background gradient

Parameters:
painterPainter
rBounding rectangle
void QwtWheel::getScrollMode ( const QPoint &  p,
int &  scrollMode,
int &  direction 
)
protectedvirtual

Determine the scrolling mode and direction corresponding to a specified point.

Parameters:
ppoint
scrollModescrolling mode
directiondirection

Implements QwtAbstractSlider.

int QwtWheel::internalBorder ( ) const
Returns:
Internal border width of the wheel.
See also:
setInternalBorder()
double QwtWheel::mass ( ) const
virtual
Returns:
mass

Reimplemented from QwtAbstractSlider.

QSize QwtWheel::minimumSizeHint ( ) const
virtual

Return a minimum size hint.

Warning:
The return value is based on the wheel width.
void QwtWheel::setInternalBorder ( int  w)

Set the internal border width of the wheel.

The internal border must not be smaller than 1 and is limited in dependence on the wheel's size. Values outside the allowed range will be clipped.

The internal border defaults to 2.

Parameters:
wborder width
See also:
internalBorder()
void QwtWheel::setMass ( double  val)
virtual

Set the mass of the wheel.

Assigning a mass turns the wheel into a flywheel.

Parameters:
valthe wheel's mass

Reimplemented from QwtAbstractSlider.

void QwtWheel::setOrientation ( Qt::Orientation  o)
virtual

Set the wheel's orientation.

Parameters:
oOrientation. Allowed values are Qt::Horizontal and Qt::Vertical. Defaults to Qt::Horizontal.
See also:
QwtAbstractSlider::orientation()

Reimplemented from QwtAbstractSlider.

void QwtWheel::setTickCnt ( int  cnt)

Adjust the number of grooves in the wheel's surface.

The number of grooves is limited to 6 <= cnt <= 50. Values outside this range will be clipped. The default value is 10.

Parameters:
cntNumber of grooves per 360 degrees
See also:
tickCnt()
void QwtWheel::setTotalAngle ( double  angle)

Set the total angle which the wheel can be turned.

One full turn of the wheel corresponds to an angle of 360 degrees. A total angle of n*360 degrees means that the wheel has to be turned n times around its axis to get from the minimum value to the maximum value.

The default setting of the total angle is 360 degrees.

Parameters:
angletotal angle in degrees
See also:
totalAngle()
void QwtWheel::setViewAngle ( double  angle)

Specify the visible portion of the wheel.

You may use this function for fine-tuning the appearance of the wheel. The default value is 175 degrees. The value is limited from 10 to 175 degrees.

Parameters:
angleVisible angle in degrees
See also:
viewAngle(), setTotalAngle()
void QwtWheel::setWheelWidth ( int  w)

Set the width of the wheel.

Corresponds to the wheel height for horizontal orientation, and the wheel width for vertical orientation.

Parameters:
wthe wheel's width
QSize QwtWheel::sizeHint ( ) const
virtual
Returns:
a size hint
int QwtWheel::tickCnt ( ) const
Returns:
Number of grooves in the wheel's surface.
See also:
setTickCnt()
double QwtWheel::totalAngle ( ) const
Returns:
Total angle which the wheel can be turned.
See also:
setTotalAngle()
double QwtWheel::viewAngle ( ) const
Returns:
Visible portion of the wheel
See also:
setViewAngle(), totalAngle()
qwt5-5.2.3/doc/html/class_qwt_compass_wind_arrow__inherit__graph.map0000644000175000017500000000027212052741153025351 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_picker_click_point_machine-members.html0000644000175000017500000001322512052741140025404 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPickerClickPointMachine Member List

This is the complete list of members for QwtPickerClickPointMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)QwtPickerClickPointMachinevirtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/inherit_graph_36.map0000644000175000017500000000023012052741163017316 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_31.md50000644000175000017500000000004012052741151017215 0ustar gudjongudjona0d531699a48f1f51b3341dd9b0d62cfqwt5-5.2.3/doc/html/inherit_graph_15.map0000644000175000017500000000022012052741162017311 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwtlicense.html0000644000175000017500000012506512052741136016546 0ustar gudjongudjon Qwt User's Guide: Qwt License, Version 1.0
Qwt User's Guide  5.2.3
Qwt License, Version 1.0
Qwt License
Version 1.0, January 1, 2003
The Qwt library and included programs are provided under the terms
of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following
exceptions:
1. Widgets that are subclassed from Qwt widgets do not
constitute a derivative work.
2. Static linking of applications and widgets to the
Qwt library does not constitute a derivative work
and does not require the author to provide source
code for the application or widget, use the shared
Qwt libraries, or link their applications or
widgets against a user-supplied version of Qwt.
If you link the application or widget to a modified
version of Qwt, then the changes to Qwt must be
provided under the terms of the LGPL in sections
1, 2, and 4.
3. You do not have to provide a copy of the Qwt license
with programs that are linked to the Qwt library, nor
do you have to identify the Qwt license in your
program or documentation as required by section 6
of the LGPL.
However, programs must still identify their use of Qwt.
The following example statement can be included in user
documentation to satisfy this requirement:
[program/widget] is based in part on the work of
the Qwt project (http://qwt.sf.net).
----------------------------------------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
qwt5-5.2.3/doc/html/class_qwt_text_label__inherit__graph.map0000644000175000017500000000022512052741160023570 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_picker_machine-members.html0000644000175000017500000001313212052741141023024 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPickerMachine Member List

This is the complete list of members for QwtPickerMachine, including all inherited members.

Append enum value (defined in QwtPickerMachine)QwtPickerMachine
Begin enum value (defined in QwtPickerMachine)QwtPickerMachine
Command enum nameQwtPickerMachine
CommandList typedef (defined in QwtPickerMachine)QwtPickerMachine
End enum value (defined in QwtPickerMachine)QwtPickerMachine
Move enum value (defined in QwtPickerMachine)QwtPickerMachine
QwtPickerMachine()QwtPickerMachineprotected
reset()QwtPickerMachine
setState(int)QwtPickerMachine
state() const QwtPickerMachine
transition(const QwtEventPattern &, const QEvent *)=0QwtPickerMachinepure virtual
~QwtPickerMachine()QwtPickerMachinevirtual
qwt5-5.2.3/doc/html/inherit_graph_33.png0000644000175000017500000000362112052741163017331 0ustar gudjongudjon‰PNG  IHDR%îşÍÂbKGD˙˙˙ ˝§“FIDAThíšoHSoÇϙۚä™ŐĐ©5-µtý‘Ę?i†S,%s3‹™b`QXI ™d‘dć -°e"dNg ö..9šÄÔ©s:L3çA]Ú±Ív=/ÎĂXKí÷ż<<ťĎ«űľÎ9ßëşĎwçľö„†0Öşš˙B;Ah'¨íU`şĚŐjőŤ7Ö¤”żŹ'“É0 s˘.ďť$‰Z­Ž‰‰ůłµý]455566J$ç ë3 HLLĚË—/˙TU#(Šţ¤űU ť  ´Tv‚*ĐNP…•;a4łłł}||ŘlöÖ­[Ż\ą2==˝ü%z˝žĂác“É$•J7oŢěîî\\\LÄ˙T€łÚĎś8qB,;¦ÉÉÉŽéť;wBBB–RX^yeőü’:ŃŰŰÉĺr•JĺÔÔTsssLLĚ/Í €ÄÄD>źŻŃh¦¦¦šššT*UAAÁĘŠY”„„„ŽŽr9'íęęBQ” Çĺ>|8yň$9¶X,ąąą<ŹĎç—””AťNĹápüýýëęę ··wÝşuäŃŮŮŮüü|ooo??ż«WŻÚl6Á€ ^Ż€ööö={öH$’»wďŔ†a …ÂYÇq‰Dâéééďď_VVć[,–3gÎlÚ´)  ľľ~©ŚÎ 4›ÍËß=A].óâÄĚĚ Át‰777ßż?)) ^ĽxÁĺrŹ;FŽĂÂÂ+_XXŘ˝{wRR’BˇŔqÜE''''55ubb˘··W ´´´@ZZÚ­[·‚ÉdŢŢŢđŁyyyR©Ôl6 †¨¨¨ŞŞ* ¬­­€‹/ŐŐŐ:t4Ť››Űôô´łBFF†H$íëë۵k—#ž““süřńńńńđđđe2:«-ĎŞ9a0PµŮl.q­V‹aN§Ă0Ěfł]¸páúőë\.waaáüůóEEEεÎĚĚÔÔÔ¤¤¤đx<ˇPXRR277V«•Éd:lV©TŤzzzćććl6ŰłgĎH‡šŐje±XÓÓÓä%oŢĽ‰€üüüÓ§O@PPR©ś`±X8ŽWUUEGG;+Á`0úúúHą\îPf2™FŁ‘Ś+Še2®K=mmmŰ·o@ V«ĂÂÂş»»;;;wîÜ©T*­Őn·ż{÷....-- L&Á°Űí.§=}út˙ţýáááiii.NL&—-×ËË ärą@ Đëőžžžäë&::şˇˇ!==ťÜô ĂĂĂ(Š~˙ţťĚĄŐjĘÎĹtuu-“ń7ťXIÇćrą±±±ŐŐՎȆ††Ş««SSS9zôhKKËřř¸P(‚ ?~$ʶ···¶¶NNNćĺĺŐÖÖj4šŰ·o»ÔĂçóÉ݆\Ňěělgg'‚ "‘hllěŃŁG L&Aäää¶¶6•J•ŕ¬ŕë닢¨Ńh$§CCCeA†‡‡Ž/šń·pqćvěîînŹwéŇ%˝^ODii)‹Ĺňňň"7ý––ň5ţüůsŹôôtĐëőL&Ójµľ}űÖÍÍ­˘˘bdd„ ˝^źššš““CŠgddĹbłŮÜßßżmŰ6ą\>11˘¨V«Ĺq<;;›Édşěň™™™ąąąfłůóçĎ)))—/_&ă`łŮOža0"""8ÎR«[Ů3±B'`ppP*•ňů|6›XXXQZZ ‹…ĹbUVVŔČČ‚ 2™ ľ|ůŠaŽăŻ_żŽŤŤőđđpww )**úöí©ŚăxVVÖĆŤ}}}ËĘĘČŕÍ›7ą\nPPPkk«P(ŚŹŹwľŹSSSR©”ÇăńxĽłgĎ~ýú•Ś—”” 266ć(ŰĎĎŹ|?:ăxffㆠACCłň©S§¸\îŽ;>|aŘRťW·ü­[e'~† ­V»˛k)K}}ýřř89V(Bˇđ÷5ub5żíŕp8{÷î]EA*ĐÚÚZ\\l±XL&Ó˝{÷ČFřo@ďô jjj&''·lŮpíÚµ)Ń"żŮŃ8ăăăóęŐ«?~&¨íU ť  ´Ta‘Žm4?~üçKůŰqů|QYYąÖý˙aXOOŹËťwý ÍZA÷ Ş@;Ah'¨íUřšĎŮŮrˇCöIEND®B`‚qwt5-5.2.3/doc/html/functions_func.html0000644000175000017500000002525012052741152017404 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- a -

qwt5-5.2.3/doc/html/class_qwt_plain_text_engine__inherit__graph.md50000644000175000017500000000004012052741141025043 0ustar gudjongudjon5d5d3135d5acfe4fbebc1344f0d9efafqwt5-5.2.3/doc/html/functions_func_0x69.html0000644000175000017500000002730712052741152020177 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- i -

qwt5-5.2.3/doc/html/class_qwt_plot_marker__inherit__graph.map0000644000175000017500000000051212052741157023771 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial_simple_needle__inherit__graph.map0000644000175000017500000000027212052741154025250 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_c_pointer_data__inherit__graph.png0000644000175000017500000000612012052741153024431 0ustar gudjongudjon‰PNG  IHDR€pYÎď…bKGD˙˙˙ ˝§“ IDATxśíťkPU€Ď†lŔ€I(•ËXC'ÖŢč`LmjŁôv&BŃ:Ó6©Š©´#´ÔÚ?*R§Ĺ2j©m‡±“t¬\Ô‚Ú đÁ ´p P J%´¦ $ą$Ůý~ěç~1Đ@hĂiÚóüÚÝłç=oΓݳg »I’ětČ A ĂôFĐO>ů¤˛˛Ň‘!·oßľ»óĆU†a+V¬xě±ÇîzdXôôô\ĽxŃ+Wڤz#2, ˝ÔWh € $2HdČŔĐŐŐ%—ËĂĂĂY,ÖüůówďŢ=88čľJ{{{@@µ€ýżżll¬ű™]ń^š€¶¶¶gžy†ĂáÔÔÔ h4šß˙],Oé€Ćßßźş’ëëë{óÍ7ŰÚÚĽšłWđƵ-Ć<ŕ…^HKKsŢB„D"ÉČČxńĹłłłI’ěíí>|$Éţţ~ç´ëęęhiii[·nĄ–/_ľ,‰ř|ľZ­6 tEÁŕR:ťOä˝yfł™Á`\»vÍe»FŁY°`Ágź}–@’dAA‡Ă‰ŹŹ§–ŁŁŁŰÚÚ¨~§hÎź?żdÉjůĺ—_ÎĘĘÉËË uŮbé”xO€WîM‰Á` I’Ďç»l7oŢ\ż~}VV–ÝnŻ««{çťwŽ=ęp8jkkăăăÝÄ ŁŹ’FFF2™LÇÍfłËžîKg8yä Ăôz˝@ pŢŢŰŰĹăńëęęňóóóó󛚚jkkżúę+71oŢĽA-_ştiË–-†Mz?Ę}élăŤĂ Lc JĄ»ví˘WŹ9ŇŐŐµnÝşwß}—$É·ŢzkďŢ˝ˇˇˇAĽńĆűöíărąăăănNAiii …‚$IÁŔ`0H’lmmuŮŇŇ)ąßNA€ÜÜÜU«V‘$™šši±X-ZÄăńľýö[@||Ľ\.Ź‹‹Ă0lőęŐ;věX»v-Žă†9›ÍćĘh4ť:uę×_˙t“É4™LŮŮهĂl6Ó'-ĺrąpz@˝zíÚµ­[·†……±X,@‘‘›™™I’¤ĹbÁqüČ‘#$IöôôňňňH’´Z­‹/~řá‡ůĺú#ŕ8SUUEGţ裏8ÎăŹ?^VV¶dÉ’¸¸8ş˘ŃhśX:eŞ÷ŰUĐíijjşëůÜ9Ęí耀ˇP;‹YĺŢđ‚@ € $2HdĽ5®ŞŞšţťý{jŽíĽ1ąX±b…·Ňý7,V‹1;m‰Ĺboô•W~7;8Ä“OfZZö3ětfŹ.tšLĂ&ÓP}}'ě\fŽ (.nd28Î(.n€ťËĚńUŁŁ¶Š ťÝî°ŮŠ Ýč¨mę:÷$ľ* şşŤîôŃQ[uµţŕ»4šF űßŔ‹aFÓ7źă“,–ŃĘĘ+A­:Deĺ‹enV3Ă'üôS+Aüëę™ Čóç[aĺs'ř¤€’’F—Ů I’%%>yň=µľľ çŤAÖ×w VXYÍßP^Ţ<éĽðňrÝěçs‡řž€˘˘F—€‚ _ś‘ů€ŢŢ––žŰ:]O_źŹÝ‚…öì™čżpaĹ2B­Rs±€śZĺrŮl6 Zr3‡ď†¶oWNžTŔNdćřŘ)čţ € $2HdČ A @ € $2HdČ A @ € $2HdČ A @ € $2HdČ A ŔĆůáA+W®„ťŽg0™s™Ěą°łđ ‰DrŰ6aöĘ+Ż,]şb~÷7W®\)..vîs×Ň[ştéęŐ«g5©4@ € $2Hdfň¨‚ţţ~•JŐĐĐ`µZCBB$‰Bˇ rSEŻ×§¤¤hµZjµ˝˝]ĄRµ¶¶’$)¶mŰ«×ëŠ˙˙Ď;‡Ă …iii!!!Ó‰éQ©Ëžt»L&S (•Ęi~–;Äă# »»{űöíl6űóĎ??wîÜţýű{zzvîÜ9444Íťťť{÷î‹ĹgÎś)**Zż~ýűďżőęUŽă˙ů‡S§N±X¬ěěěŰĹáóůw«čv5MBBÂ|ĐÝÝ}W"O‰Çľřâ‹5kÖ¤§§óůü€€€… :tÇăť>}zĎž=Ô»VŚFŁT*ÍĎĎL&©TŞP(l6›T*5›ÍÇŽŰĽyłL&ăńxAAA6lHJJjlt}ŢUHHČĆŤŰŰ۩աˇˇĘd˛W_}5//Ďn·ëőúµk×ôzýkŻ˝V^^.“É’’’ŞŞŞĚfłs‹ŁŁŁ999‰‰‰ÉÉÉ'Nśp8T•ŇŇŇ„„˝^O7Ęápd2Y||<ő2'Ŕü‘ššşnÝşM›6iµZ—Č.Ą^đ÷ß777''';oÄ0,99ąľľ~ůňĺMMM€––6›­Óé:ťN ¨Őję[†ă¸N§[łfŤsĄRąyóf—¶ŚFcIIÉO“ɤ&200@ŹümmmŔ0lâ×nĘŇéŕ™ę[YZZşsçNjKqqńĘ•+KKKź{î9€H$Ş««3™L|>_(ÖÖÖŢşu+**ŞŻŻŹŽ°lŮ˛ŠŠŠ×_ť[PP022}»v©#ćĆŤ”řţţ~—chbżÓ3Śďż˙>000::j6›ÇĆĆÜTąpáÂâĹ‹fłůÓO?=~üř˘E‹®_ż~éŇ%çÝÜ—NŹáôôt­V›››ŰÓÓ3>>><<,—Ë;::¨“¸H$:{öě˛eË0  …eeeO?ý4“ÉÄ0Ś »ÝرcGaaˇZ­îîîľqăFaaauuő¦M›Ü4Šă¸D"ÉÍÍüóĎ?U*•Ë(2şEÇźţůcÇŽ™ÍćÁÁÁŹ?ţŘeüpĆb±ś={öÇܲe €şméççgµZ ‚¦#OZęiz, 22ňĉV«5==ýĄ—^Ňjµ‰‰‰aaaŤcłŮ¨ďňSO=522B sçÎ}ôŃGe2őJÁěěěË—/§¦¦¦¤¤üüóχŠŠŠrßîž={zč!ą\ľk×.‘Hä^K‹‡C.—+Šŕŕŕ””—ť©±G*•nܸń‡~8pŕŔĽyó<OˇP¤§§żýöŰ«V­š7o^ff&ŮĎĎob©§ýéú÷€ĚĚĚÜŽ×ëő ,đ´âFMMMVV–sźßť[, őţĚ@÷‚ @ € $2Hd\ç 88bB÷7]]]·ý]ĐáÇ˝řŇDĄRéĽęŰďľ@cdČ A ó_p^4:;ÍIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_polygon_machine__inherit__graph.png0000644000175000017500000001053512052741156026176 0ustar gudjongudjon‰PNG  IHDR»pÉÝ–JbKGD˙˙˙ ˝§“IDATxśíÝ{P×đł$DÁ (N řѱT, ‘ú`Ś Žbâ»8<‚RëÔVµ˘ŐJQ‥u@¬¨Ľ/D¨‹ňP$*" Ź‚„<öţ±Ţt 9šÜö|ţJΞśóËŮov×$ Çq€ Cf ë˙3(1”J ‡:ě#Ţ˝{wßľ}Ă>,ËÂÂ"%%ĹÔÔtx‡Ĺ†ýßJ«WŻľ{÷®‡‡Çđ‹ŔĘĚĚĽxńâęŐ«‡wŘá?Ć<<<.]ş4##C‡aŘH ‹®c8(1”J %ŁËÄ‹eccchhhoożcÇ‘H¤ý!|>ßŘظ‘XZZ555‘űh 1ÝňĺËÉŤ8ŽŰŮŮÁŽ6`ďV•Nč,1µµµ~řˇ™™YqqqgggvvöożýćááńÖШá˙S]]mllĽuëV€““Sooď°LĄRoßľÝÚÚŞnáńxCŻV»Şy$č,1ˇˇˇ\.×ÉÉiôčŃ®®®WŻ^µ˛˛:xđ ŻŻď7ß|hjjÂ0ě믿´´´`6}út™L†aX{{;y´‰'FEEÝ»wĽůzíęęÚ´i“ĄĄĄŤŤÍŢ˝{ÉÁq|Ó¦M‹/&v•T* ł¶¶¶µµÝµk—Bˇŕóůööö‰‰‰¦¦¦|>źBˇ,[¶ěÜąsęŇÓÓ‚‚ÔwkjjÜÝÝGŤeggwöěYí$''[XXX[[˙řăŹŕÍc§˝˝}JJ ńŚŚ ˘˙ň†i?@ÓMb$Iqq1‡Ă!7bť——pëÖ-@II‰™™ŹÇđxĽYłfŐÖÖ‡KKKňc›››Oś81{ölŤ‰˘˘˘„BammmqqqZZZnn.ŃŽăxXXŘłgĎ®\ąBě*‡ÓÓÓSSSsűöíŰ·osą\bŘĘĘĘşş:'''›ÍNKK#FxőęUnnîşuëÔs}ůĺ—K—.íěěÜ»wď®]»´Đ××÷čŃŁúúú¨¨¨O?ýTŁćÖÖÖęęj@C4XžnŕĂ-88888X{ź§Oźb&—Ë5Ú+**LMM=zdjj*—ËĂĂĂżřâ 333…B±}űöÝ»w«S[[K~¦¦¦Ë—/ţü9±‰čÓ××GĄR˙ýwbđŇŇŇňňrbkdd$ŤFkmm%6őőőŃh4‘HDÜ˝yóćś9s)>ÄŁ”JĄ­­mEEŽă~~~ęąpüř±T*•Ëĺ©©©Ú ´µµá8^SSŁ~:ä祱uŔňŢş#/^|k7Xş9ĆXYYaÖĐĐ ŃţâĹ ›3fĐéôňňň’’’µk×ZZZVTTđxĽ€€rgňuŚD"ÉËË›4iąCssłJĄzď˝÷»óçĎwuuČd2@đţűďÇÇÇ«{Ęĺr:ťN\G/Z´čŮłgCCC+++ő€ˇˇˇ©©©€ôôt‹Ež®¬¬ĚÓÓsîÜą—/_Ö^€ˇˇ!qŚ40`ýűo¬<ťĐMbĚĚĚĽ˝˝Ő-ńńńőőő‰‰‰€%K–äää´´´Lź>}áÂ…YYY/^Ľ7oÔ,ÖÖÖ€ĆĆFâîµk×}IŁŃ˛łł“’’ř|>Ń“Bˇ¨_ÄÝÝÝżţú+čŁ6›}ţüůĆĆĆ;wî0™Lu{{{űćÍ›Oź>]^^~đŕAíh˙ħ˙ÖÁĘÓ ť]ůrąÜôôôččč'OžôööJ$GGÇ|ţů瀀€€¤¤¤yóća¶páÂS§N}ôŃG4 Ă0ĄR)—ˇ2…‘‘“ÉŚ‰‰iooŻ««‹P*•##Ł9sćlܸ1<<śč´cÇŽöööÖÖÖµk×&$$ 8ćôéÓííí7lŘhbb˘n'ö%•J …ÇŽS*•b±x°` ˝ĽżÎăěě|ďŢ=ˇPčíí=věŘôôôČČH;;»“'O|}}e2™§§'ŔÇǧ»»›8%ŮÚÚN™2ĹÂÂB(e–Ó§OS©ÔiÓ¦y{{oܸqŐŞUä­qqqŹ=:ţ< 99YˇP8999;;Ź?>..n°1ŮlöŤ74NIVVV±±±ŢŢŢnnnL&sęÔ©Ä?Ł´0tC/o¤ŤČ÷cďöm‡ŢŢ^>źďââ2Ľ%ý;a6ߏѯO ŚŤŤQ\ôś~%Ń(1”J %Ŕ‘ż>ß}÷ÝHŚŚčް¶yüřq]?§żŠB156žŞë*ţ*SSÓÇŹűţţ÷|˙öěÉIM-ÉÍŤtwwĐu-z]ÇhR(Tąąĺ€ÜÜűş®EˇÄhâńřÉ+@vöąü]>jţgC‰Ń”“ó€BˇzzdĹĹ|]—ŁwPbŢĐÓÓwíZ•BˇP(Xv6:1iB‰yĂőë5ę3‘Bˇ*(x(•Ęt[’ľA‰yCVV9ů;“ …˛°°Fwĺč#”?‰D=·nń•JňŰ XvvąÎ ŇK(1úĎŞ5ZT*Ź÷¤łSŞ“zôJĚź23ËUŞŢĎĽzµęď/FoˇÄĽÖŇ".+ôÇń¬,ťý©‡B‰y-?ż’B`5T*ĽĽüYsóđüEţ?JĚkŮŮ÷‰·aúĂqźŹNLŻŤČ·ţÍśiŰÖ&!n+ŞŢ^ů1Fę­“'[ ň¸ôŮőňň*ĂÂŇššľŐu!úť•8(1”J %ŔA‰Aŕ Ä pPb8(1”J %ŔA‰Aŕ Ä pPb8(1”J %ŔA‰Aŕ Ä pPb8(1”J %ŔA‰Aŕ Ä pPbHä[Z°`®ËŃ &FF ]Wˇ/ýE. Ă‚ťťťuX˘W233gĚqéŇ%u‹ć˙śčěěĽpáÂżµ(DŹńx<ŤtŔA‰Aŕ Ä pPb8(1śwILssóáÇ™L¦źźßš5kNť:ŐÝÝ­ý! ‹/&nřĆĆĆvttűhŠ–é†q¨böěŮCnÄq<$$vŇëŃâŐ óěŮłO>ůÄÄÄ$!!!??˙ŔĎź?khÔh4Ú­˙9s挡ˇá±cÇ ٰ°¶žwžN'(JUU•Hôç/©TUU }é´ˇÔť'Nřůůq8all>>l6[.—űřřĹbňh«V­âóůŕÍ—HOOĎŃŁG™Lć™3gČÁqüčŃŁ»víęëëôööĆÇÇŻ\ą2(((99Y©T644¬Ył&''çăŹ?nhhl:@www\\\``ŕęŐ«SRR …şgYYYhh¨ú.›Í.))ééé9räČŠ+Ö¬YSTT¤®¶˙8D WŻ^%žÂŤ7^/·‡‡GQQ‘zäÂÂBoooőÝ?ţřcűöíţţţ!!!ęÝ?Řjäĺĺ­X±bĺʕׯ_oČś˝˙Z a‡k‚KLOOOeeePPąð   ;w»WTTŞ««MLLŞŞŞUUUiiiÄk}ěرäÇvttdeeMť:Uc˘ÄÄD‰D’–––đÓO?•””í8ŽÇÇÇ·´´|őŐW†††DO™L–ššzňäÉŞŞŞÜÜ\bاOźž;wŽÁ`h™.>>^*•¦ĄĄĹÇÇ˙ňË/YYYęž®®®"‘¨ľľ :::ćÎť›ŘŐŐ•––vüřqrçljD ##Éd&%%©;/Y˛¤  €¸-“ÉJKKýüüÔ[řáŹüü|‹Ą~Ô€«ˇP(ęëë/\¸°jŐ*ňř„gp­`Á%†8śŽ?^Ł}„ ťťťnnn>T*•ŐŐŐL&óáÇ*•ŞŞŞĘÝݝܙ8ŘX,Ö«WŻ>űě3r…BQTTN§Ó ĆŢ˝{­­­‰M\.·  `ßľ}FFFDϨ¨¨±cÇNś8q۶mÄ«MˇPl۶mܸqZ¦“ËĺĹĹĹt:}ҤI6l żô©Tއ‡±onŢĽéĺĺ…aXQQQDD„ąąą­­íúőëŐOgŔqd2›Í611ńôô”H$ę‘]]]%ÉÓ§O?˙üłŁŁŁ………zë–-[BBB( •J•JĄZVÇń 6ăwuuiě‘ţł¶V°ŕ~_‰N§Z[['L@nooo7nś˝˝ý1cžzôhRR’ŁŁc}}}YY™–ŐĐţűop­ŢşJýA_ůr8śÂÂB.—űüůóľľ>©TĘb±ęęęÖ­[pss»rĺĘĚ™31 sqqą|ůňěŮł©T*†a*•Š|i©ŤFóňňJJJ‹ĹŤŤŤ'NśP©T Ăh4šŁŁc@@@BBŃÓŰŰűÔ©Sb±X$xőęqciiikkŘ˙Ś;  …˛~ýúččč%K–xyy‘·nٲĄľľžř'ŔÎť;•J%‹ĹbłŮććć[¶lús‰‰‰5j‹ĹŠŽŽvss ŃčŕĺĺŐŮŮéëëKÜŤŽŽ5jThhčîÝ»¨TęÇéĎßß˙ÁţţţäF:ťÎfł9NXX——פI“bccßşC÷WÖJMóű1±±±ďđm‡ľľľ†††)S¦ĽCú¬¬¬ŚË妧§w‹ŠŠćĚ™Cś&JKKż˙ţűÔÔT]Ö7ňöďßoeeEţ~Ěđ|J`hhřĎ‹K[[ŰĄK—ȧŇŇŇ”””žžž—/_^¸p¸tű·Aź+ jóćÍ …‚üć‡Ă‹ĹÁÁÁ›6m˛¶¶&.ÝţmĐŻ*//OŁeܸq‡ŇI1úc8(1”J Góýâý__ßA˙^éČ‘#÷ďß˙Ű«Bô—CDDąĺŤc ‚ĽşŽAŕ Ä pPb8(1ś˙_‚tp…±űŔIEND®B`‚qwt5-5.2.3/doc/html/dir_24fcbade20721d6ed73b69cf81173a70.html0000644000175000017500000000635412052741165021660 0ustar gudjongudjon Qwt User's Guide: /tmp/qwt-5.2.3-tmp/textengines/mathml/ Directory Reference
mathml Directory Reference
Directory dependency graph for /tmp/qwt-5.2.3-tmp/textengines/mathml/:
/tmp/qwt-5.2.3-tmp/textengines/mathml/

Files

file  qwt_mathml_text_engine.cpp
file  qwt_mathml_text_engine.h [code]
qwt5-5.2.3/doc/html/inherit_graph_24.md50000644000175000017500000000004012052741151017217 0ustar gudjongudjon62c8333c08ce08ffb7d51b3550b79a99qwt5-5.2.3/doc/html/functions.html0000644000175000017500000002576712052741151016405 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- a -

qwt5-5.2.3/doc/html/class_qwt_compass_rose__inherit__graph.png0000644000175000017500000001054712052741153024163 0ustar gudjongudjon‰PNG  IHDR°p1=m˝bKGD˙˙˙ ˝§“IDATxśíťkPWÇĎćNĘ5ČU‹¶€·-Dѡ €(Z‡ŞŞTT°­#UKŢŔzk+X[‰âcĄ–‹C«ĆAą˘€\$‘@ Ů}?ě4“M˘M}9żOgź=çÉ˙ěţsröl’E0 Čßô-ňf ! ! !@ŃV˘ÔÔÔ7nh+dDřřř$%%i%˘­« A¦Nťjii©•láÓŮŮY]]­­ó¨µ°rĺJ///-&„ ‡’’’Ý»wk+śC@@C@@C@@C@@C@hó*c8´··geeÝ˝{···×ÜÜÜĂĂcíÚµ†††ŻhŇÜÜYTT„oÖÖÖfeeUUUaćŕŕîęęŞíݎąąyíÚµŠMgg縸¸wß}WŹŞFŠNG¦¦¦ččh&“yřđá+W®ěŮł§ĄĄ%&&¦ŻŻo¶oßîîîţÓO?]¸pańâĹ;w«űWe*•úßżárąööö©©©ú52t:B9rÄ××wóćÍřćűďżżoßľ¸¸¸łgĎ>zôÍf‡„„<ţ<888**jŐŞU]]]AAAxĺ ;vlÍš5Ë—/Çmmm<ĎŃŃ±ŻŻďčŃŁ·oߦÓéľľľëÖ­kkkKLL\±bĹąsçČdrLLLsss~~>•Jݸqă˘E‹š››‚‚~ţůgAüüü"##Édň“'ORSSMMMׯ_żhŃ"@IIÉ?üđěŮ3[[ŰŘŘŘYłf©DĚÍÍ•;kddäçç÷믿â›ęň(ŠzN©Túí·ß–––’Édź 6Édť€.G/^TTT+ .++›3gNyy9€Ďç3™ĚĘĘJ@eeĄCvv6ţÎŁR©•••ľľľĘ˘˘˘Ö¬Y8xđ D"ÉÎÎ>xđŕźţyńâE€P(‰D\.7((č›oľ‘ÉdąąąAAA§NťÂ› ‚ňňň3gΤ§§ßşu oőý÷ß»»»_ąr%,,ěřńă¸ř”””¸¸¸ÂÂÂŔŔŔ´´4őJűúú®_ż>{öl|S]žĆ YYYGŹ­¬¬Ľté’öĎÄ+Ńť!ş»»ękŰ666"‘ÍfWUUÉĺr>źżbĹŠŞŞ*E+++çĚ™Ł¨ŮÓÓ`±XęÉe2YIIÉgź}fjj:a„đđpü­‰˘hDD„‡‡@Q‹ĹxCEńV“&MZ·n>S‰ŚŚ !“É E"‘är9‚ BˇEŃĄK—fee©Gp ţféŇĄżüňKTTÔËä©g***ŠŤŤ511±µµŤŠŠŇýí!Ý}dšš:;;mll”ăBˇĹbŮŰŰÖŐŐńůü]»výöŰoőőőńńńŠš&&&@ ěŞÇŹ?xđŔÍÍ `mmŤmll€BˇP©T‚ ĘeEsAzěěěđV555)))‚(^ČČČhßľ}999GŽqrrÚ°a“““J„ÉdR©TĹäw``ŕÔ©SçСC]]]ęňÔs˛X¬ˇˇˇ€€•¦Kt7B0™L—üü|E$77·˝˝=??ţüů6›]ZZÚŐŐeggçââróćMˇP8mÚ4ĺ Ó§OżzőŞrÚśśś;wîŕĂFGGloo×8¨a˘Ukk+‹Ĺęéé9pŕŔÖ­[Ož<ď|çťw8NAAÁěŮł÷ěŮŁQÉL§ÓýýýkkkÁߣšŠ<ő fff$©°°ź–^»víĉĂ<ĽÚB§W[¶l)**ĘĚĚlii”H$aaaőőőř$€Íf_ľ|yúô邸¸¸ŕ‡‰Bˇ ‚˘čĐĐ`Ó¦M\.7;;»©©©ŁŁË凄„P©TŹĚĚĚîîî§Oźfee©L5^ŢŞ©©éĚ™3ľľľřmC2™ÜŰŰ›““˘¨D"AQ4!!?»4ŤFŁ©GÔ3Óéôą\®Qžz*•ęééyěرžžžîîî˝{÷âs]˘Ó«Ś‰'ž8q"++kË–-˝˝˝|>?///<<ü>Éd3gÎĚš5«żżź@Ś7nüřńË—/ĎÉÉqrrâp8gĎžĺrą$iҤIűöíĂG‘­[·=z4,,ŚFŁůúú†„„´µµ˝V•JuuuŤŽŽÄ[Q(”µk×nٲĹÔÔtÓ¦MuuuÉÉÉiii±±±ÉÉÉÝÝÝ;vě`0*őä, Aß˙}Á‚ęň(Šz†„„„ŚŚŚ°°0€‡‡Gdd¤vOÁkŃć÷!’““Gqű{pp°ąąyĘ”)Z‘1"T–ĽŢRđŰßÚ:Źú_ş¦ŃhzqD#ú7äŤbLÂÎÎîm˙ĽĐ:cÚu !  !  ! ´ą0uď޽᳢-´üuLK°ŮlmĘŇ-4š Ťfóúzo*sćĚŃÖyÔÚJĺŰ‹\Žţç?É>‰„Ľ¶ţ˙7pţřَ«KŇŐŐWVÖ o-úäćň(•JĘÍ˝«o-úg¬B*•]˝Z94$—ÉĐ«W+ĄR™ľé™±nââ… ¤RYqqŤ~őčť±nĽ<žâu‚äĺńô«GďŚiCĹŇ7Şĺrß”ËŃ7ŞĹb©~Ué—1m_~©BQÂU7ŠbׯWéKĎ›Ŕ6ÄĹ‹<•U Ă.^Óźc×AoYY=Š˘ĘAĹĘĘę‚^}©Ň;c×……×%),¬Ô˝ž7„±k x*EÇň Ő5Dk«Ďoy‰!@eeK[[·îU˝ čú˙!ŢŢy‡ţţűVbq?ľ‰ŻM1T|ÓÄ„ÉdjřáÍXŢí€ččlŔÉ“k_[ó˙ž1ú‘yĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐĐ"ĘĎřđĂő-G?P(ă(”qúVˇ<==_úAâăăÝÝÝő¨˘KţřăŹC‡){@őOÇćÎť»rĺJÝŞ‚č őshhhhѢ±±1,,ĚÚÚšFŁŮŰŰÇÇÇwwżćźˇkkk ^njj ?~ĽÁ”)Sľřâ‹ţţ~•:Ł`8ÍďÜąăďďobbbdd4oŢĽ˘˘˘Qżśv©­­E”022ňńńŃň#{‡Ç QSSăććfll\RR"‰ňňň>|čîîţZOŕ`ćççgeeĹăńD"Qnnî­[·bccNNNRéżřxŁŠŠ ??ż€€€†††–––đđđŔŔ@ďMy\ ťNW¬577Oť:5""B:”W©\.÷ŐŹ^¸pall¬rEQŹ„„ooo‡aXkk+`˙ţý†µ··+ż\EE‚ ýýýŠć|>˙ăŹ?Ć0¬¦¦?(555'NLKKc±XçΝ۹s§‰‰‰……Evv¶˘Bzzş………••ŐöíŰe2™˘9†a}}}ŃŃŃ–––¶¶¶Ű¶m“Éd†yyy8p@YyRRRJJ †a"‘č“O>177ź0aÂŽ;G§ðű÷ďłŮlagg‡×Ä0ěÂ… ŽŽŽ cÚ´iĹĹĹęeń8<ĎĚĚ /«ËÓScŻ_ —ËUőaău†čéé!‘HŹ=R‰çĺĺM™2%--Íßßðśśccă%K–ŕĺ™3g*:<444}út˙K—.=ţ\9‰˛!(Jbbbooď×_Ť ˘lccW “ÉĎž=«ŞŞzď˝÷8Žň1]ż~}hh¨@ hhh`łŮ‡‹Ĺ$©µµUcżBBB–-[öěŮł‡Î1#55ut0 ű裏vďŢÝßßúôiKKKü Q©Ô7nHĄŇăÇŹOžyň/744ŘŘŘ(vYYY‘ÉdĹ{ĄŻŻďîÝ»ĆĆĆóçĎ˙î»ď”“p8śk×®Y[[Ů?~¬śmD„BáúőëOž<ÉăńöîÝ‹ď’JĄ&&&ׯ_ďěěôöö Qʍdf2™wďŢh”§žAc݇y0•ńUFffćŹ?ţWWW'•JĹb±ŁŁă_ýőůçź–,Yrüřńyóć!âĺĺuěŘ1ooo*•Š×2™,,,ěćÍ›iiiOź>•JĄuuu)))K—.…ô¸¸8@P]]˝k×.ĺ1†N§ÇÇÇ …ÂÎÎÎŐ«W>|žžÎápvďŢ]SSóäÉ“´´´óçĎo۶ŤN§ĆĹĹuvvÖ××'''«ŹXĂÔ€ź …ŇŐŐĹápäryOOŹ\._¸páť;w Á`¨GÔ33™Ěţţţˇˇ!ŤňÔ3Ľ¬×#Fůó ă*ðGŹ…††ZYYŃh4‡„„WW×ääd ĂÄb1•JMOOÇ0¬ĄĄpúôi Ăz{{ťśśŚŚŚž?~íÚ5OOOCCCGGǤ¤¤Ś8‡PŚźËx!##ĂÎÎÎŇŇ2>>ż.PÔ‰Dˇˇˇćććććć‘‘‘/^ĽŔ㥥Ąľľľ†††&&&óçĎ/**ÂăBˇpŐŞU,ËÖÖ611Q%Űđ5`öŐW_Ož<ą  ŔŮŮŮÇÇð3gÎŘŮŮ1 77·Ű·o«GÔŻ2Äb1™LÎÉÉŃ(OcΗőúüÓIĺËčďď///EĂѡ~řtĎ› áźóO'•/Á`¸¸¸h%DżŔ{oĄ!ţíEî·EĂżÁ[iČż4„4„4„€ęď2fĚaeeĄGA]‚ߪĹ^ö»Śýű÷ß»wOçŞ zĂĚĚLeť> BÎ!  !  !  ! ţio†óĎśd´IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_37.md50000644000175000017500000000004012052741151017223 0ustar gudjongudjonbce76b8f6be8c31c44dacfe39efe027cqwt5-5.2.3/doc/html/class_qwt_slider__inherit__graph.map0000644000175000017500000000076212052741160022735 0ustar gudjongudjon qwt5-5.2.3/doc/html/sinus.png0000644000175000017500000007213412052741136015347 0ustar gudjongudjon‰PNG  IHDRUvČ´úŕ IDATxśě˝{\”Őöřż× saˇŔÄÂ{J 3\Ä%Ô$ÓĚěä©>úłňxí\ęsňh=};§>ó”ŐéTf–]LSQ‰¸‰ÜCQ35)Ľ‚Â0.3ë÷Ç6â"—ažyö<ďWäřř͵ÎFřţpkţůú«\‹Ŕ ś}˙]ż~ýÁĚÎÎČM–-}ÂAâ¸/&Lň ¸!řżĘĘĘM›6?~ĽąąŮůO śÄ?CBBţőŻ}ôŃGδ€€€€€…Żű_:Q\ěsé’dĘKh¨¸§Ď "ATääHËËŰ´ÉĺMăƵŚ^^Ę&Ŕ6ž„]»üĆŤk3¦E"±óŇ‚ěöNćCi 3M›FřŘ"'ŕ˘ţo„ 7ű«›-T””ČŢz+’`ŚŚ´Lťj’HK<Ç‚v»2;;pŰ6›RŮ4~|űď’‹ýżřBňóĎÖ;ď´L™Ň”Ô4i‡r °"¶¶BV–2;[ˇ×ËčŹßďýĹţ?˙,ąóNkd¤%1±aâÄF×wtâŘ­ůB‚Ţz+ŕ㏯/YbŠŤ‘°×O 3.ę˙nćänćŁ˘Ł˘ńâE‰^/˙ä˙—^ Y¸°.%Ĺŕâ_„>%%·żňŠM©Ľşnť92˛Ó\EV«×Ůł>§N [·®fĹ Ăý÷ŁHäĘ-pe**˙ó?Ă—, S©Ú>ü°üß˙®HJ2ŢÚń2// o~䑺O?˝päâ/Z[Űg.\xňÉ''Ožőűß˙ľľľţ–‹ĺĺĺ“'OîĺS<*+C׬ ţŰß®®Yóó;:}áD¦éÓ/|ú©aöěaëÖ|đ±ŮŰá ˝Ń‡ôôô÷Ţ{Żëďř /\¸pˇçîfĘ˙µCáš5WÓÓĎÎťkxňÉ;Ďś‘r-ÔŻ "47}î9evvůŽć^g mČźßy§%4tÄĂű|÷ť`Ć˝Äf#o˝´ysđŇĄ×ŇÓĎţö·×:ą˝®ÚŢyççŕ`ëşuˇgÎôaúv»}ĹŠcĆŚÉÎÎŢ·o_SSÓĆŤo±€°°°cÇŽÝňţÄjňöŰ#z¨1<üüW_Y˘Ł»N˙ëÎ"‘qĆŚ ź~Ş8rdŘşuÂô‘/ô¬ŘŘŘřÖ[o=ňČ#Ý^°dÉ’Í›7÷ü6ý_; ™=ŰđÚk—–-^Râõ8„‚’ŞŞ»{Ě:thĹ›oZ{Ě"×>ó͛̕C˙{ß´4ÁŚnIm­xٲ;Ź“ýűß?«Ő‰„ô oéééIIIŤŤŤřÁď}÷ÝýË–U-[vgďm*++Ż\ą˛jŐ*ą\ôÔSOvŇU:µ÷Ýw5MTTÔ† ZZZn9ßGDꞞQ<ŕyőꏟ}víńÇIďůۧŹÍŁFÝąl™÷É“‚í8ŠĽĽĽ¤¤$»ÝŽššzđŕÁ~ĽŢŻżţ:99yâĉłgĎÎĎĎoŹ´˙ĎöíŰŁ˘˘¦Nťşwď^z˙˝{÷FEEIĄŇŽzűŢ{ď=ůä“8bÄ«ŐZVVÖĂC9ó˝™ë92ĹňÚk—Ö¬vęÇ_čóÝwaŹ>Z»lYíŠ(•öc%ϢV—ďŘ1äĂß{„3”7§´Ôűá‡GÄĹ™Ţyçç€Ű-Żżďľű&L°uëÖŠŠŠíŰ·żôŇK±±M}µťaÆ•••yyy=zô®»îę´ŞM±Z­gÎś9tčĐgź}VZZúÎ;ďô|[Dô¬Ş ]˝úĘĆŤUë×·…„ôÉvÚ§ŹŐúÓđŐ«}\ CŠŠ2ŤgĎž%„üřăŹUUUZ­¶Ow@Äúúúőë×oذAŻ×/^ĽxăĆŤť®imm˝zőjvvöcŹ=öę«7˛Ő|ř3ĎOOOťN—™™I9tčPBB‚··w_§őT=Ş««­Vë‚ věŘŃő‚ĄK—z{{ët:‹ĹBˇßvăĆŤŁtÔŰŕŕ`úăÝwßÝóW–[ř?ŇÁ®Xzü8.:żak×^zýő¦đpÜP*˝ĽyłYŁ {ôQŻłg~C–hj‚Ő«CW­şÚ×c łgĎľzőę¬Yłč¨ÔÉv&tˇëMěvűG}4wî\›Íöĺ—_Ž?ľë÷źH$ ¦ßwŢygmmmR@Č‹/6Ţ{oĂý÷÷ľ-7NĹ&Ó]Ź=ćQ]=đ˛Çř şýŻŰ‹gĚ‘™™‰‡JNNîzAĎ:ţţţo˝őVFFFrrňC=tňäÉNwđôôôőő%„~Ů*QSSc·Űýüüč:ęműż Ľ|ůrÍtŃóA»˙îwˇŻ˝v)2˛ŃiŹnw~?}řˇ5,ĚQ·€ëżůMë°a˙ůĎ•őëQ&sÔťx "ľřâЉ›ćέďëLĽ˘˘b˙ţýcǎݶmŰęŐ«éŹmçý÷Ë{¶D|óÍ7ł˛˛¶oß>jÔ¨®P‘ěv{uuőí·ßNą|ůň!Cz¸§˙öíńęęŐčĂ?túđŃGĂÖ®­üË_ZĆŚř=Yât_ňÁĆĆĆ>÷ÜsfłYŁŃt˝ çě˛h±Xl6Ű–-[ńđáĂ7nÔétŻéąÓńâĹ‹íz»jŐŞŢü+â>ß”v3^»v^ď¤í0tÍoŘÚµ?}đťŚZ­ÍÇGµoź°ž!@AÄŹ> ¸pÁkíÚęľş ›Íö /,[¶lÓ¦Mź}öŮ÷ßßţWí¶óřăa=ĚĺŃjµ~üńÇożýv·ÎŹüňýGůűß˙n4/^Ľ¸eË–ŽÓöNřčőľ‡U˙áv//ž|ĄÓÇkK—Ţö˙‹Łnën€T*Ť‹‹Ű´iSrr˛¸»Pű-cv»}íڵǏ·Ůlµµµ˛^Lĺ‚‚ ľľžţóŽz{ćĚzMmmíwÜŃĂMÜčűŹŇŃľývĹÝwî"Š †ařĂĹýË:bÄ`<Ş×­őŕÖ»î2GE GăÝD,)‘:äűúë˝˝ű<Ú±c">üđĂđôÓOŻ_żţ“O>ńôô¤Kmçý÷Ë{°¨®®6›Í7Axyy•””´k&ýOOĎ1cĆ$''Űl¶”””ĄK—^ąrĄ›šÍwüůĎ—ţß˙kóós¸nÓéŁ<77čí·«×¬l§ß$$$|óÍ7)))ÝţmĎß T*׬YłfÍšúúúŃŁGoÚ´é–O”H$ááágÎś‰ŤŤíVo=<<Îś9sď˝÷öôh~Ő=i/ÔBëßö»ţ&6lúÚkÇŚiq¤]¶j•uřđ«k×ęSdGŹ}ńĹó_~i—É3vOŃ`Ďź?rëÖ‹ăĆőab×§úGí¶ó÷ż_ęßôúé§ ttŠ7»2äĹ !•ëמVŮ<ęÁݬ_oމqOŰ?~ýtMźś_?ž2eŠeÆ+ż˙ý°łgű“Y©Ó‡ŕÍ@Dy~ľ"?żzÝşAŐj”ËŻ¬_?ôĹE‹°ĐWńÚµk;wîś5k–Čą©çÎť[\\Üm=zjĐÓÓ3ĽÇ͆nę˙! Őkj<÷îU ’ŇKĘË>řŕňË/٧ç`«"VŻ[§ČĎ÷))Ô ¸,źîg±ćĚ1 ö Ţ>}|ĺ•ŕ~LŰĹëANDY,C_|ńʆ (—÷[Ô^B§ŹAo˝%LűARR’Ńh\Ľx±3 >>>O=őÔÎť;»˝ŕý÷ßďáÓâľţŹĎ>[őĆ· bÇVëúSÍ3Ď´ü÷áßAě2YĺóĎľóÔOZ—¤Ľ\˛eKĐóĎWyz:f‡dĎĐ飧'îÚĺßWŰiOuÖSŇ2€Ű_}Ő0{¶%:zŔÂŢ:}ôÍČđqJR–€cÇŽíÜąSĄR9˙éIIIO>ůd·R˝ôŇK#GŽä˝˙ëů¤Ń9Ň:sfömAŽ2ń¶­[›îą§!9Ůi3J0ĹÇ‘Huŕ€Ćq+¬Vň§?ݱreÍ]wµ8Sßž}¶ęÝwcú(;zÔçĉÚ'źtŽ&Óé㕍C6n548ቮüß©8üć¸|y͡Cľ?ţč°j(/.Vää\]µĘÉá¨zöŮŔwߍ‚ tqëÖŰ‚[çĎŻs˛ľ ŇôQT_?týúĘőëí}Ď$ŇoŔ¬V›´ÚŰ^]°7ţoP•ʶtií[o9DéÚÚ‚7mŞzî9»R9đöëČ‘¦¸¸Ŕ˙[XÉp±¸Xž“ŁŘ°áŠó{Ľ}úřóĎŽś>ݰˇ~ţüƉť?}Ľşb…÷éÓ~_}%¸@wŔÝý!.¬;^zâ„ĎŔ•üwíj ±t—Á bÍň媯ż–üř#'8 DlkM›‚_xˇŇĎĎî|Ú§Źź~ÚçUŔnAD˙/ľđ¬ŞŞ}ňIn&pÉĺ—_ľí˙ţĎë§źČ<‚˙#„OO˛zőŐŹ?@ěiOZoŐ׾űnŐłĎre<`S©j—. ţÇ?fصË?6Ö>®ŕÎ MŤť”¤8zÔë±h‡#řż_ˇ«€„üü>Ż"bŕŰo×>ńŠĹ®cŔmő©©·żň Ú]b”pąąň†ńÂ…ŻüućĎŻ#„ěŰ×·„‚čSVv{ăäÉ.b;7‰®?ňHŔ'ꏖTŽCđżŇľ řî»Cú4‡Ąěa0X˘Ł]ĘT nţ|Á˙‹/\g  mmäµ×n_µęއ‡3Rťő‘ÖŻŻ|çť ë×=zŻođŃG†Ůł‰Čµ†#D¬OMU¦§{TVr-‹Ŕ ŕZ Ç9t°©ITR҇ÍÜÔ€Ż?ň«0!D˘Ęőë¶nő¸~]p €»wűŤݬV›]ĘůQFŤjąďľ†>Ň{Ů<*+eEEő©©®¦ź`÷ń1¤¦|ň‰«É&ŕ\nĽć‘žy¦f˙~•Í˝Tz—5`J˨QőóćżňŠ —}-ѶmA+V\uÍŢDÄĺËkżýVyú´´—×|ň‰!5ŐuVţ:×-RíŮ#jltMë‚˙ë†iÓĚ••ž¨zcÔ€Ż/^ěšLAÄÚĺË˝Ož”–•q-‹Ŕ€€÷ßLM­ uŃŕĺe_±âꇹĄĂ@DQcŁ"3óú˘E®i;„¶‹Z­ĚĘrY úŤŕ˙ş×­»úĎŢf6ßBă©«öě©_°ŔeÍě^^WW¬˛c‡0‡ĺ5ŐŐź}ć÷ĐC.´íĄ+pß}Ƣ"ŮĹ‹^=Ë ~{ö¦Mk qšx}Ż˙ć7~źN„MdĚ!řżn€±c›bbĚďżŘ6O›f pšxýŚ÷Ý'+*’\ąâĘC§@Đ:=TŰm­.;٢H$$5Ő°{·ß-ä´Űvîl9Ó•uĂá­Mž“ăĘr ôřżA­˙w3`ĹŠ«ź}ćwőŞgOJo·ěÜymńb†DbHMő=|ŘŇNnAÄ~đÎĎ—?ţx­ë÷ "ΛWżgŹĘjíéezzó1M÷Üăâ-€ëŹ>*Ř{đŔ˙ jýż¸ýö¶‡Şßşő¶›)}»7Źëú†őóćůíŢ-T‡ç#đę«·-_^#—»üL‹ m5Ş93łűlJH‡üç?u.ĽpĐ"gĚx^ľĚµ,Ž„ţŹ+ńńÇkóóĺÝÖ6űŐ€çÍs}&„@Kh¨58X‘•ĹŻU˙&7WN™7Żž/}óç×çĺuźJ”ŮŮ6ĄŇ¬V»~‹== ©©B:4ĆüßM™Ěľ|yÍ֭ݔƥL1ÇÄđĹ$ ~ţ|˙Ď>ă…Ăh?ůÄ˙±Ç®‹Ĺ®uŕ˝qútă‘#ňŠ ĎnţÖnܶ­î‘Gndťpy ~Ţ<˙Ď?Š"±„ŕ˙zćÍ«˙ńGiiiçҸԀk—/ç‹Ć™>]zţĽ¤˘‚kYz "^żîqíšgd¤…/šFOOLM5deu""ť;µZµČ:|xó¨QĘĚLÉěV bzzú{ď˝×íĺ…^¸páB§˙w <<ČŇĄµ_|áßQéyjŔíażÝ»…9,_€´4߸8“·7ĎşŚNÓŇ|[[M%AčÜ\/_R býüů~B*AWĄ©©é­·Ţzä‘GşýŰ%K–lŢĽąÓŹ|Ň?N aśśE}˝¸ýž0ů%ŚŁÚłGăđDÜ·Ocćc nU*mGŹţş Řľp`ÔjůŐ" áŻ‹ů%ů ’———””d·ŰSSS<ŘŹ÷ÓĐĐđűß˙>222..îŤ7Ţ 7¬««[˝ző”)Sbcc˙ö·żµ´´Đ§|ýő×ÉÉÉ'Nś={v~~>˝ĂŢ˝{Ł˘˘¤Ré7ß|“””ÔŘŘď˝÷Ţ“O>i·ŰGŚaµZOś8Ńńˇ<ľťHĄvťÎxč/íTjŔvooŢ0…†qyy<úru[ń©Áŕ1yr#ű çĎŻß˝Űď×ď?»=p۶š§źćŃÂÁŻĐCDiiü“|ĐŠŠ2ŤgĎž%„üřăŹUUUZ­¶÷yńĹ1##ă‹/ľČËËűňË/ !/Ľđ!ä›oľŮµk×wß}÷î»ďB Ăúőë7lŘ ×ë/^ĽqăFz‡Nť:'L°uëÖŠŠŠíŰ·żôŇK´żâââŇŇŇ:>Tđ·ćĚiŘ˝űF:´+K—ňŇ€ AÄş‡ößą“ŹÎŰÝ€}ű|SR | 4ܦO7–•yÓ\0táŔ¦Tšâăyj;őóć©öď'=lt3<==u:]ff&!äСC ŢŢŢ}ę\D4›Íß|óÍşuë|}}ożýö]»v-X°Ŕl6çććţńŹT©TC‡}ę©§ű¬~Áž.PŃ4}şôÜ9Żóçą–Ĺ%©T·iÓ¦ääd±XÜőšžż˙@©TNť:őŐW_5ŤçĎźßżdd¤\.ź:uę+ŻĽŇĐĐPYYůć›o¦¤¤BěvűÚµkŹ?nłŮjkke2!$((ęëëŃfł˝đ ˖-Ű´iÓgź}öý÷ßÓáş¶¶öŽ;îčřhÁ˙ő–‘#[T޶Sď˙ÔśĚk&żT„hHJ *B¸0MM•ĄLIáqđ“>X·űS…¬¬Ě¬ŃđÝvŕÚŁŹlßÎ÷~q uuuÔ?uĺTş^ó׿ţµĄĄE§Ó=ńÄO>ůä˝÷ŢKy饗l6[BB‚ î˝÷ŢeË–B Ĺš5kÖ¬Y3eĘ”}űömÚ´ ĽĽĽÂĂĂĎś9Cˇ+‚?üpppđÓO?˝~ýú¶¶6BČ™3gčmŰâź˝Ĺn·ĎMŞ9üŻQ#&OâµS nńâQsć\{â‰6UŻ* 8DĚĚTŞŐ–€€6ľ÷"ÎazeYĚB‰¤›l‚ü <´m›äâEkh(ß{Ç!ČĺňaÆ ¤Dżż˙믿ŢéÇ€€€ţóź]/^´hѢE‹:ý’’’››·dÉ’%K–Đ}ôŃG}”‚GŽY»vmÇ"|˙ő‘HôĎŢý⹍ݧôĺ6?ż†„˙Ź? Ř€ýűU))ü~RŔĂĂţé§H—Ű™¨˘‡RiÝ‚CŢźŢ xíÚµť;wΚ5K$qřBćÎť[\\ÜÔÔÔířüÓO?yzz†‡‡wü‘ţŹ“úG]AÄ{F oĚË“łˇôxíńÇý?˙š›ą–E 3×®‰ËË˝bcyyě˝č]^ţ¤čýŹóď±ŮDl´¨nńbߌ q}=ײpORR’Ńh\Ľx1·bx{{?őÔS;wîěöoß˙ýçž{Nôßűy˙ě,ćĘ"˘ŘbńŃëçţٶ?-0!ÁČ€ khhăÄ‰ŞŻľŞ{řaZÄ –ć;s¦Q*µ3Đ/ŕ»oąܨÓÍůůňiÓĚ\K4P MĄ˘á“šgža Źú t:TÇ””tłż}饗şţČď?WYYŤ‘‘ş”Ösç¤'NtN‡ÍSŕÚăŹٱŮhŔľ}Şřx¦Y„b·«ŇŇ łgĎź_·k—?šFmÇ˙óĎE--l´Č ü_Ż Ąn sć࣏^űφ020ŇѦRůčőĚ´~üŃË`đč~%_ ˘LŻo9˛eäČ„Ó?x_¸ŕĹ@»!­Ă‡7Nś¨ČĘl‡§ţďÖĐŕ§LŻ7ÇÇBxŔpâ„O·UÍř"Ö-\¨:p€Ť!‰‘ć<ŕë!ńŽĐŕgCJ xx¬ŰµËźv‘_VĐ>ý”0±©Ç üß­ˇÁOcb"JĄŕĺe_° îý÷‡°á0h:4ezş¨ą™ŤńDDšóŚ 'MMŇsçĚŃŃ4˙ç‚u¨,&šĐ8iikóŃëŰá#‚˙»54řŮ’Ň^˙ań⺌ _Á Ą·Ëĺ–ČHźăÇŮpy čő2•ŞmäČ®eq¨ČĚ4Çŵ¶EG›żţZņí@ÝÂ…2aů€źţď´?'ýzěÝĎĎ–Đđńô&†Ö IDATÇě„qډ‰ľýŞÚ%ŕXhđsÎ}ľ‡5†‡w¬˙·paÝ®]ĚŘŽiútef¦ČĚűM­nŕ˙n(23iđłýGD|üńkźîßÜĚ‚ €I§B śÍÍ"šóŚ ÷ 2›%••ŤS¦tÔ«¨¨FBHq±wr9 °ÉdÖˇC}JJŰá‚˙»č·gOĂĚ™•BC­'6<čˆŇÓ¨âČ6†]ž4çŮ!6®eq¨ČĘjĽ÷^›LÖQŻqáÂşŘ •™™‚íđÁ˙ő"z]¸ŕőóĎ–¨¨NĘ Ź?~mçÎD`ŔŚo„@÷íc -üżüŇoÎśz6z”ééźíżß}aˇ¬¶–…tDĽ>B |Cđ=»vŐ=ř ńč&QNDD“Db×ë}÷ѨLŻ[, I|/\đjlMťjf@Ł!"łY¦×›tş®%“a|ĽůŰo• ´”†@-‘‘Ь,Ávř…ŕ˙z,ßę,čV­qÁ‚zÖB Âa^Ž€]»ćέďn®Ĺ?hđÓŮ)řŮţ· ^߳ǯ­ŤéĚŤhzş`;üBđ7ýľţÚÝŘ­Z€Vk<|Ř·­Ťť¨2=ť¶đ‹Ž÷ž1ĂČĆű§ÁOcbâÍlgÄ™Ě^\,c ˝4*Óë…(żüßM˙]»ę.ěaN§RŮÇŽmÖë»™áň!Ę!řő×~‘‘–Ŕ@ŢWűŁôü¤Ŕý÷ŇÓ…¨gđŔ˙qU˙ȧ¸ŘîăÓŐĂ5¨ŐšŇÓ©HC ňü|†$~»vůkµ&6Ţ< ~šăă» ~¶_CĂ'-,ôżl‡_đŔ˙ťę€ÓŠţ»vŐ=ôPĎŽ t:cn®‚Ą] ĘŚ ÚÂ/ča8z0Žn?zpŕëk;¶ą°P΀ľÝ–”!PÁ˙ç|ŃŁ¶Öëçźî»ď–łąĐĐVĄŇvę”7ó>•çć áť "îÚĺżpáufŢ9=önމąĺôQ«5ee)ذ›LÖ4v¬pžGţŻŔ˙óĎë|e˛[^ŚÓ§›˛łl(˝ ÔÉ bm­GAüţű lĽsü4NźŢCđłýJ>aŁ|4$'ËJKŮčGw@đÝŃÖć˙ĺ—&­¶7.ŤÎa33YĂ!¨Ó€Ď?÷ź5«A&cä…€jßľ¦‰oi0l•†OĐ7D4Î!+.ö¬¬äZ^!řżÎ ˘ňŰo-Öŕŕ޸4Dś0ˇÉh_ĽČBE@!¨“ik#_~ÉTđÓł˛R\_oŽŚěĺô‘†O>J$Ť÷Ü#ĎÉa¦7ŮFđťˇëfÍęĄAĆÇ›ľűŽ…“LDČęDńŰo•–#ZŘxۨڳǀI/§ŹZ­éěY)¶ő< :pŮhŰţŻ --˛ÂBË˝÷ö^}@§39"gfr:HOWΚĹHµDDŐŢ˝¦řřŢO'Lh:sFzů˛„ }k7ZZdEElô)Űţďż@Dyaaóر6_ßŢ«/"j4ćü|ąÁŔÂűÂ; ›ŤÉ'Lhdă=€¬¨Č¦T¶Ś×ű%‘řxSf& á !h7ĎoĎ6ú”mXŻ(˛˛LZmźL$Ôh,,śd"B.P§€ÇŹ{ŹŮĚLÎZ,Ě0o^ź¬u:SI‰¶†”ů‘#b##©ěFđ˙ŤÝ®ČÍ5Ţ5Uµ{7=Ë0öh±XžţůČČȸ¸¸7ŢxĂn·wR‚śśś{ćóĽçž{ćĚ™ăXú (˛łćĚ釶'sŇë™ÚęSRÂĆäjĐcď••’ Ůxèڽ»nţü~č?"Ţw_ĂáĂŚ”‹Z-6˝**Řh«8ţűďő×_Ż©©9tčĐŽ;ŇŇŇöîÝŰé‚ŠŠŠűďżźćóľ*KC läł'4:s¦Ż tp€‚…Zm‰Ńé?ŤFËäÉý›>ÎaĚĎ—UU1˛ ”D†ąsUűö±1°ŠýźÝnßż˙Ę•+ýýý‡ľdÉ’®ţďŇĄKˇˇˇŽ}îŔADÉĄKbٱeÄţ©,{ÉśŚ:ť"3ÓŁ®Ž‘!É•@ÄÜ\y|Ľ™Ťw ~_}e;DýRĽĽHrrĂž=*6"RSý>űڰQŢ‚Qě˙jjjĚfó1cčÇŤW^^ŢéšŠŠŠěěěččhŤFóż˙űżf×H—ʬ¬†9sH ±dN„ôń1iµňÂB6†$×ív(*’GG3Rđ´´ČŹ5¤¦ö[óńę÷îU13}´7Ź'×ëŮ ÄÁţŻąąŮĂĂĂËË‹ZµL&klě\ŇĄąą9***##ăË/żĽ|ůňË/żÜő>n‚cĄí"*˛łf̲˛”̉‚ ))Ţee‚;8~Ü;$ÄdăZ@Sﻯ—)»ĆŽmV*mEEڬ @ìYŢ'N°10‰ýźL&kkkkiiˇl±XĽ˝˝;]ł}űö5kÖČd˛ˇC‡ţîwżËÎÎîzźS7Á±Ň¶â†é?4ß}÷@”•&sĘĚd¤5yAäâE6Zä" âŃŁŠ¸8v‚źľß|Ó>ŔćÍ3ěŮădžĂ@Dă´iĘożB .‹ýß!C”JĺŮłgéřᇑ#G¶˙-"VUU…‡‡_»vŤţ"‹%‰ceč ĚÉ1iµÄĂc€÷ˇą°/]beßĂĂ«ĚĚdcHr /OËNđÓűűďű”2°[1%Ĺp伡…sY`óőµůúĘľűޑр9¬g0gÎś-[¶ †‹/~řá‡÷ßÇ n»í¶‘#Gţýď7›ÍŐŐŐoľůfJJŠceč(ĎÍí÷ÎĎŽĐdNYYěě5$' ĺKMŤ¸˛R2iRo•¦ l=şO)»”JŰÔ©ć´4o†Đs´Z­";›ŤŃ€=?ĎZµjUPPPbbâ˘E‹fÎś9wî\BHyyůäÉ“@$˝öÚk×®]›:uęüůóGŤő»ßýÎá2ô D»]^TÔż­Ű]ď¦Ó™~řť|öM÷Ü#jlô>y’Ťq"(fÎl‰a‘¦ lś2Ĺ!m€ÔÔúÂBvÂu:ĺ7ß6vő0Ç€Â}]ooďÍ›7oŢĽąăďaaaÇŽŁ˙çťwľ÷Ţ{Ž}î@ďăÇ­!!¶  ‡ÜMŁ1żńĆm b__fL—ńU6‡‡s- ŔľŹ=vťÝ äFĘŔźžxŃîŐjˆ !gĎzŤĂűe3°fS*˝OťjĽçFzś!XłDT=jŽ‹sÔ÷Ť—6ĚĘR2'CJŠďÁ¤­ŤkYX ˛Ňłľ^ÉÂć—¤ ěZMsî\Cv6;›ČLÓ§ !P×Dđäyy¦ŘXG)("&$33•̰54ÔzÇňÂB6ZÄ!¸gŹ*!Á(‘°üĚÎ6MźîŔ¶@jŞ!#Ă×jô MZ­"3“¶°‡ŕ˙¸¦FRYŮ4i’Łt:cf¦Âdb$ź=4¤¤ř ůě""ÂŢ˝*­–‘ťź7RjµŽŐóV?ż6˝ž…‚ŇĐ4a‚Řh”\şÄĆhŔîî˙QQP`V«Q$r ±ůř VkĘČ`ghCR’";şd3č=PT$7®™•-Ň!e`Ó„ ŽŐsDś5«!+‹‘(‰LńńJˇš¦ëáîţäąąĆÄD‡pJJĂîÝ~l0´ůű7FDČJJŘh' âž=~j5;Ź2°‡;GG›öµŰY ętŇ~` -ŚáîţŹŘlň˘"sT”cU“î˝|Yrń"#áŔ¨ČÉć°ýŤFń‘#ň”ď¦ tȩٮŮBB¬ÇŹ{3đ®h%éůóâ†6Ffpk˙‡ŢÇŹ7ŹiS9>뼇INnHKc'ź˝):Ú÷đaá$S˙€´4ŐÔ©f__^ M(ąrĄŃŃÁĎöűÇĹ™Źe%ęĺe6L^PŔĆhŔ ní˙@qô¨I«$NN68ŔNI϶Ŕ@kHôűďŮh‘“AÄÝ»U©©őlĽ˝)§M#^^t˙ŘXS^ [`ť>Nťę#¤’w1ÜÚ˙!˘^ůÍ7ڏs§99Ę„#3:@źŽŞůp3 0°-$ÄĘĆ :"Z˘˘„r¸.…›ú?đ=|ؤբŹĎ >“’ľţZŐŘČÂئčhyQŘí IÎÁnÇÂBŮřń,Tű#ż?-‘‘ülV\ś9'GÁŔÔl EsX° ÔupS˙‡ľii ))­ŕďßŃXR"cCémAAÖďăÇ’ś"ž;'1˘%8¸•Ť7v#ř™č}FÄŘXÓ… ^lŘX˘Łĺ……lh¸Ł˙CDÉĹ‹’Ë—ÍŤŤlĚa ĆĹ)ŽecHl °PÉαü4étαťI“š®^ő¬­ő`@ßѬŃČ h ¸Ł˙UZZCr2ńppůßnˇËř‡ű2łŚoŠŤ•çĺ±1 6XT$;V~ö± j=vŚ…jšĐ.-/›LlčßqG˙‡ľ’“ťŁ‚íËř'N0˛ŚăDM ײ¸:hµBi©ŚĄď?§?Űźk.(3`;„âĺe‰łˇ|Çíü"zźÍ€Vđ÷ňŕ›–Ö0k–ó i2C6”ž–Ă• Ëř7‹‹e‰xK4řiމqrđ“‚QQ–ŇR‰SŔ/$BsÜĚ˙56*˛ł^í˝WŹř%™!0ŕiTůÍ7Bôf@Q‘ś©‚GŮŮMwß͉í(¶°°ć˛26lǨÓ)˛łĹׯs-‹»Ă˙ç¨úG¨ĚĘ2Mźnóĺ&gP-$Äzü¸7" 6Ť+„@o"ŇĹ?Ţ"‚Ýî}ćŚeňdN´č ¶c÷önś~Ľyôh[P' ˘Fc.(`$‰ 4¤¤(f@7x üźŁ@»]VXŘ4~ %]%KD„¬¸Ť!©O bV–bňd‹LfcŁ7éǟ˶…˝<ş4|↶Ă!Ěú?~R12Ň’—ÇÎ2ľE­–±1$ő HOWĆÄ0üqý7Ď úż;?'Ovýŕ'…îŐë ¶…„Ř éůó I˝?Ťl´—žüł)•ÖaĂ\żE¨V›‹Š±0ĹÄČŹqý7Ď ú?ü4MťĘ“€É“-ÇŽ±µDGű|÷_Ţ˙a0řéz5nDEYJKeV+0đţŃ4mš"'GH„ćXóżîüÔjyaŔ„ąď?·JćËdđS‘“c‰‰á‹6*•ö°°ć˛2Ţ?Ř|}›îľ[^XČ—÷ĎkXóí;?ŃLJkYzKű)Ŕ‹9x#™ŻŐʵ,{ÁO~­ťB‘.2`;„†@u:ąŁóč"˘Ĺbyţůç###ăââŢxă »ÝîŔűóřż>Ő?BDy~>Ź‚ź–vţšĚ÷äI~őB?`/řÉŻµsBh4ć‚l‡‚ĆéÓąąÄfsŕmŕő×_Ż©©9tčĐŽ;ŇŇŇöîÝëŔűó”›úż={ö<ňČ#ożý6ç†Ý§úGüZ˝h‡ž|É’%‚˙#=řż;vś:ujÇŽ­­­Îh€đ"oEWXĘCÜ&äĺ)¦M31Ók|ÉšÔH0"¢×ű°ˇo`š>]‘•E{!**Ęh4ž={Ďź?_UUĄŐjűÔRD¬©©1›ÍcĆŚ7n\yyů µ€7tă˙ńĚ™3gĎž]¶l™Á`ČÍÍuľXýĂ•+–Ý’áĂ[-3§Ý!™ŻÝŽ……˛ mäEĘřnµÚ’źŻŕ‘ŰîD4ętĘĚLŞW‰D§ÓeffB:” •JűÔRhnnöđđđňň˘÷—ÉdŤŤŤ$?ŹčţűoďŢ˝2™léŇĄwŢyç×_íd™ú Í[aqůĽÝBw–•12‡e>™/"ž;'˝ýöÖŕŕV6ÚČ‹”ńÝBˇť>ÍÎňAóčŃ„éąs3fĚČĚĚDÄC‡%''wŐ· ]čř·Ôáµµµµ´´Đű[,ooo§µČeéĆ˙µ¶¶8p`ĆŚ‰$%%%77·®®ŽŠĹëď?–¶Ŕ7Hć ……rŤĆÂLń1řI€ŃŁ›Ż\ń¬ŞňdCßŔ8}ş2+‹†+ccc/]ş”‘‘a6›5M×6žęB§» 2D©TŇ *"ţđĂ#GŽtb\”nü_nn®Á`HNN&„¤¤¤Řl¶8]°>ăâ«o “É|eŽŢĆí: bQ‘lŇ$!řéD ŃXJKŮ™>št:Ĺ/!P©T·iÓ¦ääd±XÜ×ď?BH$š3gΖ-[ ĂĹ‹?üđĂűďżßIŤqaşń{÷îU©Tjµš:aÂ^„@]żbYĎ´'ó=žťdľb“‰ÉdľhµBi©,2’ťď?ž?)c:r„ťS€ŤžŐŐ´”"&$$ÔŐŐĄ¤¤t«o=˙BqŐŞUAAA‰‰‰‹-š9sćÜąsťŇ—¦ł˙łŰíZ­vóćÍžžžôE˙ńŹś?ľŐĺĎ2#­XÝ]p€/ĐdľB2_WĘĘ|šĺrFšFŹ˝ó1řI€iÓL99Š–#ú&›´ZE~> ĘĺňaÆM0ˇ­ooďÍ›7ëőúüüü•+WŠD, ť_H$zđÁ§NťşgĎž={öŔ¤I“.\H7ą27ľ˙¦Lá©&“ůĆĹ)rrřŰ#7 ĺŃŃŚ? !Ľ;öŢ•Ę~÷ÝMlLI{4;Ż]»¶sçÎYłfQ_ȵhěpÓ)Ŕź˙üç?˙ůĎÎe€Ü8ů7t(ׂô“ůętňÜ\‘Ů̵, d #o !Ľ;öŢDÔéLYY ^·˘0GGű;&2’’’ŚFăâĹ‹™Ń7‘O`äIĹę[ÂZ2_™Ě)ĎĎç{żtÂh•—KĂĂhmŻź>Ýť­°ŰY>BP*µh4Š˘˘cÇŽíÜąSĄRq-kpŕ˙# 덓j5Ż °Ě×ČŘ.PD,.–EDX$d ]´ ¦ŘX^?ť! IDAT)!!m·ßŢZZĘÂô‘ĐĘÔ©>'N°1¸ 7ő©©©©©©ńČÁHĂJż˙šÂĂů®(ě%ó5étŠĽ<–B PT$W«ŮŮůIiś2…ď¶CAÄéÓŮ j4ŠÜ\‚ČF‹\Ť›úż)S¦L™2ĹáĎkOĂpçťw:* 덓!!|’Ú“ůŤ,„¦i´iěXEV3ŚtńŹ!"A$„X""řn;„Đ錙™JÚBi AéąsĚ´ČĄpöţ—ö4¬ôŹŽJĂJ˙P‘ödľĹĹěě5&&2S «ŞvĚÇ``al€ĆđpiyąŘÄČÄËu`A?D.·GFZňó™JćËë(”–ú„…µ„„´q-‹ +¤ĺ卌íd%ĽĽě ;y”——%"BV\ĚĆhŕ:töK—.ÝłgŹÉdâDv11Ń‘ˇdĂ€ČJźZ-#sp›bbÜUS§šXš>ZÔja ŚĂéě˙ _xá­V»víÚŚŚŚ––áŤs“!PÓ´i2Ţ„€ĚLet4#;?Q^Td‰ŚdC»:Ť9'Ga·łĐ:šMVTĆîąťýßË/żś’’âííťžžľzőj­Vű—żüĄ°°Đfłq"ź;CC YYě,ă["#yy<piJš^„@VPĐČDÚł®@pp«Ba;wNĘS}ë"6ŹíY]íQYɵ,LŃů̬YłRRRěvű‰'ňňň8đŐW_}őŐWłfÍzâ‰'üüü8Ô ˇ!ĐôtĺěŮ)°††B$••ĽËÔŠYYĘéÓŤ,Ô| „xTVbóčŃ„˙îˇ[€–R;–÷S@B,Ť¬´Ô̆şÝěAÄź~úéرc………W®\ˇł'ŁŃřÁ<÷ÜsN—Đ}ˇ!P˝^ĆRÔé]VĆ;€ĚL…NÇÎÎOyaˇiÚ4Ân=qDT«ÍEEěäŃ5«ŐާN±Ú_śĐŮ˙ýă˙3gÎ<đĎţł¬¬,44ôé§ź>pŕŔŃŁG'MšTRR‰”n !ĐÉ“eEEĽ’*+=Ş«=#"X(xKEVVă¤IlčU·@T”Ą´Tfµ˛P—žTäć˘# ¦ P:Ç??üđCBBˇ9sćěŮł'MšżĚSRRd22ş1ě…@-‘‘A۶ń«-™©ÔjM"#ÁO‘Ů,ÓëŻüíoĚ„s»E©´‡…5—•ůDFv“dź_@kp0­…Ô(*b¤íhŠ‹ó))a@3ąEđĽžd*(`gßč{ř°kIX\,‹°H$,THE^^ă”) ´Ą°·|`Ňéyyb #Áy®üošĚĐdb$ ŠĚf®eé(*’«ŐŚěüD»]VXh‰`@súcË„»\Ţ4v¬"+‹ ýä Á˙ń //a).f!ŚÓUdeąŕ„tńĎeë+(=wΦP´3 9ýĄĺB"•éé č'‡đŔ˙ąyýŁŽ ˘ZÍÎ)@U¦§»Ú„UUž&“xôčfW“­€Ľ°ĐÍ@[ú {Ë&ťN¦× !ĐŔ˙çćőŹ:BO2ť>íÍĆ@FC 2˝ŢŐB 4í™Vk‰yϲ˘"łZíÎeűňuT!vąś†OŘ 8ţO D=şůĘĎĘJ®eq.EĢ"yT 3kD«UVZj‰Šró’.čő>lĽ!:p˙Ç'€Đd†l(˝ †@‘ĐšG®#UżꞞć°0»Rɵ,C—X˛!:@˙Ç3 .Δ“Ł``h&.Zó($¤ŤkY"ŇĹ?a¤ËĚś$BtŔţŹgĐZ€ąąrł™…ľsÁ(M{6~|“‹Č3@@VP`Öh„!’.TW3˛|@„č€aa u+@&łEFZňó…] ĐšG."ĎŤŇňňĆđp6´e 0ą| „@‚ŕ˙ř$&32”l Đ®mi!´ć "ĘŠ‹-(‘°ˇ-„±ĺ"„@†ŕ˙ř«!Py~>ç.iÍ#™ĚÎŔ€ň˘"s\mqŚŮů%ę ¶ĂGQ·˘=š•Ą`CéŔ” ČÉá|¦'˙˘ŁYŘůIč÷_A›źüë›¶ŁÓÉJJ„h?ü/ˇ!Đôt†B ŃŃŠśb·s. KiĎ<«Ş±%,Ś =qŚŮů%¨{s|Ľ<7—“!‰¦=›9ł€0đ>€ÖŢäíÍJÚłÂBKt4m<ŘËŁkÖhdl¸sç ř?~ŃѦś…ÍƵ(ŽL±±ňĽ<'I–ć;m#5n¤=Óh„ˇ°Ë ŤááŇňr±É$ô{/aˇăÝ l ±ž>-e@鑞‚×Ô8óąžőőbfŇž‰M&Zó w>H°WJŚxyY""dĹĹBż÷Á˙ń‹3=ĘBP$2«Ő˛cÇś6$!bZšjćLŁXŚlĽCYq±)&†°‘Ćf0aoůŔ˘V [`zŹŕ˙x"ĆĆš:ÉŻpbđť6ÍČĚ (/*˛DF˛ˇ {ËfŤF8Ř{˙Ç{`Ҥ¦ĘJIm­CŢŻµ ś5&••I !ááÍÎyÜ`˛‚‚F!íY/h_>8~Ü› Űi=ÚłşÚٞ’kYţ˙öî= Ş2ďřůÍŔ ĂŔ0€ âýBĤqSĽ, ’â˘xˬ¬mµ 7ďĺľZ˝hÔš­š®ZKµ»mhši†J ,Â@âŤŐ|ŃĘRILă:Ě ů˝ś]"Ż€gÎ3żĎ_‚:ó›9ç<ßsžçśçĘ?HĄ\t´ńřqşq~^ âűﻡIBÄśőäÉő 4<­ÖćîŢřŔĚ|˘.ĹŘđ`1Bńő×´őŰňŹ8v¬±¨‘a|~-·oľéę& ­VČÉńJLÔ1Đüq˙ťöLźŔ°ń‰ş?|pô(;ÇŽaěXĹ… ´őŰňŹ0r¤áäI› 8Śůµ TGŽtőgáW{ďŰ×2`@s—ľQ·Ő‘#Ť<@Í_;±7| Ź‹ó,*’ÖÔ]‹Pţ1ÂßßĘc0ĐđńkA¸—–vőZťí•ČNç§´¦Ćý«ŻLĚ|˘nŔŘđMˇh ô:|ö{˘üc"ňĂŚěô]ż"64H4ĎG­g áă8˝6ÄĆÚ,śuö†ę˝˛łi¸'Ę?FŔ¨Q†Ë—ĺlěôݰ¨âă ľľLÜüÎqŕ•ť]źČĆ>ĐmZ‡>0Ž!»v͵Ľ\čZťňŹÖ?jD6¬á§ź\++ĄB×bݰ"ćç{ĆÇëhňx®ĺĺ˛k×hÚłNŕ‡ÎťcáşP*­ź4IťťM{Â݉ ˙hýŁö‰űô±ś>­dc§ďҵ ŃfożU„„hň8ŽCDuvvý¤I(•˛ń‰ş?|pâ#Çč&Mňúâ ÚîNůGÚ ĆŽ5=ĘÂ0>×ĹkAŔŮłŠŢ˝-ţţ u~~ń…nŇ$6¶~7㇎÷`ćŰk ă8έ´TčBĺ;؛̩ëÖ‚@Äâbχn`ă|źűoKÇ·z¤ŁřáK—ÜŘ>ŕ8ë'OVçä0ł‡wĘ?v´Nćôý÷´Ä=ŔŃŁ±±ě,x¤ÎÉ©ź<™í.~ř :ÚxţĽ;ß!č˝rrŔjeăuĘ?¦đ“9;ĆB7NëZîçĎŰý®¬”jµ˛3M"‚Őę•“Ł›<™í.7Nř°3ßaó€–ľ}ĄĄĚ|"»Łüc ?™ÓáĂ*šuŽďŤŹWĺçŰ÷FÄăÇ=ŁŁŤMĂV{ŹŠjîß_čZD ÇŤÓ;¦Ôj]…®Ĺ>±>1Ń+7—ŤÖ +Pţ1…ÍÉśňóí;™yŚkd ü8ţ±÷ěló°a lq€L†“&ŐgfŞŮř& ţŃGŐH„®ĹAQţ±†˝Éś ±±žŤ›$«•;yŇcäHÍ"JÜĎś©ôQ¶¸°`Ú´şýűŐl<ĎqśŐ××<|¸Gq±Đ…8(Ę?Ö09™“¬˘Â^Ť;"ž=«°řůµ0 *(¨›>Ýęë+t-,nR©¬'O*Ř78ŽCÄęßţÖ2hĐ…8(Ę?Ö°·„qÄUn®˝&s€âbĎŃŁŮéüTĺĺ5 ĘŔ¶v8}ş.3Ó›ŤďĚ‘‘MC‡ ]˛sţ!˘Édzůĺ—###GŹ˝uëVŰ-óW†††ňó™…††&%%Ů·ÂŘZ(•GŤ˛×dNxô¨Ç¨QŚt~‚Ţđ@#ázőŞTŻo acű:<ą>/Źş@Yf˙ç–,Yâďďź0gÎś‰'Nť:•㸲˛˛đđpH$ożývuuő1cfÎś¸hŃ"»×@¸˙Nć´k—c“9)˙ýďN4I™émbŁ9CDUAA}R°ń‰ "ţú×úÇ˝šš„.…t;Ś˙µ …bíÚµk×®műűÁź>}š˙óŔ˙ţ÷żŰ÷}ÉmµNć4r¤IčZěë'NTĺĺĆŚéhŁ__/ůňKŹ—_Ö˛1ZžMĺÂ… |Ç^^Öl‘cBĸ8}Q‘§Í&t)¤kPţ1Ž±ÉśQź ĘĎďPśű­\Ż—FGwěŞŃa€úŔý„ llS‡ýúYT*ëůó 6örĘ?Ćń“9íŰÇÎ] íEÄĎ?÷ž:UŔÂČÇq˛K—äW®˘˘ŘŘ¦Ž âă ô <«(˙ÇOć¤×K/\`d2'ľ Ôł  =M"Z,“㕜¬cŁ CDßÝ»kgĚ@©”ŤOäČ16ÖźĎČTňä&”ěă's**bäö?] ąąíi’ŕČULŚ1  ąjëj(1›˝ľř˘vÖ,6¶¦€˝^ZYéJČĘ?öń“9ĺĺ1ň$ߪ,)iO("ćäxMšTĎFăŢGŽ´úű ]‹łH¸±c ……Śś>’¶(˙ŘÇŢdNíěED“IŞŐĘ""Ěl4^čł{wíěŮllGQ@ĸ8ĂW_12•Ďw~–”(cc™ĽJZY)żrE7e D1>^_P ˘ož1"Čżóm]‹@B‚>'Ç‹Ť0@ÄúßüF}ŕŔťš$ľó32ŇäîÎB›…>{öÔO`swgc ŠÄĹŠŠ Ä•ĘúÉ“}öîČÎö;Ö P°ĐBQç§Cá»@Ďśq§»@Ů@ůçt1>ŢPV&˙ţ{ąĐµŘ"ÖĚžíłw/×Ň‚ŞGŤ22ĐYYYYęÄDťD"úđăZ;?ÇŹgc±~ýk}m­Tَ!DŹňĎIąąá¬Yµ~Řë$Ž_0>ŢídIv–*)‰…ŐŢ[;?Ť11ll#fH$’R•žî‡Č1°§93ä­ÔńÉ'kóňĽęę¤B×b`•ËsBúJën` 0řÎO}Bu~:DŚŤŐs§Ń02• ÓAţŃúG]Ôę–ńăë?ţ؇ŤsX‰D˛{ęI·=‰öę{BDőţýőŹ>ĘĆÖa pü% ŤŠ -éxöŮę={|ššXĎÂlćţu~ČS¦żÉ.^ş–ű…ň«WÝ.^4EF҆€ÖK@ާEůçÔ h~řa3‹â"bAWT”Qö›HuV–Ř›$đŢ·O—śĚÉdB×BnŹüřc/Ę?§†Ď>[˝s§ŻMĚ3e"""÷ŃGľ3gÖé“’ÔŮŮŔ˙JĽ,uffÝôéâţLăG ia!M‡&V”N † 3Ëd¶ŁG=ÄŰÔ€FŁR(l#G‡ iQ«•%%âm’Q•źßŘÔżżx?óZGwě gĹŠňĎŮŔÜą5źî-ަÖfĂôtż””*ţč’’Ľuś{ďÝ[7s¦x·“ŕG éÉ“">}tf”ÎŽźŇ÷űďÝJKB×ҨѨT*kt´‘ź˙ł>1QUP ili“$+/w»xQ/ŇúťŠDüť¬ĺźłă§C{â‰šŚ ńM‡ĆóĄ§ű=ńDmëś/Ö=ĚaaGŹŠ±IBDď}űjgÍBWW1ÖďlqÜ8}i©˘ĽśîTĘ?Â@rrÝɓʊ WqE ?ňÇq\lěĎ«ý!˘.9Ůg÷nq}Žăš›Ő™™şiÓ(üD\]19Y·oź·čö7BůG8Žă”JLNÖíÚ%˛nś¶#­•€~ÂYE…ŰĹ‹âj’@uäiÄć>}„®…´Lź^—™©nnqío„ňŹpÇ!âś95™™j“I4ůÇŹüq«ż9¶%’š'žđŮ˝[\qÎ0á~î˙IDATµ´řż÷^ÍăŹS3*.Xóói:4‘ˇü#ÇqĐ»wst´)3SÝ8­#))U·®ö€uÉÉŞÜ\­Vň:ůkîŃĂ˝nß>o‹EčRH»‰ ˙hýŁn úŠ ŮĹ‹nŽÜŔöíľóćUÝ}Ą#D¬™;×wçNα§7EĞ۶Ő=öXsĎžŽŐä¶ ˙¦Ţ˝-'NĐ\0˘!‚ü#ÝI"ážx˘f÷nGnµZ—“'•“'ßcťw0‡…µ¨ŐĹĹŰ$!˘âÂůĺËUĎ>ëČß9ą'7ŻúoóccA1g@ůG~““ërsUZ­‹ĐµÜ"îÚ囜¬“Él÷ ¨|áż>459f“=7n¬~öY¤uŢĹoäHSŻ^Íéé~t*# ”äŔÝÝĆ? ď€fł$3S=gNM;›SLLsŻ^Ţź~ęM’Ga!Çq4Ű'ńŹ¬Ř·ĎűâEąĐµ{Łü#7ţYxłŮáşq 3Ó;:ÚĐŇÎ˙‚7^zI}čÜńÖ…G›­×† UĎ?ŹR©cĆ3éđőmY¸°2--€Er|”ä6Zřgá­Q¶Ů¸ť;}çέi0@łź_]rr@Z:ŇŤ0¨Ňhl …)<ÜŃľgŇi0sf-Çq{÷ú8Úé#ą ĺą ţAÂBOGĘ R ŇfîP`@íĚ™ÇůěÝë M"r~ééU))p÷ŰX‰ŘH$šŞÝ¶Í_Ż—:ČţFn‹óçW=ř`Sç^ˇ)0°núôŢţł#4IhłńüŚB—Cě SRŞöď÷>}Z”ËJ; Ę?rGŃŃć¨(Óźţŕ ôž=Ţ®3fÔu:ڱ*%Eqîś{I‰}këD%*ŤĆćŤu„ď–ŘČĺ¶•++ÖŻďÝÜ,t5ä(˙Č!âÂ…?]ą"ŰłÇ[ŘJĘĘd[¶řŻ[wÍŐ;`“Ë+V®ěµq#'\›ôóČßüů4ňÇ0;Ö V[wď¦a~äŽřµ­×­»¶e‹Y™L¨2,nĺĘľ‹WÔtźWK`;ÖŞV{>,T“Ş‚‚__cL 5‹l€—^Şřŕ?ťÎ!ČM(˙ČÝŔ AM‹WnÚÔ«Ą˝OÜŮ"nŰÖ3"ÂďÄ2t¨yřp˙ôôîo’±Ďš5ő“'7Sř9DLI©üÇ?z”— ĐR^îşjU߆jçoŹľro°fÍőť;}ľúĘ˝Ű"M&ÉęŐ}RSŻ{yŮó9DD¬LIń:tHvé’_¶=ďëłwŻkEĹO Rř9 P«­Ď=WőÁ~Ý|úh0H/đŇK7† 3wçűŠňŹÖ˙sŢ޶´´ëŻżĐm“˘ŔĆŤ˝~ó]xxÝ_ŮŞVW=÷\ď ş3Îĺ?üŕże˵uë8™`©¤űŔěٵĄĄŠS§şoi$«•[±˘ß¤Iő“&ŐÓÉÖť ˙hý?1j”iŘ0ó–-Ý´F]q±ňŘ1Ďy󪺢ɀÚŮł]µZĺ©SÝĐ$!"47÷]ąňĆŠ–Á»úíŁquĺV®¬X·®—ÉÔ§Ź¸~}/OOësĎUQřÝ…ňŹ8D|ńĹŤŞ¸XŮŐďe4BZZźÔÔë Ĺ˝9ę$WWmjjĎżüEvőjW7IĐsŰ6óđáőS¦té‡c6ĚĽqcŻ®$DÜłÇçřqŹÔT­TÚĄo%z”¤˝@©´Ą¦^OKëc4vá1Ś7öŠŹ×ÇÄ»´±0GDč’“,^,5™ş4•ÇŽąź>]™’B7Á;-ţôńŘ1ĎS§Ü»ô]NťRîÜé»eKą§§#ÍŢë(˙H@LŚ1&ĆĐu«"bq±çĺËn ţÔ ]7uŹ=f9˛÷ëŻÍÖEźČE«íűĘ+ÚW_µŞŐÔĺ´ZO×­ëm2uÉn€®+Wö{íµëЬ3÷FůG:^|ńĆŢ˝>ĄĄöż”?€˙÷űĽúŞV©ěŽK%DĽ±b…K}}Żőë»"ś ˇˇ˙ŇĄUĎ>Űřŕ~NŽ?}|řasW,Ť„ŤŤ’ĄKűżúŞöá‡í|Ë«(˙H‡yxŕÚµ?ľürß‹Ýěx·Ŕii×x ““\w DňăúőÇŹ{ú©}_ŇŇš† ©™;—ÂŹp˙=}ÜąÓ×î§Ź–0mšnÜ8_–m”¤3ÂĂÖ¬ąľlY˙Ó§í¶@ÇÄÇŚ1ÚĺŰ˙ľVŹň-[üŇÓ§OŰëeŃwűv׊ mj*…iĺáo˝őă˛eý?ůÄžW>••.Ó¦u~‚x'DůG:)2ŇĽfÍőeËú}ýµÂ.‡\F†Ź^/}ţů.yŕáîŔŇż˙µ·Ţężt©›=łADĎâbŻÜÜko˝… Z‡ü°a ;v”}ţą÷ćÍ=ípntô¨27×ëőׯËĺ]vż4‹(˙HçEFšß~űÇ |óÍýF`^žgn®×ęŐ×ÝÜ„9€ŔńăŰoX°Ŕýß˙ľŻ×˛Zý˙ú×€Ő«µ©©-={Ú©@”€€ćŚŚ*+]—/ďWQár?/•‘ᓚÚwőjmďŢÍ~BůGî ))Nśđ°Ů:¨Őş,]Úďoó{íµë~~-Ŕ­ŘoٲNŻ(­Şřűß+OźľüÉ'M<`ß KÜÜpíÚk#FSRž;çÖŃ˙ŽŤŤ°jUź ź|ryčĐF żŽ,˙jjjbcc…zwbG‘‘ć­[ŻnÚÔóŐWűćç{ÚlŘÎkA‹…{˙}żÇúčŁőeßďňF÷ďç\ľ\yě¶űˇDä,UvöÇ׏ĺý÷­~~]]-;;·ć•W´K—ößľÝÇjĺÚżżUTČž~zĐ!M©©Z??şňë ňO«Őľđ S¦L1č>%F ÖđÉ'—Ǐק§ű=ţřŁG=ďr-6ćç{N›X]íňé§—&MŇËdśŔ|^ÝşµçćÍ}_}UUP€¶{ůä˛FŁZ˝şOuµË=#ĐfĂĽ<ŐSO ž=»vţüj7·Î/ íä@¨I5ËĘĘfÍšuş·Ű…„„đż˙Á?8Žűýsżë’âH§ ""§Ń¨ŇÓýšg̨5Ęđ‹`łŮ˙*•uÁ‚ĘG1;ćˇËŻŇ®ŇhüŇÓ9Ž«›1Ł!8¸)(ĺ?/ĄćZ^îQR˘:tČíŇĄÚÇÓMžÜ<`€p%w^ëaE„‚6¤§űĺ婞~şfČĆ  &™ěcámŹ/•Ęş|ůOżúUŁ]Ţýˇ‡â8î믿¶Ë«‰Č}Ť»Ňżžk|Ľ!6VŻŃ¨¶nő˙ě3ďĐĐźŵٸýKĹqÜ‹/ţiĽ) p†řx}l¬Ş°ĐSŁńŮ»WvĺŠeŕ@SD„T§S–”pgŠŚ¬ť3Ç0f şş:ěg!ޤRî…Ş˘ŁMŞwîô˝rE6p %&ƨRYůsÓá#‘Đţvż4˙h©#Q“H .N«/,ô<{öł.ZT9j”A"ŽÇŃ ‰!.·‹EţÝwŠożµ)•))mŻöÄńaĂ‹0GD9Žkj‚ďľ“ű­B«umý[ţđqäGqéŽü ĺ{´ŰßÇB˝1bÇ_ ĆĹăân}]”‡. \ŢÖ&t-„}r9†…5†…ÝÚĂ)ĘĂÇ1uGţť;w®Ţ…Bi?zţŹB3˘ü#„⌻˙eđŕÁ}řá&ŮĽŃ^ĹâĚhĆdâśÄzýGáG!ä~8čó÷䄏jB±#±^˙B!÷C¬×·˘Gć !äžčéęVěäwßŰőţgA¤W W W WpđW¸ź˙Îę˙$„âŚ(˙!„8#Ę?B!ÎňďgŽ0,L5P TŐŕČ5°„ňŹB3˘üł':;ăŃ÷ŔŁďGߏľGCůG!Äť’BqBtýG!ÄQţBqF”„Bśĺ!„g$úü3™L/żürddäčŃŁ·nÝjłŮ„®H—/_ž7o^xxxTTÔŠ+ęęę„®HHxćĚ™ČČH§]ŮĽąąyÓ¦McĆŚ _Ľx±ÓîłgĎ~ä‘G˘˘˘ćĎź˙Í7ß]Qw«©©‰ŤŤműj3[‰>˙6oŢ\YYyčС;vdggďßż_čŠ`µZ.\¤Ńh<ŘĐĐđÚkŻ ]”ŚFăŞU«śůŔ~ď˝÷Ξ=»{÷î‚‚™L¶iÓ&ˇ+@mmíňĺËçÍ›wěرüüüeË– ]T÷Ńjµ/Ľđ”)S CŰßS›ŮJÜůgµZł˛˛/^ěëë;pŕŔgžyĆ9·ĄV«˝~ýú’%K<=={öěą`Á‚'N]”ŢxăŤččhˇ«ŚÍfŰłgĎ˙üĎ˙¨TŞ 6¤ĄĄ ]”d2™Z­ŕÓ«W/aKęNďĽóÎöíŰ[Ôf¶%îü«¬¬4ŤAAAüŹÁÁÁeee–$~ýú•––ĘĺrţÇâââA [’P1++«şşúé§źşÁÔÔÔÔŐŐŤ=:**jĺĘ•FŁQč˘ŕáá‘––¶|ůňđđđ#F|řá‡ëÖ­ş(Q›Ů–¸óݱ±ŃĹĹE&“ń?*•JłŮ,lIÂŞ¬¬\łfMFFĆ+ŻĽ"t-ÂĐjµ[·n}ăŤ7$qďŰ÷Ăh4"âőë×<••U[[űÖ[o ]”¬VëoĽ1mÚ´âââÜÜÜŕŕŕ-[¶]”Ŕ¨ÍlKÜm„R©lii±X,üŹ&“IˇP[’Pl6[FFĆÔ©S­Vëgź}öĐC ]‘0V­ZµtéR§ęćşß°rĺJooo˙ ]”´Z­V«ýă˙čĺĺ°hѢ˘˘"ˇ‹µ™mą]Ŕ}éŃŁ‡JĄúî»ďÂÂÂ8Ž»páÂСC….JďľűnAAAFFĆСC[G;śĐ™3gÎś9łbĹ ţÇĐĐP'śáĎßßßÍÍ­ĄĄ…˙Ńjµ¶žď;77·›~Ó:Fŕ´¨ÍlKÜ׉$))iË–-uuuĺĺĺ}ôŃ”)S„.JMMMüń{ď˝čĚáÇqÜůóçĎź?îÜąČĺňsçÎ ]‘\\\×®][WWWQQ±uëÖÄÄDˇ‹€źź_xxř†  CEEŶmŰ&Nś(tQBj3Űwţq·dÉ˙„„„9sćLś8qęÔ©BW$€7n †ŘŘŘĐĐĐđđpˇ‹"Bz饗l6Ű„ ¦Oź´hŃ"ˇ+Ɔ t:]\\ÜŚ3—,Y"tEÂŁ6ł­˙@!ĉţúŹBéĘ?B!ÎňŹB3˘ü#„âŚ(˙!„8#Ę?B!ÎňŹB3˘ü#„âŚ(˙é€Ď?˙<444::ş¦¦¦±±qܸqˇˇˇéééB×Eé0éţđˇk D4‚‚‚Ξ=űĂ?X,–+W®äĺĺýéO’JĄí|D\°`‹‹Kż~ý\\Ä==!˘FóźŇüşzÓ¦MkiiQ(&“i×®]ÁÁÁíźv'Nś¨ŐjU*Ubbbrr2˙ßť|ârBşĺ!¶}űö?˙ůĎÇÍ›7oéŇĄ7ýíĘ•+[˙üć›o®ZµŞíŹÇ!âW_}•““sřđaťNśśěĚ Ö"Ę?B:ěý÷ßßşu+ÇqO>ůdŰ´ă…„„´ţůÜąsaaaČq”––¶˝ÎknnÎÍÍ}óÍ7ëëëťs©&BDůGH bYY٬Ył@©TętşţóźĂ‡ďhďeSSSaaaNNNaaˇŐj=zô;ďĽÓE5Bn‹ňʰZ­O?ýtiiéüůóýýý×®];pŕŔ={öÜşÔřť âęŐ«sssM&Ó!C¦Nť:yňd???˙#¤›Ńíg„tŔÇ\ZZŞV«÷»ßÉĺňíŰ·_ąrĺŻýë˛eËÚ˙"GŽIJJš:uęŻ~ő+şó…ˇĐő!Ý -‹\.şBś=˙NH· ?Bĺ!„gô˙w"áŇnĆBXIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_24.png0000644000175000017500000000263312052741162017332 0ustar gudjongudjon‰PNG  IHDRs%ţöA[bKGD˙˙˙ ˝§“PIDAThíšaHoÇź“íś/vYž6eč‰J +Z°kĆBd)6Ó7"¨PÎQâ‹j!Ů,ěMŤ^„˘Ě5aŃ«rŚ!Ę@1CH%ťSfÎÝqµž^×95÷÷ôŻÝçŐÝoĎóýýî»çîůí!,rŘ[8gŮ‚s–-8gŮ‚Ç8}üřńˇ”rtÉČȰZ­BˇD˝AUUŐčč¨\.?ŘÚŽ6v»ÝfłUUUŃĚ5 ËĺUŐqA­Aî9ËśłlÁ9ËśłlÁ9ËÉ;;33SWW'‰P•H$­­­kkk;Oůüůł@ 8Žßşukqq‘>fW…†í˙%K’ÎNMMť?ð‘‘‘p8ěp8¦§§ĺrů®ćR¤¦¦ÂßLNN ‚†††äŠůź˙¤˛˛˛˛˛î†JĄşwď=ňóçO…Ba0®^˝ÚŮŮ ! €§OźBÁ =©Űí¦; !ĂqB855E}‡ďÜą“‘‘!‹ŰŰŰÉE˝ť‰Ďç»pá‚@ ČÍÍ}óć „Đétž9s†PTTäp8ʱXŚž—<…BTşP(´›ÍĆ&łf ‚iiiˇŃëőĂĂĂZ­öÓ§OäĹcćrą.—«¤¤„ŞÇqúÜ`0řüůósçÎ1566á÷ű?~üčt:{zz¶S xřđaYYY8~ôčŃjµ: ů|>Ŕääd0,++c(wuum•Âq|×t;Śłä››ËKĄŇĺĺeŤFăv»üřáv»ďŢ˝ëńxâń¸ËĺŇjµôÁ›››Ôs¶°°0Ťľ~ýš1Ŕn·?{ö,++«  Ŕd2őööîZŰ“'OîßżĎăńř|~$ (Z^^ţîÝ;€Íf«¨¨$ˇĽW’q633AŻ_ż2â@@$ť={6==ÝëőşÝnťN‡ăřÄÄÄVgé÷2AĂĂĂb±>`ii ‘HČS©Tş°°°kmccc …ââĹ‹CCCTđćÍ›”ł:ť.9ĺ˝’Śł†]ąrĄ»»›ŠX,–ŮŮŮîîîëׯ4ÍŕŕŕŇŇRqq±R©|űöm ¸téŇž˛D"ŔÜÜy:;;›ťť˝ó”•••úúú—/_z˝ŢŽŽ*®Ńh¦§§×××U*ŐvĘđ÷Ë©}1:Á™żáĹ‹—/_†655ĺĺĺQXXžžŢ××ĐjµuuujµAĄRŮÜÜ|íÚ5>źŹ H<˙ţýűߤHMM˝qă†^Ż·Z­‘HÄh4ÖÔÔ0č­Š˘äŔăńVWW;;;ăńx$9qâDZZšV«mnn®®®NIII¨|ňäÉX,öáĂ™Lf±XHM*źĎßłGŚí/{á—/_jkkOź>Ť˘¨T*5 2™Ěh4’w7źĎ7›ÍÂůůy€Őj…FŁŃ˘˘"ˇPčńxîěđĎŢ`eeĺöíۧNťĘÉÉikk‹ĹbtĆ…ÔÔÔ@M&†aůůůCCCĹĹĹjµš”ęďŹo§ !4Ť†ĺääôőő‘5Péľ}ű¶ QoĽł[ŮŘŘHn.ŰĽ˙ľ  €%ń„ÎîçŻ[@PZZşŹ‚űĹ‚Ůl®­­=Ȥ˙Ä{’’’X,ĆhŔŮ&Éěh±şşzđI˙‰5{(pβç,[pβE‚lffćŐ«W_ĘqŃßšÍćĂ®čč! ý~?ĂIćd8ö î9ËśłlÁ9Ëśłlń Xţ .IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_double_interval-members.html0000644000175000017500000003115312052741137023251 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDoubleInterval Member List

This is the complete list of members for QwtDoubleInterval, including all inherited members.

borderFlags() const QwtDoubleIntervalinline
BorderMode enum nameQwtDoubleInterval
contains(double value) const QwtDoubleInterval
ExcludeBorders enum value (defined in QwtDoubleInterval)QwtDoubleInterval
ExcludeMaximum enum value (defined in QwtDoubleInterval)QwtDoubleInterval
ExcludeMinimum enum value (defined in QwtDoubleInterval)QwtDoubleInterval
extend(double value) const QwtDoubleInterval
IncludeBorders enum value (defined in QwtDoubleInterval)QwtDoubleInterval
intersect(const QwtDoubleInterval &) const QwtDoubleInterval
intersects(const QwtDoubleInterval &) const QwtDoubleInterval
invalidate()QwtDoubleIntervalinline
inverted() const QwtDoubleInterval
isNull() const QwtDoubleIntervalinline
isValid() const QwtDoubleIntervalinline
limited(double minValue, double maxValue) const QwtDoubleInterval
maxValue() const QwtDoubleIntervalinline
minValue() const QwtDoubleIntervalinline
normalized() const QwtDoubleInterval
operator!=(const QwtDoubleInterval &) const QwtDoubleIntervalinline
operator&(const QwtDoubleInterval &) const QwtDoubleIntervalinline
operator&=(const QwtDoubleInterval &)QwtDoubleInterval
operator==(const QwtDoubleInterval &) const QwtDoubleIntervalinline
operator|(const QwtDoubleInterval &) const QwtDoubleIntervalinline
operator|(double) const QwtDoubleIntervalinline
operator|=(const QwtDoubleInterval &)QwtDoubleInterval
operator|=(double) (defined in QwtDoubleInterval)QwtDoubleInterval
QwtDoubleInterval()QwtDoubleIntervalinline
QwtDoubleInterval(double minValue, double maxValue, int borderFlags=IncludeBorders)QwtDoubleIntervalinline
setBorderFlags(int)QwtDoubleIntervalinline
setInterval(double minValue, double maxValue, int borderFlags=IncludeBorders)QwtDoubleIntervalinline
setMaxValue(double)QwtDoubleIntervalinline
setMinValue(double)QwtDoubleIntervalinline
symmetrize(double value) const QwtDoubleInterval
unite(const QwtDoubleInterval &) const QwtDoubleInterval
width() const QwtDoubleIntervalinline
qwt5-5.2.3/doc/html/spectrogramscreenshots.html0000644000175000017500000000376612052741136021202 0ustar gudjongudjon Qwt User's Guide: Spectrogram, Contour Plot
Qwt User's Guide  5.2.3
Spectrogram, Contour Plot
spectrogram1.png
spectrogram2.png
spectrogram3.png

/*!

qwt5-5.2.3/doc/html/class_qwt_interval_data.html0000644000175000017500000002245012052741140021252 0ustar gudjongudjon Qwt User's Guide: QwtIntervalData Class Reference
QwtIntervalData Class Reference

#include <qwt_interval_data.h>

List of all members.

Public Member Functions

 QwtIntervalData ()
 QwtIntervalData (const QwtArray< QwtDoubleInterval > &, const QwtArray< double > &)
 ~QwtIntervalData ()
QwtDoubleRect boundingRect () const
const QwtDoubleIntervalinterval (size_t i) const
void setData (const QwtArray< QwtDoubleInterval > &, const QwtArray< double > &)
size_t size () const
double value (size_t i) const

Detailed Description

Series of samples of a value and an interval.

QwtIntervalData is a series of samples of a value and an interval. F.e. error bars are built from samples [x, y1-y2], while a histogram might consist of [x1-x2, y] samples.


Member Function Documentation

QwtDoubleRect QwtIntervalData::boundingRect ( ) const

Calculate the bounding rectangle of the samples

The x coordinates of the rectangle are built from the intervals, the y coordinates from the values.

Returns:
Bounding rectangle
const QwtDoubleInterval & QwtIntervalData::interval ( size_t  i) const
inline

Interval of a sample

Parameters:
iSample index
Returns:
Interval
See also:
value(), size()
size_t QwtIntervalData::size ( ) const
inline
Returns:
Number of samples
double QwtIntervalData::value ( size_t  i) const
inline

Value of a sample

Parameters:
iSample index
Returns:
Value
See also:
interval(), size()
qwt5-5.2.3/doc/html/class_qwt_plot_picker.html0000644000175000017500000021024512052741164020757 0ustar gudjongudjon Qwt User's Guide: QwtPlotPicker Class Reference
QwtPlotPicker Class Reference

#include <qwt_plot_picker.h>

Inheritance diagram for QwtPlotPicker:

List of all members.

Signals

void appended (const QwtDoublePoint &pos)
void moved (const QwtDoublePoint &pos)
void selected (const QwtDoublePoint &pos)
void selected (const QwtDoubleRect &rect)
void selected (const QwtArray< QwtDoublePoint > &pa)
- Signals inherited from QwtPicker
void appended (const QPoint &pos)
void changed (const QwtPolygon &pa)
void moved (const QPoint &pos)
void selected (const QwtPolygon &pa)

Public Member Functions

 QwtPlotPicker (QwtPlotCanvas *)
 QwtPlotPicker (int xAxis, int yAxis, QwtPlotCanvas *)
 QwtPlotPicker (int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *)
virtual ~QwtPlotPicker ()
QwtPlotCanvascanvas ()
const QwtPlotCanvascanvas () const
QwtPlotplot ()
const QwtPlotplot () const
virtual void setAxis (int xAxis, int yAxis)
int xAxis () const
int yAxis () const
- Public Member Functions inherited from QwtPicker
 QwtPicker (QWidget *parent)
 QwtPicker (int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
virtual ~QwtPicker ()
virtual void drawRubberBand (QPainter *) const
virtual void drawTracker (QPainter *) const
virtual bool eventFilter (QObject *, QEvent *)
bool isActive () const
bool isEnabled () const
QWidget * parentWidget ()
const QWidget * parentWidget () const
virtual QRect pickRect () const
ResizeMode resizeMode () const
RubberBand rubberBand () const
QPen rubberBandPen () const
const QwtPolygon & selection () const
int selectionFlags () const
virtual void setEnabled (bool)
virtual void setResizeMode (ResizeMode)
virtual void setRubberBand (RubberBand)
virtual void setRubberBandPen (const QPen &)
virtual void setSelectionFlags (int)
virtual void setTrackerFont (const QFont &)
virtual void setTrackerMode (DisplayMode)
virtual void setTrackerPen (const QPen &)
QFont trackerFont () const
DisplayMode trackerMode () const
QPen trackerPen () const
QPoint trackerPosition () const
QRect trackerRect (const QFont &) const
- Public Member Functions inherited from QwtEventPattern
 QwtEventPattern ()
virtual ~QwtEventPattern ()
void initKeyPattern ()
void initMousePattern (int numButtons)
bool keyMatch (uint pattern, const QKeyEvent *) const
const QwtArray< KeyPattern > & keyPattern () const
QwtArray< KeyPattern > & keyPattern ()
bool mouseMatch (uint pattern, const QMouseEvent *) const
const QwtArray< MousePattern > & mousePattern () const
QwtArray< MousePattern > & mousePattern ()
void setKeyPattern (uint pattern, int key, int state=Qt::NoButton)
void setKeyPattern (const QwtArray< KeyPattern > &)
void setMousePattern (uint pattern, int button, int state=Qt::NoButton)
void setMousePattern (const QwtArray< MousePattern > &)

Protected Member Functions

virtual void append (const QPoint &)
virtual bool end (bool ok=true)
QwtDoubleRect invTransform (const QRect &) const
QwtDoublePoint invTransform (const QPoint &) const
virtual void move (const QPoint &)
QwtDoubleRect scaleRect () const
virtual QwtText trackerText (const QPoint &) const
virtual QwtText trackerText (const QwtDoublePoint &) const
QRect transform (const QwtDoubleRect &) const
QPoint transform (const QwtDoublePoint &) const
- Protected Member Functions inherited from QwtPicker
virtual bool accept (QwtPolygon &selection) const
virtual void begin ()
virtual void reset ()
const QWidget * rubberBandWidget () const
virtual QwtPickerMachinestateMachine (int) const
virtual void stretchSelection (const QSize &oldSize, const QSize &newSize)
const QWidget * trackerWidget () const
virtual void transition (const QEvent *)
virtual void updateDisplay ()
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetLeaveEvent (QEvent *)
virtual void widgetMouseDoubleClickEvent (QMouseEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)
virtual void widgetWheelEvent (QWheelEvent *)
- Protected Member Functions inherited from QwtEventPattern
virtual bool keyMatch (const KeyPattern &, const QKeyEvent *) const
virtual bool mouseMatch (const MousePattern &, const QMouseEvent *) const

Additional Inherited Members

- Public Types inherited from QwtPicker
enum  DisplayMode {
  AlwaysOff,
  AlwaysOn,
  ActiveOnly
}
enum  RectSelectionType {
  CornerToCorner = 64,
  CenterToCorner = 128,
  CenterToRadius = 256
}
enum  ResizeMode {
  Stretch,
  KeepSize
}
enum  RubberBand {
  NoRubberBand = 0,
  HLineRubberBand,
  VLineRubberBand,
  CrossRubberBand,
  RectRubberBand,
  EllipseRubberBand,
  PolygonRubberBand,
  UserRubberBand = 100
}
enum  SelectionMode {
  ClickSelection = 1024,
  DragSelection = 2048
}
enum  SelectionType {
  NoSelection = 0,
  PointSelection = 1,
  RectSelection = 2,
  PolygonSelection = 4
}
- Public Types inherited from QwtEventPattern
enum  KeyPatternCode {
  KeySelect1,
  KeySelect2,
  KeyAbort,
  KeyLeft,
  KeyRight,
  KeyUp,
  KeyDown,
  KeyRedo,
  KeyUndo,
  KeyHome,
  KeyPatternCount
}
enum  MousePatternCode {
  MouseSelect1,
  MouseSelect2,
  MouseSelect3,
  MouseSelect4,
  MouseSelect5,
  MouseSelect6,
  MousePatternCount
}

Detailed Description

QwtPlotPicker provides selections on a plot canvas.

QwtPlotPicker is a QwtPicker tailored for selections on a plot canvas. It is set to a x-Axis and y-Axis and translates all pixel coordinates into this coodinate system.


Constructor & Destructor Documentation

QwtPlotPicker::QwtPlotPicker ( QwtPlotCanvas canvas)
explicit

Create a plot picker.

The picker is set to those x- and y-axis of the plot that are enabled. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom. If both or no y-axis are enabled, it is set to QwtPlot::yLeft.

Parameters:
canvasPlot canvas to observe, also the parent object
See also:
QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect()
QwtPlotPicker::QwtPlotPicker ( int  xAxis,
int  yAxis,
QwtPlotCanvas canvas 
)
explicit

Create a plot picker

Parameters:
xAxisSet the x axis of the picker
yAxisSet the y axis of the picker
canvasPlot canvas to observe, also the parent object
See also:
QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect()
QwtPlotPicker::QwtPlotPicker ( int  xAxis,
int  yAxis,
int  selectionFlags,
RubberBand  rubberBand,
DisplayMode  trackerMode,
QwtPlotCanvas canvas 
)
explicit

Create a plot picker

Parameters:
xAxisX axis of the picker
yAxisY axis of the picker
selectionFlagsOr'd value of SelectionType, RectSelectionType and SelectionMode
rubberBandRubberband style
trackerModeTracker mode
canvasPlot canvas to observe, also the parent object
See also:
QwtPicker, QwtPicker::setSelectionFlags(), QwtPicker::setRubberBand(), QwtPicker::setTrackerMode
QwtPlot::autoReplot(), QwtPlot::replot(), QwtPlotPicker::scaleRect()

Member Function Documentation

void QwtPlotPicker::append ( const QPoint &  pos)
protectedvirtual

Append a point to the selection and update rubberband and tracker.

Parameters:
posAdditional point
See also:
isActive, begin(), end(), move(), appended()
Note:
The appended(const QPoint &), appended(const QDoublePoint &) signals are emitted.

Reimplemented from QwtPicker.

void QwtPlotPicker::appended ( const QwtDoublePoint &  pos)
signal

A signal emitted when a point has been appended to the selection

Parameters:
posPosition of the appended point.
See also:
append(). moved()
bool QwtPlotPicker::end ( bool  ok = true)
protectedvirtual

Close a selection setting the state to inactive.

Parameters:
okIf true, complete the selection and emit selected signals otherwise discard the selection.
Returns:
true if the selection is accepted, false otherwise

Reimplemented from QwtPicker.

Reimplemented in QwtPlotZoomer.

QwtDoubleRect QwtPlotPicker::invTransform ( const QRect &  rect) const
protected

Translate a rectangle from pixel into plot coordinates

Returns:
Rectangle in plot coordinates
See also:
QwtPlotPicker::transform()
QwtDoublePoint QwtPlotPicker::invTransform ( const QPoint &  pos) const
protected

Translate a point from pixel into plot coordinates

Returns:
Point in plot coordinates
See also:
QwtPlotPicker::transform()
void QwtPlotPicker::move ( const QPoint &  pos)
protectedvirtual

Move the last point of the selection

Parameters:
posNew position
See also:
isActive, begin(), end(), append()
Note:
The moved(const QPoint &), moved(const QDoublePoint &) signals are emitted.

Reimplemented from QwtPicker.

void QwtPlotPicker::moved ( const QwtDoublePoint &  pos)
signal

A signal emitted whenever the last appended point of the selection has been moved.

Parameters:
posPosition of the moved last point of the selection.
See also:
move(), appended()
QwtDoubleRect QwtPlotPicker::scaleRect ( ) const
protected

Return normalized bounding rect of the axes

See also:
QwtPlot::autoReplot(), QwtPlot::replot().
void QwtPlotPicker::selected ( const QwtDoublePoint &  pos)
signal

A signal emitted in case of selectionFlags() & PointSelection.

Parameters:
posSelected point
void QwtPlotPicker::selected ( const QwtDoubleRect &  rect)
signal

A signal emitted in case of selectionFlags() & RectSelection.

Parameters:
rectSelected rectangle
void QwtPlotPicker::selected ( const QwtArray< QwtDoublePoint > &  pa)
signal

A signal emitting the selected points, at the end of a selection.

Parameters:
paSelected points
void QwtPlotPicker::setAxis ( int  xAxis,
int  yAxis 
)
virtual

Set the x and y axes of the picker

Parameters:
xAxisX axis
yAxisY axis

Reimplemented in QwtPlotZoomer.

QwtText QwtPlotPicker::trackerText ( const QPoint &  pos) const
protectedvirtual

Translate a pixel position into a position string

Parameters:
posPosition in pixel coordinates
Returns:
Position string

Reimplemented from QwtPicker.

QwtText QwtPlotPicker::trackerText ( const QwtDoublePoint &  pos) const
protectedvirtual

Translate a position into a position string.

In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position. Otherwise the label contains x and y position separated by a ',' .

The format for the double to string conversion is "%.4f".

Parameters:
posPosition
Returns:
Position string
QRect QwtPlotPicker::transform ( const QwtDoubleRect &  rect) const
protected

Translate a rectangle from plot into pixel coordinates

Returns:
Rectangle in pixel coordinates
See also:
QwtPlotPicker::invTransform()
QPoint QwtPlotPicker::transform ( const QwtDoublePoint &  pos) const
protected

Translate a point from plot into pixel coordinates

Returns:
Point in pixel coordinates
See also:
QwtPlotPicker::invTransform()
qwt5-5.2.3/doc/html/class_qwt_linear_scale_engine__inherit__graph.png0000644000175000017500000000757312052741154025442 0ustar gudjongudjon‰PNG  IHDRŁpý¤WVbKGD˙˙˙ ˝§“0IDATxśíť{P×ÇĎ’ĘCP‚bő*‚ C[EĐ" Ą¶ …)RŞZźÓˇEËE "Ö2P˘ň*Ł-ŹB„©C› D%RAž&$@xä±÷Ź˝7“& I“öžýüµ9»ç÷űťóÍyí&{Ečé:-+ ¸Ň°€+ DőM|ýő×555ęŰÁ™‰ääd7775Ť ęĎ˝qss{óÍ7Ő´Ł”{÷îą»»_ż~]M;hÓ€„„„Ź?ţX#¦päĐTĹâă4,ŕJĂ®4,ŕJĂ®4,hO鎎Ž+++}}}[[Ű„„„‘‘‘Ůł<~üŘĐĐ;îęę ·¶¶^°`ÁĘ•+Ź;611ˇR˛Ö”žE(--Ő  ݢ%ĄŮlöúőëMLLęëëą\nYYŮüáîî>§Ř(Šúůů‘Éd&“ÉĺrKJJăââ4¤úg‚U˛`oo?99©Ů¨4Ş6€k×®Í~Í–-[âââdS$‰‡‡ÇáÇ}||Ξ=‹˘hoo/ -- EŃľľ>Ů [ZZ™fg±XˇˇˇŘ1źĎŹŠŠ˛°° “É'NśŔ>|čęęjhhHˇP PełŮR-ÇĆĆ>űě3KKËeË–9rD(Ęž•…ÍfŰŘŘ\ľ|ł˙Ă?HťFFFš››ŰŘŘbyĄFfĘĄčwÎęÝ˝{÷îÝ»çĽlN´Ń¦ů|~}}=•J•MD$>>ţćÍ›ţţţuuu€††`0ÎÎÎŇŠsrrrttܵkWEE‡Ă¬]»¶¸¸3ÇápŘlv}}}AAťNś8qbűöí\.÷äÉ“GŹ• ‰JĄ ‚GŹÝ˝{÷îÝ»4m–řY,VGGGlllbb˘¬Ó¶¶¶šššĚĚĚ×ĚĄ’_ Łţ—ĚŐ¦ź>}Š â÷·ąąŮŘŘřáÇĆĆĆBˇ0&&ćřńă&&&"‘čŕÁIII˛íŚÇăŃh´€€ ‡'NŚŹŹŁ(:==M$ź={†]ÖŘŘČd2Qmkk …ůůůr nzzšD"ŤŚŚ`Y~ţůçuëÖ±ŮlĹĘéěěÄ҇††P}ôč‘Ô‘HěččŔ,ĐétĹ6­4—˘ß9«WSmZ3wCggÉ’%‚twwŻX±B6˝··×ĘĘĘŃŃŃĚĚŚÉd6447773Ś‹/Ę^lbb˘(“ÉüüóĎĂÂÂčtz__źD"yë­·°Ë6mÚ„455íŮłAĹň}}}BˇĐĚĚL6B€â(űřńc}}ýĹ‹ôôô¤$‰­­-öQę]Ąą”úŐÚč˝MLL<==ł˛˛¤)ťťťYYY€­[·–——÷÷÷;88xyy•––ööönܸQzý|||°cAÖŻ_ź––ÖĐĐ “É€žžěěíŰ·+**†‡‡÷íŰ—››Ëd2“““ĺâ!“ÉAÚ¶ĆĆĆ~űí·YâGDŃŕůóçŘÇÎÎÎ×ĚĄ’_͢Ąą7ŤF+,,ŚŹŹoooźśśäóů«WŻľ˙ţ_|đ÷÷ĎÉÉٸq#‚ ^^^ŮŮŮ>>>$ A±X, #"" Ćąsçzzz&''ŰŰŰSRR>úč#€APPPbbâđđđ“'O:$‹˙Ű_‰çěŮłb±ÇăI100NHHüä“O”´ł```BĄRž={–’’˘¨«Ň\júU-)˝fÍš_ý•ĂáxzzšššĆĆĆÚŘŘ\¸pđţűďOMMyxxĽ˝˝ÇĆĆüýýÖÖÖ+W®´°°°··Ż¬¬¬¬¬tpp077 ´··ĎÍÍĹŚçćć‰D;;;OOϨ¨¨]»v-Y˛äôéÓžžž®®®AAA«V­’[/]ştI$ŮŰŰŻYłĆŇŇňĚ™3€©©)ąőt||üL%şxń˘±±±ťťÝ¶mۢ˘˘H$ŇëÔRżZBýˇĽĆ*K)ÍÍÍę  űűű±c:ťîŕŕđ9ú'­˛fÂĐĐĐĹĹE‡¨CEEűcÇř|~WWWzz:6ář;ß÷ž'4mxxxůňĺÎÎÎ666Ř„ăďŚ6VY˙—XYYݸqC×Q¨Ţ¦aWpĄaW43#«­­}Í'Í8ŞŇŃŃ!÷Ľ`ž¨ż$W˙ďÚ„@064\Ąë(T###C}™4đŽÇŽ•çç7Đé±6h˘ˇüs€kś‰$t:@§˙®ëX´ \J3Źůü @YŮ}ˇP¬ëp´ \J——ß'`Şľţ±®ĂŃ*)-LßľÝ*‰RVW‘Ň55ʤ=¶H$ůńÇăăSş I›@¤ti)Sö‡!"‘¸Şę‘îÂŃ6°(=2"¨«{,Ë.)‘˛2¦ÎŇ:°(}çK.E"‘0í\î¸NâŃ>°(]R”H”Ü#ެlŐ~0: ĄűűyMMŠwQ--ŐŢďpu JßşŐB ()©D‚2™]}}P<›B鲲߱e´"( nÝ‚˘‡âwdNNÖCC|ěX$’LN .4žý׿´÷—Ýł¬›7[(xůňßşDŰ@Ń{ă\ixŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†\iXŔ•†Ů—}łŮlŮťT˙/ŃÓ320 č:Šżą7ą˙é=',kddäôéÓşŠG#´µµ•””Č%*yŁŤ———6ÂÁŃ.ř8 ¸Ň°€+ ¸Ň°€+ óTşŻŻ/555((Č××7444;;{lllö,ÝÝÝ|đěŇłše``ŕĚ™3ÁÁÁ~~~aaaW®\™šRmG†ŮëîîöV€Á`hĐ…¦Ď{C»şşbcc}||233---»»»óňňbbb˛łł.\8ż8(JUUŐüňΊ˘GŹuwwĎÍÍ566îęę˘ŃhYYYGŽŃ ‰¤fäEŮ™O›>ţĽŻŻ/•JĄP(†††vvv©©©fffß˙}bbâµkׯ^˝ňöö...p8ooďČČHˇPčííÍăńmʶřĐĐĐĘĘĘŔŔŔ   ÚÚZě‚ÉÉÉŚŚŚť;w_ştI,ž?~đŕA??ż¬˛°ěĺĺĺ۶mknnîééŮ·oź………ľľţŞU«¨TęÄÄfP ¤§§c^ňňň°DE˛(ŤA)3•B ¤ĄĄ„††VWWËur*•]UTVZ ´´´Ë&"üË/żlذˇąąŔb±ŚŚŚZ[[­­­+V¬((( ‘Huuu¦¦¦ł»éčč(.. ĘÉÉÁł˛˛¦¦¦ňóó/\¸ĐÚÚJ§Óß}÷ť»»ű­[·"""¤WľzőęéÓ§EEE...¶¶¶§Nťjll¬X±âäÉ“R|>ż   33ó§ź~jhhÉ Ą1¨ZŠŃŃŃ‚‚‚oľů¦´´Tť˛«ŠĘJc{ŇZZZĘĄ/]ş”Ëĺşşş>xđ@,łX¬   H$’ÖÖÖ 6Ľľ‹©©©ČČH###>ź‰DUUUqqq¦¦¦Ë–-‹ŽŽ®©©ěßż?$$„@ ‰Äńń˙î¨!‰˘ŁŁÍÍÍőôôh4š››Űť;wöěŮłwďŢĽĽyň¤ĄĄ%!!A…D¬Ý#˙ŰőĂáD˘?üP. 6›ť’’‚ ě7ŹH$JźÓíرcÇŽ(ж··_ľ|ů«ŻľJNNćp8‰ÄĘĘ »ĚÉÉ ;Pjpö”ŽÓÝÝÝJK!ëT®U-»Ş¨¬´‘‘‘‹‹KyyyLL –RRRňŢ{ď•——oÚ´ ŕęęÚĐĐŔáp(Š‹‹ Ávtt|ůňĺkş@d·µ°hŃ"==˝›7oľńĆ€ÉÉIŹÇăńŇÓÓsrrVŻ^ÝŮŮŮÔÔ$—=##٧§'##K´··ŹŽŽNJJ †††0E›šš„BáÚµk•ś%†YfňJKčďďÇ4îëë›wŮg®Ľ™ĎŚŚJĄVUUŃh´/^LOOŹŹŹGDDJŰŘŘ\ştitt”JĄnßľ˝ŞŞjçÎťd2ବ đî»ď …BgggŔŰoż=11 Ň‹/¶¶¶  …ÉpîÜą9ť>|X,GDDDFF.Z´h˙ţýfff‘‘‘T*őŔ›7o^ľ|ąÜóVGGÇÔÔÔ{÷îEFF?~śBˇ$&&bg Bxxx||üÖ­[7oŢ<§AĹ€˛qšFŁÍTŠřřř ěŮł'))ÉßßźH|­>U©_UůÓî ׯ_ ©««›‡ˇéééîîî•+WÎ#/ Qwt User's Guide: QwtPickerDragRectMachine Class Reference
QwtPickerDragRectMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerDragRectMachine:

List of all members.

Public Member Functions

virtual CommandList transition (const QwtEventPattern &, const QEvent *)
- Public Member Functions inherited from QwtPickerMachine
virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const

Additional Inherited Members

- Public Types inherited from QwtPickerMachine
enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList
- Protected Member Functions inherited from QwtPickerMachine
 QwtPickerMachine ()

Detailed Description

A state machine for rectangle selections.

Pressing QwtEventPattern::MouseSelect1 selects the first point, releasing it the second point. Pressing QwtEventPattern::KeySelect1 also selects the first point, a second press selects the second point and terminates the selection.

See also:
QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
qwt5-5.2.3/doc/html/functions_0x73.html0000644000175000017500000014313112052741151017150 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- s -

qwt5-5.2.3/doc/html/class_qwt_compass_rose-members.html0000644000175000017500000000716612052741137022577 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCompassRose Member List

This is the complete list of members for QwtCompassRose, including all inherited members.

draw(QPainter *painter, const QPoint &center, int radius, double north, QPalette::ColorGroup colorGroup=QPalette::Active) const =0QwtCompassRosepure virtual
palette() const QwtCompassRoseinline
setPalette(const QPalette &p)QwtCompassRoseinlinevirtual
~QwtCompassRose() (defined in QwtCompassRose)QwtCompassRoseinlinevirtual
qwt5-5.2.3/doc/html/class_qwt_spline.html0000644000175000017500000004677712052741143017754 0ustar gudjongudjon Qwt User's Guide: QwtSpline Class Reference

#include <qwt_spline.h>

List of all members.

Public Types

enum  SplineType {
  Natural,
  Periodic
}

Public Member Functions

 QwtSpline ()
 QwtSpline (const QwtSpline &)
 ~QwtSpline ()
const QwtArray< double > & coefficientsA () const
const QwtArray< double > & coefficientsB () const
const QwtArray< double > & coefficientsC () const
bool isValid () const
QwtSplineoperator= (const QwtSpline &)
QPolygonF points () const
void reset ()
bool setPoints (const QPolygonF &points)
void setSplineType (SplineType)
SplineType splineType () const
double value (double x) const

Protected Member Functions

bool buildNaturalSpline (const QPolygonF &)
bool buildPeriodicSpline (const QPolygonF &)

Protected Attributes

PrivateData * d_data

Detailed Description

A class for spline interpolation.

The QwtSpline class is used for cubical spline interpolation. Two types of splines, natural and periodic, are supported.

Usage:
  1. First call setPoints() to determine the spline coefficients for a tabulated function y(x).
  2. After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling QwtSpline::value().
Example:
#include <qwt_spline.h>
QPolygonF interpolate(const QPolygonF& points, int numValues)
{
QwtSpline spline;
if ( !spline.setPoints(points) )
return points;
QPolygonF interpolatedPoints(numValues);
const double delta =
(points[numPoints - 1].x() - points[0].x()) / (points.size() - 1);
for(i = 0; i < points.size(); i++) / interpolate
{
const double x = points[0].x() + i * delta;
interpolatedPoints[i].setX(x);
interpolatedPoints[i].setY(spline.value(x));
}
return interpolatedPoints;
}

Constructor & Destructor Documentation

QwtSpline::QwtSpline ( const QwtSpline other)

Copy constructor

Parameters:
otherSpline used for initilization

Member Function Documentation

bool QwtSpline::buildNaturalSpline ( const QPolygonF &  points)
protected

Determines the coefficients for a natural spline.

Returns:
true if successful
bool QwtSpline::buildPeriodicSpline ( const QPolygonF &  points)
protected

Determines the coefficients for a periodic spline.

Returns:
true if successful
const QwtArray< double > & QwtSpline::coefficientsA ( ) const
Returns:
A coefficients
const QwtArray< double > & QwtSpline::coefficientsB ( ) const
Returns:
B coefficients
const QwtArray< double > & QwtSpline::coefficientsC ( ) const
Returns:
C coefficients
QwtSpline & QwtSpline::operator= ( const QwtSpline other)

Assignment operator

Parameters:
otherSpline used for initilization
QPolygonF QwtSpline::points ( ) const

Return points passed by setPoints

bool QwtSpline::setPoints ( const QPolygonF &  points)

Calculate the spline coefficients.

Depending on the value of periodic, this function will determine the coefficients for a natural or a periodic spline and store them internally.

Parameters:
pointsPoints
Returns:
true if successful
Warning:
The sequence of x (but not y) values has to be strictly monotone increasing, which means points[i].x() < points[i+1].x(). If this is not the case, the function will return false
void QwtSpline::setSplineType ( SplineType  splineType)

Select the algorithm used for calculating the spline

Parameters:
splineTypeSpline type
See also:
splineType()
QwtSpline::SplineType QwtSpline::splineType ( ) const
Returns:
the spline type
See also:
setSplineType()
double QwtSpline::value ( double  x) const

Calculate the interpolated function value corresponding to a given argument x.

qwt5-5.2.3/doc/html/class_qwt_counter.html0000644000175000017500000012144212052741164020123 0ustar gudjongudjon Qwt User's Guide: QwtCounter Class Reference

#include <qwt_counter.h>

Inheritance diagram for QwtCounter:

List of all members.

Public Types

enum  Button {
  Button1,
  Button2,
  Button3,
  ButtonCnt
}

Signals

void buttonReleased (double value)
void valueChanged (double value)

Public Member Functions

 QwtCounter (QWidget *parent=NULL)
virtual ~QwtCounter ()
bool editable () const
int incSteps (QwtCounter::Button btn) const
double maxVal () const
double minVal () const
int numButtons () const
virtual void polish ()
void setEditable (bool)
void setIncSteps (QwtCounter::Button btn, int nSteps)
void setMaxValue (double m)
void setMinValue (double m)
void setNumButtons (int n)
void setStep (double s)
void setStepButton1 (int nSteps)
void setStepButton2 (int nSteps)
void setStepButton3 (int nSteps)
virtual void setValue (double)
virtual QSize sizeHint () const
double step () const
int stepButton1 () const
int stepButton2 () const
int stepButton3 () const
virtual double value () const
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void fitValue (double)
virtual void incPages (int)
virtual void incValue (int)
bool isValid () const
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setValid (bool)

Protected Member Functions

virtual bool event (QEvent *)
virtual void keyPressEvent (QKeyEvent *)
virtual void rangeChange ()
virtual void wheelEvent (QWheelEvent *)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()

Detailed Description

The Counter Widget.

A Counter consists of a label displaying a number and one ore more (up to three) push buttons on each side of the label which can be used to increment or decrement the counter's value.

A Counter has a range from a minimum value to a maximum value and a step size. The range can be specified using QwtDblRange::setRange(). The counter's value is an integer multiple of the step size. The number of steps by which a button increments or decrements the value can be specified using QwtCounter::setIncSteps(). The number of buttons can be changed with QwtCounter::setNumButtons().

Holding the space bar down with focus on a button is the fastest method to step through the counter values. When the counter underflows/overflows, the focus is set to the smallest up/down button and counting is disabled. Counting is re-enabled on a button release event (mouse or space bar).

Example:

#include "../include/qwt_counter.h>
cnt = new QwtCounter(parent, name);
cnt->setRange(0.0, 100.0, 1.0); // From 0.0 to 100, step 1.0
cnt->setNumButtons(2); // Two buttons each side
cnt->setIncSteps(QwtCounter::Button1, 1); // Button 1 increments 1 step
cnt->setIncSteps(QwtCounter::Button2, 20); // Button 2 increments 20 steps
connect(cnt, SIGNAL(valueChanged(double)), my_class, SLOT(newValue(double)));

Member Enumeration Documentation

Button index


Constructor & Destructor Documentation

QwtCounter::QwtCounter ( QWidget *  parent = NULL)
explicit

The default number of buttons is set to 2. The default increments are:

  • Button 1: 1 step
  • Button 2: 10 steps
  • Button 3: 100 steps
Parameters:
parent

Member Function Documentation

void QwtCounter::buttonReleased ( double  value)
signal

This signal is emitted when a button has been released

Parameters:
valueThe new value
bool QwtCounter::event ( QEvent *  e)
protectedvirtual

Handle PolishRequest events

int QwtCounter::incSteps ( QwtCounter::Button  btn) const
Returns:
the number of steps by which a specified button increments the value or 0 if the button is invalid.
Parameters:
btnOne of QwtCounter::Button1, QwtCounter::Button2, QwtCounter::Button3
void QwtCounter::keyPressEvent ( QKeyEvent *  e)
protectedvirtual

Handle key events

  • Ctrl + Qt::Key_Home Step to minValue()
  • Ctrl + Qt::Key_End Step to maxValue()
  • Qt::Key_Up Increment by incSteps(QwtCounter::Button1)
  • Qt::Key_Down Decrement by incSteps(QwtCounter::Button1)
  • Qt::Key_PageUp Increment by incSteps(QwtCounter::Button2)
  • Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button2)
  • Shift + Qt::Key_PageUp Increment by incSteps(QwtCounter::Button3)
  • Shift + Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button3)
int QwtCounter::numButtons ( ) const
Returns:
The number of buttons on each side of the widget.
void QwtCounter::polish ( )
virtual

Sets the minimum width for the buttons

void QwtCounter::rangeChange ( )
protectedvirtual

Notify change of range.

This function updates the enabled property of all buttons contained in QwtCounter.

Reimplemented from QwtDoubleRange.

void QwtCounter::setEditable ( bool  editable)

Allow/disallow the user to manually edit the value.

Parameters:
editabletrue enables editing
See also:
editable()
void QwtCounter::setIncSteps ( QwtCounter::Button  btn,
int  nSteps 
)

Specify the number of steps by which the value is incremented or decremented when a specified button is pushed.

Parameters:
btnOne of QwtCounter::Button1, QwtCounter::Button2, QwtCounter::Button3
nStepsNumber of steps
void QwtCounter::setMaxValue ( double  value)

Set the maximum value of the range

Parameters:
valueMaximum value
See also:
setMinValue(), maxVal()
void QwtCounter::setMinValue ( double  value)

Set the minimum value of the range

Parameters:
valueMinimum value
See also:
setMaxValue(), minVal()
void QwtCounter::setNumButtons ( int  n)

Specify the number of buttons on each side of the label.

Parameters:
nNumber of buttons
void QwtCounter::setStep ( double  stepSize)

Set the step size

Parameters:
stepSizeStep size
See also:
QwtDoubleRange::setStep()

Reimplemented from QwtDoubleRange.

void QwtCounter::setStepButton1 ( int  nSteps)

Set the number of increment steps for button 1

Parameters:
nStepsNumber of steps
void QwtCounter::setStepButton2 ( int  nSteps)

Set the number of increment steps for button 2

Parameters:
nStepsNumber of steps
void QwtCounter::setStepButton3 ( int  nSteps)

Set the number of increment steps for button 3

Parameters:
nStepsNumber of steps
void QwtCounter::setValue ( double  v)
virtual

Set a new value.

Parameters:
vnew value Calls QwtDoubleRange::setValue and does all visual updates.
See also:
QwtDoubleRange::setValue()

Reimplemented from QwtDoubleRange.

double QwtCounter::value ( ) const
virtual
Returns:
Current value

Reimplemented from QwtDoubleRange.

void QwtCounter::valueChanged ( double  value)
signal

This signal is emitted when the counter's value has changed

Parameters:
valueThe new value
void QwtCounter::wheelEvent ( QWheelEvent *  e)
protectedvirtual

Handle wheel events

Parameters:
eWheel event
qwt5-5.2.3/doc/html/class_qwt_plot_rescaler-members.html0000644000175000017500000003252412052741142022730 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotRescaler Member List

This is the complete list of members for QwtPlotRescaler, including all inherited members.

aspectRatio(int axis) const QwtPlotRescaler
canvas()QwtPlotRescaler
canvas() const QwtPlotRescaler
canvasResizeEvent(QResizeEvent *) (defined in QwtPlotRescaler)QwtPlotRescalerprotectedvirtual
eventFilter(QObject *, QEvent *)QwtPlotRescalervirtual
ExpandBoth enum value (defined in QwtPlotRescaler)QwtPlotRescaler
ExpandDown enum value (defined in QwtPlotRescaler)QwtPlotRescaler
Expanding enum value (defined in QwtPlotRescaler)QwtPlotRescaler
expandingDirection(int axis) const QwtPlotRescaler
ExpandingDirection enum name (defined in QwtPlotRescaler)QwtPlotRescaler
expandInterval(const QwtDoubleInterval &, double width, ExpandingDirection) const QwtPlotRescalerprotected
expandScale(int axis, const QSize &oldSize, const QSize &newSize) const QwtPlotRescalerprotectedvirtual
ExpandUp enum value (defined in QwtPlotRescaler)QwtPlotRescaler
Fitting enum value (defined in QwtPlotRescaler)QwtPlotRescaler
Fixed enum value (defined in QwtPlotRescaler)QwtPlotRescaler
interval(int axis) const QwtPlotRescalerprotected
intervalHint(int axis) const (defined in QwtPlotRescaler)QwtPlotRescaler
isEnabled() const QwtPlotRescaler
orientation(int axis) const QwtPlotRescalerprotected
plot()QwtPlotRescaler
plot() const QwtPlotRescaler
QwtPlotRescaler(QwtPlotCanvas *, int referenceAxis=QwtPlot::xBottom, RescalePolicy=Expanding)QwtPlotRescalerexplicit
referenceAxis() const QwtPlotRescaler
rescale() const QwtPlotRescaler
rescale(const QSize &oldSize, const QSize &newSize) const QwtPlotRescalerprotectedvirtual
RescalePolicy enum nameQwtPlotRescaler
rescalePolicy() const QwtPlotRescaler
setAspectRatio(double ratio)QwtPlotRescaler
setAspectRatio(int axis, double ratio)QwtPlotRescaler
setEnabled(bool)QwtPlotRescaler
setExpandingDirection(ExpandingDirection)QwtPlotRescaler
setExpandingDirection(int axis, ExpandingDirection)QwtPlotRescaler
setIntervalHint(int axis, const QwtDoubleInterval &) (defined in QwtPlotRescaler)QwtPlotRescaler
setReferenceAxis(int axis)QwtPlotRescaler
setRescalePolicy(RescalePolicy)QwtPlotRescaler
syncScale(int axis, const QwtDoubleInterval &reference, const QSize &size) const QwtPlotRescalerprotectedvirtual
updateScales(QwtDoubleInterval intervals[QwtPlot::axisCnt]) const QwtPlotRescalerprotectedvirtual
~QwtPlotRescaler()QwtPlotRescalervirtual
qwt5-5.2.3/doc/html/class_qwt_picker__inherit__graph.md50000644000175000017500000000004012052741140022623 0ustar gudjongudjon23bdcba1d28e75cf3d578df9e01f0b92qwt5-5.2.3/doc/html/qwt__symbol_8h_source.html0000644000175000017500000003362412052741135020704 0ustar gudjongudjon Qwt User's Guide: qwt_symbol.h Source File
Qwt User's Guide  5.2.3
qwt_symbol.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SYMBOL_H
11 #define QWT_SYMBOL_H
12 
13 #include <qbrush.h>
14 #include <qpen.h>
15 #include <qsize.h>
16 #include "qwt_global.h"
17 
18 class QPainter;
19 class QRect;
20 
22 class QWT_EXPORT QwtSymbol
23 {
24 public:
29  enum Style
30  {
31  NoSymbol = -1,
32 
33  Ellipse,
34  Rect,
35  Diamond,
36  Triangle,
37  DTriangle,
38  UTriangle,
39  LTriangle,
40  RTriangle,
41  Cross,
42  XCross,
43  HLine,
44  VLine,
45  Star1,
46  Star2,
47  Hexagon,
48 
49  StyleCnt
50  };
51 
52 public:
53  QwtSymbol();
54  QwtSymbol(Style st, const QBrush &bd, const QPen &pn, const QSize &s);
55  virtual ~QwtSymbol();
56 
57  bool operator!=(const QwtSymbol &) const;
58  virtual bool operator==(const QwtSymbol &) const;
59 
60  virtual QwtSymbol *clone() const;
61 
62  void setSize(const QSize &s);
63  void setSize(int a, int b = -1);
64  void setBrush(const QBrush& b);
65  void setPen(const QPen &p);
66  void setStyle (Style s);
67 
69  const QBrush& brush() const { return d_brush; }
71  const QPen& pen() const { return d_pen; }
73  const QSize& size() const { return d_size; }
75  Style style() const { return d_style; }
76 
77  void draw(QPainter *p, const QPoint &pt) const;
78  void draw(QPainter *p, int x, int y) const;
79  virtual void draw(QPainter *p, const QRect &r) const;
80 
81 private:
82  QBrush d_brush;
83  QPen d_pen;
84  QSize d_size;
85  Style d_style;
86 };
87 
88 #endif
qwt5-5.2.3/doc/html/class_qwt_legend_item__inherit__graph.png0000644000175000017500000000622012052741154023734 0ustar gudjongudjon‰PNG  IHDRxpZU#čbKGD˙˙˙ ˝§“ EIDATxśíť{L[ŐŔĎĹ–ARč l([: fâ†ŕÔ…a:#Ž㕌‡›‹h@ U2ăc¸ÝLŠ0eΆ&uPpn,qŔŹ bFÂZĆ@aťBx—>ˇëóŢß÷÷»v¬ĘşÓužĎ_÷ž{î÷|ůpďą=‡r.F@ÜÜśťŔż$H4$hHĐlëéé9xđ ´T\ťŇŇŇçž{n©ŁŤOééé===۶m»?‰=T˘ęęę–Ş`ëŠŘ>A‘žžn»ęŁ!DC‰† $Ž-•Jsrr‚‚‚ÜÝÝ7nÜXTT¤T*mź244äááAncÖXyëT(Ë+oÝQ5măŃĎ>ű,“ÉlooW( ţůç¶mŰ–uMAAkÖ¬!ţĎ˝'ö@áŃYYYUUUaaa^^^[·nmjj (--ĺńxÇŽLLL`öĹ_¦¦¦0 ×ëő†Éd2ÁŢzë-‡\\\l2™Ş««·lŮb2™€Çă-j`` &&ĆÓÓsÆ µµµTyEE‡Ă |çťwôz˝ŐćîÝÉ˝ŠV«Őííí|>߲ðÂÂÂłgĎĆÇÇ_şt ĐŐŐĹd2;::›7o¦®ßµk×ÚĎçóµZíŔŔ@ggggggUUU^^‹Ĺ:věŘŐ«Wëęęęęę– őńÇďÚµKˇP|ňÉ'ĹĹĹdˇ^Żommíďďokk»páÂŃŁG­6wŹ~ţXš´´´´´4‚Á0Ěh4.*ďëëóńńą~ýşŹŹŹŃhĚĎĎ˙裏L¦Édzűí·8°¨Ł¸»ë Â`0ĐétĄRIî¶µµEEEqóćM6›zîÜ9ËďŽ@răĆŤ……ŁŃXSSCŐŚŚŚ„BaXXŐć–ŠiŻ«e†ŕË€aŘčč(—˵, Š`±X˝˝˝]]]BˇP(öőőutt|óÍ7+ >99i4Y,–es.—ĺĘ•W_}u%q~˙ý÷¬¬, Ă{ě1ŞĐÍÍŤĘů‰'žžž^Ş9‡pŻ]“ÉŚŤŤ­¬¬¤JĘËËoÝşUYY™””xĺ•W§¦¦ÂĂĂwěŘ!‰ĆÇÇźţů•çp8Ź<ňu‰ÍĎĎ_˝zĐŰŰŰŢŢÎfł-Ű] ™LöĆoś8q˘···´´”*ÇqüŻżţ"·GFFBBB–jÎ1ÜËí@200Ŕfłů|ţĐĐĐíŰ·KJJčtz@@ŔÜÜAŤŤŤŢŢŢŻ˝öAµµµŢŢŢ)))A Ńh4Á@űz“fdděÝ»wvvvzz:11±°°P§Ó=ůä“"‘H"‘°X¬[·nQˇČ fff0 ëëë›››ËÉɡŃhJĄrppĐÍÍ-11qffćúő롡ˇ_~ůĄŐćŐu8@4A7oŢĚÎÎćp8îîî\.W DEE•””ˇV«étzYYAccc€“'OˇŃhÂÂÂ|||Čß±„h…B‘ťťÍfłŮlöţýűµZmqqqrr2yôĂ?äńxT¨+W®,şŚöěŮCħź~Ęd27mÚtćĚ™đđpŹ788¸iӦÇűűű}đÁ&“ÉjsŽ˝Ě|4`uÓ¤:ťnhh(22rçş"Ëşş_CpŹŹĺ•€ć: DC‰† $H4$–™ëJĄß}÷śT\©Tşh¶g163eee°ň´w÷uîîëśť…ĘËËW92|1›ń§ź.H$‡ÝÜěřs—Óq±>ş§gD._Ëç»»Gśť‹}¸čúú^ÍŤNw«ŻwÜ&\I´Ng<^l2™ŤFüüy±NgtvFvŕJ˘ŰÚ)ą:ť±­mĐąůŘ…+‰nh襾ďaXCCŻsó± —­VëZ[oÍ8ąk6ă­­7ÔjťsłZ9.#ú·ßúqüŽO˘8N\¸Đď¬|ěĹeD‹D˝‹>ń!ąLďá˘gg5ÝÝĂ8Ž[â8ŃÝ=<;«qVVvᢛš®YbÖÔ$†źĎ*p Ńuu˝‹:hÇ]eäâ˘ÇÇÉآX<61±ŇŻ­:‘{ýJĽĽÖ„†rÔęŰä.9fńđ “»ľľ ĂÝiÉ­›˝äĺťś8‘ëěDěĂşŽ‡$H4$hH Ń@˘!DC‰† $H4$hH Ń@˘!DC‰† $H4$hH Ń@˘!DC‰† $H4$hH Ń@˘!DC‰† j厕,¨ú @Ł­ĄŃl-9ýŕPYYiea”ôôô´´4ç&÷ĐP__A-˘yÇ? îرà I=ŚËżS >H4$hH Ń@˘!±Ń“““GŽIIIŮąsgffćńăÇçççmź2::úňË/[nŔçî`&c·čż˙ţ;//ŹÁ`|őŐWçÎť;|řđŘŘX~~ţ˛®˙ĺŘ-ş˘˘bçÎť|>?$$ÄĂĂ#44ôČ‘#,«¶¶ö˝÷Ţ;}ú4`nn...N(äry\\\nn®ŃhŚ‹‹S©TVĂętşňňňäääÔÔÔęęjłŮ ĐjµGŹMLLĚĚĚliiˇ®ľ»+ŹŽŽfff655%%%Ą¤¤\Ľx‘¬©Ńh:”‘‘ŃŢŢn٢JĄ˛Ěj©uuu‰‰‰ÉÉÉ­­­?üđCBBBrrrssł˝Ţě­ŐjŻ]»–ššjYaXjjjwwwLLL__@"‘0 ±X ‹Ĺ\.÷Ô©St:ýŇĄKľľľV#WVVęőúšššŻżţZ,˙ňË/dˇFŁ9uęTYY™H$˛]Y©TJĄRˇP’’ňí·ß’5ËĘĘÔj5|™…ŻŻŻeVVcĘd2…BqúôéÝ»wţůçFٱľľ~÷îÝ«X×>Ńä Ý•Ż[·NˇPDGG÷÷÷›Íf‰D’’’Ňßߏă¸X,މ‰±Öd2577żűľľëׯóÍ7[[[M&SKKKAAźź_pppvv¶ŤĘ˝^ź››Ë`0¶oß®V«ˇłłł¨¨Íf?účŁ{÷îµ+ŽăűöíóôôÜľ};€Ú&ăŰ…}ëuŻ7š™™Y·îŽőne2™żż˙ĆŤ˝˝˝˙řă‰DrđŕÁ‹/_»v­¨¨ČvXą\n2™,’Ëĺ8Ž‘%T‹V+h4y»Pkă) @pp0ą»~ýz» cŇét2¦ĺ¶íÇ*ö‰f0‘‘‘ŤŤŤůůůdI}}ý‹/ľŘŘŘř /˘ŁŁ»şşäryHHHdddGG‡L&‹°ÖĎĎĎÍÍíěŮł^^^ťN§R©üüüSSS¤âÉÉI•É×ě- Ëfł¤k*  _Ľç(ě~ňůüćććŞŞŞ±±1Á°°°““3<<ĽgĎ@ttôŻżţúÔSOayćĚ™-[¶Đh4 Ăp§^8o^ݧÓé±±±ÇŹW©TJĄ˛´´T$Ńéô—^z©ŞŞJˇPLLLüôÓO¤J«•­¦JŁŃbcc+**ćććĆÇÇüńÇE¨¬VsŐŘ-zÆ ŐŐŐŤ†ĎçďÚµ«ąą999™Ăá444¶nÝj47oŢ xć™gnßľMvĐk×® NJJŇh4FŁń?o–fł9'''77×ĎĎo˙ţý€ÂÂBOOϬ¬¬ÄÇÇÓh˙»˙¬V¶Š@ đöö~ýő×AFFĆ˘Ł–Y­<ćę¸c>zvv¶¤¤dQ ĂčččăŹ?îĐÜ@KKKTTه\ľ|ůű￯©©ql÷ŹC‡PóŃŽ‚»»»;Ü2ŕňĺË'OžÔjµÓÓÓ?˙ü3ůpQčą>źŻR©ŇŇŇöíŰÇápČÇ€‹ň@/Çćďď˙Ůgź9; Çđ@_ŃH4$hH Ѹăa(‹ß˙}gĄň!•Jy<µűŹhjúá¸\nAAµëz‹Ŕş(¨Ź† $H4$ţ CL[—MĂ!IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_rich_text_engine__inherit__graph.png0000644000175000017500000000675612052741160025011 0ustar gudjongudjon‰PNG  IHDRp~`nmbKGD˙˙˙ ˝§“ ŁIDATxśíťiPSWÇĎĹ ‚,ŇĘ8TĐR´ştZ l­]$µCaZ–hë´«};VZ­E‰B±Ă€tŞ@Ą:•EŮ:-t A … DÁ BÂMrß÷}ÓČeŘnz~źČá>ĎůźóĎąçnąÁ0 @ČÉj €F2 a$F2(D¤RiBB‚X,^5˙* Ć™3gh4ˇ(†ýüóĎĄĄĄqqqD!Z”””DGGżúę«„˘†SZZş¸@Aç0’ #Đ0’ #Đ0’±Ś†ő÷÷ÇÇÇ;::šššşşş¦§§OLLĚŇÓÓcnnŽ˙ŤčĂđÚŐ©zzztóđx>>†ýůçź ĂÝÝý§ź~Âş­ŔËńˇÜŐŐ…o<;;KˇPúűűńä•••ş#Lo”^IóÖÎ۸q#‚ BˇP«|hhČŃŃqëÖ­t:˝­­­ąąůŤ7ްłłkoooll 5$ůČČŠ˘t:?|¸ąą…††˘(¦˘»KtuuššâăĎÄÄDť\ĄRá˙<ňČ#şôFé•´,‹aVVV999ę’ăÇŹ äääDFFvďŢ]QQ!‰<<}šFŁą»»‡……íŰ·ŹJĄŇ^]IÄúËp:lŕÓËĚĚL{{űâbWŚââb‘H„˙]YYéáá±L55Âôbnnîíí˝’5.‚ .|ňÉ'‰dppđ믿Ć'ݵĽ–¨ —Ë{衇ĽĽĽ\\\>ţřăŐVô‹ĽălÄ8::^ĽxqµUĚ a$F2 a$F2yĐ‘źźż´: †BôÄ­««‹čĂŞ+Ź©©“©©Ój«XŤÖÝÝM´˙Ěč~¦TŞü @ řʉÉbÖ\ËáöË/}bń}±xŞĄĄoµµ,=FhXYY…bBĄš”•-Ű=ŽŐĂŘ “ÉĐË—ů …EU—/óe2tµ-1Ćfصk7Ő&Édčµkzž 5ĆfXyy›úŽ0‚ ĺĺm««gÉ1*Ă$Y]]·R©Â?*•Şşşn‰dm …Â^x/źžžĆ—3ŚŽŽ.((Po_UUUWW· T™Lvüřń¨¨¨ŘŘŘĽĽ<ĄRYUU•¨T*§OźÎĚĚśKˇP¸gĎžK—.áb®^˝ŞV••±gĎžÚÚZ\ąş sEéJ"Ôů€¨aÓÓÓ±±±š…‚ÄĆƶ´´řůůµ··……źĎđů|77·˘˘"*•Z__omm­;55U]]˝cÇ­Šrrr$IQQQvvvuuuss3@ˇP ś?>&&&77wAµ999rąĽ°°đäÉ“|>ż˛˛2<<ÜŇҲ¤¤¤§§§ľľţСCs Ódbb˘żż˙ÜąsŃŃŃęzsrr¤RiQQŃ7ß|Ăăń ŹŇ’´`+´ fŘÄÄŔŢŢ^«ÜÉÉi||Ü××·łłS©T ‚čččÎÎN•JĹçóýüü47ĆżŃ8áááW®\ILLÔÜ@ˇPÔÖÖ&''Óét&“yŕŔ|=l ĂŢ~űm ©t·Â*Šššš´´4kkëM›6%&&ÖŐŐ!ňᇖ””>|8##CkŐMa8"‘ —ËY,^ŻD"Q+LII±±±qvvŢ»wŻ®˝Qş’ ëř 6‡ŃétŔÝ»wťśX;hllĚÖÖÖŐŐŐŇŇňÖ­[ŕłĎ>»zőjoooGGGzzşćĆšS…\.ĎĎĎ?zôč·ß~«Ţ@,«T*GGGüă¶mŰBˇBˇŕă@w­r]Äb±Bˇxůĺ—µÄ;99ůůůݸqă©§žŇ Ń;‡é­WKˇVoŕčŤŇ+‰Ä ł°°đöö®¨¨HNNĆKĘĘĘvîÜYQQńěłĎ|}}›››Ĺb1“ÉôöönllŰşuëđđ°Ţ„fffaaa)))š…666€ŃŃQ|(˙úëŻ(Š2™LC|ŇLbbbRUUµaĂ€L&Ăg©[·nuttŘÚÚVTTÄÄÄ’J·^\ˇH$­10JŻ$B>č`łŮ555\.÷öíŰłłł÷ďßŹŹŹďíí}óÍ7ľľľ/^ܶm‚ ŢŢŢ.\رc…BADĄR) Ý„fffrą\súĄR©ąąą“““˙ý÷‰'´Ţ•mT*500đÔ©S“““_|ńŹÇCQôČ‘#)))}ôQaaˇH$šGŘüÉą\îřřřđđđ?ü`Č—IŻ$˘í"l‹‹K^^žT*ełŮ/˝ôRMMMTT”Cyy9ŕ‰'ž@QÔËË °}űö™™|łłłsvvŽŚŚÔť{lmmijjŇ,ĚĚĚ\·nÝŢ˝{9ÎîÝ»ęddd(•Ęřřx‹ecc“PPPŔd2ÜÜÜ"##Ź;¦)Lwărąs%çp8ëׯë­·öďßJˇ´ŻŇ•D´QÚ÷Ă<¸Ű+łłłBˇpóćÍDÉKmm­ŹŹľoĽ~ýú÷ß_XX¸äµ444|ţůçš-ÍĄ)SSÓ•[€ëׯź9sfzzúÎť;çϟǧđ^K\$l6{rr2..îťwŢqppŔ§đŔH^ľňŘÚÚ>|xĺë…#Śd@ĂH4Śd@ĂH†öy››~nY ŚŹŹ÷÷÷Ďů\bVVÖďż˙ľâŞ óˇu+Ă8Ë1bŕF2 a$F2 a$ăż^˛jýŇ7mIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_scale_draw__inherit__graph.png0000644000175000017500000000767412052741160023577 0ustar gudjongudjon‰PNG  IHDRŁpý¤WVbKGD˙˙˙ ˝§“qIDATxśíť{TÇ€'/4 !BÄGEĄ‚XÚŞ h©ÔZ{ÚőĐ >=>QkíŃŠ(Z¬8ž*H@ĹʱhŃZB¤E”GĺJIHÂÎýcOsÓRę IďťýţÚĚÎüć7óevłČ’ „€ČÖN€ŔB¦Q0Ť „iT ężËĺ111ťťťÖʆŔ\,Z´(11Qż„¤˙Ů;'''**jĹŠOŚŔś´´´üüóĎWUÔÁőrrr,•Á€ŻXBâ<Ť „iT LŁaÓ¨đЦŁŁŁÇŽkcc3yňäÍ›7www›nRWWG§ÓőKbbbH$’@ 0QgˇţúÍ›ššx<ŢřńăGŤ5eĘ”;v(•ĘWŽft/éwlmmýýý‹‹‹_9ó˙†W1-‹çÎťëŕŕpçÎť®®.@đřńăŔŔŔ?•­ŹBˇČÉÉ ÎĘĘz…Ě„0$$„ÍfWVVvuu]ľ|ůŢ˝{ńńńćíĹÖÖB!|ńâĹşuë–-[&‹ÍŰŰ€zdgg”%(((>>^żðůóçoٲ%88řČ‘#Âß~ű đŐW_AŰÚÚô{”H$¬¬¬Ůłg×ÖÖŇh´ööv<ŽX,¶µµMIIqqqqvvţěłĎT*„0''gÚ´it:}ĆŚú—űĄĄĄ“&M:qâÁ‹ĹŹ=  Óé'33ŹŮÓÓłfÍ‹ĹfłwíÚ%‘HtÍ«««I$’R©Ô ¤¦¦fŐŞUFâ…»ŔsĆ÷ööö®_żŢĹĹeܸq۶mÓh4ú{qâăăy<ŢĐtňCM&‰Djmm5!ȨǿlZ&“‘Éä§Oź” ‚)S¦|ýőסˇˇÂK—.988,Y˛ßž5k–Áą\î©S§ „ţţţ)))x!ţf_ştéË—/E"‘§§gRR’L&ŁŃhĹĹĹ*•*--ÍĂĂCJ,ŰŘج]»¶­­ B±oß>ĄR™žžîââ‚Ç\˝zuxxx{{»X,ž8qb^^ž®ąV«őńń ÍĎĎ—JĄ#ÜĐhúăZ·nŹÇ“H$ ÇŽlúćÍ›ŢŢŢĂIŢÄdšvdÓ $IŁŃ”WUUŮŰŰ?zôČŢŢ^ŁŃÄĹĹíÜąÓÁÁA«Őnܸ111QĚĎž=c02™ Bšš:gÎĽ7ÝĐĐ€żĽxń˘——Wgg§­­mVV–BˇŔ0LĄRé›č żţúk__źFŁÉČČŔ+¨Őj*•Ş{_Ţ»wݞ˛R?™Lvňäɰ°0‹ĺíí˝k×®ľľľˇíBM­VÓh´îînĽÉ?üŕďď?ŘtuuµŁŁăp’71™¦Ťěšľ~ýş§§'„pâĉ<5kVmm­»»{EEĹôéÓďÜąŁ?椤$*•ĘfłŮl¶““@$á'“ɆáŐ>|Čd2!„·nÝz÷Ýw‚ËËË Ö´.‡óçĎĎ™3ÇĎĎ/""ŻĐÔÔ¤gđěC1 +// ŠŞˇŃ.tŃššš ÎŚÎÎÎş¦MD61™¦™Ç4„ËĺnÚ´I÷ňčŃŁŤŤŤ!!!۶m~úé§Ű·owqqÁ0líÚµ‰‰‰ŁGŹV«Őş1cććć–žžŢö;ÁÁÁx[ümŢŘŘGÎÉÉ™={¶R©,//‡ŞTŞ/żüŇÍÍMß´nR$ ™L®¨¨€ŠD"Ľ\ĄR‘ÉäććfĽÎ÷ßźźźŻkµ~ýú   ýˇ•——łX¬ˇíBMĄRQ(Ýšîíí}ţüąŃó4źĎNň&&Ó´ ł™®­­e±X uuuJĄrďŢ˝4ÍŮŮ?Őĺĺĺ1 |edee1ŚĺË—Cëęę¨TŞZ­.))±łłëííŐLOOwuuŐjµřš kooôčŃÔ©SŹ;ÖŰŰË`0ĘĘĘT*Urr˛···.”ţdµ··“H¤ŞŞ*©TMĄRńIŹŚŚ\±b…D"yüř±››[nn®®ůýű÷)Ę‘#GZZZ”Je]]]xxřęŐ«ń€íB?‡¨¨¨5kÖH$’—/_†……mÚ´IoGGÇ7ß|Ă`0ęëë L•üP“i!Ó§Oźňx<6›mccăîîľeË˙˝{÷B{zzh4ÚŃŁG!„---€ôôtˇ\.÷ňň˛··˙ࢢ˘ôŁuttP©ÔÂÂB±Xěáá±˙~''§±cÇ~ţůçZ­Bxţüy‡C§ÓçÎť[VV¦ u˙ţ}ý“””äŕŕŕááqĺĘooďE‹AĄRéG}Äd2]]]÷ď߯ź‰T*-,,\¸p!Á5jÔ´iÓűűűńhíB_XWWŹÇc±X,+&&FˇPč_PŃh4??żŰ·oă• –»Ń䇚LÓÓô`”JeUUŐ«µ%0/F=šín(ťN÷őő5W4łCÜ÷FÂ4*¦Q0Ť „iT LŁ‚‘ż>sćŚĺó 0#żüň‹‘Rý‹ëÚÚZ{{{‹'fQ({:ÝÓÚYŚ8wNţđ?(°cG^FFi~ţ?ćÍs·v.­ó´V‹ĺçWňóŤßţŻAËôÝ»u==J€@đPٰv:-Óyy) @ˇčżs§ÎÚéX„L+ę7„Zí€B! hŔ2]\\«;bkµŘ?˙)ęëë·nJ–!Óąą•$Ň^jµEEµÖKÇŇ bş»[QRR70 II*­–ĹAĹtaaŤA †awďÖwuőY%ËŠéË—+1ĚČ=˘ë×…–OĆ* aú_˙’••5ľ!ĚÍ­°JJ– ÓŐŠ‘‘b¬¬ljkű ˙8řż ¦‚_đËčÁ@ 8€ůÖň˙źńIľ­Őb*•†Á°Őíőđp¶R^ąď˛®]«Ţ°!óĹ‹cÖNÄŇ qô&„it LŁaÓ¨@FÂ4*¦Q0Ť „iT LŁaÓ¨@FÂ4*¦Q0Ť „iT LŁaÓ¨@FÂ4*¦Q0Ť „iT LŁaÓ¨@FÂ4*¦Q0Ť f[jj޵Çd 2ŮÎÖ–cí,Láčč(‹ÍîĹüżsňăŹ?Nź>}ĹŠfŹŚűöí«©©ńňň2oŘůE—wŢyg$"ŁŔľ}űF",qžFÂ4*¦Q0Ť „iT°ćŻI¶µµeddTTTČĺr‹5ţ|>źĎ`0L4innމ‰)**Ľ|ůňěŮł>”ËĺcĆŚárą<ĎÖÖÖDsŃŚîĺóůř6•JuwwŹŤŤőóó~üżV[ÓMMMëׯ·łłKII)((ŘżKKK\\\ooďpšC·oßÎd2żýöŰ‚‚‚¤¤$‘Hdö›64­¤¤¤¤¤D „††îŢ˝»©©ÉĽ]X «™>~üřâĹ‹8ťNź:uęˇC‡ł˛˛¶nÝšťť JĄ\.÷âĹ‹€ÎÎN.—Ëçó5 —Ëmlllmm]·n‹Ĺ˛±±ńôôLHHP*•xp…BqřđáđđđĺË—ź;w/|ţüůĆŤCBB˘˘˘Żc•J•śśĽlٲČČČÓ§O üá·ÂĂĂ—,YňÝwßš››W­Z•——ÚÜÜ<8ňPC ęččщ ëV(ŐŐŐ‘‘‘ú…$)22ň§ź~š7o^UU ¦¦ĆÎÎN(„Bˇ»»{ff&ľÎÜÜÜ&OžĽgĎž{÷îÉĺr€»»űîÝ»ńP©©©===™™™)))7oŢ,--ś={600°   :::--Í ĄÔÔÔţţţŚŚŚ'N…ÂüüüÁiÖ××ăŰR©´ˇˇáÂ… gp䡆ŕćć6fĚ3Îäđ±Žéîîn€‹‹‹Aą««kWWW@@€H$¨©©Yľ|ąH$Â0L(Λ7OW“L&źL&“L&_»víµ×^¨T*™L†!ôyđŕî‹ŇďĎŢ’ÉdF#5łOć0±Ú'˛„„„˘˘˘“'O¶´´¨Őęľľľččč'Ož|üńÇ€€€€«WŻúřřH$__ß+W®Ě™3‡JĄ’H$ Ă´ZmHHP(ĚÎΖH$jµşĄĄĺÂ… oľů&€FŁ-X° --M&“µ¶¶?~Ă0!€BˇČĺňK—.a¦§Ńh .pŕ@nn®~¶===WŻ^ĹĎ*ňPCáy«™ž4iŇéÓ§ĺryBBÂűďż_TT´lŮ26›-~~~ŤfÖ¬Y€×_]©Tâg¸1cĆŚ?><<śĂá:tčÁ|>?,,lçÎťgëÖ­xđ­[·R(Ź·iÓ¦÷Ţ{oÁ‚ŽŽŽ|>?!!aÆ ,0aÂŢ˝{őóٲeËŔŔ@tt4źĎg2™111üs>—ËýđĂoܸqđŕÁ & d¨ČC ÁZ˙é +W®”H$ó8LÔjussó”)SĚ›Ň˙\.7;;{ĺĘ•ć ű÷şjcc¸ć‘ăďeš`ä LŁaÓ¨@FÂ4*ŚČ-ˇP¸m۶‘LđĘß´îV6Á«1sćĚĹ‹›=,rO0Eâ<Ť „iT LŁaţ <˛®ĂN%IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_compass_magnet_needle-members.html0000644000175000017500000001532312052741137024410 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCompassMagnetNeedle Member List

This is the complete list of members for QwtCompassMagnetNeedle, including all inherited members.

draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const QwtCompassMagnetNeedlevirtual
drawKnob(QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)QwtDialNeedleprotectedstatic
drawPointer(QPainter *painter, const QBrush &brush, int colorOffset, const QPoint &center, int length, int width, double direction)QwtCompassMagnetNeedleprotectedstatic
drawThinNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)QwtCompassMagnetNeedlestatic
drawTriangleNeedle(QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)QwtCompassMagnetNeedlestatic
palette() const QwtDialNeedle
QwtCompassMagnetNeedle(Style=TriangleStyle, const QColor &light=Qt::white, const QColor &dark=Qt::red)QwtCompassMagnetNeedle
QwtDialNeedle()QwtDialNeedle
setPalette(const QPalette &)QwtDialNeedlevirtual
Style enum nameQwtCompassMagnetNeedle
ThinStyle enum value (defined in QwtCompassMagnetNeedle)QwtCompassMagnetNeedle
TriangleStyle enum value (defined in QwtCompassMagnetNeedle)QwtCompassMagnetNeedle
~QwtDialNeedle()QwtDialNeedlevirtual
qwt5-5.2.3/doc/html/class_qwt_color_map__inherit__graph.md50000644000175000017500000000004012052741137023327 0ustar gudjongudjon3613d6bbb88544e127ef117128c2baceqwt5-5.2.3/doc/html/class_qwt_abstract_slider.html0000644000175000017500000015033412052741164021613 0ustar gudjongudjon Qwt User's Guide: QwtAbstractSlider Class Reference

#include <qwt_abstract_slider.h>

Inheritance diagram for QwtAbstractSlider:

List of all members.

Public Types

enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Public Slots

virtual void fitValue (double val)
virtual void incValue (int steps)
virtual void setReadOnly (bool)
virtual void setValue (double val)

Signals

void sliderMoved (double value)
void sliderPressed ()
void sliderReleased ()
void valueChanged (double value)

Public Member Functions

 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
virtual void setOrientation (Qt::Orientation o)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const

Protected Member Functions

virtual void getScrollMode (const QPoint &p, int &scrollMode, int &direction)=0
virtual double getValue (const QPoint &p)=0
virtual void keyPressEvent (QKeyEvent *e)
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void valueChange ()
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void rangeChange ()
virtual void stepChange ()

Detailed Description

An abstract base class for slider widgets.

QwtAbstractSlider is a base class for slider widgets. It handles mouse events and updates the slider's value accordingly. Derived classes only have to implement the getValue() and getScrollMode() members, and should react to a valueChange(), which normally requires repainting.


Member Enumeration Documentation


Constructor & Destructor Documentation

QwtAbstractSlider::QwtAbstractSlider ( Qt::Orientation  orientation,
QWidget *  parent = NULL 
)
explicit

Constructor.

Parameters:
orientationOrientation
parentParent widget

Member Function Documentation

void QwtAbstractSlider::fitValue ( double  value)
virtualslot

Set the slider's value to the nearest integer multiple of the step size.

Parameters:
valueValue
See also:
setValue(), incValue()

Reimplemented from QwtDoubleRange.

virtual void QwtAbstractSlider::getScrollMode ( const QPoint &  p,
int &  scrollMode,
int &  direction 
)
protectedpure virtual

Determine what to do when the user presses a mouse button.

This function is abstract and has to be implemented by derived classes. It is called on a mousePress event. The derived class can determine what should happen next in dependence of the position where the mouse was pressed by returning scrolling mode and direction. QwtAbstractSlider knows the following modes:

QwtAbstractSlider::ScrNone
Scrolling switched off. Don't change the value.
QwtAbstractSlider::ScrMouse
Change the value while the user keeps the button pressed and moves the mouse.
QwtAbstractSlider::ScrTimer
Automatic scrolling. Increment the value in the specified direction as long as the user keeps the button pressed.
QwtAbstractSlider::ScrPage
Automatic scrolling. Same as ScrTimer, but increment by page size.
Parameters:
ppoint where the mouse was pressed
Return values:
scrollModeThe scrolling mode
directiondirection: 1, 0, or -1.

Implemented in QwtDial, QwtSlider, and QwtWheel.

virtual double QwtAbstractSlider::getValue ( const QPoint &  p)
protectedpure virtual

Determine the value corresponding to a specified poind.

This is an abstract virtual function which is called when the user presses or releases a mouse button or moves the mouse. It has to be implemented by the derived class.

Parameters:
ppoint

Implemented in QwtDial, QwtSlider, and QwtWheel.

void QwtAbstractSlider::incValue ( int  steps)
virtualslot

Increment the value by a specified number of steps.

Parameters:
stepsnumber of steps
See also:
setValue()

Reimplemented from QwtDoubleRange.

bool QwtAbstractSlider::isReadOnly ( ) const

In read only mode the slider can't be controlled by mouse or keyboard.

Returns:
true if read only
See also:
setReadOnly()
bool QwtAbstractSlider::isValid ( ) const
inline
See also:
QwtDblRange::isValid()

Reimplemented from QwtDoubleRange.

void QwtAbstractSlider::keyPressEvent ( QKeyEvent *  e)
protectedvirtual

Handles key events

  • Key_Down, KeyLeft
    Decrement by 1
  • Key_Up, Key_Right
    Increment by 1
Parameters:
eKey event
See also:
isReadOnly()

Reimplemented in QwtDial, and QwtCompass.

double QwtAbstractSlider::mass ( ) const
virtual
Returns:
mass
See also:
setMass()

Reimplemented in QwtWheel.

void QwtAbstractSlider::mouseMoveEvent ( QMouseEvent *  e)
protectedvirtual

Mouse Move Event handler

Parameters:
eMouse event
void QwtAbstractSlider::mousePressEvent ( QMouseEvent *  e)
protectedvirtual

Mouse press event handler

Parameters:
eMouse event
void QwtAbstractSlider::mouseReleaseEvent ( QMouseEvent *  e)
protectedvirtual

Mouse Release Event handler

Parameters:
eMouse event
Qt::Orientation QwtAbstractSlider::orientation ( ) const
Returns:
Orientation
See also:
setOrientation()
void QwtAbstractSlider::setMass ( double  val)
virtual

Set the slider's mass for flywheel effect.

If the slider's mass is greater then 0, it will continue to move after the mouse button has been released. Its speed decreases with time at a rate depending on the slider's mass. A large mass means that it will continue to move for a long time.

Derived widgets may overload this function to make it public.

Parameters:
valNew mass in kg
See also:
mass()

Reimplemented in QwtWheel.

void QwtAbstractSlider::setOrientation ( Qt::Orientation  o)
virtual

Set the orientation.

Parameters:
oOrientation. Allowed values are Qt::Horizontal and Qt::Vertical.

Reimplemented in QwtSlider, and QwtWheel.

void QwtAbstractSlider::setPosition ( const QPoint &  p)
protectedvirtual

Move the slider to a specified point, adjust the value and emit signals if necessary.

void QwtAbstractSlider::setReadOnly ( bool  readOnly)
virtualslot

En/Disable read only mode

In read only mode the slider can't be controlled by mouse or keyboard.

Parameters:
readOnlyEnables in case of true
See also:
isReadOnly()
void QwtAbstractSlider::setTracking ( bool  enable)

Enables or disables tracking.

If tracking is enabled, the slider emits a valueChanged() signal whenever its value changes (the default behaviour). If tracking is disabled, the value changed() signal will only be emitted if:

  • the user releases the mouse button and the value has changed or
  • at the end of automatic scrolling.

Tracking is enabled by default.

Parameters:
enabletrue (enable) or false (disable) tracking.
void QwtAbstractSlider::setUpdateTime ( int  t)

Specify the update interval for automatic scrolling.

Parameters:
tupdate interval in milliseconds
See also:
getScrollMode()
void QwtAbstractSlider::setValid ( bool  valid)
inline
Parameters:
validtrue/false
See also:
QwtDblRange::isValid()

Reimplemented from QwtDoubleRange.

void QwtAbstractSlider::setValue ( double  val)
virtualslot

Move the slider to a specified value.

This function can be used to move the slider to a value which is not an integer multiple of the step size.

Parameters:
valnew value
See also:
fitValue()

Reimplemented from QwtDoubleRange.

void QwtAbstractSlider::sliderMoved ( double  value)
signal

This signal is emitted when the user moves the slider with the mouse.

Parameters:
valuenew value
void QwtAbstractSlider::sliderPressed ( )
signal

This signal is emitted when the user presses the movable part of the slider (start ScrMouse Mode).

void QwtAbstractSlider::sliderReleased ( )
signal

This signal is emitted when the user releases the movable part of the slider.

void QwtAbstractSlider::timerEvent ( QTimerEvent *  e)
protectedvirtual

Qt timer event

Parameters:
eTimer event
void QwtAbstractSlider::valueChange ( )
protectedvirtual

Notify change of value

This function can be reimplemented by derived classes in order to keep track of changes, i.e. repaint the widget. The default implementation emits a valueChanged() signal if tracking is enabled.

Reimplemented from QwtDoubleRange.

Reimplemented in QwtDial, QwtSlider, and QwtWheel.

void QwtAbstractSlider::valueChanged ( double  value)
signal

Notify a change of value.

In the default setting (tracking enabled), this signal will be emitted every time the value changes ( see setTracking() ).

Parameters:
valuenew value
void QwtAbstractSlider::wheelEvent ( QWheelEvent *  e)
protectedvirtual

Wheel Event handler

Parameters:
eWhell event
qwt5-5.2.3/doc/html/qwt__arrow__button_8h_source.html0000644000175000017500000002145412052741134022260 0ustar gudjongudjon Qwt User's Guide: qwt_arrow_button.h Source File
Qwt User's Guide  5.2.3
qwt_arrow_button.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_ARROW_BUTTON_H
11 #define QWT_ARROW_BUTTON_H
12 
13 #include <qpushbutton.h>
14 #include "qwt_global.h"
15 
23 class QWT_EXPORT QwtArrowButton : public QPushButton
24 {
25 public:
26  explicit QwtArrowButton (int num, Qt::ArrowType, QWidget *parent = NULL);
27  virtual ~QwtArrowButton();
28 
29  Qt::ArrowType arrowType() const;
30  int num() const;
31 
32  virtual QSize sizeHint() const;
33  virtual QSize minimumSizeHint() const;
34 
35 protected:
36 #if QT_VERSION >= 0x040000
37  virtual void paintEvent(QPaintEvent *event);
38 #endif
39 
40  virtual void drawButtonLabel(QPainter *p);
41  virtual void drawArrow(QPainter *,
42  const QRect &, Qt::ArrowType) const;
43  virtual QRect labelRect() const;
44  virtual QSize arrowSize(Qt::ArrowType,
45  const QSize &boundingSize) const;
46 
47  virtual void keyPressEvent(QKeyEvent *);
48 
49 private:
50  class PrivateData;
51  PrivateData *d_data;
52 };
53 
54 #endif
qwt5-5.2.3/doc/html/qwt__plot__svgitem_8h_source.html0000644000175000017500000002670312052741135022252 0ustar gudjongudjon Qwt User's Guide: qwt_plot_svgitem.h Source File
Qwt User's Guide  5.2.3
qwt_plot_svgitem.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_SVGITEM_H
11 #define QWT_PLOT_SVGITEM_H
12 
13 #include <qglobal.h>
14 
15 #include <qstring.h>
16 #include "qwt_double_rect.h"
17 #include "qwt_plot_item.h"
18 
19 #if QT_VERSION >= 0x040100
20 class QSvgRenderer;
21 class QByteArray;
22 #endif
23 
31 class QWT_EXPORT QwtPlotSvgItem: public QwtPlotItem
32 {
33 public:
34  explicit QwtPlotSvgItem(const QString& title = QString::null );
35  explicit QwtPlotSvgItem(const QwtText& title );
36  virtual ~QwtPlotSvgItem();
37 
38  bool loadFile(const QwtDoubleRect&, const QString &fileName);
39  bool loadData(const QwtDoubleRect&, const QByteArray &);
40 
41  virtual QwtDoubleRect boundingRect() const;
42 
43  virtual void draw(QPainter *p,
44  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
45  const QRect &rect) const;
46 
47  virtual int rtti() const;
48 
49 protected:
50 #if QT_VERSION >= 0x040100
51  const QSvgRenderer &renderer() const;
52  QSvgRenderer &renderer();
53 #endif
54 
55  void render(QPainter *painter,
56  const QwtDoubleRect &viewBox, const QRect &rect) const;
57  QwtDoubleRect viewBox(const QwtDoubleRect &area) const;
58 
59 private:
60  void init();
61 
62  class PrivateData;
63  PrivateData *d_data;
64 };
65 
66 #endif
qwt5-5.2.3/doc/html/inherit_graph_26.md50000644000175000017500000000004012052741151017221 0ustar gudjongudjon85439297851740db1f27ead38606fe21qwt5-5.2.3/doc/html/class_qwt_compass_magnet_needle__inherit__graph.md50000644000175000017500000000004012052741137025670 0ustar gudjongudjon24ceacb5d2680ecc34f7745f70ebcf4dqwt5-5.2.3/doc/html/spectrogram3.png0000644000175000017500000015554512052741142016624 0ustar gudjongudjon‰PNG  IHDRWpÉŔ IDATxśě˝yĽeUuďű›űś:UE±A±„@%ęË ‘O$˘4J¸$€Ř ćć]óIs_¸ (64ĆĎó)U€!Řäcbʱ‰-ýĐUˇ’Ü{C‚ŤÜ$(=– `őÍ9óý±öš{¬9š9ÖÚűśÚçÔźőYgĚ1Çšk®n~Ďs®µĂüÇ`"™ČD&2‘˝R¦·mŰf{Äöłź˝ęUŻşőÖ[CYî† Ţô¦7Ĺ„;ě°ŻýëóUىLd"™Č’NśăÖ­[×®]{ăŤ7._ľüµŻ}íßřĆ^Ż7Ş=NŰŮ=ôĐÚµkďĽóÎíŰ·‹÷Ţ{ďé§źľvíÚQUh"™ČD&˛wŠFś«ŻľzăĆŤ7ÜpæM›Î>űěC9äĚ3ĎŐN 8=řŕ?řÁ^{íµšĂý÷ßčˇ‡ŽŞ6™ČD&2‘˝VDâĚÍÍ]ýőçž{îÓžö´g?űŮoxĂ®»îşî´ ĺŢ{ď˝ë®»>ůÉOĆO:餋.şhß}÷m[Č_üĺLJ¬ĆD&2‘‰LdÁäĎ®ţÓď˙ű łŻŤ7nŢĽůČ#ʬ’kÖ¬ůđ‡?<Âň‡ĄŕöíŰŹ9ćŹ~ôŁO<ńÄĹ_|Ůe—]rÉ%™Ďóž÷ <ó™Ď<üđĂŻ¸âŠÍ›7?ňČ#ţđ‡O=őÔQŐ¬Ł,–›iQ ۇoĹćbR#ÇIFšfˇÁ?4iŻq®Śµ–´Ď ŕIeN@8&»xŠľŚHB§ťvÚ5×\óÄOÜwß}źúÔ§N?ýô‘•ŢŤ‚÷ÜsĎŃGBčőzď˙ű}ôŃăŽ;îŐŻ~őGqÎ9猰r­e±ÜFc…@ż«ňĹŔ(Aó ©ž-*ś@NňMM5ôlÝŠDk˘U^˝}ŠŠëáŻcuvîhź— G+ó 8ďĽó<đŔ“O>ůőŻý)§śrĆgڰđň¸`aőęŐwÜqG˛Đäa‡ö±Ź}l„ę.‹ĺ7ŠYž–ČY¦Ý,Úílgj84¨ŮŤčNOŞ׊—”|6X‡ś$µ>/}éŔX‘S0C•ťXcÚHV±!AČQW•űa[Y†ŤDFXĎQSpáeIPpa8ü^:”ŕ٤sĹś,úx¨‘O+-ă˘hď†ŔV —żŠ|´@ń’Đé”ßúÖf‰ ‡će"¶k~ö¸Â—ŠĺvşG›ťAč<ĆÎ zç=Ž|“‘—°{Ýřßž’ĹOÁ˝ť ńn0/K@ ~†gÇ[–f9é¤ţŽ6lYkśÚÜđŽĐŰnëë ‡7߬âĐXŠB±B80‚µ’"ç„ţfZóIC?ˇ-“Xp˶[[r»Ĺ:8mČQ'&G@>ĺ$㟸 í(2áé˝í¶> «=rÎÍŮ'[ŢcĆă”,ösfĆtÎ;€P“¶ l <»N L@hČ„‚{L†#ŮѸ!Đďߪ|1 2J(‚ŤŻµääŘKĘżĚMÜ]ń¤q r~ë[›X87‡^Ż ‹ D3„9X„\Dź"ęÄśţž:”¶´A!Ţ©źP°­źŇi!‹ó·ÓÎł<t–i—o°Mh ňĄd5ţÇů'.ZU+IMŚFÁl ˇÁÂ[nÉXńŹ[4iBH±`FľtŚbRlľ jn~KŰ2ýąmÝF+ ¶ÓÎ;šP°­Đďčt$ââB`ŰBĆE {˘®)bŇXkJŇ=´ß”Oú‰'öű?ťmëL%ăt ÎÍ XúHéÄJÄżĘb°0Ő3!ĚX0á§Î“˘, Ž„acÂÉě…– ;koč1Î3ĎÎiÔ™)Ľí¶ÜŢ„\ś¬ŁŠ…!`n·Ý†—Ľ@#(¤á “…ˇóm@®ăüĐĎĽÎĚ€°ŰŽ&±ŕ‚Ę7ÍÁ_?‹% b.U8đh–Í?Nµj]ŤĂĄ.Pş„mH•ąąA)ę‘ÂŞśÄBJ>…4L–„=0t‰ŔÓrť Ô¤=ĺřK€°ĂŽ .x˙q7Y<\Ú• ŹŢV%PgÎ*Ă_D…Čö;ž 4(řÄ(*3˙˛H(¸äčÜÄvóŕÇ6-"öŠĺ… ‰ „˘"&[!0­é( †@ ů!$Ń((ňŻ‚_ZÓ$)Ô‚ÂV#…!"yRlR5Úe:-š±UĚmë6ä&óTČhwdŚ N(82™ Đă6<‹>rňq¤ńd„™’C“ĹEŘË^Ô˝ xš®0Ő‡Ö9µ&‘˝‘si]’pXE• ú˝Ł7Ý$…”|ö…Ö‚Âbď¨C1)*Nť'E™€p>ķُĘUť 9n?®>öś Đă6Ě3vŃ ™gq-*~ţńů/| Ň Ę™g€ĐčO—Řš¦ÎÍĺ¤:g!ęŢŃ ~h…„v8HëFYřMÓĄi B*6ýĚ›€pţwäüŽĂ¸‘ŹĘxSp‚ŔÎ%·Ý°eýdͲ4Bđ\‘Ł~ţ‰8ĚÖi P#ź¸p3L"‚tMAX-ü@(ĎbĚ˝ůć~ÎŰ€˛° Š—O 5OŰ8Jµňě¶á^Âö_3;c Nčtłˇâ±{,b–ŤC›ť"ó˛,Şdş“|ׯ÷’ŻE„™x¨ÁO\*ČÝvććpüń=á ­gŞ<Źé5š×BĂÍoéf÷;´rr“y*dčM(8o2A Ó­í®; PĂž¨kŠ×Ü?Ó©…VŔfa`Q Á¶ě‡pµd`łf4ňîPĘż¤ĚÎ6p8;kr&ŐÄQÚ­ Â?ŤĘôfY‰ ĚŁw”úĎ롄šL@8ôŽ&l-®ďĹL8|9b–gżóŔĚÓ^Ó$ç-ŠSG„_Ć*- >SŚź‰d Q}Oަ&€U,¬HY(ž‡JxD4ř—…4ŕK–ě’e, g€0•6Ż ÎńHý˛·‚pBÁÖRţ‚ÚNĎ‘ Đ`^±ţjđŘ»qŠí~`Ńž±dQšrţyÖTéc/Ö ęäŕ J¦z€é<¬”@Ţ‹¨X­łs(žĎ†z~ŤWŤÂúŹ1ÍߡíăáâhAčÇĚŢB&ł ±ăů•1ë]ňUám8¤'mhĆ<ÍYd^–ĹYt?ü2ŠQ Á?QÉ|úU›#đŁká5×˝€Ţ¦¦úüKÜJ`Bŕě¬|ިN#B@íĺgž‹Ř)Š1 ä2JŤ „dqÉ$©,.Îë®;×ĐŽ·ZY´¦VÔ5ELŠkîß" {äÓ0" ţńeŔżŘ\ŔXČ…đo „€é)Ä©«%ő…&j,Ě䤓ď†0ŕźöźŠ&Ko€°3-śî9í©]O(¸eTěPΨŘv×{ ™§˝¦IÎ?Mü DýR„ŘZ„ßÔ¦§ţ‰8”«[ŻĄ…˛P<śŮşó‰źÚüĄ÷)ĹSÍ·ÍÎ-uČČ) AJjRôź?Ž `{„ .6YÚł<ű58L5Š! ÷ŃřgÓŽ“ŹňŻ×É'ćäń_Ň+Úeđ«–Aççś‚|\Ф z5 §5ĎŽ®xň+©@X}b­ó! C—Ýěf>†ł§ů.‚ĐYě0ՀɄ‚‹J&lUîl—fŁ”ŇN$_jĺ[ńĎpHÉľĘcA-ěKĘô4€Ů&= lś‚z­!0öA)łÍ U«GŰľűźX«>ş äá e›}?“eD"ŠtÔ’EJµjÓýĚ›€pt2ˇŕâ‘˝NO^EÝPhŇ^gŠČ?Z`qˇü8é$áˇFçgÂ^µ®”öć9á¦`ŻVb˝îő=CŔ˛eŤcá§W”űäK L§ĹîM›ó,m€0)öš^ľîŐdÂÉdŽč"‘ńGŕ0ĺhYEŕq˨h7Ů3%Ó©E$%_ÖjĽźş@))üŞĄjěq2†gÉÇË%>RÓnn˙őĂÁHâB`އ°L8!ýrbٱăA!ęw'ŕč»@Ó c!UŚŢŃ,wáAhWL”=HŁĹÂI,¸dQ pT•lU Ŕ‘+rQħş,*—,xĘľ”Íߎp!0fÉđĚ~…ăýĘ+é¨ë0ń2ţ¤a$á`ŤŔJéő0­<§©™Ł8¤J5@HON·®Ńb,„2ŻH,.|FUl+IĐ9ÂMćµS&{YlzŚţ¤]š˙ń¦Vl|ŰňĎłđ1„ZGhµ,[†€&ůřRóŻż9`7ëmś˛Á\Ď…©JH,ě5Kčő7íő°l™pxÉ7»ÓĚŘl¦Ś}! ľ_TLRĄqÂÜ! ‡‹~c1ËéĐÁsMćµ]&l-®/¨ŤJ&ěPźĚYÔ …&ůNłö7S’®Ő–˘.K†f(ÎáźÍ&ÂTüëĎ…áŘ›čţUđçË   ö{A{÷=ÂBŤ @čaٲƙÉúBÓ’ĺĆX ĚA­˙ćfý˘˘ÝˇżV ú„#/G‘ [Ků jŁ’=ŔŢNOZv±žšđc‘ŁY5ř˘Ů)«á@>#ĆžJ—g †ĘżŮAhŘXCyS˘×\÷€©& 7’Í›P =LOç-š8Č#ÂB!ô®QJ#@F—–LŠ -Ë€˘F_Ź, ;Čbˇsv oíÇç—hŹčžE s«ů@`xÜâÇ›aÔ’bSË“<Ôѧ'ýžCP^Ťqw„ÎJ!ŕl Ş{›üŁÎ±!$ ¦ˇ˝ű}ˇS÷"<á@ÄźÔ›Ó*r®QüĹ(, Śä§Nś2jŹ&ź´IyR„śQzřęĎr:´rÉVóW“ɯ쎥Lč/ÖHŠĄq:á§óO«¶˝$V}ˇb (ΑŁŔ łŔ,Âłďfë.ĐY’ˆ s†ŃľPşÔ¬FăŹ)„g">LńłÔ!¤Q4q’üʼn„@ńş¤2Ĺ As ‹´qh3O¤Ł')Ę„#•IŹčřÉ’G`«MZ•Ł!Đ §Z±|qŰlw|É<5¦ľPĘżüÓÁÁŚPäU˝ Ď€x_ňEŚm NŐë©z«©ţVńľţ$ŇřSyڰWwŤňej ,ěő]Ł „ô·|Óµ |ÚŐlŐ/ŞÝbż¨MD„¶±:L9Ę\r 4(8źIŁ”ĄEÁEŔ!ĹO;nă¶»ók‡€)ÉcÁV‹ŃŘ;ňF_hă˝@ŠŔY„vrĄ ÂpŠ|˘â §€éźń^`áłsÝ˙k€°bajě(«ST}k;ť(Ď«ôÂ±Śş_T”>|?ç'ZÍ^Ć„yoĆxʢŕbA`ŃÓpf/6łhĚ(Pk+5ři Y( ‡ś¸}ˇ6§¦šđËř@M»´Î’łŔn„“Ž_i†u Hé˙&ś‚Čř „ý“ŇGťB4;Hiż(?ĄéŇD24h‡t`,,"ĐĆ!W˛=vîő7ý†g±‘ěeä[Í_9&#Ů›X·8hŹSÍ-Ôŕ,;7›ôI1Ú;‚Ú}fücKâ_üR Ńmd¦h˙đ€âçú!`xu«řwŔ,!Ą`Ő“Yđ§5JŃXOO÷¶Ţł€ő‹Âś/Í™2Z,»©Í|<Ў“N‹m·łś<‡ßjţĘ1çJŻ¸ŽŁ, N8ŚčÜ6%Ĺ&5óůÇ w‚:“b8§§ë)ť¬/´ Tá· ŘŤđ˛~UăÝŔ6Ň;:ÇbÁŢ 4~FxMÍ›ػ†ÍaĹđ Äź¦Dc]ő‹V,LżM¨…‰´_T™MŃX´†źY#‡€»NŞp;°s°„·*/ á  ĄcüS`éŁ7~±?w&ŢÜěM1Ů}ĎDÜÁK¤k´ ĚúE+ě%řUĽIť˘ôCŰŮĺݞ0Ń\ cÚš–ŁaOĚ9E±=— ‡+jBÁÖ2šŻ¦-%vŰĽUVĚŐt͵’YÓ©Ů3ţQg‘mÔSôI“b(ťź‰ ¨;Bc# "Ţß|b÷ ¬ă_×Üě@xKż¶ńŔN`7đ¤LÁř&`Ax_źšńŞÁ8bük„łNBĽ©ŢŞąÄűë)ŁÔ>‡ô őĽ_4Ł`lŽ.äëś[™˝HŻĚh€ĐŘŞ­Ď¤Ů @8ˇ`kÁwD— źV,î«íÁŠôj[ ÂL·‰Č-š@ńóŮŤľP†@€Śí5Á>żlvô×ámß재űK?#źŇř»Ŕ2`ń\`9ÂoAĽr€Ěř„×"Ľ ńf4Ć˙Hđ×2J@HűEi8(ΔéăkŔ Äó€•oCĽ|0›¦aµ;!¬fĘĚőÉg€0uŤ&浚&CŮ?"ż ]`,Ě0¦­i!{¶_tÂöEMbÁ…• žmł&RÜŠ“łP[¨łí“hđŹ‚P›žIúB›‚ý±Ŕ/Ô!ŕv„ó€*Ül¶!|âqŔ`'°áűńW€`yź”ńuýîÓřv„ ţŞÚŤ_@řĎoĹŕ(B_Ź÷K„ˇ?_”‚0EŮabaŻ7@‹xćcËi2 Ť Ţ*óÔ/:a7iYÔ„‚ (‹C–6Zv(\¤—Qež†É¬|űđ‹ü äK1ÉBá¤oÇ Ać}ˇł¤/´ŠżŘŹ˙°Ř ń­Ŕ&` µ_ lEřVăXâ~65‰ř«Ŕ>55˙o`ń­Ú/¶ęöŚ_Dx °łÁżţ’úEe Ś} ÎÎö•tR\ÉL™ę,eá ˝@ H"äD.jIX%ć.$ý˛¨@8ˇŕBÉâB`Ńy´@íĽ/«Njk1ÉYČ#+-éíĘ?ÎBŽŔ‚ŔŘě ˝Żî˙ĚÁßDüŇ`,°žlBř  ęüÜ„đíţqĹĺ=ěŘŘ€°©˛í±Ăr„˙ń×€ýj‚ţ7Äóű3Hă5uĚ÷%„ßDĽ±ÉżŞ_ô>„CI§ho ‡Đ?Ň*Ěć‹ň~ŃJyk‚^©ě aÖ_ęD ŤC„ÜźËhádKq_­*łx@č¤ ť2nż˛´(¸W!P˵‰ĄYڤ¨{™µŚ˘wÎX1ˢ›\„ţvDĐŁŔƤ24Ď %‚áĺ_!Óa¶5± ¨BŔÇľq aaǰ8>öź®ÝŔúţ±î n˙řÄ#|ř9ĎGx?°můĹŻ Ľńfö{L˝zľčO ă`t0ő‹RŇ‘BÚ/”·&(Ą`F„ôRz†ĹŰĆčĺž™Ź¦“Úľězj˛W‚ĐIÁq#•^ŮĹ!Ź=öŘńÇ?’˘r™ PłŹ˘ł§L‘‹ĽN>Î6ęĚ@Z´·ł©1/“±I1ô ÚŤ·#Pż±˝žóV`3Â_"|ńXŕgßC\ aöE§ŐíĆú€›n 8-âEŐ‡iV"|řⱟGřK`3â[.¨ű]wÔsdh„JżMv őAÍ3“ťü“NRĎyvůÄ ÇŻ˛}Ů·Ť]7·´ťôî±{r=ťť‡ÜŞkQâ/ŤÍ.ŞąŁĂRđˇ‡zăßxúé§oÚ´i$jČšÝů$;s3ź­Ř®‰üÓÚY±Áł ‚”‰‹Ů·CńaaRĚ,aő/’÷ߎř` °â±·#üq a€3"ţ>ŕëŽřlóčĎF|8âëpF•¶!N!üávÄc›-ď@x{ŹŘYżMĎ?Ď6Űź&“ńŻŇł§Q˛xşBŔm·5® óŠ—Ź_ńV·MŰ»Q”¶ŹĂ„]‹Rľ=±Ć ‡ĄŕÁüˇ}čÚkŻIm2A f÷<ĂĆîÄ˙š=ţbk%:‹ĹŇ–QŰ–·¶Twľ&Ż‚ĘŰw#Ľń«őěç#^l¶ |ń7€ÇjRçěń® psÄńŔË€íq7ânlŹxp l¶"^„p~ îBü*ÂËĄX°úo›‡síÂÁ pŇI RĹľŮýŔo m[ľ‰á ĺf6ü[YŚ2' ¬eBÁů‘â“Ö¶´ůŢjČÚ‰Ŕ˘ŹÖRŘĺ… Ů`‰Ť#R®'Ś0|ŚÜB ó©ŠÝˇ¨_ÜŃĎöţŚĐřR„ď ükő^€őđŁŠ5ĎŔ3–`Ćň€g¬yNü)~ŕ±î& G˙á;/E¸ŘŇ}Lá`ż_Tęí‡YŚŰ…ţÓëąFمΔâÍcß{Ĺ'¸˝;<8ö†óôÔŹp_ŁmE•Ň–bvL»oÄŚđĘu.mä7h«˙RŰŠłńč†B“öZSô©á5šÔ^“J Č-9µ@p®1˘NFü2°­ţFč;ß<‰đ Ä—ŹýI.§DÜđń;#–óQŕ@ěŚřđńߨ6ďĎ—Á“/CřâC|;Â;Żęz;~ádÄ[H%§šá`hľG_pv6?ü•‰(}S-ťólŽLş‚ö+É!(ó<í5-Í3_ÔŁ“Ä(ÁSx« t«íđÇ•ĆdŃN“…  6;H ăv7ú8LÄŘEgŤÔM‹!2Ĺđ­;´×“FS ¸‹˝&X‚őË‚ýĎ„n«ßçű9Âť+¶¸!ŔŻkţ řÝňɰ,ŕčĎ`ź˙‚´9Â,â „;Źlf ĽńőoPŘ]˙0SUŐy‰ţ§ŔĐ#úg ű ZŹ|GĆy’ÓŐç‹fbĽ2‘»iÎ|FKš"Ĺ2»ŐaI‚É"šŁÉ8őîml»Uvn†"§QKňu±đ ‡bVÖěҶ‚ {™.}‚‘ͱä ýpÚ[mźA| Â˙€°ý7"|<âkÎ÷"°/ż‹5çăŹđSţ'âK>lC¬~¤bgý‰™/#śÜv6Ç5;Ŕĺ„H§.-6ŕÄe rLÚW3» :ßHF9¶QLň -ĹBü…Yň4k-e ôŽG(‹Zng»3ÚĚčił4»X/'[2OîŔłzěy Â`$SCç«@°ţpL8 7čEřN€_Ö\\%ťs[®ÂšËń+Őë˙ż^͵ŢÚ ç“/$5LeGŞÍŽÉN]ĆBĎU°Ż&żú™âąť2ٍnš–5$»=ćm}ş9ą•C&KÚ±Čz IDATŮXôŃZű˙h»ÍĘ6ÔŚv[™m"6ŻĽm=ńDŮNąČY85…äy1ăß\˙äăWšßN;ŘŽđ9Äß@řgÄ}ćČAü§‡ ŃQ.Äzxš @ÜáźásŔvÄŠÁ;űő‰_A8Řݬsjp¤92!ä ¤çĘ@]Ú×ȸ¦â-Ńęv˘I[qę<)Ę„>™P°/«WŻľăŽ;FRÔPÂźI˙†ŁužoÚOő¨ž:ŁaâkM)¶’ÔŤ7¸É-˝#(b/C=6¤x¨F«Ż†&ŇQ4~Pv |°ÂÖĆá\>‹–d›÷ ŻvôńznęNňâ<ŘËuޱq6 ŁE(Vď—CĽ|ÚµNş¨·SćoHç›Ů.aI‚pÔ,śPpś¤óŐgz<ýIű©˙ą†Ň6iąÚčö4ş ,FÓŇއËg‡Ö#‚ń>b¤ é˝ńmőgĎ^Śpg˙1€;#â‘ň)i%ńHÜIç.Ä•w"ľ°ńm6;E9#â}šŁq@A­ST;™âiĎ.Ťó˛¦@Tś7•]¸­čĐ„Főüvů Âa6”dBÁ±‘ĄŠ@nď\aO«Äš'UŠ˙{rr:ůĽşh­|ŮöÖD5/ćÄ/±Ď§mĐ ŰRĹ ŔÝÖ‘yĺnüRă„lě®˙‹öÄ‚ńK§C’ăiguÆÁÉ7ţkń_\”nâýćT ˝(ţÇmÂZFřµă­·ŢúÚ׾öWőWŹ9ć?üĂ?üÁ~0Şz˛$(¸Řč÷/ZÝśG˛!‘Rpffć)OyJ!Ô{Öłž5| ‹˛~YÉ˝E#iďBSś˙łŰ FŃLhF6b 8Ąg6{q~g‚aî„[öyŤpF‡‘}^Cľ'DÜć;Íż –şšćéLQvřÚ@`öú|ŻţLvň“‘˙ÜĚŰ•ĆESř:IPŢŁç j Ô’˘wáĎfŹ#qɆµŚpüoŐŞUďyĎ{Î>űl!„}öŮçk_űÚčŠWeˇ)Řîkj¶ěUô3/KŠşńß®~RÔqáM-·h`†=yPPęěw‡îf ¬Đ2Ű'Mxâ…Ŕă…x<ÂzÄ}6߀*hű’zXĺKýX°Úâľw"ŹđW˙â…ď@ü@ B4ÁđďČř†«oĘß‘ˇTK LWŮřĹAz•©©bguˇźy{=ťÔZ~úe±ąąąK.ąä•Ż|ĺ[ßúÖ-[¶\|ńĹ×\sÍĄ—^ÚąnNYh ŇcŠ{3ýőŃtÍÁĚsh˙¨›¸dÎ69ů(9­@G<D=-äSÚ}ňĺMšĹ¦jÓš±ŕ;@)ägŚ‚0 ů%Jáŕ|P­H&„¶L@č'=ż˛űĐC=ôĐCďxÇ;V­Zµ˙ţűźsÎ9çž{n·Zµ’Ĺ9.¸TčôÔĐe+úpĹHňµĚtŁ>ç’Ĺłˇ¬ěŐ·^uW‹ădhľQW‚áÄ/Ko ˘ß!fŹ­[‰™‹äcRR±ÇFô‰·ŃŠAőâ—뙢”´S”Ź’Ż©'/ttćż)˘h˙ôŔĽ—˛,ęŔ“âmÜęAĐ6ć!u2|#3Śó(6áŃ+Vd–ĺË—w«U+Y„\,ě°ˇç9,>şv–Ńv8á§5^F9|ˇYĽd­ÍqHŰqű‰đLÄ˙( Áž_ú˛ě—Žč2ńt-—ŔşŰ現&ÁkČŹ"">P˙ÖR©S4;ĆÂ/ ”ë®]čä@=!ÝEĆZ,GSD˙bV‡Đł[9G8;ć€8ú裯ĽňĘÍ›7?ňČ#üŕO9ĺ”Uj+‹Ť‚‹mź–á¨ýźk·˘O«3 *b;Čł4ŕ?™BÖ¤ÝzMf‰).Ľń`7ÂçŹGřÄ}üm×[Ż•\śö÷EřÄă>ěFĽá‚ĆÇbňC0ÂÁô€yŢ ňɢڵ˄g9ŃĹËqn"úhz1é´tłűś>Ýś‡Űp„pĺ•W>ńÄ'śp«^őŞ#Ž8âĽóÎëTL;Y”FÁ9`®ŚŇA=âéň@Í‹vÉ2g*Ü®Ý<žŻXŘ­XÔą óHv~ĚGŇřtvîşíhcÁ="‹‚{!µ^´´ŞvQńŃ!oďÄöQl=©[šC}ěOĆÚ Öř,Äű%ld˝‹4äBµžŞźčŔôŹŠçş»L˙izŔÔ€Çh©Ľ·yPń~„g©qpńŇ,Ô'ßËA®f%öEź§OS ±˘â3hěeoágÇě){ . ¶ňf/âÝáĐhsĂ×bRką%k:Ť¤¸đöZčMM?T.ćă…YďčBËę‚f”ç{!wUż1˛SňzÚQov”NQçLW Ň%†t'ą”űJĽń¨›-âýď|vü#yäŰ8N śÄ‚ó,Kţç§í˙¤Ún®Rlq´Ü¬Ětşߋ؀VŠý¦|ÖRËScŔHŔ)HGÔŔĆŐ˛X°/S~"ź›ŃČOúű:.b{˙śe± ­?Č!ĚI„ä˙7§—.é• W0IńfČhŠ–·5ŠŠčf荧pŰXĚr:8}ş9·ÜvBÁů”ÎWN|ü†ÜŃâE ŃLŘ­5¶jz´f4-@®hFcŃúô 3D"c!/śC¸ń¦[^ZĹQ玞ŮţIKR˝x!Â…ÍŃČřW:|ăÔ-Ŕ…KR¤WńöóßŘ~˝-­ŚĹ,§Ó‡:Ó˘ę˛(8®_P›ź ÖŃ)!°Ĺ[±=Ď“&6ť)YMÁČ ôQŁ]xâŔ®R˙!ŐSě ?-4xjář†’§ö÷GNbD< áóśW5~áÄ[„#Š Ăř+2ˇŕH«kY|DťeŽžr g±ˇŃřG·5ZUęź­‹?%ȱ—)ŞˇŁg1ŁüĺđC¸ĄRv çhŢĄŢi@¸eP%@©¶Ôů98pvZ´sčY˛W&č:»ĘĆmŔý©"&í»°Ě؄٠lŰ- îi™ŹKľ`,ţŮáźçbK!¶hŮZLňVϨĺźŃ8fţ6éË‚}‘zD_ŤÉ|@śű€x€ęŮUg\Uyý±z”CÉ“] vÚ#•ˇg©t8ń~â& jŻ é•J}ZÝ `wşŢ–´|MáÎZ ýI­Ě=Bż[gIś|‘!÷8rY´ś§˙z ‹¶ŃEŮ•ç “ŘŠĄ¤Ö†Ň¶’®ů‡CŤ˘ÄV[lësŃzD…Ă®‘S= Ó^ń–Ę6Oű˝ŢđŠ~Ą¦IR}¸=˘š' ‹'VĽ@÷p0‰qc ĺmIŤ¶"úEy’žň=v;ËéĐĘ-9ÁB'ď"Ňy_ó$‹“‚mŻŮ^‚@O+`·2Ľ]óŽRŔSş—Jé6/FŘŻ8;Ć ż~uP?Ő·\¦l©łťźţLĹÖ;š&č™ ¬DéTbAř˘mmˇź»”ţ›!Y4…&‹wl[ĹĐŰ&E‹f4ěv–Óˇ•[g˙Z&sD÷„Lhëžă-¶2b»#*Ľ( QĽ•¬ű$ڬ†›3ăDŁöő:!§‚Đ2[k§Ť~OŮCgů˝úÍÄÁŽ–‘ Đ*ńëëd|)luňQúŃAm[*™ł¨oËl+C& ­?€É¸ŕ%Ź@5ڧ73ŠÍJ–Ô*f€Plěx!b™+‚ŮćÚŇD)ĚD4 7ă‘›VF|'Ŕű"6»>!m7„ěú6ď‹đť€•›Ź$±`O‰µărÄ‚m?śFúĘ]s˙Lx–ÁÂ7§U^‚­eÂ%AÁqý‚š({Ť˙7[éŶŔ¨ˇčÉI–éÔÂ[@„v!ĺfZoësŃFβ`+ŃiŰżńŽ?Š8ěEŔßëűi%/ÂŔ ˇż‹ëCwŔ´Ô#J«ę94ę€Ćąj}ž‰¤ Wü”Z¶ˇń»»ŮćAú€Kp|ź%°/ËpĄÎ“N‹f4ěv–Óˇ•[W˙ED;M:ě>FşGČ~϶óŤŔ˘OQ“śl¦ ef§ ¬–ę îÜąuÎűýŞ/ ŃŻâ:„K¬z&—xđÁçěľ˝T[vߎç|0"í˘Ú°ŚŚö.E\'ń/“ú`«Ż‰˙´=ÉY2˝2‘ůđµťRŁ­8oQ˙#Ŕő¬’šO‡Ůż/žUl <2OŤ'€% .’ŃVW±xë8‹í–»´wa”,–3 ým\ÖJ-fÄ3ůE”€FŚŐzŻA¸ĄĎˇ°cßoxS€{8rîř^ Ší5&ěL#Ü‚řŇC›Őł•tš c¸ĄBřZ»´»…Ĺç-ŞâÉ2ʱłüÍh؇ϥnm[QźL(8˙2OoȲ†g·§Zl;Ś}iüŁnJqób<Ĺśy¨WÔ+%4×”‚S©1ń(›/‹đĂ+ÇËgŃ’ŕţ:Uľą_ÁŁČ™)FÁ¬ňŮqő–=˘Đ/e"»âĹoE•anT1)îĹđt–ągAčo÷üâ+v2GtžĄŐ5óűÝĆ ÚSj?ĆÎ!kż˛5Mmś-FKŠćĽîŕl ›<ŮĐŻKVKúż™ ZŃhĹÓ#n 8+âśz띎ޖjóśqSŔÓ#€ÍýN‘X°9äWA;CtŠňËÄ{ł3[27~›‰DoTęƓ·ĹĐ‹I§E3vO®Çˇ•›Ű ΧL÷ó™5Ĺ٦Ι’U¦H©¬] Í@0«•ÝňćY‘Ĺ‚ö´IáÄ!ďiśJób€eŔ âj„í?<¸<ŔżŁăĎÔ˙NŠŞŠý9€°q50SSpš¦ĽŞţ#ÍXh†0/D%ÉŇ9LÂo®´ş]‹Ąe2aW˙ çMĆŮs[ÜjačyÚĹbíc1šŢŔb´Ş@ţ™g¦p»Ľw>4h`*Ôëjˇ!×0…xÂÍŔL5]efÜpFÄńË˙»*eµurYŤüoŕ—ţ,â‚€3"nH»–37#žŐěí±pĐ8˙ü$Hsµ3ĺBdg~p0ó1Xčżi3ŁSqęŤӢa¶3ĆV~‡Vn˙ çGĆ­˛ĆFKage Řšµ€Ľˇäm«˝­]¦¸‹ľđŃ/CK ‡¸áŇ:¬ÂÁ™zŇćĘ©?^q^Ŕ‡"Ž ¸+"Ü\fî-Ée÷ண>q^Ŕë"~ ŠVčS¨ë0e~DĆľ±ŤÓ–çŮ>˙Ů%ή~q[ńné|ÓҤSqęŤӢ‡Ér:´r+ůO(8jÚ5Ç&#qáŮá©0’EÝS˝b;"¶,Ĺ&ø^bšJđ˙‚D¶#ÁÁÓ#ZÄaŤ@„š7´StXŽx“łX±_Äí?Ľ1ŕĎ đ૨‰™Ér`6âÁ ŕyŚxc€ź·ě1‹O"Ő¤ŕ0…p âe¤’ś…ĹCöő˘tÂůR˝2ĺ?'ĎMB-¶RĽiµÍĹ˝sź [úOfÇŚT:\’ Ĺ íÁżÖŢr‰Ť)ÍÍÜŠEiĹj{H«—%B˝N=Ťä«1UĎB¸V >aű&ôüxyÄŤxSč˙Ä!ßîŹ;€üŕËŔ—˙D„¸?âűŔ!®ŠxSŔŤxynBa;âs€Ŕ ÂŤg‘X¬’BQôÓâ<ĎöĹ»ľn’!¨ÝşZ™b®S/&ťÍ8L–Ó!ąµmx›˛bÁ…ţvĚČd„˙ět¸ŐüöQ!°čc7?4¸ŘzD÷fŠ…&=kšĚ”¤{Î0ßÜÓ¤Š>™ePćś2/´řvD–$ŕൄ4Mtń,„żF<Eü%„«vËâö]ˇĎłă#ööţ?ĺÜĽ6b+° ¸ľvXV!«€íż¬VÔ#‚3lPpŞjÇ"J:-ĽG´gťa' A.®j’ąe›kl+‚0Ţ „|Cî0V ,ćzZąqRp|ÇeńPĐÉ?Źç"E`‘s†O9QDfJV»Y¤›„:¤;ëo·°|€ô5ő ›kŠ:ńdŞî}° ŘÝĂ­/f× ü+€]qeŰöž XptÄJŕe±O°ŠĄsŔn`'đ ° ¸#Ŕ/DüŘ…•Ű€íkjŢ  @—Ók×5ŘS!­miöŠ'ÖŔ^~FI8zt-ĂAO,2Ov¶ĎŢ B´řÄ"š ŞÉ8Í5d<¨5 ¶eTô"ÂŹsQóůg4˘CÖ°ňź)7ü >ÚęÄ!AHx%A ď­ÂÁ×–+•ŐÇEý"ö}Ó3OŤ¸#ŕŰ7<|ą)ŕŰw<5b&âILGě ěń¨~™Ő¤ř:*ݡá•ÂQgâ„J§%Žčr‹«ůË—B˙ç)•F‹ĺÉâ}®ĺňšđ\Mo›Ô,ž'şh÷äzÚ{.9˘‹‚ÎëaŽ©eűF<-â»wüŻ€˙pGŔwž±oIJÇ1µ+ý6#lD\ěCúB_S;mY=/fí JtPp0AT;:r*ŚłT<ÉZ–Bß »gěĘýF•”U\Ó2ůV˘R4…{’˘Ą•Ą†ÎÓú[T‡, Ž}Źč/X·[gq!PsđŻ5%ÓŤ&Ll«uzSž;·]ÂÇşl ő:Sš=˘÷* ŇW—×{ ż ě@řwOŮ…]»° ŘâÜT]nfźˇ7jx؆x8°XQ/ŐŰ3ŤîP@B`O9„âSŔÇP•ËÚv‰u@iOíďYšJłŇ†•nô‹zÖtŰ´Óa&ČhĄy’˘Ą•q¬V>>·ED;MĆ›‚ŁB í°”(ň,3ŠőˇE-I7ČÇŤY ™żX8ŻŹ–ŐxťC(tA`á4âZ„w"^,ë˙áłOŞ7™B< á‡OÔuyJÄěîFőzŔÂŔÎÚç¨úĂlŐ¤Đj,íw€™„)śV&ňC ¨ ¬&Č8ĎyńŞńľäśeeFj×XHË4 ü[b ÄM]´zDcŚ[¶ląřâ‹_řÂľřĹ/ţŔ>077›gdÆ Ďţóź÷Ľç=ďyĎ{ţóźÚi§Ť¦^Ľµ5<‡qXť …& c‘ť" SŇX˛­Bh|2Í(ĽXr¶‹ŽCś…hb†ö‹ľáňA§(f_áćz0o`Äç#…ř\ÄĂž@Ř„°…,›ž@< ńąG!>żżUUBŻ'\†p9â{X Hßëoſ҉j{ćµ Âŕ7čE·ň5Ő O-élEô7ô¶IĎľlc1«ëqHnşçŇď˝úę«7nÜxĂ 7lÚ´éěłĎ>äC^ńŠWP‡{ď˝÷ôÓO_»ví(+ĺĽ6ĎnwI+ű ĐóÜjm7Š­†„ŢŠi’ůđÖŤĹvĐÓ8†`~5Ô–PŻÉŇ˙‚Ě—Â;ĚÖoJTŹótýhG "ÖN„/#ţfíV˝J¸E<ŞöŚd_‰¬Ó¤Ďsáo_UÇ…3ÍľĐiN‘ŻĆĽ˘ůŐ@Ş•¤0Ş×ËsRwhźUţYʍľPź´yĄ!ť¶¦…;A®8ő¶IŃbˇś:Ńß™ëq(y.ń9˘sss×_ýąçžű´§=íŮĎ~öŢđ†ë®».óą˙ţű=ôĐQÖh‚@Mď€@~š3o5 iÄĘM˙·łykËKěH!V)*Ŕ@úĄX°ń[»3ő˛XŽřj„żE¸•…«K oEř[ÄW×ý˘3ŤXhÖ‚Úwd˛ŐNKóěi'Ů€ź±đpß❣ůgJĘr®µ¤Sqęm“˘E3v°{r=¦ç- nܸqóćÍGyd•\łfÍ=÷Ü“ůÜ{ď˝ëׯŃ‹^ôëżţëď|ç;7oŢĎ€p#Âúš…uéŠű4ú?±a=ÂŤĎ"¬ —!ĽńŇf 8Ő¤ @~ŮY˘çŠžˇ/ż‹ĐĽZÝ<|[Şdűň¬µ¤Sqęm“@~Ôš[7»'W«O–­ŃíŰ·OOO/_ľ@ŚqŐŞU[·nĺ>ÇsĚG?úŃ'žxââ‹/ľě˛Ë.ąä’ĚÇűĄ4çeđ¸>˛<÷hŃb$‹zŰÇ5%y«d䊔JYÚłj´hU’‚Ü-łË Â"󜽣űť˘_n˛°zś§ű/ŃcşŮÉ€âëÝ_¬Áv éeÎᆺ¦Żi~ˇ­9/4®#ßŃn‚ywhv8E‰MĎ*–1śŰĆ IDAT_˙DKlľwXM˝ĺµG4y?!µWI>5¦Ę2fĘąaOwŤŠGíé/µíĽŘâVm},"ÚibQpŐŞU»wďޱcÇĚĚ €-[¶¬\ą2óůô§?ťśĎ9çś7żůÍĽíŰ9]ľ#ęů§¦[®ĺ4Ž řiĚÓĘÉÚDj÷7ŽôAşćΙÝh‘sńĎ ÍŚ|ëť ö狾łYB¨Ĺ×÷_Ą_¶ę_EŘ6M@^˘XKć…ݡbĺ=ިMîc˙ç‘Y('()uҧdŕű wŁüS¶;y˘g[Ĺ©“~ $°¸˛łÄŇś›+˛Ä)xŔěż˙ţwß}÷óź˙|?üá?üđ”c|ä‘G~ó7ó–[n9ŕ€LMMUĽś/™ P,G[ćf0Ź6jTu™C’CR´Álö–,ô‡€6D EŕT#°‹— ü â;É&©»˛z›pńőV,Řčqť&,LK»„ŘiǬýŽD‘\ČÔ*4N¸}™bĚs«uzwľ92Ü!㤠Đŕ˘Ă”¤Jć©ů,$[‹YĹ\ŹCS–řěÂi§ťvÍ5×<ńÄ÷Ýwß§>ő©ÓO?ť:<ó™Ď<üđĂŻ¸âŠÍ›7?ňČ#ţđ‡O=őÔy©¦ŃřRźąZÉc‹@‘dšÝ^ŰĄqţŃ:h¬˘I#4 1,YĹÚ ß*#Gń›ŻP&ČÔdŠ— ¬mΔ!ŻýĺË ň{|™ȋ،űݡ=VůâÁzÎ~ ż4ŮM•>+Ţ'üŇś“N•Ţđ4iřřőbŇi1ŚFłfHń jó”-qÁÂÔÎ;ďĽ<đä“O~ýë_Ę)§śqĆîąçžŁŹ>:„ĐëőŢ˙ţ÷?účŁÇwÜ«_ýę#Ž8âśsÎ}=ףŰUoeďpó[Ëâşń썤EŕÎ3ZŰd,Ô z ŘŞnF†ÚHľÉ^©L­;0ă%—°YŁéUŤyˉĂL>#4\R#pZ¬ľŞ}P[#˘(Ůy#ÁV«ËQ\čgcýĺ .—t7ćwBמ&ąÝđ)ęZO:-š±Ý“ë÷Y´zDC+W®\·nÝşuë¨}őęŐwÜqGĄvŘaűŘÇ求Ĺ+Ńůb·ş{:Ü»Î'ˇŰSÇ}:´bk’e%={¶3á>'žőë­=- ÝhĘ'Ó ˛Ni‰ß@ř-ÂżŘěŰL»Z‹đNď”óMŇ._ĂÚ~Ť‘Â))â7Ôš[›IÖJŚ.GZRżhÖ!IwŢBöđő©,â!Ír®é¶bŹh:9EgM÷gů-šŃ¶Łtž‡îíđű‚ăö+K‹ü jc‚@Űa´4—%=kšÔXUCCW–«9s7»dm_€„=ODČ™‘ř4×|e"6YHËýYŁ}†˝ł?(č `¨?¨Vk˘˙ĂIĽ#”Ď‹ˇ x Ea3bş}Mt°[ „PnłţÍi2É’ńP©6 mÔŮą™^ĚTg͢ »ťUĚu8L~_pŢÄĆ›ÇÇČu˘Îiěś4 gçŠ>Y.ŻąBMugËBc((Ű]ćoč™ep ˝qüd ČáTýp0~5§X±—sď¬Yř'„`Ä€aˇ~›(®U ły1SŻ@ü™#Ăń03aÁ_CŹů©6.'͢ԩäÄűoM¤ŇŠâś ¨¨ŁÇbO™É|¨ťűhą™Îł`’O¬v¶‰f7÷dsŤ=XT=źšŚ%ÇEK¶5jĽá'nb—ťš,Ě„lěiq«†OfmŚ#„x_V]‚ ……ńz„ßFür„Y Ő2‡x)0‹đ'¶ˇ"b“‚4@Ľ„„zSŇB¦††3Ż×ůGÇJĆV—‡1ö'‹&Ë`çí;Eˇ3IÄH xmAČ«”é’ü´”ň‹YĹ\Óg Ě? Î[ŮG‹@-kžČŤZ–¨hŕŰDZrµxľ—f”Vô”;ÂŮšéTŞÜ^˝Ż)©¨š‚U?jVţá]9óúu|ď´ÂŽĂâ;‚Ňa†C–N…Ň/Úů2QBş÷ŇKôý˝uíĄş B˘ť‘•ŚY.µsŰEŰpBů÷BôwćŇ›2‰G-ÚSát0rµ,ŃÎŤE‹‘lĄFîĂŰŃH›31™)˘îÁš“bě:ŘĚÓ|y~c.Ľ7’ęŮ:‘)6‡ôzÍ$-d¶IÁąĆ `\§Ô!í(0 öů ]8MZ`Ę’@čĽ.€ă@Ô§ÉŇ­SŚ‹ B(đ[HÚv(Ś,ć*2ˇ`k±ľ3A ÁÂáč) &˙DéĐ\úˇü TڧWˇ±ôęŞ}MÚ#-aNš*F«lBDŘkv“Vݡg(ďf‹x˘(`Ą/çzˇy§ŃH.»‘ŚĆ:óˇm´]ÚZt°K3vÝA/&ťÍhŘí¬b.“ [ ť)Ôî jŁE`g#÷™?•VäÍ“-ŞgUľ”•˝ÝmKČĹf’PAu‘őěĐţ4™Ż±]đ­zť($ 6•Á¤ 0« ?RC¤@°Q_ߥ Ü˘¨§ÉŔěĺ=˘hÓ)š%‡!JčMU„€ĺ úhFqsOV1·)K€‚…·ćÇEÄGĄ+7 ó†@Î żŢAÉÚ­éŃÚ&MI:OÚÍ_…@:)ƨC«%Ż’ń|ÝŚÉÂáę—č_Áş+•ĎĘ´[ÄÄ4çĹ„ę·<{¬b"łŁëpŠę–}ř+ĺŇW·‡˙żĄţaIIM1ę­mc[ĹŻkY˘…;´5ŠvÍß™Kd‰ż5?ŇůRµşöĹ{‘[üɢŢA)>ĚE·L`Ó˛D§/ĹĐłÁłgÚG¶v ĺ_Ň›‚ń›Ŕ,Âi_•Jä-Ăě5A1Ě6 RDx&â×)Ůř…‚4 ”†ˇ\ťţaů@úqQoe›QŁ˘‰Im-şń2ťŠSçY0C@îŔ} Łmç%;skYsDÇ;´#WËíÜX´ř“˘ž‘¦­b°ÍXkI­Vb“—Ir'ĹÁF“.ť#pááŞ'§„3őW˛÷üÄ8oZňŃ–™šsa´(°-˙DižŘÎČsé¬_ß˙ ^çÝeߥ™"&Ťµmô+Ühčm“N‹f4ěvV1wIÄ‚cLÁÎ×F»9ś7MŃb$ł˝şm,*ĹX\kÉb‹FŹKlÚЦËÓ\Ú›ôĹ#ŁI–,«'é=ÄopĽŢ}üLd˙L(źÚ@†µŠńúóC+Št&ćRV·Ť±­XšLz¦IcmťJŃHkĹłŠI§…ďĹv.f•r—DzGÔľ$†C+»ÓčżS=Y¶QS÷ÜsüńöĹ´–1Ł`űkPČrŢE ż‰=÷´çٰO˛¸6欅˘zÖúdĹŹĄuhm·|PĐß)šşÁŚxÂ’ěhÎíI„ăťś˘C“…ˇâ”•ĎÖzCĂ_Pęźć‹o3ő–0ź¦ěÎ÷¬ťIMáFżn$3gżE3v;K’Ńö~ä#ąóÎ;żđ…/Üzë­333W]uU§bÚÉ8őÚgżíeó_ţ˘Ĺź,ę¶±ŐŁč\kIíéĄM 7f ¤yˇÚ&m[ÉÜ"bĎ`ˇ8K36“âÂłŞçę1ÂđŰסß/Ńč-Î+< śxý éęÍęśí(;A±° ˘ý2Ú_Óä“)iM_řK7OŐ/JłŐlN¤¤ĆT&/ż[§hpĚ5MIQ) ˝mŇiÉNTŃąĹd„sDcŚ_üâ˙üĎ˙ü  !\y啣+Ű’1‹EÉeO–fäö˘Ĺź,ęx¨’5ÔΓŵ–ĚÚ5Şg•4–Nh °¸‰§LmC@rÓČç‰Kj‹8€„3¤¦7şFůK‡˝~Ψ«Ń“öčg!íäđ »Ô):ä…¦6ŕ„Ľ÷€VHŇ3EL×FR´Ó,1ש·Mjn= g;«)#Ś{ě±Çü¶Űn;î¸ăŽ9ć /ĽpóćÍí‹i-ăô5QŚ+a\?ʱĹyűÚŹAĹxDŤµ–ÔZgV-Ů«ó˝”ŰBhiˇNfhˇśkĂնń›@Dř­~7fĽŽAZ‹Iá}řüv.ĺźýŽ ­§¸‹˘(Q`˛´ľFě¦×Tëm[UŽů¶)9Şi2˘sUç,4ĚöĹ}Ň‘ŁĂä“e‰Ię,ZřV†Ń°ŰYµtř•]*ôkb›7oŽ1>řŕ_˙ú×wíÚő'ň'—_~ů{ßű^ßşËxA-čł–%Úą±hń'[é~Ĺ“4ÖZRl­’N“ĆR!°m+ŮëµŢdP7mPťŢšă_”Ś˝z"(ęd$,ŚŢŃĎ®+÷&g Ů žY€ö4EëEŁśÖרޤ×ĂÜśzsR%é­@HKą‘n›rťJfĚÁÉE0ňuî=]Šž_Ů]ľ|9€ /Ľpź}öpöŮgźsÎ9žÂ‡”qĚ$č¶Ąůs{ŃâO¶ŇýŠ4Ś´ 2ŚT1ô¬iŁؤPmC{iED€Ť˝%iE>Čeq!' …_ú:  k˝˙6a"Âiu˝ţ& §×Y_g»ăü+‚”…Ti…C°(0«s› Z‘ĎľűK űÄhćܨµ?8@HÝ:Ä‚ah:ő¶I§S çbĐţ–SĺŔ\±bĹîÝ»«äěěěĚĘ̌ 7d,)(Ţ÷v–hwy[ďLuۨ)bŇ0Ú펦$]$­67vřRÚ0‹Śşá#ÂDDŠFNÁ´î‘îź:,ażÍę{˝T¬¸á'Ű#ľ(0Ů[\#évB‰‚ŮMUýofĎB"jO–,ş\”Ť)YThőöáfžćlgŤnrÉÔÔÔ©§žşnÝş /ĽpűöířŔN=őÔQnČřQ0菴–%Úą±%ă'K|ÂŤçßn ŚF$[ŰFQ“˘%-ÝúBĹ…‡b€(Hç0Ł ÁČżż9˛UŞOlŢł˝'%Ł $ř‰,Ě*É脢JOżL1ć–Ú7d*3S*±űEłxŽ[4ţˇ%µ,@öIvQ)ąŽ1&”¬˛s'yŰŰŢöž÷Ľçĺ/ů˛eËN;í´˝˛GT>Ëf–hçƢşԲDè5 bRË}´$UhQ†….Ú ňťŠ=­Ź4ąřó鉴!ÍÍÖ ©RIŹT&ţĹććöŽ2Ú‹čiH–«EÜ-+Fąp „í;3•™)4™úEąĐK´ ¤¶ŃCGřHkXŚ“˝E“™łß˘ »,#‹Cűí·ßW\1Şť2N ĘSÝĘî4ŠŹź'ŮJď ÉVk-)¶Pbă%.éy'á˛F3ShVµh›XôŇ:E‹|á …DOš ł0HhÉ6ˇkŤp=)7Űś—ćOwhÚ˙U’!0AQ›##*)Yő‹ „#(ĚŚEČń­<=Ą)IíŮ~ąO:REͧCRł.ŁaÄă-Řó.C˙ň/˙B-c˙ľ żą »ÇZ|ĂAKuZ¸_1ĐŐv­%3ť5 ]Z!pą y­ÄČO ť8 R’3¦¸ôôÉ,Ú ď=榕f,Zťµtž"3ÔŐŐtŢŮ7eäCżiVf“ţµ‘ô+ÜčÔ=Iۡ­Ń°7DüČQoŔĄ–qŠą´ş6ÜŘÁâĽEÝ6jŠ'9Ěó)6TŰşt‹«&Ď9ř§-ĺîPčv”p%%]DŇő”š¤ łČRŰ/_;áÇÉÇ.ZlŞŐ“u&·şčŮLŃĘR­ˇÜä]ŐÉnˇĄŤҤs]ŐĐŠJŃČu¸‡ Eşą¶•f4ěÄĂĚÝňůĎľ•˙SPĽĹµűžŰ‹˛•nµV ă–f×ZRT2ť'łĄ@Ł·St+z&‡‚x† mAĆÄB˛µXŤŚX@¦gJQŚ@ł uŠň«–hż2 ”´—$@hŔŹZśŁ€ö¸`` ¤ąÉž)( Š:őłĐä\(ˇQ´EλďĐCíűďżżhK j- hw3‹?ŮJď IĂČŮ&E%Óy2[† ĚÜ lŚ ç0aĐĹůÇŁrQ˘'ϢüKJ6´YčŮ©g Đüď!] „"Ű fŹá¨@¨)­âBŃ!1S’U:čm“š%ŐĘö4ś6˙„-{챢]{süľ ”s*Úą±Ĺxµ,űö+bŇÎ=µ$U2ť'łEC 'ćÓşC3Ďl^ M¶ŁSÔ ?žLş#»nł5 RťÓ.łh8,J«x·ň­Żę–=%ëM Ú)šuŤR,4Ä|‚:q(;wŠRŚŽ¶ČYb(XřV†Í‹5±‹ŰĘ}AmľŘ9icOthEľ,Ůjm °3ťQ`ŰîPŃMś&Zí¸°6†”|2Vń¤!„ŤÄ ­EÚD4’"Śř°‚˝6˙:d—¬’l‚hp‚ŐÚÓ)Z‰„ń÷jŰéH“đ03˘Ež•6áIľ­Ó˘eéöŘ< ĄĚÜÜÜ?üĂ?ś{îą—_~ąć?N×P'˛M4Ú’–źéÜ_tŕlŁMµó¤síÍňoe ĐîŐä çźř^D^ín]%ťB‘4YÖÂ/ţzzd¸k_5ze3Ĺî!(v•gŤBż·ł¬âV­ÖFR´g 7˘O‡¤fqë9˘˝^ďŘcŹ]˝zµńâXTTńxŚüúů“­t~›Š ućŹ\«gO|hmĹn ˛Ĺ‰@Ź=ËŐ:?ůř“Ç ąŹ·Ć!j z2čoJđ’µd±2žĂ1FO[ťŇ[;ř§]ń!o'Ďëüé(>(=YöÚHŠöLáÎÝtOŇvhklzčËž—ąąąýčG÷ß˙Ă?¬ůŚĺěJś—¤Ĺy3‰şm,*bŇ“Őę!´užL‹­ţëךĹÔJ—ÂäOŹh¶•&ÁŃŰ÷…jĂ„š=(JPgSbř sr$çžô3íĺ=˘|\w‡fý˘|€Ą®Q­3Ssë6@h;rŇŻ`ކ Eşą¶•fČŘ…R|¬-„°fÍÍěţsIö¶–¬(žł Ý6ŠŠ+ľÖŃÇŘ„fŮ%ŹܧmŹč@üśĹą•ńolF T˘Ĺ.Vł@ٵ§’Cž q+v ´kWěmu ŇŞŐβĐňaĚüµdQ)Eťú‹Yˇy{v·x,bQ$o;sdőęŐď~÷»µÜń‹µkŕ1Ú—ÜH¶Ň‡QÄŁŐZKŹ=Ő5Kr‹Řä=˘Ľ(•|­&Ë 3ú•IşčĚ—P[h’VŐxţ˘P‚XFŘ”´=-t×:ůLm‚ڦÇařĐ#Ĺ'ěW&üŻRT‡fż;‘”äL•zۤfIµâö\\ˇŤĎ<ż58ŚÜ~űí4955µrĺĘ9~/Ő2fěF;ŹEc›‘ĹI&ťäË’mAčWśôżÁ‡Úöť˘9Ŕ†ŁÚ`‚h7I¨Ë’6ůlҢ’"®CÓ¦‰¶Ţ˛Yb¤ý˘Ywh˛ř{D)í8cěňú„p4Ž.SgʍóU j„9[ÁĽőŽrȉŘăt”ĹusÎ7ů¨đ·ăżöµŻ˝ë]ďĘ>šdś(8*ú“­ôV,„ťYčˇ 5ŠÔ^i°qť)ůőIĎ›żű’hüA _Ç@ZfRř#fˇ*žˇAŽĂظ+’$ěU:UŠ L´ă! g!ˇ·É®Şď{ŹPÜŞŰRtHŤ˘žťžE“âóX»aµO|âúЇ¶oߞ٫xôoţćoVŻ^MíăDÁLşAqľŘA±içY{ŕ—›łß ôLŰk…@î)Ć‚} ÚđÓÄ cdäŤ~âÜÔv$]a6áIQÄ˝{ޤůóăb‘_`–b,hĚ‘CŔĘě6 FTżG¨5ÖžřĎŢDś#nâś)ŁŃwŃőŽ=kĎČ_üĹ_ěرĂď?®,ŇÎcŃŘfdq’‰ĆnäË’ťá—%‹äË’Áě5ř×ÎX0§”3ÔEíµ74hÄ‚h*(µ śp„˘"&©({/wŠňs"=4,”|•´Ť Ba!cüB˝Ř;ŞŃ±qčľppČaBš¤s*çŢѱ‹gggë·~뢋. őüĆ7ľ±nÝşď|ç;V­Z•ůŹßÔ04đ줖5< ýäŤí2Ł­ĚăŤI1ťČ;BóáŔVá ĄUPh#ű{áč˛cAŃÇ–čvăt)LÉđQfüC{Rři,Lâ&¤`3Â; c4×€w3’hĎ?ŠÉ^̢ÉĚŮo©3$ăž”kŻ˝vnnîşë®»űî»wďŢý‹żř‹Çüg?űŮqůšvá jX@u…ÝŘa­ˇ±3cÖ ZäÇž„{tFL%Ł “݆˘“—IŰ„0+VkÓ F:Ĺ@`l*Ü­S ’~hŠsĆč ÍBÚ;:¨o›‘Âţá:ľ ć)aŢQ›r6üćŁw4—±‹§§§˙÷˙±Ç«’ßřĆ7>ůÉO~âźĐüÇéR{ťm›ym±găÍF Č*šô¬5zń\Ń_d5äZ`=™C"0ŰQ>z‡fR´díš”Őď͸M¤„‰±ZhZBÓ˘Ů^š§&TŚ˙ꬪS4ĎňťOË‚>ůőŐq­)âÝ(Ţá!`ýúÁ«„öSP|” ?wÝj-É•ä ůpŁ­kYbŇveěľ vĹWüěg?;묳^ńŠW„~çw~çÉ'źĽňĘ+5˙q„tŠĎméŢňů-[LFí9ÉŚ¶ÂźŐ,jţˇëďĹŰü ü‚ŢŞô´żš‘fÁĚĘŚ îľĐn±`Rřş(< cľXĘĘęcD G]ë˝ćč ˘Y˛(°˛Aa$“b*鑡AşŘĂ„ĂČRęmfE âĽQNţń˙ńĄ/}é»Ţő®ë®»îşë®»č˘‹6nÜřío[ó§XŠxÎy4·"í<˘[‘f,¶§§a­ČÇíŠ˙×ÓeD3é'bŐđĚ$"FiÁlsć% #FlWíç঱řďE) #ÂŃŢ0Úť©-Ú÷e<Űz:tz¨ˇ´ b®¦đ­¸Q´sÝHfΚe c öz˝™™j™ťť ú!Ś%‹×Ŕź,ęöVTü·»±ö?‡š?©Ĺó{ńĽŻIëĚ R»¤6.°&Ď…ŔVmqöoěAhe6şSřăXR\Zâă@ŘQW§Ą:Eą[«łíˇv· ˝omÚDä ´n]‡ÇÜ6vP¸Ń©·MŠ–:ĂwĂ/śĽđ…/Ľůć›oĽńĆ*ůľ÷˝oýúőG}´ć?~=˘m/†ó2Ű·‹mĚOŇÎň<$¶ÂÎ,™–NŤ$kq¸n4dAjÔ˛vĐ‹@4“nËŕĹ@‡&‹[fˇIîl—,ę<)Z¸Dâ›[‘ĆţvhiŃŽ:ôAX ť,C;BS2[óÉ2 “b<ý˘ŮkőŐ|™[oíç/b?§čăě>ÍŚ4 ŔeäzňɲÄ$uN–\Ć.”zË[ŢrÇwüó?˙ó‘GcĽöÚk÷ŰożóĎ?_ó–‚[¶lY»víŤ7޸|ůň׾öµo|ă{˝®'Ąđěd+}Ĺ BcÝ ~I±—YF2¨ńĎŔžAÁlĹżę䋿©kŔ/ꊥ Š›n)É®#O6ޤ5Głň˘Ą%Sš)|tĐ#]ś/Úc…Ú0a`a­Äöť‹,ÎÍz"ó2O@đłhžsµÇb>MžűÜç~á _řńŹĽlٲN8á#Žxő«_}ĐAiţĂRđꫯ޸qă 7ܰiÓ¦łĎ>űC9óĚ3‡,ł/ó‡Ŕ!Y8$۲P3Š LĆâëś|6ü ţáW)ÝXâ"ÂAÍ×ä Ú “\4ŕqxđܶY©J6 3# ă0">pâĂR—U>čI5 jAaĆBŞđp2Ď~›0’—(Ş6ݞ…s(łsçâÄŰHkĺTŇ™ˇhčm“ąŚ],¸iÓ¦§>ő©O}ęS¬]»6çĺ}ÁŮŮŮ믿ţ#ůČÓźţô§?ýéoxĂ®»îşŃP°ó´¬áYča«µż¤şÂV! Ănüł)#-)m¨%“°|2"DČČ‘üË•ršśłđ–ˇ&ę줦Ŕ€gÂ÷ş¬ IDAT(… ýłFyč ѶůĄU8¨mnp‘&i­śüsBłŠÉ†Ś],xě±ÇŠví‹ŢCa|ăĆŤ›7o>ňČ#«äš5kîąçža ¨EKf:…“źv6„’s1éYg‹hlµdk;”Î2ŕÓ2·n‹€@ço˛Ń*ŇQä_dYÝDl±ݧ›‡ ró´ô_ěöχűÂŤęţáwŁv‹8wÔłˇ˝@®ýkgRS’3U2ٍkţZ2wěŘÍm+Cł۷oźžžNsRW­ZµuëVîćújZ%ĹË %‹şmÔŰ.úŘ7´h´ţ¤eÉ@řgô‚Šü|D4‚ÔBia5][ŤŔFÉš®‚& c7տɱ¶‚n¤ HpĆÁôď˙Á5«I’žO(EŔŐÍ…€!ôĂ8ODX%µŢQ±Të#M˝ŁnąĄK×hQZő‘j©&ˇeP8|ď(Ý–'e»XĆ|sss˙đ˙pîąç^~ůĺš˙P\µjŐîÝ»wîÜą|ůr[¶lYąrĄ]'*9ž\§˝Ăşü’âI3Fd^ąü륄v#ź¦7“ăú&¨u[ŃČ'2łwn7)Ő8̸µ´ˇXëń„Cš ĚD˘šWȶ=€ÁĎĂBĹ ‡PŤ>Rí»ŁÁß(I‡>RŽť‰HOo7¶>­e·’…ůĹÁ^Żwě±Ç®^˝úŠ+®8餓Dźˇ(xŔěż˙ţwß}÷ ^đ?üá?üđa “y4Ů…EĹ źh´±—‹đŁ:O&c‡ď‚ŠŔ‰hSĐH¶Ž˙¨ŃOÇ"mD1p8 çĐőźe‡3ÚJ­W Ô3ó1¤= S`׊…<)â°UDéW™˛¸p"¶ ‹ˇ!M¦šP{¦ĐÚjtäž™˝ÝpÝŢ ů+»Tćććî˝÷Ţűďż_짬d( öz˝ÓN;íšk®ąâŠ+~ţóźęSźúŁ?úŁa ě‹­ô!É—%;¬54ú)Č-m'ÂhýźśvöŠ8TC@¸Ť>Ý:ɧ‰¸I¶•V÷ ŠşŚjI‰Ę¶|śD¬őř@}&jŘ :705Ő'“ČBľÖ ٬ѶaÝ{ZŔç 5Ž@ŤNEÓ řyA8vă<î !¬YłFóöM‰óÎ;ď˝ď}ďÉ'źĽlٲ׽îugśqĆPĹüË’~ě‰Fu™˝ťIżžápř°?'ůh˛đDcIď FśSTĤ±N">˙~c˛óQ„\f¤¨3ÖP’˘’Ę~5 Ťß ^ű÷ eaptŤfPÔpČ“C…0Á‰ ¨=–{˘ŃF]fo BŰčŐEË<}Í ? ĂÂĎç0ř´§(”ŕWd'ź†Ŕ¶üŁ’±0J:§šů%±ăBźČ˝ŁEň‰ő7=05Ő@`uz‚”LŠAĨLźéŠD±ÎM×)3ZhöŰ–@ně 7děbÁű·;˙üóŹ;î¸7żůÍđđÝď~÷ŮĎ~öUW]uÄGţcFÁěFé†@#×IDm xbV+ Š Lv;fĐ? „íŕ'ťÎ¨)BŰD«4ÖN%Ómc&YkHYé˘ÂńfpQáÎĹţOORź73?í<hÝ;ôp0)ť ŰŽv#tň’S•l"‚ńŻ»XđŇK/˝ďľű=ôĐ›nşéÎ;ďpď˝÷®[·Nűąůq˘`[:YŘŠ|YŇą~T-­>ŁYx,ŘYrˇVĚŤşC Ü;÷ŃrQR2]ł’ś3f,´ v°hÔŠ°6Ín‰CÎoÍHŞ\M­îÉá9qČąH€ČXŚ ,(ń&ÚŤĐ&S5¨:˙ÄÜvÇ5v±ŕ÷ľ÷˝N8áuŻ{Ý›Ţô¦—ľôĄË/żĽÂˇ(ăDA*{~ÚĆVAěZ(Ü>ňřŻWÝń˝ěÜ6ůwŃŠ{„Ź‚âZKR%ÓyŇÎ)’eůYč‰ü ©–ąÜä#…­phďŽq±G^®Ą®Ń`v“Š˘ňĐpľÂÎ}¤Ü-ŐD„\Q) G:v± €'žxâ‘GůÎwľsÔQG=ç9ĎٱcGö»»TţöŢ<Ţ’˘Ľ˙׹wćÎĘŔ€˛„M‚↠b•e@@ÄAhô5č/•2b_âň•Ä=Qd1˛Ă0Ă š€ ‚ÄĺkT–a–;÷Ţąç<ż?Ş«»ş¶®sîąĂďóęWżžŞ®Ó§×z÷穪î©GÁFţŮ~W,ĚaWó ’ĎÉÉ”€9íŞOúO© 0/*Đ9đ뙂±¤í$üXŽo .:8Ěa!ˇää« 1–|Ťâ\´¤eĺŢ/]„˘¶ {…áĂ8%‡ę‰LÇؔӂ{ď˝÷m·Ýv衇‡zčYgťu÷ÝwÇ^Ăć§`Ă;E{C ż4“˝03™ö ´ůgKŔňË!ßÄáWńO×}ež“Yű@RoüKd:óX2č8ľź¤iiB –Kmú~ßYč3)âŤ˛Ę ĄČ!\&C˙¨5ţĺă0­ ?¦ m@ß>š…i"¦—#óĄˇýwNBü{ZDDO?ýôĄK—ŢsĎ={íµ×1Çsá…îłĎ>§žzj¬ü榠ýťÔ{D{@`&ůśd>óáW:i 3%`˘ń/Aľžá×{`—&4¦LgŢôůů‰ś ‹Ąĺ qňů99,´ńăgf8rż9S> űĹEk‡tŇžqč; "úqQé·ŹöupLv‹Ŕ đ‚hôŮNÂw-OÂnFŰe—]ľůÍo–ÉÓO?=]~ęEDiÂ^0ł+ň9É®ć9đ+ť ůüśrZ´¨—^0 ć 0ŐäˇĚ® ÄřçŻˇŃ &ç±dĐq|?Ů2żl=+żŇĬDy™Nщ4‡…ýŕbKąŚ»Ĺa0@Z:ÁčhB®Z…ČŠµ|Űzb‡Ť?LpŃN–›×čŕaŇńk6ĺ´`·6ő(858řŮ~,3!GA¤e_#ö|ř[‰·`f†_k˙Ëů ż ˝ÎcIŰIř±ś| ˛ÍÉ·i7qň%¶Ä&˘ă”¬ň ełę_®O°°[.–,lU5{ ‡A(:™ ]9š˘«ÍdQÄ>ÝËÁD84‘L;‰Ě€M9-Ř­M1 fŇ.±4ťźÂtfWڰ‘ŤŘkD`°ŕźÝŘoţ!˝ľ&HµţÂ/Aľţ‚Đ6r=`Oęő‘Ť±ô<ř“­2µöÂłů×˝,•*^7ăă0EM˛m"Úľ$GS”˘xK!yŘ‹žĚÉéAj/µ·Đvt™ŕҰM9-ë}rĎ=÷yä‘«WŻľçž{ěü©DÁLÚů™™DLă0ź1ŕŮ™1ň9™1n†ĆżIá_kú/öG1'LdŇ”™vßO6ćç/'nŰěĚ 3ÓŽńú‘zÂ>VďßCľ˛:δZŰ‚qR› ˇąĄĐ&G#J9ůŤP f&Č— ˘íéčš±Ě&Ó“ő•ĄM% jK#0ßiD`ă<?ßÉa9Ą[űŐř—IÁ\ţMŔŻŤ˙›TúeüĚ “đc9éü´©ČcůţźááHd:HKdć€Đ_ŘÄłF&kłĐ§ Ék2Ěi)ÄC ť â-¸(·ÄŇü ¨Cßt4`YZps’Ďy›6Đét:ťđťď|§ăEą§'Ŕľ€°[řĹüD¦/'»ń/čôŤńEŐű?1ú/Q>擱LżŚźi;™~,'gQĐ2Q—iÉDfź@X†IK]F&€—ÉKĎ×,,ˇOÁt?'3ˇ ÓM†±–B B*ĐdřÜN¬±Đů‰ť´7 ljěCĂöovŰb‹-śś+®¸â#ůČ=÷Ü3oŢ<żüT˘ŕd 0„ů,L“ĎI6ň/†˝ {nüóáWtíy ~ď„~’ď“Áyf2ߏĺä,Jü$V}ř‹ěśF?Í<"ĚĂš;™™ , +ä÷…ŁżÖ„ÍÂ{ĺ˘fˇR]ŕ°śçÄ .¤Ţdk)lÔ…á󟌎:É®# ÓNŔ¦\»ŕżýŰż}îsźqňuTö?˙ó?wŰm7;*Q°´ţ"0¶¨+ćS0‘™#'ŘóĹON”]&]ń'!ýüŻL6ÎcIۉeúÉ`N΢´M„Ô‘ŕ”‰1ĎI&ćDppBDÔaŇ’…P—†ivĂĹr@…fˇ›ĎĹDŚÔáźĘÖ…Ž(ô[ µ©&]°4íĚ4'„±křIł/}éKŁŁŁůĺ§'H>'ŮŐ<Óń!ç$S˘0Ý˙3™đ›(˙čĽůł)üÇLç™É|?–“ł(Ólž5.rrlćáůŤ,’Ç’1 3-iŞ÷&Í!ő;éůöŕBĄ?Á±†>‰B§Ą°g]čXo±ÂýŤ‘lĘiÁv»}ä‘G.Y˛¤ü ŕUW]µlٲ[o˝đż¸;•Ţ fâ͉Ŕ¦)aŁěY˙ĺĂŻĺ ĎaMĺőŤ±]uÖduś|ÝÂŻ+ f&óýXN:żg+Wč×2i6úíŇIŢK'á+du˝ŐpŤ[ Â4)©łZŠÖ`Ýâ°QÚľ/ µ––‰@?:ÚC\4S ć€0´'Í{±yíßřĆĽyó,XČŘŘجYł^úŇ—úí…Ú¦ŇÔJŰ<Ě_é4R0ĹV+*c ě!řéĐÎOvÍż`Ž—můK¬<čÇś`28Ź%Žă7&óűh1úů>ó°ŔfűíJ'ś8 “ÔÉZ«áv€&u~!q*°Xġÿ•'K§“ü„ˇ- ;棉iiŘ­M‡ĺöô„SE žp ‹-:öŘcźóśçťNç§?ýé÷ż˙ýkŻ˝víÚµ‰>#˘ ć3Óđs2óÉç$ý© Ř•ţKČľ.ř—<;ßâ鿉0LĚcI22»Ęńmâh >JK¤ŚC©—I Đ^I·$›…¬éÂßBíd=QĄáĐhłĐF`cWš®Â¤>µŮ˘0Ť˝(c,‹éÂpč+·! ÂЦ7löć˛˙řÇ###GuÔĂ?|ĺ•W^yĺ•«WŻ`—]vY´hQě‡SŚ‚™äsň{F`¦“Ŕ^0S#pĺĘIěü’ _Qž‰Ň.źjůküGB~Ě!™™™Lű~2“łh"\­Š— ňĎÎ ’Ďöt’>üśĚfĺÔZ ·óZ ÓôAaˇ˛ú‘:D,)Ř•.TyÝgV­˘ÓA§0hŞ©×L¬ŮĎ/“h5L3ĎĎ´WRć‡mŞhÁ}öŮç‡?üá«^őŞŤ7J©=÷ÜsѢE‹-Úm·ÝTüN% NÓ™1ňŮ~x>˙đĆBô~>ůśĄ&Ć?Ż€+ţÚÝŻ™&ź&&ći'áűÉĆüŢŠ5š&Đč/Rńd‚‚ľ“9O1ÍÂɬĚ@«aAě…2U} }yëĹŁ ÁĄ ŤŔR¶Z®(ě94šh&ěV’ˇłÔÎw­‰Đ›ËÎ>űě‹/ľřꫯÖÜa‡öŰoż—˝ěeĎzÖłZ­ާµő€Ŕآ"&Čgű™´? źŮň×ů|Öř—Ögů”ú׎đVŢk ĺłąč'99‹úkŤăF ů…ÉÉa Šäs¦B‚–†ŕµĆ@He ´wřWBQEt!TŔłçŤ8ÔIűăő}1„v~#™Ť ŘTŃ‚ .<餓N<ńÄŰn»íꫯľá†ľôĄ/}éK_ÚrË-_ůĘWîż˙ţGydđ‡SŚ‚>ó‚ůG`Ú‰1/i#˘đkÄ^ iěµZĹá˘h&\˘L)ţÜÝ®Šx’L:óLÇńýd"ł«“j ţŮŇ™]°t2ůç;™ L˛°”†¨z«a·,—Rá°da»]Áχbf¤´„_I>_–I(¬N‘§şl¤%¤ Ľů™ĺĄAŰ$kYj_6Ż)ĄöŰożýöŰďĂţđÍ7ß|Í5׬ZµJ7>(č#0Íąŕ˘X™nÉgűŤSş#L~Ać `Ő¦+ţ%'µŐçł/ŮřG~Bľăŕeúů49Žď'™A{˛@¨˛˙şď,T^fŠi f/Q ęSšh5Ěś¨±pp0?ź‚ B ĄP'8LĽe¦‡if€4¦ ÉaŚ‹•őY ŠČO~ň“N8á¶ŰnK4ć5ÚĐĐĐa‡v衇®_żţĆoĽúę«c%§µMvEA=·˙Ą[ţśLý[ă#_zĚ_Ďń$§qî'3}2ňPŻK-}rM®L.ŽUAţý 'BA'Ůëm5ě…8´;‘jiXŢ­1R…PÁ,Ăô[f-( s@č/˘K¬wPmýúőK–,ńßyÝ›)ĄćĎźÔQGuÔQ±2SŚ‚Sů ö홍˛Ż*F@U´»<`‘/ˇ˙&ΠOý¤·¨Źô’ďőmU}4ő7}ŰÇ‚¦ól?ŤĂ Ó8ś8ď3~Ë\˝=łĐÚë˛i D„P9ÁöB?@jGGűŽ6śÁ' „ëł<óĚ3÷Ýwß«®şŞż«MŘT˘`>ťźô€ŔľPđࢠ1 öŚŔŞ p‚SÇjkqş}¦…`ŽL$›…Žă'ŤŁÂýšUčŠÝ®éE¶őç9´Ď&—ç•K<›—÷TMĺŞúÚrX:1ţ3ť©•·TŐ¨ť¬4é6MŞŢX›l:ćô ńˇhăP‹Â~ő—a ,Nr L\oÝn»\uŐUřĂ–,Yňt¦`ę jÚbśłeföŚŔ45®ě—ÂLś –ńO· °{ňi§ÖółÁżčů‰$CNŚváęhtývhé´ŮVއËÜśšŻŻ˙Řą(éŘÂLě9S'ÎB} X9r_QŇýrEŻDTVcˇ#ŤŽż2‰‘Ú× Ôďí* ë2“ B2ç32`YZ0VóŰo{đÁ?űŮĎ~ĺ+_ŃC6›M±7¨Ą9[ds+Ů-ý|›sÁ†ŔĆ(h·üłáW„@]`áTÂŻěů©_řŇŽ¬!ťě–Ds‚•¬|Ď*SÎń˛„]:°†)„@űşťš[ĚŚ‘ŇĚĂ'îŞ8öüśŘdŁ«Ély?(_Că÷&mġ]‰Ä–RĄÂ8,™× ť0ip4a'Â`fŁ. Xßľ˛»dÉ’|ŕŰm·ÝoűŰśuöËž Q?3ČČ>"01•#óő_Wđóů× ľ­Kő¦¶ŻżíłůmĚţE& cŻžĂĽqŹ ‡xÎdX“dOÖ©&G!—ş\ôŃ‚b‚/GyŇСÔ~RëMúU ¦,©˙©u@”ůlˇŤş ÁM–ŔH·ÚşĐMŘňľë´žAHsŤ8 Xßî‹;ďĽóÎ;ď<ůä“urĎ=÷Ü<_¨źJÔ–f[lľŮţĹČä_ ~>˙ň`çSM˙Ůđ Ň.siŐkÝ3+WÔ±·É8 %>ůŽuußnNřůÖ'¸ű*é{8,溆˝´–ăëEą:„~Ňdé[­"¶Őu]dˇ4+EÝÔ†_0LĎд–ly]f —ŽŁ˝ĐI¦qh˙ʵľőŽŃĚ‘ßţö·‹/ţńŹÜŻ5§mŠQĐ9Ę™t ÇśŇďÁľ0>} ¦áç#0Đ &Ať€«ô_Ůř—^'Ż@’»vÝç2OcĎN:Ž3:ÁäÄ-Íąž)h˙°çmN˙p˛…Š8!ÚŽ|×Í·źŠ Ąč¨ňm§c9 " ŘM† ]· öó{ÍÄzĐŘ8t¤ˇžű´YXŽ&ś 1őa„XlËaÔžÜÇÄ>ŘT˘ Ďłüy΢ÉC`LćŔϧ`Lh2Ť"[˙9ŤAć%%č(Đqź\n-uWNÔťÄÜv‚Éž-vß&îçnouż|·ź([4IÇ'Ť@{ä u.úáÓ«“üó“/Ů P°j2ôuˇ N_j«GJ•bĐ…4Ő!>5đ° čÄEť/QL„vŇ^é8Dśű]`Sd›‰S°~˝°+ž ÷@ĘľXW„ó3{`§c1Ú~“L+-ą¤ĆžňYJ®Š 08ďDć%-(şş0ÂČ6ëşŢ…¶LMŽFQ8qbU‰‰čhcwPÇT"":­űkÎQމ??3ć”~oĐA`­€™â/%câŻî=ĹWן‰y:éÍk­ËëŘËě&3qs0óő~ëďÖşâVă3ÁÄąŢýnAžZ2Q#ĘŽ¨_ťB?ŮĹR1Ҳ@+˛ńž4´EaŽ4´»zÚü+“±–ž‡öMp1MG:oÓî٦µĹŕ—ˇădJ@˙'ŽŔF :đ+ť(öśOŢUüK˙Ĺ —ă¤:˘:8ů6y1“…Dŕ—ˇź \1™9''ű»ľX·ŘK<1äĂnl ö<“‚~´…\R%kO]×D—p:ÖŕÂúÜSQŤµn|«‚źĹ"lyňŽY‰{Î+:ˇ%˙c˘0Ío& ŘäݛɦsŕaLÚľż|XN9úϧ ßůł%‚¦ľ*Ĺ[3ěń ‘׍_©.7™›Ľ57Ěßxş!žďd&nąLÎý|F&¶!ż:á'MÁŘbeňé/j|°ČD`™Lô… éĽ"jÚBU<Ť˝L[đżc‰°P >ľ°ÖX(ֆٯ͂bKˇŚ(Ä{ ŃŹŽĆ@Xţ<Bgĺĺjů˙  ÉC`óÓZpsZ„xWˇígÂĎ^t°őĄŔFý—‰hË#hBöYě)řwż…®ěůI›|Ż©‘\fJŽ5QÓ,ŚÉA¬$ ¨Źô~aČöUň´Ë\ęř±śtľmG Ďż–2ácn7‡‰)Ř˙3"őĘFÄš:Ľ¶NľV„- jÚÉďÁ~iLRßřrżUMBCUcGG˸hZ+Wr5Ž0JŁ,L¨ć‹YţĂßµ)öµFńçkÔ‚ůĘĎQŕ†@Š0Aţ A~xŘ K@[˙ĺĎ›˘Ę/ŤŘ.¬ď‚úpÖ•!N ”ŔµbąÝ×ćňń$s4˘źěŮŇB-A5ű1âôî˙Ö>5]üĚc.gF´`şťĎ‡™Ł_¶ĂĆ©…e»C‰ĂXď#-Ţ8C~e\TóŻŤC BâOç óAhŻÄB5Ž0gÍ>ó‡O”?|’ún~›JoP‹ťÝn% Ăż|řU`P:NýyWâŻBŕöˇ&Ŕîɧ®ű#TđËřˇĎÝrŰN śľoŽ´EˇvF,?pÄ“ 9ĹĘtLŞî!üiĂ6Ż4™Łë¬®6ň#žÔ¦)9—›Á-¤ÚM9)tl=-|’ł" ÁĎź*ľ0=K2XXŢSvRAŮXčô ŤíšŤĂP„™¦ÉW"0óf™ü•S‡uěŃ/Q8­űn9ĐN’€¶ď‹B{…ţääO$ “€­ňů´+ţ•°WćUâĎt{‘ËBđkç­ÓĂžśBűĆ˙‚ń:'™€MoŃĚú\>”GMşFf­T«/ŠÍÓ™x§ä±W,ërĐ˝lJ(6NuÔéÎĄŐ¸ťkR…ĂD+i˝q¦& ńˇ/ […bó­7QĂa°*óYĺ”I4A ˝ŞévÁÍj>ä‹1Ď^Źąçä—_ŠđŁ 1 č,M °ú:n$x 3ŞmÓ Ř® ”ĽZRëż×ń×6ük{…˝_ř\Z;¤˛ÔÚ xÎ6 Á†ËÂósh×âH¦śß’X˛Ńě/ý±zN#Ě$’ٸČ_ap#}Ë> 4ńçBqY„daGľS8ęäJ«@'ÄB»ÂˇÔ[ ް°ä_ €¨‚dŤŘÓ8)kŚbuQX®GĎuľßSĆ‘zN~qf”›icĎ^IŹC&¦µŕf°c˘0ĂÄTËŹ…ÚđË ‡TI š×Zcü‹‘ĎrŞĆżďÂ&ł¨m9Áyµ¤v:d‰őGëµ &*Ü oš^ĘÉI籤ď§3‰@%xF;mŚ IDATr€Gü¨Ć’™D > 4ž 4[uÇ Ę?WIuvíIKή“/8€6 ß­ľ›(W[,¨#0HÄ–udĘ–Âm‘5ˇÄ"˘Ş±°e'í'ażüHS©U=.ęÔrvO™D7™ŕ_;8ôY…Q›Ö‚}´„´ Äśü‚”ơŻüüdyeľ «Ŕ4µ ÜÎëšŕź?k®^g‚ź¶ţłAčC±]ô€×׼1ľ1Î^„&uYŕŚä­O^ůb~Ł“§â9µÝçÄśřĄťď8VrB§)(mţŮtÚüN¬AK?Ɇv-Ď©gĘ·Ť.|­Ą KŠÇż őŽQXEGK!hĎ©‹B˘ˇŃbµ.`ăĐ–NPT© „i ¨Í.ăŕ0Ý4hݎ!":­'Ű‚B0čŇ‚vfB)Bí«ą‰ÉŹ‚¦ĺ`íą9´śâuh9Ś(ąŞýŻÔ>üęSíIüT=G2úęł ™^ÚpBĺ°Ô¨ťłşŁP×uQ/»1ń$ÇOIú~,'Á?Ľcâ'sřçř^˛+¶ÉáIih›uL˙BŢŘÔćgMN†ZTYfńĎ™,4Ötá5„KţŤ ÷›.3öž¦AX5LéŘó2ß©F°pH“0p´ťłÔY+źÓM¦Á˛´ Ýró|/)ßR‘áááłÎ:ë†n:öŘc˙ń˙Q)Ą¬c}óÍ7ż÷˝ď@)µë®»~˙űßď}sú"˜Ʃ,‹…&DaP&@Ř W{ÉQ~†XęHär“‹bŹqĂżČiÖ˘Ť^aďďÔĺő‹ć°Hh“\güÔuŕÎĺUHSÍĽ”Łz%˘3:ŽÝźŁ˙ňČçś÷Ď÷Ş{"Éő‘-‰™>Sݍ=/ę<'ÉQń8g‰´+_?ĄÉ™&g0 ĹB Ž@®2”ĐܡsÄVٶ7 Ô72ą DÂôEˇý űXˇž÷µ˙ş\Or0`Y˙>ŐČg[üô§?ýČ#Ź\{íµëÖ­{Ď{ŢłăŽ;ľá o° Üwß}ŻýëĎ:ë¬IÜƉÁÄ:ý®F“†AÖT ]ËôŚŔ<ř•M€r©Ą˙ĆŘÓN)ţd ŚĂĆHaMĘKÜ#)‡ÔŮĽÖ۵`ťKÝ!"ąBśs3[µEr@¨|ÉČ$! wí„~˛Z{$™F`Ýi[>çěi8r5ú8”Čöřűâź;g˛bˇňŠšţóĎ,®ól°ćËÉ0X Ŕ(¤á`¸°ľ&ĺR3"čjłË>íCí‡VO Z­ ŕ˛ĐƤ_«ä(BUŹRć´áő ›íiÝ.Řét®ĽňĘ/~ń‹ .\¸páŰŢö¶ď}ď{WŻ^˝óÎ;÷»9čłm‚BĐ.YĆBń.˛óś˘ Ö†ĆűµOWLtc))Ąß5u´a“ ĽÂ·x:˛Ô$‡­’V1őťęŘĘaž4\ tP˙;Ń+Až•˘šŔ†dÉH'ĂČě¸kˇ)1ż%äGň›4\m‡SC”sQ G.¶Ěd}RżÍÝŞčÖţe¤-P·ä˝Üö“–cŔ6h9Č?ŽZŠ|ĆÍҶÂŽĹÎK`Ŕ<^cí` ‡ţ^d‚°ţ” ÔCM–Ô ó› mQH]Š•s»żh¬§h`/¬] ĘA{inh4OxLaKQđ‘GYż~ý{졓Ď{Ţó.şč"§Ě}÷Ý÷łźýě+_ůŠrČ!K–,™7o^ŹŰâĎÎ &}!˙GÎs–ťŮíäđĎaaę©Ü©rˇˇ>, 8šŹĂxŐ7]N‘*ßžjđ;Äü|ť«‹č믣G[¶ň‚˘ż8ôu§§ĚZXţ2 ;\ŕ52ň@OúZP_6ŮÄĘ7Ńo°óŻŐ6ĆŻ"?Ś=HîŠlĺmIąm¶cźÄňXµPŠţ‘ě~2ĽĘnyu8ô&9ĄÍ)g™ rТ V„Fľu„…%í©¶ĎËp@(~ÎůŞ˙ĽT„%˙l9č A˙y=( D˙™#Ýęk(WâűÁdŔžÖZpdddppphh‘ąsçűeţęŻţęË_ţňăŹ?ľtéŇsÎ9çĚ3ĎtĘ4Ľ5-f1ţĹ@îŐĚĎ‚ůükEĆÔ—‹ÂŐ“ßrÖŔř«¨[Ç- 8^W~%ŢN7ÁO˙Üd-Ý„úvq|ä0+]mmę—îÉ’-cŠ°Ĺź<ÚÔjć~˝ i…Vďm¨ Wµ˛k’‹ţv•™„6Ůr ^Rźăům í:ŰĘáBŔ ˘®~Ť©ßE¶eaü‚,ťÇA‚GĘßU›:BTúON˛‡%ű‘WT~…Ăca†ÂČM™ÓŹ[ ěV;%—Ŕ ęµČUőŤ°vÂ9MöÚ ¤ÎÂ(T­0Ë9¤XHť‚]ÉÁŔbśSÉvÁ¨=í´ &–Ręî»ďž;wîřřřčččĚ™3 6Ěž=Ű)˙µŻ}M;sçÎ}ßűŢ÷|Ŕ˙ŹX»h”ŽŤüËQ1"RżŞüÂţ•—©•ŤÖđµŠÂ<›—=B-.ć °x§âe!ţŮđ3Ăţ*ý·ÉüdlŞ"Qrl2ä3ňÉ[eđ¸®âOÖ!ďŕQO& ŰHÇ—ĂÚ]ĂĘŚzUküX폤CljⰚŰNÎ~ŮN ~D®™ĐsUjg·rŁî…˙tâôÎ,ť?šŔԻІöVRM˛.™AÔµkLö0´›Č0µĽxJ“Ĺ0fŔ&ă8şđl‹…Ź…—™–Âk»Ů‚ÜŹÚŢ|†˘Ś‹úrPŞź8t@®^ĘĄC\úQÍęxz‹)®Yř´Ó‚6±¶Ůf›-¶Řâ—żüĺž{î üâżŘ}÷ÝËĄ"˛fÍšĂ?ü¦›nÚf›m€ÍËŢ-¬¸3JĆXč—‰1Ő—öObđóĄa‰Ăüśş¬“=.ĐëŢ©Ž@®0­€>˙ŚÎS§!6ŘŰh!ĐâźjrÖŐ—ţ@¶¶9>Č3a&<®ŔlMi/•Z‡żVť-¶Ů5˝SIëéÇŞŞ‹}ŰV¤M»MŰéĂÚh!ˇ)•H„1 úĚÔ‚¶“–€Ö”Úě…ˇC¨“O@Çg§§‡ăńÍÝG\g?)ř{ë<ßŮîîßRĆÇ` ĆEUĚcFADŮÍ@nĚ@^Y8Ĺ«Y¨/ő0Žśh ,AÎŞ=e:Ďr)  ^\ßűČSN1|bŤá_)c,¤_‚Đ©:8t@hĎË΢ŽL‡F}d6¨˝´=í(h›RęŻ˙úŻ/ĽđÂóÎ;oíÚµ_ýęWßő®wٶÝvŰÝwßýĽóÎűČG>˛~ýú‹.şčµŻ}mlm˝XŁ ôË;8 *Â2©ĂˇĺŞşUŽt2Ý'z’P„ZíáW#BDü•NŹ;^#5¶1Vç߬7ůc¨_T‡KćĂüiť!‚?Şâ?†áĄÂL«˘*Uđí DJŽ“b‡wwĎífÉŰăń é´éř±ă˘2—^­žHÇ*^jka]üc0†©/ÝM©7đ¨rźTJ{™„»cÚČlÁLŕl+´a'©.Íň´Đ([˦Q6ŤÂ&ZČĚ,žŔŠĺĎýč59fÖY¨/CsžeIŃř-g‡´ €#" tΦ2ĘO…ngꎲć@uůr0 Âb=aW7/3ÖĆöcŠ0u žŞÖ0Râýď˙gśqŘa‡Í1ă¸ăŽű›żůŕ7żůÍâĹ‹ď¸ăĄÔ\pĆgěż˙ţsçÎ}ýë_˙ľ÷˝Ż?Ű•vi–ů1uب}:ëŚáĐî2šó\_ŻÖčˡ ´U`~— 8Z‘ŻŕźŽ,•ü3üÓĎŕŰśŃ!ÖÍ‚'TQs­‡— ‡zš ß é±ˇ# đŤ˝·U uîńR°pS±:ť_oW<ZöB›N›Ž}4Í˙šhČD€ÔěG>˝Ň&[{Ç#6(Q'-Ó^ęëaĄťßŰŇö'Ѷʉ+ }}ooqyŐţKhÍÇ c°0J1ýWU¬ł@FGe.±™Ĺ“™ěaX8łÎÂc­¤tQ¸,Ě?0ŠĐˇŤ@'úÝLášzPÔÇ! [Ö‡#|9čLĹźg€&bĄbéb®=ݵŕěŮł—-[¶lŮ2;·Ýv»ăŽ;´żë®»^|ńĹýÜ"]A(ź^ł˝¶E‹Š‘ňĺJś‹/öĂF… n§_ęVy>ëŠ0 7áÖŞ˘†ÚGM59”:KŠşJ?“żCA¤îëĘľěANďdlÍÇ›ňŰ{?ÔţŹă›ôL‘6ҡă÷đ1M›ef¨–l4˙ŞXçĂωCÚÍuđжŐí#ÂŮSŚv˙"UDŇţá;MůŹNě„^,Ő…8 §Ő×vś°­°‘b2gJ¶‘aFĆDć˘6§´çg°MČ"Ô Ô·‘7ş6ú «ĄČYuţů¨8´ęÚ¶|eŕWÎÍ˝\ÄEí§ęNHćóĎć“:• ŠćwMŁQyMˇŇY˙5…mĘżA-h>)Ó,ô©f;A-Xúţ5šˇ˛n’hŘłžYÁ}QrY$j(KŤ «#đräŐ0  ˙ôSöBŃ!6Ě…ą°ZńAűs`.|Ý›3 ˙?^Ťv§Ň2ČÖ‚#§č~ J]^¬Şú×·‹ĹéŰæß"ŐŃŮNjޱmŃń‘řm'ú|H±uYđě–sßZÚ“­=KĄµ&yQ—´(ĽAřFDŁŰlíĽCĄžZ~"ŐŮŇ3qN;ÖáŐgç%ˇÂň}Ř,}«°¶6Ŕ¸S±“°ń ŚŹĘ Á¬â‰Mž C0ŽěC¨K‘ŁÜfQ9f NCś7{XjO.C mĂżúŻPżq;pG+ďŠ0,l®:"eÄúy"(ę?,ô ¤Ô^ÚžÖZps[ľŞË˙ąČĿĴ ť§˙4¨ń®2?Ő »2"°„ß(ŚÝÍe Ă(ŚŔH1Ć@ćÁÚ!ĆçÂcŠQx ćÁ÷¬#q®0ţQUupŹ0fÁ,ó|>c#ü~ŤZ\“ýĚßęzfĚ‚ąµ#-_`'Ř™q©đ¶ÉŤçňŇĐiüŠ÷“Mpzü„k"«ŰKu(í^6‘n›ÉśNFÁ÷© &Ű_?.vß’bz{¨üRµ­Íô~20 ż‡Őđ ęíŐŻäŘ`Zś4¤ćÔĎé%°;ěÁ ~ŽŔl„=UńĄísÂ8ĹĘůa+aąÉY(í Ź2†ĚC­GýůËę.EĹ8N9Ć‹|.ő@čČúËQG"WwBÜÔ*4ŹÔÁĘÄ1_ -(Ý‚1ŇŢűÂţµ«zrl*QбŕĄXJHMëtÔapmv&ŢUŐ‚xw‹ýď;XB01Y,TŻE®¨÷©˙ÔiČi.˙E]‚ٰŃTD#¨ß! `d€őóaÜŻŘW[Ŕe `©°̇ůđw ŕż…yđsH^x?\ 7ÂJx¸¶µ˝ýQ঱eŢ^ąş–źĚ…çĂ ŕ…°'ĽöU±ŐR©Ý˝CĹW=4ęç…Ź©0?Ţ*.·— ŠöCŠ/ ©Ďm AG*/ňéŔďë‘ çŁRvĺô¶Pů»¤hX‚ťL˝`ŕAřÜ?{á`Cŕçµ][ŢžZó$¤7i޶pĽ^SąWXű*€Ż ë`¬…e ŕha-¬˙Vě(¬g|ëۢEá˙"»VçJ‚!ÔwĹî†Či¨ÓeőoťąőZäZ‹sM=˝e5jóőĄr×ă Lč?’¨XďźgÁ÷ô$ąłÎšMkÁÍ`Ô™ë ‚0]ĆgmáÇĺÇrśzŐď2C¤ËŚĎ®_ jË'@¨ŕÇi_™ëgÓŢV<‹„p…٧ó…đ.“ü…°,€9÷ČîđkŘ)~śűbŕv¸˝Ę(^uĄ`óĽ{'Ľ««EÉ˙ ·7Ńx˛Ńѱż• ˇQŰţŮp ľ™÷§˙"öpńjţ÷‘źkŕ ć•?A˝@^?®´Ęć°‡áŰ űf»Ł~ÍóďgxGÖÂsÍ–ü_á|á$U<Ť˝AX$¬PŰ kÝČ82ŻčŁ${Ô΀şÄ€Đ>Ř –"çŔ¸uě[ж^ŠVŞ˝–ÇB»Q0v˙*+'ÂŇ|ŇT˙4ľđ¬Ź–»Îi-ř˛F!.é#ĐYZC m1ÚůŃu.Ö„ Ó”¦ArމZĂĺ5& 5QżB¶Ť°a>˛N±^!l Wý·ĹôFĹOLr‹Gŕ\ř¤Ů+ďí›Őn7÷%PVń/…—ÁËŕĄČ^UńűĄÖFú˛ČÍű•zĎš`ôă*—[ůvş¤‚źš|Á`&p»”ý&˛šë^ę§p‡yڏŁúIqÜn÷Öµ™í×°s`Î?łý)MxűŞđoâHÓr0(ýh0€iŰŹëí|3©ÁŹź˘öýŕv#xžBöIř$[ěË‚˙fpź°‹Ůţ‹„3…+ž 3ŕa•bťbČl0tů˛‡uh1·­ś†ú°ů„ý@¸/pá´,Ć9 Ř8,4IżĆđ[ËE¶ź›î&ş|y|c&ŐžZYŔ67{|§čć±ŕÚŹM4CÖ,xű±SBŇĐąńś©Őq´ÖR¨‡ ꡫč@č†-ŕ Ĺ^ÂV°Đ´ž+l ďPüPx<Ü ' Ą‰Ř7“ ßÎ >lępč‘&*gŘBŽŐ¤úÝXVaŃfĂd>¬…°•AŕůÂ3ŕmŠ;„g¶0ă4XÚҧ‡ÝB°+<ÇhÇË`Ř yFÂőR‹‘vB˘ú ¶µ ˙J7ď« ¨Ga5܇:@_ÁďĚęę´~zÚÁ^,XĘśłw/U|Őj)Aá%b‘>ÓŤ?ô×˝¦UČĎąn‚e$äąXŢívWR`ĽE{€Y0ţ]±TďRÜ",„­AţaÓ6elňl áá]Šů°TřwUho`Ze7i;b-ŻA]ć)?Ľ¨ŚďŘÖŐ Ľĺ- â-V±Řż úÁőř—®'dÁ—ýµ¦\’6ő64ç ĺ?­ä¬«ąŮÝűi›¶'ßns‰–Wl9$žŽbĎŽ‰{Ç_MđNLŇ/YźűŐE°bIHFęUÖÖ2éµV$»ÖumZ ö×bz?řl’ޤ#–"E7QţJśë/}@Hřš‡P;Ö 'ďUą ő+ÇîrďÖďE<u]mmę1P:fä<'§¸UĚŐđ@ř¸NŰ´=™ö@ nŽłn¦ňJî(ÔchGOę:ähë~±ď,űí­eů7 W5=_Zw·ÚyČŰÖdŚŐ™ő ‘'ř+Rę-Qú?IWąa›Ö‚“a92ią–ČtžĽ°®'—dńőŻŕN§ţŰ„nKß`çTýŞjE zł•)»0І턻¬ŹŹk.ľRĺĆŹ¦mÚž,xĄsŃękř.U|3 d7sý—·€}S8÷‘sCaÝn~ü[şŁ·ľ^Q$Ş”ŔžG´#^ f—o¬í5¤-ZfZ Nž%žJ‚§¶qmţ#ŐŠE<ˇń-sŇ×·{ő;†ůôoBB\0€ś‰:ËűÖ‡çtr`Jw'3oWŻJáěÖp,§mÚžŰ Ě%úU©.]íčć–ąőîÜ›Bť…śi}'Ń—/Á[/ź‚X™ÔĘ?á!đŔY±˘J’ä¨mA@6:a›Ö‚]Ú -s—Ĺž€bMmx‰§!Ľë©g:—u§c†Żú ôî™"(ęcĎŽŐX“\Ťz‡Ŕҡţ’AuőÉ´3·kKĂĹśĂçaÚ¦íI¶ĂęB]ŞŔĽžb^»ČauP,oçöiA őäjŻ*wnIk*¡1(R›ëš!Qut‹Ŕ`•e[ş&ôŇ5˙´MS°Kű™eáö v2ń蔉=ů×ú—Z#üb×qó#¤Q;yŤ|Şž¬_XęŤŢ[·Ěí­–Ő>6.ÇŐë—ewÔc0sž!Ü®ŘÇ ŔzřwáEŠűŢ•:Ó6mOŽ˝‹ű…)ţ]XŔq¸]ń Ńtś‰z ŮÝzß8Č1µ;Bé÷†nőF ÂżĐ-©v2ĺónöŞ‘t˝Tš_ł5Ö„N¦ďË„ˇ8ťTË9[$[ň‚™ö™ľé&<0 {Î…ëäřDä so¬1KýVŔ`äójŔ{ń¤fŢ9€őćEruŁő9Pë…!ýýÔ•ŠµŮ—ÖX ŻZc?ŻŮ´ěŻŮO‰§’FI—ĐsNI˙·öjÓ tžă\ fĘAZĆÄźÓ°Ż5ßŃ.C-«}o\Ţ TX•=Ôč0[ Ŕp´p¦Bw­{ľfBGÓ6mOş Ŕ×xŕ18Sq´,ÜRfĄ?–˛‡ý-aä͵{A-C–…¨_[îFJ<§‚Ů÷xÁj¤7!Ô‚±zĚů­ď—9¶Ĺá´ślKś‰Řét2¤¤W9č_Á¶“a(~RČÁPC {Oj9¨_q=P őT¨sjźź“cQ×ÁĚ‚ŮČłŁ+‘[ŹÁ±ÂiŠó„Á néĂŮ›¶iëÝŠ‡ŕ`ĹyÂiŠc…ÇŕV….ś φŮĹëĚŐuȱÖçg ěH‰3i!x­ĹE cB0tű´ť4cTł…`NEg›_ŇńťZ·Á¦µ`Í>Á“|lÉ<÷Á§!Ű× LcωcÉWNí6’h ¬_.˛µcňzr@x ę¨:Kń÷ u®BŁn„ŮfµN; €GáxádĹÂ+÷Ă#űÁwúuj§mÚzµďđČ~ÜŻT\ ś¬8^xţŔ€ ĚE­ŞË[Ý,¶DáLÔąň KZTG!×ä!°-ÔŽČšH°4ÔŘnGk ±`©3Ů#ĺťÚ¬±ös2>‘ş7 Ĺ,-ęůdŰT˘`Ěü3Z:ţ`‹=IůKoş)éĎżRcN Â(ý»ĺ!ÓMĆk t¨á'× Ž®?ŇýW€đ<«"…,F-‡Ů0y€ÚĐfΠđ3ĹŁđ0'*.öUüY —LÎ9ť¶i˱Kxd1ż}'*€‡áQř™bPh3µ@^s`6j9˛Ř|ŕj†PçF%•f IDAT Ń…µţ2G#×xm„έg#p'Ż_hü¦FąLWŤ•OY‰i!ŘXł%*F;Yú¶…™ç[–lîůäŮŁ ˙Ü‘~B!ŮŰ3öΚ=v0xĹÍbĐ[Ţ<ü¤Âşo·šž2ęčZËGĄĎ„łŠIŁn*Ţž]€pxśąÂ=Š5°Hxłp˘â|a_ŶŠßô˙pů´=uíG<ř&¶Uě«8_8Qńfa‘°îQ ăĚE Fŕ\şÉ p– ŤjžľMÔŃVŹ„ŢmXő Aď6O¨@„ůŐŽ#čT_ůőž“Sú¶LFW>Ý.ŘGKńK'ç(†Ŕ2é0¨Ěł}=54ÚqчÔΨ‹Ŕ˛;Ś™E,´P„çÍz’c ç!{V„óîU¬PÜoNRś-ż‚ßľÚĺ;F§mÚ&߆ Ío_^|Ŕńlá$Ĺ›„űa…â^B›ůFîU|ŕXÝ„c…ýgˇÎ­‡,!č Đn ÝqćfT;ČĂqţyÍv%ŕW :Ć@Xľĺ#V‰Ą«;BUeĐI×Ŕ5›nśT r1ź…$Ż©u®żô#›ĎB˙ş?-z, €Đga„3kSµAx,j9Ě…ůČ‹‘=PëP Ŕ-Šď*^/,Q|TX¤ŘMqo‹ #đÖI;ŃÓ6mĄ˝• #ÜŰb7Ĺ"ĹG…%Š× ßUܢՅ  @­Cö@^ óa.j9rlN tf „Yl%¨ęwq=Ň|&N/]Ű”I"±ĐFř‘Í?"oÔ¦µ`Í?úA:çŢvĘbNNđżü©ě/j_|ĺ%Řřçł°z”8[I§z§˘ŤĐ“ !çî,3«hdňfÔ ¨Ŕ|Ź<@µ‘ˇYđźŠC…Ź)N>%ĽP1OˇľţÔą®§í©i Ô×™§xˇâSÂÉÂLJ ˙©f ČŞ Ď/®^őÔ Č›‹k»@ îs^ŐAĆ‚E[ ×M&<ĹŘŠ#PĽŰż›Ş#XůŐ/4:ßb8Ś9e™ŕ<`Oy-8¸™˙ŻąJŐćÁEeŇq´9É+ kŢ|ł{t:´Z…4ĺ1ÂÍ ĄsZбćÚ,_Fm‹Úů˝˙7őç,ăȵ¨× —BŻr>ڎ–"KŞÇ[y ę¨UČÁ0Ľu7jtDć!ëQÜ xĄp^}î6ŔÜwŔżĆŽă´M[Oö÷l¸{áć’ű xĄpC!a^14ľč 3Ąă7o©w‡9YŻU;Ę Š°á7héżĆ@h7´BŤ8 ˘Ř8iËÔ‚NµŮ §üłń榠ÝAČ%˘Ă<'?@}Vl‡^Yčź{Ť=gQ7޵4íç5„ĘĚŰö_Ö{™^‡:ą"ÜőFÎAť '›Î5oÔ·däĄ0Śú9€ ÍfTŹÇ:ÔTCç /P¬vş]/†mőűi›¶‰Ů3áa~«áĹyÂÉÖ…w«b¶°‘!Ô(¬Gžgřw €[u„©ő…ń¨{„ľąÎC`¤!0ŐŤ@ŰÉáź-í9Ůí9üË—€Íö”Ń|1›b;“áÎ=č_‹ďę·:wBVh´ŢYFBí‡:Ă$‘ëQo@˝©-»‰ŃŃóP=E™‡ü-€şŔÓwttŁiAŔ×™şéĹł·Áš‡á'“u!LŰź‹ý„5sE\:óbůň ńĎ©đ%`Łlá“RÝŰTÚç'ÎAL:§źřĄ3Ýtx@ :~ż˙®h·/¦v;ôDiáŞ& × vBíRď ę‹Âr°ŕrä:µŘR„łLK2×Ló·¨U¨ŰaKä%ČsQĂm2k¦Aŕđë9ď'‡ń¨Ŕň>^ Óö´¶ĺ<*üä°*ă=ÖĄőĹL™ŐV †‘ç"/-Q·ľŐHŔą0·.g×…ŕĚr˛<ôâAď†@íâ!Đ»%ťŰÖąµ8ěťÔ]s ¶‰#°„Q›Ö‚ý5 uŠI”‰ICřÚŤ…Žět ®\‰Rnë`ą…éMŤ9Ú<9hϱáèma .“撚`uryýQWżzćŘ„úň źٍo˘nE†YČި»P#c€ĚśĹŘͦºŮě÷mđđ°Ý˙=ţhý´LÁ/Yól¶W_°.}9ݬ%Ś0sLŤ_ ”˝aĚ2˝`ţÖŠsjČťaŢ‹f;˘l<Ęz/LF+`áé ă·b(P ĚË8 „Ţt“«übBP[B⑏nh]:•¤TO6Ĺ(H^DÔ™KÄ2G›ŤH}ęĐ(póÍŃÎ2~\ÔŮŁŇ(śr@© ”kVČ#¨gšUÝçĐo·‡VŃe¦řŐ·ÝöEů$ęźÍŇ“Í(Ă˙#¨EČ~0Śú)jl„ µ˝ŰřŰ+~(üE‡ˇuŔôű¸§ÍŘţtVq?<Ż0WË»­K¨äß2_Ź—˝ ˙VČ›ë ďĽâ—ňÉPcÍŇëş îb~őHSGPĂ?öxŹüK#PŹŽ_ľĽ &rđXGÄüąkOÍł©DA_Řő C— ÔĘŻ´ĺË9äâÔĚÓŰ”ég4B,5–,48”G@PۢvA~o-*ç*ÂaőÔ±ČwÝ^6ňM¨Ąr’aáŰaÔbáËaŁĹ¡™ŚŽ)€W [SŚčú/Š—=ë„yź‚Nű´=ťíÖů&Čöë`?¸7÷ŘOŰSŢ^?âˇů<k¬ěGרâ™i@h3{LmÝtoŤ2/®­ř7†Š+Ý8#Ä?ÝxMť|uřyü«:Âdóω‚:˝`&"E*Ăż ń*ś‰#0e}Ó‚ťNç˝ď}ď˘E‹>ýéOźqĆűŘÇ>ýéO÷ký1›bÄkśTćt-Y¨ˇPß( ŻWŤ@„:©4KţŮR—…j[äčXäëX7sŰrÚ…#ף3őEÉÂňelź‚M° u˛Ć`F+Ş!‡ Ż€Řúyy°a ä°HŘľ«xťâ3ÂűŔĎ…ç)ä;pLOWĹ´=Uě;¨cřůĎxžŞ ŕMÂa…âĹÂZĚm«ő°yžéŐ2µ<ýÇLÔ2ä¬ŔxMÁŞčő]čżbPü_xĐolŠ‚vš:‚ćt„ńŘȿ͆Ŕű¦|đÁxŕýď˙Ě™3çÍ›÷ž÷ĽçďxGżVž°©DÁ ůč7{°’…Ë—ŁTqĄ®Z…â)ÂňĘĂşF lµŚ(¤ŽCęaORo)ü˝…C[ÚŹ·mh#7Bu8j1rŚÎ(Č&ä\Ô)fÍ'ÁŚ!˙FQß2ůŻBöŤ¨{µ€ĚŦ `?a!E EťřŁĹl'lł> ďý„LŰ”łÓůĺ÷mtˇn/<ٰđ0 ٍKä@d_# 5Čţ‘9 +Ť˙8ĹřżvVČ?Á…Y‡Ú¦˘ýęÂâTęÇšs­›Iźú«ô`ΆMČsŞ! ęfŔú(®yçu1ţaY8řÉ ĘD ţ•0üôC eôŤHŔţ†@mćĂ/ŤŔóúŹ@2µ`¬ć÷?7("Ź>účE]tăŤ7~á _ČYům*˝AM[A8ńBß:ť":zŔE3!! –đK_Ç{ú­lz^‚3, =Ö†R€¬6 Tuęş DŁŁ Ź©ëÂńJĘů¨“L­ô!+&ů;Ô×L-v0Ś ó`ő?ćTÎśÉX‰ŔCĄB °ł¸ă3<ó3l3–ÂŮ˝ź“i۬¶„MËXŁß waq*µť˘ŞWî­TşçËLÔ Fž_}üO~äďęüű„É?ß;׉ÁÎóŔZ4˙LKŔF¦ůçDA»E` {“‡Ŕpµ™EÁśŹëŠ|ăßřüç?˙ęWżúŇK/ÝvŰmsV>A›bQ’ĎIć€P[qQ˝’ŕd÷—ŃŃQÝL8–Z°AjŞ9 7@ZÜçżéÂŽĹÂv€…Ĺî_bpXęÂĎŔxńŇ™˘Ě?ĂrŚŐäŇPý56Č<Ř8‡ö ¦®<\¸Îř«¬>ĄżvUČ—áťYgiÚ6·}őÎâ4éG– ¬ű©<­7(ćĂ Ŕě1µŢęů©?{»ŞřAü,á÷I“N]ůŮúŻl˙k䟯˙2C ¶“”€ićđOBďČž:}AłH#˘ŔE]´bĹŠŻ}íkĎ~öłű¸Ú´M% jKĎIćăĐç_‚ĺ­Ś‹j"ęP¬\év–KŢ‘ÁB­ü¤. ő]Tu ‚°ŽCyÝŃTmĆÂňµÝ6 =Úí…”,śQđOs±kŻë,9ąe!ď„1Ô׬:îU0#¨źĂčHéF”\gá°Dŕůşn…ľgĽgŔ–?‡ż‡˙ĘĽn¦mrěĺđŻ<ţ<…Gw˛«â|á$p˘ŞŕWśVQ0{X CÖ#/4ĘďŐ:ĺ﬷]Ű˙>áv{)Gű5đĎî˙á_ń.Ľö?=őĐ&łŚÔß ÓÇV@‡gýE`¸Îě[ď±±±o~ó›ß˙ţ÷·Ţzë~­3ǦÉ)Ô•–Ł ýň=Ćž3BŻĐ—%íH˛Đ¦ ĂÂV« u@(ušORcˇF` ÂŽaárh[ýHżk±pĽ ˘n2T'›0驆…'TńҢŐp‘éP:Ş;Ń@ĂyT8<ĚÔŞŔ*X'äÂ60óBx/§hÚz´Ď0öOüţBÁóľ(íw:…ěŞ PÄőĹŚ‚’M@.·ŕ"?ßµľiÁ5kÖ¬_żţ ]ť044tÇwôký1›J¤ „N~ŚŽŽ5ö ÍÜŞD€Ôď;šJ˝ý/†C=×üłAŘ*¤RG #mgXŘ Ńfˇ|)´­0©Ö…Q}Ȩ“M/Ó1äm0f 4<yąéVó?Ŕz*ux˝ąŹ–X÷Ôg„żP\),ü'ţŰŔÖ8>“uަ­;{?\Ŕ[üǨŤuŃĎ% 7) @ V~ëŐ0iö+ßp}s±Zył÷ťw[üĹľđ0€zŁ)v}<ňŮ-˙’âEGčtßţ—uú‚Ęä‡@D,ŃDHµŕ.»ěrĎ=÷ôkmů6Ĺ(HxÄ }v+ó·'hv€4ŘeF$ ď‚ ět ČŮŃQGj/]‹ĹHĄ& XX:6K]xSá¨×Če†…mK–˝IÇQKĚA;©)e¬ř`Č\™Eű&s¤÷¶0-^§>/Ő+Ľ˙źđl…l„Ąđ©®Oé´UöAX†š]Rýxaj=Ôa-ܢn*^u6łPŚň Âď¸úGţěagGŕg†:ť_®í~ţet~©š“âĎöEş@ L@ N~ Ć’¶Sł„ě)ƶ٭?üă˙řĆ7ľqĺĘ•Z‹D”_éä$ű‹ĂĄ®ý.3x˘0 ÂNÇĺbID©‹Âr^k,OEh¨°Đơ B‡N÷™ďŐ8^Çá0Ž:ĹĽ€ćCÖÄw~۬Dăp¬ –Ž2FŮt‹uÔ–«Ş^>W××pý,¶Ľ€­.`+Ř ľ‡‡˛N쟯m§Ó~7˘ŕŮŠsM'^}¨őa‡b¨Ă 0Î 5˘ÖA6°çĚ:üŽ |á¶ęöynęĂ~Uđóş$ü<ňMe`żÚ˙üV@_Чń”_‚|‡_HR ¶ă‹¦M”‚>řŕYgťu×]wŤŚŚôasr@H$ČŮUmÝFGmřŮf+Â(ôqh;:?6i: Ôŕ wś ˛0#CÁ2F:`’ŻÉ°SIC0=hę±čPjGJ=ŞŻ[őćAČ+`ĆP÷ăEţlAÉrë`f ·8\|AŞ÷2˙LX;éëĺ}đŮćSúgaďC}`µđĽPÁ{ ~č€S¬Ö>((…Ú8®0gpOóą®™¨•Őďĺ­qř}"ő1ŁŞç˵ń·ť9䨮9ţjü+ů×Uă_°ĺ/ŃFş—€tŻ˙ş…_·äKUŹ}k|˛l˘Üa‡>÷ąĎýć7żYĽxqséka铍0Ë/)u!(ş0- 5Ďl–[âëÂŕT"ĐůşEÁÂ’AÚí…‚z¦aájO:ҰÎB:^oŇKë l[‘RŤĂr|Ĺ)¦Í»«Ä*Xz0ňŞ‡Śˇ~nä™-Ć:ŞŞŁ_!ĚëU­ˇĺßv! .d Ř殆/Âç©:x<Ťm!ĽN`ĂN¬…µđĹÁNőëWşĂ„őđC«µŻ%tô ?@‰yÉŮL ~ĺPżăB_µ=×,=§éK~eËßuuě5…=+ý·“YĂ#y-Iţĺ÷IŔĎF]Ł$C˙u żŢ—ŔpťŮ·vÁ'˦R»`{DZńŔ–)µuĄť¤Ż }Q¨T% 9čđĎáb ŠâIĂŇ/:Îä°PĽ1% ĹaD¤áwC8l‡pXŞĂqäťć%5߲ŽđČ«Ç鯊OLÉ<`Óëzľ+m%̇yđw–Rś»čËg| ľĄßüöT¶-ŕx8uŔ}Â:ý4pŔׄő°Îű‘}¸4ů„63`µľŁ€1ä9µ^ťĺ@Ž÷^éb+żs˘Ř+ŕWF>ŻŤĎĆž@Uă_müC6˙:VĐDă_~ű_Đ)ÇNž &籤ź,ăÚź˝̱†·¦Ů–ŕ_™™ bWÍ„ým,t¸h«C=¦¸ůf—ÁöÂ’‚%˙ś»Ĺ–†ZÚŇ( K§e)żVőµ¦bG~_W„­:K Ú8Ľ:V‡ŇˬaăµÄ0ÍxDy—éeó kÜá"Ř„li„ă˝”­ 2F[lę¨÷ć‡ę§č©)Ĺ•ű3wć~ľř`ů3WÁ5p €_1"úľk~ZpĎ=÷ňŢŁ-V˛ů j€bZ0mŤelěI\­cĆęďQ J¤©ŹĂXÔÖX–†-čÔŢGŠfˇÔqč°°B:ČMF–ťh. ±°Ć! 'Xž`и©kČAČ+‹Ţ§Śé.¦F#ÎתqąĄ~*fSPˇ´EŠsEĹŽ9p|}éŻEŕ€­ËÓţM¸î‚»őčńɱgŔ‹`ox ęo‹Ľ? avWp1\\äK†Ť°‘Ú«é€S‡ a•ÉżV Ł(ŁíÖu*ň=żNľ•Őşä͡oťo8'"ű,§‚ßu]ôvq$`Ŕ¨ĘičóRgaüKĂĎG (“Ü hĎ»b^>ůş`áźźśÄń]ńĎw‚DÔÖŻ©ŹĂDÔ™nĽĄj˝f‚ ô7/‡6ŰíjLEMÚŚhDyÄ “ĆphŃÎř 0 ‡ÎTKŰEWšŞ'ý)VżÓwUb±lADq«ŞÓŤ*ž´F‹Ąs5)gY$(í`a–Gmşźäîޢ[ŽgćńnßÇzÇZ]®cŠ…h€™µŘ® äřšíĹ„ˇŕÖĘÝf‡PÇÎśöÂi n¶#PĽńFZ­ânV­ŞPGP%" ;ÖhŠíi™,şä8äłý–ˇ]"Lę°ĐI¶É@ĂáĄu X2Q>SĺTăO­ŹÄxgEŤrÄ ‹WŐhbzÖ— (nšĚŞÓBŰRŚw ˘8@qŽDůwlOOĂß–( OŤ¬đĹëDC¬F÷«Ŕ|a6ˇ Ř6ŚeôŰĎźç6ćŐ˘ťÇFFŻZox9;çtř×ňŕ×ŘĎłŢŕç??›Č‡Bp±7Á7ż8 ,ýR˙éŹBů‡‡˝ů)Č,WÓ˘ĆüDfŔţü´ŕ¤[ „tµó3Ąˇc]‰BŰoŚ‘ę^3\č„iQhł°Gź`ˇíhiX±°Q ZaŇrdÔ[ mÔ)Xçb‡—…ÔaůćšOt,ÇZ€iAl{Dt4â!0Ž,4ď>Ő"˛€˘f €ĚŃK‘ˇ^Ôv€TĐ‘©gK°óuRAŃٶ+Mr®0 ăóQĂëŠEbaĎ“tú3¶EÁă"C÷¬Ö>´ě‹¨˝šň+Þ׆°—V~Ë‹ ę#˙ňŕWňŻń×Uđ3ż °/đ‹±-‡±dÚIř•MkAvŰm·>Ľí-Í<§Ŕ¤¶ć‹ÂËdb*GS¬\aš>çŇ8,c¤­­2L*^÷_ ¶?TĚ+Z J±ÓşF ăĐQ‡V˛íz ˘M͉šjpZM±ˇhiJu/jX/݆'Î/WҢŁáŁŁmŻZ]nOŐVÔ§ňü0˛ţ+­üyRŕ°S°DĂl݇y€Ľ ¤ä–×V-Ç[˝Wśq{6ůαç}ĺ—†_žě+ř§#źuIľzç—N7Ý^˙Ň<(űuŘM–~̱ç™Ě›ů‚ŘKŐ‡ÓZ°żc!!H<:JĄu2íjË3‰XľŚ›zÇ™2:j;AJ]ęň "†»Ďř,Ahńa˘ŐĽq÷>CńŇŽi;ěT]iůn˝ÇMť‹%ŐÉőúúCő†Ćj€´;×ĺ! }v¬á‰ť˘é¬üÉ\g/l ÄH–csĄ¶·.9Ô`}µ~ýď›äyˇ°ä`-ČYlü›“ýV>Q/|ž ą@˛U u亸Ô1ĎÎQ5ń'kš"źqý×1ť_ŇúO<Ů×-˙$» ¤rJżŃéjž™ :Ť™aËŇ‚v_Čüž•›Ç¦‰««F(N†(Ôć”IüiĐ·‰ġî8ŁTqwMś…AhgÚŇ0&ŤHC¤j5¬ĆÝű ´‰8ŕĺ´-vŔh&^ęŃ8ňŮZ˛¦—¸ŤŽňµő­'†6˛µ'Fͨ_:ż0ĐŠlAŕ Š ĺN4z®4}pĘőěQoTó°TŽ^Żýűń^¸˛ĚTÖçŚ+Í^˝UŻ”}`†:Ä4_ůŠ–żrĚűĂqňE°küË—}=óŻźŮhç}DZç]1Żň5b݇YŹSŤ|¶M= âq.ćç¨ĂF"j‹‰ÂnĄˇóŹ :™Ą.ÔťHé•…1úŃ‘†Ő·|í©S‡˘- ĹŚ»·;ŃŘ}JcŃ׋‡+,ęĽĆ:J—zD¬Ď ŤŘqŰ9Ő ±ľŰ•ę[–bmŰ6ˇíkOË źšfť{*#(nbüĐŃÂĺ‘uď1ĚóËî-ĹO>ĺś?/»şrmw-|ř©*ňI żnbž˙$5ÚÝ‘}Ťä› ţĂ#źźY&ťć±d"?Q8í»–Ą§˛M% ÚŁI`Ůĺtڎ1AÄF‹•÷Á\úDÔş°ŐꎅoČ ÓA´QÖ¤1]hаŽűđ†X¤ąčĺ”ńR:¨#Ě:/ 57Öˇ(Ö’¶LdIč'ďöb¶šÄ˙5ŰdäIDATAŁÉ!ŢńyfáXMÝ©Wč1ÂŐţë8Ź@Î;byvý·çDF)35tËÖľkBR/Sđ9‘Ď~ĺ‡ě€g"ř9ń—Ďż+Ü"źż(čCn21ĎLf:™~Ŕ&Đ$05l*QP[~x¨łýsŘł´7&_ü¸¨˝H$K–9]IĂ †ĄaŤ–@¬ú”–őÝďM±“z±čPSoAÓčsŃ·^XËw”b±žE´é ‘m¶{´ĆDLŽ éÂ&uXŕęˇ~"¨ŚwÚ´›úŔ´öeęĽö Ćďl­öá*?_ö•âŻ1ň)E`pî0/ˇ˙ÚíľÁ/ ĽLćő ®2cej6­»´¬·©9Ŕ+}B¨ËÉL¨Cm]…I7>řżŤ‘R‡zpˇŠ·ú\”&ič Đ'˘ÍBW&bÉ»O©ÓŹĆÁaL FčX´ šśR#‚†čONŐ eÔŇĐI<5˛ťő—¬$ő9–o?$©ú<6µs'°Yüòd|2&ă4ůěhç5u€Ąi“}!ř}^Âeh>[üuÚY^ÎĺÇ»‡KŚ|iÔ…Wˇz'kýNź—.ů'qń$_~ úđ“ţŁ{ţ5:ÁdbžÎlĚĎÉĚô6­űk6Ěđ€W.Jř=‹ÂF9Ř펤˙Ý.–fˇÎŹő#Mă°äźťôuˇÍ?Ť%[öűŘĘ?ČÂN=)uXö,M1Ź‘EÔT ŢłŠ1¦zsůl řiOĺ«múnrv\Fb4|j{`z¸tËą$ůPő6żí¤ňsľm|˝ÁO"ý?‰ ĐÎú1ÇžO„| ŕő‘…éE…MSp2,?QŁ($®}'ź“& ˛Đηuˇ~é˙ßŢůĽVuµ{üŮj öVęEÄ:H!é¤TÚRA^Á!±ŇJŰ‘ciSťÖ5 ČݵBˇjGô©p…úÚúDSЉ%Zjšk[ÁDbѬ;ŘÉĘÚëů±žµö>'''ëËaó}ľkť“ýĂł?>{źś¬p~Ý^ĂŮŮ…gyäpX!˘‹CÜąMa‡`濶㳤T‹• §†‚˘ü‚<üěĂś®nŻ·tŤ'®]{„Ż(’@ÂŘS˛S&.e|ř s‡íťť˙ť÷(řŐéüfťďęç?ˇ!ţ‘eÔRYʦ¦Çĺ‚ &_2ęJ B~vHéąNQ@ UB#čnEQe mhűBű˝3vŽŰůyĎňpčŢ5ô((ł°rU¸RZđC+ćqhĚÂ/Z8×K9,ÉCÔ”ˇ8÷CżÓňovŘ@Őxľ ĽËl8qoě-üXŚ=™jr‰řG\ó¬÷0†&Ç? ?ážG>űŘą“řý? 膤÷ YF-ąRČ…Éz/ůĘ˝`ňČ<ü„!/ç°çŤ¦u‡úíjŠ…^â~ďLŮ D´†ˇ‹CąG$Ń8·x ŇXŇ "‡C ?.tFÍfń6Ă’3+ďbĎ–@Re 'q á”^‡·°ž.óDz©FyO\ó ío‹÷(Ź@ęÝ>u…d˙Ç!ĐMHď˛T.•ĄŇp^ĎĽđŻMčvuKqĚŔ%ÇEu®zAŇ”"Ë:=˘«XzĄŰ–Âź)Ş×HąŃ»RšÖ ĚŔ,á;H|˝€şdĘ5®,âŹTt×č»ĎoTŤçK”/€%\ĺg]šźĎQGČŁJ'©´}Ákž żqŢ™¶O¸ůü÷ż°%éÇ^2ůęđ/ >¶śSîŰ!Ś7ąäšB×ÇB‘ke@ĘĄˇ;É?„¶/,ć˙NT?>#Ľ‚×D˛;$ˇHwQ#í]/­ś‹"Š´“¦Q«4×5şCPM ňŮÔ:2˙ U~€‚(îNŠűvîŢżć‰×v>Iř¨ ąäČGbŹă9şąjJa©,…<-ŚÂeE?´4ÔM rđĂCBČA±}Ýa, I(’=˘ŰzźqÂŤC BĚż"Fł°:dî/x– >€)Xš+NČs*–+€0SűA>á§ă!‡ßÓΑOľřË?’…PŹš0Ů$xyL*Ę˝`ł’ÉçMŔđłĄŇ ˝ lJ‘ŘÓQŘjĚ~„ĺ (/“âÄaÉ3% 5D”ŁŁc4…W“™ÇńĎ-•žçÄQŞ,!Ë4.Rä^QëSżçK»ágÜĹO¦›Ţ3d)„s{X7k‚ˇŕcKZExJw«Ë(!ňá ¸ÔpQÓ Ę†+]q,ô¶Č 9ZĂur.íŁĽLZPżeČ˝E’9úd)Äs±JD¨ŢG ĹŕËBČKŇ(U0†\ĘF'{řC.ř‚/[µ°IľĎ—v·Źä_ůÍ/ř)li}Đŕe˙”Ąl8Żd^xZ"ć^0RŞoPůČ J.6Ň 6Ň’,ÄëE˛Ű+¨ß2äŢÓĺî°f›X·]Ż.>h "É4ŢR6Jq‡.P%ŤĆ8žĆž;SCSˇś÷áj6|±<݇đÉOz—Jň)§Ä^…‚Ź-ÉdAąŚ”ô jžHňą‰ľŚň]Ă1˛×’C¦Úâ!oiěˇA.“Ęu“v@±4aDÉD¬zŠŢµÓą}{7{Jź”Â狨ŽŞŞĽŤ`ţp¦ mśëą!Î΂i3ö4ťźQ_ütKŇ{†,…pnź§ň/Ö$řŘ’L<ÍŞţ˙‡ĎöÝó»éŠ(Ć8$ŕ’ cą¨éeS*Š…îÚâ tCÎx¸2|č}šTn ÉîĐňĚcaş^ŞAc AÄ&.\;ťOŠ˙b¸©đSť ĘëpH3o‚G—5úµŚŃŹ»ć)óOIAű_:üÉOP 0hÜ%‡·Žń/z^?¤O°ž< Ďé&ćauK‘ر)ÄĎâŕ' aţąľ,”…÷·’dSȰ\÷ᵆ ę §)´,,řÖ0™‹q×-±arź‹ř"je·ßµĎsI)ˇtýĽ!Q7÷ÜË›Pe0<ăr…±m_,ód٧Ç?áĎľ…˝ đř'P+c ç“™—@D.|ú”—”şŹ‚@A: hJŽ‹Üś6±PHÓžî(–­ˇý?u°5tAčâ­ŕ[C=Y(’DôJ.'Kš˙s†Ş3@¶UfŞóJud‰I äb/rÖ矲ů#}иK ů‘J,“+]/ŘÍęJ –Â,LH8ŕyCJź ĹRÉ,tWž$˘7JÁü]C@M$fˇ‹ş‚j őDÔ@±BDP/8l8HwšçqTÁ—š«Łd(C‘Ş–AÂ);<ĺí= ŔD~ç é=Ł)KMk‚ˇŕőCuO™‚MĘ×Ý˝@jË —ĂΰĐÝ"^ÉÁŞxłeě]C T‡nÉQCGl´iQ2Ď"ŤŕcEÂĎő"rC ťĄ’mčóČ×üT¦ŮŇÍ˝PS*—š0ÖCÁ×,É„ =e 6,Ě3!”vrą,L“†Öpt¨xÜꯔ 8$‰(@‘„źN5í’+eC–Bh…ţźG„AřZ–÷ů4Hşş´Ďł¤ÁĎąűOp$9C– Ke©4ÁPđ±erÂ…™‚m&P,LH‚Ąž‹í`aŤ.ḽÄQ6PĄ ő˙ůĎ\é^)u'Ô!˘Ąʉ¦P`/~F)áŇ(6!(Ę< –ífž%“wĺ |ç/hČRâfâ!®Tš`čyý.“9ĎźŽi—0Ďlî…AňáD(•C.fđ˝)ËBoó=.’ôĘ"rWJˇ9.r ”‡„ůs{Cb(x\&HCAPŔŢŢ3<˘b‘Ö,íÜĚsHsĺÓú Ń”ÂRrĄŇpž› ÂĄ2‰ ­r/Ř^ąŚ‰ ÉD‰F<„§qóń„ )ż  Ź@َa(_)…\¤qt”źĄ™¶°îETŇ—ÉŞB3ĎĽ/>ҦVp5Ü ú+źză.É0¸”Ă`.Î{o˙ŕ|˛LzĘlR†şÄÇĺ.x„™F$9!Š‹ÜëőĆSP4ˇN1É8†ÜG~˘7dËůçîDoźrűZq<Č[8§ř7wZWSGjÓCą2~ä•O˝!Ë䥲Ś55}l™śČą§LÁXEkZ0ÇŘÄ99Ń—É>Á”’KĽ+äĄ0p`9aˇ»vEŕ c15ĎńĽ±ö z%T˙-5{E´rެ"x přÁI´擣nh˙‘ĚýËÁW>Ýů^ČíĽ†üýĽŚůrą@A|ĆîJuĺ÷ľ)„F/ş‰ľLö ¦YÝMDŔТl KŻÁˇWĘ<ăňŘgą é=\–âĽp\AŇ'ÉTăr/tKŻó+‡ĽŻú MµÔ„őMM[*“¨P>łŞ›®5ňęÖµt)‚‡pNÎÇa0Ń—ÉľŽ)ËHSŁ541ťbé…îĐť¬A#N”Ó„WĆkÎrIĎ+ öÂŮ9 A,éÍ4®ä:?r%ĺm$KͰ3•e˛©écKeÂ… y)ˇĚl@.E’s¨‰§y‰ľLöś ?`ţÇŕŤâ%9„ůgÄNQîÂR,&…2č9\’†,q§łŕ‰;H Ž1‚ŻS’žëü4ëLn]0 .5ˇ>ç®âź~ZBî*ßě„XÄÔ!ą:ŔB2äŕ—E,%ŤŘ B-ř—Kâůi€ÔżŽgČ’\âRđĘ=/xáÜ-S4śç&hž‹_ĂOyÍSSĘCÁ%‡Áś4Á0ÁKÍ„úˇce 6)Žjv”RNň᤭,$Ăơč1O ‚Ş}!Tˇ˘Á!„Ä„PoÜĄ†|ŘxŢţWDîměĺSłĚ‰d“şÇ±ř ˇr© ąRi‚a‚–ÉITÂŇQĐýH·ý•Ąn˘`)…ňΕ,LH’Y!ěy’ˇHŠ#źŇ,Ét8´ĄýE €p(ÍĎ"s!´K®Ä—A §<%ÝĄ’\.ă ·íłCާ=•ë Ür©âĘdĂyÍa•§á29á„\Ň}wL·‘ĎU÷Q°”|ľę¤•wž…xHÉE đŇ hW;ę ĹHP\Ô4Ţőđ#Kĺ’+±ça IąĄ˛Ô@+Řöi~˘&/5ˇ`dÂ)GŻÂerÂ… yp4_mŁ8ŞÉŁ]ËBaÓŽ IjĘ˙vĺ $˙dČi–Pí ÝĐ‘Ąm˙őŻJ(?KS !8H.ń·«Ł$śËđI3‹u č–~†ů%á燢–šPź“&-ôĽ~—É &äšQČ쀂,$‡z€…®—CÁD‰Ű™v( ‡EňóĄŔQ–˛|š‚çSů´žĽB˛í3ˇkžĘµÔqe˛ †‚×á29áB!Or•)Ř! ,L"O÷8\\ş^äKŁŁ-n¨q(Ú ŕ4€ŐűäsÉĄfH6ž—CRÁSţ|EŽLŢŽ ţn{Ô‹G-őC\©™ ?+ ^?„KeR?¬3„•)+éԞ٠BłÂ=—ŞÖgˇWF±Đő$ŐôĚë(â%şDtŻš‚Ó&F-ą’4žÇe0çö¶ć4Ş<Ĺë—JňąËúk+ö‚űŠ4Á0Áǖʤ~ Žb忬«đ7¨ ¨)e’§o<ż,ôĘd/pQcę„bÓ0)BPäJŮx—ÉŞCAk‚PńvčČצĄ&T–őM>¶T&QaB®ĺ&ä^°-’QśŔŤFĺÝŔB`Pçz’‹ŤpÎÝ"Ś:ŻLĂ!đ Šęç._öCŠřéi$“4ÉçÁdânĎ›i˙ß&Ş5 ż`.›´Đóúˇ`©L˘Â„\3*OČlŁęłk Égu ˝2­$Ă{Drëqhb2#…!·SŞ "ąčů´.PFٰ‡5g[!$[=;jśď0#—ÂPý š™ÁÉőM0TúšĄ2‰ …ËkFcYsš~‚ŇčGkúŘ29‰ …\ Žj&jŽ‚ĆGŹŤŽŽţđĂ}}}ďż˙ţG}´bĹŠ¦^ź“DAcĚ˝{÷FGGŻ]»633CÎmfu‚SNëBşaz%‡É öÜçâýMqŃ0í 7ĎŹE ·ŻH#ŕ—äjkh«ŕ©; + ˇ7 4úѨ QCÁR3ˇ~(äňPpT3AÖh/xęÔ©ÉÉÉK—.=|řđŕÁ›6mÚ·o_ŻOJ˘`Q7nőŘ311ńÖ[o]ąreýúő°rĺĘrícőË/ż$<+++++«g´~ýúµk×ŢşukppnŢĽŮßßßź[ëC¨6lčďď?qâÄÔÔÔÄÄÄŮłg÷ěŮÓÔšeeeee-E144túôéÜąsçÜąsĂĂĂřą)÷oßľ˝˙ţźţą(Š“'O=ztÇŽ­Vkxxxdd$yU4·ł˛˛˛˛WúK†±:tčĐŃŁGwďŢýĚ3Ď|đÁ{÷îmÓrU´o{b500µ2K}~®Ržßěü.\Ą<żŮů]¸JÝ6żűŐö_ËĎĘĘĘĘĘęZe feeee-_e feeee-_-áű‚= ĺ¶ÉËm{aůmňrŰ^X~›Ü{Ű›{Á¬¬¬¬¬ĺ«LÁ¬¬¬¬¬ĺ«LÁ¬¬¬¬¬ĺ«.ş/•••••Őaĺ^0++++ků*S0++++ků*S0++++ků*S0++++kůj1)hŚůóĎ?wîÜiŚÁŁWŻ^ęüvFĺNXěµh^ÓÓÓGŽyőŐWß|óÍĎ?˙|vvÖ5Ć\˝zuŔQ/byŰ—şŚ1x˝wńrx˙Ú3ŘbŻHĹm`/˝Sţ˛R}cîÝ»7::zíÚµ™™rÎřřřđđđččh‡×­“úý÷ßĺť°¤uęÔ©ÉÉÉK—.=|řđŕÁ›6mÚ·oź;a|||ď޽ǎ+Šb±V˛M nűRŢŔwŢyÇťĐóďßŢ~ó‚b{ćý»8˝`Q7n}zńâĹO>ůäůçźß˛eË.\¸ŕMëŐC¬Ůö%­ŮŮŮr×­[÷â‹/.«k<-uĎN=s»÷ľŕřřřO?ýôú믿öÚkź}öŮÔÔÔbŻQV„&''§¦¦¶nÝZ–۶m»}ű¶7§<ÄoĽńFŹbͶ/ién~˙ö°zćýŰ˝ś™™Ůľ}űĺË—żűî»ß~űířńă‹˝FYš™™YµjŐęի˲Őj=zôĎéÉC¬Ůö%­rűúúĘKaËęŕfYőĚ!îÜ}Á(ŠâúőëšëČçĎź/M«Ő9|řp{ׯ#,?DĐ“_Ůc·îĆŤ­VëÉ“'˙üóO__LOOŻYłĆť\…=ÄĎ>űlĎbnűRWąŹ?.IOn`Oľł¬zéýŰą^plllllěĆŤA–źťyůĺ—ďßż_&+W®´˙ł^ŇşqăFą{EÚ"wëÖŻ_żvíÚ[·n•C7oŢěďďw'ŰC\‚łg1(¶}©KŢŔ~˙fYőŇű·KŻnذˇżż˙ĉSSSgϞݳgĎbŻT–VEQ¬X±bhhčôéÓ˙ý÷řřřąs熇‡Ý9öOOO˙ńÇ˝tŰľÔUEą<¸sçŽppóű·WŐKďßî˘ŕíŰ·_yĺ•ňzňäÉű÷ďďرă˝÷Ţ{饗FFF{í˛âtčС^xa÷îÝ~řáŰoż˝wď^cLyŤ1EQôđ!ĆŰľŘkÔ°Č ĚďßŢVŻľ‹ożýv±×!+++++kqô˙L-ĆŁţmIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_marker__inherit__graph.png0000644000175000017500000001260112052741156024001 0ustar gudjongudjon‰PNG  IHDR­»B‰’bKGD˙˙˙ ˝§“6IDATxśíť{TWţŔż“'bĽ‚¨°H«Ô.‡­ =©˛J[ËęéńlK­Ů čÚçîşVm»jYZBĹzv,ĘŰj«ĹEy´][)äĄ $ň~?ňšß·żě4 E&šďçx<37ß{ďwî|2s32MÓ€X=¶@,ô@z€đ+˝˝˝QQQleL{öěyňÉ'M«óóBzzzXXXhh(‰!SÇ˙ű_??żôôtS odóeädÝşuf%8?@Đ„€ čB@€ {PWW.•J»»{lllWW×ŘUT*•ŤŤ saę™Ă]&ŁR©(ŠZ˝z5ł¦i777¶¶qbLÄĄRůÄOĹâ‚‚‚ÎÎά¬¬k×®ůůůý˘ $<ݍ¨¨ĄĄĹTRXXxß ĹD<ŽŽŢ¸qŁBˇX°`ÁôéÓ-ZtúôiGGÇ={ö¬X±âŕÁĐÜÜLQÔ?ţńĐh4Eyyy SŐÖÖ6jłýýý[¶lqvvvuuÝąs§^Ż€ŢŢŢČČH{{{ww÷ÔÔTÓ›ld°JĄrww?räT*MKK#‘aaa‰ÄÍÍ-##Ůc[[3«ŰµůÁŘŰŰ;99;věŻý«D"qrrúôÓOI#\.÷ůçźOMM55›’’"“ÉL«•••K–,™6mš››©u»TGFN`D"‘JĄşłťJ38qâ„YÉHş»»9Nmm­YyVV–§§çÁź}öYš¦Ź?.‹É˛···R© …4M›Ěxůĺ—7mÚÔÚÚZSSăëëűĎţ“¦éČČČŐ«Wk4šęęęE‹™*Ž V*•Ó¦M‹ŽŽîîîŢ»wŻ‹‹ ‰”ÉdË—/ojjŞŞŞZ¸pˇYĚdFm“Çă˝öÚk˝˝˝{÷îĄ(Ę´LÚ'Őżúę+oooŇČŔŔ€ťť]~~ľ©Ůßýîw»wď\RR˛gĎSůČTGŤĽű'™'*Š”””ŞŞŞˇˇˇžžžůóç—––ľůć›|čĐ!Š˘–-[–¸|ůr>źOQ”Á`Đét¤‘.BˇP&“ĹĆƶµµµ´´¬_ż>>>^(†……Éĺň[·nŐÖÖîŰ·Źlç¨Á٦*d2Ytt´Z­®©©aî ‚)«ń·9*^^^îîî‘‘‘!!!¶¶¶¦ňźŽş<^GGÇ Cww÷¨-Śy÷#0^'‰ń̵µµ›6mrvvŰ·o_Ľxń®]»hšîééáóů|đMÓŤŤŤpäČš¦{{{,X ‰ľůćł6lŘ@Ótggç¦M›ěíííííŁ˘˘HáúőëĹbń#Ź<’(‰H#™§dćr{{;ůĽ0gÎścÇŽ™M LYµ··ŹżÍQç: …ňóóÍĘ˙ţ÷ż‹Ĺâyóćĺććzyy­X±âvÍŽŚśđŚÍ='ŢŽÁÁA2Qş·¤¤¤h4˛ś““ăĺĺuĎ»°p&cFzpĎ®+ŰŘŘřřřÜ«ÖLäććľőÖ[===7nÜŘż?™‚XS3–~AˇP´µµÍž=ŰŰŰŰÍÍŤLA¬Š©;ţÜ8ĹHĄŇ“'O˛ť›LÍXúń™Đ=@č0ę<ń“O>™ú<©¤®®ÎěöĐĎ®UVVŠD"–rc ĘĆća.×Ú¶âââ»ţgĎd…\ĽX»v­âXşoßÚ_Ž~p±öůANÎä˝ŢČv.lbŐhµúěě2čî(*Şb;6±j TĂŔĺr˛ł`;6±j˛˛~ŕr9 ×Ďś©Ô˛ťkXŻýýĂ_}uEŻ7ŐáaýąsWŮM‰E¬×¦ŔáPYY%,ćĂ.ÖëAVV óŰ|z˝ńÂUOĎ ‹)±•zĐŃŃ_TtÍ`řŮgEš¦żü˛‚­”ŘĹJ=8}ş|d!MÓVzj°R23/ŤĽj4Ň/ÖŢş5ú÷‰l¬Ńćć®~¸a4ŽrAťËĺś:5ʡâÇ=8uęňínŞčő†¬,kĽ déßOś ćÍsrq›Vűú†mlř<ŢOo‰Çse)/6±öűŤ0kVlRRÄ /Üű/ÝßGXăy z€ =@Đ„€ čB@ô! z€Đ=@č€ ô@z€ =@Đ„€ čB@ô! z€Đ=@č€ ô@ź¸ű‡N ĄRiggÇöÖ…s9Ű_Ž›|ŘÚ¬ý>REEEgggzz:[ XqqqEEEŃŃѬôÎňďd…††˛›€ĺ‘‘Ábď8?@Đ„€ čB@€űÂşşşđđp©T*ÜÝÝccc»şşĆ®˘R©lllČĹŔÁÁA&“5773c~±ł…K÷@©T>ńÄb±¸   łł3++ëÚµk~~~ż¨‚ ˇPhşZRQQaccóĘ+ŻLjÎ÷%l]Ŕ:qâÄxzć™gţô§?1KŚFăŇĄK·oßľ|ůňĐ4ÝÔÔďż˙>MÓjµšąuĹĹĹLhšţî»ďhšV*•¦—:;;7nÜhoo?{öě7Ţx0-´¶¶šJZ[[űúú^}őU''§YłfýůĎÖétJĄŇÍÍíŕÁ3gÎtttLMMýË_ţ2cĆ GGÇŁGŹŽg@BCCCCCÇ7x÷‹>ôôôČĺrf!EQ111źţyppđ…  ¸¸X,@aaˇ···i;880ëŞŐę?üđńÇ7ëhË–-===WŻ^=ţü_|‘’’bÖ‚łD.— TVV) hjjjiiąqă†\.ß´i“V«˝yó¦\.ăŤ7&u”î l 8žăAMM EQ:ťÎ¬Ľ¬¬L$]ąrE$étşm۶˝ýöŰb±XŻ×oÝşőő×_7í3ĄRÉÜX‘H´zőęĆĆFšq<âp8uuu¤ń¬¬¬_˙ú×ĚĚ´Z-źĎďęę"ńçĎź_Ľx±R©äp8CCC4MWVV2—ÍH·ÝăE?ÁŃŃ‘˘¨††ł‡Ô755IĄŇ… J$’’’’âââ´´´´´´˛˛˛ÂÂÂŹ?ţ, ‡††ĆčEŁŃ€»»;Yőđđ¸yóćńjµZ§ÓI$fžŔçó…B!p8ćňťl1kXt–b±8 !!ÁTW__ź«V­ĘÎÎÖh4^^^Ë–-ËĚĚljjň÷÷żŁ^¤R)\ż~ť¬Ö××»¸¸ŚďěěĚĺrMÇľľľK—.Ýé¦Yí(Š”””ŞŞŞˇˇˇžžžůóç—––ľůć›|čĐ!Š˘–-[–¸|ůr>źOQ”Á`ĐétăéB(®Ył&&&¦ĄĄĄşşz×®]6lŮ‚©D(Ęd˛ŘŘض¶¶–––őë×ÇÇÇOÖöO–îÁŁŹ>úý÷ßwttĚ1#%%ĺŹüŁ››ŰG}+V¬^şt)öőő€«««§§§˝˝}GGÇxz9|řđôéÓÉA%88xçÎť#[`–$%%éőú <účŁNNNďľűî¤ ŔÁÚsyŇÓÓĂÂÂ&ÖűĐĐJĄňńy ž¤łnÝ:`ë –~<›LÖą/=@î9č€ ô@z€°ţ˝ő   v°~üńǧź~š­ŢY»ŽÔŮŮą}űöţţ~Vz7a0PŐŐvRiżD2Ěn&Í– ÖţśďôôK11ź=óŚWjęf¶sakźääü@Vuw°ť ›Xµ­­˝_} €€Ď?żĚv:lbŐś>}™˘( i:3óľ˙ÁÝ`Ő¤§—Ť4ŤtIÉ µzĽß~đ°^Ú+*‰ŔĺrrsËŘM‰E¬×“'ËxĽ˙mľÁ`ĚȰŢSőz‘qI§3šVišV©Ôµµ-,¦Ä"VęJĄ®©i!źLđůÜÜÜR¶Rb+ő 7·T 0ż¦®ÓŽ˙ž•|XÇ= i:3łD«ŐŹ|©©©ł˘˘qęSbkô ´ôFsóč­öÔ`Ťäç+(€7ňźÁ`ţîk,Ĺ?ü0((H.—Ďť;×ĆĆć‘Gyď˝÷$ɧź~şcÇŽ'N@{{{```ZZtttFDDčtşŔŔŔîînfköööż˙ýďU*•Y/}}}ďľűnHHČşuëŽ9ŇŢŢÎlĂářůůť;wÎź——`Z˝~ýúÖ­[W®\–—— /ľřbvvöłĎ>ŰĐĐ@ÂhšŢż˙Îť;µZ- ĹĹĹ­YłF&“%%% †Qk±‹Ex000půňe™LĆ,¤(J&“}űí·K–,)++€ŠŠ [[Űňňr(//÷đđ8zô(9 Ě1Y·˝˝=33óá‡6ë(..®żż˙čŃŁqqq/^*//ĎÉÉY‹u,â÷ÖɡŘÉÉɬÜĹĹĄłłÓ××÷čŃŁˇ˘˘bíÚµŮŮŮFٱĽĽ|É’%Ě`ň¶&˶¶¶>>>Ż˝öšY@AAÁ±cÇ$‰D"‰ŚŚLNNö÷÷gĆ,Z´¨§§§¦¦ĆÓÓó›oľ™?ľ˝˝˝éŐ¨¨(©TĘĺry<žéź^ŻßĽyłD"!g…BqöěŮŚŚ ˇPH^ÍËËËÍÍť>}úŚ36oŢ|řđa___S­{2€wŹEx@†ŁĄĄĹĹĹ…YŢÖÖ6sćLww÷‡z¨ŞŞŞ˘˘âoű[~~~uuőĺË—ccc™Á|>ź«oGGGHĄR˛ęââŇÚÚjCQTPPĐŮłgŁŁŁóňňĚć}JĄrßľ}E1•ĺńx¦Ý©Óéš››çÍ›—‘‘ńĘ+ŻNőzýóĎ?o¶±ĚZ–€EśČŰ7;;ŰT’‘‘ˇV«łłłźzę)đőő-..îčč;w®ŹŹOaaa[[ŰÂ… 益™3g€FŁ!«jµš”±rĺĘüüüÖÖÖĘĘJćÓ×»»»÷ďßżcǎÇżôŇK¦rňDXŹÇ{çťwbcc333ɉßÎÎŽĂáś>}šL`Ďś9“””dV˰@.—çĺĺ)ŠĆĆF­VŰßß^]]˝aĂđőő=yňäcŹ=FQ”ŹŹOnnîăŹ?Îăń(Š2Ťzý(OZ źĎ_şt©BˇčęęşyófrrrPPĐČÜÜܤRéűďż˙ÔSO‘c;¦iŕrą˝˝˝ÇŹ7Ť#o˙PĹçóçĎźO: HLLěîîîęęÚłgOffćÝ×=ÇR©˝XĘń`T•K0eX´Č” čB@ô! z€&ý>ÓC=¦;ČŚŚśě.¦âůÎ_~ůĺü%ĆĚŠ+&űďÚđ9ßÎz€ =@ţD,ÖńÍúĺ•IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_linear_scale_engine.html0000644000175000017500000004547612052741164022426 0ustar gudjongudjon Qwt User's Guide: QwtLinearScaleEngine Class Reference
QwtLinearScaleEngine Class Reference

#include <qwt_scale_engine.h>

Inheritance diagram for QwtLinearScaleEngine:

List of all members.

Public Member Functions

virtual void autoScale (int maxSteps, double &x1, double &x2, double &stepSize) const
virtual QwtScaleDiv divideScale (double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0.0) const
virtual QwtScaleTransformationtransformation () const
- Public Member Functions inherited from QwtScaleEngine
 QwtScaleEngine ()
virtual ~QwtScaleEngine ()
int attributes () const
double lowerMargin () const
double reference () const
void setAttribute (Attribute, bool on=true)
void setAttributes (int)
void setMargins (double lower, double upper)
void setReference (double reference)
bool testAttribute (Attribute) const
double upperMargin () const

Protected Member Functions

QwtDoubleInterval align (const QwtDoubleInterval &, double stepSize) const
- Protected Member Functions inherited from QwtScaleEngine
QwtDoubleInterval buildInterval (double v) const
bool contains (const QwtDoubleInterval &, double val) const
double divideInterval (double interval, int numSteps) const
QwtValueList strip (const QwtValueList &, const QwtDoubleInterval &) const

Additional Inherited Members

- Public Types inherited from QwtScaleEngine
enum  Attribute {
  NoAttribute = 0,
  IncludeReference = 1,
  Symmetric = 2,
  Floating = 4,
  Inverted = 8
}

Detailed Description

A scale engine for linear scales.

The step size will fit into the pattern $\left\{ 1,2,5\right\} \cdot 10^{n}$, where n is an integer.


Member Function Documentation

QwtDoubleInterval QwtLinearScaleEngine::align ( const QwtDoubleInterval interval,
double  stepSize 
) const
protected

Align an interval to a step size.

The limits of an interval are aligned that both are integer multiples of the step size.

Parameters:
intervalInterval
stepSizeStep size
Returns:
Aligned interval
void QwtLinearScaleEngine::autoScale ( int  maxNumSteps,
double &  x1,
double &  x2,
double &  stepSize 
) const
virtual

Align and divide an interval

Parameters:
maxNumStepsMax. number of steps
x1First limit of the interval (In/Out)
x2Second limit of the interval (In/Out)
stepSizeStep size (Out)
See also:
setAttribute()

Implements QwtScaleEngine.

QwtScaleDiv QwtLinearScaleEngine::divideScale ( double  x1,
double  x2,
int  maxMajSteps,
int  maxMinSteps,
double  stepSize = 0.0 
) const
virtual

Calculate a scale division.

Parameters:
x1First interval limit
x2Second interval limit
maxMajStepsMaximum for the number of major steps
maxMinStepsMaximum number of minor steps
stepSizeStep size. If stepSize == 0, the scaleEngine calculates one.
See also:
QwtScaleEngine::stepSize(), QwtScaleEngine::subDivide()

Implements QwtScaleEngine.

QwtScaleTransformation * QwtLinearScaleEngine::transformation ( ) const
virtual

Return a transformation, for linear scales

Implements QwtScaleEngine.

qwt5-5.2.3/doc/html/inherit_graph_9.md50000644000175000017500000000004012052741151017142 0ustar gudjongudjon12ddb40fd067e7cc46a25d8ca3b516d6qwt5-5.2.3/doc/html/class_qwt_plot_dict__inherit__graph.png0000644000175000017500000000506712052741156023453 0ustar gudjongudjon‰PNG  IHDRcp…Y÷bKGD˙˙˙ ˝§“ ěIDATxśíťiLŰŔĎ…Š<(R‘ÂQ!1‚K@Ş”PýĐ€,Fý A%HѸÜŠš¸D‚Qc$T\‚Đ*âr…«¶Ô /^ /˛HžČfQ„Ҳ] ťy&ŻoĎJ{oÎďÓĚé™˙ůź_gNĎ í# cîţ6 S° S° S°ĚĄîôőőíŮł§§§Ç\ŮXáááÇŽŁ–`ÔĎľ{÷îĹÇLJ……Ív^Ć÷ďßëęęhł‚ąă륧§ĎVJŠ\.?}ú4­ŤS° S° S° S° S°LÓ”Z­>ţ|tt´@ ضmŰĺË—űűű§>¤µµ5""‚ÜŕS‰DéééÝÝÝÔ:đARR҇hu¦Ž0 ¦cŞĄĄ%))ÉÖÖ6++«´´ôĚ™3mmmÉÉÉ?•e„Ĺb˝üyyyÖÖÖŚr0FJĄ›7o>qâDKK ŔÍÍ­¬¬Śq— Ž©ěěl@ššęććĆfł—.]zţüy‡sóćÍÇş»»ů|ţÝ»w===|>×®]ŁŁŁ|>_«ŐRŁ999mÝşµˇˇÖJ˙ąsçD"Q\\Üőë×»»»'Ś`oo/‰„Báť;wŔŘłfppđâĹ‹"‘(::://O«ŐN– ŚM ÖÔÔÄÄÄP 1 ‹‰‰yóćMpppuu5@ĄRŮÚÚÖÖÖjkk===% y"888PŹíîî...ööö¦5”™™900 ‘H233ß˝{W^^>YŔÚµki…999:ťN"‘dee={öLĄRMá§L0GźšŢŢ^€łł3­śÇăi4š   ‰Db0T*Utt´L&ĂqĽ¶¶688Z™|cÉm[[Ű€€€ŁGŹŇ*ČĺňŰ·os8‡ł{÷îüüüuëÖM–•ŁŁ#9ŇŃëőĺĺĺd„'NX[[3í,Ʀ8ŕű÷ď<ŹZţăÇŹ xxxŘŮŮ566ŞTŞ“'O>ţĽ©©©¦¦&--ŤZ™ĹbM=šwé...ä.ŹÇëęꚢľFŁqrr˘EŔqÜÁĎĎĐÚÚ ŮÍń0ľúČS@&“KŠŠŠÔjµL&[ż~= ((H©Töôô¸ąą(Š?~řúú2jeÁ‚€ÎÎNrW­V“%“ńöíŰeË–QKFż•••Ż^˝b”ŤéŚč©©©eeeąąąmmm###‰‰‰MMM €   ’’??? Ăă}ˇ2ó¦ěíí7lŘ@}ę™™ŮÜÜś““#‰‘‘‘2™¬łłsůňĺaaaĹĹĹS¬ľ>>‡\Â\(&&&†‡‡cvŕŔ‹…aÁ`…iÂĆĆ&**J,_ż~]«Ő¦§§'$$#°X¬ď”If +V¬x˙ţ}OOφ  RRRÜÝÝ/]ş đůüţţ~ňŇsuuőňňrrr‚üwS×®]›?>yb …Â#GŽ0ŤŔ Fź”ł„ Ş®®žŢ±3°„YÂd°Ů쀀€YknĆA÷}° S° S° S° S° S°0žŁWTTS¤bá03•śśl˘ qwt5-5.2.3/doc/html/inherit_graph_2.png0000644000175000017500000000241312052741161017241 0ustar gudjongudjon‰PNG  IHDR`%2o{°bKGD˙˙˙ ˝§“ŔIDAThí™]({Çżgl¨íXÍ<^¨!rÁň̇4…RäáB’ÇČ…B‰dLq#\qABn¤v!’„Ő”q–Žăń4,Ź­<Ś}˙ű·ßůĎáh żţçuő=ď>߇Ď{źď÷ěŰA „€ĺ}8?˝€ßk¬A °1ŕl÷ĽľľŢÖÖö#Ků tvvĆÄÄPÄî-VPP°ľľű˝ űXźžž¦Šöxô?ˇ  ŕ­ČžA °1ŔÄk¬A 8nA%%%ŢŢŢ</  ˇˇáöööă.z˝ŢŐŐŐö¸ąą™™™éîî.âââÔj55Ć.ř§pĐ Ă˘ŁŁQ]^^ľąą™ťťÝßߏŤŤeôČĆöövZZZVVŽă§§§ĄĄĄąąąŤĆ ‘H[ŢW˙K~~~~~>dB.—×ÖÖR‹Ĺ’ĐŘŘśś¬T*!„$Izzz „:©Ńh”Éd˝˝˝ÔZZZşşş0 sqqRţţţýýýb±ŘËË«ąąŮl6ÓŠB“ÉTYYééééëëŰÔÔd‹äóů†}mîŽtwwÇápěôŮŮŮ   ľľľĚĚLáÔÔŠ˘ÖvDD„-çűű{‡C’äŰÁi rrrĘĘĘş¸¸ŘŮŮ V*•´"„°˘˘˘¸¸Řh4â8.•J0 ăńxĺĺĺáăĽľĚ Ç±ţbT´Z­@ ĐétŔl6WWW·¶¶˘(úňňRUUŐŇŇbË™ A^__?iÇqkŔäädxx8­řüüĚĺrooo­âŇŇRTT”5ňňňňă¤ŢËÝ‘3H,#rrrb§“$éíí& 5ÍęęjQQ‘‡‡‡V«]YYÉČȰEŠD"k<µ»N§Ąť‘ĂáZۉäěěŚV4 fłY("‚ \.?>>đx<±Xě@¦Ŕ±CEŃÄÄġˇ!›˘R©‡††˛łłééésssççç!!!2™lff†$ɸ¸8ęńńńcccÔa•Jĺââ"팋ĺččČÚĆqÜÇLJVôňňrrr˛UÉdÚÚÚ â@š˙ň™2{Ëîî®H$Ş««Óëőííí\.W,_]]Açććř|~NN„p||śĎççĺĺAőz˝łłóóó3„pccĂÍÍ­ŁŁcooďđđP©TrąÜµµµ÷¶Bˇ¸ĽĽÜÝÝ ±žĺoEaaaaYY™ŃhĽ¸¸P(őőő¶qľo‹BCC777ŻŻŻÝÝÝ'&&jjj¬/ @JJĘÓÓSBB ))Éd2Y÷—źź_PPH$şľľ–JĄjµzmmM*•FFFÎĎĎ/,,P«ŚŠ‹‹KjjjTTTRRRzzzssó{âđđđËË‹D" őôôěîîv,Á?8VA´<<ĎWV-®®®‘‘‘_8ŕo€˝‹1đD{çř¶‹Č_`ĐĎÂÄk¬A Đ|ö!bddäű—ňăa»ÜýÁîQ˙O¬í· R©ě ±˙˛Ęb{1ŔÄk¬A üŐNl¸Ń%pIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_legend_item__inherit__graph.map0000644000175000017500000000024612052741154023727 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__text_8h_source.html0000644000175000017500000005154712052741135020367 0ustar gudjongudjon Qwt User's Guide: qwt_text.h Source File
Qwt User's Guide  5.2.3
qwt_text.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2003 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_TEXT_H
13 #define QWT_TEXT_H
14 
15 #include <qstring.h>
16 #include <qsize.h>
17 #include <qfont.h>
18 #include "qwt_global.h"
19 
20 class QColor;
21 class QPen;
22 class QBrush;
23 class QRect;
24 class QPainter;
25 class QwtTextEngine;
26 
51 class QWT_EXPORT QwtText
52 {
53 public:
54 
86  {
87  AutoText = 0,
88 
89  PlainText,
90  RichText,
91 
92  MathMLText,
93  TeXText,
94 
95  OtherFormat = 100
96  };
97 
112  {
113  PaintUsingTextFont = 1,
114  PaintUsingTextColor = 2,
115  PaintBackground = 4
116  };
117 
130  {
131  MinimumLayout = 1
132  };
133 
134  QwtText(const QString & = QString::null,
135  TextFormat textFormat = AutoText);
136  QwtText(const QwtText &);
137  ~QwtText();
138 
139  QwtText &operator=(const QwtText &);
140 
141  int operator==(const QwtText &) const;
142  int operator!=(const QwtText &) const;
143 
144  void setText(const QString &,
145  QwtText::TextFormat textFormat = AutoText);
146  QString text() const;
147 
148  bool isNull() const;
149  bool isEmpty() const;
150 
151  void setFont(const QFont &);
152  QFont font() const;
153 
154  QFont usedFont(const QFont &) const;
155 
156  void setRenderFlags(int flags);
157  int renderFlags() const;
158 
159  void setColor(const QColor &);
160  QColor color() const;
161 
162  QColor usedColor(const QColor &) const;
163 
164  void setBackgroundPen(const QPen &);
165  QPen backgroundPen() const;
166 
167  void setBackgroundBrush(const QBrush &);
168  QBrush backgroundBrush() const;
169 
170  void setPaintAttribute(PaintAttribute, bool on = true);
171  bool testPaintAttribute(PaintAttribute) const;
172 
173  void setLayoutAttribute(LayoutAttribute, bool on = true);
174  bool testLayoutAttribute(LayoutAttribute) const;
175 
176  int heightForWidth(int width, const QFont & = QFont()) const;
177  QSize textSize(const QFont & = QFont()) const;
178 
179  void draw(QPainter *painter, const QRect &rect) const;
180 
181  static const QwtTextEngine *textEngine(const QString &text,
182  QwtText::TextFormat = AutoText);
183 
184  static const QwtTextEngine *textEngine(QwtText::TextFormat);
185  static void setTextEngine(QwtText::TextFormat, QwtTextEngine *);
186 
187 private:
188  class PrivateData;
189  PrivateData *d_data;
190 
191  class LayoutCache;
192  LayoutCache *d_layoutCache;
193 };
194 
196 inline bool QwtText::isNull() const
197 {
198  return text().isNull();
199 }
200 
202 inline bool QwtText::isEmpty() const
203 {
204  return text().isEmpty();
205 }
206 
207 #endif
qwt5-5.2.3/doc/html/functions_0x7e.html0000644000175000017500000002764512052741152017246 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- ~ -

qwt5-5.2.3/doc/html/class_qwt_plot_spectrogram__inherit__graph.map0000644000175000017500000000073612052741157025046 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot__inherit__graph.map0000644000175000017500000000023512052741156022431 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_35.map0000644000175000017500000000023212052741163017317 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_curve_fitter.html0000644000175000017500000001302712052741164021144 0ustar gudjongudjon Qwt User's Guide: QwtCurveFitter Class Reference
QwtCurveFitter Class Reference

#include <qwt_curve_fitter.h>

Inheritance diagram for QwtCurveFitter:

List of all members.

Public Member Functions

virtual ~QwtCurveFitter ()
virtual QPolygonF fitCurve (const QPolygonF &polygon) const =0

Protected Member Functions

 QwtCurveFitter ()

Detailed Description

Abstract base class for a curve fitter.


Member Function Documentation

virtual QPolygonF QwtCurveFitter::fitCurve ( const QPolygonF &  polygon) const
pure virtual

Find a curve which has the best fit to a series of data points

Parameters:
polygonSeries of data points
Returns:
Curve points

Implemented in QwtSplineCurveFitter.

qwt5-5.2.3/doc/html/class_qwt_painter-members.html0000644000175000017500000002563312052741140021535 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPainter Member List

This is the complete list of members for QwtPainter, including all inherited members.

deviceClipping()QwtPainterinlinestatic
deviceClipRect()QwtPainterstatic
drawColorBar(QPainter *painter, const QwtColorMap &, const QwtDoubleInterval &, const QwtScaleMap &, Qt::Orientation, const QRect &) (defined in QwtPainter)QwtPainterstatic
drawEllipse(QPainter *, const QRect &)QwtPainterstatic
drawFocusRect(QPainter *, QWidget *) (defined in QwtPainter)QwtPainterstatic
drawFocusRect(QPainter *, QWidget *, const QRect &) (defined in QwtPainter)QwtPainterstatic
drawLine(QPainter *, int x1, int y1, int x2, int y2)QwtPainterstatic
drawLine(QPainter *, const QPoint &p1, const QPoint &p2)QwtPainterinlinestatic
drawPie(QPainter *, const QRect &r, int a, int alen)QwtPainterstatic
drawPoint(QPainter *, int x, int y)QwtPainterstatic
drawPolygon(QPainter *, const QwtPolygon &pa)QwtPainterstatic
drawPolyline(QPainter *, const QwtPolygon &pa)QwtPainterstatic
drawRect(QPainter *, int x, int y, int w, int h)QwtPainterstatic
drawRect(QPainter *, const QRect &rect)QwtPainterstatic
drawRoundFrame(QPainter *, const QRect &, int width, const QPalette &, bool sunken)QwtPainterstatic
drawSimpleRichText(QPainter *, const QRect &, int flags, QTextDocument &)QwtPainterstatic
drawText(QPainter *, int x, int y, const QString &)QwtPainterstatic
drawText(QPainter *, const QPoint &, const QString &)QwtPainterstatic
drawText(QPainter *, int x, int y, int w, int h, int flags, const QString &)QwtPainterstatic
drawText(QPainter *, const QRect &, int flags, const QString &)QwtPainterstatic
fillRect(QPainter *, const QRect &, const QBrush &)QwtPainterstatic
metricsMap()QwtPainterstatic
resetMetricsMap()QwtPainterstatic
scaledPen(const QPen &)QwtPainterstatic
setClipRect(QPainter *, const QRect &)QwtPainterstatic
setDeviceClipping(bool)QwtPainterstatic
setMetricsMap(const QPaintDevice *layout, const QPaintDevice *device)QwtPainterstatic
setMetricsMap(const QwtMetricsMap &)QwtPainterstatic
qwt5-5.2.3/doc/html/class_qwt_plot_spectrogram__inherit__graph.md50000644000175000017500000000004012052741142024734 0ustar gudjongudjoncce9b5e3f4bd6776386060533ab4e6a3qwt5-5.2.3/doc/html/dir_2ff4213617fffae17c49a9829be91ab6_dep.png0000644000175000017500000000371312052741161022343 0ustar gudjongudjon‰PNG  IHDRíe.ĚómbKGD˙˙˙ ˝§“€IDATxśíÝLÓwÇńĎ)_O;Z@Â1ęA‡vç ?ě˛Ä킜n:ť”ÄÓ'Á3ng‡§'ĹË–Óx1ę1˘IuÝ+7#dGŚËĺîâfˇwž]JIüP¶_ćHKkďŹ.ŤŁPúťĹÖ÷˝áŹÚ|>źď§ß<óő›ňŁśĎçcOą¸ho Đ1P€Žt  c č(@Ç@: Đ1P€Žt  c ń˘F···×ÔÔĚÓVŠ‹‹:ţxNÔĎk4š7Ú Ôâ7®ÁÁ»7ov*SÜő1VP ľpˇYě,€đµ´4ďÚU*j îŹt  c č(@Ç@: Đ1P úű ˇ˝ňĘ:“ézd׌Ré3×®™”ĘĺŃŢĚ,›L×+++Őjj߸Öh4VëWč8fE¸cĆŘÚµkKJJ"ľ,@¸? Đ1P€Žt  c č(@Ç@: Đ1P€Žt  c č(@Ç@ÁÓ×qwwwbbâŁ~ÜôŐÓÓť‘!b‡bÇ?™Ąž°§Żc?JĺňˇˇÉhďâÇfÇÝÝÝ …˘®®N&“ĄĄĄ555ét:©Tš––f0üc¬VkQQŃÂ… łłł ĂáX±b…Ëĺâ8Îáp0Će2YzzzSSSkĆ2§ÓQT´ÂĺrĄ¤pN§cbb|˙ţ=yyé*UfMÍAŹÇsáBăK/­ńx<ڱ#GöoŮRz|OO÷ŞU á|n®c¬µőŻ……Ë32ľđÂĎ?˙üźQ9oQľŽŚŚ hµÚť;wşÝî{÷îiµÚŞŞ*˙€ęęęŤ7ŽŽŽętşĘĺr›ÍĆóĽĎç“Ëĺn·»łłłŻŻoßľ}sÍX&“ÉÍfĎó‚ŕ“ÉäUUÚ&L&k[Űu“éúůógËĘ~·d‰ôěŮ“ËZZšőúćĐăcvűŐú•ĹŇ»{÷ď««˙ŕ?PUŐľŃQˇŁŁëĘ•ż76ž ŢÉ,ł¦Ż?6öíîÝż®­ýK˙7oľőVĹ;W?ŕ٤¤dóćAđÍöĹ3Ťa®fłŮâââ&''}>źŐj}ô±żTźĎ×ŐŐ5>>>55uńâE˙“Žm6cĚn·?:eÎ5ÓEaŚéőĆ/<‚_.‡‡Ý‰¤ż˙˙ó­­˙X˝:_|·nÝNI‘ĺä 0›Í;věŕ8.+++xzBB‚\.ź6eÎ5źĂĂCSSS …4đŚ\žĘS(~V\ü+łůĆúőÂź “ýŕ, =|řđŮgţfg/ >úŚł‚×—Jźůřăżť>]űöŰo®YSPSs|őę‚ÇíbEąăĐGyyąŮlÎĎĎďěěĽzőę´ÇEecOFjjú‚ nßv.^Ľ„1611ît:cËÍ/ľřWzúŇsçÎěŮŁ =~rňAđYJMMgŚÝąÓď/x` /řč3Î ^ßĺš\ĽxÉĺË×\.WCCý®]ĄKoOBbú*őýńń‚ ÔÖÖz˝Ţű÷ďsçőz§¦¦˘˝»ůx<ĎoÚ´íČ‘J§Óa·ŹTTlol<ĺrąöîýÍńă§ÎśŃź8ńÇ;wúCŹźń<ĎoŮRzř°Önîë»]_˙'Ććľ"̸ľ×ëÝ´é—·ný›1–ČóŃyŰ.¦;NMM=zôčşuë ·nÝŞT*·mŰ–™™™››+“ÉAöçEFFć˛eą99˛ŃQˇľľŃăń-W«UryšNwěŘ1ťR™÷ꫯ«T+ËË÷jµˇÇĎv”“'-úI~ţs͆íŰ+‘HÂŮ[đúIIÉ'Nś)++Q(¤ź|r©ˇábÄN„˘?ŻÉíf!>ç&%…3ŤŤ&{‹!ÇéőĆ×^Łóşš›?zůĺőţڶ¶–÷Ţ{§ŁŁ+Ú›úž˙snD•Ó×c?mm-ďľűÎŘŘ·wďś>ýç 6G{GŹ˙źŞ­=+Žçź˙é‹/ţ"++»˛ňp´wôXbúý ?iiK›šZŁ˝‹Áő(@Ç@: Đ1P€Žt  c č(@Ç@: Đ1P€Žt  c î8))ą´´”#‡1–śĽ(˛ç "(ÂżňŮgí==Ý‘]3$%%OűŁ'S"ܱJµRĄZŮ5ć„űc č(@Ç@: Đ1P€ŽŃď ô~đÁąůŘ €ß—_ţWôQźÂPWW7ŰN­V‹*SÜß?M¸? Đ1P€Žt  c č(@Ç@: Đ1P€Žt  c ˙˘Ha±-IEND®B`‚qwt5-5.2.3/doc/html/qwt__compass_8h_source.html0000644000175000017500000003214712052741134021042 0ustar gudjongudjon Qwt User's Guide: qwt_compass.h Source File
Qwt User's Guide  5.2.3
qwt_compass.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_COMPASS_H
11 #define QWT_COMPASS_H 1
12 
13 #include <qstring.h>
14 #include <qmap.h>
15 #include "qwt_dial.h"
16 
17 #if defined(QWT_TEMPLATEDLL)
18 
19 #if defined(QT_NO_STL) || QT_VERSION < 0x040000 || QT_VERSION > 0x040001
20 /*
21  Unfortunately Qt 4.0.0/Qt 4.0.1 contains uncompilable
22  code in the STL adaptors of qmap.h. The declaration below
23  instantiates this code resulting in compiler errors.
24  If you really need the map to be exported, remove the condition above
25  and fix the qmap.h
26 */
27 // MOC_SKIP_BEGIN
28 template class QWT_EXPORT QMap<double, QString>;
29 // MOC_SKIP_END
30 #endif
31 
32 #endif
33 
34 
35 class QwtCompassRose;
36 
48 class QWT_EXPORT QwtCompass: public QwtDial
49 {
50  Q_OBJECT
51 
52 public:
53  explicit QwtCompass( QWidget* parent = NULL);
54 #if QT_VERSION < 0x040000
55  explicit QwtCompass(QWidget* parent, const char *name);
56 #endif
57  virtual ~QwtCompass();
58 
59  void setRose(QwtCompassRose *rose);
60  const QwtCompassRose *rose() const;
61  QwtCompassRose *rose();
62 
63  const QMap<double, QString> &labelMap() const;
64  QMap<double, QString> &labelMap();
65  void setLabelMap(const QMap<double, QString> &map);
66 
67 protected:
68  virtual QwtText scaleLabel(double value) const;
69 
70  virtual void drawRose(QPainter *, const QPoint &center,
71  int radius, double north, QPalette::ColorGroup) const;
72 
73  virtual void drawScaleContents(QPainter *,
74  const QPoint &center, int radius) const;
75 
76  virtual void keyPressEvent(QKeyEvent *);
77 
78 private:
79  void initCompass();
80 
81  class PrivateData;
82  PrivateData *d_data;
83 };
84 
85 #endif
qwt5-5.2.3/doc/html/class_qwt_plain_text_engine.html0000644000175000017500000004005412052741164022137 0ustar gudjongudjon Qwt User's Guide: QwtPlainTextEngine Class Reference
QwtPlainTextEngine Class Reference

#include <qwt_text_engine.h>

Inheritance diagram for QwtPlainTextEngine:

List of all members.

Public Member Functions

 QwtPlainTextEngine ()
virtual ~QwtPlainTextEngine ()
virtual void draw (QPainter *painter, const QRect &rect, int flags, const QString &text) const
virtual int heightForWidth (const QFont &font, int flags, const QString &text, int width) const
virtual bool mightRender (const QString &) const
virtual void textMargins (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const
virtual QSize textSize (const QFont &font, int flags, const QString &text) const
- Public Member Functions inherited from QwtTextEngine
virtual ~QwtTextEngine ()

Additional Inherited Members

- Protected Member Functions inherited from QwtTextEngine
 QwtTextEngine ()

Detailed Description

A text engine for plain texts.

QwtPlainTextEngine renders texts using the basic Qt classes QPainter and QFontMetrics.


Member Function Documentation

void QwtPlainTextEngine::draw ( QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text 
) const
virtual

Draw the text in a clipping rectangle.

A wrapper for QPainter::drawText.

Parameters:
painterPainter
rectClipping rectangle
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered

Implements QwtTextEngine.

int QwtPlainTextEngine::heightForWidth ( const QFont &  font,
int  flags,
const QString &  text,
int  width 
) const
virtual

Find the height for a given width

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
widthWidth
Returns:
Calculated height

Implements QwtTextEngine.

bool QwtPlainTextEngine::mightRender ( const QString &  ) const
virtual

Test if a string can be rendered by this text engine.

Returns:
Always true. All texts can be rendered by QwtPlainTextEngine

Implements QwtTextEngine.

void QwtPlainTextEngine::textMargins ( const QFont &  font,
const QString &  ,
int &  left,
int &  right,
int &  top,
int &  bottom 
) const
virtual

Return margins around the texts

Parameters:
fontFont of the text
leftReturn 0
rightReturn 0
topReturn value for the top margin
bottomReturn value for the bottom margin

Implements QwtTextEngine.

QSize QwtPlainTextEngine::textSize ( const QFont &  font,
int  flags,
const QString &  text 
) const
virtual

Returns the size, that is needed to render text

Parameters:
fontFont of the text
flagsBitwise OR of the flags used like in QPainter::drawText
textText to be rendered
Returns:
Caluclated size

Implements QwtTextEngine.

qwt5-5.2.3/doc/html/functions_func_0x66.html0000644000175000017500000001515412052741152020171 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- f -

qwt5-5.2.3/doc/html/inherit_graph_16.map0000644000175000017500000000261412052741162017323 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_scale_div.html0000644000175000017500000005155712052741142020402 0ustar gudjongudjon Qwt User's Guide: QwtScaleDiv Class Reference
QwtScaleDiv Class Reference

#include <qwt_scale_div.h>

List of all members.

Public Types

enum  TickType {
  NoTick = -1,
  MinorTick,
  MediumTick,
  MajorTick,
  NTickTypes
}

Public Member Functions

 QwtScaleDiv ()
 QwtScaleDiv (const QwtDoubleInterval &, QwtValueList[NTickTypes])
 QwtScaleDiv (double lowerBound, double upperBound, QwtValueList[NTickTypes])
bool contains (double v) const
QwtDoubleInterval interval () const
void invalidate ()
void invert ()
bool isValid () const
double lowerBound () const
int operator!= (const QwtScaleDiv &s) const
int operator== (const QwtScaleDiv &s) const
double range () const
void setInterval (double lowerBound, double upperBound)
void setInterval (const QwtDoubleInterval &)
void setTicks (int type, const QwtValueList &)
const QwtValueList & ticks (int type) const
double upperBound () const

Detailed Description

A class representing a scale division.

A scale division consists of its limits and 3 list of tick values qualified as major, medium and minor ticks.

In most cases scale divisions are calculated by a QwtScaleEngine.

See also:
subDivideInto(), subDivide()

Constructor & Destructor Documentation

QwtScaleDiv::QwtScaleDiv ( const QwtDoubleInterval interval,
QwtValueList  ticks[NTickTypes] 
)
explicit

Construct QwtScaleDiv instance.

Parameters:
intervalInterval
ticksList of major, medium and minor ticks
QwtScaleDiv::QwtScaleDiv ( double  lowerBound,
double  upperBound,
QwtValueList  ticks[NTickTypes] 
)
explicit

Construct QwtScaleDiv instance.

Parameters:
lowerBoundFirst interval limit
upperBoundSecond interval limit
ticksList of major, medium and minor ticks

Member Function Documentation

bool QwtScaleDiv::contains ( double  value) const

Return if a value is between lowerBound() and upperBound()

Parameters:
valueValue
Returns:
true/false
QwtDoubleInterval QwtScaleDiv::interval ( ) const
inline
Returns:
lowerBound -> upperBound
double QwtScaleDiv::lowerBound ( ) const
inline
Returns:
lower bound
See also:
upperBound()
int QwtScaleDiv::operator!= ( const QwtScaleDiv s) const

Inequality.

Returns:
true if this instance is not equal to s
int QwtScaleDiv::operator== ( const QwtScaleDiv other) const

Equality operator.

Returns:
true if this instance is equal to other
double QwtScaleDiv::range ( ) const
inline
void QwtScaleDiv::setInterval ( double  lowerBound,
double  upperBound 
)
inline

Change the interval

Parameters:
lowerBoundlower bound
upperBoundupper bound
void QwtScaleDiv::setInterval ( const QwtDoubleInterval interval)

Change the interval

Parameters:
intervalInterval
void QwtScaleDiv::setTicks ( int  type,
const QwtValueList &  ticks 
)

Assign ticks

Parameters:
typeMinorTick, MediumTick or MajorTick
ticksValues of the tick positions
const QwtValueList & QwtScaleDiv::ticks ( int  type) const

Return a list of ticks

Parameters:
typeMinorTick, MediumTick or MajorTick
double QwtScaleDiv::upperBound ( ) const
inline
Returns:
upper bound
See also:
lowerBound()
qwt5-5.2.3/doc/html/class_qwt_alpha_color_map__inherit__graph.md50000644000175000017500000000004012052741137024474 0ustar gudjongudjonf53ee6e07e07a143f024b257f87da3e6qwt5-5.2.3/doc/html/dir_24fcbade20721d6ed73b69cf81173a70_dep.png0000644000175000017500000000365712052741161022327 0ustar gudjongudjon‰PNG  IHDR}M*ZybKGD˙˙˙ ˝§“dIDATxśíÜL”uŔńďÇ]ÉąX7@~\ŠŇE’bĚhťČälZŽMSd´ŔŚÎ0~HqüDQbC˘I¨(ÍvIÚ1w6‚?t¦BÓ ĂAc,3)wÜĂÓ·±Ć!ÝSĎńąŁĎëŻÓ}źĎóő˝gĎôńá(–e šw.ĐřźÂî0°; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0śV߼y3??ßN[qjJĄ2''Çöő§ç‰×®]ŹxűƲţţíí·8•äv˝B""^¨ŞŞăzÔ¦×ëÚŰS8‚÷wŘv‡Ýa`wvěŢŰŰłrĄÜ~ëçg”ť,Ěë]ˇXÖŐŐ˝‹ąŘ«;Mââ˘L&ŁB!ˇiĂřřx^ŢţuëB˘ŁCŹÉgó_ÔmŢË0fBȡCíÚµuîő˝˝=ëׇkµők×>réŇˉ?ËĘzwíZĹúőá:ÝyËe>}˝?é(ëů„Ë—7lX*ŹŹŹnm˝f§2öę.Kżý¶M(őö‰ĹŇââ65ÝĐjőߣľľvűöd/ŻĹµµźÜąÓ®×몪NĎ˝žb0 üüóÝ«WŰ“’RKKó,'**:02B75µ~ţů×uu'¬w2ëQÖóÇĆţČČH-*:ÖŃq/)éíÜÜ÷íTĆb>î3fóäĹ‹_”‰ĹŇĄK˛ł ż˘(ęČ‘ĘÚÚOöďO-)©đöĎ˝ž211ˇVg{xxnܨ¶¬ÔéÎk4‡e2ꀀŕôô¬Ď>ëQÖó†qqqyřđ÷©)vűö䦦vmÂů9ÁżđčŃCłyrőęŔéß‘Hd„˙ŔŘXĺíŰm±±lYďć&‹Ą„Šr™^ɲS~~K-żôó °>ű¬GYĎ_ĽŘűäImmíńÂÂě°°¬¬ü°°5˙őOţdóŃ]&óquu˝}»×ÓÓ‹2>>NÓBČO?µ·¶~çăóL}ýgÉÉ{ć^?11AQ”ődBH_ß}˙BH_߯Ögźő(ëůFŁŃÓÓëĚ™ &“ńÔ©OŐę”+WÚyŚ0ď3E1 c6O …˘řř×JJ>˘iÁ0‘ńv]Ý “É™ąWŁ9\VVUYYÖ×wîőłžB(%$l-.θ˙—ęę «Čłe=źa7ß|íÇ „DO‰D"~kĚ`ÇîĎ>+ ŠP Ó%% cV*Łââ^’Je™™šŠŠŇŕŕeńń›CBBwî|ëĂ÷Í˝ţIg9x°ÜÝÝăŐW#SR·mŰ!¸Ů˛7ëů‹-*,,KOO^˝:đŇĄŻŽý”żłŕüüýńc“C=ÖéÎÇÄĽbąá47ëËË‹›šZçyz˝N­NáTŇé˙ÝÔܬ//?86öÇżŐÔW*7AďČ&Nß˝°đMEG?żiSŚŻŻ˙;ďd@ďČ&óń÷»ňńYRSszś9ýő; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0°; ěççď55•ׯ_áw¦#đö–>\éîîÁ×@ž»=Zů˘ŻŻ?żcÁ566lܸ9!a _ů˙˙¦˝{3¶lIä},,‰Ä†÷C¸Ŕű; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0śŻ{OO·\ţÔß?ü»Ăa9_÷…˛{OOwxx`uőÇ …tůň% çJK5ŢË—/Ńjë-kş»ď*•QrůÓaaZm˝Á0µŇh4J$”Á0H©«;ˇPHCBžih8găLG|˝÷÷?xtçÎŻiiűöěŮe2™îŢíKKŰWTtŔ˛ŕСĽ¸¸„{÷č¬,MAA–T*kkë‰DCC¬T*3™L]]ťż¤¦Ş5šLg:ŕîSSSąąÝÝ=TŞ­EM˛,ĐhJß{/ÓŐU ¸ŤŽŽĚ8śeŮśśBOO/•jëČmăLGüó«nnn–o`pqqůűçé·nµĄĄí¤(jÖwC„BˇT*›qČ?ÎtýsĂĂ ZýVssŰš5‘]]ť--ßĚX`ý'α®‚X–eYV ĐôPUŐ1†aFGG,_—299 ˝»˙ġ»Ëd>ŮŮ*ŐËJĺ:•ęőŕŕe»wo“Ë}‚žS(¤4í@÷k®xţ…Brúô— ň}±ăÇO?é=˝˙ă÷ 8)ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0°; ě»Ăŕ˙=Žňň’łgky»ŔđÜ=;» łłß™ŽŕŤ7vÄÄÄň8çîiiűř¸Páýv‡Ýa`wŘv‡Ýa`w ,ÉÉÉĐűuPśJr{˙ť¦é––űíŢy­X±bŐŞU¶ŻçÖńďď0°; ě»ĂŔî0°; ě»ĂŔî0°; ě»ĂŔî0°;ŚżŁ6‘¸»<"IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_slider__inherit__graph.md50000644000175000017500000000004012052741143022633 0ustar gudjongudjon9bba9bf80a3b532a704ca0c9a30c45e3qwt5-5.2.3/doc/html/qwt__scale__engine_8h_source.html0000644000175000017500000006645612052741135022163 0ustar gudjongudjon Qwt User's Guide: qwt_scale_engine.h Source File
Qwt User's Guide  5.2.3
qwt_scale_engine.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_ENGINE_H
11 #define QWT_SCALE_ENGINE_H
12 
13 #include "qwt_global.h"
14 #include "qwt_scale_div.h"
15 #include "qwt_double_interval.h"
16 
18 
22 class QWT_EXPORT QwtScaleArithmetic
23 {
24 public:
25  static int compareEps(
26  double value1, double value2, double intervalSize);
27 
28  static double ceilEps(double value, double intervalSize);
29  static double floorEps(double value, double intervalSize);
30 
31  static double divideEps(double interval, double steps);
32 
33  static double ceil125(double x);
34  static double floor125(double x);
35 };
36 
50 class QWT_EXPORT QwtScaleEngine
51 {
52 public:
69  enum Attribute
70  {
71  NoAttribute = 0,
72  IncludeReference = 1,
73  Symmetric = 2,
74  Floating = 4,
75  Inverted = 8
76  };
77 
78  explicit QwtScaleEngine();
79  virtual ~QwtScaleEngine();
80 
81  void setAttribute(Attribute, bool on = true);
82  bool testAttribute(Attribute) const;
83 
84  void setAttributes(int);
85  int attributes() const;
86 
87  void setReference(double reference);
88  double reference() const;
89 
90  void setMargins(double lower, double upper);
91  double lowerMargin() const;
92  double upperMargin() const;
93 
102  virtual void autoScale(int maxNumSteps,
103  double &x1, double &x2, double &stepSize) const = 0;
104 
115  virtual QwtScaleDiv divideScale(double x1, double x2,
116  int maxMajSteps, int maxMinSteps,
117  double stepSize = 0.0) const = 0;
118 
120  virtual QwtScaleTransformation *transformation() const = 0;
121 
122 protected:
123  bool contains(const QwtDoubleInterval &, double val) const;
124  QwtValueList strip(const QwtValueList&, const QwtDoubleInterval &) const;
125  double divideInterval(double interval, int numSteps) const;
126 
127  QwtDoubleInterval buildInterval(double v) const;
128 
129 private:
130  class PrivateData;
131  PrivateData *d_data;
132 };
133 
141 class QWT_EXPORT QwtLinearScaleEngine: public QwtScaleEngine
142 {
143 public:
144  virtual void autoScale(int maxSteps,
145  double &x1, double &x2, double &stepSize) const;
146 
147  virtual QwtScaleDiv divideScale(double x1, double x2,
148  int numMajorSteps, int numMinorSteps,
149  double stepSize = 0.0) const;
150 
151  virtual QwtScaleTransformation *transformation() const;
152 
153 protected:
155  double stepSize) const;
156 
157 private:
158  void buildTicks(
159  const QwtDoubleInterval &, double stepSize, int maxMinSteps,
160  QwtValueList ticks[QwtScaleDiv::NTickTypes]) const;
161 
162  void buildMinorTicks(
163  const QwtValueList& majorTicks,
164  int maxMinMark, double step,
165  QwtValueList &, QwtValueList &) const;
166 
167  QwtValueList buildMajorTicks(
168  const QwtDoubleInterval &interval, double stepSize) const;
169 };
170 
182 class QWT_EXPORT QwtLog10ScaleEngine: public QwtScaleEngine
183 {
184 public:
185  virtual void autoScale(int maxSteps,
186  double &x1, double &x2, double &stepSize) const;
187 
188  virtual QwtScaleDiv divideScale(double x1, double x2,
189  int numMajorSteps, int numMinorSteps,
190  double stepSize = 0.0) const;
191 
192  virtual QwtScaleTransformation *transformation() const;
193 
194 protected:
195  QwtDoubleInterval log10(const QwtDoubleInterval&) const;
196  QwtDoubleInterval pow10(const QwtDoubleInterval&) const;
197 
198 private:
200  double stepSize) const;
201 
202  void buildTicks(
203  const QwtDoubleInterval &, double stepSize, int maxMinSteps,
204  QwtValueList ticks[QwtScaleDiv::NTickTypes]) const;
205 
206  QwtValueList buildMinorTicks(
207  const QwtValueList& majorTicks,
208  int maxMinMark, double step) const;
209 
210  QwtValueList buildMajorTicks(
211  const QwtDoubleInterval &interval, double stepSize) const;
212 };
213 
214 #endif
qwt5-5.2.3/doc/html/class_qwt_dial_needle__inherit__graph.map0000644000175000017500000000072612052741154023703 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_func_0x7a.html0000644000175000017500000001221412052741152020237 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- z -

qwt5-5.2.3/doc/html/class_qwt_compass__inherit__graph.map0000644000175000017500000000074112052741153023117 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_dial_simple_needle__inherit__graph.md50000644000175000017500000000004012052741137025152 0ustar gudjongudjonc01e1bae223d78bc8d7057b281be9e0cqwt5-5.2.3/doc/html/class_qwt_magnifier__inherit__graph.png0000644000175000017500000000720012052741155023421 0ustar gudjongudjon‰PNG  IHDR€pYÎď…bKGD˙˙˙ ˝§“5IDATxśíť{PWűÇφą…;B e¨Š^Zl,:"E„(lÄD‘j‘€¶ckgĘôg­T«R…Ňv 8ĘÍ)ťjBqh©.¦ "˘H¸rŮ÷Ź};iZ”DđÝĎ_»Ďž}öŮçËŮgĎnŘ ( ŕA‚Ŕ‹!d Cňü›ŽŹŹ'$$H$’Ĺ‹ć9ŔÖÖ677×ÂÂbží‘ůß]¸pÍfęÚ‹Ammmqqń{ď˝7Ďö:ôŚÔÔT]wyˇ¨­­Ő©=Q CBČ@†2‹"€H$:zô(‹Ĺ މ‰ÉĘĘšxô.˝˝˝›6mÂLćˇC‡4·˘(Ęfł±O~,…B‘””Äd2###Äą®č|úXîßżżoßľ   ôôt‡ŢŢŢ~řaďŢ˝YYYćććóń`dd$ĆĆƬ­­1‹@ x¬„óÇÍÍŤĎç„BaEEĹČČHww÷Bů׉…ďß|óMpp0ŹÇsss355]ľ|ůŃŁG­­­üńÇFFFLfaa!@"‘0™L.—«P(L¦T*%‘HţţţUUU¸O>źĎ`0đŐžžž={ö„„„°Ůl,•€©©©´´´ŞŞ*Ľ?ĹÄÄTVVFFF˛X¬ęęjđ˙=`bb‚Ăá(•Ę;v¤ĄĄa~ärůÉ“'Ł˘˘˘ŁŁłłłU*椬¬,,,¬··waÓµŔLMMÝĽy3::ZÓ HtttccăÚµk[ZZ­­­fff <<<ňóó)JMMŤ••`óćÍ—/_Ćvź™™ihhĆ~˙ý÷ţţţ?ýô‡Ă9{ö,fĚČČĎĎĎ?qâDII Ţxll¬»»»°°ĹbáŤćććřAóóóq{FFĆĚĚL^^ŢéÓ§Ayy9`dd¤««ëÜąsnnn ›±`ll ŕŕŕ ewvvĄÓémmm*•޵µ•Ĺbµµµ©Őj@°víZ­ö~~~2™¬«« đŰoż­X±ÂÖÖßšŔfłŤŚŚČdňää$@©TVUU%&&R©T—m۶áŤgff¸\®™™Y@@€L&{tüJĄ’Ďç'%%YYY-[¶l×®]WŻ^Ĺě»ví˛±±Ń?5s°Ŕ5»j‹ĹbgggMűđđ°ŤŤŤ»»»ąąůíŰ·[[[?űěłęęęÎÎΛ7o¦¤¤hůA$88řňĺˉ‰‰|>_«ü …Â#GŽ ‚+-‘HÔjµ““¶Şyt2™Śő*AżD"Q*•ďĽóŽÖ‘ÉdĽ -, ÜĚĚĚ|}}ËĘĘpËĹ‹E"QYYŮúőët:˝ľľ^"‘¸ąąůúúÖŐŐ Ż^˝úź®BBBŞ««‡††:::6l؀ۥRé±cÇ8““Ź©T*```[‰Dxűůä‡JĄ’H¤ĘĘĘšššššš_~ů%;;[W':±đEÇăńůüĚĚĚĚÎÎNNNr8śÎÎέ[·čtúĄK—^}őUA|}}+**^ýu2™Ś Z­V*•¸Ťćää”––¶~ýzÜŽ=ľ522/**R«Ő“““ eăĆŤ™™™ŁŁŁýýýçÎťÓ/e …Á`deeIĄŇ±±±Ă‡k–“Ĺ`á ŃhŮŮŮăăă<ďí·ßćóůQQQŽŽŽĄĄĄ???…Báăăxíµ×¦§§±`ggçââ9>>Ž» ąqăFHH¦kkk.—Ëăń>řŕ 6¸şşbh“““—,YwđŕÁĐĐP2YĎ«ëţýűU*‡ĂárąT*5!!AďTĚťßÔÔÔčqŮŮŮŢŢ^OOO=öť'UUUkÖ¬Á®E ß}÷]^^Ţân.L¦NďžŇŁccăEÍ> ˇˇ!77wjjjpp°¨¨+9Ď>ĎĎł Ź'•J·lŮďč蕜gź… ›#GŽŔŽBgžź` @†2„ŃąWVV.F/.čĽéččç•§†±±ł±±óăŰ=EĚÍÍoÝş5˙¬ę0~ÖP©Ô˙ůO* µő˙H¤ĹzX¶Řp ¸~˝K"™”H&»`Ǣ?,ŔĹ‹Íd2‰B!]ĽřěXôÇPË?˙,P*U …úçźrąvDzb¨\»&Ä“.—+®]ÂŤGo U€ŇŇfü• ‚ ĄĄÍpăŃ@&“_˝zKĄRc«*•úęŐ[2™nTúa\ľÜ¦V˙íîY­FŻ\iĎ“`””4kŤ^P-)1Č«á 044ŢŘŘ©V«5Ťj5ÚŘŘ944>×^Ď,†'@eĺÍ÷"RY)xúń|ř0ftttÔň‰·×iÎ=GGG###ĽLLLüńÇş:ŃDç» ĚĚĚ‚‚‚äääŰ·oËĺr™L¶bĹŠ7n|ňÉ'€ĐĐĐłgĎ®[·AŔŔŔ¬¬¬   …‚ JĄR(ćő…g“¨¨¨ääd±XÜŮŮ™ššşuëÖzđňňrwwßľ}{dd¤™™n˙_×&“%ÉńăÇU*•T*511ałŮ<oppđîÝ»Ř\ şž;[tttJJĘđđ°X,ŽŤŤMOO×ÎάZµę÷ß—H$ ĂĘĘŞ  `ßľ}Ř=ŕ­·ŢÂîťL&sbb"44ŕâââééikk+‘Hćs”śśśĄK—bÝ(44ôŁŹ>úW\.·şşZëúcooźššĘ`0čt:‹Ĺzĺ•W°ůŤĎś9caa±|ůň°°°;vP(]Ď#;;[©T®\ąrŐŞU_~ůĄ~~ţ‡NEx.¦§§±zř,SPP000€-———{yy=ýţY„ćQ„©©©ŻŻď‚¸Z<***:$“ÉîßżěŘ1¬hAçz”™™9<<ěęęęăăCŁŃ°˘űlĺ“ŕäätéŇ%ŘQhóő€gBČ@†2Úż ňööĆFí‹Áŕŕ`[[:×ď‚ŇŇŇţüóϧŐ •JŐšę۰?Ţý@ÔČ@†2„ů/K°Śóă·—IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plain_text_engine-members.html0000644000175000017500000001235512052741141023565 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlainTextEngine Member List

This is the complete list of members for QwtPlainTextEngine, including all inherited members.

draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const QwtPlainTextEnginevirtual
heightForWidth(const QFont &font, int flags, const QString &text, int width) const QwtPlainTextEnginevirtual
mightRender(const QString &) const QwtPlainTextEnginevirtual
QwtPlainTextEngine()QwtPlainTextEngine
QwtTextEngine()QwtTextEngineprotected
textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const QwtPlainTextEnginevirtual
textSize(const QFont &font, int flags, const QString &text) const QwtPlainTextEnginevirtual
~QwtPlainTextEngine()QwtPlainTextEnginevirtual
~QwtTextEngine()QwtTextEnginevirtual
qwt5-5.2.3/doc/html/dir_4118f540b2f97d7768d69ea313198c2a_dep.map0000644000175000017500000000022412052741161022030 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_log10_scale_engine__inherit__graph.md50000644000175000017500000000004012052741140024764 0ustar gudjongudjona06dbea2346724b59636ab923f5ab959qwt5-5.2.3/doc/html/class_qwt_slider-members.html0000644000175000017500000010372112052741143021353 0ustar gudjongudjon Qwt User's Guide: Member List
QwtSlider Member List

This is the complete list of members for QwtSlider, including all inherited members.

abstractScaleDraw() const QwtAbstractScaleprotected
abstractScaleDraw()QwtAbstractScaleprotected
autoScale() const QwtAbstractScale
BgBoth enum value (defined in QwtSlider)QwtSlider
BgSlot enum value (defined in QwtSlider)QwtSlider
bgStyle() const QwtSlider
BGSTYLE enum nameQwtSlider
BgTrough enum value (defined in QwtSlider)QwtSlider
borderWidth() const QwtSlider
BottomScale enum value (defined in QwtSlider)QwtSlider
draw(QPainter *p, const QRect &update_rect)QwtSliderprotected
drawSlider(QPainter *p, const QRect &r)QwtSliderprotectedvirtual
drawThumb(QPainter *p, const QRect &, int pos)QwtSliderprotectedvirtual
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
fontChange(const QFont &oldFont)QwtSliderprotectedvirtual
getScrollMode(const QPoint &p, int &scrollMode, int &direction)QwtSliderprotectedvirtual
getValue(const QPoint &p)QwtSliderprotectedvirtual
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *e)QwtAbstractSliderprotectedvirtual
layoutSlider(bool update=true)QwtSliderprotected
LeftScale enum value (defined in QwtSlider)QwtSlider
mass() const QwtAbstractSlidervirtual
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtSlidervirtual
minValue() const QwtDoubleRange
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
NoScale enum value (defined in QwtSlider)QwtSlider
orientation() const QwtAbstractSlider
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *e)QwtSliderprotectedvirtual
periodic() const QwtDoubleRange
prevValue() const QwtDoubleRangeprotected
QwtAbstractScale()QwtAbstractScale
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtDoubleRange()QwtDoubleRange
QwtSlider(QWidget *parent, Qt::Orientation=Qt::Horizontal, ScalePos=NoScale, BGSTYLE bgStyle=BgTrough)QwtSliderexplicit
rangeChange()QwtSliderprotectedvirtual
rescale(double vmin, double vmax, double step=0.0)QwtAbstractScaleprotected
resizeEvent(QResizeEvent *e)QwtSliderprotectedvirtual
RightScale enum value (defined in QwtSlider)QwtSlider
scaleChange()QwtSliderprotectedvirtual
scaleDraw() const QwtSlider
scaleDraw()QwtSliderprotected
scaleEngine() const QwtAbstractScale
scaleEngine()QwtAbstractScale
scaleMap() const QwtAbstractScale
scaleMaxMajor() const QwtAbstractScale
scaleMaxMinor() const QwtAbstractScale
ScalePos enum nameQwtSlider
scalePosition() const QwtSlider
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrollMode enum nameQwtAbstractSlider
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setAbstractScaleDraw(QwtAbstractScaleDraw *)QwtAbstractScaleprotected
setAutoScale()QwtAbstractScale
setBgStyle(BGSTYLE)QwtSlider
setBorderWidth(int bw)QwtSlider
setMargins(int x, int y)QwtSlider
setMass(double val)QwtAbstractSlidervirtual
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setOrientation(Qt::Orientation)QwtSlidervirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setScale(double vmin, double vmax, double step=0.0)QwtAbstractScale
setScale(const QwtDoubleInterval &, double step=0.0)QwtAbstractScale
setScale(const QwtScaleDiv &s)QwtAbstractScale
setScaleDraw(QwtScaleDraw *)QwtSlider
setScaleEngine(QwtScaleEngine *)QwtAbstractScale
setScaleMaxMajor(int ticks)QwtAbstractScale
setScaleMaxMinor(int ticks)QwtAbstractScale
setScalePosition(ScalePos s)QwtSlider
setStep(double)QwtDoubleRange
setThumbLength(int l)QwtSlider
setThumbWidth(int w)QwtSlider
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
sizeHint() const QwtSlidervirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
thumbLength() const QwtSlider
thumbWidth() const QwtSlider
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
TopScale enum value (defined in QwtSlider)QwtSlider
value() const QwtDoubleRange
valueChange()QwtSliderprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
xyPosition(double v) const QwtSliderprotected
~QwtAbstractScale()QwtAbstractScalevirtual
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtDoubleRange()QwtDoubleRangevirtual
~QwtSlider() (defined in QwtSlider)QwtSlidervirtual
qwt5-5.2.3/doc/html/class_qwt_plot_scale_item.html0000644000175000017500000013237212052741164021613 0ustar gudjongudjon Qwt User's Guide: QwtPlotScaleItem Class Reference
QwtPlotScaleItem Class Reference

#include <qwt_plot_scaleitem.h>

Inheritance diagram for QwtPlotScaleItem:

List of all members.

Public Member Functions

 QwtPlotScaleItem (QwtScaleDraw::Alignment=QwtScaleDraw::BottomScale, const double pos=0.0)
virtual ~QwtPlotScaleItem ()
int borderDistance () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const
QFont font () const
bool isScaleDivFromAxis () const
QPalette palette () const
double position () const
virtual int rtti () const
const QwtScaleDivscaleDiv () const
const QwtScaleDrawscaleDraw () const
QwtScaleDrawscaleDraw ()
void setAlignment (QwtScaleDraw::Alignment)
void setBorderDistance (int numPixels)
void setFont (const QFont &)
void setPalette (const QPalette &)
void setPosition (double pos)
void setScaleDiv (const QwtScaleDiv &)
void setScaleDivFromAxis (bool on)
void setScaleDraw (QwtScaleDraw *)
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
virtual QwtDoubleRect boundingRect () const
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Additional Inherited Members

- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Detailed Description

A class which draws a scale inside the plot canvas.

QwtPlotScaleItem can be used to draw an axis inside the plot canvas. It might by synchronized to one of the axis of the plot, but can also display its own ticks and labels.

It is allowed to synchronize the scale item with a disabled axis. In plots with vertical and horizontal scale items, it might be necessary to remove ticks at the intersections, by overloading updateScaleDiv().

The scale might be at a specific position (f.e 0.0) or it might be aligned to a canvas border.

Example
The following example shows how to replace the left axis, by a scale item at the x position 0.0.
QwtPlotScaleItem *scaleItem = 
    new QwtPlotScaleItem(QwtScaleDraw::RightScale, 0.0);
scaleItem->setFont(plot->axisWidget(QwtPlot::yLeft)->font());
scaleItem->attach(plot);

plot->enableAxis(QwtPlot::yLeft, false);

Constructor & Destructor Documentation

QwtPlotScaleItem::QwtPlotScaleItem ( QwtScaleDraw::Alignment  alignment = QwtScaleDraw::BottomScale,
const double  pos = 0.0 
)
explicit

Constructor for scale item at the position pos.

Parameters:
alignmentIn case of QwtScaleDraw::BottomScale/QwtScaleDraw::TopScale the scale item is corresponding to the xAxis(), otherwise it corresponds to the yAxis().
posx or y position, depending on the corresponding axis.
See also:
setPosition(), setAlignment()

Member Function Documentation

int QwtPlotScaleItem::borderDistance ( ) const
Returns:
Distance from a canvas border
See also:
setBorderDistance(), setPosition()
QFont QwtPlotScaleItem::font ( ) const
Returns:
tick label font
See also:
setFont()
bool QwtPlotScaleItem::isScaleDivFromAxis ( ) const
Returns:
True, if the synchronization of the scale division with the corresponding axis is enabled.
See also:
setScaleDiv(), setScaleDivFromAxis()
QPalette QwtPlotScaleItem::palette ( ) const
Returns:
palette
See also:
setPalette()
double QwtPlotScaleItem::position ( ) const
Returns:
Position of the scale
See also:
setPosition(), setAlignment()
int QwtPlotScaleItem::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotScale

Reimplemented from QwtPlotItem.

const QwtScaleDiv & QwtPlotScaleItem::scaleDiv ( ) const
Returns:
Scale division
const QwtScaleDraw * QwtPlotScaleItem::scaleDraw ( ) const
Returns:
Scale draw
See also:
setScaleDraw()
QwtScaleDraw * QwtPlotScaleItem::scaleDraw ( )
Returns:
Scale draw
See also:
setScaleDraw()
void QwtPlotScaleItem::setAlignment ( QwtScaleDraw::Alignment  alignment)

Change the alignment of the scale

The alignment sets the orientation of the scale and the position of the ticks:

  • QwtScaleDraw::BottomScale: horizontal, ticks below
  • QwtScaleDraw::TopScale: horizontal, ticks above
  • QwtScaleDraw::LeftScale: vertical, ticks left
  • QwtScaleDraw::RightScale: vertical, ticks right

For horizontal scales the position corresponds to QwtPlotItem::yAxis(), otherwise to QwtPlotItem::xAxis().

See also:
scaleDraw(), QwtScaleDraw::alignment(), setPosition()
void QwtPlotScaleItem::setBorderDistance ( int  distance)

Align the scale to the canvas.

If distance is >= 0 the scale will be aligned to a border of the contents rect of the canvas. If alignment() is QwtScaleDraw::LeftScale, the scale will be aligned to the right border, if it is QwtScaleDraw::TopScale it will be aligned to the bottom (and vice versa),

If distance is < 0 the scale will be at the position().

Parameters:
distanceNumber of pixels between the canvas border and the backbone of the scale.
See also:
setPosition(), borderDistance()
void QwtPlotScaleItem::setFont ( const QFont &  font)

Change the tick label font

See also:
font()
void QwtPlotScaleItem::setPalette ( const QPalette &  palette)

Set the palette

See also:
QwtAbstractScaleDraw::draw(), palette()
void QwtPlotScaleItem::setPosition ( double  pos)

Change the position of the scale

The position is interpreted as y value for horizontal axes and as x value for vertical axes.

The border distance is set to -1.

Parameters:
posNew position
See also:
position(), setAlignment()
void QwtPlotScaleItem::setScaleDiv ( const QwtScaleDiv scaleDiv)

Assign a scale division.

When assigning a scaleDiv the scale division won't be synchronized with the corresponding axis anymore.

Parameters:
scaleDivScale division
See also:
scaleDiv(), setScaleDivFromAxis(), isScaleDivFromAxis()
void QwtPlotScaleItem::setScaleDivFromAxis ( bool  on)

Enable/Disable the synchronization of the scale division with the corresponding axis.

Parameters:
ontrue/false
See also:
isScaleDivFromAxis()
void QwtPlotScaleItem::setScaleDraw ( QwtScaleDraw scaleDraw)

Set a scale draw.

Parameters:
scaleDrawobject responsible for drawing scales.

The main use case for replacing the default QwtScaleDraw is to overload QwtAbstractScaleDraw::label, to replace or swallow tick labels.

See also:
scaleDraw()
void QwtPlotScaleItem::updateScaleDiv ( const QwtScaleDiv xScaleDiv,
const QwtScaleDiv yScaleDiv 
)
virtual

Update the item to changes of the axes scale division.

In case of isScaleDivFromAxis(), the scale draw is synchronized to the correspond axis.

Parameters:
xScaleDivScale division of the x-axis
yScaleDivScale division of the y-axis
See also:
QwtPlot::updateAxes()

Reimplemented from QwtPlotItem.

qwt5-5.2.3/doc/html/class_qwt_thermo__inherit__graph.map0000644000175000017500000000027512052741160022750 0ustar gudjongudjon qwt5-5.2.3/doc/html/dir_2ff4213617fffae17c49a9829be91ab6.html0000644000175000017500000000563212052741165021701 0ustar gudjongudjon Qwt User's Guide: /tmp/qwt-5.2.3-tmp/textengines/ Directory Reference
Qwt User's Guide  5.2.3
textengines Directory Reference
Directory dependency graph for /tmp/qwt-5.2.3-tmp/textengines/:
/tmp/qwt-5.2.3-tmp/textengines/

Directories

directory  mathml
qwt5-5.2.3/doc/html/qwt__plot__curve_8h_source.html0000644000175000017500000011413412052741135021714 0ustar gudjongudjon Qwt User's Guide: qwt_plot_curve.h Source File
Qwt User's Guide  5.2.3
qwt_plot_curve.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_CURVE_H
11 #define QWT_PLOT_CURVE_H
12 
13 #include <qpen.h>
14 #include <qstring.h>
15 #include "qwt_global.h"
16 #include "qwt_plot_item.h"
17 #include "qwt_text.h"
18 #include "qwt_polygon.h"
19 #include "qwt_data.h"
20 
21 class QPainter;
22 class QwtScaleMap;
23 class QwtSymbol;
24 class QwtCurveFitter;
25 
54 class QWT_EXPORT QwtPlotCurve: public QwtPlotItem
55 {
56 public:
73  enum CurveType
74  {
75  Yfx,
76  Xfy
77  };
78 
107  {
108  NoCurve,
109 
110  Lines,
111  Sticks,
112  Steps,
113  Dots,
114 
115  UserCurve = 100
116  };
117 
135  {
136  Inverted = 1,
137  Fitted = 2
138  };
139 
159  {
160  PaintFiltered = 1,
161  ClipPolygons = 2
162  };
163 
164  explicit QwtPlotCurve();
165  explicit QwtPlotCurve(const QwtText &title);
166  explicit QwtPlotCurve(const QString &title);
167 
168  virtual ~QwtPlotCurve();
169 
170  virtual int rtti() const;
171 
172  void setCurveType(CurveType);
173  CurveType curveType() const;
174 
175  void setPaintAttribute(PaintAttribute, bool on = true);
176  bool testPaintAttribute(PaintAttribute) const;
177 
178  void setRawData(const double *x, const double *y, int size);
179  void setData(const double *xData, const double *yData, int size);
180  void setData(const QwtArray<double> &xData, const QwtArray<double> &yData);
181 #if QT_VERSION < 0x040000
182  void setData(const QwtArray<QwtDoublePoint> &data);
183 #else
184  void setData(const QPolygonF &data);
185 #endif
186  void setData(const QwtData &data);
187 
188  int closestPoint(const QPoint &pos, double *dist = NULL) const;
189 
190  QwtData &data();
191  const QwtData &data() const;
192 
193  int dataSize() const;
194  double x(int i) const;
195  double y(int i) const;
196 
197  virtual QwtDoubleRect boundingRect() const;
198 
199  double minXValue() const;
200  double maxXValue() const;
201  double minYValue() const;
202  double maxYValue() const;
203 
204  void setCurveAttribute(CurveAttribute, bool on = true);
205  bool testCurveAttribute(CurveAttribute) const;
206 
207  void setPen(const QPen &);
208  const QPen &pen() const;
209 
210  void setBrush(const QBrush &);
211  const QBrush &brush() const;
212 
213  void setBaseline(double ref);
214  double baseline() const;
215 
216  void setStyle(CurveStyle style);
217  CurveStyle style() const;
218 
219  void setSymbol(const QwtSymbol &s);
220  const QwtSymbol& symbol() const;
221 
222  void setCurveFitter(QwtCurveFitter *);
223  QwtCurveFitter *curveFitter() const;
224 
225  virtual void draw(QPainter *p,
226  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
227  const QRect &) const;
228 
229  virtual void draw(QPainter *p,
230  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
231  int from, int to) const;
232 
233  void draw(int from, int to) const;
234 
235  virtual void updateLegend(QwtLegend *) const;
236 
237 protected:
238 
239  void init();
240 
241  virtual void drawCurve(QPainter *p, int style,
242  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
243  int from, int to) const;
244 
245  virtual void drawSymbols(QPainter *p, const QwtSymbol &,
246  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
247  int from, int to) const;
248 
249  void drawLines(QPainter *p,
250  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
251  int from, int to) const;
252  void drawSticks(QPainter *p,
253  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
254  int from, int to) const;
255  void drawDots(QPainter *p,
256  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
257  int from, int to) const;
258  void drawSteps(QPainter *p,
259  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
260  int from, int to) const;
261 
262  void fillCurve(QPainter *,
263  const QwtScaleMap &, const QwtScaleMap &,
264  QwtPolygon &) const;
265  void closePolyline(const QwtScaleMap &, const QwtScaleMap &,
266  QwtPolygon &) const;
267 
268 private:
269  QwtData *d_xy;
270 
271  class PrivateData;
272  PrivateData *d_data;
273 };
274 
277 {
278  return *d_xy;
279 }
280 
282 inline const QwtData &QwtPlotCurve::data() const
283 {
284  return *d_xy;
285 }
286 
291 inline double QwtPlotCurve::x(int i) const
292 {
293  return d_xy->x(i);
294 }
295 
300 inline double QwtPlotCurve::y(int i) const
301 {
302  return d_xy->y(i);
303 }
304 
306 inline double QwtPlotCurve::minXValue() const
307 {
308  return boundingRect().left();
309 }
310 
312 inline double QwtPlotCurve::maxXValue() const
313 {
314  return boundingRect().right();
315 }
316 
318 inline double QwtPlotCurve::minYValue() const
319 {
320  return boundingRect().top();
321 }
322 
324 inline double QwtPlotCurve::maxYValue() const
325 {
326  return boundingRect().bottom();
327 }
328 
329 #endif
qwt5-5.2.3/doc/html/inherit_graph_13.md50000644000175000017500000000004012052741151017215 0ustar gudjongudjon9a87c71eea7110cf1354d5afbe1c14a2qwt5-5.2.3/doc/html/curves.png0000644000175000017500000005006312052741136015512 0ustar gudjongudjon‰PNG  IHDRޱC^@ IDATxśíÝ\TUţ?đs`e@B“:D"*h¨ŕ/âÓšD¤k}% I3MÍ”C” pÁÔ¶R`]Ͳ‘Ú/%µL!µä‡")Šü™óýăÚm~83ĚÜ{ćÎűůč±;wÎś{{ćÜ_xĹĘ×/ZB!ą\^^^Îw-ÖΆď ĐŃ|—\.—Ëĺě ů~9ß52˝ĘĘĘ—^z)666&&&..®˘˘‚rđŕÁîS†……Bô)388XgJ…BˇçgŐjő¶mŰ!S¦L‰ýÝoĽAQ(Ě4d*ŮG™ááá=ţµűüęS+Fß-@ ëń}ŤFóÎ;ďĚź??&&&::ş´´TĎÖ°,ĚĆň§wöË™˙x©Źđř®˙î®LÉů_v@C{%+ź#„QĄR™™™)•JBŐŐŐ …˘   ///44cĚNĆD‰ö;˝éqĘôôt}*Cůî»ď&Nś‹ĹyyyÚĺ0…Bęĺĺĺő…}Ô–Ňăü=_Ú?Bt¦Áďßżż±±q÷îÝăÚÚÚeË–ýç?˙é»4‹Ćn&ě6Ňý`kŹfů~ąö $Oî9Ž™µÍŇW5•JuôčŃÇ{ĚĹĹĹËË«°°066¶¶¶öĉ{÷îÍĘĘR«ŐQQQ………!BHmmí¦M›:::!‰‰‰>>> iiilĘôPaaaEEEĚ‹I“&•——Oť:5>>ľ{i§NťZ˛d‰vQ BČěŮł‹ŠŠ.\X[[zóćÍ“'Oćć沷±±Ů°aX,vuuíęęę1%»ĎďĺË—333µçô©§ž ¨¨¨ËĺMMMuuuAAA jµzÆ 555­­­ÉÉÉ"‘H©TŠD"„Đşu뼽˝Ů:+ ¶M!~řaNNĆcěééůé§ź2ďGDDŚ;ÖßßҤIÚE?~üđáĂ„YłfŮÚÚ˛Żăââ̶"ô Ű_f^t?6Ł“ŃüäÂŞŁY'—QOëŮÝ÷ç”÷8˝eÉČČČÉÉÉÍÍ•H$“'OŽŤŤÍËË›;wî´iÓ˛łł›››KKK‚‚ ŔLźššš(“ÉŞ««•Je~~ľNʏ{ďRűť–––E‹ą»»‡‡‡ÇÇÇë”¶sçNŤF#‹B]]]±±±L qqqÓ§Og^3ŐűŕćÎť›źźŻýq„ĐęŐ«ĘËË—.]ÚcŻąűüzyy555iĎiGGÇŞU«śťťCBB8ŕěěžĐÖÖĺďď_ZZşyófڱBˇđó󫨨HKKŰąs'ú}ź¤Ý&ă[·n <¸ű~âÎť;Ë–-1bDll¬vQWŻ^Ý·oź““Ó®]»ţýﳯű˝´ÍĄĽĽ\ľ_®ýű˛×)ßjĺwk¸g˝ŃlDΖĎ)·čtöôôLOO×h4W®\)..^łf ÓAFÍś9óČ‘#%%%111ěô—.]JNNf^3ÝŐî‰ţÜkfßA9::Ęd2„ťť]÷Ňľ˙ţű€€fJ±XśźźĎŰăx‚ÎÇoŢĽ€1öóósppč±n=ÎŻÎśJ$„ĐСC]]]ŮÚÚŰŰűűűcŚ'LpăĆ µZíďďŹňőőmhhĐžYm„A555±é<{öěť;wş»»;991­ŃĐĐŕçç‡17n\CCCRRRJJJggç¬Ył´_ßkaňÍYíß—}+źS.—Ë™é{ëhî¬ń0 s°Â¸„eŇŮäUâFddäĺË—1Ć2™,22ŇÖÖ–ýShhčÇ|őęU___öM™L“——÷Ę+Ż 6¬Ç$B˝ôš„ö Ni§Nť b&c?Č`ßŃ~SçăÆ űá‡!ĺĺĺ­­­=Ö­Çůí>§Úu`ż±˝˝˝¬¬ŚrîÜ9©TęććĆüł˛˛’Ipť:łEEFFnßľ]ŁŃBNś8áää$•Jµ[ĂÍÍ­ĽĽśRQQáęęzúô錌Ś-[¶Ľ÷Ţ{ÚŻď˝89Çl5̆cPĽ–——ßť^Źľ6`XWŻŮ$ż­Řt¶¸îłR©Ü´i“JĄ˛µµ‹ĹIII!‘HÔŘŘČÄGhh¨ŤÍ{ëÄÄÄőë×ççç‹D˘””BH÷±ćÎÎÎ 0˙|ć™g"""Vfi'¦vioľůć‡~ČôOűaŞ'‰-Z”••ĹV¦µµuÆ ¶¶¶ "„8p ¸¸8;;›ýęîó‹1öđđĐ™Ók+‘HvěŘqűöm•JĄT*ŐjuJJ îL»ˇ^Ćšź{îąśśśgź}V"‘D˘´´4ťň×®]«]Ô±cÇ˘ŁŁĹbńĽyó:::Ř×ýXÎfa’ß‹–ţ»“KŘz.91ů:Á(ŚŤfţüůŮŮŮÝÇI-Ó! =tčPßő·ô9ĺ…i·Hg}XË€†9Ö‹ÜĐFY°`A`` ĺ¦ĆřŁŹ>Šč»ţSî™|Ű̆cVÖŇk6G4ëśu/€ľ3:Ě×Ă…ľsß„ÜkţăLó¬pp›YÓúÎ}r438Ř9ĂJ„6~ 3šµoq÷ lłaú˰’!ál´6śŢ3šŮˇ†?Ć8řRXÉ€ Ŕ(0 „ÍčĎ7'â ¤3†‚­¦GÂŚć»—-Áˇ9 ÄK—Ňą;F3ż?Ç`%–‹Çm6ŚfŢÁJ,ËÝcć|1ÆŁMhŃĚűę€%˘dĂtf *š)Y˝¬aŔB°§™˘äž)Ĺ Řv‚ŠfŞŔčW^^ÎśřĎĺi¦÷ŰR4ÓÓefÁ@PŇ‘ç…@˘™Â\fXV:[ó–`4µ§™ZÖ†cB¸•>µąĚ°ÄۇĂC‘őme÷|8¬e1â®îÍ—ztęmK€ÜéQŹÍĄÓËŁżĹhŢvî6)•Ď©ŕ¦V–Í4Ż[Úhî8ß ”dÔă[t\Żó¦uşű<énÍĄÓ,”?ĄŚÚRÍőÔkČ%ů÷‰ ěţ[v4[ ÓŮ ěĐžŚ¶áŚ-¦óJş–˛Ůź#”ÔÖa–9w§·˘ zĹé-bô\{ŘÝ %AĂ[Lźygšžu•ŞĘčžnMyyůÝßLć_í-ő J•AŘÎüŮ×~d˝Ń¬đzZŚŮŤ±÷çq°Ä QłľÝzFDąEöš-tőB¬a¦j:@ď›IŤ=®ĹŚS›˘^łÜ ńÝwÖţŮÄÍÚnšhćň‡­EŻ^ü&š ›Nű: Ý31ǡ˘†űu`f@ Ó¤óď—ţqń!˘P¤źGaÜŢĐĄű3Ĺő|ř–v.CX:f@#ťgŠ÷­Çg'`Ń šĹ’ďţ÷űj§6„2f@/&‹ĺr9“ŃÇŔz@4 A ¬ śˇhÇô€‚hę@4u`¬ůrů8ćEyůy~k°rÍwÉĺăÁĚkŚ ¤3€G0 B¨˛˛ňĄ—^ŠŤŤŤ‰‰‰‹‹«¨¨ „=S¸q%ę3Ź÷ü–>ćc,‹óňňúh ¦äîs'0đű’Íw•—źÇ°Żů­ ÷T*ŐŃŁG{ě1//ŻÂÂÂŘŘŘÚÚÚ'NěÝ»7++K­VGEE1!H©­­Ý´iSGG!$11ŃÇÇ'!!!--ŤŤ?¶@WWW//Ż‚‚‚… ÖÖÖÖŐŐ˝řâ‹EEE?˙üłR©Ôh4...iiiL5>řŕ3gÎx{{ţůç„Yłf-\¸P' »—|ůňĺĚĚLíJ>őÔSrąĽ©©©®®.(((!!A­V'''×ÔÔ´¶¶&''‹D"ĄR)‰BëÖ­óööFżnBB‚vČöÚěĚj˙3,,¬¨¨č‰'žđ÷÷ż~ýzWW—R©üć›o>ĚĚŃŁŹ>ŞÝtŁGŹ6ßbĄČ1DóĘËĎŹ“ËĎ[ĺY´999ąąą‰dňäɱ±±yyysçÎť6mZvvvsssiiiPPĐ€éSSSe2YuuµR©ĚĎĎ×2Śqo2s¦„µk׎3&%%ĺ믿FíÝ»÷ôéÓ™™™aaaűöísrrÚµkW÷4ě^˛——WSS“v%;::V­ZĺěěrŕŔggçđđđ„„„¶¶¶¨¨(˙ŇŇŇÍ›7cŚ …źź_EEEZZÚÎť;Ńď «ÓůĹwuuĹĆĆ2˙tuuew'Ú˝fvú¶¶¶ččhć‹RSSŻ^˝ĘÎQ÷¦3ŮR¤t´ŤŃ BČÓÓ3==]ŁŃ\ąrĄ¸¸xÍš5ě(ÁĚ™3Ź9RRRĂNéŇĄäädć5ÓÔÉPOOĎ´´4BH÷uuucĆŚÁŻ_żžňć›o^şt©¦¦FĄR%%%Ą¤¤tvvΚ5KĎ’u*)‘H\]]BC‡uqqAŮŮŮ!„ěííÇŹŹ?~üŤ7ÔjµźźĆxܸq Lů=ŽxBÄbqŹ1ŞÓkfŘŰŰűűűcŚ'LĐĐĐ =G:M×÷rˇ•˙ľä !yůňeڱL&‹ŚŚ´µµe˙úńÇ_˝zŐ××—}S&“ĹÄÄäĺĺ˝ňĘ+Æ ëže‘‘‘UUU666žžž:2\]]/]şDÉČČřâ‹/7lŘ0kÖ¬wß}÷ôéÓ[¶lyď˝÷ô,ą{%™Łs!Ś1[H{{űąsç!eeeR©ÔÍÍ­ĽĽśRQQÁD9ę}¬ýą_Ś´F9Řż˛´··—••BÎť;çââ˘=G:M×÷rˇSyůy‚0ä˛YAŻ „R©Ü´i“JĄ˛µµ‹ĹIII!‘HÔŘŘ(•J1ơˇˇ66ěČׯ_źźź/‰RRR!:cÍ}Č”đć›oÚÚÚ:tĹŠĚăââćĎźďĺĺ-‹çÍ›÷É'źgeeő]2[I6X{gH$;vě¸}ű¶JĄR*•jµ:%%… w¦ÔűXsWW×Â… ŮwRRR`í­×üţűď_»v­łłóÍ7ßüňË/Ů9š6mšvÓőŮŃ:ÚFŔ+Vľ¶xŃÂ{Oh k¶†ŤfţüůŮŮŮľçćřöĐĐĐÇ÷1 Ó]e*9dČÎęÖG}fĎžÝ㩇‚aÄQ«=cĐ0spůO¨çxB,XČK.B>ú裾ĎĆ3•¤!—Q/Ł4@_0Ć{öěáńŰçĚ™ŁĎ”Ń î˛ň-ÁP‚i.:ź»ŕÍ!Ř ÍôgÜ^˘ôehν‡hP‡ÎAp.-A4„hݨe\s fxšt‚sNžwz׹|óźYkE-#šKđŹ+Ý1{qć?k¦š0şNp X!ă~-×ý‡^3§ ë€Eăě––&č5 Ł€YÁh>0HŁ™ł¶°  Ť¬ü¸0oăärý'Ě8€ŃÇ j.ÄÉ1:ă~Ů:#4„‚™Î:űÔ6—Ń=áŕ#ô1Ťţ)cčĽXy›Śtn)Ć}„ÜĚHŁ~؀ə ×ĚA"Ă}Čĺă"H›‰Ĺł XŐô{2C #ŃŕdsCŃĽÜ-&šA(\Ő¨Em˘Ńt2¨Ĺ¨]î fhDypPH`-ĆĎÉsrů8ŚEźÇ%h. ŁOÍâˇ×,°ť›ąAs™›†ć-˝ţ\˘|ąĂ€4n™”…Śh1š˘JŃtR‹ńÍĐ04Vź^3DŚA ą°6pżf D3ŕś€žŕ0 ŕś€ţ × ÔhęŔ€ŕś€ţ šw ‘Đ hu š€:Í@f D3¸ćśˇ®9½f D3P4€ Ŕ5‡@ šŐäňq$7 g!‘@4zÁ1=`µ`¬¨Ń Ô @/8¦¬D3 $2°N0 Ôhę@4u š€:Í"—ďç» <«¬¬|饗bcccbbâââ***!ě>eXX!Dź2u¦T(z~¶7„«ŞçgĂÂÂúž¦·ą#„ďŮł‡ýkxxx?ç€îŕ Ť»P./źĂľŕ»FüP*•™™™R©!T]]­P( ňňňBCC1ĆědLiżÓ›§LOOďg=1ĆLU=<<BUUU …˘°°PĎĎ2ë­ţ}ĚĆxŕŔűöí›2eĘČ‘#µ Ŕ„ šBH.ßĎf1óÂjZĄR=zô±Çsqqńňň*,,ŚŤŤ­­­=qâÄŢ˝{ł˛˛ÔjuTT‚„ÚÚÚM›6uttB}||ŇŇŇŘ´ę1ĂÂÂŠŠŠ“&M*//ź:uj||ĽNi%%%‡&„Ěš5káÂ…:ű¶Ş®®®^^^—/_ÎĚĚÔ®äSO=PQQ!—Ë›ššęęę‚‚‚ÔjurrrMMMkkkrr˛H$R*•"‘!´nÝ:oooô{@'$$hďH!b±8)))11q÷îÝb±yóâĹ‹:%ô=kŁGŹ6ű˛4'ťß—V¸ĄDóźr™eµť‘‘‘“““››+‘H&Ož›——7wîÜiÓ¦egg777—–– 0€™>55511Q&“UWW+•Ęüü|ťq÷¨ö;---‹-rwwŹŹŹ×)­®®nßľ}NNN»víŇé™bŚ»WŐËË«©©I»’«V­rvv 9pŕ€łłsxxxBBB[[[TT”żżiiéćÍ›1Ć …ÂĎĎŻ˘˘"--mçÎťl uf‡y300pňäÉ999+W®dŰA§„ľg-??ßÄKŽCÝ7™ŢF­jŰ1-«Žć{&Ż´§§gzzşFŁąrĺJqqńš5kŘQ‚™3g9r¤¤¤$&&†ťţŇĄKÉÉÉĚk¦KŘ=CŃź{Íě;!GGG™L†˛łłë^ZRRRJJJggç¬Yłş—ěéé™––FŃ®ŞN%%‰««+BhčС...ěŮŰŰŹ?!4~üř7n¨Őj???Śń¸qăň{ń`‡•—/_ĚüłˇˇA§GGÇ#Fô6kú/ÚôŃ•éqb}&ÝYďa@f Óg]a&“Ë÷[ĂAÂČČČË—/cŚe2Ydd¤­­-ű§ĐĐĐŹ?ţřęŐ«ľľľě›2™,&&&//ď•W^6lXoYÖcŻ™AaóN§´Ó§Ogddlٲĺ˝÷Ţë^rdddUU•ŤŤŤ§§'[Őî•dËgľŽył˝˝ýÜąs„˛˛2©TęććV^^N©¨¨`˘ő>ÖĚĽ°łłŰ¸qcrrrgg'B¨{ ě ö8kú, őË}`¶ö?kŘ‚LĹ{ÍĆő‚­¤­T*7mÚ¤R©lmm™AU„H$jll”JĄăĐĐP›?ö艉‰ëׯĎĎωD)))„îcÍťťť ,`ţůĚ3ĎDDD ­î§vę”VTT-‹çÍ›÷É'źgee±ťî«ĘVR§“®ýŤ!‰D˛cÇŽŰ·o«T*ĄR©V«SRRpgĘA˝Ź5łeúřřĚ™3‡ýX»vmo%ô8kF/ šËÝ1é,ŕÍÇ„đŠ•Ż-^´ďjpÇ$k†ŕşGŤfţüůŮŮŮćţśŤFzřđá>¦a:ČL%‡ ÂYݬ #ŇYVÔk6ažZIZ!dÁ‚Ľä2!䣏>ŠčăŚ7„Ćřůçź „\6-Ó†)ôťőa-˝fó­ °’a3Ç[Í=YĹa@ł®pp™¶ŘjîIŕŃĚśVaîý3¬g@ OĂ#!Głţ§Çt@ź†_‚ŤfŽł`%BÂŮćNo„ÍĽd€• tkh Ěhć ¬dŔŇA·†Śf~ĎË• X.·Řpt-šá|IŚĂű¶é¬MPŃĚűşĹ€5 XŘvh#¨h¦¬aŔ‚P’Ë@›p˘™¶Ő ŇXŘpč$h¦mőbŔJ(µ„Ít®^ Xɵ`ᙢ`(šs™aĺélńŃ k YÉC¶L…i.Kl1ú·†m;&gŮ·Ň·¬5ŚćŞj?€Ýh®0ď´¨v|Đßh”ŻŠ:čßv´ő±#1t,řVú´ŔtV¸Źgµ@F÷¨ď§ŰPÓt®„÷DUµMż}°ě^łeˇp˙ßw},´WhV÷\‚ÚĄ­Ýh[ýôGɶĂĺ3ç,5šiXNÍ •¬Ç¸±Âö7t­v3!ŢÓ™ăo·Č ‹ÎeŢ+oŞ=żU=µ™nÁńŐnĽŻx&Á×\p˙˝–ÍXĂx\˝©CA‹C&źMŽŰMH‹‰ű¦C|ěJ-u@â±§ `ăäýg¦ą™iIqąlYIÓ™¦×ĚŮ l%ăfv8Xʶ\XĚ—ążB¨‹™yÖxŻ3Ů€†ąç„÷–2łÎ—Ť&Ľ@‡Cx E‡™f†v3Ů€†öŐ &•3y™ô`Ű Ť*\nśfú…NCľ›ÉÇÓčŮpĚrÎ0‚M0Y €Ół,ôa“gči43žˇŃźŚ°ŞPÖfôŚSrÚ,U+·x_ńLRK_ Fč˙,ÓÖhf?yÎĐUŤ÷m­%´µm«¸ţ詹ˇ5Ńąt’ąŕыʶ-ÁŃyÍúĚ<ť Ä‹n1z2N´ŐąÇ…ŰŰݨŞ9Źú^–Őzś^rŇ[”P1ĽëqUŁdě˘o´%]ߨ­-t‡ ĹÍ˝‡8ŔĂŐ€ÚA ˇ|O–Ű\ÔćťK©'°*<\ h‰)Ă#Ëm.‹¸PţëÄŰ…Ú°=ÄB›Ë"Ň Yü¨ĺĘ)~†ě6µ š•‚\4hfGaÇrP˘pŞt†\ôhˇ$ť!—E€hܡ$ť D3ŕżé ]f`) š×řJgČe`A š¸OgČe`Y š?tć& !—ĹhĽ)/źĂA÷rX"fŔ3ł¦3ä2°PÍ€pR: šĚ‘ÎĐe– ˘ĐÂ´é ą ,D3 IŇ™9ńrX4ŢnĄ@ŹŘt6ú‘ŇĘ@ šuŘgnÝ3d-â ¶˘PŞŹ‡WA"ÁhôŇNg˛V˘P͸ˇg,D3 „2°BpňP˘¨Ń Ôhę@4u šď"„|˙}ă×__#„đ]€µhFˇŽuFFYBÂé·ß.‹Ź?őý÷Ť|×H/•••/˝ôRlllLLL\\\EE!äŕÁ:{BHXHĎŽĽ IDATX>B‚uŢQ(横ţź ëcŮ÷ÜďŮł‡ť2<<\˙ďí!$77wüřńżţúkÓ0‹ŁÇ6Ô®ąBˇ0şO`™ô€óšŃO?5+§†~đÁL''»˘˘Úuëľ÷÷7zÔ('Ś1ßě•R©ĚĚĚôđđ@UUU)Š‚‚‚ĽĽ<ť¨bfrĎyé>%Ć8==˝źő$„0U•JĄˇęęj¦Şú´-X}LŮÇÜB¸oßľ)S¦x{{ëßúÔŠRTT~čСůóç÷X&Ć8///44´Ç6Ô®ŹŃŤĚýŹőÔSrąĽ©©©®®.(((!!A­Voذˇ¦¦¦µµ599Y$)•J‘H„Z·nť··7[g…B‘––¦˝_‹ĹIII‰‰‰»wď‹ĹĚű.\Đ)!,,¬ŹYóńńŃI^ŚqeeĄ««ë‚ 6lŘŤ~ďk—Ă,Žúúú_|±¨¨¨°°đłĎ>ëččđööްa[B(,,¬ű»víb›ôŃGŐ®’ŤŤÍ† Äb±««kWW—©Ö¨{"„|÷ÝŻŻ˝ömhč3gn\»Ö^_ßÖŇŇĺîn?jÔ}÷ß?`đ`;ww‰T*ńđ `ËYÝĆJŁ™ŇŘř[RŇ÷ŽŽ˘÷ßdřpííŮÎÎöąçF>ő”çűď˙ýĹüů#Ł˘Ľ\\ŇÖÎČČČÉÉÉÍÍ•H$“'OŽŤŤÍËË›;wî´iÓ˛łł›››KKK‚‚ ŔLźššš(“ÉŞ««•Je^^žNg­Ç^3ú=˛[ZZ-ZäîîŻSZ]]Ýľ}űśśśvíÚĄÓ3%„tŻŞ——WSS“v%;::V­ZĺěěrŕŔggçđđđ„„„¶¶¶¨¨(˙ŇŇŇÍ›7cŚ …źź_EEEZZÚÎť;Q/}O¦Ú“'OÎÉÉYąr%Ű:%ô=kůůů:-OůôÓOĂĂĂ˝˝˝ŰŰŰ«ŞŞĽĽĽ0ĆÚĺĽţúëůůůsćĚa~+ „ćÎť;a„ĘĘĘíŰ·łíŁÝíŐž!ôď˙›mRť*!„VŻ^P^^ľtéRc× Ă°ąĽ}űԇʾßѡ®«k«Żo»v­­ľľíĚ™;×®]©Żo»v­ÝŃQ,•JÜÝíĄRID„lěŘÁÜTU¬1š !źţË[o•ľüňب¨lmqŹ™+‘^|qôÜą^ůů—˘˘>ź?äsĎŤtvŔ}…{ăéé™––FąrĺJqqńš5kŘňĚ™3Ź9RRRĂNéŇĄäädćuGGGŹ#¨[Ż™}ÇŃŃqÄ!;;»îĄ%%%Ą¤¤tvvΚ5«{ÓÓÓ3==]ŁŃhWU§’‰ÄĹĹ!4tčPWWWö‹ěííýýý1Ć&L¸qă†Z­ö÷÷Gůúú644°_Ń˝}Ř7—/_ÍŁ744č”ŕčč(“Éz›µî{µZýŮgź]¸páż˙ýoWWWQQѲeËtĘé>Ô T*Ĺbń´iÓěííŮżj—¬=BH»IuŞtóćÍ€€Ś±źźźC÷y796—ßygƸqJŘl˝Ľyyőđ㲱±ťÉčęę;k֜ܺuę¨Q÷qP[°şhnmíÚĽůÜwßýşmŰT˙!}OŚ1vv°j•|ţü‘ďĽSţŮ‚ŁćĎ÷¶··ĄˇąeË–|ĐÓÓ322ňóĎ?g˙ŞP(T*•ŻŻ/ű¦L&‹‰‰ 9sćĚľ}űşŹşöÝkĆřOű0ťŇNź>ť‘‘ˇR©ž~úéť,{úé§·lŮâĺĺ%“ÉŘŞvŻdŹ}Éööö˛˛2??ż˛˛2©TÚŐŐUVV&—Ë™!vú>ö4 ظqăš5k:;;Bnnn:%`ڵżQgÖş·RIIÉřńă333B555K–,Yşt)Ó>=f.ăŰożýôÓOoŢĽŮŢŢŢăśjO€ŇnRť*ŮŰŰ˙đĂ=ôĐůóç[[[‘™±ąĽeËť\‹˝‹‹˝ż?"„xx8,[vâ_˙ qw—ŻŞ‚a]Ń|îÜ͵kOOš4´°đ/bý?čęjź”ôPL̨ěěĘđđĂ/ľ8ć™g°łăyM©TnÚ´IĄRŮÚÚ2Ş!‘HÔŘŘ(•J1ơˇˇÚ‘¸~ýúüü|‘H”’’‚R(:cÍťťťlGű™gž‰@˝$¦NiEEEŃŃŃb±xŢĽy(..ÎÎÎf¦ÄwŻ*ĆŘĂĂ©¤ŤŤŤNůÚŐ–H$;vě¸}ű¶JĄR*•jµ:%%ĹÖÖ!ÄĚ2ę}¬ýžÚŁGŹž3g3ú±víÚŢJčqÖ>ůä“ââ⬬,¶ŔO?ý444”)ŮÓÓÓÉÉ©´´t„ ÝŰŠYĚ;O>ůäsĎ=7věX™LöĘ+Żüýď×ů^í –/_>~üx¶I§M›¦]ĄÖÖÖ 6ŘÚÚ:88 dŢc!ÚąoeeÓß˙^QUugéұłgË0îëü^0çĚź??;;{Č{ü20Ó·‡††:t¨ď–Ńh4L%L[jÓh4ˇˇˇ‡ć»"<0I.k—¶mŰůS§®çć>loo]ýBC ˙ĽfBČŐ«­±±_ýňK[AÁ_ú™Ëˇ±cggOKI™XXX5gÎç?ţx‹¶«T0Ć , ä>—™o˙裏tĆ4ş#„0•¤<— !Ěěж”9 }ÜŻ˙ąŚÂŻX1N&sĚČ(S«­®= "đ^3!ä“OjŢ~»lýú€żüĹĂä=ÜC‡®8PłnÝCšóC±ąś›ű°ŹŹ)ŹÝuvŞ_~ůř¤IC—, [Mo„Ükľu«cőę“{öü”—ňčŁĂllz>Ł?žxbÄôén+W–üö›Ú {U@¨´Ç1L›Ë!;;Ű­[§;Vź›{¶šŢ6šĎž˝1wî‘QŁśöî}ÄŰŰÉ|_=jěXçmŰÎÂĂĄY›Ë[·š`|ąG‰ßygĆÇW9R[MŹl¦Lť8ń!ľ«abׯ·/ZôuZZ`D„§HdŢÝ!dĆ ÷wß­lkSM0ôŢ€bl.żűîŚńăď7ßŮŰ‹fĚp[˝úäČ‘N2™Ślč`ŻY­&ńń'˙úWŻI“†r°Ľ1Ćb±ÍŰoOÝ˝ű§/ż¬7÷×`>ÚăľľfżrĎÓsжmSßxătYYôťu-š !Ű·—ŰŰ‹/ćîĆŘŐu`f攤¤ďŞŞîpóĄ–iϓӓż˙ĄrâĘ•%µµ-ÎÚÍ„/ż¬?tčjjędNaŚýüŻZĺ·bʼn;w¸»Ý &ÁK.3yÄcĹŠqK—oję„tf 'š !uumÉÉgŇÓćáZ#Śqd¤çôéî §ŕśM`AxĚeĆÓO?đôÓ,YňMK‹ Ň™!h&„tuiVŻ>7zÂ3»čĆxÍżß~SçäTŔ,ďąĚxńĹ1ţţC^}µ¤«KŰL4cŚ˙ö·s#G:ÍźďÍďr‰lţö· ˘˘Ú/ľ¨‡5 PŽÍĺ·ßć3—™š¬];A"Ą§źóP‘`˘ůŕÁÚ'Ö®OĂ-† °uëÔŚŚs.܆5 P‹RVÖôúë§¶oź:iźąŚÂŰŘ Í›++›ţńŹJŢ·bŢ !š/_nNO?—‘äŕ ˘d‰ŽăĽ|ů¸W_-#€N„K—š_}µ$99@űľř<Âh›“3ýČ‘_öíű™ďęđĚ⣹˝]µzőÉĺË}ÇŚq¦$—O<1bölY|üIµš@:ŞBjk[^~ů›×_÷ ‘ň]ť?`Śď»Ď.'gz^ŢĹO?­ĺ»:|˛ěh&„lÜxöˇ‡îć/Şr!DYşÔwŕ@Űśřu(Bihh_Ľř›+Ć=ńÄľ«Ł cěćfź•5móćŇďľłŚgŰ›G3!äĂ«nŢü->ŢźÂěcĆÎŇŇ‹‹Ż9ň ßŐą·ăÇŻyęÔuľ«ĂK˝‡!äÇo­_fűöiC†PúÄڱťťÍÔ©nŻľZ2eŠ›‹Ë@ľkÔć·mRŇ÷˙ůOÍíŰ]iiĄĺĺMÍÍťC† ptS¸Ďă!¤ ŕň[o•"„óň.ľ÷ŢŹ/Ţľv­MŁA÷ß?ĐÖ–Ţ#„´´¨.üň…|""ŕ»:}ÁKĄ’‰‡®YsĘÓÓń(}Ş˝ŽććÎ7:ęęZkjî\şÔ|ţ|Ó™3żž<Ůhk‹ }ě–E>h€YĂÖ¬9ůÖ[“<<¨~ÎĆřSR&%&ž~çť®®ö|×čOZ[»ňň.^^˝Ú/33H,¶éčĐ””4;Vź•U!•Jţú×ýüűřÜÍčęҤ§—ÖŐµýë_!#F8"„®_o?sć×~¸qŕ@Mmmë¸qCC‡KĄ’ î§ç¸4BŇŢ®~饯##Šňâ»:÷†1öóňŢ{ÁK–|ÓŐĄ™5k8ß5B„Ó§ŹohiQµ´tµ´tµ´¨îÜédţyçN× AbGG±ŁŁhĐ ;GG‘ŁŁŘÝÝ!dÄZ`y·Ň'„‚Ö¬9éăsß’%ců®Ž^!ď˝÷cEĹ­żý-÷' ˘ßŰđ˙»˛mŰůŮłG<÷ÜČîű µšüđĂŻÇŽŐ=Z‡zňIYPËC ĄąWhnMMkÖś|đA§•+Ç9:ę>[’ŇÚŞ:{öĆŮł7Îśąqţ|“Lć,őńq Ęď^™ŇŮ©YşôřCÝżt©/ çę‰rĺJëâĹ_ÇĆúĚ›7’Çštt¨·o?˙ŮgWçĚń2d€““ÝŔ¶Lţ2A†K—.Ý~őŐoŁ˘Ľż{ Śń€¶Ź>:lŕ@۵kżëęŇřű1ëŘ=Ć83ł¬¶¶%1ń!ÎúéfÂśďôÄĂss/ž9óëôénćxÚ'‹ňů翬\ůíłĎŽ\ľ|ś“×g+™ šOžĽţóĎÍć>»…ňŢ{•ííęU«ü8ľłiIĄ’gžń:}ú×íŰĎ»¸ |đA3>·!týzűĆŤ?ěŢýÓš5ţË—Ź<Ř΄kŹĎ}ęţóRp°ű€–˝ĺë`zLK–|3z´ó¦M“L{„gäH§'ź”\ţěł«>>NC†ë¬ĘüŁâĚ™۶M•H„°ďÄ‹DřńLJ]ůúë†éÓÝD"ł¤skkצMg?ú¨f۶)!!Rłîzc‚h®«kÍĚ,;qâú°a®®f˙ŐhHQQí˙ţwő­·&K$yÂź6±ŘfÚ4W_ßÁ›7—vvj¤R‰É·ćČĎ®]—Ö®=őŔúőŢŢ÷alú5L.ňÓOÍçÎ5Ť?ÄLŰ ÷!ĺĺM‹óÚkňyó4Ç|I$˘ĐĐáíí괴ҡCzy BČÄżĐ˙őŻ‹çĎßJO4í~…_cäáÁ[K™s5ę3Ďx•”\ON>3|¸—× S­a]]šĎ?Ż{íµo‡ sXż> (ČU,6×Ů„  ×O>©ţé§ćI“\,謬ŢBĽňƧß~{ę”)nćŘź10ĆcÇ:‡„H·o?_]Ý2b„Ł 3ôŁŹŞ>ű¬N© LÍĚş;z´ó_˙ęUW×¶qăżüŇ&“9Üw_ż~;·µ© .żţú©_ýmÍ˙_mľß}ĽŔŰÚÚşLźî¶uëůÓ§ÇŚąŻźGçÚ˙ůĎ‹‰‰ßŐŐµĹÇű?óŚ—““)G0şc  ‘ćć^¨­mť2ĹŐ|ßĹŤ†lß~ľ ŕňŽÁcÇ:›űë0Ɖ#"xîÜţąyÆ3WݶŽëěŕ {f~ߣ˙ůů×®=Ť1~㍠qqŁĄR ď-e>÷ß?02ňúú¶ÄÄďlm±źßCĎi#?ްeKů¶mçx`PBÂřQÆqô ůŤů—ż ËĘ:űvg@w4BKK×ęŐ'ůĄőťwfHĄ]eʤĚC v۲Ąě«Ż]ú3j÷ĺ—őo˝uöťwfxz: x«aşŢ¸Ń±qă!!RŁŹÔB>ů¤&>ţäÜą^«WűSrLŰ\'ĎÝşŐ‘źéĂ«/!ÓłÝĐĐţŻ]:p fÎŻČHOkX·XĚ~;9ůŚHdď7r¤^űí¦¦ŽO>©ŢżżÚÝÝ><\öŘcĂů‹gî›óüóÇ^}UNĂ5µ†Ş­mY±âÄ̙Ö,+ósŰŻ®.Í»ďţřá‡U))gĚp×óS„_ý­ľľíÚµöšš–˝{ÎĘšćëK×=rÍę.żűîŹ;w‘·nu(•?tuiV®”{{›÷ĽAĚx^3sŚűťw*‹‹IJzhĆ ÷ŢRRSÓ’źńČ‘şĺË}yĶ{Mpé˙~üqőöíç ˙GÖŰUÝĚó) .;V÷ňËc'Nęë;ăÚöX«ÚÚ–^řj۶)ţţĽ=ˇŃß߸fÍ©Ť'N›ĆÝ5=b–ěośŽŽö ÁŽ>3gňŐŐµŐ×·]»ÖV_ßV_ßÎĽ¸v­ÝŃQ,•JĽ˝ťîż@x¸çČ‘&;na)¬}÷Ý33zěÓ0­×ÜÜyçNó_ssgK‹Ş©©c˙ţŞW_•?úč°čşş•‹KNjjîdgW^ĽxkĺJůôén:×#ť?ß”›{áűďMMťěëëÜĎja¸~˝}Ó¦łb±M\śĎرd.s‡šk .·µ©×­›0fŚłł3E-Ć$ËÚµ§ţţ÷ić>/ĐTjjîÄÄ|ącG0 #Ś!BČoż©·n-˙ńÇ[ľľ™đ­Żokiérw·—J%ăĆ vr˛>ÜÁŮŮÎŐŐŢĂCbŃ×’Ę—_ÖgdśűË_<´ó÷Îť®–Uss'BČÉéîť.śśě¤R‰““!6‚λwqt5 sĎż˙˝˘ŁCő@hčŚŃ©SŤąąŞŞîĽńĆ„  WśgB„Ď>ű%=˝tŢĽź~”˝˝íĺËw>ř ęÓOk'NşpˇŹźß:Ďď&„|ńEýŽ?¦¦Nöô¤ý^Ž7ov<˙ü 㹼WO§N]Ż©i>ÜÁÁA$•J†µ°;pŻ´ôĆwßýęä$vr˛srK$˘AÄL[ÜŢ‹ë µżű®q۶󶶸łSÝÚŞZ¶Ě÷‘G<s>¬i1GD32ĘNźn>ܡŞęÎ’%c~ŘÝĐżrŹ9®rđŕ•ôô@j轢ęěT/YrüŃG=ž{n$¬€*<ÜCňŐW×ěěl‚‚\éě÷ŃćäÉë]]š  W Ú‡Brs/”–Ţ|ë­Év–7!kמvr˛KHë!  G˘1Ć!!Ň©SÝ`{ĐSPëŚî–uĎ0Śq\Üh77űW_-éěTó]]ĚžŁ¶¶eŐ*9¬‡€Bül@@9ŚńÚµ$Ńúőßk4==ŹrčĐŐ‚‚Ë[·Nµ·‡#€FÍŔŚlmńć͵µ-Ű·ź§ä٦Ě9$űŰąěěéÖyŽ&°ÍŔĽěíE99ÓżúŞľ ŕ2ďéLąv­}ĺĘ’¤¤‡||îă·2ô˘ťłó€śśéyy‹Š®đÎ̽ؗ-;ľhŃčGńŕ«č˘pÁÝ]’•5móćŇłgođ’ÎĚsâăOţß˙yüż˙çÍ}0D3ŕŹĎ}oż=uŐŞo‹‹á>ť1Ć©©gÝÝí—-óĺ}\€{‚hÜ™8qčŽÁeůů9ÎÇ˝{:sć×Ő«-ďyŇŔ:A4NŤußîÝ˙WTt%5µT­ć(ťŹ«Ű±ăBvötGG*î÷Ŕ=A4®ąąŮďÚRUuçµ×ľýí7ł_Ťrńâí””¶m›ęî.ĚűĘA‚hĘÄ{xx0Őł±ą{V(›ŹÚ–H$;vě¸}ű¶JĄR*•jµ:%%ĹÖÖ!ÄÔ ő>ÖŚ~OíŃŁGĎ™3‡ýX»vmo%ôÖDô @ő'ňýűŤAł’ß\„BČüůółłł‡ 1ý áz;§ŤůŢĐĐĐC‡ő}.„FŁaŞ7xđ`8k¬¸Yí­găę.9úÂ/X° 00ĐąÜÇ9măŹ>úHgLŁÇęA.€ °ž{öě1SÉă>®^™ŁGsaŚÍW=8ŃÜ_pp`r0 ÔrŻ:§ %ähF;¤ °r0 Ôhę@4u š€:Í@ꎏ'8Í”BÍ8Í”:0 ÔhęŔ€€^Ös[GÍŕV»ž*mnÖ|[Gfđ'm ‚Ů ŚO•ú0âq-Í`nöŻÍ`FĄ šŕ”ˇ}.›¶NÍ _ŕȡA`lč ˘™ÂH4k>€€YA4ó Đ7ÓD3śŕ &dšhć¦=G€•°° čhëödX. ‹f`Ř“`ˇŕÎs@č5 (0% Í $¬D,ýQ»Ü!š¸‹ÎDŁ6;¨%ŚKá!š ť©A3Á´źŃ Ý@s`=x‹fÁěܸÍ€U“ç€:Í@f D3P˘¨ç5® ă /D3ŕ<á}Ŕ€P˘¨Ń Ôhę@4u š€:Í@f \r®R–˘\Ű , hu š€:Í@këkŃ hô€‚  D3P˘¨Ń Ôhľkż|ŹŻ€{ÍwÍ)źĂ$ň~ůţ9ĺpJ€OÍ`ŇYŔą\YYůŇK/ĹĆĆĆÄÄÄĹĹUTTB˝µ!ä믿ž7o^WW!äüůó‘‘‘­­­ÝgÖůˇüľäś×ü&—śÎJĄ233ÓĂĂ!TUUĄP( ňňňt˘cŚ"„0/ú€18pŕľ}ű¦L™2räHíŹkOł˙ţĆĆĆÝ»wcŚkkk—-[öź˙ü§ű”F#„0ł&•JBŐŐŐ̬éS>Ę}LŮ[k`ŚgĚńŐW_ĺĺĺ˝đ ÉÉÉ7n”H$=άŤŤpú@ě6"ŕ-…ÂYcú‰]ĎŘ‘ áQ©TGŹ˝~ý:BČËË«  `áÂ…µµµÇŹ_¶l!DĄREDDüöŰoĚô555‹/މ‰Y°`Á… ! …B»@BX,NJJJLLěęęb߼páÓmډ‰ąté҇~¸lŮ2Ś1ĆŘÓÓóÓO?e˘ŠÝ%0}mBHDD„Bˇx˙ý÷/^üăŹ?B:”ššŞSťůÂ3łÖŘŘČĚZaaaUU•ÎL=ţřăk×®}ę©§—.]™ššŠR«Ő6lxá…ćÎť{ţüyťĘkg·BˇĐî_cŚW­Zuřđᤤ¤Ç\.—cŚ™™µ±±Ń™YvÖtĘ˙ç?˙ůÜsĎ=űěłąąąÚŻMľôMČĐ\†Ž¶ ×|—öz&Ôľ@FFFNNNnn®D"™BH"‘<ýôÓ۶m[ż~=3/·nÝ2dÎd„vÖbccµËżzőęľ}űśśśvíÚőď˙›}Ýźmn†öšˇŁmf+âéé™––FąrĺJqqńš5k ™?Íś9óČ‘#%%%111ěô—.]JNNf^wttt˙ŐĎëňĺËŁŁŁ™644řůůaŚÇŤ×ĐĐ0hĐ ¦¦&6ťgĎž˝sçNwww¤ĐLQNNN2™ !ô裏.X°`Á‚ÍÍÍŁFŤę»&L˙4==]ŁŃhĎšÎLI$„ĐСC]]]Bvvv!{{{Śń„ nܸˇV«ýýýBľľľ ěWôؤׯ_˙ŕ,X™™ąaÄРAn޼ɤ3!äÉ'źdfÖÉÉiÄLăh—ź”””’’ŇŮŮ9kÖ,í×z/U®éüľ44ťÍ\;ဠ+YUUeccăééikkËţ)44ôăŹ?ľzőŞŻŻ/ű¦L&‹‰‰ÉËË{ĺ•W† ÖýXXvvv7nLNNîěěDąąą•——B***\]]###·oß®Ńh!'Nśprr’JĄĚ(„JĄjhhhnnĆżcľĹÁÁaÔ¨Q[·nŤ¸gM!‘‘‘—/_ĆËd2vÖşĎóHkg€joo/++#„ś;wN*•şąą1˙¬¬¬dií„´i4𤤤eË–-[¶ěçź>věS“íŰ·«ŐjBHII‰““»bč”úô錌Ś-[¶Ľ÷Ţ{ÚŻŤ[Ä0î÷%Űk6OĄzÍVD©TnÚ´IĄRŮÚÚ2cÄ!‘HÔŘŘČdehh¨v÷011qýúőůůů"‘(%%!¤P(´ÔkŹĂúřřĚ™3‡ůůżvíÚ””&“’’|đÁśśśgź}V"‘D"¦çŽš9sfLLڇ‡‡ŁŁŁÎČÓß\˝ző믿޽&(..ÎÎÎf?Ň}Ö0ĆĚL±Gátľ…!‘HvěŘqűöm•JĄT*Őjµvĺµ§W(iiil ÷îÝëččřŘcŹ!„RRR/^,—Ëź{î9ť™eż‹ůvťĆ9věXtt´X,ž7o^GGűÚ4‹śĆu´­^±ňµĹ‹ň] ‹¤˝’Yô Çt!çĎźźťťÝ}ś”6LmCCC:Ô÷9Ť†™©î#ÝP4Ś'«T0Ć , ¤?—BăŹ>ú(""˘ď´%„03ą ,ôšűËŇs@!aöš9;ŹnĚAŃĚÍP5\Ąŕ…4`¨`ˇ„ŮkF0Ô°dÂŚfjX4aFł5Ü `ÂŚf°hÍX/¸]'µ š°^‚ą˘Ux š°jpË!:A4`Őŕ4S:A4`˝¨=ÍÁ!šB°%H0ÍEíi¦0Ń ‚-Á@Đ\Ć ¸Ń{qfp—0¶Î@s™…ŕFä¬Ń{qfp…[Í ąĚŠÎApărÖ¸˝8D3@Ö-ZF4—`†§ąAů ¸AU2n/Ń 2|K°ň 1"8`xZ ÍYŁ;=ÍśL˘AІ§-ť9kt÷˘™SBJ4CÁđ´ĄărĄżŃ,n g“h4Ń|`ţF3gOáëńµ%F˘AĐŠÚăZ€N&Đŕ (qnŤ= fe‚hć¦(ŚqnM0{2¬– Ćšąůa+ŚqÎcO€Ő2ÁXsŹŻM F6 {2+$¤C2Ŕ2Nž‘MŔžĚ ‚I4Č2ĺËÝ2˘ödˇ3ŃŚ kČ2´Ĺč\î,fhL4ă‚Ăš˛Śh1 —;‹‡h¦üwm ą8@g˘0e\‹ŃŮVÁë‡Ţ¦I µŘ ‚F‹Çŕ]Ź» ›jg—ěoĎáő©[ śő š­onë €Ô¬¨vqő„?\Đç”  6»řüŇTe ĂÉéźeç ŔĹlQ ˇcť”€Ş¬ü3*d€ĹWTMĎ\r˙˙h6™ř1±F ‹°fžIEND®B`‚qwt5-5.2.3/doc/html/open.png0000644000175000017500000000017312052741134015137 0ustar gudjongudjon‰PNG  IHDR ŕ‘BIDATxíÝÁ €0 Đ׬ՙ\Ŕş€39—b!©9{|đI>$#Ŕß´ý8/¨ÄŘz/Ď>2Ŕ[ÎgiU,/¬~ĽĎ\ Ä9ٸIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker_polygon_machine.html0000644000175000017500000002017612052741164023156 0ustar gudjongudjon Qwt User's Guide: QwtPickerPolygonMachine Class Reference
QwtPickerPolygonMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerPolygonMachine:

List of all members.

Public Member Functions

virtual CommandList transition (const QwtEventPattern &, const QEvent *)
- Public Member Functions inherited from QwtPickerMachine
virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const

Additional Inherited Members

- Public Types inherited from QwtPickerMachine
enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList
- Protected Member Functions inherited from QwtPickerMachine
 QwtPickerMachine ()

Detailed Description

A state machine for polygon selections.

Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection and selects the first point, or appends a point. Pressing QwtEventPattern::MouseSelect2 or QwtEventPattern::KeySelect2 appends the last point and terminates the selection.

See also:
QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
qwt5-5.2.3/doc/html/inherit_graph_20.png0000644000175000017500000000363712052741162017333 0ustar gudjongudjon‰PNG  IHDRű% $®bKGD˙˙˙ ˝§“TIDATxśíÜ[Liŕo8´ÍJKł-P Xl0"®Ä5HŔ µ16.q«U. őBYDSˇ(D\.vcT]…¸@“Ť† ¤tăĆpŁH!ůc]LM˙ڇjÄZ¡…r(2mçż˙: ĄÔşĄĹůžpŃyůćë;óľťv†ˇ†a‚H#"Ô @ĐŠ‚‘ ěx\`ÇCäE\šš:věŐj U6!Çb± ťNu"\ĽxńŢ˝{ˇÎb …ŐŐŐÄBĽVÓŃŃQXXxčСO,\tvv*•ĘLJ:‘ÉÉÉIII u"«ŇĐĐĐÇ\ŤŚZ<®ŁŁcĄR ;‚„:……äryřĽWüľ ?ÇCä;"ŘńąŔއČv R9§T>*,üíŰoëjko˙řăŤPgôA8”c5#P*• "^íÚµëÔ©SÄŰíÎËË«¬¬Ü˝{w}}=†afłpá Ă, ń;Ă0µZÍfłńÇ:ť.;;›FŁ­]»öćÍ›†ŤFŹ×ŇŇÂb±ÚÚÚ– b6==]ZZź””tćĚEń‘×®]‹‰‰1Ťľ7  T*‰»ÝŃÚúźďż˙59YÎĺVrąňÄÄŠÄÄ .·rŮőůçłXđĘa4=ż˛ŮlĹĹĹ,‹ËĺÖÔÔáa[PŻýüÉÇx»ÝŢ××W^^N "RQQqçΑHôŕÁ|/0 •JP©T™™™žÝÇfł‰ëZ,–«WŻnÝş_¬­­Ý·oźÍf;wî\UUŃjµ&“I&“ť>}ÚG°ĽĽ|vvVŻ×÷÷÷÷÷÷766âOńäÉ“çĎź§§§űą™Ç|gçßR©â›ojkj:µÚ!·sąÜ.Wxý;A°Ëáqüřq»Ýn0z{{ďŢ˝ŰÚÚşş úў݉^Ľx Š˘ ⍆N§ët::ťŽ˘čÉ“'Ďž=Ë`0śNgYYYuuµgŤFbt:˝  `hhźÇ`0ĚĚĚ (zăĆ âřŃŃQ Ăôz˝Źŕüü|ttôÄÄ>UoooVV>rddÄ÷vářé§&™ěŹ´´ę¤$9Źw?˘/ţ “c|PËá377a2™đÉ»»»7oŢţőÚĎ^î2đ-..A7oŢđů|bÜl6s8śM›61™ĚÁÁÁööööövŤFŁR©®_żNLĄRçććĽÎŻV«‹‹‹!ŢLBˇPđIDD„Ź ĹbAQ”ÉdłĹGâ–Eˇ$)O=‹óóÎĄFb–”$÷gÎĎAĄň|v9pĂĂĂ€ÔÔT|‘Ďçż}űÖĎB[ĐĹ>ąă †@ hhh¸rĺ ą|ů˛X,nhhŘż?`ďŢ˝·nÝ޸qc~~~WW—ŮlŢľ}űË—/—ť|llěčŃŁjµ:++K§ÓőôôŕqŻ·»,&$$DFFŽŹŹÇĆĆfffĆĆƇ˙wË8ťV Q§›ź¦P"çç]KŤD¤ąYęç´űá…ďA-‡‡ĂĽ~ýzÝşu€WŻ^%&&úłbČ şŘ'w< ±±qÇŽ†•••ńx<»ÝľaĂ&“ŮÖÖ‰DR©T("’źźâĉ={öDGG#ârąPő1ó‡÷ť¨(«ŐZ__ďrą&''ýOŚJĄJ$ą\~éŇ%·Ű]RRÂçóKKKýźÁíž‹SŰŰkµCťť·oZ­łQQ‘N§—Ö/(Řâ˙Ěq»g–ĽrxP©T±X\QQˇP(&''ëęꊊŠVEA äędFFĆŁGʬV«@ ŤŤmmm•Édřé3@(ľ˙>//°sçÎééi‘HHNNNKKc±X>‹‹«««ŮŮŮXż~˝D"ů¤ÜšššśNgzzzFFF||üůóçŘ@@ffĘĎ?‹µÚ_ţüSVXýŐWQQ‘ÍTÁ+Qssóš5kđ7 ‘HTUUµş úѲźôýäp84M`놰ęâÔÔ\W×ßEEM))•\nerreśą.ĺË(ÇgúwÎ\—BŁŃ¶l ú»|¨ÄÄPĚ:x0ËjťůëŻ'ÝÝNl¨“ňĺË.Ççř×:ž$ľţzÍ‘#ß9ň]¨ď$Čv|X__||}Ş×ëŔfł!„ÚÚÚŔn·ű]ZZ˘WN’d||üĐĐT*•Édccc‡Ă;ÍápśťťUWWGFFĆÄÄĽ~ýš˘(:¤§§G,'$$466Ň đx<«Őj6›U*•H$Š‹‹Ą«xËy§©««Óh4´Ídtâź6$ˇ‰‰ ¦óŠ»\®°°0‹ĹÂđŤĆÄÄÄŽŽŽ‚‚x˙ţ=Aůůů´ť’’âżr’$ĂĂĂ_˝zĺrąZ[[ŁŁŁşčt:ŤFăp8vvvT*Uww7I’ŕůóçv»ýÝ»w …‚žŮßßź™™ EEEoßľu»Ý!22‚*>33ăÍ$0ŕhHnLńťť Ă(ŠbřM&ŽăfłÇqŠ˘jkk ‚¸¸¸¨©©yóćM@Ĺé;ľ|ůÂýůó'źĎ?>>¦óĎĎĎ+•J:äŰ·oŕrąD"ŃÖÖddd Ŕćććůů9EQ###ţĺŠollH$Úp4$đ–’`¶»»+—Ë}ý6›-**ęŃŁG‰dmmmiii|||||Üd2-.. Ě&îßżŹ c>Těv;EQ‰Ä·4BôoČh4VVVšL¦©©)„ĐęęjEE†a±±±!×rppMŰÁŻ”6×Qś ĚĚĚŢŢŢîînÚÓŐŐU\\ÜŰŰűěŮ3„P^^ާOźľ~ýŞP(˛˛˛>~ühłŮŇŇŇ,‹¶€hd2Ů˝{÷śNgDDBčüüüđđĐívű†”——ëőz±X\TT$‹u:ÝęęŞR©4›ÍÓÓÓÁ×255ĄR©BÁŻš6×Q!Ô××—‘‘555ńńń'''III‰dll !”źźŻŐjsrr0 ËĘĘzůňenn.źĎÇ0ěňň’˘¨ŕɽӄBaIII}}}{{»Çăyńâ…\.Ż®®öť\XX¨ÓéúúúŃďŹÇűţý»^ŻżĽĽtą\«8ťÎÉÉÉáááőőő?z; 8JßW†±ËüĺY,‹FŁ‘Éd@.—744(•Ęććf899áóůťťť°··‡2 pzzšśśŚăřňň˛˙Féµ˝ÓśNçŃŃ‘FŁ‘JĄR©´ŞŞęÇŹţ{qyyy\\śÇăˇ/[ZZ‚HHHřüůłBˇČÉÉa<6hř|ţăÇŹçććĽyü};ń )ş©'çźp»Ý&“éz±w’€Šßä[ľH$JMM˝Á„wî» ŰpŠł §8ŰpŠł §8ŰpŠłM€wN«Ő:44Ä~+˙ ŚóyggçmwtwŔq|ss“ˇ0ó?Y˙7Ü>Î6śâlĂ)Î6śâló ţÂý¨}.[IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_event_pattern__inherit__graph.png0000644000175000017500000001166612052741154024350 0ustar gudjongudjon‰PNG  IHDR}AäjbKGD˙˙˙ ˝§“kIDATxśíť{PWűÇOn•{¸*Zj•޵x©ŠJ/#Řú:"H«d†Z*Al­¶N©ăx™Úâ˝ĐvěhuÄT´oy˝¶ľ”‹Ć`A” D$\rßßűţŇ”„ČĂâůŚădOvĎyöĂr˛Y’ý2‚@«Ă„.ŕ%{‡{‡{‡m¸ —Ëăââ¤R)T5ĂÝ»wĎ›7OżČ0<źÉČČŚŚ ¨kX# ‚‚222ô-lă•’““­XŇKÁ®]»şµŕůěěěěç3– ‘HNžnmm]˛d‰D"Q()))«V­ OKKÓjµb±ř˝÷ŢËËË[ąreXXŘŐ«WŰÚÚzęśÇă­^˝ş˛˛’\|ňäɦM›–-[™źźo¸ˇa= šťť˝|ůň›7ov+€‚Ă>{ďěě,++ 7ld0áááüńÇÜąsKKKB#GŽ,//G•——űřřś:uŠĂá\ż~ÝŃŃŃdĎÁÁÁEEEäă‚‚‚iÓ¦yzz=zT©Tž|XQQńĺ—_^˝zµŞŞŞ¬¬lË–-†+÷4żĎť;·°°0$$¤şş:((H*•j4šwß}·Űčl6›<® †q'f^{9r¤źź_vvv||<Ů’™™ąpáÂěěě  „ćĚ™STT$•J˝˝˝ýüü ššš¦NťÚĐĐĐkçÁÁÁçÎť1bÄÂ… GŚÁfł™Lć… FŤ…R(mmmJĄ’Ú޶µµ}ýőש©©“'O~üřńíŰ·M®ćěěÜë ”uëˇňşĘçóóóóŹ;VWW§R©:::˘ŁŁ«ŞŞÖ­[‡š3gÎůóç§M›Ć`0üüürssgÎśÉfł †N§Óh4fzž?ľX,ÎÉÉ Aq8śŔŔŔăÇŹ·µµµ¶¶îŢ˝;++Ë䆖tN^ye±XrąüÜąs:ť®ŁŁCżˇţĺö*ŢÇŹź––&—Ëů|ţ;ďĽ“źźżjŐ*@€š5k–Z­ž>}:BhĆŚ]]]ääîęę:fĚ•+WĘĺrăůýرc!.—ëďďŻR©üüüȱ’’’´ZmtttLLŚłłs\\śÉ’ ;ď©l''§>źżqăĆ·ß~{ěرÉÉÉú ą\®ľ í&®ż_ż~ťBG*•J,Oś8qŕj>ěÚµËÍÍÍđúű€]'°±±ÁŇ-_ź{‡{‡{‡{‡{‡ÁÄu‚ĽĽ<ë×1ĽihhpssűGa€P(´đC†­ík,–=t–’’’b¨úŢiÄ­[Őžž‰ź.€.„"tťßsrî˙k4:čZ¨@Kď*•&;»!ÔÖÖYXřş*ĐŇűŤ•ťťJ„‹ĹĚÎľ]hé] ¸Ăb1BŤî×_+şşTĐőúyďčPţöŰ}ŤFK.*•š˙üçlI źwCé!&“!”ÖC úyJ ˙Ľ©Ńč®_Ż”ÉşK˘ÍĽKĄ……iµ˙8w$âňĺ ¨’¨A3ďyyĺĆŤAdfŇlŞˇ™÷¬¬bÂč ć:ńß˙>zţÜôÇ˙†&tňŢĐĐzçN­Ngâ‹ý,óâEż C:yżx±¬§›)h4Z€No (~ţ„W_u÷ôtĐ/¶·+mm9lö˙ťiÓĆŐE†ńtIĽĽ¶¤ĄĹüë_~Đ…PNóĚp{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{˘ź÷Q9zô(Tĺ\®7“9dčŔŔŔ~zëď÷lÖ¬YSWW—””4P»4ôąuëÖÁűémľW6nܸţ÷Cäax~‡{‡{‡{‡{‡ÁzŢkjj˘ŁŁGŹmcc3a„-[¶‘Df¨¬¬´µµ%0 puu 'Zôëďa¨a%ď"‘č­·Ţrpp¸qăFKK‹@ ř믿üýý{U݇ËĺęßtTTTŘÚÚ~řá‡!___…B1µý|ßŃëj‹-JHH0lŃétIII‹/>pŕAőőőˇýű÷!‘H ‹,**2ôNÄíŰ·]]] ‚‰Dú§d2Yll,ŹÇóđđŘąs§áł:ť.66véŇĄ]]]A´··ôŃGîîî^^^ź|ň‰Z­‰DăÇŹ?räťťťH$2ł/d^_$™ŔÇ»L&»qăźĎ7ld0‰‰‰.\ %“\ŠŠŠ BÓ§O×[suu5ÜV"‘>|xćĚ™ÝJHHJĄ"‘čĆŤ§Nť"óÝBAlܸ±¶¶öüůóä´Ăçó;;;…Baaaaaa!™¦#‘HĘĘĘŞŞŞ|}}MĆ˙ÓĎź›%Ç{uu5ÁP«ŐÝÚKKKíííďßżoooŻV«ăăăżřâ ŤFłiÓ¦Ď>űLď]$ÖloożbĹŠşş:ÂŕV©Tl6űŃŁGdç7oŢ,))!źÝĽy3‡Ăill$źR©T§µµ•\ĽvíÚěŮłÉ!ôë6Ç»››Á‹ĹÝÚëëëGŹ=uęT''§’’’˘˘˘µk׺şş–––„††®l8ĎČd˛ .Ś;Öp‰D˘Óé^yĺrqÁ‚łfÍB)•Ęššš7ß|3%%Eż¦Z­vrr"_Ą-ZT[[‹˛±±é~·đAĂŢ Ż\¦¤¤<~üřčŃŁ+W®D…„„dgg?{öěő×_ ĘĘĘŞŻŻź?~źFńđđ@=}ú”\Ľ|ůrnn.BĂá‚ÔÔÔC‡‘ ,KĽ···ŁHł+ťĎ;věôéÓ‰‰‰>T(2™lňäÉwďŢݱcB(44455uţüů #((čřńă‹/ćp8 C«ŐŞŐjK†ŕrąaaa[·nmjjŞŞŞúř㏵Z-BÉdrąÜŮłgÇĆĆ’™‚\.7<<|Ë–-MMMŤŤŤk×®=tčĐ îľ1Vň>eĘ”?˙üS*•:::ž>}zóćÍäůBhÉ’%JĄ2 !ÜŢŢNN2cĆŚ™8q"ŹÇ“JĄ–Śňý÷ßłŮěI“&ĆĆĆ®^˝ÚđŮ˝{÷Ţż˙ěŮłˇ´´4ŤFăëë;eĘww÷˝{÷ü>›§źŻžG𤫫«´´´źXÚĽ®ö„­­­>˙đe_ź{‡{‡{‡{‡{‡a>ÇQXX¸téŇţ÷Cž?Ţ˙Núëť|çm}´ZFU•óčŃNNJ+íěěĽnÝş~vB×ű2gd'&ž]´čő3g6@×BşÎď99wbhhh˝{W [č罸řń‹rý˘Ť ›^‰*$ôó®źdHT*Mvv‰V«3łÉ„fŢŐjmnîĂt„PKK×TC•D šy/,|(—w˙°‡Ăî€ÔCšyĎÎľËb±ş5ŞŐşĽĽ2…¢O č佫KőďWh4Ză§ őőë•Ö/‰2tň~őި«ËD8BÁ “ÎiťĽ‹ĹÍÝ@őhµů–.Đ)ŻL­ÖŠDö:$$ĺóĎß}űíI䢗—ł««Pi}†Nů|kúôq†-ŢŢĽn-tNóĚp{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡{‡ÁÄ÷=äry\\ś…w~¤ˇÁËŮY:bÄĐË2ř'»wďž7o^·FŢ322"###"hy_—ˇĆ­[·üýý322şµ÷ř=ăU1XłfŤÉv<żĂ€˝Ă€˝Ă€˝Ă€˝ĂĐ/ď°Ůp!†)úłGVş÷ˇ gÜĐÚÚ:qâĸ¸¸ľď ĆŃtɆ{ńâ…áĐ+V¬ T©T&7$ŰŤÉô·oľůĆĹĹĹÍÍíĚ™3;wîttttss;uęŮŐ`dĆQ<އZ6Üž={„Bˇ@ ŕp8&7?**JĄR=}ú”ĎçoßľťějP2ăŚtɆÓóŰoż9;; …B}‹É {ęŤÉd* ‚ „Bˇác}şÜ`dĆQĽÇɆCŐÖÖFEEť={vĘ”)ć7ě©7‡ĂĺrBL&Óđ1ąÚ eĆQśg†H6śR© ß±cGHHHŻRKš¤Ě8ęç3C!.>>~ĆŚ‰‰‰–lh˛Ń’%3Îxę±<ŁěŃŁGQQQ666>>>IIIłgĎNNN&B&“q8śożý– şş:„ĐŹ?ţH„\.÷őőµ··˙ý÷ß»MÓz g𦦦÷ßßĹĹĹËËk۶m*•JßCssł™=2ŢĐdŁáX==nii‰ŠŠâńx</..®łłÓř5¦'zšßűĺÝ—6®'ř<˛'p6ś…ŕë30`ď0`ď0`ď0`ď0`ď0ôx}ć‡~°fĂ•šššn—°ţ‡ń)˝P(´···z…Ă–””cÉtş/ópĎď0`ď0`ď0`ď0ü‹wÁž{DIEND®B`‚qwt5-5.2.3/doc/html/qwt__raster__data_8h_source.html0000644000175000017500000004271412052741135022027 0ustar gudjongudjon Qwt User's Guide: qwt_raster_data.h Source File
Qwt User's Guide  5.2.3
qwt_raster_data.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
12 #ifndef QWT_RASTER_DATA_H
13 #define QWT_RASTER_DATA_H 1
14 
15 #include <qmap.h>
16 #include "qwt_global.h"
17 #include "qwt_double_rect.h"
18 #include "qwt_double_interval.h"
19 
20 #if QT_VERSION >= 0x040000
21 #include <qlist.h>
22 #include <QPolygonF>
23 
24 #if defined(QWT_TEMPLATEDLL)
25 // MOC_SKIP_BEGIN
26 template class QWT_EXPORT QMap<double, QPolygonF>;
27 // MOC_SKIP_END
28 #endif
29 
30 #else
31 #include <qvaluelist.h>
32 #include "qwt_array.h"
33 #include "qwt_double_rect.h"
34 #if defined(QWT_TEMPLATEDLL)
35 // MOC_SKIP_BEGIN
36 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
37 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
38 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
39 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
40 #ifndef QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT // by mjo3
41 #define QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT
42 template class QWT_EXPORT QMap<double, QwtArray<QwtDoublePoint> >;
43 #endif //end of QMAP_TEMPLATE_QWTDOUBLEPOINT
44 // MOC_SKIP_END
45 #endif
46 #endif
47 
48 class QwtScaleMap;
49 
61 class QWT_EXPORT QwtRasterData
62 {
63 public:
64 #if QT_VERSION >= 0x040000
65  typedef QMap<double, QPolygonF> ContourLines;
66 #else
67  typedef QMap<double, QwtArray<QwtDoublePoint> > ContourLines;
68 #endif
69 
72  {
73  IgnoreAllVerticesOnLevel = 1,
74  IgnoreOutOfRange = 2
75  };
76 
77  QwtRasterData();
78  QwtRasterData(const QwtDoubleRect &);
79  virtual ~QwtRasterData();
80 
82  virtual QwtRasterData *copy() const = 0;
83 
84  virtual void setBoundingRect(const QwtDoubleRect &);
85  QwtDoubleRect boundingRect() const;
86 
87  virtual QSize rasterHint(const QwtDoubleRect &) const;
88 
89  virtual void initRaster(const QwtDoubleRect &, const QSize& raster);
90  virtual void discardRaster();
91 
97  virtual double value(double x, double y) const = 0;
98 
100  virtual QwtDoubleInterval range() const = 0;
101 
102 #if QT_VERSION >= 0x040000
103  virtual ContourLines contourLines(const QwtDoubleRect &rect,
104  const QSize &raster, const QList<double> &levels,
105  int flags) const;
106 #else
107  virtual ContourLines contourLines(const QwtDoubleRect &rect,
108  const QSize &raster, const QValueList<double> &levels,
109  int flags) const;
110 #endif
111 
112  class Contour3DPoint;
113  class ContourPlane;
114 
115 private:
116  QwtDoubleRect d_boundingRect;
117 };
118 
119 #endif
qwt5-5.2.3/doc/html/inherit_graph_33.md50000644000175000017500000000004012052741151017217 0ustar gudjongudjonac5606cbf65a8c56661ea47cab123ad3qwt5-5.2.3/doc/html/class_qwt_plot_zoomer-members.html0000644000175000017500000013654512052741142022453 0ustar gudjongudjon Qwt User's Guide: Member List
QwtPlotZoomer Member List

This is the complete list of members for QwtPlotZoomer, including all inherited members.

accept(QwtPolygon &) const QwtPlotZoomerprotectedvirtual
ActiveOnly enum value (defined in QwtPicker)QwtPicker
AlwaysOff enum value (defined in QwtPicker)QwtPicker
AlwaysOn enum value (defined in QwtPicker)QwtPicker
append(const QPoint &)QwtPlotPickerprotectedvirtual
appended(const QwtDoublePoint &pos)QwtPlotPickersignal
QwtPicker::appended(const QPoint &pos)QwtPickersignal
begin()QwtPlotZoomerprotectedvirtual
canvas()QwtPlotPicker
canvas() const QwtPlotPicker
CenterToCorner enum value (defined in QwtPicker)QwtPicker
CenterToRadius enum value (defined in QwtPicker)QwtPicker
changed(const QwtPolygon &pa)QwtPickersignal
ClickSelection enum value (defined in QwtPicker)QwtPicker
CornerToCorner enum value (defined in QwtPicker)QwtPicker
CrossRubberBand enum value (defined in QwtPicker)QwtPicker
DisplayMode enum nameQwtPicker
DragSelection enum value (defined in QwtPicker)QwtPicker
drawRubberBand(QPainter *) const QwtPickervirtual
drawTracker(QPainter *) const QwtPickervirtual
EllipseRubberBand enum value (defined in QwtPicker)QwtPicker
end(bool ok=true)QwtPlotZoomerprotectedvirtual
eventFilter(QObject *, QEvent *)QwtPickervirtual
HLineRubberBand enum value (defined in QwtPicker)QwtPicker
initKeyPattern()QwtEventPattern
initMousePattern(int numButtons)QwtEventPattern
invTransform(const QRect &) const QwtPlotPickerprotected
invTransform(const QPoint &) const QwtPlotPickerprotected
isActive() const QwtPicker
isEnabled() const QwtPicker
KeepSize enum value (defined in QwtPicker)QwtPicker
KeyAbort enum value (defined in QwtEventPattern)QwtEventPattern
KeyDown enum value (defined in QwtEventPattern)QwtEventPattern
KeyHome enum value (defined in QwtEventPattern)QwtEventPattern
KeyLeft enum value (defined in QwtEventPattern)QwtEventPattern
keyMatch(uint pattern, const QKeyEvent *) const QwtEventPattern
keyMatch(const KeyPattern &, const QKeyEvent *) const QwtEventPatternprotectedvirtual
keyPattern() const QwtEventPattern
keyPattern()QwtEventPattern
KeyPatternCode enum nameQwtEventPattern
KeyPatternCount enum value (defined in QwtEventPattern)QwtEventPattern
KeyRedo enum value (defined in QwtEventPattern)QwtEventPattern
KeyRight enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect1 enum value (defined in QwtEventPattern)QwtEventPattern
KeySelect2 enum value (defined in QwtEventPattern)QwtEventPattern
KeyUndo enum value (defined in QwtEventPattern)QwtEventPattern
KeyUp enum value (defined in QwtEventPattern)QwtEventPattern
maxStackDepth() const QwtPlotZoomer
minZoomSize() const QwtPlotZoomerprotectedvirtual
mouseMatch(uint pattern, const QMouseEvent *) const QwtEventPattern
mouseMatch(const MousePattern &, const QMouseEvent *) const QwtEventPatternprotectedvirtual
mousePattern() const QwtEventPattern
mousePattern()QwtEventPattern
MousePatternCode enum nameQwtEventPattern
MousePatternCount enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect1 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect2 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect3 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect4 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect5 enum value (defined in QwtEventPattern)QwtEventPattern
MouseSelect6 enum value (defined in QwtEventPattern)QwtEventPattern
move(double x, double y)QwtPlotZoomervirtualslot
QwtPlotPicker::move(const QPoint &)QwtPlotPickerprotectedvirtual
moveBy(double x, double y)QwtPlotZoomerslot
moved(const QwtDoublePoint &pos)QwtPlotPickersignal
QwtPicker::moved(const QPoint &pos)QwtPickersignal
NoRubberBand enum value (defined in QwtPicker)QwtPicker
NoSelection enum value (defined in QwtPicker)QwtPicker
parentWidget()QwtPicker
parentWidget() const QwtPicker
pickRect() const QwtPickervirtual
plot()QwtPlotPicker
plot() const QwtPlotPicker
PointSelection enum value (defined in QwtPicker)QwtPicker
PolygonRubberBand enum value (defined in QwtPicker)QwtPicker
PolygonSelection enum value (defined in QwtPicker)QwtPicker
QwtEventPattern()QwtEventPattern
QwtPicker(QWidget *parent)QwtPickerexplicit
QwtPicker(int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)QwtPickerexplicit
QwtPlotPicker(QwtPlotCanvas *)QwtPlotPickerexplicit
QwtPlotPicker(int xAxis, int yAxis, QwtPlotCanvas *)QwtPlotPickerexplicit
QwtPlotPicker(int xAxis, int yAxis, int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *)QwtPlotPickerexplicit
QwtPlotZoomer(QwtPlotCanvas *, bool doReplot=true)QwtPlotZoomerexplicit
QwtPlotZoomer(int xAxis, int yAxis, QwtPlotCanvas *, bool doReplot=true)QwtPlotZoomerexplicit
QwtPlotZoomer(int xAxis, int yAxis, int selectionFlags, DisplayMode trackerMode, QwtPlotCanvas *, bool doReplot=true)QwtPlotZoomerexplicit
RectRubberBand enum value (defined in QwtPicker)QwtPicker
RectSelection enum value (defined in QwtPicker)QwtPicker
RectSelectionType enum nameQwtPicker
rescale()QwtPlotZoomerprotectedvirtual
reset()QwtPickerprotectedvirtual
resizeMode() const QwtPicker
ResizeMode enum nameQwtPicker
rubberBand() const QwtPicker
RubberBand enum nameQwtPicker
rubberBandPen() const QwtPicker
rubberBandWidget() const QwtPickerprotected
scaleRect() const QwtPlotPickerprotected
selected(const QwtDoublePoint &pos)QwtPlotPickersignal
selected(const QwtDoubleRect &rect)QwtPlotPickersignal
selected(const QwtArray< QwtDoublePoint > &pa)QwtPlotPickersignal
QwtPicker::selected(const QwtPolygon &pa)QwtPickersignal
selection() const QwtPicker
selectionFlags() const QwtPicker
SelectionMode enum nameQwtPicker
SelectionType enum nameQwtPicker
setAxis(int xAxis, int yAxis)QwtPlotZoomervirtual
setEnabled(bool)QwtPickervirtual
setKeyPattern(uint pattern, int key, int state=Qt::NoButton)QwtEventPattern
setKeyPattern(const QwtArray< KeyPattern > &)QwtEventPattern
setMaxStackDepth(int)QwtPlotZoomer
setMousePattern(uint pattern, int button, int state=Qt::NoButton)QwtEventPattern
setMousePattern(const QwtArray< MousePattern > &)QwtEventPattern
setResizeMode(ResizeMode)QwtPickervirtual
setRubberBand(RubberBand)QwtPickervirtual
setRubberBandPen(const QPen &)QwtPickervirtual
setSelectionFlags(int)QwtPlotZoomervirtual
setTrackerFont(const QFont &)QwtPickervirtual
setTrackerMode(DisplayMode)QwtPickervirtual
setTrackerPen(const QPen &)QwtPickervirtual
setZoomBase(bool doReplot=true)QwtPlotZoomervirtual
setZoomBase(const QwtDoubleRect &)QwtPlotZoomervirtual
setZoomStack(const QStack< QwtDoubleRect > &, int zoomRectIndex=-1)QwtPlotZoomer
stateMachine(int) const QwtPickerprotectedvirtual
Stretch enum value (defined in QwtPicker)QwtPicker
stretchSelection(const QSize &oldSize, const QSize &newSize)QwtPickerprotectedvirtual
trackerFont() const QwtPicker
trackerMode() const QwtPicker
trackerPen() const QwtPicker
trackerPosition() const QwtPicker
trackerRect(const QFont &) const QwtPicker
trackerText(const QPoint &) const QwtPlotPickerprotectedvirtual
trackerText(const QwtDoublePoint &) const QwtPlotPickerprotectedvirtual
trackerWidget() const QwtPickerprotected
transform(const QwtDoubleRect &) const QwtPlotPickerprotected
transform(const QwtDoublePoint &) const QwtPlotPickerprotected
transition(const QEvent *)QwtPickerprotectedvirtual
updateDisplay()QwtPickerprotectedvirtual
UserRubberBand enum value (defined in QwtPicker)QwtPicker
VLineRubberBand enum value (defined in QwtPicker)QwtPicker
widgetKeyPressEvent(QKeyEvent *)QwtPlotZoomerprotectedvirtual
widgetKeyReleaseEvent(QKeyEvent *)QwtPickerprotectedvirtual
widgetLeaveEvent(QEvent *)QwtPickerprotectedvirtual
widgetMouseDoubleClickEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseMoveEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMousePressEvent(QMouseEvent *)QwtPickerprotectedvirtual
widgetMouseReleaseEvent(QMouseEvent *)QwtPlotZoomerprotectedvirtual
widgetWheelEvent(QWheelEvent *)QwtPickerprotectedvirtual
xAxis() const QwtPlotPicker
yAxis() const QwtPlotPicker
zoom(const QwtDoubleRect &)QwtPlotZoomervirtualslot
zoom(int up)QwtPlotZoomervirtualslot
zoomBase() const QwtPlotZoomer
zoomed(const QwtDoubleRect &rect)QwtPlotZoomersignal
zoomRect() const QwtPlotZoomer
zoomRectIndex() const QwtPlotZoomer
zoomStack() const QwtPlotZoomer
~QwtEventPattern()QwtEventPatternvirtual
~QwtPicker()QwtPickervirtual
~QwtPlotPicker()QwtPlotPickervirtual
~QwtPlotZoomer() (defined in QwtPlotZoomer)QwtPlotZoomervirtual
qwt5-5.2.3/doc/html/inherit_graph_1.map0000644000175000017500000000022212052741161017225 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_linear_color_map.html0000644000175000017500000006132312052741164021752 0ustar gudjongudjon Qwt User's Guide: QwtLinearColorMap Class Reference
QwtLinearColorMap Class Reference

#include <qwt_color_map.h>

Inheritance diagram for QwtLinearColorMap:

List of all members.

Public Types

enum  Mode {
  FixedColors,
  ScaledColors
}
- Public Types inherited from QwtColorMap
enum  Format {
  RGB,
  Indexed
}

Public Member Functions

 QwtLinearColorMap (QwtColorMap::Format=QwtColorMap::RGB)
 QwtLinearColorMap (const QColor &from, const QColor &to, QwtColorMap::Format=QwtColorMap::RGB)
 QwtLinearColorMap (const QwtLinearColorMap &)
virtual ~QwtLinearColorMap ()
void addColorStop (double value, const QColor &)
QColor color1 () const
QColor color2 () const
virtual unsigned char colorIndex (const QwtDoubleInterval &, double value) const
QwtArray< double > colorStops () const
virtual QwtColorMapcopy () const
Mode mode () const
QwtLinearColorMapoperator= (const QwtLinearColorMap &)
virtual QRgb rgb (const QwtDoubleInterval &, double value) const
void setColorInterval (const QColor &color1, const QColor &color2)
void setMode (Mode)
- Public Member Functions inherited from QwtColorMap
 QwtColorMap (Format=QwtColorMap::RGB)
virtual ~QwtColorMap ()
QColor color (const QwtDoubleInterval &, double value) const
virtual QVector< QRgb > colorTable (const QwtDoubleInterval &) const
Format format () const

Detailed Description

QwtLinearColorMap builds a color map from color stops.

A color stop is a color at a specific position. The valid range for the positions is [0.0, 1.0]. When mapping a value into a color it is translated into this interval. If mode() == FixedColors the color is calculated from the next lower color stop. If mode() == ScaledColors the color is calculated by interpolating the colors of the adjacent stops.


Member Enumeration Documentation

Mode of color map

See also:
setMode(), mode()

Constructor & Destructor Documentation

QwtLinearColorMap::QwtLinearColorMap ( QwtColorMap::Format  format = QwtColorMap::RGB)

Build a color map with two stops at 0.0 and 1.0. The color at 0.0 is Qt::blue, at 1.0 it is Qt::yellow.

Parameters:
formatPreferred format of the color map
QwtLinearColorMap::QwtLinearColorMap ( const QColor &  color1,
const QColor &  color2,
QwtColorMap::Format  format = QwtColorMap::RGB 
)

Build a color map with two stops at 0.0 and 1.0.

Parameters:
color1Color used for the minimum value of the value interval
color2Color used for the maximum value of the value interval
formatPreferred format of the coor map

Member Function Documentation

void QwtLinearColorMap::addColorStop ( double  value,
const QColor &  color 
)

Add a color stop

The value has to be in the range [0.0, 1.0]. F.e. a stop at position 17.0 for a range [10.0,20.0] must be passed as: (17.0 - 10.0) / (20.0 - 10.0)

Parameters:
valueValue between [0.0, 1.0]
colorColor stop
QColor QwtLinearColorMap::color1 ( ) const
Returns:
the first color of the color range
See also:
setColorInterval()
QColor QwtLinearColorMap::color2 ( ) const
Returns:
the second color of the color range
See also:
setColorInterval()
unsigned char QwtLinearColorMap::colorIndex ( const QwtDoubleInterval interval,
double  value 
) const
virtual

Map a value of a given interval into a color index, between 0 and 255

Parameters:
intervalRange for all values
valueValue to map into a color index

Implements QwtColorMap.

QwtArray< double > QwtLinearColorMap::colorStops ( ) const

Return all positions of color stops in increasing order

QwtLinearColorMap::Mode QwtLinearColorMap::mode ( ) const
Returns:
Mode of the color map
See also:
setMode()
QRgb QwtLinearColorMap::rgb ( const QwtDoubleInterval interval,
double  value 
) const
virtual

Map a value of a given interval into a rgb value

Parameters:
intervalRange for all values
valueValue to map into a rgb value

Implements QwtColorMap.

void QwtLinearColorMap::setColorInterval ( const QColor &  color1,
const QColor &  color2 
)

Set the color range

Add stops at 0.0 and 1.0.

Parameters:
color1Color used for the minimum value of the value interval
color2Color used for the maximum value of the value interval
See also:
color1(), color2()
void QwtLinearColorMap::setMode ( Mode  mode)

Set the mode of the color map.

FixedColors means the color is calculated from the next lower color stop. ScaledColors means the color is calculated by interpolating the colors of the adjacent stops.

See also:
mode()
qwt5-5.2.3/doc/html/qwt__color__map_8h_source.html0000644000175000017500000006571112052741134021512 0ustar gudjongudjon Qwt User's Guide: qwt_color_map.h Source File
Qwt User's Guide  5.2.3
qwt_color_map.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_COLOR_MAP_H
11 #define QWT_COLOR_MAP_H
12 
13 #include <qglobal.h>
14 #include <qcolor.h>
15 #if QT_VERSION < 0x040000
16 #include <qvaluevector.h>
17 #else
18 #include <qvector.h>
19 #endif
20 #include "qwt_array.h"
21 #include "qwt_double_interval.h"
22 
23 #if defined(QWT_TEMPLATEDLL)
24 // MOC_SKIP_BEGIN
25 template class QWT_EXPORT QwtArray<double>;
26 // MOC_SKIP_END
27 #endif
28 
44 class QWT_EXPORT QwtColorMap
45 {
46 public:
57  enum Format
58  {
59  RGB,
60  Indexed
61  };
62 
63  QwtColorMap(Format = QwtColorMap::RGB );
64  virtual ~QwtColorMap();
65 
66  Format format() const;
67 
69  virtual QwtColorMap *copy() const = 0;
70 
77  virtual QRgb rgb(
78  const QwtDoubleInterval &interval, double value) const = 0;
79 
86  virtual unsigned char colorIndex(
87  const QwtDoubleInterval &interval, double value) const = 0;
88 
89  QColor color(const QwtDoubleInterval &, double value) const;
90 #if QT_VERSION < 0x040000
91  virtual QValueVector<QRgb> colorTable(const QwtDoubleInterval &) const;
92 #else
93  virtual QVector<QRgb> colorTable(const QwtDoubleInterval &) const;
94 #endif
95 
96 private:
97  Format d_format;
98 };
99 
100 
111 class QWT_EXPORT QwtLinearColorMap: public QwtColorMap
112 {
113 public:
118  enum Mode
119  {
120  FixedColors,
121  ScaledColors
122  };
123 
124  QwtLinearColorMap(QwtColorMap::Format = QwtColorMap::RGB);
125  QwtLinearColorMap( const QColor &from, const QColor &to,
126  QwtColorMap::Format = QwtColorMap::RGB);
127 
129 
130  virtual ~QwtLinearColorMap();
131 
132  QwtLinearColorMap &operator=(const QwtLinearColorMap &);
133 
134  virtual QwtColorMap *copy() const;
135 
136  void setMode(Mode);
137  Mode mode() const;
138 
139  void setColorInterval(const QColor &color1, const QColor &color2);
140  void addColorStop(double value, const QColor&);
141  QwtArray<double> colorStops() const;
142 
143  QColor color1() const;
144  QColor color2() const;
145 
146  virtual QRgb rgb(const QwtDoubleInterval &, double value) const;
147  virtual unsigned char colorIndex(
148  const QwtDoubleInterval &, double value) const;
149 
150  class ColorStops;
151 
152 private:
153  class PrivateData;
154  PrivateData *d_data;
155 };
156 
160 class QWT_EXPORT QwtAlphaColorMap: public QwtColorMap
161 {
162 public:
163  QwtAlphaColorMap(const QColor & = QColor(Qt::gray));
165 
166  virtual ~QwtAlphaColorMap();
167 
168  QwtAlphaColorMap &operator=(const QwtAlphaColorMap &);
169 
170  virtual QwtColorMap *copy() const;
171 
172  void setColor(const QColor &);
173  QColor color() const;
174 
175  virtual QRgb rgb(const QwtDoubleInterval &, double value) const;
176 
177 private:
178  virtual unsigned char colorIndex(
179  const QwtDoubleInterval &, double value) const;
180 
181  class PrivateData;
182  PrivateData *d_data;
183 };
184 
185 
198 inline QColor QwtColorMap::color(
199  const QwtDoubleInterval &interval, double value) const
200 {
201  if ( d_format == RGB )
202  {
203  return QColor( rgb(interval, value) );
204  }
205  else
206  {
207  const unsigned int index = colorIndex(interval, value);
208  return colorTable(interval)[index]; // slow
209  }
210 }
211 
217 {
218  return d_format;
219 }
220 
221 #endif
qwt5-5.2.3/doc/html/functions_func_0x76.html0000644000175000017500000001412112052741152020163 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- v -

qwt5-5.2.3/doc/html/class_qwt_counter__inherit__graph.md50000644000175000017500000000004012052741137023033 0ustar gudjongudjonc59c3b0b8750c993b2e02ec9f2a2e8eaqwt5-5.2.3/doc/html/class_qwt_picker_polygon_machine__inherit__graph.map0000644000175000017500000000026112052741156026162 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_func_0x73.html0000644000175000017500000014007712052741152020172 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- s -

qwt5-5.2.3/doc/html/class_qwt_arrow_button-members.html0000644000175000017500000001400612052741137022616 0ustar gudjongudjon Qwt User's Guide: Member List
QwtArrowButton Member List

This is the complete list of members for QwtArrowButton, including all inherited members.

arrowSize(Qt::ArrowType, const QSize &boundingSize) const QwtArrowButtonprotectedvirtual
arrowType() const QwtArrowButton
drawArrow(QPainter *, const QRect &, Qt::ArrowType) const QwtArrowButtonprotectedvirtual
drawButtonLabel(QPainter *p)QwtArrowButtonprotectedvirtual
keyPressEvent(QKeyEvent *)QwtArrowButtonprotectedvirtual
labelRect() const QwtArrowButtonprotectedvirtual
minimumSizeHint() const QwtArrowButtonvirtual
num() const QwtArrowButton
paintEvent(QPaintEvent *event)QwtArrowButtonprotectedvirtual
QwtArrowButton(int num, Qt::ArrowType, QWidget *parent=NULL)QwtArrowButtonexplicit
sizeHint() const QwtArrowButtonvirtual
~QwtArrowButton()QwtArrowButtonvirtual
qwt5-5.2.3/doc/html/spectrogram2.png0000644000175000017500000004065412052741136016620 0ustar gudjongudjon‰PNG  IHDRYqĎŤ*Ö IDATxśíť}UzĆߞNj¬â¬¬p2,ˇîĹ| ¬ĄVb@Áb€¨‹¦*EŐn EÉkmR€ëÖfaX  *ŚFÝTŚI )ŚÂVimY˛KŕŢT’13d‘ťEťČ0ě0ť?·=Ó_·?NwźsúůEÍÜéŹÓ·»ĎÓĎűľç´ńß˙ýßä’÷ßźF}öŮgţË™¦ůńÇß˙ýożý¶a¶ż=ztĺĘ•¦i‘a“'OŢżB- 7NĹ1Ms`` łłóđáĂŤŤŤK—.}ôŃGëęęÄîw”˙źĎž=ŰŮŮyüřńÁÁA׺»»ŰŰŰ;;;Ĺ6 @ŢđRśm۶őöö:tčÂ… +V¬8qâ’%KÄ´N0áŮgźÝłgŹ×gÎśiiiŰ&9ÄUq†‡‡8°jŐŞqăĆMš4iٲeűöíľëľ°&ÝÝÝĺrůĺ—_6Móî»ď^·nÝ1cÂnäůżűűÍłíŻ+•J:űęíííďďź:u*űuÚ´i;věľ—¸Z8888sćĚ^xˇŻŻoýúő›7o޸qŁm™R©äµzą\ŽŮiň7ŰţÚúąčÝ˝WŞÝ{L 5jTcc#™¦Y(B47qµp÷îÝě‡BˇĐŃѱfÍç2^Gkű‚ţě‘oÄl €TůB ĄâŘžBˇ044téŇĄ††"şxńbSSSä­y˝Ç4Í?üđÖ[o=ţ<ű¤ľľžµ@.ř‚÷?A477Ź;öôéÓě×S§Nµµµ Űz•Xe©ăÇŹokk۲eK˙ąsçvěر`ÁQ- ;×{˙„a .Üľ}{___OOĎ®]»ÚŰŰ…m˝J-ěęęš1c†auuu[·n=ţüěŮłxŕ)S¦ttto"IIŢŃęŐ«oşé¦yóć=üđĂ÷Ţ{ď˘E‹Dnť‚ä Ăhmm=věő ˙ëäÉ“_|ńEáÍ@-JżúU¨ĺË_übB- U„ją)ŽaMMM›6mÚ´i“ŕťqÄ­ť ·đúVŰ⬠€DÖ¬€KĆâhż®  âň‚Ů- É)–µA"PřBrBjŶ_úկء@ …hO&F ŠTZ źÉxŠlĄWDČ!ha4ř™x ‹@Z$Q Keh . v-‘02Yţâ%lDđ…h‡ĚzcD’µ… §řhˇ™^+âk>R´A ™á)He¶€/@Ą„2@.|ň…}éµ">ĐBk”°NA’`-ĆWJĘů wh!Č;ŠĘ‰%‡dČp°ĹäÔ?h!Č)ř*¸C9µP~ … Źh“oCúd‹6Z:R;´ -jyP@~†˝˙©ć`ůBK w˛B9Íós°ˇ˝y‚‚”ą’uD|!Č ÚëÜ!Hm|!ň… hďyru° [´ÉB A^ȉ[ĘÉaI€  y b>H h!j7!d@A:@ P€| !rRŕŠ÷?µ@)Đ–”• TpÉrĺăD[“ç§Ęů?/ …@gRK+\„U˘k’Z€Ô¤ŕ‡¤EĐ3k•Č[±Ż/~Ö$´0"k¤@Ň˝ż( c[HZ!‡ 9 …Ál ií÷“Đ­r"`ŤŚł·—퍆‘”dĺŞňq©8®T—fe 1Á»|‘äÜO *eÄ$vk’1R¤#ˇľ>… f“Ř#äÇG ŤôZ!h!~DpiĄb—ëçĺJkŔ-$j!‡@ >ZXź^+-šD\ŤxýóŇĽ Ëđ0(¸N#P …HD†Bh)\Mył(»ŘZVIJa |ęHG§× @ p!Č„jÁUĐ[>¸"˘¸H‹6µ3›(OB.Ç_~, +„Üö[-QŚÜŚ»F¤B›÷TŔµI˘OŻéĂJĹ. ,_uýĽ\yĐíĂÖšL"RJ(˘"PNóĽ€ĺۡű«ŽWT“×?WÍó_¦\iőŹ— —CXC haD0ďpgA-…ó’@ kRńU¶ż “C‚8@ #‚ůH´ř×ËřˇMKŵ®[(W6WxŞŠJ u4@2”{gŻ‘UIÂÓřËŚS˝TĐ’=ţOěŻNEtʡOó‚ż18°† &đ…h…Źßr:B§´é•Šs­źË•ĂÖźśŠhŰšî0ˇ:˘- KÄş™šfË)K\ňďsmăőŹĘ•ĂěC›.ÚÖ˛äßť˙@ rkâ- 3’(€ô1…^ŽĐU™ÔŃâbiq±DDmD{+ĺęęWuѦ^îĐÇĆ<^űaBA$j!_"çű› …@ÌBxu×#Ň{ź aąrŘŇ?âôʬ™.2EdS.ĹčîS”b| Ţ_8‚Ź>účţűď?rä­ŕC†˝¶Uçbs„– 2ýŰY,Y˙3ćŃňJ™K–"ňrhąĂšc3ÖDu¤W9{ölggçńăÇ…4€šdb ź›y;HD{+e¦Lóz8-lá4roĄĚ„ł\)[[°ąĂŕ‘RXC-Úä ăÎG:a„çž{nĎž=BZ€?©y!,×rU ‡™śO´łXš_B"j©”­ě“ĺÜbL­ä˘O°´fŤ( ‡ Źĺ‰ôžŢµ6GČämyĄÜS,µTj$EZ*ĺůĹRKĄĚŃéť}Ŕř 9ĘižiĽ§˘äA »:‘ą)tu„Tő‚5…Ń­âĺa *Ŕ†Ŕ«‚r2$đ«zí/ť°Še¬€g4¬Ő-wh‰˘µësśÂ‚,Ѧvď/j•)$n4ˇĺa@;褥RćÝ!]UŮĎ­áČ6ŔŃĆB A‰l ©:L>Ž#ä™_­/µ™Bź8Ú#~č=©9•š¦ĐŠŽŠĄ)=,5¤Lqµ€Ž µµőرcB6€+iÎ>ęXţów0Y3ČĚŻŽ Ź żťĹÜDŻ?y!ĐbÄ=´€”HsöŃű1ć}łUŰÂÔ«ĄR®DÍňT*ĺ–JŮRDËV÷kźÍ•$jg` A …¤GVU36xß–ţ»Hł‚&…˝ ¸âý/,¦iľýöŰK—.ý˝ßű˝™3gţéźţéüÇo±ĐB/‚WÍ83…D4?^í¨¬¦Ôf ]Çz  }á'ź|ňŘcŹ}ó›ß|÷Ýwßzë­Űn»í[ßú–ř{-R“áP 9Áŕ µ°ˇˇáúëŻ7 Ă0 öÉ—ľô%±­ős°6¦pgÂaŇęXĂ›Ý ˘, ß˙ţ÷W¬XAD†a\{íµ{÷î·ů¤í 1ŽpS3@*jLˇüXC¤°† &}a™8‡‡‡7nÜřGôGďĽóÎżţëżN›6műöí©HÚľźŹ rJ#đ]ľgĎž={öě_üĹ_ …±cÇvtt¬Zµ*fó‚|!”4_-¤‚tŻčz/¬)ŮĽHsĐ=¬!đG`é5×\cű¤±±QH#-yAČÖIÇH—ÇKI˘š¤ŚŔÚ™ććć3f<őÔSýýýçÎť{öŮgď˝÷^ń-öZd$C/’U˛ŃSÂh)Ă„€5^k˙ÔSOőőőÍ™3çţűďź2eĘęŐ«7×Ô‘I‘p¸wKĄ\Irű•Ją…’Ń „IëH Ăhnn޶m›¸M†ľHGĘ=Ż*# yŇL2 ‡ŔĚÁ@‚7…ůyám)C =:µ3Ů‚)€(ç˙Ľ€/r‘ćP i©9¬"}5® F €†đďi˛HspˇŮ–’ŕ ´0" řóP:Yh «p|îY>“Ü(CXC`C-Äl@.Rz‘˛Á…i¶D~&N”ÓGH„Pć)aŇÜ-Ś?őt1‡čálr¸·,e]îˇm¶xGČBŻJH™jprA(jˇł·—mNÄH¨ŤÓ˛Ď™Úâś;=Ęg,Ť´JoöşM4Ł˘‚ܢͻ|ˇ… = ŁŮ¤ §2wHDLŮĎ^ľaN§#´-/€”Ö0o(W/ę´¤Šśe:۸{[Mé^.ěIn)@ź?ŮQ1…ĄbWÍe¨úŞŠPo겆9ůB‘~/PX)©ŰçvkČGJi¤;dźěuDA-śh[—ܢŁ>¦PŞ"RXĂ\- 4úu‘LÉśŞć_ę\^` ó´ýń˛†42’É ˘2ő9>¦j[ĆąMR-SňI.´Đ4ÍÎÎÎÇ766.]şôŃG5 Ă0 k™ŁGŹ®\ąŇ4M"2 cňäÉű÷ďOĽŐ@5ÔŤ›yɡ-ž92Ô9⍮Ëđh&„\‘+rˇ…D´m۶ŢŢŢC‡]¸paĹŠ'N\Ľx1ż@www{{{ggg’Ť YÂÎ>ĂtËkđC¨ŕg„˛Í8ňŚ6u¤~ó‘8p`ŐŞUăĆŤ›4iҲeËöíŰg[ćĚ™3--Î §ř]]‚eŁ­î4—Ú€¬a~Đf>R?-ěíííďďź:u*űuÚ´i]]ör»îîî#GŽĚš5ëŽ;îxüńÇűűű“j)Á¤®/r˛ b(E´–wB¶/E¤ ohŁ…~1ŇÁÁÁQŁF566‘iš…Ba``ŔąĚĚ™3_xá…ľľľőë×oŢĽyăĆŤ¶e0×ZžQĹú‡I}^jh“CźÇ˝ňÂo1!T%@ЬaNPNóĽđÓÂBˇ044téŇĄ††"şxńbSS“m™Ý»w[ wtt¬YłĆąŻŮw ‘ÚŁS Ěu&îŻWµÍß ÖŚjć!‡Ú“ -lnn;věéÓ§§OźND§Nťjkkłţjšćąsçîąçž·Ţz«ąą™ęëë™j`ˇSWč/‡Őe˘ç˙4Bd ó@.jg ĂX¸páöíŰűúúzzzvíÚŐŢŢÎ/0~üř¶¶¶-[¶ô÷÷ź;wnÇŽ ,H¸Á@”ë˝& ąŚg°4&A„P•)Źr—…6ůÂďµ_˝zőM7Ý4oŢĽ‡~řŢ{ď]´huuuÍ1Ă0Śşşş­[·ž?~öěŮ<đŔ”)S:::Ri6PMa&rPĹî4TĽ@(´ŃBż©aMMM›6mÚ´i˙ykkë±cÇŘĎ“'O~ńĹl PEEA¬!qr?¤j;Ę™BBŤîDxˇśďoÂlDhM-s©SŽä ĽżO”Nź†iXEŚ ‚*f y` uEąX¨ĐB2t|‘ßŢjJ6›"ňňŘRڎĽ ęB‚RŤŃ¦ŽZ“OŔk›÷$5iÇBÓ|‘Ż?Čę |!. ż#ä˙<€j ´0"k(AŘ7W$‡$ÍŔhaDřj"č˘fh–’A3o€p` 5C-¬1Ö€€0!ÔŻ›Ëp„»Šëýa—‡fĎL9'cí…~BČůäń-öZ˘Łkí¨? ɡŢ9B'¨)Ő±1Ňť;w?~ü•W^yűí·ž~úiÁÍő1R‹Ľ aB•ĄşVŤúH©¬#5MóŐW_ýáxóÍ7†ńÔSO‰Űvmŕ AD´Żő§TěâäDmGQ ‡Ş#Đ~ôŃGź|ňÉO~ň“ŮłgĎś9síÚµýýýâ[ěć`QČąZî0N©‹%9t„<§Ti"ĽË—‡ź‰¬żżß4Í_üâű÷ď˙őŻýťď|çÉ'źÜ°afÖs°Đ çbŘ‘‚©ďs®‚C• \ ň.ßĆĆF"Z»víµ×^KD+V¬čččٸŕ _– ^Ď|D.°&C51Dm覛nşćšk†††ŘŻW®\ihhµńš@ AhĐayaéś3 ô‰CeVtR__ż`Á‚M›6­]»vppđ™gžY°`¨Ť×ZB€'÷€@ů"€H©šó…Dôíoűűß˙ţÜąsGŹ˝páBÄHŚŕ±¤äP5„ůBĂ0®»îş-[¶Ú`( … ůVR†YCȡRô…BđŻĘ4 ăäÉ“ÎĎ1ľÔBRóѨFť÷?•€/5€‚”;T é|á?ţă?FX Zü€‚L€ŞtţŻĄĄĹőó±cÇú¬-ž@A†@A:_xçťwş~î?Ţs°w „ s ‡* ť/Ść`.č!„Ąâ¸rĺă¬[‘%ĺĘÇŞ Cé‘Îň*3<<üÓźţtŐŞUO>ů¤˙ZšH:B´•Ąr#ui]]ÝťwŢŮÚÚZsآÍň!9”Ăű_ö đÁgÎśůđĂý—Dí ř!KeE:CĺĚľ†1mÚ4˙µ¤; B 9p‡R"µ/d´¶¶~ď{ßó_ľA"ŔĘG CĹ{µ ď2ŚĂ»ďľË˙Z__ßÔÔ4<\ă­Ăđ…@O!T˝~R¬”4ëVîP2ůÂ2GŇ ;’BˇđÚkŻýîďţ®˙Zđ…yGK!zw(ŇŞ—^zéąçž´}ÎĽékŻ˝ÖÚęňJ5ha®AoĹr‡¸€łF˘Ľ ăůçźżtéRص …9Eo;)Ź#î˝`‘ô˝’U@:_xĺĘ•űî»oÝşu†qU§_ýőM›6˝óÎ;DT(\×ÂlyÝĐÄKłF:_¸gĎžááá}űöť>}zhhčË_ţň]wÝő˙đrÍÍŤ9Ř2˝Đ ÄK3E:_8jÔ¨o|ă}ôűőő×_ůĺ—_zé%˙µ¤; (yč/tŤĆAżjR'VĽ¤‹ts°mٲĺăŹ?ţú׿ľxńbĂ0ţřŹ˙ř˙ţď˙žzę)˙µ …yq$ =VĽ4ë†ä éĆÚż˙ţű_űÚמxâ‰Űn»ŤÖ­[÷đďż˙ľ˙ZĐÂ\źˇöî'yřr0ú0u¤ó…uuu ü'W®\±ęh<×J˛I@ ň&„şÂľČ!ŤtľđöŰo˙·ű·Ă‡ł_˙ęŻţęČ‘#3fĚđ_ Z¨9,.š!d@}ČĎ—Ă®yČa*Hç żő­o555ýüç?'"Ó4÷ěŮ3fĚÇ{Ě­¸u¤/^ěěě<|řpccăŇĄK}ôŃş:č«äÇ2P2ŤÇ:ÁčĂTnLĹoţćoľňĘ+˙ó?˙3zôč9sćL™2ĺ¸ůć›ý׊«…۶mëíí=tčĐ… V¬X1qâÄ%K–ÄÜ&OŢĘdňÓżÇ'orHů»ŇE:ósáÂ…n¸á†n ˘ÎÎNëĂÇ^ąrĺŔ;wîĽńĆoĽńĆeË–íŰ·Z-xŔ b’Hç ďĽóN×Ďý§Ź%é˝˝˝ýýýS§NeżN›6­««+ÎALňyĂçÇĺ"Ă m  &1¤ËF#–/5j”U˝Z(ś‹a~™ȧ R> #"oĎĽćđNI é|!ď˙†‡‡úÓź®ZµęÉ'źô_+– …ˇˇˇË—/766ŃĹ‹›ššü[ĆŤEnoo ˘ ł†y“CÂüĄâ ý._F /2$˘şşş;SµµuË–-wß}·Ď’±´°ąąyěر§OźľőÖ[‰čÔ©Smmmq6"ó»:o]ą@r)e  F(|a:Ęçdxx¸»»űĚ™3®1KžXZXWW·páÂíŰ·oٲĺÓO?ݵk×#Ź<g ąµG(KsřM˘ FŇĺťÔ0ŚiÓ¦ůŻwLĹęŐ«7lŘ0oŢĽŃŁG?ôĐC‹-ŠąAÜ>Őć¶ďN~>šĽ}«0"._褵µő{ßűž˙2qµ°©©iÓ¦M›6mŠąśűlxxŘ0 ˙鹥“tŕEž‹ßeÉşy!·ß6^ů éĆţçţg{{űÓO?}ůňĺ?ů“?ůĘWľŇŢŢţ_˙ő_ţkA Ő oSl;)W>Ρ_IźśĎÔ;<Ň˝§â?řAOOOKKË›oľyüřqÓ4»»»k&ň#•ťgÎśĄK—~ůË_&˘ááá˙÷ßż˙ˇC‡>ýôÓš«#Fšş>j˙PRCűlb> ˘,ľđý÷ß\˛dÉ/ůË8pŕĚ™3¦iѤI“ćĚ™ăż:´0t}Ô;Ů2Aďlb ˘,ľđ¶Űn{÷ÝwżúŐŻ~öŮgDdĆôéÓçĚ™3gÎśÖÖV+wč´P0ú=‚ÔĐ5›¨µA”Ĺţŕ?xńĹßxă ¦…&L5kÖí·ß~Ë-·ÔŐŐlhˇH4{úÓ5—dĆfI—+P_(‹/7nÜ·żýíÇ{ě˝÷Ţ{ăŤ7>üüóĎ?˙üó×_ýď˙ţďĎž=űľűîóYZ( öܧş&o€rhů6 íäP_HD†aÔ××Ďš5kÖ¬YßůÎwŽ=zđŕÁźüä',}-Lť˘ú%JM3l IDATl€ęč4Ó©Ž3Ôö…¦iţüç?_ľ|ů{ď˝W3ÉçCccăĽyóćÎťŰßß˙ć›oľńĆţËC ă˘Áe­e†&2ĄbWÖMđ¤\q™;*?h“MÔk†Áľ°żżÝşu^3h‡Ĺ0Śë®»nÉ’%K–,ń_Z ŐŻfťň15LNÉ)»DŁśm˛‰ĄűÂŤ7~ĺ+_yýő×Ĺn¶&ĐÂč(}«• ˘ęöďx€z|źĚ&Ş®Jw#D$Đš¦ůú믟?~Ýşuúkˇ6sͨ{ËÜwxőŃň÷ËjäűTâ\đ©D’őŞöG}9 ä ˝z~~&˛łgĎ>óĚ3/żü2‘2-4Š&e3‚®]­TýlÎń:rž8Ą+N}(ě]ľëÖ­[łfÍ—ľôĄ>ř v«Bi8}‚“ˇĎÖ‡fŢ{‚h¸ž8IN®ş§*§…ĹHöłźýěg?űó?˙söëôéÓ(¨( …!Pna†ŹÉN÷ńÓŰÉÍüěó§j‰˘‚r(¬v†)źiš|đÁ>řţűď‹Úr …AQîM˙Ńďˇ|yĆyöÓż6TôjşC‰ĆÚÇZ…®Î4‡%‰Śůᯍ”/ĺ<˘jŐ4‚ÇT†ŃÚÚzěŘ1±›­ ´°6 ]—é<[}ÄDŔ+ šÜ夜GTJá ó*WdŇ5ĺ‚„°.§®1Ë#ĘŻęȡ,ssÇZč‡×br÷6ô¤‰WUěµÇŹľ\‘CřBÝ‘˙*LA! xłČ®Ć|*˘ r_¨5’_IÜĂŮşŔRńŐČë–+ lI~Pâ;O4‚Ş„"J/‡đ…‘Pb®ÉÇ żuu;Ü8}k„>]?ůLůKHá´:6•”S´ć5•VIę§sřÂHČ?›ÄבčB8±}Šk˙‚ęDŘE(ĺČJ8endŔÝ%qIŘś˘«×2rʡÜăá Aş´˘Ś ­§SČl…jjśXbú>˝p=Q— »zF5Ş2• řB‘óÉKěýY*vEî5Ôż8ää0SĂö}ĆĽ¨x›(DIÖ ˘¬‰CřBíň:v[F~|ΧţÔ௨RńUţz u±•+­˘<˘´D)ĺľ$ʍ»1Ú#3ë•ÄŠ_©¸6ÚŠĺĘfÍţduš\-cđ+P G”6(źÂę…d—‘ű0Âcrä§ňęę5úĐh}e©¸6xď Őô"”ÂE>S7Ë®Ŕפ(ŹČ ˘lr(ˇßĺ›ć›‚ă§…¦i tvv>|¸±±qéŇĄŹ>ú¨a†ńůŔŃŁGW®\iš&†1yňäýű÷'ŢjŃč*„ˇzh.ĐÖ÷%¤CÁ7믚yI5Jú¨ąýŚ-JÁ®RQQB9”Ěň…ręO _¸m۶ŢŢŢC‡]¸paĹŠ'N\Ľx1ż@www{{{ggg’ŤĚ1ď˝PµćÖCwţĹŮĎʦ.ţíIȶ¦‰ę‡`k^Ř+ĘćŠbĚŃʡLä _8<<|ŕŔť;wŽ7nܸqË–-Ű·oźM Ďś9ÓŇŇ’p#“E¦',˘xBöž/_­Ů›đ˝UŘ~¶Tśjy'ĺĘá[ąµJ0Š„ŢČNú :Ź%Čőf]´A.`9ú"š"Ę&‡2YĂä {{{űűű§NťĘ~ť6mÚŽ;lËtww—Ëĺ—_~Ů4Í»ďľ{ÝşucĆŚIޱ9 ! ňXJ}zĚb°/"™ˇ"±ńwyďBHç‹-çzíČkËÖ÷Ŕ?šřbpŹČ bä©lr( 9đ…ŁFŤjll$"Ó4 …ÂŔŔ€s™™3gľđ }}}ëׯ߼yóĆŤmËČ9ż Cšg+˘ŘB<(D}şfgď&Ö˝…ݲW‡›d«¤ŽCÚ«FńŮEÍ«˙’}.ËPŃ2ȡ4ÖPS_ČtË0Ś'N …ˇˇˇK—.544ŃĹ‹›ššlËďŢ˝›ýP(:::Ö¬Yă܇WÖTfŤLźČ÷X@;XóńŮ_m=—7ş¸(ňĚî­ÔČş{5&9·*!Il˘çŃÖ*ŰŤ«.ZNŃő îădĄ’C9ĐÔňşŐÜÜťNť:ŐÖÖfýŐ4ÍsçÎÝsĎ=o˝őVss3Ő××3Őa‰#„˘5˝ —×a=”WęÚ]ÖTŻŕ,.–|zd˙…2%AÖĘśôOě©ôŮľSťňáSŠçăDyäPk¨©ň†±páÂíŰ·oٲĺÓO?ݵk×#Ź<Â/0~üř¶¶¶-[¶<ńÄýýý;věX°`A ‰—Q,ř·Řx/ăWîŐ§ř<ˇÓČNͧŻÜĂU,ŻnÖż/NY&o$)ě1ňe˙lşîČëZbGęuZ6‘jyÄĄafnË7šĆHm¬^˝zÆ óćÍ=zôC=´hŃ""ęęęzđÁŹ;fĆÖ­[7lŘ0{öěBˇĐŢŢŢŃŃ‘Jłµ"Ú3f{ŘçéŘ_ĂęźkGą<ŞĄŘY,ů÷Ľ5•ŇËMé÷ëMü˰{ ‚—ěŐ<öšjç„zmŤo•óăżç•éŻÖč 9Śě屆 ‰/42Y*•ŘŢź˙»ż'˘?{ä©î]SmşŃ Ůźçb×îĂęŮůîĆęžl=©­włő’=‚ňL-ťŻWŻ]łłŽoŹ$!΄ýö:›ţ—ë…çz‰’ŻA âŁĺ噿;ý®¬X,QĄR!˘RŃóI®\ązľ¬®^NŘ`¶ě‰v;ŐBG誂®^ĐK­ž‹u”¶îŇUĂŠ]jĹ» öę…ç{좦= ë#ý×Jšř™Ľŕ~ÝçŰ&PçÔ¶ýů#·l»´¬Łă/Bëµ]±–AŚě¤k]}ÁSîŃÄB ŐŁfHÇëÎ÷±>^ďOY?eë7˝:JŮWziž×2>›%łâÚËű„ţâg%%~&ĎKöśúŰ<‘Ď©sü…d=ßŘ®·˝•˛Ó#–+‡YÝ©-dę/ "‡HF"ůB(Rq„Đ5;hłüc8ë•řţ”ő\¬Ď˛ú»ŠwcĽúʰË8™ď¶zp$ﬤsyy§B›Ľ&9‰6žSŰIěq\oěx}<˘SÉŰ —Cd ‰ľČ×Řťó¤xŮA›\ÎuRäx´Ź&cB°vÍzsö««ąń ýůhdD.$Ib§^ÇXÓ˛gx­˝G^]üŶĽR¶YxŹh3ä–AôJ✢/©äąŐy«»&ýUĐć]»Ôl»Q‹šÍpu^#yjVşF Č~jž(Ëž¶–XÇÂ.<ëká="Ĺ: ˘—;äă»k řB•‘ˇTř-đ™×6Ŕö M^°X,ÉÓ{†ÂŐA’·gŞY6ÉwĐb ˛k˙dp{ńa[KĄěôěWfmµ]΀ż“š‘RÉzÄ=|a$0ďZĘxäN®v^ŮA§T˝{Ą‡Ŕ„¤XkyQc śÔ.׬%uś&r{^±<"/%î¶‚Ą¬”F­™cŐ$ô»|˛Ť˛H[ ůă‡.†Â?zÜş>;ű aN° ‰—ÇJóËŃĂçŇyD>č´ćLcZC”†G“wůję ‹*d݊ı=;Ó„®ˇŃ| ˇ“JĄśąÉĐI°B¦Ë9ČŹ¸ ‡;´FYčMÖź:ď*ˇXs(lŃQ›zŤˇ ŠŐÁ<εMAęŢ˙TZwśBHĘÉŕ3–; RĘ›k)šřÂśÖ‘ć’G1˙ç…bŇ "Ă' ťŤZ : ¤Ĺëâää΂R0đ…2E‚@řBĹÉĽ”4ě<÷agÓwfJ|ž—Q> TÁµ‚ĆÂv‘‡Í„P!ä3YO˘‰/T¬ą 2üh ×Ň»ä† ç…j‹ů‹}72¨ęHŐ'sk(šs-úS"ÎĺŞÓlYŹ,dŔF˘Ä‘ň®%$é0)ą˝ˇÂ‰đi¦Hš mŘŃ*H%Z‰2GĘ»––°oÇö‘C›5tĚÓ˙y‰ť&]>räFi©Tgbcż.9%)ąM1čxC‹gě$üS&^jĎ@ŚT 2“†}®ôynőŠüřTĐ` 4ü쬚q]Ĺ˙uľˇöž­)”#@Jđ…@$˘¬ˇ3kč´†Tí5örĎד…ŕçćf—±ë}ť¦Đűy¦02đ…ş “5d8ĺF¶ő‹ą­ü«ŐČ µ„ĐŐŕ/l·÷Wר,)Ś |ˇ^d.‡˘ŠhŘ“Żż’ĂäČŤMĽ)´đBS¨VÉŚdŐď|ˇüU“ĐB˘ě«Ą+‡¶H)˙| 9b ˇő‰U2c‹Žj/„ ş¬*|ˇüU“Đ«d)ed+‡Ö›áBAć°ëĐr„¶ÚŃô…0ŇAD¦č(ůBÉá5ż IŘ[™Qu˘5KÉcř%[h)„™wMhb¨0›‡Âݡ׸CŻx)Yîpg±Äú¦B0•JŮşŘصMŮ5ďş ˇhŕ #ÁI+‡2 Ö7 ßę#x9,W6órXćĆo1xhůȰ_/ĘTđ wvBÚARVĺF_© 2DJ‰s‡aĺ<[ńR©ĄâZ+ÝbĹK‰¨<2IĂz¨ůĹá˝@4=Vt´ęrŮA¶ŚŹZa˙™eT>AR›BRÎ˙y-tG9¤ŞA +‡^wľUMĂg˝ ˘k‘…°–sIDNA4ŠŐË©ĄĄŞ$ˇŮAö„0ŕ uG69¤Ŕ±vĎ3E [P0dşł*„‰Zb Č'VjE)’Ş•¤ ňľ0H(‡aVąŞ^rHŽŮŠ-č2%G‘8ŹŔ)‚uµŘĽ M©–¤Z/ć ›´€†ľ0XeĄ™_”ĽFČ ’GČÔ™hń ™ŇHE$˘ůŐ·ŞÎŻ>D;:řĽ YÖ0¤ úg#E«ke/„’ô9Á€/Ě 2ڞ`XŐ4a3ä2µz“€U¦6Ećď,–XÇg%‡ŠĹ*Nó;ŃÖy·  $Tá䨎ˇyAö„0 „ůÂłgĎţâżX˝zuCCĂ1cV¬XńÍo~SÔĆk- »Fĺą^#gÉ·Ę”äÉQkJŽâŞN‰h~±ÔŠÓ|ŔrĽ¤`áP ď)^P”¤‰‹ĘÓ«„G/üŤßřŤ'N°źMÓ|çťwnąĺQŻIÚZ¨Á\3RDëNŽ2ĄZ‘ŠHŽT"ą Ŕ ŹŠS‚SÔŢ’Gu(y $_#H$Ô÷‚¤¶R@_čŐó;_ghšćŻ~ő«;vĽůć›ű··u12|łb©Tb{ţďţžţě‘odŐ’HxůFÎ˙×|˛özill%¦äŃŁyťR`§HxKTÖôŚ´€42J‘ŇL *¨ Â|á¤I“Nž<)jka CŞúR‹řŠHµJ|DŃ'ˇHµś"YC2Ş˝02‹ áĚ~ţD2rPD@H1$b”ĆÄ*Hz !ůúB3˝VÄFŚ~ôŃG÷ß˙‘#G„lM]ä4O)@qMős÷Ř)E—Bůf Bf1śY@ň°€ŢR*F ‚™áă Ż¤×ŠŘÄŐÂłgĎvvv?~|ppPH4@NH‚‘jőYc§ţ˘h™E>‚J¶ Ş›_$˘b±Dx«âHřďÄÝ˙Ń, 9˘ ţHĹB«[WIs!$mćć3ľ°««ëÁ ›äTz|adľâwÁ»°Zođ*˛·tŃ>T‘óÚ0řIP‘eäéᾨ#˙´|äÜäČŇHý#A. ‚Ę2r|a×bĺĘŐˇ‡ÇfĆ&Ž„c-⌾¨n!M¤`N‘&c¤˙đĚ,2řŮmË«?äÄ5z9?öS˙\ýyd©–¤t%$)a!獟šřÂ4´Py×â ç  +pĘ˙r µ‹N«KE›óđ ˘’[•–Ń Ąö‘ŽąFk´ńÁO.ÉJÜ„—ţQ’H90‚ ™ď÷Čë»|§Oźnš&‘Ëw3‹Äë"ąYFrHŁUÉčůWËN«ź§ď#ť»öj$yť—ř‘ ýŁ´$T0‚TUA’ő6O†Ľú Ç(Ť/•ňó¨&×ÎGéĂ™óó? Ż”‘’"*Hąłyő… ü  ’ř¶‰8Ą¨˘HŢa·€şHľŇHŢęHId÷‘6zĽÖňŧş'H3ü•Źj‰Ó? %ŃHŇ« ü·sÂäŐ‚ř(çÓEŞA­ţę©‹äbzxi¤ ęČŘ뇌Ź÷yݵµíŕČé,lĘGnâGáőʞ“@’^)ż^ľŁµµ5µYă´Ać*Sľ?Š­Š,ŠIÉ[kŞ#ĂK#yöĆH%zm˙ ÷ąëöݡ¶ř‘hý#qHęÄB-äżySľŔŞ2%ž.…ÄNÉM)ŚY ¨‹äPr ¨V—´K ÝLcD/˝đ×QÖ$׆y5Éőx}wń*˙kX Hâ$ÔQA…nŘTý._9ÇB łÇşŁT‰·Äśżfä¦>Ĺf‘ją§4z©…ŹŕyȤĹÍŽ z •};ţ[ö×`rS>Ş%~Ő˙‘h $eUPţ;4]ůB9őŹZ(ň˝ŕ± Ă A˘H!ű\Ż8*FňPGŰ’55ɱMw… »ť‘Űti$P>ŠjţŞë Ö?RP ^Đä A(çI´(’‡.é},ŁóŻŐ˝Ć¸kOuĂkgô}yl0şřU· , ČmS= $ĄîÄŚ@ľ$‰Z‘!Şîtä6]2‹$B]—á>â·jkXB霣 !Ęw;ˇżŢŔ[V©.”^0đ…‘ČĎ\3ńQŃ#’[Ý) Ĺę–CÇîĄŮ$"?ZhšćÇ|˙ý÷żýöۆă=ĹGŹ]ąrĄišDdĆäÉ“÷ďßźHKČč.ÓBÓ4:;;>ÜŘظtéŇG}´®®NÔöýńÓBÓ4?üđĂÎÎÎăÇŹş.ÓÝÝÝŢŢŢŮŮ™LóHŚP_¸m۶ŢŢŢC‡]¸paĹŠ'N\˛d‰Ŕíűŕ'ą†aL0áŮgźÝłgŹ×2gÎśiiiI a¤çĘĎ!>pŕŔŞU«ĆŤ7iҤeË–íŰ·/‰&»×~vww9rdÖ¬YwÜqÇăŹ?Ţßß/¤Y`hČó_Hz{{űűű§NťĘ~ť6mZWW—čćz·vfpppćĚ™/ĽđB__ßúőë7oŢĽqăFŰ2Ać—ů›mł%Ň&ü»|yř™ČGŤŐŘŘHD¦i …!m ‚] Y‹ Ă8qℳRĆÉîݻمBˇŁŁcÍš5ÎejľĹB*R~ŕÚË{‘oˇPştéRCC]Ľx±©©)nűc×Âŕo6MóÜąs÷ÜsĎ[o˝ŐÜÜLDőőőěÂR©T"¬@š››ÇŽ{úôééÓ§Ń©S§ÚÚÚRŰ{¬|ářńăŰÚÚ¶lŮŇßßîÜą;v,X°@TËäĂ0.\¸}űöľľľžžž]»vµ··§¶÷(ů®®®|đرc†alÝşuÆ łgĎ. ííí‘›‚×V€ü†eőęŐ6l7oŢčŃŁzčˇE‹%´#'FrG–R©Ş1Ş//a“°ĽŘĺ%l–»Ľ„M’myůaIş”†ôŇ-w …ňŽÂůB ČŰ!çíx)‡ś·ăĄü˛~Ç‹|!@- …ňŽDůB e/ …´@ŢČ;Yjˇiš}ôŃ]wÝeš¦óŻGŹť>}z©T*•JÓ§O_¸paú-Lö%dÝ ń\Ľxqýúő·ß~űWżúŐgžyfxx˙«išGŹ-qčtŠýŹ]uLÓt í.ÎĂýkő`Y7$AĽPżű7Ę;›âcšć‡~ŘŮŮyüřńÁÁA×eş»»ŰŰŰ;;;Sn[šś={Ö˙KPšm۶őöö:tčÂ… +V¬8qâ’%Křş»»-Z´qăFĂ0˛jdBÔ»gĎŻeÎś9ÓŇŇ’f«Ňg„ Ď=÷śĎ— (¦i^ąrĺŔ«V­şńĆ'OžĽlٲ}űöŮÓő9vĄf8nܸI“&ĺęäZÔěÁT§fď¤Ů)–7_ŘÝÝ}äČ‘YłfÝqÇŹ?ţxÖ-!číííďďź:u*űuÚ´i]]]¶eŘ)ľóÎ;5;ĹAŽ]i‚ź\ÜżŁŮý+ŻÎś9óÍ7ßü—ů—˙ýß˙ÝĽysÖ-!5jTCCűµP( 8—Ńň9vĄaŘŘŘČ‚cą:ąŔBłSś^ľ°T*‘a'Nś_Ţ˝{7űˇP(ttt¬Ył&ŮöĄÂôéÓY‰–ÓýXGwňäÉBˇ0Lü±[IDAT44tůňĺĆĆF"şxńbSSż°aÖ)ľöÚkµ9ĹDTóŘU‡ŕĄK—Ţ» –÷/°ĐďţMĎ–Ëĺrą|ňäÉšBČ*kn˝őÖóçĎłOęëë­§lĄ9yň$ű˛nH"đG×Üܵ9ĹŕŘUÇ˙5ľ…~÷ݤ1ŇńăÇ·µµmٲĄżż˙Üąs;věX°`AÖŤA1 Ł®®náÂ…Ű·o˙ä“Oş»»wíÚŐŢŢÎ/cťâ‹/ţň—żÔé× Qwt User's Guide: Member List
QwtTextLabel Member List

This is the complete list of members for QwtTextLabel, including all inherited members.

clear()QwtTextLabelslot
drawContents(QPainter *)QwtTextLabelprotectedvirtual
drawText(QPainter *, const QRect &)QwtTextLabelprotectedvirtual
heightForWidth(int) const QwtTextLabelvirtual
indent() const QwtTextLabel
margin() const QwtTextLabel
minimumSizeHint() const QwtTextLabelvirtual
paintEvent(QPaintEvent *e)QwtTextLabelprotectedvirtual
QwtTextLabel(QWidget *parent=NULL)QwtTextLabelexplicit
QwtTextLabel(const QwtText &, QWidget *parent=NULL)QwtTextLabelexplicit
setIndent(int)QwtTextLabel
setMargin(int)QwtTextLabel
setText(const QString &, QwtText::TextFormat textFormat=QwtText::AutoText)QwtTextLabelslot
setText(const QwtText &)QwtTextLabelvirtualslot
sizeHint() const QwtTextLabelvirtual
text() const QwtTextLabel
textRect() const QwtTextLabel
~QwtTextLabel()QwtTextLabelvirtual
qwt5-5.2.3/doc/html/class_qwt_clipper-members.html0000644000175000017500000000632112052741137021530 0ustar gudjongudjon Qwt User's Guide: Member List
QwtClipper Member List

This is the complete list of members for QwtClipper, including all inherited members.

clipCircle(const QwtDoubleRect &, const QwtDoublePoint &, double radius)QwtClipperstatic
clipPolygon(const QRect &, const QwtPolygon &)QwtClipperstatic
clipPolygonF(const QwtDoubleRect &, const QwtPolygonF &)QwtClipperstatic
qwt5-5.2.3/doc/html/class_qwt_c_pointer_data__inherit__graph.md50000644000175000017500000000004012052741137024327 0ustar gudjongudjon0387f775c9257b642e47cb7bad34a9c6qwt5-5.2.3/doc/html/class_qwt_wheel-members.html0000644000175000017500000006056412052741143021204 0ustar gudjongudjon Qwt User's Guide: Member List
QwtWheel Member List

This is the complete list of members for QwtWheel, including all inherited members.

draw(QPainter *, const QRect &)QwtWheelprotected
drawWheel(QPainter *, const QRect &)QwtWheelprotected
drawWheelBackground(QPainter *, const QRect &)QwtWheelprotected
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
getScrollMode(const QPoint &, int &scrollMode, int &direction)QwtWheelprotectedvirtual
getValue(const QPoint &)QwtWheelprotectedvirtual
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
internalBorder() const QwtWheel
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *e)QwtAbstractSliderprotectedvirtual
layoutWheel(bool update=true)QwtWheelprotected
mass() const QwtWheelvirtual
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtWheelvirtual
minValue() const QwtDoubleRange
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
orientation() const QwtAbstractSlider
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *e)QwtWheelprotectedvirtual
paletteChange(const QPalette &)QwtWheelprotectedvirtual
periodic() const QwtDoubleRange
prevValue() const QwtDoubleRangeprotected
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtDoubleRange()QwtDoubleRange
QwtWheel(QWidget *parent=NULL)QwtWheelexplicit
rangeChange()QwtDoubleRangeprotectedvirtual
resizeEvent(QResizeEvent *e)QwtWheelprotectedvirtual
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrollMode enum nameQwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setColorArray()QwtWheelprotected
setInternalBorder(int width)QwtWheel
setMass(double val)QwtWheelvirtual
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setOrientation(Qt::Orientation)QwtWheelvirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setStep(double)QwtDoubleRange
setTickCnt(int cnt)QwtWheel
setTotalAngle(double angle)QwtWheel
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
setViewAngle(double angle)QwtWheel
setWheelWidth(int w)QwtWheel
sizeHint() const QwtWheelvirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
tickCnt() const QwtWheel
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
totalAngle() const QwtWheel
value() const QwtDoubleRange
valueChange()QwtWheelprotectedvirtual
valueChanged(double value)QwtAbstractSlidersignal
viewAngle() const QwtWheel
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtDoubleRange()QwtDoubleRangevirtual
~QwtWheel()QwtWheelvirtual
qwt5-5.2.3/doc/html/class_qwt_raster_data__inherit__graph.map0000644000175000017500000000003512052741160023735 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_6.map0000644000175000017500000000126512052741161017242 0ustar gudjongudjon qwt5-5.2.3/doc/html/inherit_graph_12.md50000644000175000017500000000004012052741151017214 0ustar gudjongudjona232e6f9901502f96616ec5cc7c4261eqwt5-5.2.3/doc/html/class_qwt_dial_scale_draw__inherit__graph.map0000644000175000017500000000050412052741154024545 0ustar gudjongudjon qwt5-5.2.3/doc/html/nav_f.png0000644000175000017500000000023112052741134015262 0ustar gudjongudjon‰PNG  IHDR8ł»`IDATxíÝK€ EŃ–·[†řBŃmkâÄÂH—prÓĽ.‚Žó‚ꎤR6Z VI±E‚5jł„lóš›iI¬ŢęçJ0ŚŃŃ/Žű›™uřńóŢż6sH ÝőyIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_knob-members.html0000644000175000017500000007127112052741140021023 0ustar gudjongudjon Qwt User's Guide: Member List
QwtKnob Member List

This is the complete list of members for QwtKnob, including all inherited members.

abstractScaleDraw() const QwtAbstractScaleprotected
abstractScaleDraw()QwtAbstractScaleprotected
autoScale() const QwtAbstractScale
borderWidth() const QwtKnob
Dot enum value (defined in QwtKnob)QwtKnob
draw(QPainter *p, const QRect &ur)QwtKnobprotected
drawKnob(QPainter *p, const QRect &r)QwtKnobprotected
drawMarker(QPainter *p, double arc, const QColor &c)QwtKnobprotected
exactPrevValue() const QwtDoubleRangeprotected
exactValue() const QwtDoubleRangeprotected
fitValue(double val)QwtAbstractSlidervirtualslot
incPages(int)QwtDoubleRangevirtual
incValue(int steps)QwtAbstractSlidervirtualslot
isReadOnly() const QwtAbstractSlider
isValid() const QwtAbstractSliderinline
keyPressEvent(QKeyEvent *e)QwtAbstractSliderprotectedvirtual
knobWidth() const QwtKnob
Line enum value (defined in QwtKnob)QwtKnob
mass() const QwtAbstractSlidervirtual
maxValue() const QwtDoubleRange
minimumSizeHint() const QwtKnobvirtual
minValue() const QwtDoubleRange
mouseMoveEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseOffset() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
mousePressEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
mouseReleaseEvent(QMouseEvent *e)QwtAbstractSliderprotectedvirtual
orientation() const QwtAbstractSlider
pageSize() const QwtDoubleRange
paintEvent(QPaintEvent *e)QwtKnobprotectedvirtual
periodic() const QwtDoubleRange
prevValue() const QwtDoubleRangeprotected
QwtAbstractScale()QwtAbstractScale
QwtAbstractSlider(Qt::Orientation, QWidget *parent=NULL)QwtAbstractSliderexplicit
QwtDoubleRange()QwtDoubleRange
QwtKnob(QWidget *parent=NULL)QwtKnobexplicit
rescale(double vmin, double vmax, double step=0.0)QwtAbstractScaleprotected
resizeEvent(QResizeEvent *e)QwtKnobprotectedvirtual
scaleDraw() const QwtKnob
scaleDraw()QwtKnob
scaleEngine() const QwtAbstractScale
scaleEngine()QwtAbstractScale
scaleMap() const QwtAbstractScale
scaleMaxMajor() const QwtAbstractScale
scaleMaxMinor() const QwtAbstractScale
ScrDirect enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrMouse enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrNone enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrollMode enum nameQwtAbstractSlider
scrollMode() const (defined in QwtAbstractSlider)QwtAbstractSliderprotected
ScrPage enum value (defined in QwtAbstractSlider)QwtAbstractSlider
ScrTimer enum value (defined in QwtAbstractSlider)QwtAbstractSlider
setAbstractScaleDraw(QwtAbstractScaleDraw *)QwtAbstractScaleprotected
setAutoScale()QwtAbstractScale
setBorderWidth(int bw)QwtKnob
setKnobWidth(int w)QwtKnob
setMass(double val)QwtAbstractSlidervirtual
setMouseOffset(double) (defined in QwtAbstractSlider)QwtAbstractSliderprotected
setOrientation(Qt::Orientation o)QwtAbstractSlidervirtual
setPeriodic(bool tf)QwtDoubleRange
setPosition(const QPoint &)QwtAbstractSliderprotectedvirtual
setRange(double vmin, double vmax, double vstep=0.0, int pagesize=1)QwtDoubleRange
setReadOnly(bool)QwtAbstractSlidervirtualslot
setScale(double vmin, double vmax, double step=0.0)QwtAbstractScale
setScale(const QwtDoubleInterval &, double step=0.0)QwtAbstractScale
setScale(const QwtScaleDiv &s)QwtAbstractScale
setScaleDraw(QwtRoundScaleDraw *)QwtKnob
setScaleEngine(QwtScaleEngine *)QwtAbstractScale
setScaleMaxMajor(int ticks)QwtAbstractScale
setScaleMaxMinor(int ticks)QwtAbstractScale
setStep(double)QwtDoubleRange
setSymbol(Symbol)QwtKnob
setTotalAngle(double angle)QwtKnob
setTracking(bool enable)QwtAbstractSlider
setUpdateTime(int t)QwtAbstractSlider
setValid(bool valid)QwtAbstractSliderinline
setValue(double val)QwtAbstractSlidervirtualslot
sizeHint() const QwtKnobvirtual
sliderMoved(double value)QwtAbstractSlidersignal
sliderPressed()QwtAbstractSlidersignal
sliderReleased()QwtAbstractSlidersignal
step() const QwtDoubleRange
stepChange()QwtDoubleRangeprotectedvirtual
stopMoving()QwtAbstractSlider
symbol() const QwtKnob
Symbol enum nameQwtKnob
timerEvent(QTimerEvent *e)QwtAbstractSliderprotectedvirtual
totalAngle() const QwtKnob
value() const QwtDoubleRange
valueChanged(double value)QwtAbstractSlidersignal
wheelEvent(QWheelEvent *e)QwtAbstractSliderprotectedvirtual
~QwtAbstractScale()QwtAbstractScalevirtual
~QwtAbstractSlider()QwtAbstractSlidervirtual
~QwtDoubleRange()QwtDoubleRangevirtual
~QwtKnob()QwtKnobvirtual
qwt5-5.2.3/doc/html/class_qwt_knob.html0000644000175000017500000014562612052741164017407 0ustar gudjongudjon Qwt User's Guide: QwtKnob Class Reference

#include <qwt_knob.h>

Inheritance diagram for QwtKnob:

List of all members.

Public Types

enum  Symbol {
  Line,
  Dot
}
- Public Types inherited from QwtAbstractSlider
enum  ScrollMode {
  ScrNone,
  ScrMouse,
  ScrTimer,
  ScrDirect,
  ScrPage
}

Public Member Functions

 QwtKnob (QWidget *parent=NULL)
virtual ~QwtKnob ()
int borderWidth () const
int knobWidth () const
virtual QSize minimumSizeHint () const
const QwtRoundScaleDrawscaleDraw () const
QwtRoundScaleDrawscaleDraw ()
void setBorderWidth (int bw)
void setKnobWidth (int w)
void setScaleDraw (QwtRoundScaleDraw *)
void setSymbol (Symbol)
void setTotalAngle (double angle)
virtual QSize sizeHint () const
Symbol symbol () const
double totalAngle () const
- Public Member Functions inherited from QwtAbstractSlider
 QwtAbstractSlider (Qt::Orientation, QWidget *parent=NULL)
virtual ~QwtAbstractSlider ()
bool isReadOnly () const
bool isValid () const
virtual double mass () const
Qt::Orientation orientation () const
virtual void setMass (double val)
virtual void setOrientation (Qt::Orientation o)
void setTracking (bool enable)
void setUpdateTime (int t)
void setValid (bool valid)
void stopMoving ()
- Public Member Functions inherited from QwtDoubleRange
 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void incPages (int)
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
double step () const
double value () const
- Public Member Functions inherited from QwtAbstractScale
 QwtAbstractScale ()
virtual ~QwtAbstractScale ()
bool autoScale () const
const QwtScaleEnginescaleEngine () const
QwtScaleEnginescaleEngine ()
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
void setAutoScale ()
void setScale (double vmin, double vmax, double step=0.0)
void setScale (const QwtDoubleInterval &, double step=0.0)
void setScale (const QwtScaleDiv &s)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)

Protected Member Functions

void draw (QPainter *p, const QRect &ur)
void drawKnob (QPainter *p, const QRect &r)
void drawMarker (QPainter *p, double arc, const QColor &c)
virtual void paintEvent (QPaintEvent *e)
virtual void resizeEvent (QResizeEvent *e)
- Protected Member Functions inherited from QwtAbstractSlider
virtual void keyPressEvent (QKeyEvent *e)
virtual void mouseMoveEvent (QMouseEvent *e)
double mouseOffset () const
virtual void mousePressEvent (QMouseEvent *e)
virtual void mouseReleaseEvent (QMouseEvent *e)
int scrollMode () const
void setMouseOffset (double)
virtual void setPosition (const QPoint &)
virtual void timerEvent (QTimerEvent *e)
virtual void wheelEvent (QWheelEvent *e)
- Protected Member Functions inherited from QwtDoubleRange
double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void stepChange ()
- Protected Member Functions inherited from QwtAbstractScale
const QwtAbstractScaleDrawabstractScaleDraw () const
QwtAbstractScaleDrawabstractScaleDraw ()
void rescale (double vmin, double vmax, double step=0.0)
void setAbstractScaleDraw (QwtAbstractScaleDraw *)

Additional Inherited Members

- Public Slots inherited from QwtAbstractSlider
virtual void fitValue (double val)
virtual void incValue (int steps)
virtual void setReadOnly (bool)
virtual void setValue (double val)
- Signals inherited from QwtAbstractSlider
void sliderMoved (double value)
void sliderPressed ()
void sliderReleased ()
void valueChanged (double value)

Detailed Description

The Knob Widget.

The QwtKnob widget imitates look and behaviour of a volume knob on a radio. It contains a scale around the knob which is set up automatically or can be configured manually (see QwtAbstractScale). Automatic scrolling is enabled when the user presses a mouse button on the scale. For a description of signals, slots and other members, see QwtAbstractSlider.

knob.png
See also:
QwtAbstractSlider and QwtAbstractScale for the descriptions of the inherited members.

Member Enumeration Documentation

Symbol

See also:
QwtKnob::QwtKnob()

Constructor & Destructor Documentation

QwtKnob::QwtKnob ( QWidget *  parent = NULL)
explicit

Constructor

Parameters:
parentParent widget

Member Function Documentation

void QwtKnob::draw ( QPainter *  painter,
const QRect &  rect 
)
protected

Repaint the knob

Parameters:
painterPainter
rectUpdate rectangle
void QwtKnob::drawKnob ( QPainter *  painter,
const QRect &  r 
)
protected

Draw the knob.

Parameters:
painterpainter
rBounding rectangle of the knob (without scale)
void QwtKnob::drawMarker ( QPainter *  p,
double  arc,
const QColor &  c 
)
protected

Draw the marker at the knob's front.

Parameters:
pPainter
arcAngle of the marker
cMarker color
QSize QwtKnob::minimumSizeHint ( ) const
virtual

Return a minimum size hint.

Warning:
The return value of QwtKnob::minimumSizeHint() depends on the font and the scale.
void QwtKnob::paintEvent ( QPaintEvent *  e)
protectedvirtual

Repaint the knob

Parameters:
ePaint event
void QwtKnob::resizeEvent ( QResizeEvent *  e)
protectedvirtual

Qt Resize Event

const QwtRoundScaleDraw * QwtKnob::scaleDraw ( ) const
Returns:
the scale draw of the knob
See also:
setScaleDraw()
QwtRoundScaleDraw * QwtKnob::scaleDraw ( )
Returns:
the scale draw of the knob
See also:
setScaleDraw()
void QwtKnob::setBorderWidth ( int  bw)

Set the knob's border width.

Parameters:
bwnew border width
void QwtKnob::setKnobWidth ( int  w)

Change the knob's width.

The specified width must be >= 5, or it will be clipped.

Parameters:
wNew width
void QwtKnob::setScaleDraw ( QwtRoundScaleDraw scaleDraw)

Change the scale draw of the knob

For changing the labels of the scales, it is necessary to derive from QwtRoundScaleDraw and overload QwtRoundScaleDraw::label().

See also:
scaleDraw()
void QwtKnob::setSymbol ( QwtKnob::Symbol  s)

Set the symbol of the knob.

See also:
symbol()
void QwtKnob::setTotalAngle ( double  angle)

Set the total angle by which the knob can be turned.

Parameters:
angleAngle in degrees.

The default angle is 270 degrees. It is possible to specify an angle of more than 360 degrees so that the knob can be turned several times around its axis.

QSize QwtKnob::sizeHint ( ) const
virtual
QwtKnob::Symbol QwtKnob::symbol ( ) const
Returns:
symbol of the knob
See also:
setSymbol()
qwt5-5.2.3/doc/html/class_qwt_linear_scale_engine__inherit__graph.map0000644000175000017500000000024312052741155025417 0ustar gudjongudjon qwt5-5.2.3/doc/html/ftv2mlastnode.png0000644000175000017500000000036612052741134016772 0ustar gudjongudjon‰PNG  IHDRÉŞ|˝IDATxíÝ!NAĹń¤‡ŕ\ ÷ŕ Um@`Ô5iŇ`ëh ‚ĹW7] b§ÝŠ&ďź—oföÍdľYÔ4 üšcř ‡€´‹Ĺňů3v=Ľ]ʆ§µ\B… Iż‹=B·™Bˇ®;¸k´µ W°ÍN@vyŹÍŃÖ4ăß÷ť]ČâYěă§|M}]ÔÚx6a }ôdׇŘYüú¨>¤||5?Ó>|žB"ˇî'ˇIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_35.md50000644000175000017500000000004012052741151017221 0ustar gudjongudjon3ecc934855086306431fd9496a22d8f2qwt5-5.2.3/doc/html/inherit_graph_9.map0000644000175000017500000000274012052741162017245 0ustar gudjongudjon qwt5-5.2.3/doc/html/qwt__plot__layout_8h_source.html0000644000175000017500000003422112052741135022103 0ustar gudjongudjon Qwt User's Guide: qwt_plot_layout.h Source File
Qwt User's Guide  5.2.3
qwt_plot_layout.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_LAYOUT_H
11 #define QWT_PLOT_LAYOUT_H
12 
13 #include "qwt_global.h"
14 #include "qwt_plot.h"
15 
24 class QWT_EXPORT QwtPlotLayout
25 {
26 public:
45  enum Options
46  {
47  AlignScales = 1,
48  IgnoreScrollbars = 2,
49  IgnoreFrames = 4,
50  IgnoreMargin = 8,
51  IgnoreLegend = 16
52  };
53 
54  explicit QwtPlotLayout();
55  virtual ~QwtPlotLayout();
56 
57  void setMargin(int);
58  int margin() const;
59 
60  void setCanvasMargin(int margin, int axis = -1);
61  int canvasMargin(int axis) const;
62 
63  void setAlignCanvasToScales(bool);
64  bool alignCanvasToScales() const;
65 
66  void setSpacing(int);
67  int spacing() const;
68 
69  void setLegendPosition(QwtPlot::LegendPosition pos, double ratio);
70  void setLegendPosition(QwtPlot::LegendPosition pos);
71  QwtPlot::LegendPosition legendPosition() const;
72 
73  void setLegendRatio(double ratio);
74  double legendRatio() const;
75 
76  virtual QSize minimumSizeHint(const QwtPlot *) const;
77 
78  virtual void activate(const QwtPlot *,
79  const QRect &rect, int options = 0);
80 
81  virtual void invalidate();
82 
83  const QRect &titleRect() const;
84  const QRect &legendRect() const;
85  const QRect &scaleRect(int axis) const;
86  const QRect &canvasRect() const;
87 
88  class LayoutData;
89 
90 protected:
91 
92  QRect layoutLegend(int options, const QRect &) const;
93  QRect alignLegend(const QRect &canvasRect,
94  const QRect &legendRect) const;
95 
96  void expandLineBreaks(int options, const QRect &rect,
97  int &dimTitle, int dimAxes[QwtPlot::axisCnt]) const;
98 
99  void alignScales(int options, QRect &canvasRect,
100  QRect scaleRect[QwtPlot::axisCnt]) const;
101 
102 private:
103  class PrivateData;
104 
105  PrivateData *d_data;
106 };
107 
108 #endif
qwt5-5.2.3/doc/html/inherit_graph_17.png0000644000175000017500000000446112052741162017335 0ustar gudjongudjon‰PNG  IHDR%ăę¬bKGD˙˙˙ ˝§“ćIDATxśíśkLSŮÇ÷©…6jKŻĽŠ€­DĺadŚABu°¨ŐXB0<2B¨â0Ź* ľůpŁA…! óŇ(˘&Žw - XŁÁK őú(bIĹzA>ÎýpfέĄBçP)4ű—~8]]gíuöźuöŮ»» (ŠB’˝€@0°~ âŔú@ë!Ůě}{{űŮłgí’Ę‚ÇăĺććÚ;‹Ď¸páBccŁ˝łpp¦ęŽ­żĹĹŵ··s8śąMl!Ńßß˙čŃŁů¶n‰ HXXŻŻŻ˝qX,ęn>ţ8N]]Ý\eµđ¨««‹ŹŹ·w …qqqöÎÂa±¨;ś˙@ ÄőÖBX?q`ý@ Ä!^? …"))‰Éd:;;łŮlˇP8<<<ý)Ďź?§R©Ř‚ ‘‘‘¦ź˘(Ęb±0‡Ů·őéÓ§đđp2™Ś ›››M‚[Cw÷»‹˙ŐÓó~ÎZ´†Ů«†ăććóîÝ;Sk"8’îëG.—oܸ‘N§·´´h4šúúú/^p8śĹŔ!“ɉDĄRá±Xlýé3011číí•JĄ*•J&“•––Ú*ţ—čí*.~đí·˙ŕń /]zź˙Ű×nŃzfŻ…BA˙¤łł“JĄ¦¤¤üĄMwôsbcccccљضm[FF†©Ĺh4†‡‡=ztűöí………(Š ňóóQU*•¦Ť¶¶¶R(”}űöá’“““““q…d2Yhh(•J]±bEUUfÔjµ`ٲe,K$aÎrąśĹb•——»şşzzzVWWcF …˘ŃhLŰĹŹŽŽ¦¦¦zxx,_ľ<;;[§ÓaA®^˝ştéRą\>͵×ÖÖNí·žž÷/Ţ߼ůĽ—WÖŠŮ^^YŘëÇ+gěL›¨­­ťŢÇ&Ş™ž.•JÝÜÜĐ?{3j4šÄÄDWWWźăÇŹc”ŁęNdüŃjµ---™™™¦FA˛˛˛îŢ˝Ëçó>|uťN‹Ĺ±XŚ÷26ž ‚ŞŞ*ěôńńń†††„„<ŕéÓ§÷ěŮŁŃhÎś9“““322Ôjuwwwcccqq1î¬R©:;; Ezzú±cÇp;ÁŔ•Ëĺ¸=33óăÇŹ]]]‰D"‘`÷'ĄRůěŮł—/_XŮ*ŐýUÂă]Ü´éÜŐ«ŤŘÓšN§·ľ3ç [©†ŁT*Ż\ą˛aĂł†:¤Őj»»»›››ďÝ»'‰O÷˙cVOÖŚ?Ż^˝BD§Ó™Ů;::h4šL&ŁŃh:ťîČ‘#§Nť˘Óéz˝>---77×ô’(ŠÁ`đööîčč@Q´¦¦fÇŽ¦·±îîî±±1ťNWYY‰'''Éd˛BˇŔL;čýű÷(Švuu™6ań`rrŇÉÉixx‹ÓÜÜ‚Q©TÓ_;vBg‘¨í»ďŠ˝˝…ľľG˝˝…ř€cöš?ăŹMT3ýˡŃh‘‘‘ýýý¨IßNLLH$\ŁúúúuëÖ9ŚîSëĹÂţťqwwG¤ŻŻĎĎĎĎÔ>00Ŕd2×®]Ë`0ž¸¸¸ĆĆƆ††ĆÇÇ­2>ţ">~˙]z˝D"éő†/y~óŤď?l±>7ÂěÝűĎél¨Ú40™LđąF^^^SݨîS!R?€ŇŇŇ-[¶ (š––Ćb±´Z­żż?Á¨®®đůü¤¤$ʇ HDDÄáÇwîÜéää„ Á`ĐétxśŔŔ@6›˝˙ţ¨¨¨Ĺ‹ăö?G2Y­V †‘‘—řřřĚĚĚŠŠŠŃŃŃsçλr …# ŚFcJJŠźź_jjŞőt:eyůţOźôÉnßî¸wďßz˝AÁhćÉdşDF®'ä_EŻšŃÇVŞM…B‰ŽŽÎĘĘŞ¨¨ÉËËKHHpݧBpý:((čńăÇjµšË庸¸D˘ôôtlŔăń°ŐwŔÖ­[GGGů|>ŔŰŰ{ŐŞU®®®jµ%šššĚqww÷ĽĽ<.—şwďŢŐ«WÇÄÄĘĘĘh4Úš5kvďŢ}ŕŔ'''bů_»vMŻ×yxxś?ž@ …ĽcÇÚ_~IěěüűĺËßsąţ‹!$B"żź}Ul¨Ú4\ż~}É’%Ř ĆçósrrL÷Ď0›Yą~m‘ńńqlRřő‰DŘqCCC``ŕWmÎ"ç‘ýýę’’F.7ßË+‹ÍÎöňÎźő/1ŞÍžy«»-÷ďP©ÔőëżîłĘíŰ·Ož<©Őj߼ySPP€=¸Ď||ţöÓOŰ[Zr>Ě=th+›íĘăŮ;©ŐfĎĽŐ}í+--ňńń f±X'Nś°wF–ń÷gććînk;»ŃŢą8óVw‚ëö‚ÉdŢąsÇŢY@ćšy«ű y¬„8°~ âŔú@caý@ˇP”——Ď}* …§OźÚ;Ë455Ůđ‡43,ënö}PQQŃś'¶đŕp8ső­ťµ„……Ů»Wź©ş›˙˙Qb=pţÖBX?q`ý@ Äů7`]”o8NIEND®B`‚qwt5-5.2.3/doc/html/qwt__plot__dict_8h_source.html0000644000175000017500000002246312052741135021516 0ustar gudjongudjon Qwt User's Guide: qwt_plot_dict.h Source File
Qwt User's Guide  5.2.3
qwt_plot_dict.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 // vim: expandtab
11 
13 #ifndef QWT_PLOT_DICT
14 #define QWT_PLOT_DICT
15 
16 #include "qwt_global.h"
17 #include "qwt_plot_item.h"
18 
19 #if QT_VERSION < 0x040000
20 #include <qvaluelist.h>
21 typedef QValueListConstIterator<QwtPlotItem *> QwtPlotItemIterator;
24 typedef QValueList<QwtPlotItem *> QwtPlotItemList;
25 #else
26 #include <qlist.h>
27 typedef QList<QwtPlotItem *>::ConstIterator QwtPlotItemIterator;
30 typedef QList<QwtPlotItem *> QwtPlotItemList;
31 #endif
32 
42 class QWT_EXPORT QwtPlotDict
43 {
44 public:
45  explicit QwtPlotDict();
46  ~QwtPlotDict();
47 
48  void setAutoDelete(bool);
49  bool autoDelete() const;
50 
51  const QwtPlotItemList& itemList() const;
52 
53  void detachItems(int rtti = QwtPlotItem::Rtti_PlotItem,
54  bool autoDelete = true);
55 
56 private:
57  friend class QwtPlotItem;
58 
59  void attachItem(QwtPlotItem *, bool);
60 
61  class PrivateData;
62  PrivateData *d_data;
63 };
64 
65 #endif
qwt5-5.2.3/doc/html/class_qwt_picker_click_rect_machine.html0000644000175000017500000002035012052741164023563 0ustar gudjongudjon Qwt User's Guide: QwtPickerClickRectMachine Class Reference
QwtPickerClickRectMachine Class Reference

#include <qwt_picker_machine.h>

Inheritance diagram for QwtPickerClickRectMachine:

List of all members.

Public Member Functions

virtual CommandList transition (const QwtEventPattern &, const QEvent *)
- Public Member Functions inherited from QwtPickerMachine
virtual ~QwtPickerMachine ()
void reset ()
void setState (int)
int state () const

Additional Inherited Members

- Public Types inherited from QwtPickerMachine
enum  Command {
  Begin,
  Append,
  Move,
  End
}
typedef QList< CommandCommandList
- Protected Member Functions inherited from QwtPickerMachine
 QwtPickerMachine ()

Detailed Description

A state machine for rectangle selections.

Pressing QwtEventPattern::MouseSelect1 starts the selection, releasing it selects the first point. Pressing it again selects the second point and terminates the selection. Pressing QwtEventPattern::KeySelect1 also starts the selection, a second press selects the first point. A third one selects the second point and terminates the selection.

See also:
QwtEventPattern::MousePatternCode, QwtEventPattern::KeyPatternCode
qwt5-5.2.3/doc/html/class_qwt_alpha_color_map-members.html0000644000175000017500000001543312052741137023216 0ustar gudjongudjon Qwt User's Guide: Member List
QwtAlphaColorMap Member List

This is the complete list of members for QwtAlphaColorMap, including all inherited members.

color() const QwtAlphaColorMap
QwtColorMap::color(const QwtDoubleInterval &, double value) const QwtColorMapinline
colorTable(const QwtDoubleInterval &) const QwtColorMapvirtual
copy() const QwtAlphaColorMapvirtual
format() const QwtColorMapinline
Format enum nameQwtColorMap
Indexed enum value (defined in QwtColorMap)QwtColorMap
operator=(const QwtAlphaColorMap &)QwtAlphaColorMap
QwtAlphaColorMap(const QColor &=QColor(Qt::gray))QwtAlphaColorMap
QwtAlphaColorMap(const QwtAlphaColorMap &)QwtAlphaColorMap
QwtColorMap(Format=QwtColorMap::RGB)QwtColorMap
rgb(const QwtDoubleInterval &, double value) const QwtAlphaColorMapvirtual
RGB enum value (defined in QwtColorMap)QwtColorMap
setColor(const QColor &)QwtAlphaColorMap
~QwtAlphaColorMap()QwtAlphaColorMapvirtual
~QwtColorMap()QwtColorMapvirtual
qwt5-5.2.3/doc/html/class_qwt_round_scale_draw__inherit__graph.png0000644000175000017500000001436712052741160025003 0ustar gudjongudjon‰PNG  IHDRŁ»†‹ą!bKGD˙˙˙ ˝§“¬IDATxśíťyXSWŢřĎÍ 4D ˛ą  V­uqś@ËČX@GűÚ°Őúŕ řĐÇĄ.ť.S ®ŐVž¶ŔôÜ©ŠŠ˘cY*» ©$BIŘ’óűăţšIC«ˇoĎů<ţ‘śsĎ÷~ď÷s—Ü{ń^B0@™ě0f›Fl°iT ééîŽîě윬l0ĹĘ•+“’’ô[ýßŢYYY\.wÆ fO 3‘477˙đĂgU´ÁÓeee™+%Ě Üb ńq°iTŔ¦Q›FlĆhş±±1,,ĚÉɉÁ`Ěž={ÇŽ2™Ěô@`aaˇßMDNNމiFjTčojjâńxÓ§O·´´twwß˝{·Bˇs4Ł˝Ä/0™Looď‚‚‚1g>ĆbšĎç/Y˛„ÍfJĄŇśśśúúúeË– +[źľľľ¬¬¬€€€ŚŚŚ1ä0!@ËĘʤRivvöýű÷ccc'v.L&B!lmmŤŠŠZ»v-źĎźŘYڍGff¦A‹Qüýýcccő[´Z­ŻŻoBBB@@ŔáÇ!„Ďž=|úé§B‘H¤?G±X !ĚČČxőŐWkkkétz{{;‡Ďç3™ĚŁGŹ:88ŘŰŰoßľ]©TBł˛˛ćÍ›gaa1ţ|ýÓý˘˘˘Yłf?~śĹbńůüšš —ôôt2fWWWdd$‡ĂqttÜ»wŻX,Ö Ż¨¨ BˇP褪ŞjăĆŤF’ŤgAćLööôôlÝşŐÁÁaÚ´i‰‰‰jµZż—$66–Çă‘M'?T1 ‚hii1!ȨÇQ›–Ëĺ ĺÉ“'í999îîîźţyPP„đÜąsl6{őęŐäç… ,łźźß_|!ôöö>zô(ŮH®ěkÖ¬ikk«®®ž;wîär9ťN/((P*•§Oźž3gŽ.źĎg0›7o‰DÂĐĐĐ*ŠÔÔT2fDDDHHH{{;źĎź9sfnn®n¸FŁY°`APPP^^žD"1X˘ÁŤÎBą˘˘˘x<žX,nhhđńń9räČ`Óׯ_÷ôôIň&ŠiÚŃÄnhh B­V´———[[[×ÔÔX[[«Őę={ö°ŮlŤFłm۶¤¤$ýeţůçźY,–\.‡ž8qbńâĹd;işˇˇüzöěYŹÎÎN&“™‘‘Ń××§Őj•JĄľi€n—đřńăŢŢ^µZť––FN R©h4šn˝Ľ˙~YY™~&rąüäÉ“ÁÁÁÇÓÓsďŢ˝˝˝˝C 4: ]4•JE§Óe29äöíŰŢŢŢMWTTŘŘŘŚ$yĹ4íčĹnÓW®\™;w.„pćĚ™>\¸pamm­››[iiéţđ‡ÂÂBýe>pŕŤFsttttt´łłTWW“ OˇP´Z-9ŮŁGŹlmm!„7oŢ|ăŤ7Řlv@@@II‰Á6­ËáŰoż]Ľx±——Whh(9ASS“~@’ÁŐ‡jµÚ’’˙ĐĐСť….ZSS“Á‘ŃŢŢ~ŘmÚDdĹ4íhbLCýüüâăău_“““!„ďľűî®]»´ZíćÍ›“’’¦L™˘R©tˬŐj]]]SSSEż@Ž%WóĆĆF2rVVÖ«ŻľŞP(JJJ „JĄňăŹ?vuuŐ7­+ŠX,¦P(ĄĄĄÂęęj˛]©TR(ˇPHNsőęŐĽĽ<ݨ­[·úűűë/ZII ‡Ăj ŃYč˘)•J*•ŞŰ¦{zzž>}jô8>’äMÓ´  3][[ËápâââBˇŘż?ťN···'uąąą,‹Ü2222X,Öşuë „€FŁ©TŞ;wîXYYőôô覦¦:;;k4r›nooŻ©©yůĺ—Ź9ŇÓÓĂb±Š‹‹•JeJJЧ§§.”~±ÚŰŰ ‚(//—H$aaa4Ť,úúőë7lŘ ‹ëëë]]]Ďź?ŻţŕÁ*•zřđáććf…B!BBB"""Č€ť…~\.722R,·µµÇÇÇë÷vttś:uŠĹbŐŐŐ*ůˇŠi&ÓÂ'Ožđxtč~&‰$??ĹŠ,ËŇŇrŢĽyIIIýýýd´ÁŤÎB_T*ĺńx‡ĂáDGG÷őőéźPŃét//Ż[·n‘lîF“ަ™HÓQ(ĺĺĺc‹™XŚzś°«ˇ‹-š¨h _÷Fl°iTŔ¦Q›FlŚüđ™3gĚźfůńÇŤ´ęź\×ÖÖZ[[›=1łBĄZ[XĚťě,^8Ë–-3¸rň«˙Ă»w禥ĺĺýďŇĄn“ť‹YAë8­ŃhóňĘyyĆöożkĐ2}÷® «KČÉy¤VLv:f-ÓąąŹ¨T* ŻŻż°P0Ůé„L÷ő©®]«ÔhT*‘“Ö!Óµş=¶FŁýţűęŢŢţÉMÉś dúüů2‚řďWŤfŕĆŤÚÉKÇÜ bZ&ë»sG00 JIää”MZBfÓůůU-Z­öîÝ:©´wRň1?¨ÎÎ.ÓjŤ\#şrĄŇüÉL H~ţ\^\Ü8řj „đüůŇIIÉü aúňĺ *ŐČ’jµ°¬¬I$Ĺüż ¦sr~$OŁ!¸|‰¸‘»–ż?,.w‘ź5­R©f±şŢ9sě')/ł‚Ü˝¬K—*Ţ{/˝µőČd'bnŘ{c6ŤŘ4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€MŁ6Ť Ř4*`Ó¨€M#ĂPďQăóů666“ťÝÄCˇX1™.“ťĹ Á×××Ä‹ń†|ÎIUU•L&Űżż9sĹŚ™ÇŹggg›`'Úüĺ/™Čt0“>NŁ6Ť Ř4*`Ó¨€MŁÂ}şm۶ŔŔ@.—;x;V*•)))k×®]ż~ý—_~90𫇳ŮěŐ«W˙űß˙ÖĄš››$ GŞhţţţă15.Ó}}}ëׯ×o$býúő˙ůĎ–.]Z^^¨ŞŞ˛˛˛Ş¬¬TVVşąąĄ§§“ký”)SôÇöôô\ż~}ńâĹä×”””ŢŢŢôôô”””~řáüůóCe"“ÉĎž=»nÝşÓ§O“ŤÉÉÉ]]]éééÉÉÉwîÜ!íěěfĎžýÁÜżż»»ŕćć¶oß>˛÷ĉäŁGŹ^ż~˝¨¨đő×_/[¶ěňĺËaaaşŕ:Nś8Ńßßź––vüřńĘĘĘĽĽĽÁé-[¶¬®®Žü,‘Hľűî;—Á‘‡*š««ëÔ©S‡bŠq™–Édvggg©TęăăS]]=00PUUµnÝşęęj­V[YYątéRý‰ÉŤ›äÍ7ßüţűď·lŮB¶nßľÝĆĆfĆŚ7oŢ*“ţţţđđp+++__ß®®.€JĄşwďŢŽ;8ÎŚ3"##˙˙S('OžüÓźţ”źź˙Î;ďDDD|óÍ7ýýýŤFsóćÍ—}űö9::˘ŁŁą\.•JĄŃh˝˝żzo‡FŁąqăFllě”)S¦M›¶eË–‚‚‚ÁéŮÚÚJ$Ý-[¶ŘŮŮŤ<¢Ťqý"#o´··;;;ë·wtt›‹ĹŞ«««ŞŞúŕnÝşőÓO?UTTěرCb:ť®Ű%ö÷÷ź9sćđáĂGŽéěě899‘]ÎÎÎb±xČĹ ŃČÝńË‹’¤R)`úôéä×iÓ¦é&¶˛˛ …ÖŐŐť9sć˙řLJ~ŘŮŮ©Őjus\°`ůĎçôŃGA ^§;;;5Íš5k jb€T*ĺp8şTuÓ Ž<¢Ťq™¶˛˛Z´hQnnnLL Ů’ťťýúëŻçććľöÚkź˘˘˘ÎÎN—E‹Ý˝{·ŁŁcţüů­­­F2™Ě   íŰ·ȵţůóçäj$‰ČÝÉőĹúoÂ@V¶µµ•”-‰Čö”””–––””r”‡‡Ç–-[’’’¶¶¶dX˛îĹĹĹjµú•W^ůěłĎNź>=oŢĽźţą¸¸X.¶¶¶ ĺŇĄK/˝ô@©TĘĺrrˇĎÇ=<< R•ËĺF#U´ál Ăx‘ĹĹĹݸqăäÉ“ÍÍÍ*•Ş··7,,ě§ź~Ú´i™ôĹ‹,X@ĢE‹.\¸°xńbŤF„V«Őh42™Ěţţţ:ťîëë{ňäI™LÖŇŇ’––¶jŐ*kkkŤFSRR"—ˇąuCŁ­X±âرc‰äŮłg˙ú׿ČöŔŔŔĘĘĘĚĚL±X¬R©š››żűî»?˙ůĎ:ťľ|ůňÓ§OËĺň–––cÇŽiµZrŢR©ÝÝÝçÎťÓjµú;p:ťľbĹŠ/ľřB.—Ëd˛?üĐŕÇDWW×Ĺ‹É#…A†CEŞhŁ—ó+ĆkzÖ¬Y_~ůewww\\Üßţö·7n¬]»ÖŃŃ1''ŕĺĺĄV«.\řă˙¨P(ČăÍÔ©S§OźBţ&ŇÇÎÎŽ {÷îvîÜiiiďăăĂĺrmmmĂĂĂ<µjŐ*Óą%$$°X¬„„.—K6Îź?˙“O>yřđaxxxppđž={\\\vîÜIöîÜą“JĄňxĽřřřżţőŻË—/·±± Ź‹‹{ď˝÷–/_>cĆ ;ą aaaááá¶¶¶ŃŃŃ@ďÇÇß˙ţ÷k×®}ôŃG3fĚ0Ho¨ČCmś ův†¬¬,.—«űÉ:*T*•P(tww_nQPXXxđŕAďÚx!WC Öü[_÷Fl°iTŔ¦Q›Fl†ąň’hž<0ㄼÎo‚!MŻZµ*""ÂŕÖÍůüůKsçJ©ÔßŰ =É{€CÜL7múęÎÁ±c˙łaĂ’ÉÎŬ uś–ÉúîÝ«€ČË{4Ůą´L_şTՉņ7W~ß eúüůRňhEÄ•+HĽJ^B¦[[e?ţؤŐjZ­6;»t˛32+™ľx±śJĄ@´ZPYŮÜÜÜ9ŮI™„Lgg—ę˙‰.ŤFąx±|ó13¨®Ż.ôĎ(5š¬,„vਾt©‚N§ę·@ÚŃdĄdf0 !ĚĚ,Q« Ú :;p$LWUµ<{f䲰JĄÉÎ.Eä*!¦/\xD§żÂßÚ*{ôHhć|&$LççW 0´Á˙ nß~<Ů š$îp<..n$?77w>|řä­·ţ{{#2ňőiÓ~‡O^3 Óú\şTńŢ{é­­G&;sÄްitŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›Fl°iTŔ¦Q›F…±ĽC/;;{Řç†˙f©©éś9sf˛;^^^cyC=%WŻ^}ÉcF‹Ĺ­5ᨷ鞞 ÷ÂXŚ™!ßB9†ř8Ť Ř4*`Ó¨€MŁ6Ť /ĐtcccXX““Á={öŽ;d2™é!Ŕ‚ü@ü“Éôöö.((0Ćt@SSŹÇ›>}şĄĄĄ»»űîÝ» ŨaŘy •äoešĎç/Y˛„ÍfJĄŇśśśúúúeË– +[“É$O[[[Ł˘˘Ö®]ËçóJĄrŘáÂŔŔ@GGDz˛2©Tšťť}˙ţýŘŘŘq-Ő“ü-2ÚđĚĚĚ‘Śň÷÷ŹŤŤŐoŃjµľľľ ‡†>{ö đé§źBE˘_=Q˝¨¨HWD’ŘŘXŹ!äóůş®šš —ôôtýŢ––‚  ….BUUŐĆŤÉĎ]]]‘‘‘ÇŃŃqďŢ˝ĂFöôôlÝşŐÁÁaÚ´i‰‰‰jµZżwp’łfÍ:~ü8‹Ĺâóů#U‚ ZZZĆ_˙ÁĽÓrąśBˇź?sćĚÜÜ\ÓŃ „QQQ<O,744řřř9rÄt’ cóćÍ"‘ČhdEýŤňBL744ˇV« ÚËËË­­­kjj¬­­ŐjuLLĚž={Řl¶FŁŮ¶m[RR’ Ó666]Ź?îííU«ŐiiiĘĺň“'Os8OOĎ˝{÷öööBU*ŤFÓ­÷ďß/++3MĄRŃét™LFą}ű¶···é$íííCĺi˘㯿QĆr‡cXěíí ‚ …nnnúíĎž=srrš?ľŤŤMYYYQQŃŮłgĎž=[^^~÷îÝS§N™ŮÖÖćěělĐX\\üÎ;ď1sćĚÁCŘlvLLLLL „°¬¬ěý÷ßß´iS^^žH$Ňjµ®®®ädŻ˝öÚ°ŃD"‘Z­¶±ůďáíííM'É`0tÓ Ž<¶"ڋѮ#\§üüüâăău_“““!„ďľűî®]»´ZíćÍ›“’’¦L™˘R©LlÓ±±±áááú]b±Bˇ”––B««« nÝşŐßß_?BII ‡Ă*•J …" Éö«WŻćĺ噎¦T*©TŞn›îééyúôéH’*OEúćE™®­­ĺp8qqq@ˇPěßżźN§ŰŰŰ“‡ĚÜÜ\‹ !ĚČČ`±XëÖ­ Ť¦ŻBŘŃŃqęÔ)‹UWWőŠŘŢŢNDyyąD" ŁŃh2™L×űŕÁ*•zřđáććf…B!BBB"""Čëׯ߰aX,®ŻŻwuu=ţĽéhB.—)‹ŰÚÚ‚ăăăG’äPyš(„Ô0/Ę4„đÉ“'<ĎŃŃ‘Á`¸ąą%$$x{{ďßżBŘŐŐE§Ó“““!„ÍÍÍ€ÔÔTaww·‡‡‡µµőt{:ťîĺĺuëÖ-2¬~8ŔfłçĚ™sáÂOOĎ•+Wę÷ćççŻX±‚ĹbYZZΛ7/))©żżźě’H$ożý¶­­­łłóˇC‡FM*•ňx<‡Ăáp˘ŁŁűúúôO¨L$i4˛‰"LTý x¦ŁP(ĘËËÇ6C2ćú›őj¨……ŢE‹Ě9GŚ|ݰiTŔ¦Q›Fl°iTŔ¦QaÔw8X,€  fD FËXŢkyíÚµŢŢŢ1Ě 3!xxxĽňĘ+Ł…ÜL‘§Q›Fl°iTř/0W5ęIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_round_scale_draw-members.html0000644000175000017500000003414712052741142023410 0ustar gudjongudjon Qwt User's Guide: Member List
QwtRoundScaleDraw Member List

This is the complete list of members for QwtRoundScaleDraw, including all inherited members.

Backbone enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
center() const QwtRoundScaleDraw
draw(QPainter *, const QPalette &) const QwtAbstractScaleDrawvirtual
drawBackbone(QPainter *p) const QwtRoundScaleDrawprotectedvirtual
drawLabel(QPainter *p, double val) const QwtRoundScaleDrawprotectedvirtual
drawTick(QPainter *p, double val, int len) const QwtRoundScaleDrawprotectedvirtual
enableComponent(ScaleComponent, bool enable=true)QwtAbstractScaleDraw
extent(const QPen &, const QFont &) const QwtRoundScaleDrawvirtual
hasComponent(ScaleComponent) const QwtAbstractScaleDraw
invalidateCache()QwtAbstractScaleDrawprotected
label(double) const QwtAbstractScaleDrawvirtual
Labels enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
majTickLength() const QwtAbstractScaleDraw
map() const QwtAbstractScaleDraw
minimumExtent() const QwtAbstractScaleDraw
moveCenter(int x, int y)QwtRoundScaleDrawinline
moveCenter(const QPoint &)QwtRoundScaleDraw
operator=(const QwtRoundScaleDraw &other)QwtRoundScaleDraw
QwtAbstractScaleDraw::operator=(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
QwtAbstractScaleDraw()QwtAbstractScaleDraw
QwtAbstractScaleDraw(const QwtAbstractScaleDraw &)QwtAbstractScaleDraw
QwtRoundScaleDraw()QwtRoundScaleDraw
QwtRoundScaleDraw(const QwtRoundScaleDraw &)QwtRoundScaleDraw
radius() const QwtRoundScaleDraw
ScaleComponent enum nameQwtAbstractScaleDraw
scaleDiv() const QwtAbstractScaleDraw
scaleMap()QwtAbstractScaleDraw
setAngleRange(double angle1, double angle2)QwtRoundScaleDraw
setMinimumExtent(int)QwtAbstractScaleDraw
setRadius(int radius)QwtRoundScaleDraw
setScaleDiv(const QwtScaleDiv &s)QwtAbstractScaleDraw
setSpacing(int margin)QwtAbstractScaleDraw
setTickLength(QwtScaleDiv::TickType, int length)QwtAbstractScaleDraw
setTransformation(QwtScaleTransformation *)QwtAbstractScaleDraw
spacing() const QwtAbstractScaleDraw
tickLabel(const QFont &, double value) const QwtAbstractScaleDrawprotected
tickLength(QwtScaleDiv::TickType) const QwtAbstractScaleDraw
Ticks enum value (defined in QwtAbstractScaleDraw)QwtAbstractScaleDraw
~QwtAbstractScaleDraw()QwtAbstractScaleDrawvirtual
~QwtRoundScaleDraw()QwtRoundScaleDrawvirtual
qwt5-5.2.3/doc/html/inherit_graph_23.md50000644000175000017500000000004012052741151017216 0ustar gudjongudjon2d583d5c8e868df64992047ce8a1e556qwt5-5.2.3/doc/html/class_qwt_picker_click_point_machine__inherit__graph.png0000644000175000017500000001040612052741155027001 0ustar gudjongudjon‰PNG  IHDRĹp!]#abKGD˙˙˙ ˝§“»IDATxśíťkPWÇĎćQ@@ Ţ@¤–ŠEQiEŔ[Ćâ¨%bŃjA.ĄôŞe”z©v2(aŔ:u¨Ü¨ŻbUnµjQHJ((b$@€$›ěűaß7ł’.ŰóűŔdĎyö<˙söżgŮ…E0 IP&Zäô„L ź dý!Úx'čéé ‰D㝢“řřřĄK—Žk dĽż»rĺJPPP``ŕ¸fčä·ß~óđđ¸rĺʸf÷ů gĽ»ŃÉ–-[^C¸~‚ ô„L ź dý!č'™č‘ź‚­­­ ˘ŁŁ»şş´ď" ŤŚŚđ ‹€€€ÖÖVbŚöFžnÆ ÄB ĂěííGŰÚ°ƦJĐ?ŐÔÔĽ÷Ţ{¦¦¦EEE/_ľĚÎÎţóĎ?=< Óé‚( ą\>’†††,+&&¦łłł®®.<<\ˇP(ЎˇáâĹ‹CBBÂÂÂđČ€€€čččÎÎÎŽŽŽm۶%$$ ŰćüůóvîÜÉd2ŤŤŤUĺř‘¦Ńh"‘čäÉ“ …B,k0ZF.ďőŁ/~rvv~řđˇH$ňňň233KKKŰżż˝˝ýéÓ§«WŻ–JĄžžžooďŢŢ^übgkk;gÎssó>_ućĚŤ6oŢ¢¨r˘µč;ĐO:ÉĐśś €XÜWRR;Ńrôč' űú¤*•’“óh˘ĺč;ĐO:ČÎ~DĄR(ŞüĎýý˛‰V¤×@?iC"‘ŢĽY…˘˙{ęM*EoÝúcb%é9ĐOÚ š @ˇ ŮŮĺ¨G˙~ŇFvv9ńńmUŢ˝+ěîîź@Izô“FD"IIÉź Ĺ ď0 »~]0Q’ôč'Ťđ‡b–™ /y~ŇHVÖďCo(•ŘýűOţţ[}¦ÓR*čtúÝ˙sîÜ9“'Oěěě G«G'őőő±±±/^Ľr功źßjkkUcË«©Ă2ňT*•Ďçwuu©Jř|ţČÇV;ă4ÂDFí§S§NůřřDFFÚŮŮÍ›7ďرc ăüůó111€/^x{{§§§D"‘··7›Í–ËĺŢŢŢbń 7Ç™››oŢĽY(‚ÁgO__߉'L&‹Ĺ:wîq ĂNś8+“ÉgÓ¦M))) …˘ąąyëÖ­999k×®mnnNJJÚľ};“Éd0S¦LYż~=‹Ĺ§(ś±ĺŐÔ @ooďŃŁG™Lć–-[Ξ=‹˘(qÚşukAAžâöíŰb±88 ĹĂĂăÖ­[ŞĆ ˝ĽĽT›ýő׾}ű|}}‚‚TćĐ$;//oăĆŤ›6múĺ—_Ŕŕ‰PM?t0uŮAťŃů©ŻŻŻ˛˛2 €X H@@Ŕ˝{÷–,YRQQĆĆĆ|>ŔçógÍšĹăńđÚĚĚŚ¸ď‹/˛˛˛ćÎť«–(11±»»›Çă%$$ÜĽył´´/Ç0ŚĂá´··÷Ýwx¤T*MMM=}ú4źĎĎÍÍĹ›­ŻŻżpá‚……źĎ÷ńń!6ľgĎžíŰ·ŰÁ‘çŐŇ ‡#‘Hx<‡Ăą˙~VV1¸«««ˇˇ!==ťĹb%''›™™© ŽźźßŤ7đ`©TZVVFÔ˙ÓO?yxxäçç'''k‘Ť˘hccăĺË—7oެŠÔ$CŐÎĐÁŁ{_>Oź>]­ÜĆĆćĺË—îîî<OˇP‹•““ŁT*ů|ţ’%KÁřą666vuuýüóω(ŠŢşu+--ŤÁ`0ŚŞ!—Ë˝qăFff¦ˇˇ!YXXxőęŐÉ“'›™™íŮłçĚ™3îîî(ŠîŮł‡Á`´µµ¦M›6’ŢŤ<Ż–^Čĺň˘˘˘‹/âŤěÜą355uٲeŞ,R©”Íf{zzž?~¨ 77·îîîúúú9sćüúëŻŽŽŽćććŞÚĐĐPkkk*•JŁŃ$‰Ů†íÜąSS˘ˇ2†LµąC'ŁóÁtttŘŘŘË;;;§M›ćŕŕ0eĘ”ÚÚZ@đí·ßŢľ}»®®®˛˛2::šL§Óµ_ĹE"‘R©´¶¶Ć7]\\ÍÍÍrąĽµµuöěŮ™™™»wďĆ#Q]ż~˝šBŤ†ŔĎřçĎźĎĆĆĆęęę… Ž9Ż–^D"€Ş›çĎźh4®Šřćt"‚řřřܸq#<<Ľ°°Pm]SSsäČAT=Ň$[{˘ˇµšsTŚÎOř‰““†—dff®X±"''gůňĺww÷ŇŇR‘HdggçęęZ\\ÜŮŮą`Á‚ÖÖÖ‘g™:u* ŕÁrąÜÎÎŽFŁ>|¸ˇˇ!""Â×××ÎÎnęÔ© %//oňäÉ€±X,•JUcdllěââňóĎ?‡„„¨Úż|ůr˙P?Ť<Żńř\ŘŢŢŽźrmmmjłŁ&ńőőŤŠŠ Ş®®>tčĐß˙Ť—‹Ĺâ'N$'';::666>xđ@‹l퉆Ö;:ĄŞ1ęőxdddaa!—Ë}úô©L&“H$ÁÁÁuuuřŠÄÝÝýÚµk...‚¸şş^˝zuѢE4 AĄR‰˘čHRĐéô•+W&''‹Ĺâ–––S§N)•J‚ t:ÝŃŃŃßß?!!ŹôňňJJJ‹Ĺ]]]ńńńj‹Ŕ'ź|’‘‘ÁăńšššÚŰŰ322îÜąô*yµ‹÷ôôärą]]]---©©©j«·ˇ {{{kkëăÇŹ/_ľ\u…ŕ/ż¤R©===—/_V*•‰D“ěŃ2’ÁÔɨýdooź’’ŇÓÓąnÝşÂÂÂM›6YYYeggÜÜÜär9~ężűî»ýýýřâÉÂÂÂÖÖ–ÉdöôôŚ$KLL •JýđĂŁ˘˘üüüV®\I¬ mllÄ+ůôÓO Epp0›Íž:ujhh¨ZSNNN'Ož¬ŞŞÚ·o_hhhYYٱcÇ,XđŠyµ‹ź4iRpppTT”»»ű°Ţ%2ěŕřúú>~üŘ××—É`0ŘlvddäŢ˝{W®\9sć̸¸8ť˛GŽÎÁÔÉ ÷˝"7†çUd2Yssóś9sF»#äMÇŰŰ;##cË–-ř&9÷[  ™ Ţż ô„L ź dý!č'™@?AČDý~KZZZAAÁ„Hüä§ăÇŹ?zôh˘¤@ŢDŢ~űmâ ĄAߏC Ż\?AČú B&ĐO2~‚ÉL®ĂNß]klIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_picker.html0000644000175000017500000031502212052741164017720 0ustar gudjongudjon Qwt User's Guide: QwtPicker Class Reference

#include <qwt_picker.h>

Inheritance diagram for QwtPicker:

List of all members.

Public Types

enum  DisplayMode {
  AlwaysOff,
  AlwaysOn,
  ActiveOnly
}
enum  RectSelectionType {
  CornerToCorner = 64,
  CenterToCorner = 128,
  CenterToRadius = 256
}
enum  ResizeMode {
  Stretch,
  KeepSize
}
enum  RubberBand {
  NoRubberBand = 0,
  HLineRubberBand,
  VLineRubberBand,
  CrossRubberBand,
  RectRubberBand,
  EllipseRubberBand,
  PolygonRubberBand,
  UserRubberBand = 100
}
enum  SelectionMode {
  ClickSelection = 1024,
  DragSelection = 2048
}
enum  SelectionType {
  NoSelection = 0,
  PointSelection = 1,
  RectSelection = 2,
  PolygonSelection = 4
}
- Public Types inherited from QwtEventPattern
enum  KeyPatternCode {
  KeySelect1,
  KeySelect2,
  KeyAbort,
  KeyLeft,
  KeyRight,
  KeyUp,
  KeyDown,
  KeyRedo,
  KeyUndo,
  KeyHome,
  KeyPatternCount
}
enum  MousePatternCode {
  MouseSelect1,
  MouseSelect2,
  MouseSelect3,
  MouseSelect4,
  MouseSelect5,
  MouseSelect6,
  MousePatternCount
}

Signals

void appended (const QPoint &pos)
void changed (const QwtPolygon &pa)
void moved (const QPoint &pos)
void selected (const QwtPolygon &pa)

Public Member Functions

 QwtPicker (QWidget *parent)
 QwtPicker (int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
virtual ~QwtPicker ()
virtual void drawRubberBand (QPainter *) const
virtual void drawTracker (QPainter *) const
virtual bool eventFilter (QObject *, QEvent *)
bool isActive () const
bool isEnabled () const
QWidget * parentWidget ()
const QWidget * parentWidget () const
virtual QRect pickRect () const
ResizeMode resizeMode () const
RubberBand rubberBand () const
QPen rubberBandPen () const
const QwtPolygon & selection () const
int selectionFlags () const
virtual void setEnabled (bool)
virtual void setResizeMode (ResizeMode)
virtual void setRubberBand (RubberBand)
virtual void setRubberBandPen (const QPen &)
virtual void setSelectionFlags (int)
virtual void setTrackerFont (const QFont &)
virtual void setTrackerMode (DisplayMode)
virtual void setTrackerPen (const QPen &)
QFont trackerFont () const
DisplayMode trackerMode () const
QPen trackerPen () const
QPoint trackerPosition () const
QRect trackerRect (const QFont &) const
virtual QwtText trackerText (const QPoint &pos) const
- Public Member Functions inherited from QwtEventPattern
 QwtEventPattern ()
virtual ~QwtEventPattern ()
void initKeyPattern ()
void initMousePattern (int numButtons)
bool keyMatch (uint pattern, const QKeyEvent *) const
const QwtArray< KeyPattern > & keyPattern () const
QwtArray< KeyPattern > & keyPattern ()
bool mouseMatch (uint pattern, const QMouseEvent *) const
const QwtArray< MousePattern > & mousePattern () const
QwtArray< MousePattern > & mousePattern ()
void setKeyPattern (uint pattern, int key, int state=Qt::NoButton)
void setKeyPattern (const QwtArray< KeyPattern > &)
void setMousePattern (uint pattern, int button, int state=Qt::NoButton)
void setMousePattern (const QwtArray< MousePattern > &)

Protected Member Functions

virtual bool accept (QwtPolygon &selection) const
virtual void append (const QPoint &)
virtual void begin ()
virtual bool end (bool ok=true)
virtual void move (const QPoint &)
virtual void reset ()
const QWidget * rubberBandWidget () const
virtual QwtPickerMachinestateMachine (int) const
virtual void stretchSelection (const QSize &oldSize, const QSize &newSize)
const QWidget * trackerWidget () const
virtual void transition (const QEvent *)
virtual void updateDisplay ()
virtual void widgetKeyPressEvent (QKeyEvent *)
virtual void widgetKeyReleaseEvent (QKeyEvent *)
virtual void widgetLeaveEvent (QEvent *)
virtual void widgetMouseDoubleClickEvent (QMouseEvent *)
virtual void widgetMouseMoveEvent (QMouseEvent *)
virtual void widgetMousePressEvent (QMouseEvent *)
virtual void widgetMouseReleaseEvent (QMouseEvent *)
virtual void widgetWheelEvent (QWheelEvent *)
- Protected Member Functions inherited from QwtEventPattern
virtual bool keyMatch (const KeyPattern &, const QKeyEvent *) const
virtual bool mouseMatch (const MousePattern &, const QMouseEvent *) const

Detailed Description

QwtPicker provides selections on a widget.

QwtPicker filters all mouse and keyboard events of a widget and translates them into an array of selected points. Depending on the QwtPicker::SelectionType the selection might be a single point, a rectangle or a polygon. The selection process is supported by optional rubberbands (rubberband selection) and position trackers.

QwtPicker is useful for widgets where the event handlers can't be overloaded, like for components of composite widgets. It offers alternative handlers for mouse and key events.

Example
#include <qwt_picker.h>

QwtPicker *picker = new QwtPicker(widget);
picker->setTrackerMode(QwtPicker::ActiveOnly);
connect(picker, SIGNAL(selected(const QwtPolygon &)), ...);

// emit the position of clicks on widget
picker->setSelectionFlags(QwtPicker::PointSelection | QwtPicker::ClickSelection);

    ...
    
// now select rectangles
picker->setSelectionFlags(QwtPicker::RectSelection | QwtPicker::DragSelection);
picker->setRubberBand(QwtPicker::RectRubberBand); 

The selection process uses the commands begin(), append(), move() and end(). append() adds a new point to the selection, move() changes the position of the latest point.

The commands are initiated from a small state machine (QwtPickerMachine) that translates mouse and key events. There are a couple of predefined state machines for point, rect and polygon selections. The selectionFlags() control which one should be used. It is possible to use other machines by overloading stateMachine().

The picker is active (isActive()), between begin() and end(). In active state the rubberband is displayed, and the tracker is visible in case of trackerMode is ActiveOnly or AlwaysOn.

The cursor can be moved using the arrow keys. All selections can be aborted using the abort key. (QwtEventPattern::KeyPatternCode)

Warning:
In case of QWidget::NoFocus the focus policy of the observed widget is set to QWidget::WheelFocus and mouse tracking will be manipulated for ClickSelection while the picker is active, or if trackerMode() is AlwayOn.

Member Enumeration Documentation

  • AlwaysOff
    Display never.
  • AlwaysOn
    Display always.
  • ActiveOnly
    Display only when the selection is active.
See also:
QwtPicker::setTrackerMode(), QwtPicker::trackerMode(), QwtPicker::isActive()

Selection subtype for RectSelection This enum type describes the type of rectangle selections. It can be or'd with QwtPicker::RectSelectionType and QwtPicker::SelectionMode and passed to QwtPicker::setSelectionFlags().

  • CornerToCorner
    The first and the second selected point are the corners of the rectangle.
  • CenterToCorner
    The first point is the center, the second a corner of the rectangle.
  • CenterToRadius
    The first point is the center of a quadrat, calculated by the maximum of the x- and y-distance.

The default value is CornerToCorner.

See also:
QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags()

Controls what to do with the selected points of an active selection when the observed widget is resized.

  • Stretch
    All points are scaled according to the new size,
  • KeepSize
    All points remain unchanged.

The default value is Stretch.

See also:
QwtPicker::setResizeMode(), QwtPicker::resize()

Rubberband style

  • NoRubberBand
    No rubberband.
  • HLineRubberBand & PointSelection
    A horizontal line.
  • VLineRubberBand & PointSelection
    A vertical line.
  • CrossRubberBand & PointSelection
    A horizontal and a vertical line.
  • RectRubberBand & RectSelection
    A rectangle.
  • EllipseRubberBand & RectSelection
    An ellipse.
  • PolygonRubberBand &PolygonSelection
    A polygon.
  • UserRubberBand
    Values >= UserRubberBand can be used to define additional rubber bands.

The default value is NoRubberBand.

See also:
QwtPicker::setRubberBand(), QwtPicker::rubberBand()

Values of this enum type or'd together with a SelectionType value identifies which state machine should be used for the selection.

The default value is ClickSelection.

See also:
stateMachine()

This enum type describes the type of a selection. It can be or'd with QwtPicker::RectSelectionType and QwtPicker::SelectionMode and passed to QwtPicker::setSelectionFlags()

  • NoSelection
    Selection is disabled. Note this is different to the disabled state, as you might have a tracker.
  • PointSelection
    Select a single point.
  • RectSelection
    Select a rectangle.
  • PolygonSelection
    Select a polygon.

The default value is NoSelection.

See also:
QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags()

Constructor & Destructor Documentation

QwtPicker::QwtPicker ( QWidget *  parent)
explicit

Constructor

Creates an picker that is enabled, but where selection flag is set to NoSelection, rubberband and tracker are disabled.

Parameters:
parentParent widget, that will be observed
QwtPicker::QwtPicker ( int  selectionFlags,
RubberBand  rubberBand,
DisplayMode  trackerMode,
QWidget *  parent 
)
explicit

Constructor

Parameters:
selectionFlagsOr'd value of SelectionType, RectSelectionType and SelectionMode
rubberBandRubberband style
trackerModeTracker mode
parentParent widget, that will be observed

Member Function Documentation

bool QwtPicker::accept ( QwtPolygon &  selection) const
protectedvirtual

Validate and fixup the selection.

Accepts all selections unmodified

Parameters:
selectionSelection to validate and fixup
Returns:
true, when accepted, false otherwise

Reimplemented in QwtPlotZoomer.

void QwtPicker::append ( const QPoint &  pos)
protectedvirtual

Append a point to the selection and update rubberband and tracker. The appended() signal is emitted.

Parameters:
posAdditional point
See also:
isActive(), begin(), end(), move(), appended()

Reimplemented in QwtPlotPicker.

void QwtPicker::appended ( const QPoint &  pos)
signal

A signal emitted when a point has been appended to the selection

Parameters:
posPosition of the appended point.
See also:
append(). moved()
void QwtPicker::begin ( )
protectedvirtual

Open a selection setting the state to active

See also:
isActive(), end(), append(), move()

Reimplemented in QwtPlotZoomer.

void QwtPicker::changed ( const QwtPolygon &  pa)
signal

A signal emitted when the active selection has been changed. This might happen when the observed widget is resized.

Parameters:
paChanged selection
See also:
stretchSelection()
void QwtPicker::drawRubberBand ( QPainter *  painter) const
virtual

Draw a rubberband , depending on rubberBand() and selectionFlags()

Parameters:
painterPainter, initialized with clip rect
See also:
rubberBand(), RubberBand, selectionFlags()
void QwtPicker::drawTracker ( QPainter *  painter) const
virtual

Draw the tracker

Parameters:
painterPainter
See also:
trackerRect(), trackerText()
bool QwtPicker::end ( bool  ok = true)
protectedvirtual

Close a selection setting the state to inactive.

The selection is validated and maybe fixed by QwtPicker::accept().

Parameters:
okIf true, complete the selection and emit a selected signal otherwise discard the selection.
Returns:
true if the selection is accepted, false otherwise
See also:
isActive(), begin(), append(), move(), selected(), accept()

Reimplemented in QwtPlotZoomer, and QwtPlotPicker.

bool QwtPicker::eventFilter ( QObject *  o,
QEvent *  e 
)
virtual

Event filter.

When isEnabled() == true all events of the observed widget are filtered. Mouse and keyboard events are translated into widgetMouse- and widgetKey- and widgetWheel-events. Paint and Resize events are handled to keep rubberband and tracker up to date.

See also:
event(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()
bool QwtPicker::isActive ( ) const

A picker is active between begin() and end().

Returns:
true if the selection is active.
bool QwtPicker::isEnabled ( ) const
Returns:
true when enabled, false otherwise
See also:
setEnabled(), eventFilter()
void QwtPicker::move ( const QPoint &  pos)
protectedvirtual

Move the last point of the selection The moved() signal is emitted.

Parameters:
posNew position
See also:
isActive(), begin(), end(), append()

Reimplemented in QwtPlotPicker.

void QwtPicker::moved ( const QPoint &  pos)
signal

A signal emitted whenever the last appended point of the selection has been moved.

Parameters:
posPosition of the moved last point of the selection.
See also:
move(), appended()
QRect QwtPicker::pickRect ( ) const
virtual

Find the area of the observed widget, where selection might happen.

Returns:
QFrame::contentsRect() if it is a QFrame, QWidget::rect() otherwise.
void QwtPicker::reset ( )
protectedvirtual

Reset the state machine and terminate (end(false)) the selection

QwtPicker::ResizeMode QwtPicker::resizeMode ( ) const
Returns:
Resize mode
See also:
setResizeMode(), ResizeMode
QwtPicker::RubberBand QwtPicker::rubberBand ( ) const
Returns:
Rubberband style
See also:
setRubberBand(), RubberBand, rubberBandPen()
QPen QwtPicker::rubberBandPen ( ) const
Returns:
Rubberband pen
See also:
setRubberBandPen(), rubberBand()
const QWidget * QwtPicker::rubberBandWidget ( ) const
protected
Returns:
Widget displaying the rubberband
void QwtPicker::selected ( const QwtPolygon &  pa)
signal

A signal emitting the selected points, at the end of a selection.

Parameters:
paSelected points
int QwtPicker::selectionFlags ( ) const
Returns:
Selection flags, an Or'd value of SelectionType, RectSelectionType and SelectionMode.
See also:
setSelectionFlags(), SelectionType, RectSelectionType, SelectionMode
void QwtPicker::setEnabled ( bool  enabled)
virtual

En/disable the picker.

When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed.

Parameters:
enabledtrue or false
See also:
isEnabled(), eventFilter()
void QwtPicker::setResizeMode ( ResizeMode  mode)
virtual

Set the resize mode.

The resize mode controls what to do with the selected points of an active selection when the observed widget is resized.

Stretch means the points are scaled according to the new size, KeepSize means the points remain unchanged.

The default mode is Stretch.

Parameters:
modeResize mode
See also:
resizeMode(), ResizeMode
void QwtPicker::setRubberBand ( RubberBand  rubberBand)
virtual

Set the rubberband style

Parameters:
rubberBandRubberband style The default value is NoRubberBand.
See also:
rubberBand(), RubberBand, setRubberBandPen()
void QwtPicker::setRubberBandPen ( const QPen &  pen)
virtual

Set the pen for the rubberband

Parameters:
penRubberband pen
See also:
rubberBandPen(), setRubberBand()
void QwtPicker::setSelectionFlags ( int  flags)
virtual

Set the selection flags

Parameters:
flagsOr'd value of SelectionType, RectSelectionType and SelectionMode. The default value is NoSelection.
See also:
selectionFlags(), SelectionType, RectSelectionType, SelectionMode

Reimplemented in QwtPlotZoomer.

void QwtPicker::setTrackerFont ( const QFont &  font)
virtual

Set the font for the tracker

Parameters:
fontTracker font
See also:
trackerFont(), setTrackerMode(), setTrackerPen()
void QwtPicker::setTrackerMode ( DisplayMode  mode)
virtual

Set the display mode of the tracker.

A tracker displays information about current position of the cursor as a string. The display mode controls if the tracker has to be displayed whenever the observed widget has focus and cursor (AlwaysOn), never (AlwaysOff), or only when the selection is active (ActiveOnly).

Parameters:
modeTracker display mode
Warning:
In case of AlwaysOn, mouseTracking will be enabled for the observed widget.
See also:
trackerMode(), DisplayMode
void QwtPicker::setTrackerPen ( const QPen &  pen)
virtual

Set the pen for the tracker

Parameters:
penTracker pen
See also:
trackerPen(), setTrackerMode(), setTrackerFont()
QwtPickerMachine * QwtPicker::stateMachine ( int  flags) const
protectedvirtual

Create a state machine depending on the selection flags.

  • PointSelection | ClickSelection
    QwtPickerClickPointMachine()
  • PointSelection | DragSelection
    QwtPickerDragPointMachine()
  • RectSelection | ClickSelection
    QwtPickerClickRectMachine()
  • RectSelection | DragSelection
    QwtPickerDragRectMachine()
  • PolygonSelection
    QwtPickerPolygonMachine()
See also:
setSelectionFlags()
void QwtPicker::stretchSelection ( const QSize &  oldSize,
const QSize &  newSize 
)
protectedvirtual

Scale the selection by the ratios of oldSize and newSize The changed() signal is emitted.

Parameters:
oldSizePrevious size
newSizeCurrent size
See also:
ResizeMode, setResizeMode(), resizeMode()
QFont QwtPicker::trackerFont ( ) const
Returns:
Tracker font
See also:
setTrackerFont(), trackerMode(), trackerPen()
QwtPicker::DisplayMode QwtPicker::trackerMode ( ) const
Returns:
Tracker display mode
See also:
setTrackerMode(), DisplayMode
QPen QwtPicker::trackerPen ( ) const
Returns:
Tracker pen
See also:
setTrackerPen(), trackerMode(), trackerFont()
QPoint QwtPicker::trackerPosition ( ) const
Returns:
Current position of the tracker
QRect QwtPicker::trackerRect ( const QFont &  font) const

Calculate the bounding rectangle for the tracker text from the current position of the tracker

Parameters:
fontFont of the tracker text
Returns:
Bounding rectangle of the tracker text
See also:
trackerPosition()
QwtText QwtPicker::trackerText ( const QPoint &  pos) const
virtual

Return the label for a position.

In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position. Otherwise the label contains x and y position separated by a ',' .

The format for the string conversion is "%d".

Parameters:
posPosition
Returns:
Converted position as string

Reimplemented in QwtPlotPicker.

const QWidget * QwtPicker::trackerWidget ( ) const
protected
Returns:
Widget displaying the tracker text
void QwtPicker::transition ( const QEvent *  e)
protectedvirtual

Passes an event to the state machine and executes the resulting commands. Append and Move commands use the current position of the cursor (QCursor::pos()).

Parameters:
eEvent
void QwtPicker::widgetKeyPressEvent ( QKeyEvent *  ke)
protectedvirtual

Handle a key press event for the observed widget.

Selections can be completely done by the keyboard. The arrow keys move the cursor, the abort key aborts a selection. All other keys are handled by the current state machine.

See also:
QwtPicker, selectionFlags()
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyReleaseEvent(), stateMachine(), QwtEventPattern::KeyPatternCode

Reimplemented in QwtPlotZoomer.

void QwtPicker::widgetKeyReleaseEvent ( QKeyEvent *  ke)
protectedvirtual

Handle a key release event for the observed widget.

Passes the event to the state machine.

See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), stateMachine()
void QwtPicker::widgetLeaveEvent ( QEvent *  )
protectedvirtual
void QwtPicker::widgetMouseDoubleClickEvent ( QMouseEvent *  me)
protectedvirtual

Handle mouse double click event for the observed widget.

Empty implementation, does nothing.

See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()
void QwtPicker::widgetMouseMoveEvent ( QMouseEvent *  e)
protectedvirtual

Handle a mouse move event for the observed widget.

Move the last point of the selection in case of isActive() == true

See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()
void QwtPicker::widgetMousePressEvent ( QMouseEvent *  e)
protectedvirtual

Handle a mouse press event for the observed widget.

Begin and/or end a selection depending on the selection flags.

See also:
QwtPicker, selectionFlags()
eventFilter(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()
void QwtPicker::widgetMouseReleaseEvent ( QMouseEvent *  e)
protectedvirtual

Handle a mouse relase event for the observed widget.

End a selection depending on the selection flags.

See also:
QwtPicker, selectionFlags()
eventFilter(), widgetMousePressEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()

Reimplemented in QwtPlotZoomer.

void QwtPicker::widgetWheelEvent ( QWheelEvent *  e)
protectedvirtual

Handle a wheel event for the observed widget.

Move the last point of the selection in case of isActive() == true

See also:
eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetKeyPressEvent(), widgetKeyReleaseEvent()
qwt5-5.2.3/doc/html/class_qwt_linear_color_map-members.html0000644000175000017500000002331412052741140023372 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLinearColorMap Member List

This is the complete list of members for QwtLinearColorMap, including all inherited members.

addColorStop(double value, const QColor &)QwtLinearColorMap
color(const QwtDoubleInterval &, double value) const QwtColorMapinline
color1() const QwtLinearColorMap
color2() const QwtLinearColorMap
colorIndex(const QwtDoubleInterval &, double value) const QwtLinearColorMapvirtual
colorStops() const QwtLinearColorMap
colorTable(const QwtDoubleInterval &) const QwtColorMapvirtual
copy() const QwtLinearColorMapvirtual
FixedColors enum value (defined in QwtLinearColorMap)QwtLinearColorMap
Format enum nameQwtColorMap
format() const QwtColorMapinline
Indexed enum value (defined in QwtColorMap)QwtColorMap
Mode enum nameQwtLinearColorMap
mode() const QwtLinearColorMap
operator=(const QwtLinearColorMap &)QwtLinearColorMap
QwtColorMap(Format=QwtColorMap::RGB)QwtColorMap
QwtLinearColorMap(QwtColorMap::Format=QwtColorMap::RGB)QwtLinearColorMap
QwtLinearColorMap(const QColor &from, const QColor &to, QwtColorMap::Format=QwtColorMap::RGB)QwtLinearColorMap
QwtLinearColorMap(const QwtLinearColorMap &)QwtLinearColorMap
rgb(const QwtDoubleInterval &, double value) const QwtLinearColorMapvirtual
RGB enum value (defined in QwtColorMap)QwtColorMap
ScaledColors enum value (defined in QwtLinearColorMap)QwtLinearColorMap
setColorInterval(const QColor &color1, const QColor &color2)QwtLinearColorMap
setMode(Mode)QwtLinearColorMap
~QwtColorMap()QwtColorMapvirtual
~QwtLinearColorMap()QwtLinearColorMapvirtual
qwt5-5.2.3/doc/html/class_qwt_plot_svg_item.html0000644000175000017500000007757512052741164021340 0ustar gudjongudjon Qwt User's Guide: QwtPlotSvgItem Class Reference
QwtPlotSvgItem Class Reference

#include <qwt_plot_svgitem.h>

Inheritance diagram for QwtPlotSvgItem:

List of all members.

Public Member Functions

 QwtPlotSvgItem (const QString &title=QString::null)
 QwtPlotSvgItem (const QwtText &title)
virtual ~QwtPlotSvgItem ()
virtual QwtDoubleRect boundingRect () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const
bool loadData (const QwtDoubleRect &, const QByteArray &)
bool loadFile (const QwtDoubleRect &, const QString &fileName)
virtual int rtti () const
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Protected Member Functions

void render (QPainter *painter, const QwtDoubleRect &viewBox, const QRect &rect) const
QwtDoubleRect viewBox (const QwtDoubleRect &area) const

Additional Inherited Members

- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Detailed Description

A plot item, which displays data in Scalable Vector Graphics (SVG) format.

SVG images are often used to display maps


Constructor & Destructor Documentation

QwtPlotSvgItem::QwtPlotSvgItem ( const QString &  title = QString::null)
explicit

Constructor.

Sets the following item attributes:

  • QwtPlotItem::AutoScale: true
  • QwtPlotItem::Legend: false
Parameters:
titleTitle
QwtPlotSvgItem::QwtPlotSvgItem ( const QwtText title)
explicit

Constructor.

Sets the following item attributes:

  • QwtPlotItem::AutoScale: true
  • QwtPlotItem::Legend: false
Parameters:
titleTitle

Member Function Documentation

void QwtPlotSvgItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the SVG item

Parameters:
painterPainter
xMapX-Scale Map
yMapY-Scale Map
canvasRectContents rect of the plot canvas

Implements QwtPlotItem.

bool QwtPlotSvgItem::loadData ( const QwtDoubleRect &  rect,
const QByteArray &  data 
)

Load SVG data

Parameters:
rectBounding rectangle
datain SVG format
Returns:
true, if the SVG data could be loaded
bool QwtPlotSvgItem::loadFile ( const QwtDoubleRect &  rect,
const QString &  fileName 
)

Load a SVG file

Parameters:
rectBounding rectangle
fileNameSVG file name
Returns:
true, if the SVG file could be loaded
void QwtPlotSvgItem::render ( QPainter *  painter,
const QwtDoubleRect &  viewBox,
const QRect &  rect 
) const
protected

Render the SVG data

Parameters:
painterPainter
viewBoxView Box, see QSvgRenderer::viewBox
rectTraget rectangle on the paint device
int QwtPlotSvgItem::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotSVG

Reimplemented from QwtPlotItem.

QwtDoubleRect QwtPlotSvgItem::viewBox ( const QwtDoubleRect &  rect) const
protected

Calculate the viewBox from an rect and boundingRect().

Parameters:
rectRectangle in scale coordinates
Returns:
viewBox View Box, see QSvgRenderer::viewBox
qwt5-5.2.3/doc/html/qwt__double__rect_8h_source.html0000644000175000017500000015615412052741134022030 0ustar gudjongudjon Qwt User's Guide: qwt_double_rect.h Source File
Qwt User's Guide  5.2.3
qwt_double_rect.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
11 #ifndef QWT_DOUBLE_RECT_H
12 #define QWT_DOUBLE_RECT_H 1
13 
14 #include "qwt_global.h"
15 #include "qwt_array.h"
16 
17 #if QT_VERSION >= 0x040000
18 
19 #include <QPointF>
20 #include <QSizeF>
21 #include <QRectF>
22 
29 typedef QPointF QwtDoublePoint;
30 
37 typedef QSizeF QwtDoubleSize;
38 
45 typedef QRectF QwtDoubleRect;
46 
47 #else
48 
49 #include <qpoint.h>
50 #include <qsize.h>
51 #include <qrect.h>
52 
57 class QWT_EXPORT QwtDoublePoint
58 {
59 public:
60  QwtDoublePoint();
61  QwtDoublePoint(double x, double y);
62  QwtDoublePoint(const QPoint &);
63 
64  QPoint toPoint() const;
65 
66  bool isNull() const;
67 
68  double x() const;
69  double y() const;
70 
71  double &rx();
72  double &ry();
73 
74  void setX(double x);
75  void setY(double y);
76 
77  bool operator==(const QwtDoublePoint &) const;
78  bool operator!=(const QwtDoublePoint &) const;
79 
80  const QwtDoublePoint operator-() const;
81  const QwtDoublePoint operator+(const QwtDoublePoint &) const;
82  const QwtDoublePoint operator-(const QwtDoublePoint &) const;
83  const QwtDoublePoint operator*(double) const;
84  const QwtDoublePoint operator/(double) const;
85 
86  QwtDoublePoint &operator+=(const QwtDoublePoint &);
87  QwtDoublePoint &operator-=(const QwtDoublePoint &);
88  QwtDoublePoint &operator*=(double);
89  QwtDoublePoint &operator/=(double);
90 
91 private:
92  double d_x;
93  double d_y;
94 };
95 
100 class QWT_EXPORT QwtDoubleSize
101 {
102 public:
103  QwtDoubleSize();
104  QwtDoubleSize(double width, double height);
105  QwtDoubleSize(const QSize &);
106 
107  bool isNull() const;
108  bool isEmpty() const;
109  bool isValid() const;
110 
111  double width() const;
112  double height() const;
113  void setWidth( double w );
114  void setHeight( double h );
115  void transpose();
116 
117  QwtDoubleSize expandedTo(const QwtDoubleSize &) const;
118  QwtDoubleSize boundedTo(const QwtDoubleSize &) const;
119 
120  bool operator==(const QwtDoubleSize &) const;
121  bool operator!=(const QwtDoubleSize &) const;
122 
123  const QwtDoubleSize operator+(const QwtDoubleSize &) const;
124  const QwtDoubleSize operator-(const QwtDoubleSize &) const;
125  const QwtDoubleSize operator*(double) const;
126  const QwtDoubleSize operator/(double) const;
127 
128  QwtDoubleSize &operator+=(const QwtDoubleSize &);
129  QwtDoubleSize &operator-=(const QwtDoubleSize &);
130  QwtDoubleSize &operator*=(double c);
131  QwtDoubleSize &operator/=(double c);
132 
133 private:
134  double d_width;
135  double d_height;
136 };
137 
142 class QWT_EXPORT QwtDoubleRect
143 {
144 public:
145  QwtDoubleRect();
146  QwtDoubleRect(double left, double top, double width, double height);
147  QwtDoubleRect(const QwtDoublePoint&, const QwtDoubleSize &);
148 
149  QwtDoubleRect(const QRect &);
150  QRect toRect() const;
151 
152  bool isNull() const;
153  bool isEmpty() const;
154  bool isValid() const;
155 
156  QwtDoubleRect normalized() const;
157 
158  double x() const;
159  double y() const;
160 
161  double left() const;
162  double right() const;
163  double top() const;
164  double bottom() const;
165 
166  void setX(double);
167  void setY(double);
168 
169  void setLeft(double);
170  void setRight(double);
171  void setTop(double);
172  void setBottom(double);
173 
174  QwtDoublePoint center() const;
175 
176  void moveLeft(double x);
177  void moveRight(double x);
178  void moveTop(double y );
179  void moveBottom(double y );
180  void moveTo(double x, double y);
181  void moveTo(const QwtDoublePoint &);
182  void moveBy(double dx, double dy);
183  void moveCenter(const QwtDoublePoint &);
184  void moveCenter(double dx, double dy);
185 
186  void setRect(double x1, double x2, double width, double height);
187 
188  double width() const;
189  double height() const;
190  QwtDoubleSize size() const;
191 
192  void setWidth(double w );
193  void setHeight(double h );
194  void setSize(const QwtDoubleSize &);
195 
196  QwtDoubleRect operator|(const QwtDoubleRect &r) const;
197  QwtDoubleRect operator&(const QwtDoubleRect &r) const;
198  QwtDoubleRect &operator|=(const QwtDoubleRect &r);
199  QwtDoubleRect &operator&=(const QwtDoubleRect &r);
200  bool operator==( const QwtDoubleRect &) const;
201  bool operator!=( const QwtDoubleRect &) const;
202 
203  bool contains(const QwtDoublePoint &p, bool proper = false) const;
204  bool contains(double x, double y, bool proper = false) const;
205  bool contains(const QwtDoubleRect &r, bool proper=false) const;
206 
207  QwtDoubleRect unite(const QwtDoubleRect &) const;
208  QwtDoubleRect intersect(const QwtDoubleRect &) const;
209  bool intersects(const QwtDoubleRect &) const;
210 
211  QwtDoublePoint bottomRight() const;
212  QwtDoublePoint topRight() const;
213  QwtDoublePoint topLeft() const;
214  QwtDoublePoint bottomLeft() const;
215 
216 private:
217  double d_left;
218  double d_right;
219  double d_top;
220  double d_bottom;
221 };
222 
229 inline bool QwtDoublePoint::isNull() const
230 {
231  return d_x == 0.0 && d_y == 0.0;
232 }
233 
235 inline double QwtDoublePoint::x() const
236 {
237  return d_x;
238 }
239 
241 inline double QwtDoublePoint::y() const
242 {
243  return d_y;
244 }
245 
247 inline double &QwtDoublePoint::rx()
248 {
249  return d_x;
250 }
251 
253 inline double &QwtDoublePoint::ry()
254 {
255  return d_y;
256 }
257 
259 inline void QwtDoublePoint::setX(double x)
260 {
261  d_x = x;
262 }
263 
265 inline void QwtDoublePoint::setY(double y)
266 {
267  d_y = y;
268 }
269 
274 inline QPoint QwtDoublePoint::toPoint() const
275 {
276  return QPoint(qRound(d_x), qRound(d_y));
277 }
278 
283 inline bool QwtDoubleSize::isNull() const
284 {
285  return d_width == 0.0 && d_height == 0.0;
286 }
287 
292 inline bool QwtDoubleSize::isEmpty() const
293 {
294  return d_width <= 0.0 || d_height <= 0.0;
295 }
296 
301 inline bool QwtDoubleSize::isValid() const
302 {
303  return d_width >= 0.0 && d_height >= 0.0;
304 }
305 
307 inline double QwtDoubleSize::width() const
308 {
309  return d_width;
310 }
311 
313 inline double QwtDoubleSize::height() const
314 {
315  return d_height;
316 }
317 
319 inline void QwtDoubleSize::setWidth(double width)
320 {
321  d_width = width;
322 }
323 
325 inline void QwtDoubleSize::setHeight(double height)
326 {
327  d_height = height;
328 }
329 
337 inline bool QwtDoubleRect::isNull() const
338 {
339  return d_right == d_left && d_bottom == d_top;
340 }
341 
349 inline bool QwtDoubleRect::isEmpty() const
350 {
351  return d_left >= d_right || d_top >= d_bottom;
352 }
353 
362 inline bool QwtDoubleRect::isValid() const
363 {
364  return d_left < d_right && d_top < d_bottom;
365 }
366 
368 inline double QwtDoubleRect::x() const
369 {
370  return d_left;
371 }
372 
374 inline double QwtDoubleRect::y() const
375 {
376  return d_top;
377 }
378 
380 inline double QwtDoubleRect::left() const
381 {
382  return d_left;
383 }
384 
386 inline double QwtDoubleRect::right() const
387 {
388  return d_right;
389 }
390 
392 inline double QwtDoubleRect::top() const
393 {
394  return d_top;
395 }
396 
398 inline double QwtDoubleRect::bottom() const
399 {
400  return d_bottom;
401 }
402 
404 inline void QwtDoubleRect::setX(double x)
405 {
406  d_left = x;
407 }
408 
410 inline void QwtDoubleRect::setY(double y)
411 {
412  d_top = y;
413 }
414 
416 inline void QwtDoubleRect::setLeft(double x)
417 {
418  d_left = x;
419 }
420 
422 inline void QwtDoubleRect::setRight(double x)
423 {
424  d_right = x;
425 }
426 
428 inline void QwtDoubleRect::setTop(double y)
429 {
430  d_top = y;
431 }
432 
434 inline void QwtDoubleRect::setBottom(double y)
435 {
436  d_bottom = y;
437 }
438 
440 inline double QwtDoubleRect::width() const
441 {
442  return d_right - d_left;
443 }
444 
446 inline double QwtDoubleRect::height() const
447 {
448  return d_bottom - d_top;
449 }
450 
452 inline QwtDoubleSize QwtDoubleRect::size() const
453 {
454  return QwtDoubleSize(width(), height());
455 }
456 
458 inline void QwtDoubleRect::setWidth(double w)
459 {
460  d_right = d_left + w;
461 }
462 
464 inline void QwtDoubleRect::setHeight(double h)
465 {
466  d_bottom = d_top + h;
467 }
468 
473 inline void QwtDoubleRect::moveTo(const QwtDoublePoint &p)
474 {
475  moveTo(p.x(), p.y());
476 }
477 
478 inline QwtDoublePoint QwtDoubleRect::bottomRight() const
479 {
480  return QwtDoublePoint(bottom(), right());
481 }
482 
483 inline QwtDoublePoint QwtDoubleRect::topRight() const
484 {
485  return QwtDoublePoint(top(), right());
486 }
487 
488 inline QwtDoublePoint QwtDoubleRect::topLeft() const
489 {
490  return QwtDoublePoint(top(), left());
491 }
492 
493 inline QwtDoublePoint QwtDoubleRect::bottomLeft() const
494 {
495  return QwtDoublePoint(bottom(), left());
496 }
497 
498 
499 #endif // QT_VERSION < 0x040000
500 
501 #endif // QWT_DOUBLE_RECT_H
qwt5-5.2.3/doc/html/inherit_graph_24.map0000644000175000017500000000023612052741163017321 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_clipper.html0000644000175000017500000002015212052741137020076 0ustar gudjongudjon Qwt User's Guide: QwtClipper Class Reference
QwtClipper Class Reference

#include <qwt_clipper.h>

List of all members.

Static Public Member Functions

static QwtArray
< QwtDoubleInterval
clipCircle (const QwtDoubleRect &, const QwtDoublePoint &, double radius)
static QwtPolygon clipPolygon (const QRect &, const QwtPolygon &)
static QwtPolygonF clipPolygonF (const QwtDoubleRect &, const QwtPolygonF &)

Detailed Description

Some clipping algos.


Member Function Documentation

QwtArray< QwtDoubleInterval > QwtClipper::clipCircle ( const QwtDoubleRect &  clipRect,
const QwtDoublePoint &  center,
double  radius 
)
static

Circle clipping

clipCircle() devides a circle into intervals of angles representing arcs of the circle. When the circle is completely inside the clip rectangle an interval [0.0, 2 * M_PI] is returned.

Parameters:
clipRectClip rectangle
centerCenter of the circle
radiusRadius of the circle
Returns:
Arcs of the circle
QwtPolygon QwtClipper::clipPolygon ( const QRect &  clipRect,
const QwtPolygon &  polygon 
)
static

Sutherland-Hodgman polygon clipping

Parameters:
clipRectClip rectangle
polygonPolygon
Returns:
Clipped polygon
QwtPolygonF QwtClipper::clipPolygonF ( const QwtDoubleRect &  clipRect,
const QwtPolygonF &  polygon 
)
static

Sutherland-Hodgman polygon clipping

Parameters:
clipRectClip rectangle
polygonPolygon
Returns:
Clipped polygon
qwt5-5.2.3/doc/html/ftv2cl.png0000644000175000017500000000070512052741134015377 0ustar gudjongudjon‰PNG  IHDRÚ}\ŚIDATxíÝ;H#AÇńo4Љႇ ś„K‰‡‚á ’ę,m„ŘŘ vÚžŹJ°˛ąÚÎţî‚§ XY ĹB|drłcvo—ťÄ°Ý ů0Ă’™3˙ͤő”Ëe×´¸ÉőŻ1XŢ8ډnQ88ööÖ§3*rbńŻ˘ű-$¨‚ţť´“P1Žč@Z…-# Ďú01ŃĎÎęÄ1HkKź w¶O@ĄŞČóń!f§ńuĺác÷;’sá×Bý[E´Ań±—Í\ß>°ůýżĎËĘÂ]ť–P€zŘf| ÍńŻ“+Ů´gđ5…b  i5ümMłś_ćÍq,ŇcŽőčoÓd´ !¶äň©ô•,ôđŔ{ą¨µYß,€zTÍ8H]đ¤•ď7Ľ»/ňó8ËQć !F€~6ăáŹ?Y ŔA@ŨÁ.@¶TäÄYďŠËë±r‘µ8Đ*·é>€Šç˙?€×ţźe[6«xÂIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_2.map0000644000175000017500000000022312052741161017227 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_data.html0000644000175000017500000003222712052741164017357 0ustar gudjongudjon Qwt User's Guide: QwtData Class Reference

#include <qwt_data.h>

Inheritance diagram for QwtData:

List of all members.

Public Member Functions

 QwtData ()
virtual ~QwtData ()
virtual QwtDoubleRect boundingRect () const
virtual QwtDatacopy () const =0
virtual size_t size () const =0
virtual double x (size_t i) const =0
virtual double y (size_t i) const =0

Protected Member Functions

QwtDataoperator= (const QwtData &)

Detailed Description

QwtData defines an interface to any type of curve data.

Classes, derived from QwtData may:

  • store the data in almost any type of container
  • calculate the data on the fly instead of storing it

Member Function Documentation

QwtDoubleRect QwtData::boundingRect ( ) const
virtual

Returns the bounding rectangle of the data. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false

Warning:
This is an slow implementation iterating over all points. It is intended to be overloaded by derived classes. In case of auto scaling boundingRect() is called for every replot, so it might be worth to implement a cache, or use x(0), x(size() - 1) for ordered data ...

Reimplemented in QwtCPointerData, and QwtArrayData.

virtual QwtData* QwtData::copy ( ) const
pure virtual
Returns:
Pointer to a copy (virtual copy constructor)

Implemented in QwtCPointerData, QwtArrayData, and QwtPolygonFData.

QwtData& QwtData::operator= ( const QwtData )
protected

Assignment operator (virtualized)

virtual size_t QwtData::size ( ) const
pure virtual
Returns:
Size of the data set

Implemented in QwtCPointerData, QwtArrayData, and QwtPolygonFData.

virtual double QwtData::x ( size_t  i) const
pure virtual

Return the x value of data point i

Parameters:
iIndex
Returns:
x X value of data point i

Implemented in QwtCPointerData, QwtArrayData, and QwtPolygonFData.

virtual double QwtData::y ( size_t  i) const
pure virtual

Return the y value of data point i

Parameters:
iIndex
Returns:
y Y value of data point i

Implemented in QwtCPointerData, QwtArrayData, and QwtPolygonFData.

qwt5-5.2.3/doc/html/class_qwt_text_engine__inherit__graph.png0000644000175000017500000001620412052741160023771 0ustar gudjongudjon‰PNG  IHDRĺpŻŽ˙qbKGD˙˙˙ ˝§“9IDATxśíÝy\gţđgrFn»‚VQPYĺąű[Ą ¨«H8"XEńX·ŰíZÝźuŰÝu]«XAAPäP­ŰőâTP>ľ¤¤¤˝˝]GGÇŃŃ‘ÉdŞŞŞ°JMM ‹Ĺş|ů2BČŐŐµďrrrdÜş¨©šš&“)ńŰ}űö9;;ËŘ”DaŚ(Čk0Ú^˝zµuëV77·Ă‡ëééŐÔÔÄĹĹmٲĺرcG¶Í„%ťNf “'O†°ŁĆCŔhűé§ź–.]>yňdssó~řASSóÔ©S»víJIIA555ąşş&''#„Řl¶««+“Éärą®®®­­­4ŢÓÓsčĐ!///źČČH>źźťťÂçóB?˙üó®]»>ÚTMMÍÚµk/^Ľčéééíí}íÚ5|yWW׏?ţ¸rĺʵk×^ąrĺłĎ>Ă,úAęZ}K"lW‚qňŚŞ®®®{÷îůřř/Ä0ĚÇÇçćÍ›¶¶¶eeeˇňňrq˙ţ}„Đýű÷§Nťš@§Ósrr444h˙čŃŁ'>>ţČ‘#÷ďßĎČČX±b…ŞŞjJJĘăÇŹsrröíŰ'KS---UUUÉÉÉŢŢŢÇŹ5ŢŢŢžđŹü#==]öµ$Jä>ŕ? ŻÁ¨jiiAéééI,744lnn¶±±yđŕźĎ///÷öö~đŕ@ ¸˙ľ­­­,ŤóxĽË—/o۶MCCĂČČ($$äęŐ«†íŢ˝;%%ĺŔ;w(~˘-®ľľ!ÄápL&ÁpttlkkĂżrĺJXX–––±±ń† ú u­ľ% iĎă×`tijj"„ Ĺ—766jkk›™™©ŞŞ>yň¤ĽĽü»ďľ»víÚłgĎîÝ»·cÇYgłŮ<ď‹/ľŘśˇˇˇ­­íÇíěě$V‘:~]SSCŁŃđło ĂDŤ üżő㤮%µ$†ňŚ*1wîÜóçĎoٲ_’––¶xńâóçĎ;88 „lll ŘlöäÉ“çÎť›——×ŘŘ8kÖ¬ÚÚÚŹ6®ĄĄEˇP˛łł'NśęééÁG¨źßßßźÉdjii±X¬¸¸¸É“';99Mť:ŐÓÓóŕÁâMőżŽčŻńíŰ·O0ÁĎĎď믿öđđ Ńdúó´oIŰ_ü?¸ţ5 ~ýkŮż·"®···¦¦fÚ´i„WE +W®,X°),,ډ‰‰ŹŹ‰ ąşşÂőŻA_p~ ä‚’’’ś‡5B¨°°0::ş««ëÝ»wgĎžĹÜ5×Č*<<ĽµµŐ××7((H__p`ÔŔüdĄ­­}ŕŔ˛«ăś_€b€ĽĹy Šň|ŢvńâĹá7" .őö yÖ!%%şŞŞ2!ăä5 Áçź˙F[{âŔ0ě›o–˙řŁ/•Jä!š–VJŁQčtJZZ QmÚŰzéŇNuu†Dd‹ŁŃ(!!Î**t˘6 Ć'Čk@:ťŕ 5ŕ0 Q(ءCkĂÂ܉ÝhO÷—_îóx|.WđË/÷{z¸Dµ~ëgźÍ‰­ź;W*şĂ†açΕŰľ±±Ö… Ű?ýtţ9ŞźĎgł;ííżß´éTYY ±ă ĚŁáń㺸¸‚ĚĚ»<žŔÇgźź˝•Ő'·oWyyĹ@ŁQµ´ii›ÍÍ F˘€¶¶ž9sţÄĺňEKčtęß«««˝ˇî5k"=zËăńń­,^<=11äĆŤg11ůW®<š=ŰxăFç/żś/ë|ä5A<žŕ_˙*ʉÉ/)©61Ńb2Ö¬±źÓćäôCUU•JŐ×WOMÝlf¦;B•¤¦–ěÚu–Ď–P©”C‡Öúú.$|[mm=~~Q÷ďżĆß’“79;ĎŔőčŃۨ¨Ü¬¬2--Ɔ ‹‚ť45„Ć*Čk0"ŘěΓ' ’’n54´-^<ťĹrrsłě;ĺůÔ©›řCÚĚ™†))_Mš¤6rő¬^}üćÍçÁóšBÁ¦§¤|5›ëîî ŚÍĎ:mš^^Ţ$îôŘĐĐžx#6¶€Ëĺ{yÍ uůôS˝‘(Ś1×€`ĄĄŐŃŃů˙ţ÷C:ťşv­m`ŕâ©S'ő÷`‡WTô|Á‚)#:7ůýűöyóööýx“JĹîŢýó˝Opąü'r-š>oŢd©čěäddÜŤŠĘ­®~ďćfÉb99:šŹD%`Ě€ĽÄčéᦧ—&%•—żž1Ă 8ŘéË/çËÉ7DNž,Ř»7“ÇH,§Ń(ţłą3íáµk11ůOçĚ1a±śĽĽ¬Ę Ć3Čk0\oß6ÇÇßHIąÝŇŇĺáaěhc3•ě˘>ŕáńĎ^K›>¬¬&_ş´”Ş$>ŤzëVwĹťF úC§SW¬»bĹÜââŞcǮĚ™é.^żŢŽŔ;ÍRŔůő¸ĐÚÚ•”T$>ŤzÉ‹ń9ť`Ěź_KŔ‡¶ĎśąĹ`(­]kËb9ęëËÝ5^€Ś ŻÇ¸ĘĘş“' 22î …ÂßţÖŽÉt6m,Lٞń–׸¦¦ŽłgoÇĆ45uxzÎŰĽyÉĚ™†d ňzlż×ôéú7:ʱiÔC6>ó‡O®?~<çńă:ÚVD×cMSSG||aRRQccÇňĺV~~öÓúäÄĎy-‚m_˝Z1eŠn@Ŕb??{Ń <Ľ;JJŞcbňýőŞŞĘşuvë×ŰŤÜíkäµHUŐű“' Oź.RUUf2µµ'’]äµÂż>ŤzĺĘyĘĘ0óG:Čk ŤŤ …'OvtpV®śćfnn@vQ@:ČköćMsBÂŤ””Ű­­ÝžžóX,§ń3ŤzČ ŻĄęíĺee•;výŮłwř "Ú–Cp¦xÄoÄe` ęâëk٧Ó¨ÁĐ))Ń|}úř,Ŕ­€€XKK#&ÓÁ×w!ü­&?ŕüZ‘tvr’“oÇÇVU˝wt4÷ół_¶lťN%».Eçײ¨¨¨ŤŹ/LK+Ńаaâ  G--Ú&äµbxň¤>66?+«ŚĎŔ4ęြ–Ýű÷í§NÝ‹+äp¸ŢŢÖ!!.pÔ‘ ňZ®áÓ¨“’Š źM›¦·qŁóĘ•óÔŐaőĐA^‡ĂËÎ.‹¸öâE››%‹ĺäčhNvQă䵜bł;““o%%˝yÓ Ó¨ y=4řÍcbň žÎžmĽqŁó—_·±¸Qy-w=z•›ť}ŹÁPZżŢ¦Q ňz>|{âDnVV™¶öD??{ËICAvQă䵼ŕpxii%ř4jKKŁĐPF= Ż ńî][RŇÍŘŘ.—ďĺ5Ó&שS'‘]ÔŘyMľÚÚ–“' SS‹[Zş`őHĽ&Pg''#ănTTnuő{77˰0·… §]ÔXyM&ŃŤ¸tuŐ‚‚Ă4ęQyM8|h;"âZIIµ•Ő'ÁÁŽ^^Ö4ÚxĽZďHĽ&AWWď™3·NťşńüyLŁe×#§ĽüuLL~fć]##­ ě7lX¤®>ě˘ĆČëQőüyÉąŮŮe\®`Ő*k‡ŮłŤÉ.j|ĽiŻ_łOťş™xS ¬Ycębb˘EvQcäőhŕó—.•'%ݸńĚÄD›ĹrZ˝Ú¦Q“ňztttpΞ˝}âDnmm‹››ĺ¶mîÖÖfdĄđ ŻGVKK×éÓ˙ą—»»%‹ĺÓ¨Éy=šđˇí#G®ŢąóÚöö¶ź7˘#äőH©¬¬=~<çÂ…{&Ŕ4j9yM |h;#㮉‰Vp°Óşuv ÜüwĐ Ż †ßr)6¶ Ľüµ……ѦM0ŤZľ@^“čŐ«¦üää[T*eőj›Żľr52Ň$»(EyMúúÖŘŘ‚ôô6»¦QË-Čkҵ·÷¤¤GFćĽßľlŮśĐP—ůóMÉ.J1@^@bµŹĎB}}u˛‹ŇA^Ë .—˙믢˘rďŢ}µpáËiůr+Úţá˙;zô(ٵ(*]ÝuşşëŚŮ&GăZZZ•••Âasrr"ű©‰FÓĄŃĆÔ ÎÎÎĂďe!y  ¬l¦­˝J_?D®^>rBâUüß”źźogg·sçN‹SPťťÜ‰éy’]ČVŻ^]^^>sćĚa¶“źźżcÇ{{{BŞÄ***úç?˙IHSä&@WŹÁp'eÓňLâUüÁÚ'ź|âëëKFU@®ŮŮŮÁ!ź„„ŽgBČ9-Ĺy Šňä5(ČkP CÉ몪*%%%33ł;v´´´ ĽĘăÇŹUTTđ0 [±b…řo…Bˇ©©)ţ€Ź®Ţ÷amSęZ!LšźČOJBzzşěM P¤˘ţQ!˘««ëăăS[[‹>¶[>şÓ ‹G}­¦¦ćîîţäÉ4ÔľW]<輮¬¬\¸pˇşşznnnssóąsçž>}joo˙ѡŃhůůů ˘%yyy˛ŻN`›řôĘĘJeeeŃŚôˇ ŢÎÇÇgP-Ěś9ł§§gh['ÝđŹ ńX^^®˘˘˛qăĆŹ®őŃť]L8bűş¦¦ĆŇŇ2(( u˙Ś«.t^‡……ůůůEDDĚś9sâĉÖÖÖ/^ś4iŇţýűÝÝÝ<Ş­­Ĺ0ěŻý+B¨ľľĂ0 ‡aXcc#•Jýâ‹/’’’Dm&&&Šď—GŹŮÚÚN0ÁÔÔôÔ©SŤŤŤâ«#„"##uttôőőOź>ŤŻňŃ6«łłsÓ¦MúúúĆĆĆ»wďćńx‘‘‘óçĎçńxˇť;wş»»KTŐ×ăÇŹÍĚĚ˘ŁŁuuu ’““ńĺííí:::fffIIIô·Vß’†üě7üŁBĽ5##Łm۶KlEâŔ@2ě´@ ±}­ĄĄĹd2+++ч'§íííAAAřţŮłgŹčń}_ű{]<¸ĽnkkËÍÍ _aŘöíŰłłł=<|XƵú–4ägG,˘Ž ‘şşşź~úiţüů’80$~+u§ şxďë–––„„777‰ á;°˛˛2777!!!##!Ôßkż?c°‹EgţľľľľľľŇ®+đ_Ďź?Ç0ŚËĺJ,/++SSS{ř𡚚—ËݲeË·ß~«®®ÎăńľúꫯżţZ´Sđř|ľ±±qYY™P(LNN^şt©řź3ťťť\.7>>^|-ü„Đű÷ď…BáŁGŹdlSâo% }ŰŰŰK§Ó[ZZđ˙^ż~}Á‚BˇđĹ‹:::ććć.\č[•„ęęj©ŐöööŇh´ŞŞ*ĽńŚŚ Yžc% !”’’2đcdńŃv9*ÄwťššÚŠ+^ż~-ü°w{`ŚŐ. …)))âŻâáµŘŤęęęĎź?Ší|ľxńoĽ°°°´´t|v±Ä«opçד&MÂ0¬¦¦FbůŰ·o fÍšĄ©©YZZZPP°nÝ:]]ݲ˛˛ĽĽ<‰ÇS(??żřřx„Pbb˘żżżřooßľíččhgg—™™Ů·%%%üťBů řŰ”şş:.—«©©‰ć°dÉ’WŻ^!„¦NťęááÁĺr—/_.±Jß÷333©ŐÖŐŐ ü·ˇ)S¦Čňű+IrTďŔ¶¶¶ěěl‰‡v`H]<4„÷uggg@@‹ĹľEűÍÁÁÁÚÚAvzô¨§§'BhٲeçĎźŻŻŻ·°°pqqIOOűöí˘E‹ú6Ĺd2Ďś9óćÍ››7oz{{‹–766GEE•––îßżżďŠ|řŰ_›ĄŻŻOĄREo%%%ˇŇŇŇÜÜ\ŮŻdÖ·Z}}}„ĐË—/ń˙VWW˸–Ô’äGņs`ô]<4„÷5Á ’x¦ř|óć ţßK—.áďĐĐĹţĽ1"""11qűöíOž<éééikk›1cĆÝ»wżů愇‡ÇńăÇ-Z„a‹‹Ë±cÇÜÜÜčt:†a|>źËĺŠÚ±°°033 đôôd0˘ĺř3ˇŃhl6űď˙;źĎommí»şTýµ‰kÓŐŐ5@;ĘĘĘ>>>;věhlllhhX·nÝáÇ9“É<|řp\\Üľ}ű^ľ|)cU}_łfMxxř»wď^ĽxqŕŔYŽB©% j»#ЍŁbRŚ! ]ÝÇÇGęęRIm!Äáp´Ä„„„ ÜNdd$ŹÇ›9s¦ĄĄĄžžŢ_ţň—={öĚ1cŐŞUsćĚŮĽyóĆŤĹ«Â?b·}űöţ˙ůçźŐÔÔĚÍÍ—/_H§Ó.¦ż’dYktxTôGę1śšˇ‹‡†đľ600Ŕ0ěÜąsâ Ł˘˘h4šąąąłłs``ŕŞU«†PęěbŃHŤ,ź6ô§»»˙ Č"11±ľľ˙9##ĂÂÂb$¶‚FëóĆţŚçŁbtşX8ęź7ögö5)ŻbbľŹ®˘˘2wî\Bš233˙řÇ?¶µµ˝zőęoű>đ7öŚçŁbśt±Č8ěkRş®B‚ĆĆF+++SSS|ŕŚ%ĐĹc)] 7L#AVVŮU€]<ć‘ŇĹp~ Šňä5(ČkP |ŢźźżtéR˛JrëűďżŹŽŽ&» Ĺ»wďl @Îý7Ż·lŮBb€p„Ľö~üńÇ;wî ż0´´´†sÝ`qrHâUŚ ‡z/Ł ĆŻ@1@^€b€ĽĹy Šá˙ěÚAćî¶ĆqIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_plot_svg_item__inherit__graph.md50000644000175000017500000000004012052741142024223 0ustar gudjongudjon8d6405db45f23ebf0dad016b7fd5857dqwt5-5.2.3/doc/html/class_qwt_plot_raster_item.html0000644000175000017500000011035212052741164022016 0ustar gudjongudjon Qwt User's Guide: QwtPlotRasterItem Class Reference
QwtPlotRasterItem Class Reference

#include <qwt_plot_rasteritem.h>

Inheritance diagram for QwtPlotRasterItem:

List of all members.

Public Types

enum  CachePolicy {
  NoCache,
  PaintCache,
  ScreenCache
}
- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

 QwtPlotRasterItem (const QString &title=QString::null)
 QwtPlotRasterItem (const QwtText &title)
virtual ~QwtPlotRasterItem ()
int alpha () const
CachePolicy cachePolicy () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &rect) const
void invalidateCache ()
virtual QSize rasterHint (const QwtDoubleRect &) const
void setAlpha (int alpha)
void setCachePolicy (CachePolicy)
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
virtual QwtDoubleRect boundingRect () const
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
virtual int rtti () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Protected Member Functions

virtual QImage renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &area) const =0

Detailed Description

A class, which displays raster data.

Raster data is a grid of pixel values, that can be represented as a QImage. It is used for many types of information like spectrograms, cartograms, geographical maps ...

Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily.

QwtPlotRasterItem is only implemented for images of the following formats: QImage::Format_Indexed8, QImage::Format_ARGB32.

See also:
QwtPlotSpectrogram

Member Enumeration Documentation

  • NoCache
    renderImage() is called, whenever the item has to be repainted
  • PaintCache
    renderImage() is called, whenever the image cache is not valid, or the scales, or the size of the canvas has changed. This type of cache is only useful for improving the performance of hide/show operations. All other situations are already handled by the plot canvas cache.
  • ScreenCache
    The screen cache is an image in size of the screen. As long as the scales don't change the target image is scaled from the cache. This might improve the performance when resizing the plot widget, but suffers from scaling effects.

The default policy is NoCache


Member Function Documentation

int QwtPlotRasterItem::alpha ( ) const
Returns:
Alpha value of the raster item
See also:
setAlpha()
QwtPlotRasterItem::CachePolicy QwtPlotRasterItem::cachePolicy ( ) const
Returns:
Cache policy
See also:
CachePolicy, setCachePolicy()
void QwtPlotRasterItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the raster data.

Parameters:
painterPainter
xMapX-Scale Map
yMapY-Scale Map
canvasRectContents rect of the plot canvas

Implements QwtPlotItem.

Reimplemented in QwtPlotSpectrogram.

void QwtPlotRasterItem::invalidateCache ( )

Invalidate the paint cache

See also:
setCachePolicy()
QSize QwtPlotRasterItem::rasterHint ( const QwtDoubleRect &  ) const
virtual

Returns the recommended raster for a given rect.

F.e the raster hint can be used to limit the resolution of the image that is rendered.

The default implementation returns an invalid size (QSize()), what means: no hint.

Reimplemented in QwtPlotSpectrogram.

virtual QImage QwtPlotRasterItem::renderImage ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QwtDoubleRect &  area 
) const
protectedpure virtual

Renders an image for an area

The format of the image must be QImage::Format_Indexed8, QImage::Format_RGB32 or QImage::Format_ARGB32

Parameters:
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
areaRequested area for the image in scale coordinates

Implemented in QwtPlotSpectrogram.

void QwtPlotRasterItem::setAlpha ( int  alpha)

Set an alpha value for the raster data.

Often a plot has several types of raster data organized in layers. ( f.e a geographical map, with weather statistics ). Using setAlpha() raster items can be stacked easily.

The alpha value is a value [0, 255] to control the transparency of the image. 0 represents a fully transparent color, while 255 represents a fully opaque color.

Parameters:
alphaAlpha value
  • alpha >= 0
    All alpha values of the pixels returned by renderImage() will be set to alpha, beside those with an alpha value of 0 (invalid pixels).
  • alpha < 0 The alpha values returned by renderImage() are not changed.

The default alpha value is -1.

See also:
alpha()
void QwtPlotRasterItem::setCachePolicy ( QwtPlotRasterItem::CachePolicy  policy)

Change the cache policy

The default policy is NoCache

Parameters:
policyCache policy
See also:
CachePolicy, cachePolicy()
qwt5-5.2.3/doc/html/class_qwt_legend_item_manager-members.html0000644000175000017500000000711312052741140024032 0ustar gudjongudjon Qwt User's Guide: Member List
QwtLegendItemManager Member List

This is the complete list of members for QwtLegendItemManager, including all inherited members.

legendItem() const =0QwtLegendItemManagerpure virtual
QwtLegendItemManager()QwtLegendItemManagerinline
updateLegend(QwtLegend *legend) const =0QwtLegendItemManagerpure virtual
~QwtLegendItemManager()QwtLegendItemManagerinlinevirtual
qwt5-5.2.3/doc/html/qwt__plot__spectrogram_8h_source.html0000644000175000017500000004005012052741135023111 0ustar gudjongudjon Qwt User's Guide: qwt_plot_spectrogram.h Source File
Qwt User's Guide  5.2.3
qwt_plot_spectrogram.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_SPECTROGRAM_H
11 #define QWT_PLOT_SPECTROGRAM_H
12 
13 #include <qglobal.h>
14 
15 #include "qwt_valuelist.h"
16 #include "qwt_raster_data.h"
17 #include "qwt_plot_rasteritem.h"
18 
19 class QwtColorMap;
20 
35 class QWT_EXPORT QwtPlotSpectrogram: public QwtPlotRasterItem
36 {
37 public:
52  {
53  ImageMode = 1,
54  ContourMode = 2
55  };
56 
57  explicit QwtPlotSpectrogram(const QString &title = QString::null);
58  virtual ~QwtPlotSpectrogram();
59 
60  void setDisplayMode(DisplayMode, bool on = true);
61  bool testDisplayMode(DisplayMode) const;
62 
63  void setData(const QwtRasterData &data);
64  const QwtRasterData &data() const;
65 
66  void setColorMap(const QwtColorMap &);
67  const QwtColorMap &colorMap() const;
68 
69  virtual QwtDoubleRect boundingRect() const;
70  virtual QSize rasterHint(const QwtDoubleRect &) const;
71 
72  void setDefaultContourPen(const QPen &);
73  QPen defaultContourPen() const;
74 
75  virtual QPen contourPen(double level) const;
76 
77  void setConrecAttribute(QwtRasterData::ConrecAttribute, bool on);
78  bool testConrecAttribute(QwtRasterData::ConrecAttribute) const;
79 
80  void setContourLevels(const QwtValueList &);
81  QwtValueList contourLevels() const;
82 
83  virtual int rtti() const;
84 
85  virtual void draw(QPainter *p,
86  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
87  const QRect &rect) const;
88 
89 protected:
90  virtual QImage renderImage(
91  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
92  const QwtDoubleRect &rect) const;
93 
94  virtual QSize contourRasterSize(
95  const QwtDoubleRect &, const QRect &) const;
96 
97  virtual QwtRasterData::ContourLines renderContourLines(
98  const QwtDoubleRect &rect, const QSize &raster) const;
99 
100  virtual void drawContourLines(QPainter *p,
101  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
102  const QwtRasterData::ContourLines& lines) const;
103 
104 private:
105  class PrivateData;
106  PrivateData *d_data;
107 };
108 
109 #endif
qwt5-5.2.3/doc/html/class_qwt_raster_data__inherit__graph.png0000644000175000017500000001146412052741157023762 0ustar gudjongudjon‰PNG  IHDRł€ĎϧbKGD˙˙˙ ˝§“éIDATxśíťyTWűÇďd€Y€Č¦H©BQ~TʵJѶ Rqc+¸•ÚŞuŁŐňŞ Z«–SŹŰ+ ŔŤĘ©‹ÖCŲ@vB‹@¶ůý1íĽc2TH˘ÜĎ_3÷ŢyžçÎ|sçÎ}& ‚˘(€@” h:–•!*BT„šÚ<ÝąsgÇŽjs÷öÁĺrSRRX,–zÜ!j{6Yşti^^žzÜ˝}äĺ奧§/]şT=îÔ7fbccŐéńm"//Oťîŕ<BT„¨ 9Pr 2 ä¨őŮd466ž8qâîÝ»]]]\.wöěŮÁÁÁL&SĹ!µµµáááąąąµµµÁÁÁxąžžž˝˝ý† &L0D︩ˇ´Ä}Ńh4›5kÖ8;;żľem@ëĆŚšššµk×ęëë˙ř㏗.]Úąsg]]]DDDww÷-Đéôß˙%==ÝÚÚzďŢ˝#-î+##ĂËËkűöí555#äKÍhť2<řÉ'źDEEYZZ2ŚI“&íŢ˝ŰŔŔŕÔ©S_}őUzz:@ ¸»»§¦¦ÚŰŰÝÝÝ%‰»»»H$"Zc±XµµµŘîÓ§Oׯ_ďáá€vóňň‚‚‚<<|řÔ‡Ă!ZVŽDŰĐ®yFGGŔÄÄDˇÜÜÜ\(şşşžVŐŢŢ.•J.\¨ŤFĂ6” …\.ŰVöEDu­6 ]ĘĐ××wrrâńxXÉůóç?üđCŹ7kÖ,€««k~~~{{»ĄĄĄ““ÓÍ›7ŰÚÚH ęęęzyy}ůĺ—‘Häȑɓ'?yň¤   ‹ÇŚ“ ‘HÎť;·sçÎ={ö`ÇR(”‹/Ž3Đ××'‰úűű(ţ;wîŘŮŮ ä Gu­– ]ó @TTTnnnrrr]]ťX,îéé ŞŞŞZąr%ŔŐŐ5;;{Ę”)‚899eeeM›6ŤFŁ!"—ËĄR©˛A]]Ýţţ~™L†e•©TjWWWZZš\.ďéé‘Ëĺ111|> ŁŁŁŁŁ›˘Óénnn‡‰D»víşpáÂ@awvvfggçää¬Zµ @ę ·LZ;2§óŐŃ:eXYY=z´««+**jÁ‚ąąą~~~¦¦¦ggg‰Dâččx˙ý÷{{{±IĆرcÇŹďëëŰŐŐĄ`ĐČČA?ţřĂŔŔ 888**jÝşusć̱°°ŤŤe0‘‘‘±±± .ĽqăĆćÍ›‰¦bbbd2YPPPpp°ˇˇaxx¸‚qlNăîîľdÉ’«WŻĆĹĹYXXH}á–©TŞr­:NîË Ö÷3Z[[_íĹâÚÚZ[[ŰaŹę ÂÝÝ]ťďghÝAŠŽŽÎ(—…úy3”Q?Pr 2 ä@e@ČĘ€•!G­«ă —/_V§GČ«Ş‹ÄÄDM÷Uzz“ŚŤWR( M2 L&óÁj»^ę[Őr|}Ţ˝űô?˙ń ™ĄéX´8Ď€ćfQaa ‚ŻPÓ±h PŔăýMˇ ( îÝ«©«k×t8ZTś?W&“¨TĘĹ‹EšG+€Ęʵđůř~ňsçîj6-*deýM§ăç­Şj~ř°I“iP -í/‰DŽďŇhÔělxCőĘ()©«ŻK¤RŮąsÁ‡ůѮڬ¬żi4ŞBaCCGQQ-iűŃèV†L&?ľP*•)”ÓhÔ¬¬ż5’ö0Ş•QP𸽝äë˛R©,#Ł{޵ŚjedfŢSľ•`…Ď˙üłZÍńhŁZ·oWËdrŤJŁQ©T*•JÁ¶1ą<Öt€šdTgÔJKëJKźaŰ%%u˙ýďťřř˙˝łďíýŽľ†BÓ<ŁZD.^,^·îdCĂM˘-Śę» DPr 2 ä@e@ČĘ€•!*BT„¨ 9Pr 2 ä@e@ČĘ€•!*BT„¨ 9Pr 2 ä@e@ČĘ€•!*BT„¨ 9Pr 2 ä@e@ČĘ€•!*BT„¨ 9/ü'RWW—ňżgŹ„B! ˇˇAÓh ízxá×ňóóe2ĹÇ%ô÷ËD˘~“ŃűĂ\fffvvvřî c†L&{ď˝÷LLLÔDĂ”——+ pž!*BT„¨ 9Pr^EŹ? 233ÓŃѱ¶¶ŽŽŽîččP}źĎg0ŘB`ěرţţţŘ*ŢFµ@MMM``ŕřńăőôôlmm·lŮŇŰŰű QáňŇʨ¨¨>}:›ÍÎËË …•••3gÎT8şşşř —––2ŚŐ«W=E=<}‹ ?°¬¬ĚŐŐ•Á`XZZž###ccă3gÎl۶ŤĂác 4EYYYYY±äĺ”!‰(ĘŁGŹĘ322lmm÷íŰçĺĺ…˘hZZ›ÍöôôĶń«NĽü(Š644¬X±âÓO?U¨ đńńinn®¬¬ś:uęŢ˝{ńZ©T:eĘ//ŻĚĚL@@ Ł˘˘‚JĄ.\¸°ąąůţýűďľű.¦Ô°°°ŔŔŔÖÖÖęęjWW× (âëëŰŇŇRQQ1aÂŹG RGGçóĎ?oll$ ;ÜŰŰ»©©©ŞŞĘŮŮ™ôŔE‹}˙ý÷˝˝˝)))&&&XŤ¶qăĆ®®®~řA|ŰÜÜ|hqDx]eTWW#‚}ć±X¬˛˛2‹%‘H"""¶nÝĘfłĄRéúőë7mÚD<éÄ!„Ĺby{{×ŐŐˇeôőőQ(”ÇŹcĆ322¦NťJÔŤH$JNNöńńárąööö۶mëééÁŤWWWcÍRSS§Nť*‹étzGGVxăĆ ±XLŁŃp‰ßşu«°°P!Č–––‚ÁÇ 333•DQôÁ===‰äĉx …Ň×ׇ˘hyy9q[a(U3ĘĘxau|PŚŤŤ©­­µ±±!–×××›™™988ćç秦¦¦¦¦ÝĽyó§ź~"6ÖŐŐíëëSᥩ© `mmŤíÚŘŘ<{öŚŘ€ÍfGDDDDD (ZXX¸yóć•+Wfff( ›ťťÝłgĎ%‰±ŤŤŤrą|âĉXɬYł|>oŁŁŁcllźOŁŃÄb±Â<±jÉ’%Ä[{\\náöíŰT*5!!ˇ®®®··—Ďçűúú†„„ ˙ć>>>---ĺĺĺöööqqq(Š„††¶¶¶677űřřlذEQ˙Ď>ű¬µµµ˛˛râĉ.\(Hĺ`P]ľ|96Ϩ®®vqqa0 ]hiiA¤¨¨H Ńh´ŽŽb¶5ÂëÎ30=zhjjŞŁŁcccăâ⋢hgg'ťNOLLDQ´®®’’‚˘hWW—ťť‹Ĺş}űöP”ŃÖÖ¶|ůr##ŁqăĆmܸQ,ăANNŽ››“ÉÔÓÓ›h+W®ŘÚÚâîěěěââ↱Ź2ü+]ŞłęxJovęÔ)|QčđáĂnnnčŮjܬr]ůĘ]»v 7«Úšrí ť"ÚHŞsë6čďďçp8÷ďßGQ´¤¤„ĂáŹheG …¬:ř7%ŤÇ-‰ źĎGQtÎś9ÇŹGČVc¤9tĺ+W\\l``€m«°FZKÚ©ě¤ Őąőˇ$ßW®\‰-Ňoٲ%44t¤ű¨ŔëfáIQ‘U'¦¤1°7z222BBBŠŠŠ®\ąČVcćĐ•577ăůXÖ­˘}RÍ­Ú`É’%»víÚľ}{zzúŃŁGŐßGFvĄ OI HHHŔR˛L&ËV¸¸¸”••ĺääc9t@Ŕáp===mmmĘď_ąrĹŐŐü›űČšęZŕöčżßVxkä5™?~`` ŹÇëéé™;wneeĺ@1ŚPĐŔ¨··wXXXrr2öÉřgě˘ŃÚŰŰd2™H$BD&“I$]]]˙čččřřxą\ľzőj›µk×âÖÁąsçŽ?~ďŢ˝A­‘Öbšű†††b±ř×_uqqŮż˙0ž===OOĎ/ľřbٲe /ňŚtÉ!ŢZ†ĺŮDą±rł€€KKKą\Ží*g«‰9wĺ:qrC§ÓťťťŻ_żŽWmMEfśô•Deű±±±l6{ܸqgĎžU> MD†’|OMMüő×_Ćđ˛}TqM1”ç/üJB^^ü.ĽÉÉÉ‰ŠŠRľŹ¨ňňr€^Wǵ…gĎž%&&j:€ĘĐĹbqTT”¦ů‡·* ˙FÓŢŢ®é^Žr 2 ä@e@ČĘ€Ł8íččJĄ ˘Aúúú^üyAl6{4˙Tę(űJ&Î k śg@ČĘ€•!*BT„ś˙wĄČşB |IEND®B`‚qwt5-5.2.3/doc/html/qwt__double__range_8h_source.html0000644000175000017500000003042012052741134022152 0ustar gudjongudjon Qwt User's Guide: qwt_double_range.h Source File
Qwt User's Guide  5.2.3
qwt_double_range.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_DOUBLE_RANGE_H
11 #define QWT_DOUBLE_RANGE_H
12 
13 #include "qwt_global.h"
14 
31 class QWT_EXPORT QwtDoubleRange
32 {
33 public:
35  virtual ~QwtDoubleRange();
36 
37  void setRange(double vmin, double vmax, double vstep = 0.0,
38  int pagesize = 1);
39 
40  void setValid(bool);
41  bool isValid() const;
42 
43  virtual void setValue(double);
44  double value() const;
45 
46  void setPeriodic(bool tf);
47  bool periodic() const;
48 
49  void setStep(double);
50  double step() const;
51 
52  double maxValue() const;
53  double minValue() const;
54 
55  int pageSize() const;
56 
57  virtual void incValue(int);
58  virtual void incPages(int);
59  virtual void fitValue(double);
60 
61 protected:
62 
63  double exactValue() const;
64  double exactPrevValue() const;
65  double prevValue() const;
66 
67  virtual void valueChange();
68  virtual void stepChange();
69  virtual void rangeChange();
70 
71 private:
72  void setNewValue(double x, bool align = false);
73 
74  double d_minValue;
75  double d_maxValue;
76  double d_step;
77  int d_pageSize;
78 
79  bool d_isValid;
80  double d_value;
81  double d_exactValue;
82  double d_exactPrevValue;
83  double d_prevValue;
84 
85  bool d_periodic;
86 };
87 
88 #endif
qwt5-5.2.3/doc/html/functions_0x78.html0000644000175000017500000001410612052741152017155 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- x -

qwt5-5.2.3/doc/html/inherit_graph_15.png0000644000175000017500000000247212052741162017333 0ustar gudjongudjon‰PNG  IHDRc%ŮXŔłbKGD˙˙˙ ˝§“ďIDAThí™_hRoÇßłÔĽŘ9“lé˘MłŤÁŘŔ]8Ť jŰ"H©p dÄćţÁX] v5E uawIIâtŰí˘üCT‘¶–Ö†éZΡNA‡ĎďâüóSł3á Îçę=ß÷yż>ďë{Ä@Ş.ŕŻqŠ.ŚStaś˘ ‹ú‹Ĺ¶··ŞšĘáÂ… “““ÔFýí3Ť …âęŐ«e/¬˛ŘŘŘxűömέ€•Ż3Ťĺ*©B!;&'ČśStaś˘ ă]§čÂ8E—ťňů|ýýýBˇĂáĹâŃŃŃťťťâSĽ^/—ËĄĘĎ˙Yş§<O{{;AV«5‰ĚĎĎŻ®®Ęd˛ßšőw^Ľx‘)Čąs熇‡©‘L&ÓŮŮ966vţüů{÷î@ @ÍÎÎ@0¤®čp8>śź6Ź«TŞcÇŽ?~|bb"ťN@4˝yóć‘#GD"‘^ŻĎNĚ{<‘H¤Óéř|ľ@ xţü9© ‡ĂrąĽ¦¦¦ˇˇaff¦ŕŇ9ôaß=ŤF­V«Z­¦1 YZZęîî~ýú5iA6› !dłŮZZZ<YĺŃŁG fV«Ő‰DÂĺrŮív»Ý®ŐjBĂĂĂŰŰŰn·űĺË—>,.ţńăÇÇŹ}>ßĐĐĐřř8©T©TápŘív///“”Č~{jmm Ă0ň §ât:q˙ôéŽăétúöíŰwďŢ%boooppprr2ëTv@%•J±ŮěťťňńŐ«WR©4•J±X,źĎG- 9± Řăń „¶¶¶Ŕĺr‘Ęd2YUUµ˛˛B*M&SÉ=Uŕm¦8µµµ†­ŻŻK$j<…ÂććfŹ÷ţý{‡Ăa0 Óé´ŮlŹ?.ž6 ¦ÓiŹG]( f2±XLFNž‚ Ξ=«Ńh˛‘řý~ŤFÓ×ׇşté’Ůl…BMMM]]]&“)tttO+:”m“x<ţîÝ;@€úúő+©ńűýEÄ! ĂrŇÖŐŐaćóůr2”Âo».—ËĹçóŐjµ×ëM&“ÓÓÓl6»¶¶6€Ůl®®®ľ|ů2<}ú´şşúĘ•+ŕőzY,V*•"w_„Âîî.(Š[·nmmmmnnöööŽŚŚŔµk×zzzBˇĐÚÚšT*ĺrąd ůbꦦŽĺrůĹ‹ż˙ţůóç¶¶¶’w_)NŔ—/_”JĄ@ ŕp8‰dllL*•NOO@4ełŮ÷ď߀ŤŤ „Đ“'O ‹ť9sÇń7oŢä|[7nÜ€H$˘T*ů|>źĎH$dđúőëAś>}úŃŁG8Ž“ä‹ĺT8V(<ŻľľţŮłgĺv*źd2ét:K›[˝^ …ȱĹbijjúăKäógn ż‚Ëĺ¶¶¶ţ©lYîÜąŤFż}ű677G…BĄż÷iµÚź?ž8q˘ĄĄE$MMMT%űľ%”ˇP¸¸¸xĐU Tů=U90NŃ…qŠ.ŚSt)p˘ëtşň×QQ|řđˇ@”ząrą\8Ž—˝°JD&“ĺÜ<˙ó2CsŠ.ŚStaś˘ ă]ţţ™•qގIEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_16.png0000644000175000017500000005424512052741162017341 0ustar gudjongudjon‰PNG  IHDRĄ#„»ď=bKGD˙˙˙ ˝§“ IDATxśěÝg\SWđs!$  ‚LˇVĹ*VQq2ZqVTf-uRµ¨u ˘ÄU­ ”2E­›áDK"(ĘŢa“qß雦€HŔç˙óCrrĆ“›cîČąŽăAÔ ×Aľ>Č÷ŔŔůř$E`ਫ«[˝zuUU•¨éüüü&L ę(ŔëóÂîŕŕ`gg'ę@ÄÝăÇŹÍÍÍĂĂĂEř‚Ŕţ=@Č Ť}’˝˝˝¨C_8 |ď€ň=0đAľ>Č÷ŔŔů ąąąË–-ŁŃhRRRZZZŢŢŢ555ť7a0d2™÷@ĄRmmm‹ŠŠëtŢOJJĘś9säĺĺĺää&NśxëÖ-!˝9Ää{@_ËĘĘ255ĄP( ŐŐŐQQQŮŮŮćććźLů|$ ˙żôôt2™ĽfÍšnĹđňĺËYłfÍ›7ďÍ›7ďßż_ľ|ů˘E‹RSS»˙nč ßúš›››““ťN×××—••;vl\\ś’’’źźź•••żż?B¨¨¨ðýű÷#„JJJ0 300hiiÁ0¬˘˘B°7555Ź”””6ŁÔÔÔ8;;S©T Ť-[¶ öŕíí˝uëÖőë×+)))((|˙ý÷îîî·nÝ< xDAKK+((HNNNGGgűöíĽ eeeD"1//ݎˇÁŐŐUEEE]]ÝÇLJÍf÷ö6 » ßú“ÉLHHđôô,Ä0ĚËË+66ÖÚÚúţýűˇääd …’JLL411ÉĘĘâíÖS©TÁ¶ĹĹĹGŽ3fL›\]]™Lfffć˝{÷âăăů=H¤¤¤$GGGÁúűöíŰşuëÇÂ...~ůňeNNÎŽ;˘ŁŁy…‘‘‘“&M>|¸§§gcccFFFRRRRRťN˙Ś-@Ż€|čSĺĺĺ8Ž6¬Mą¶¶viiéěŮł“““Ůlvrr˛»»űÇ9Nbb˘µµµ`eŢn:Źžž^]]Ýďż˙ަBDDD`` ˛˛ňČ‘#wîܵ˘˘ÇqŤÖő°[[[÷íŰGŁŃ,X——÷úők„PXX‹‹ ‹ĹşxńbPP•J1bÄľ}ű.]şÔíí@/|čSJJJ†´)/,,¤ŃhFFF ©©©ÉÉÉK—.ĄR©iiiíó˝ŕů{&“;tčPÁ %%%!---ŢSmmí>đ_UTTäŤ(ŘäŐ«W§OźţXŘRRRJJJ! …bmmUTT”––fggW\\Ěb±xLź>=??żű€ŢůЧ(Š……EPPż$ ///((hÁ‚ˇŮłgGGG—””XZZFFFNś8±[ŁđöÝß˝{Ç{š——§ŞŞ*äI“Îś9#ŘäŕÁ7nÜ@ńď"&ř'†aüÇŃŃŃ‘‘‘ .4hŠŠŠ„„DMM ďďŹúúúgĎžu+ZúÜ/Đ×čtúÔ©Sq_·nť¦¦&“ÉÔÓÓSPP¸|ů2BČÚÚzٲeVVV†YZZ®_żţ›oľ!‰†q8‹Ő•!H$ҢE‹ĽĽĽNź>][[»cÇGGG~D"ńСC–––ÁŢŢ^ZZ:222444!!ađŕÁ­­­ţůç¸qă:ěÜĆĆfŐŞUt:ýäÉ“Ľ±lmm˝˝˝8Ŕĺr׬YŁ­­}řđa!n1>ěßúšˇˇaJJJUU•………ĽĽ|pp°»»»¦¦ćŃŁGBVVV---S¦LAM›6­ľľžw0_]]]GGGQQ±ŞŞŞ+Łś:uJVV–wŔÚÚÚÇÇG°33ł[·n=|řĐĚĚlôčŃ111ńńń'NTQQٱc‡ĂW_}ĺěěÜaĎ222óćÍkii™6mŻääÉ“l6[__ßĐĐPYYyďŢ˝ÂŮRĆ?rź)<<ÜÁÁˇgß*ÍÍÍ côčŃBŹJ ńî‡ 7} öďbL&!É‘€| |ď€ň=0đAľ>Č÷ŔŔůř`}=€ýöŰoí kkYňňÄľF<ĺććjkk‹: đe|šQŁFÉÉÉ­]»V°HT4h™¬SQĆb•*6qÓćnĽô6X_Đ+Řlî•+ĎOźN|őŞpěX-«3 ěÓ-˝ň=@Čx™ţřń{ŮŮĄS§ęşşN›:UWđţr€ľů 4l67**őȑۅ…Ő‹ŤY»všę§›zśżAs3+$äńÉ“÷++ëťś&®_?MUUAÔAţůđY¸\<225 ŕfQQő’%㼼ľŃÔTuP€¶ ßzîÉ“·;w^ÍČ(´µçé9SK‹*ę|č ŁxÇŽääl›ŃÇŹ;kk+‰:"@g ßş§®®ůČ‘ŰgÎ$ 6äÂ…Ő3g‰:"Ŕ§Áőů€n¸};cóćČ–ÖĆŤłśś&‰˘ŽĐ%°č’ââšÍ›#ďÜÉttś°}ű| …,ęÝůđ 8Ž_şôd÷îŘ!CEEm0a„¨#tä{@gĘËë~ü1ěÎťLłť;P(ҢŽĐďu˙>ĂË벤¤ÄĺËk-,ôD ç ß:ĐŘŘşysDddŞ­í¸={–ČÉÁŮzú7Č÷€¶22 ׯ.+«;uĘĹĆf´¨ĂAÔÄKXXĘ‚GĄĄĄâă˝ Ů0`Ŕţ=ŕ--ěíŰŁ/_~˛nÝ´M›ćŔoëH ßBčÝ»ŠU«Îׯ™>Ý@Ôá„ ŽçĐőëéłf"‘$oßţ’=ä{ľh8Ž9r{íÚ ––úëŐŐ‹:"@Ż€ăů|ąĚćuë.‰DÂ˙/==ťL&ŻYł¦[1™™™µ¶¶ĆĹĹŐÔÔ<}úÔÔÔÔĘĘęÎť;mjęëë777w«sÄä{Ç}}Żś?˙`ď^Ű+&‹:śOssssrr˘Óéúúú˛˛˛cÇŽŤ‹‹SRRňó󳲲ň÷÷Ga¶˙~„PII †a---†UTTö¦¦¦ćáá‘’’Ňf”ššggg*•Şˇˇ±eË–ââbÁ<<</^|úôéQŁFIKKkhhl۶íŕÁ˙ý7BÁ`hiiÉÉÉĹÄÄđ÷㫪Ş455#""úbcđy ß0@pąř¦MÁÁét§eË&Š:śOc2™ žžž‚…†yyyĹĆĆZ[[ßż!”śśLˇPB‰‰‰&&&YYYĽÝz*•*ض¸¸řČ‘#cĆŚi3««+“ÉĚĚĚĽwď^|||pp0ż™«WŻz{{·i˛~ýz~aqqńË—/srr×Ĺ[»vmeeeffćíŰ·Ă„´IčEďŘlîúő##SĎź_˝paŰ„'žĘËËq6lX›rmmíŇŇŇŮłg'''łŮěäädww÷‡r8śÄÄDkkkÁĘĽÝt==˝şşşß˙˝M…ŔŔ@eeĺ‘#GîÜą3$$„˙jII ‡ĂŃŇŇâ=˝sçż7ţ®|kkëľ}űh4żUsssttôńăÇŐÔÔtuuwíÚ%Ľ­@o|@żÇbqÖŻżx÷nÖĄKk§O7u8]Ą¤¤„aXAAA›ňÂÂBŤfdd¤  šššśśĽtéR*•š––Ö>ß žżg2™±±±C‡¬PRR‚âgtmmí>đ_UTTÄ0,??ź÷ÔĘĘŠ×Ő“'Ořu¤¤¤”””ű,--Ĺq\GG‡÷tÄź±č#ďčßZZŘ«VťML|}éŇ÷ććý)ńP( ‹   ~I@@@^^^PPĐ‚ BłgĎŽŽŽ.))100°´´ŚŚŚ,,,ś8±{§*xűĺďŢ˝ă=ÍËËSUýw‘AyyůiÓ¦:t¨M«+W®đ·˙ŞŞ*†aąąąü>»"żĘ cłą6?yňöÂ…5ffÚ˘§ŰčtúÔ©Sq_·nť¦¦&“ÉÔÓÓSPP¸|ů2BČÚÚzٲeVVV†YZZ®_żţ›oľ!‰†q8‹Ő•!H$ҢE‹ĽĽĽNź>][[»cÇGGG~D"‘N§Ož<™H$®\ąrÄĄĄĄgÎśéü<)))[[[77·sçÎ544řůů gsĐ›`˙€ţŠĂáş»‡$&ľľ|ym˙Úłç344LII©ŞŞ˛°°——vww×ÔÔý—‹˙đCčýűYˇˇ®â™ě?™LÉŃ‚|@?Ăĺâ7ţqíÚË‹ךu8€ţň=ý o˝+W^ś?żjĘ]Q‡č7 ßĐźěÜy58řá©SË--ő?]ţň=ýĆ/ż\={6ůřqgkkcQÇčg ßĐ?>|ë·ßľł±kŮÝů€~ (莿˙źţţööö¦˘ŽĐ/Aľ@Ü]şôxßľë?ýdýÝwDK÷ěŢ˝űôéÓľÔŇBnl$ÜŐűÜ>¬·€XűóϿ׬9żaĂôÍ›çŠ:–îŮż˙óçĎŰâ8VYI.*’e2I22쯿.m·8ý@&++0xđ`QľDď_IIŻťťO»¸Lúĺ—E˘ŽĺsĺçWž9“‘ŇÔÄZ°ŕëŐ«§šh:(ľ ďS…‹Ó--őOśXF ô×˝`‡{ýzzHČă‡sTU–/źdgg¦¬,'ę¸řâ@ľ@˝_5ţQ]]•ď‰D Q‡ÓUU ˇˇO.]z’ź_9yňČŐ«§ÎaŘ˙p ż|€Ř©¬¬·±9"+KŠŽv““#‹:śnKMÍ;}:éćÍW22RŽŽćK—Ž>\IÔAđĄ|€xillµł;V^^wíš§ŠŠĽ¨Ăé.˙óϿϝK~ř𫮮˛‹Ë$;;3 Ą˙ý˝Ŕ€żÇ@Śđîr›—WăŢŹ’}}}KXŘÓ3g’>|¨ž5kTxřşI“Fb_Ô•÷=Č÷‘-[">Ě _Ż«Ku,]’“StçÚµ—22¤•+'/[6II ®Ĺ@Aľ@\Ü {úűď+ÇŚé·´ń"˙·ßŻ_˙‹F“ß´iîŇĄŕĐ=â ň=báÜąţţ\ÉĂĂ 2=ä{ú“Ů<ţYY©¨(72™(Ş0xWäĹÄĽPWěînegg ™€ŽçĐGp÷ń «©i¸té{Q%űŇŇÚÇo…†>:tȡCß.Z4–Âŕ ů€>pëöíŚŘXOuőÁ}?zi)óС?ĂÂR†B§;Íťű•hĎ&úä{úB|ü_7ŹY:jT_Ż9_[ŰH§ß;{6YIIÎßßÎÓđe‚|@ŻËÎ.ńö]ľ|˛­í¸ľ·®®ůčŃ;.<‘‘Úµk!üĘ€/\Ż@ďb2›çÎ=¬¬,÷Çëú,ݶ´°ĎśI›Íuwź±bĹ™^\9'""˘şşş÷úđěěěÁYđEý{z—‹{x\jll=yŇĄo’=‡Ă }zäČíÚÚƵk-W­šÚŰ‹ő^ż~ÝŢŢľW‡đ?~|îÜ9QG8Č÷ô˘Ă‡o%$0˘ŁÝ””äz{,Çăâţň÷˙ł  rőj WWËľąĂM}}=oô>k@˛··ohhu`ŕ|@oá]ŁřÝ1š˝=VjjŢž=qĎžĺÍ›7úÜąUÚÚJ˝=" |@ŻxýşÄŰ;tٲ‰vv¦˝:Đ›7eżţwăĆßVV†·nýhh¨Ö«Ăú)Č÷_CCËşuGŽTŮąsaź_ąwo\|ü_&ڏ~Ý{ôča˝7 ż|€đmÚQQQwóćF©Wţ‹UVÖďß=,,EGG%4ÔuĘÝŢ0@ľ@Č~˙=)66-,l˝ŞŞ‚Đ;onfýţ{ť~ŹB!Ă2y€®Ął¦gĎň~ů%ÖÇÇÚÜ\Č7¶çp¸!!Ź'MÚt×ÍmzBÂ&›Ńý+Ůçćć.[¶ŚFŁIIIiiiy{{×ÔÔtŢ„Á`ÉdŢL•Jµµµ-**¬Ó•lll_Ĺq\SSł“ćv@ůˇ©ŞjX·îâôénn3„Űóµk/gĚ8čë˝xńŘ'O¶oŘ0CZş×Ďé YYY¦¦¦ %!!ˇşş:***;;ŰÜÜü“)źŹD"á˙—žžN&“׬YÓ­$%%“’’ĘĘĘř%‰‰‰]€~ ň=ÂÁ[ZGRR"0đ; Ún÷łgyóç]·î˘™Ůđ¶nŰ6Ż·×Ďé%nnnNNNt:]___VVvěرqqqJJJ~~~VVVţţţˇ˘˘" Ăöďߏ*))Á0ĚŔŔ ĄĄĂ°ŠŠ ÁŢÔÔÔ<<ťăxii­»űĄ9sLV­šú™=łXścÇ+$äŃľ}¶II[ćĚ1J̢Ą¤¤„aXAAA›ňÂÂBŤfdd¤  šššśśĽtéR*•š–––hmm-XYđü=“ÉŚŤŤ:t¨`…’’„––ď©¶¶ö‡ÚŚH śśśÎź?Ź ^¶l™ŕ«Oź>ť2eĘ„ bbbř…RRRJJ˙¬WŘŇŇ’››űŐW_đJŠ‹‹Y,–‚‚ďBÂéÓ§ççç·i€8€|@·Ĺǧ‡Ăýĺ—ŘĹ‹6nüCZZęŕÁĎ˝g̵k/§O?pčĐÍU«¦88ŘÝÝ]SSóčŃŁ!++«–––)S¦ „¦M›V__Ď;Ż®®®ŁŁŁ¨¨XUUŐ•QNť:%++Ë;H`mmíăăÓa...wďŢms0_IIiÇŽfff‹/9r¤ŕĄűměÝ»÷Ő«W—/_FťTVĆd±¸†ĹÇ{Ť=¬ˇˇ%0đöąsÉĘĘ”]»ÎśiÔWď@ČÂĂĂzöMŇÜÜĚ`0FŹ-ô¨ú{{{„Pxx¸¨¬§ @7pąř­[í“=BĂÁł˛Š““ł—.ť XŢÚĘvqů˝ĽĽžĹâ"„$$°Í›#'>|«µ•˝sçB3"Q˘ŹŢ€!“É_x˛ Ď@ľ ^ĽxWSÓŘľ\B‚€ÚĽyŽ™`9Žănn—ţú«€ĂáňJŘlîßżß¶­ĐŢŢě§źć(+ËőAŘů€n¸};“H”d±Ř‚…„áĂ•Nťr10h{5x@ŔÍë×˙<ߏBŁPd~ůeŃŔ»( ¶ŕz=şáúőtÁdO 0 suťvűöŹí“}DÄł€€[í’=ÂqśÉlˇŹ¨'d••—#„±Xĺ,V›]Ćb•łŮ•8ŢÁOö?fđŕÁŹ=jUÇcc_úůĹ×ňţçFFn8Qç“¶´°_ż.ćíµTľ~]’—WÎbqLGGEOŹ6l˘®®Šžmřp%9ąÎPtâúőësçÎíVĐĆňĺËĎť;'ę(Ŕ÷źýűôôôęęjXćiŔ HJJź|ź””4a„~řAÔGCKFFňsn—booźžžŢ&ß_»örßľëůů8ţĎ_é’’Ż_·Ď÷MM­99ĄĽěÎŰ/*Şa±8„#”őôh66_ńŽĎkk+}ţR?sćĚ‰ŹŹohhřĚ~ľdVVV˘ |Ď·łłëű8@_ŠumihhŔÄűż˙ţ°sçŐ'OŢŕ5†rrJëë[23 łły ľ$;»¤´”‰’’’Ô×WŐÔT´µ'Äěޡ9sćôF·!‚ó÷ŻüüĘÝ»Ż]żž.!AŔqśĂůĎy‹s÷nVHČc6›K `CtuiK–Ś9REOŹ¦ŁŁ2hIT‘Ä ä{ÄQSŰ×÷Ęůóx™ľĂűBŐŐ KGŽTŃŃQ––†Őúů±#)IőóKkld#„ř ďw¨ľľeút™Nę‚őtC8Î4ȻʄAJŞłżËłłKú*.@?ű÷§vëÖы۾}[öúuqFFQffQFFaII-BL&XSS+Ž# òłKÍĚ´E2@Üőp˙>77wٲe4MJJJKKËŰŰ»¦¦¦ó& L& >č{ícřĚ` †a666‚…8ŽkjjŠę= —‹?}š»ysÄĉ{ž?Ďu8˙ú̉‡  R©¶¶¶EEEčSÓ@čÓ¦‹$% zz´ůóżŢ˛enpđš/vľ~ýëŐ«»v-´ł3ýúkMŽă$üŐř´žäű¬¬,SSS …’P]]•ťťmnnţÉoŢIRR2))©¬ěßۨ$&&ößM‘‘Q¸{÷µŃŁ^´((4ôiAAŐÓ§oEÔ?>â‘H$ü˙ŇÓÓÉdňš5kz5fá’“#›šwvžř믶qq^oŢěűëŻ_ěěLE čIľwsssrr˘Óéúúú˛˛˛cÇŽŤ‹‹SRRňó󳲲ň÷÷Ga¶˙~„PII †a---†UTtĽÚvCC«««ŠŠŠşşşŹŹ›ÍFŐŐŐ-_ľ\QQQKK+$$„żSŐľ2ÁĐŇŇ:}ú4•JĄŃhˇˇˇĽšUUU šššm~w^QQ!ŐÇúzôčććfÁ{ ŘśĹbÉĘĘ–——ËËË#„îßż˙ÓO?=zôHFF&;;{řđáˇożý¶ąąąĂĘÁÁÁĺĺĺT*533sĚ1ÍÍÍÍÍͲ˛˛YYYşşşˇ¨¨(GGGÁř>Ö§‘‘Qcc#‰DĘĚĚ466ć?ćőĎkŢŘŘ8lذ¸¸¸ŃŁG˙ńÇgĎž=zô(˙=feeijjJII]ştiíÚµĽVíCí°&‹Ĺęî(++SRRęüS···Ż¨¦PĆ>{–‡aX›Ű¸ ’’’ś9ÓĐ¢K=ôŘ… 'nî|!gˇL<~C999KKËăÇŹ:”? ZZZdddŢĽyĂŰŕŃŃŃ;wî o3[>sÚ|r`fooßĂ ítűJ%%% Ă ´µ˙sIpaa!ŤF322RPPHMMMNN MKKKLL<~üxçÝłX,ÁŠ‹‹ą\®––Ż„÷ü±Ę!)))ŢđĎq‹ŇŇRÇutţY`|ÄÝ !D$I$ŻOÁÇ‚m ‚““Óůóç—-[&řęÓ§Oťśś0 ÓĐĐඵÚ=ŘźLö<……Ś< Cť${„Žăńńéńńé]éłÇ† ‘<řYP(ŹD"užnKJJBü ®­­ýáÇNęδ€ľÔí|OˇP,,,‚‚‚>Ě+ X´hQPPĐ‚ BłgĎŽŽŽ.))100°´´ŚŚŚ,,,ś8qâŰ·ť]öĄ˘˘"!!QYYÉŰOjhh¨¨¨PQQA˝{÷Ž—çňňň:©ÜÔÔÔţ%ŞŞŞ†ĺććňR>ż‡.ĐÔÔÔĹÍâââbaańăŹ?>zô(""˘  €W^QQ±jŐŞ§OźŽ7îŐ«W7nÜŕ•·µĂšźż>ĆظÂĹeKxřłÄDŽ#Ç;Lü†mßnł~ýô.vŰ3]Ů‘íĄ‰×ŤFC˙ÝŕŞŞŞťÔ˙Ěi}¦';t:=88ŘËËëőë×ÍÍÍL&SOOďĹ‹[¶lAY[[ź8qbâĉ†YZZ;vlĆŚD"Ă0‡Ăb±xťÔŕí´µµőöö®¨¨(++[şti`` ‰Drppđôô,--}űöíž={xů¬Ăʆ*%%ekkëććV\\üćÍ??ż6řQu˝Ďhii-_ľ|Á‚22˙.vĆ»\RR˛ŞŞęŕÁ§¶¶¶Ă:¬ůů[ŕcÜĆftpđšôtż€€oÇŹ×Ć0LR˛Wn¦",B™xť#‘H‹-ňňň*++ËÉÉٱc‡ŁŁcű„5m Ďô$ߦ¤¤TUUYXXČËË»»»kjj=z!deeŐŇŇ2eʄдiÓęëë­­­Bęęę:::ŠŠŠUUU---|˙ý÷ˇ“'O˛Ůl}}}CCCeeĺ˝{÷"„Ž?.''§««;gÎś+V‰D^ VîЉ' §OźţăŹ?¶yU0Ş®÷Ů!—»wď¶9ݤ¤´cÇ 33łĹ‹Ź9RđŇý®Ôüü-Đ9;;Ó¨(·gĎ~ţůçůj!ÄßŮŃţ>öůŻ+Łś:uJVV–wŔÚÚÚÇǧ}Bś6Đ7ş}˝ŢÇđ/b^l!2sćLŢaí­[·fff w1×[€wüüc×Ç˝|Yó"*ęEeeBŘöíóúćx~ç×ë}L/M<ŃęĘőzeeu FŃŰ·eăedŕN9€OÚĘ\d2ą7ľscbbîßżřđáęęęđÎÔ~Qú~ Ś=lôča?˙ĽŕŃŁ7Ź˝±·7ëí?G/MžĎbqÚĽÄ/ÁqĽ±Q÷ĺäČ&&&&ü’sç.Ż\yD„!>üţ€®š2EWJęź;˛ŮśććÖM›"V®<[UŐö’"QââĹ~ěĂ„‘#•W­šŇ» ‰¬¬¤XÝ)Đďč*2™8eŠ.˙*6G8Žß˝›9eĘŢŰ·3ÚT4ôÇë–‘”ěŕ‡ĂÝłgI' é€pÁ× ÝđÍ7FmJX,NmmÓňĺżűř„µ9>OŁÉ‡„|/!Ahse‘(1b„ň¨Qݸ®>ä{şaĆ C.·í‘m.ÇqüŹ?žÍšĺź—W.ř’±ńĐÓ§W´ąźËĹËĘ'î9s&©ý ţ~-77wٲe4MJJJKKËŰŰ»¦¦¦ó& L&ó`¨TŞ­­mQQ‘`ťnő ''geeőúőë®Çßů@´‹Mz‡Ă}đ Çß˙O&łI´‘´!Úů€ĘĎĎwvvVWW—––ÖŃŃŮşukS“6‘8|č=ů€nPSSĐŃéřţ4çíŰň””Ľ6ĺVV†?˙Ľ€źň%$$Ö®µLK۵jŐ”˝{ăĚÍwGD<?mĘĘĘ255ĄP( ŐŐŐQQQŮŮŮćććźüŠç#‘Hř˙Ą§§“Éä5kÖt+Á W®\Ůý·Ňo¤ĄěŘ3zô{űă·.]z"ęţ%ňů€ăř¬YłTTTRSS«««#"">>l6›Á`hiiÉÉÉ1 „PEEEWš:tHQQQYYůŇĄKľľľ ĘĘĘüz %%××÷ЉÉĎsçľpáaee=B1©ů|HOOĎÎÎŢ˝{·ŞŞ*™Lţú믏;V__Źâ}.ĘĘĘ4í§ź~błŮˇöź B¨®®nĺĘ•T*•FŁůúú ~č<śm‚a±XĽćË—/WTTÔŇŇ á˝lŘ~röĆĚ|@÷ĚśiÔć Ľ¤¤„şş||Ľ×ęŐS?¶Ďţý¶Ľ•n·nťKˇHó UU°ŹŹ÷&‘ ­]{áýűţşF)“ÉLHHđôô,Ä0ĚËË+66ÖÚÚúţýűˇääd …’JLL411ÉĘĘâíĆQ©˙YĚ ¸¸řČ‘#cĆŚi3««+“ÉĚĚĚĽwď^|||ppđÇz¨©©ąpáÂŚ3xO·oß>wîÜęęj___^ĚŽŽŽÇŽ«©©qss۲e‹`WžžžŤŤŤIIIIIIt:ťŐË—/srrôőőBT*ő“M ËĘĘňóó===ťťť[[[?|řŕééąyóćînä·oËöě‰;v×Â…A/>¬¨¨Cµ¶ŠăMĹa>Ś5ĘČČhÉ’%111ĽŐŤŤŤCCCy ?|řp˙ţýWŻ^Ýąs'&&&00!Ôá'čááQUU••••páÂ…äädÁ §D›`>Ěož™™yçÎŢ(üwÄoŘ~r"ˇÎśŕ€îŕrąŁFmWUőRUőRSóVSó^´(č·ß?ŮÉlJIÉeł9ľzëÖ+sóÝÚÚ?íŢ}­®®YŘQ–°°°O~WĽyóĂ0‹Ő¦<--MNNîŐ«Wrrr,kÆ ۶mŁP(l6{Ýşu›6mâuňwÄyääälllŢżĎ{‰W§ąą™@ äććň:ŹŠŠ266ţX! …ňćÍ^ĺĚĚ̆†‹uţüy^ýŞŞ*‰tńâĹĆĆF.—ŰÜÜĚ蝹µ•H$ÖÔÔđÚŢ»woܸqĽţËĘĘCúdĐÜÜŚăxFF†ŕcÁŐť°łłł±ůÖß˙ĆäÉ{UU˝† ۨ¦ćÍ›~mţijţxüř˝®ôů™úË|ŔqĽ¶¶–N§Ďź?_QQŃŔŔ`űöí üÎůs#44ÔŘظĂO°µµURRňíŰ·ĽÂ¤¦¦¶ ’7%: †×ś_xĺĘ•ö ńŽ&çgÎś?#Xo€îÁ0lćLŁČČgF ~ýŐ¶˛˛ŢĎ憎ÉĐńăµ;i('G65ţ±WywÄąp᡿˙ź‘‘©7Îúî»ńýč{JJJ†hk˙g#Ňh4###…ÔÔÔäääĐĐĐĐĐĐ´´´ÄÄÄăÇŹ V&‘HÍÍÍťŚRRR‚ŇŇŇâ=ŐÖÖţđáĂÇzhllܲeËęŐ«y»’Oź>urrÂ0LC㟥„wđŕA777SSÓ_ýUNNŽ÷Rqq1‹ĹRPP|!)))Ţö>Ö„H$’H$„@|ÜÉŰlÁ’šz“w䨓 üź˙ą“&MBńÎćđđ§D‡Áđšó ůý ˙ÎĄö“ cć´ů€n›9ÓčŹ?žę뫞>˝|ÄeÇź?·víů[·|”•ĺzÜ-‘(±zőT[ŰqÇŽÝ۶-*8řŃÎť ÍÍG1ňŢCˇP,,,‚‚‚xÇ0B‹- Z°`BhöěŮŃŃŃ%%%–––‘‘‘………'N|űöm×GˇŃhˇwďŢńľ7óňňTUU?VYFFfĺĘ•Ľ/芊ŠU«V=}útܸqŻ^˝şqăB¨ąąY^^ţćÍ›---ׯ_çµUQQ‘¨¬¬”——G544TTT455uráŹ5éú»űˇCëĺĺÇĄ¤ä‰‡·˙…†aK–Śk˙“QˇKM}úË/ź¨#óÁŐŐ5''çîÝ»! ĂLMM÷íŰgmmÍ{•ËĺňľyóFUUµĂOPEE!ôáĂ^&ľ~ýzkk+ďlJt Żą`aű†NÎ^ńÉĂ€ö˛˛ŠZ[Ůü§µµŤ&řŮŮűŘáúîĘĚ,´·?®¦ćíęzáÝ» ˇôŮc]9~‹ăxFF†˘˘˘§§'ÁhjjÚ±c‘HTRRެ¬Äq<::zĐ A .ÄqüâĹ‹ ZĽx1Žă CRR˛µµUđ0l‚/-Y˛dţüůĄĄĄŮŮŮĆĆĆ{öě餇ěělŔb±ĘĘĘ0 KKK«¬¬\¶l™¤¤dMMM}}ý Až>}ÚÜÜ```Ŕď Çq‡+V”———––Îź?ßËËK°ţă4ió¸svvvvvv8Ž×Ô4„‡§,^¤¦ć­ˇ±Q]˝íQ}±:žŹ‹Á|xř𡄄ÄÁßżßÔÔÄ`0,X°|ůrü˙‡ÓçĎź_VV–‘‘a``°gĎĽŁOÇq[[[;;»ňňňěěěáÇGFF~,ČöÁŕ8ţÝwßŮŘŘ”””Ľyófܸqd2ąÍ[čpr~ćĚéđ3ę7G +úúŞ‚WéS(Ňż˙ľ25ő]`ŕmˇôo` ¶.8xMvvÉÔ©żţüó•ö«öŠCCĂ”””ŞŞ* yyůŕŕ`wwwMMÍŁGŹ"„¬¬¬ZZZ¦L™‚š6mZ}}=oOK]]]GGGQQ±‹÷S?uꔬ¬,o§ĐÚÚÚÇǧ“h4†aQQQJJJ;vě°°°033[ĽxńČ‘#mmmeee‚‚ěěěBCCĎź?/ŘŐÉ“'Ůl¶ľľľˇˇˇ˛˛ňŢ˝{;ڧMzF^^ĆÎÎ4*Ę-5őçźžol¬úŘ‚Íâ@äóA__?.....ÎŔŔ`Č! ,Đ××?uęŻ!‰Dš9sć¸qă¦M›6{ölŢUr~‚§Nť’””ÔŐŐµ°°X±bĹ’%K>dű`BÇŹ—““ÓŐŐť3gΊ+Ķ7´ěpr~ćĆďŘ'˙LtŃůóÔŐ˝Bě“ËĺĆƦń/ĺ«­mbç]ÔĹýą555ĄĄĄ 7ž/ ˙ľ˝ż˙ţđË/WGŹţYUŐK[ű'uuo±Úżď̇®_ů|ÁÁÁ%%%ĽÇW®\100čAa˙€Ţĺâ2ińâ±îî!%%µÂęĂ0›Ń‰‰›wíZ‘bnľűر»âů¬‘ÉäŃŁG‹:ŠiÔ(u_ßůϟvłł7lâ„ â~µÇ8bbb¶nÝĘd2óóó8Ŕ»|A$ ß LűöŮ 2hÍšóÂ](—H”pr2ôhűúőÓŽą=yňŢł*řL6aÂ}űě=Úöő×ĂDh‹N§WTT :ÔÄÄDSSsË–-˘Šň=Â$##uę”KVVŃţý×{Łó f<~Ľ}Ö,ăŤ˙;7đáĂ7B€O__żó_ú ŤF»ző*“ɬ­­ ĄP(}3n{ď2==Ú/ż,:yňţť;™˝Ńż˘â ?żE÷ďoŇĐboÜÁáDffQo H ß |K—Npq™´nÝĹׯKzi#”OťrąvÍ“Ĺâ|óŤż^‹Đ ßĐ+vî\hb2tĺĘł˝z‹Ň1c4Ł˘6ĐéNééď§O?pŕŔ &łŹŽRúČ÷ô "QâäI—––»űĄŹ-&†-\8&)iËÖ­s/_~ÝŔÚÚ$3ł(0đvjjžŽŽ2Ť&ßÇaDöďč;!!Ź7oŽ8sfĹěŮƢŠ!;»äС›qqŤ§ĺć6cćL#QEčKďčS{÷Ćť>ťąaěX-†‘’’{čĐÍääl =oďoúţ ŹAľ Oá8ľ~}prrv\ś—–U´ÁdeŢŽ‹űËĐPÍĂĂ ®ć`|@_knf-YBohhŤŤő P¤EĘĘ* Ľ÷—ľľŞ««ĺ’%ăúţŠB@o|€”–2çÎ=¬«K»xqŤü,>+«řĉ{ŃŃĎuuiëÖM[Ľx¬„„X Č÷FFFáÂ…Aööf{ö,u,˙b0ŠŹżwĺĘ Ť!ë×O‡Uz0ŕ÷x†˛2ĹČHm×®« 2_­)ępţAĄĘY[›ĚťűUaa5ť~722•L&¨Áľ>ýä{DF[[‰L&úů]36:b„˛¨Ăů•:ČÚÚdĆ ĂśśŇß~KĽvíĄŚ IOŹY€ţ Žç b›6E\ąňüęU5QÇŇôô÷·oÝzEŁÉ˙˝ĄŁăYY’¨tä{D¬µ•mgwĽĽĽîÚ5OEĹA˘§cďßW]Ľř(8ř!‡űířőë§©Ş*:(@7@ľ@ô*+ëçÍ TTľ^FFhw¬şňňşsç\¸đ°ą™őÝwăż˙ŢbŘ0EQčČ÷…‚‚Ę Žęč(_ş´VJJRÔát¦±±őŹ?žţö[baaµµµń÷ß[Ś7\ÔA>ň=â"+«xѢ iÓôŹs˙opđ çĚ™¤;w2 T—/źlk;ŽL&Š:.@Ç ß F=złt驥KÇďÝk+ęXş*-­ŕÔ©„ë×˙˘ŃäW®śşté …,ę mAľ@Ľ\˝š¶aCđöíó]]-EK7TTÔ‡…==s&ąşşaÖ¬QNNćS¦čŠ:(Ŕżŕ÷÷}}U’ź_¬†Ć##uQ‡ÓU22RffÚÎÎć**”»w3OžLHNÎ!‘::Ęđ«}Äěß Žvíşzölň… «--őEKO¤§ż yőśH$Ěź˙őŞUSőôh˘ €/ä{ÄŽă^^ˇ7n¤GEąu8=Äd6…‡?;s&©  ŇÔtřęŐS­­M`A~Dň=bŠĹâ,[vúի«W=´µ•DNĎqąřÇ9!!ŹŻ_O§RŮÚš®X1YM –ë OAľ@|Ő×·,^T_ßrőއ’’ś¨Ăů\ďŢU\şôäňĺ'őőÍłg;9™Ož<ĂÄý—‡ ďkEE566GTUĺCC]ĺäDů;71qâÄęęęĎěĂH2222&&UVö;BđôQAAAnnn˘Ž ďw99ĄK–ĐGŚPľti­WŰ wppJo8ŽWW··Ţů¨€€ ampÄzŮNBhäH•Ź%Kčß~{24t­hoOggg'ÂŃż(˘ (pˇ,ý€¶¶ŇĺË®ąąe+Vśmnf‰:@˙ů€ţÁŔ@5<|ý«WV¬ř˝µ•-ępý ä{ú CCµđđő/_ľwu˝ČbqD ?|@2j”zHČšääěőëŮl®¨ĂôďčgĆŽŐştéűű÷ł6nüË…ß׺ň=ýŹ™™öŮł+ccÓ~ü1L R›››»lŮ2Ť&%%ĄĄĄĺíí]SSÓyA&“y0T*ŐÖÖ¶¨¨H°Nç= „ňóóťťťŐŐŐĄĄĄutt¶nÝÚÔÔÔ­·Đű:Ż€X|@ż4uŞŢŮł«˘Łźűú^u,˙‘••ejjJˇPŞ««Ł˘˘˛łłÍÍÍ?™ňůH$ţéééd2yÍš5]ÇńYłf©¨¨¤¦¦VWWGDD|¨ŘĐĐ0eĘĂłqqqúmŠ˘|||233ËËË !\.—břrpůňĺŇŇRĄRůńÇçććVVVîرcŔX\.×ÂÂÂ0qďěěĽyóć˙/iÍh„Ľ0ţţüÜÜ5W®ü”xŠĆČ—H$ůůů)))uuuŤFĄRÍś9óÖ­[iii„‘Htřđa___Š˘üüürrrL&EQ}}}Zín Ŕb±V¬X‘’’˘P(ęëëÓÓÓ### =DGGËd˛˝{÷655i4šşşşŚŚŚŕŕ`ý+W®üôÓO•Je}}}BBB__ß˙ťę´´lkkűꫯúúúž?n}zVV!$00°»»{Á‚„˙ÎÎN‘HDqvvvww···×_a÷ZąąąVVVú“"‘hÓ¦M†ř|ľT*•JĄ`ňäÉ!!!|>?77×p ĄĄĺŚ3„BaLLLhh¨ŁŁczzşP(|˙ý÷W®\ůî»ď†……ŹuäČ‘ŢŢ^>źďáááää´k×.ĂSĆeŇ `, tco±x·o?ŽŚ<ęěü»Ó§?±··­n ĂĂĂGö‰ˇŃhjkkgĎž=ZĹŚ«V­"„Ň] ĚďĚŤ·÷´sçź=ë\ąR"—u•“błŮ{z!ďĚ»»“TšlaÁ ÉjhxJw9@?ä=€yârm âll&††ćÔÔČé.h†Ľ0[\.§¤$ŢŐŐaĹŠ¬ňň{t—tBŢ3[ŰIgÎlXľ|NDDn^ŢÓ]Đëë9KKFf¦ŘÝť»ukńýűŠ/ľXÎ`Ptoň`\Ť]Čĺr’’N?yň<++’ÍfŇ]ĽUČ{€ń"8x¶µ5űĎ΋ŽţúčŃ5vv“FĐIPPШżęÎť; .¤» 0Xo`|©©i‰ŽţzÂË“'c˙{§ˇŘŢŢľqăFµZmşÚ`€„„D>Śä=Ŕ¸ÓŃń26öřżţőX"Y˝xń,şË€·×çŚ;vv“ â–-űĂźţtlßľ+t—oĹçźNw đ¶YX0ô3űýű˙ëŮł δ°Ŕ·s†óůăÚůóU7ţ§§§óŃŁkx<[şËSÁ7z€q-$ä˝oľů‹Z­ńóËüÇ?îĐ] ň`ĽsssĽt)uéŇ?ÄĆĎČöőőÓ]Ś>śĎBŃétGŹĘ22.úű ˛ł#9ś‰tWŁ yż¸s§iÝşĽ®®ž#üüřt—Łçóŕ^^SĄŇ”YłśŁŁ˙vđŕ7ýý ĚďŕWś={sóć">ź—“ĺââ@w9đ¦0ż€_!ű\ľśÚŐĄ]Ľx_ié-şË€7…ů=Ľ’JĄůë_ /^ügDÄ·o˙ĂaÓ]Śň^ăěŮ›ééĄ'NŘ˝[čAw90Č{x=•Şkç΋§O˙č±gŹËĹJ|ż1Č{Ş+Wëtý;v¬ žMw90 Č{•ŞëË//üřÁnźâí=ŤîŠ`H÷0lőőOľüňü·ßÖy~ńĹrüĂŔ؇Ľ€‘Đét/ţsç΋Ϟ©×Ż÷ß°aѤIč. ^ y#§Őöť9S‘™y©§§wÍš˙HL ŔÂűcňŢÔÓ§/rrľÍĎ˙+« 6¬Yă;q"ćúc ňFÇÓ§/.;yň{++Öúő‹úc ňFSgg÷‰7$’˛ľľľđđââüśťGwQ€ĽhkS?^~üř µş;4tŢ'źgĚŕŃ]Ŕ¸†Ľ€‘hoo?{öěŕm´ÚţŞŞç?üĐÖŢ®uwź$ń&OĆţÁĚť;wîÜątWć y#“——7´¶›íne5§˝]Ú߯6iUżuÖÖÖ/^Ľ » 0OČ{‰U«VB é.Ä|†‡‡ă3L„Aw`rČ{ó‡Ľ0Č{ó‡Ľ0Č{0­DGGóxĽ &¸¸¸¤¦¦vtt ~Hmm-›ÍÖoPFÂÂÂZZZŚŰ Ţ!¤±±1**ĘŮŮyâĉîîî[¶léęęÖK0®gAĆ2ä=PMMŤŹŹ‡ĂąvíZ{{{qqń˝{÷>üđĂ×Fľ‹ĹŇýŰíŰ·Ůlöşuë†^€N§[Ľx1—Ë­¬¬ÔŻtăĆŤ¤¤¤˝€ß0ä=PBBÂęŐ«% źĎ·˛˛š;w®T*uttܱcG``ŕŢ˝{ !---EíŢ˝›ŇÚÚJQ”@ čîî¦(J©T÷öÎ;ď$%%UTT ĄŁŁ#**ĘÁÁaÚ´iiiirąÜĐĂíŰ·ďÝ»·sçÎ)S¦°Ůě÷Ţ{/''§łł“˛lٲm۶é{P(L&łˇˇáĹ‹k×®µ··wqq9uę”ńl^©T¦V«ăââ¸\®łłó¦M›z{{kkk]\\öíŰgooďäätúôéíŰ·ŰŮŮ999ť>~ëÖ­§··wýúőź}ö™!VkjjŚ?Żlll‚?~¬JßFŁŃ0Śč;/..öňň2<«Óéž?.‘H>úč#{{{@°mŰ6µZ­ßĎfłkkku:ÝÂ… Ź;ÖÓÓciiičęÜąs†2lôôô0™ĚŽŽ}˲˛˛yóćŐÔÔ0 ŤFŁÓéîŢ˝kĽmü«Ä«ś9sźÉ`:߀©8::RőčŃŁű›››y<ž§§§ťť]eeeyyyDD„CUU•L&‰DĆŤŤ“RĄR]¸paęÔ©Ć Z[[ !...ú‡nnnMMMĆ 8N||üůóçź>}zâĉďż˙>22Rż_$·´´TUU‰Ĺbą\ŢßßočĘŐŐőU/M.—kµZ;;;ý…„‹-jll$„0™L‹Ea0ĆŰĂóFţ ŔT8ŽP(ĚÎÎ6ěŮżCCCvvvHH!dÉ’%%%%­­­ŔĎĎŻ¨¨¨ąąŮ××wXŁđx Qwt User's Guide: qwt_event_pattern.h Source File
Qwt User's Guide  5.2.3
qwt_event_pattern.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_EVENT_PATTERN
11 #define QWT_EVENT_PATTERN 1
12 
13 #include <qnamespace.h>
14 #include "qwt_array.h"
15 
16 class QMouseEvent;
17 class QKeyEvent;
18 
28 class QWT_EXPORT QwtEventPattern
29 {
30 public:
80  {
81  MouseSelect1,
82  MouseSelect2,
83  MouseSelect3,
84  MouseSelect4,
85  MouseSelect5,
86  MouseSelect6,
87 
88  MousePatternCount
89  };
90 
119  {
120  KeySelect1,
121  KeySelect2,
122  KeyAbort,
123 
124  KeyLeft,
125  KeyRight,
126  KeyUp,
127  KeyDown,
128 
129  KeyRedo,
130  KeyUndo,
131  KeyHome,
132 
133  KeyPatternCount
134  };
135 
138  {
139  public:
140  MousePattern(int btn = Qt::NoButton, int st = Qt::NoButton)
141  {
142  button = btn;
143  state = st;
144  }
145 
146  int button;
147  int state;
148  };
149 
152  {
153  public:
154  KeyPattern(int k = 0, int st = Qt::NoButton)
155  {
156  key = k;
157  state = st;
158  }
159 
160  int key;
161  int state;
162  };
163 
164  QwtEventPattern();
165  virtual ~QwtEventPattern();
166 
167  void initMousePattern(int numButtons);
168  void initKeyPattern();
169 
170  void setMousePattern(uint pattern, int button, int state = Qt::NoButton);
171  void setKeyPattern(uint pattern, int key, int state = Qt::NoButton);
172 
173  void setMousePattern(const QwtArray<MousePattern> &);
174  void setKeyPattern(const QwtArray<KeyPattern> &);
175 
176  const QwtArray<MousePattern> &mousePattern() const;
177  const QwtArray<KeyPattern> &keyPattern() const;
178 
179  QwtArray<MousePattern> &mousePattern();
180  QwtArray<KeyPattern> &keyPattern();
181 
182  bool mouseMatch(uint pattern, const QMouseEvent *) const;
183  bool keyMatch(uint pattern, const QKeyEvent *) const;
184 
185 protected:
186  virtual bool mouseMatch(const MousePattern &, const QMouseEvent *) const;
187  virtual bool keyMatch(const KeyPattern &, const QKeyEvent *) const;
188 
189 private:
190 
191 #if defined(_MSC_VER)
192 #pragma warning(push)
193 #pragma warning(disable: 4251)
194 #endif
195  QwtArray<MousePattern> d_mousePattern;
196  QwtArray<KeyPattern> d_keyPattern;
197 #if defined(_MSC_VER)
198 #pragma warning(pop)
199 #endif
200 };
201 
202 inline bool operator==(QwtEventPattern::MousePattern b1,
204 {
205  return b1.button == b2.button && b1.state == b2.state;
206 }
207 
208 inline bool operator==(QwtEventPattern::KeyPattern b1,
210 {
211  return b1.key == b2.key && b1.state == b2.state;
212 }
213 
214 #if defined(QWT_TEMPLATEDLL)
215 // MOC_SKIP_BEGIN
216 template class QWT_EXPORT QwtArray<QwtEventPattern::MousePattern>;
217 template class QWT_EXPORT QwtArray<QwtEventPattern::KeyPattern>;
218 // MOC_SKIP_END
219 #endif
220 
221 #endif
qwt5-5.2.3/doc/html/class_qwt_curve_fitter-members.html0000644000175000017500000000623412052741137022576 0ustar gudjongudjon Qwt User's Guide: Member List
QwtCurveFitter Member List

This is the complete list of members for QwtCurveFitter, including all inherited members.

fitCurve(const QPolygonF &polygon) const =0QwtCurveFitterpure virtual
QwtCurveFitter()QwtCurveFitterprotected
~QwtCurveFitter()QwtCurveFittervirtual
qwt5-5.2.3/doc/html/class_qwt_color_map-members.html0000644000175000017500000001261712052741137022052 0ustar gudjongudjon Qwt User's Guide: Member List
QwtColorMap Member List

This is the complete list of members for QwtColorMap, including all inherited members.

color(const QwtDoubleInterval &, double value) const QwtColorMapinline
colorIndex(const QwtDoubleInterval &interval, double value) const =0QwtColorMappure virtual
colorTable(const QwtDoubleInterval &) const QwtColorMapvirtual
copy() const =0QwtColorMappure virtual
Format enum nameQwtColorMap
format() const QwtColorMapinline
Indexed enum value (defined in QwtColorMap)QwtColorMap
QwtColorMap(Format=QwtColorMap::RGB)QwtColorMap
rgb(const QwtDoubleInterval &interval, double value) const =0QwtColorMappure virtual
RGB enum value (defined in QwtColorMap)QwtColorMap
~QwtColorMap()QwtColorMapvirtual
qwt5-5.2.3/doc/html/functions_func_0x70.html0000644000175000017500000003151112052741152020157 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- p -

qwt5-5.2.3/doc/html/bc_s.png0000644000175000017500000000125012052741134015101 0ustar gudjongudjon‰PNG  IHDR /đ9ĐoIDATxíťMLAÇßěN»»ĄívKůPJik±R5^ŚChÂĹ!Dz *U4VbÄDŤ1~`8xŕ@^ż?đ𤡸Ý@ŃÝná`JLLťÝئÜXi v«9ę)·}aV±&Ň0)›Ľđ(‰zŰküNcFPŰů'@é¨KZK%!13§5Ł}ÝŹ€ŇdŔă°’>´Ĺç´çhďąG…ÉZ Źďz×Ú—ÉiŁ“ě–ş=…@Oą«Č‚1ÓŻ¦3ăF«[şä’d˛ľJŇă`|^3Ý\›żˇ]˛ó•Ź'fçÓůyÄîçâŮ@ĄCos˧d:?$lhűnÝ× nm\†$cÔL6Ńý »Ě´x@N¦oPŔ®Î‘ňŐ”€GÔ÷>9ą¨Q@ă±á“.‡qŠÜ´Ľ°Ř ”PCt(á«yŚQ$±°hÔNý8¤ĄË MNj˙$ţßţŲo_sLIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_double_range.html0000644000175000017500000007263212052741164021100 0ustar gudjongudjon Qwt User's Guide: QwtDoubleRange Class Reference
QwtDoubleRange Class Reference

#include <qwt_double_range.h>

Inheritance diagram for QwtDoubleRange:

List of all members.

Public Member Functions

 QwtDoubleRange ()
virtual ~QwtDoubleRange ()
virtual void fitValue (double)
virtual void incPages (int)
virtual void incValue (int)
bool isValid () const
double maxValue () const
double minValue () const
int pageSize () const
bool periodic () const
void setPeriodic (bool tf)
void setRange (double vmin, double vmax, double vstep=0.0, int pagesize=1)
void setStep (double)
void setValid (bool)
virtual void setValue (double)
double step () const
double value () const

Protected Member Functions

double exactPrevValue () const
double exactValue () const
double prevValue () const
virtual void rangeChange ()
virtual void stepChange ()
virtual void valueChange ()

Detailed Description

A class which controls a value within an interval.

This class is useful as a base class or a member for sliders. It represents an interval of type double within which a value can be moved. The value can be either an arbitrary point inside the interval (see QwtDoubleRange::setValue), or it can be fitted into a step raster (see QwtDoubleRange::fitValue and QwtDoubleRange::incValue).

As a special case, a QwtDoubleRange can be periodic, which means that a value outside the interval will be mapped to a value inside the interval when QwtDoubleRange::setValue(), QwtDoubleRange::fitValue(), QwtDoubleRange::incValue() or QwtDoubleRange::incPages() are called.


Constructor & Destructor Documentation

QwtDoubleRange::QwtDoubleRange ( )

The range is initialized to [0.0, 100.0], the step size to 1.0, and the value to 0.0.


Member Function Documentation

double QwtDoubleRange::exactValue ( ) const
protected

Returns the exact value.

The exact value is the value which QwtDoubleRange::value would return if the value were not adjusted to the step raster. It differs from the current value only if QwtDoubleRange::fitValue or QwtDoubleRange::incValue have been used before. This function is intended for internal use in derived classes.

void QwtDoubleRange::fitValue ( double  x)
virtual

Adjust the value to the closest point in the step raster.

Parameters:
xvalue
Warning:
The value is clipped when it lies outside the range. When the range is QwtDoubleRange::periodic, it will be mapped to a point in the interval such that
new value := x + n * (max. value - min. value)
with an integer number n.

Reimplemented in QwtAbstractSlider.

void QwtDoubleRange::incPages ( int  nPages)
virtual

Increment the value by a specified number of pages.

Parameters:
nPagesNumber of pages to increment. A negative number decrements the value.
Warning:
The Page size is specified in the constructor.
void QwtDoubleRange::incValue ( int  nSteps)
virtual

Increment the value by a specified number of steps.

Parameters:
nStepsNumber of steps to increment
Warning:
As a result of this operation, the new value will always be adjusted to the step raster.

Reimplemented in QwtAbstractSlider.

double QwtDoubleRange::maxValue ( ) const

Returns the value of the second border of the range.

maxValue returns the value which has been specified as the second parameter in QwtDoubleRange::setRange.

See also:
setRange()
double QwtDoubleRange::minValue ( ) const

Returns the value at the first border of the range.

minValue returns the value which has been specified as the first parameter in setRange().

See also:
setRange()
bool QwtDoubleRange::periodic ( ) const

Returns true if the range is periodic.

See also:
setPeriodic()
void QwtDoubleRange::rangeChange ( )
protectedvirtual

Notify a change of the range.

This virtual function is called whenever the range changes. The default implementation does nothing.

Reimplemented in QwtDial, QwtCounter, and QwtSlider.

void QwtDoubleRange::setPeriodic ( bool  tf)

Make the range periodic.

When the range is periodic, the value will be set to a point inside the interval such that

point = value + n * width 

if the user tries to set a new value which is outside the range. If the range is nonperiodic (the default), values outside the range will be clipped.

Parameters:
tftrue for a periodic range
void QwtDoubleRange::setRange ( double  vmin,
double  vmax,
double  vstep = 0.0,
int  pageSize = 1 
)

Specify range and step size.

Parameters:
vminlower boundary of the interval
vmaxhigher boundary of the interval
vstepstep width
pageSizepage size in steps
Warning:
  • A change of the range changes the value if it lies outside the new range. The current value will not be adjusted to the new step raster.
  • vmax < vmin is allowed.
  • If the step size is left out or set to zero, it will be set to 1/100 of the interval length.
  • If the step size has an absurd value, it will be corrected to a better one.
void QwtDoubleRange::setStep ( double  vstep)

Change the step raster.

Parameters:
vstepnew step width
Warning:
The value will not be adjusted to the new step raster.

Reimplemented in QwtCounter.

void QwtDoubleRange::setValue ( double  x)
virtual

Set a new value without adjusting to the step raster.

Parameters:
xnew value
Warning:
The value is clipped when it lies outside the range. When the range is QwtDoubleRange::periodic, it will be mapped to a point in the interval such that
new value := x + n * (max. value - min. value)
with an integer number n.

Reimplemented in QwtCounter, and QwtAbstractSlider.

double QwtDoubleRange::step ( ) const
Returns:
the step size
See also:
setStep(), setRange()

Reimplemented in QwtCounter.

void QwtDoubleRange::stepChange ( )
protectedvirtual

Notify a change of the step size.

This virtual function is called whenever the step size changes. The default implementation does nothing.

void QwtDoubleRange::valueChange ( )
protectedvirtual

Notify a change of value.

This virtual function is called whenever the value changes. The default implementation does nothing.

Reimplemented in QwtDial, QwtAbstractSlider, QwtSlider, and QwtWheel.

qwt5-5.2.3/doc/html/class_qwt_dyn_grid_layout-members.html0000644000175000017500000002342312052741140023262 0ustar gudjongudjon Qwt User's Guide: Member List
QwtDynGridLayout Member List

This is the complete list of members for QwtDynGridLayout, including all inherited members.

addItem(QLayoutItem *)QwtDynGridLayoutvirtual
columnsForWidth(int width) const QwtDynGridLayoutvirtual
count() const QwtDynGridLayoutvirtual
expandingDirections() const QwtDynGridLayoutvirtual
hasHeightForWidth() const QwtDynGridLayoutvirtual
heightForWidth(int) const QwtDynGridLayoutvirtual
invalidate()QwtDynGridLayoutvirtual
isEmpty() const QwtDynGridLayoutvirtual
itemAt(int index) const QwtDynGridLayoutvirtual
itemCount() const QwtDynGridLayout
layoutGrid(uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const QwtDynGridLayoutprotected
layoutItems(const QRect &, uint numCols) const QwtDynGridLayout
maxCols() const QwtDynGridLayout
maxItemWidth() const QwtDynGridLayoutvirtual
numCols() const QwtDynGridLayout
numRows() const QwtDynGridLayout
QwtDynGridLayout(QWidget *, int margin=0, int space=-1)QwtDynGridLayoutexplicit
QwtDynGridLayout(int space=-1)QwtDynGridLayoutexplicit
setExpandingDirections(Qt::Orientations)QwtDynGridLayout
setGeometry(const QRect &rect)QwtDynGridLayoutvirtual
setMaxCols(uint maxCols)QwtDynGridLayout
sizeHint() const QwtDynGridLayoutvirtual
stretchGrid(const QRect &rect, uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const QwtDynGridLayoutprotected
takeAt(int index)QwtDynGridLayoutvirtual
~QwtDynGridLayout()QwtDynGridLayoutvirtual
qwt5-5.2.3/doc/html/qwt__plot__item_8h_source.html0000644000175000017500000005567712052741135021546 0ustar gudjongudjon Qwt User's Guide: qwt_plot_item.h Source File
Qwt User's Guide  5.2.3
qwt_plot_item.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_ITEM_H
11 #define QWT_PLOT_ITEM_H
12 
13 #include "qwt_global.h"
14 #include "qwt_legend_itemmanager.h"
15 #include "qwt_text.h"
16 #include "qwt_double_rect.h"
17 
18 class QString;
19 class QRect;
20 class QPainter;
21 class QWidget;
22 class QwtPlot;
23 class QwtLegend;
24 class QwtScaleMap;
25 class QwtScaleDiv;
26 
65 class QWT_EXPORT QwtPlotItem: public QwtLegendItemManager
66 {
67 public:
75  {
76  Rtti_PlotItem = 0,
77 
78  Rtti_PlotGrid,
79  Rtti_PlotScale,
80  Rtti_PlotMarker,
81  Rtti_PlotCurve,
82  Rtti_PlotHistogram,
83  Rtti_PlotSpectrogram,
84  Rtti_PlotSVG,
85 
86  Rtti_PlotUserItem = 1000
87  };
88 
101  {
102  Legend = 1,
103  AutoScale = 2
104  };
105 
106 #if QT_VERSION >= 0x040000
107 
109  {
110  RenderAntialiased = 1
111  };
112 #endif
113 
114  explicit QwtPlotItem(const QwtText &title = QwtText());
115  virtual ~QwtPlotItem();
116 
117  void attach(QwtPlot *plot);
118 
126  void detach() { attach(NULL); }
127 
128  QwtPlot *plot() const;
129 
130  void setTitle(const QString &title);
131  void setTitle(const QwtText &title);
132  const QwtText &title() const;
133 
134  virtual int rtti() const;
135 
136  void setItemAttribute(ItemAttribute, bool on = true);
137  bool testItemAttribute(ItemAttribute) const;
138 
139 #if QT_VERSION >= 0x040000
140  void setRenderHint(RenderHint, bool on = true);
141  bool testRenderHint(RenderHint) const;
142 #endif
143 
144  double z() const;
145  void setZ(double z);
146 
147  void show();
148  void hide();
149  virtual void setVisible(bool);
150  bool isVisible () const;
151 
152  void setAxis(int xAxis, int yAxis);
153 
154  void setXAxis(int axis);
155  int xAxis() const;
156 
157  void setYAxis(int axis);
158  int yAxis() const;
159 
160  virtual void itemChanged();
161 
170  virtual void draw(QPainter *painter,
171  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
172  const QRect &canvasRect) const = 0;
173 
174  virtual QwtDoubleRect boundingRect() const;
175 
176  virtual void updateLegend(QwtLegend *) const;
177  virtual void updateScaleDiv(const QwtScaleDiv&,
178  const QwtScaleDiv&);
179 
180  virtual QWidget *legendItem() const;
181 
182  QwtDoubleRect scaleRect(const QwtScaleMap &, const QwtScaleMap &) const;
183  QRect paintRect(const QwtScaleMap &, const QwtScaleMap &) const;
184 
185  QRect transform(const QwtScaleMap &, const QwtScaleMap &,
186  const QwtDoubleRect&) const;
187  QwtDoubleRect invTransform(const QwtScaleMap &, const QwtScaleMap &,
188  const QRect&) const;
189 
190 private:
191  // Disabled copy constructor and operator=
192  QwtPlotItem( const QwtPlotItem & );
193  QwtPlotItem &operator=( const QwtPlotItem & );
194 
195  class PrivateData;
196  PrivateData *d_data;
197 };
198 
199 #endif
qwt5-5.2.3/doc/html/class_qwt_compass_magnet_needle__inherit__graph.map0000644000175000017500000000027212052741153025765 0ustar gudjongudjon qwt5-5.2.3/doc/html/functions_0x66.html0000644000175000017500000001552112052741151017153 0ustar gudjongudjon Qwt User's Guide: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- f -

qwt5-5.2.3/doc/html/class_qwt_compass_rose.html0000644000175000017500000001600312052741164021135 0ustar gudjongudjon Qwt User's Guide: QwtCompassRose Class Reference
QwtCompassRose Class Reference

#include <qwt_compass_rose.h>

Inheritance diagram for QwtCompassRose:

List of all members.

Public Member Functions

virtual void draw (QPainter *painter, const QPoint &center, int radius, double north, QPalette::ColorGroup colorGroup=QPalette::Active) const =0
const QPalette & palette () const
virtual void setPalette (const QPalette &p)

Detailed Description

Abstract base class for a compass rose.


Member Function Documentation

virtual void QwtCompassRose::draw ( QPainter *  painter,
const QPoint &  center,
int  radius,
double  north,
QPalette::ColorGroup  colorGroup = QPalette::Active 
) const
pure virtual

Draw the rose

Parameters:
painterPainter
centerCenter point
radiusRadius of the rose
northPosition
colorGroupColor group

Implemented in QwtSimpleCompassRose.

const QPalette& QwtCompassRose::palette ( ) const
inline
Returns:
Current palette
qwt5-5.2.3/doc/html/qwt__curve__fitter_8h_source.html0000644000175000017500000004354312052741134022237 0ustar gudjongudjon Qwt User's Guide: qwt_curve_fitter.h Source File
Qwt User's Guide  5.2.3
qwt_curve_fitter.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_CURVE_FITTER_H
11 #define QWT_CURVE_FITTER_H
12 
13 #include "qwt_global.h"
14 #include "qwt_double_rect.h"
15 
16 class QwtSpline;
17 
18 #if QT_VERSION >= 0x040000
19 #include <QPolygonF>
20 #else
21 #include "qwt_array.h"
22 #endif
23 
24 // MOC_SKIP_BEGIN
25 
26 #if defined(QWT_TEMPLATEDLL)
27 
28 #if QT_VERSION < 0x040000
29 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
30 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
31 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
32 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
33 #endif
34 
35 #endif
36 
37 // MOC_SKIP_END
38 
42 class QWT_EXPORT QwtCurveFitter
43 {
44 public:
45  virtual ~QwtCurveFitter();
46 
47 #if QT_VERSION < 0x040000
48  virtual QwtArray<QwtDoublePoint> fitCurve(
49  const QwtArray<QwtDoublePoint>&) const = 0;
50 #else
51 
57  virtual QPolygonF fitCurve(const QPolygonF &polygon) const = 0;
58 #endif
59 
60 protected:
62 
63 private:
64  QwtCurveFitter( const QwtCurveFitter & );
66 };
67 
71 class QWT_EXPORT QwtSplineCurveFitter: public QwtCurveFitter
72 {
73 public:
74  enum FitMode
75  {
76  Auto,
77  Spline,
78  ParametricSpline
79  };
80 
82  virtual ~QwtSplineCurveFitter();
83 
84  void setFitMode(FitMode);
85  FitMode fitMode() const;
86 
87  void setSpline(const QwtSpline&);
88  const QwtSpline &spline() const;
89  QwtSpline &spline();
90 
91  void setSplineSize(int size);
92  int splineSize() const;
93 
94 #if QT_VERSION < 0x040000
95  virtual QwtArray<QwtDoublePoint> fitCurve(
96  const QwtArray<QwtDoublePoint> &) const;
97 #else
98  virtual QPolygonF fitCurve(const QPolygonF &) const;
99 #endif
100 
101 private:
102 #if QT_VERSION < 0x040000
103  QwtArray<QwtDoublePoint> fitSpline(
104  const QwtArray<QwtDoublePoint> &) const;
105  QwtArray<QwtDoublePoint> fitParametric(
106  const QwtArray<QwtDoublePoint> &) const;
107 #else
108  QPolygonF fitSpline(const QPolygonF &) const;
109  QPolygonF fitParametric(const QPolygonF &) const;
110 #endif
111 
112  class PrivateData;
113  PrivateData *d_data;
114 };
115 
116 #endif
qwt5-5.2.3/doc/html/ftv2mnode.png0000644000175000017500000000036612052741134016106 0ustar gudjongudjon‰PNG  IHDRÉŞ|˝IDATxíÝ!NAĹń¤‡ŕ\ ÷ŕ Um@`Ô5iŇ`ëh ‚ĹW7] b§ÝŠ&ďź—oföÍdľYÔ4 üšcř ‡€´‹Ĺňů3v=Ľ]ʆ§µ\B… Iż‹=B·™Bˇ®;¸k´µ W°ÍN@vyŹÍŃÖ4ăß÷ť]ČâYěă§|M}]ÔÚx6a }ôdׇŘYüú¨>¤||5?Ó>|žB"ˇî'ˇIEND®B`‚qwt5-5.2.3/doc/html/functions_func_0x6b.html0000644000175000017500000001317612052741152020247 0ustar gudjongudjon Qwt User's Guide: Class Members - Functions
 

- k -

qwt5-5.2.3/doc/html/class_qwt_picker__inherit__graph.map0000644000175000017500000000074612052741155022736 0ustar gudjongudjon qwt5-5.2.3/doc/html/dials2.png0000644000175000017500000006677112052741137015377 0ustar gudjongudjon‰PNG  IHDR’c˙‰ IDATxśěťy|TEş÷«ÎŇ{ö=KH @]EFî ®w°¸‹ĂetEWŻŰpő.^PA–ßQGgdŃÄ6Á ! Ů:I§×łT˝šNď{węűńăçôÉésŞĎůqžŞçyę)¸fÍšiÓ¦-_ľP( …B‰W–.]zîÜ9&ÖÍ P( …â/ÔlS( …’0PłMˇP(JÂ@Í6…BˇP( 5Ű …Bˇ$ ÔlS( …’0PłMˇP(JÂ@Í6…BˇP( 5Ű …Bˇ$ ÔlS( …’0PłMˇP(JÂ@Í6…BˇP( 5Ű …Bˇ$ ÔlS( …’0PłMˇP(JÂ@Í6…BˇP( 5Ű …Bˇ$ ÔlS( …’0PłMˇP(JÂŔĹşq „çy–e†’=äOceŰĺ+Ę„P9 cŚ’$IY–Łő (I$%Ţ šŚ>Ôl_a•JEÄGÄäüW—ŹŢĺč|Ľ˛AÎŻV«•#1Ʋ,;AÂúS(É$%Ţ šŚzşŮV©TÇë;†.â ·’U —rÇqś^Ż'˙dY¶Z­’$…ŢJ"BI‰7¨&㍞h¶U*˲JWŃąÇçÓ˝Łŕö€€ÎĐý»–eSSSÉGI’, BČ˙“P*HJĽA5ĎôłM|/Î^·Běéî‘3@†Q6Čź†!‡aŚIl\ Ň(Ű?…ĺőQ©T*•Š|×n·Űíö°ôp)ń$%ŢŽ&—,Y’››k2™Nž<ą{÷nŞÉ H~ł­V«•W˛ÓY…ÎrT4Dz,Çq<Ďűßt¨“G’$|źgfF§Óét:ڱĹbq8~6‰‡PARâŤhj2++kذa€ěěěýű÷»=ŚjŇ;Ik¶!‚«]9m)˘$±’Ç&8”PŤsKDQ$™“Ţ !LIIIII‘$Él6÷äčNÂAI‰7¨&”d3Ű<Ď+Ă‹îYŽŠ!„<ĎkµZgeÄ âęQ>J’$˲÷>&Çqééé›ÍfµZ{‚_(Aˇ‚¤ÄT“‰NěźGXŔw÷ó¸8v,ËjµZ2!6 őĄ›‰’e™¨łűaäV«5 ‚ ÍfQŁŢXŠ{¨ © 㠪ɤŃd2m•JĄ„@Ü:p8ŽÓjµŤ&úm @ây I’$IÎŮ"Ę/•e™eŮôôt„PWWťÝs¨ © ă ŞÉdŇdb›m•J…ňäýŕy^§Ó9»VĄw)_ĹmJŃergdÄ-T TqŐ¤BŇh2QÍ6Ńb÷ ä9i4Á…Ô‰čò,˲Y–‰ČůŻä†¤ĄĄaŚM&Sâę2á ‚¤‚Ś7â\“‘óW'˝&Ďló<ŹŻÎF%ŕ«Ĺt†III!…ń"Mjjęď~÷»Ĺ‹+{zőęµ`Á‚˛˛2Y–Ź;¶qăĆ®®®Č5€H“ă8I’\zÓäćŠ ŞË"Ns¨ ă‡hŇ90,î^n˛dS©eN1‚H†Xöä˝…dŐdÂmŚ1 `(·Ţů1s—––ťŚÇěěě… –––:Kźa§ź~úČ‘#ëÖ­Óh4‹-ZĽxńşuë"Ý’íI¦9şäem˘ËŽŽŽäČĹâGqd ‰˛&1Ć2U!’„‚:ݡË´’*Eć4Ż—9­¬ŇËĚ5'üc*Ó`†ďľjWr’•­śhQŮ;Ő¶VŢޑİ’€0ŘňäÓdbĽVÇĂefˇâęIII!D‡ÖÖÖW^yĄ°°đµ×^SvfggçäälÝşU’$«ŐşsçÎ5kÖD­Idš#˲žt™™™)BGGG2Í‚!q%Č8„ 2úDG“cÄi aíúĽÎÜáŻuhłÚ,ÄiWË;L€ŤgäŤgšÉ3¤ű –U6ŁÚÖ¦¶¶¦´ź×uVCFPr„b“I“ `¶Y–ĹîĘŘŞŐę”””8Đ477Ď™3GůXQQQ__ĺ6(ş$‹ß9‹Ź$RćääÍf«Őĺ†% !Čx€ 2j¸Ő$„0;;cş&«9´Y–ô~Ö´bKZA“áÝH_Ćŕňӛǟ(čń»bČ9ôą}. ĄĎd€±ĆÚ¬7žOműIßy1bPĂâäĐd\żb8Ž# —NĎóń9­0==˝˛˛rܸq/ľřbL!$Ą: ň'„Á`Đétťťť‰âŠ+Q1‡ 2˘xŇdIIÉ«ŻľĘóü˛eËĚfsgĆcN°lI+îČfĘ*qşLőő¤¶žÎŐ± Ô¶3¦¬˛ľ ˇ]źg×çµőž0R[šS:Χ¶žÖ›.’p´D×dśšmŇUTR*Q’Â7$~‡Ě1cÖ¬Y‡^ľ|ąŃhŚmc.É\Fe'ąĄ™™™v»Ýd2Ĺż;(NHPAĆTáĹ‹&ł˛˛žţů¬¬,ŔěŮł7lŘĐ™eV12g čĚŢ™=Xćuˇ¶ŁţőűX0ĐĽńŹ'2”Ç2CľĂßZ4`¤±4Ą«2šOŞ-ÍÉ –}źázT“ńh¶I˙Ńe'„055U§ Y@ٞ˛rĚ1Ď=÷ÜĄK—bÝ–kŹ(ŠÎ·T–e•J•““ÓŃё蕢@‚ 2>ˇ‚ >5ůÁ<ýôÓ€[o˝uĎž=ţĽ”dV !´¦µŚęĘ,łę ÇÖ.ˇöčŃŁąŰ?Lm=mĘęI!c7Ř -}&«-ÍŮőßd4°rŔ9ádÂwaaá… ”ťń¬É¸së1 ă"GRť.'''ž_‘<ĎßvŰmżýíoăĘfH"%ÇqÎn42?$###%%%†m‹Tń dřŁÉăÇŹźčĺládNcĘ*­+űĹŹWžżá‘ŽüdN›Ť1Ŕ¨ĂWĚą—T4{`νýľđŤbúÜúAwźšĽŞľôn».±* 3mwÝu׺uë~ýë_;Ë/n5GŁm†aş×Ţc&+++ţťYYYz˝ţťwŢ!1Ć’$Ýwß}±m•Ľş˘Ž˛ŠA–e­V«V«ŤFcO[jŢ' -Č8‡ 28Ňä¦M›^}őU–e+**FŽyüřq—Ë[{Ťoés“ÄëĂ5¶v µGŤM>Ž=úĘ€;»[yh †oĎŮžwĆÜS÷uzÓw2Śěđ9#Ľ¨¨höěŮ ĂÜ|óÍ.\řěłĎâ\“qa¶1Ć$Rů€ 2Ł.ihhp¶Ę—/_®¬¬Śa{ü„çyâ˘Tî6BB““ÓŢŢoľ X‘(‚ôżćŹFŁY¸pářńăAŘłgĎŽ;â$bGé'AhňŇĄK_|ńĹĎţsŔ>xňäIĹ!†Çié3ąµh‚ěkâVhíľŐf®^‚đ9÷6oü㉬˛ #ÜŢĐžRx©ěŢú’»2šOä\<Ŕ fO{†a}ôQŇ驪ŞÚ»woük2.śäÝ}> ĂäććĆŐ+2i`F­V;Oâ$…222č 'Äż łłłW¬XńĆočőze'©ůsńâĹE‹-[¶LŁŃ(}ŢĽy™™™K—.]µjŐ¤I“nľůć5Ü Tţś&wěŘa±X0ĆÓ¦M †Gśćrż[OM|¦©řg2|r¸?8GµFŹť«cS[OGîşBÄ©Ű Çýtăňó#š2!Ö}Ýő;ďĽsŕŔcQׯ_Onrśk2ĆfűJ%Ľ«ë´“ ­V[PP@çżF”îÁEY–5MvvvOžČ”(‚$5V­ZĺĽS©ůcµZŤFăÎť;‡`fňäÉ۶m3™LŤŤŤź~úé”)SbÓnĎPAz"Mvuu}řá‡d{ĚŘq§˝ÜÚW¶ôą …+zí‰ëŁÚÎ`"áö„5­OuĹü ĂthłeVĺěg***RĽ¤;v쨫«sţbÜj2¦×fO„0###33Óíń©©©ożý¶˙ű{AÜŽăxžw%ńĺćć&ÇŠ@¨ ă RóG™Ę˘ÔüÉČČĐét555duuuŻ^˝bŐH/PAv'tM~ţůçUç/Ľ·íĂŰyňÔÄ•-˝'cVY}—¨¶3Ł˘0ŕľKĆ€3ăźh,ą©tá“{BXUUőé§źv˙V|j2fî>RˇĆm˙Ńmp/ű{ˇÜ†aT*•$IJĐ‹$ÓeffvttŘíöp76~ HqŽK͵ZMĘJżÚl¶¸]V™ Ň™Đ5‰NPĄ<´é¨1$Îg˘c­ŻĐ-ŞíLÄ#ÜÝŘV0¦=ghAőŢ̆Łwßu;qŹK’ôß˙ýßžŇÍâP“1m»Ü#ď>·.A/ű{!Ţ2Ç% U’¤ôôô5Á) AĆ33fĚxýő×Y–]ľ|9™‡jłŮČ:Hä­VĎëQA*„˘IŚ1bUíŁ~÷ë¶‚ŃaŁjł=Dµť‰F„»;"^W_r׹±Ź3ě{˙ý÷/_ľěőKńĄÉhż•H.ľK˝űÔÔÔxóÇÔ©SÇŤ8qâÄçźëć ˲BçäII’RSS!„‹%¶m‹(d÷oOąÜáÍńv[ó§ŁŁĂb±WUUŠ‹‹Ş.Đý·JKKW­ZőŔ„ýW€,H˛&1ĆSÉśîâĐą–ÔľQ¶Ö¤ŕţ _=°`¶§0)ńveŔť3Ä[•ňHˇ]—=űKůŃşsS áî}_ůsířŃdTͶ’Uˇ|„feeiµÚh6#ĽŚ?~Äžç×l«ľ AśEi08ŽëěěŚmŰ"D$é)fˇärëőú•+W655íßżßËţ 5–-[ćňĽ0Ć;wî믿n0îĽóÎ?ýéOˇü€N§{ě±Ç”—r…B$Y“ĚŞZzOjî3q1 z‰j;ą9Üţ ř?g¸˙=%fO+¨Ţ dÉgyÔ8Ńdôśä.r0 ““““Đ6Ű™$(Á!T©TÎÓdYV«Ő‰’“¤Ű…§\îđćxgeeétşwŢygÇU¶lŮBţ´uëVŁŃ¸~ýú—^zéСC~ÚT/ń—… ~˙ý÷Ţ]čô(A‚Đ4IĽâ’&ăÜČG/÷˙y mö•¨öś{ÝFµť!îţőűŽYÄň­˝'ťżÂ’Ńß%ĎÜ-ń É荶]úŹ,Ëćçç÷đ©q‰â®Uf@,N`4ă¤FGX¦ »çrĎš5ËË~?é^ógöěŮnŹáÍ7ß|óÍ7jľ+“&MĘČČظqăäÉ“AČżÂ;=G Mb0§në5®±ßż`&Ć >ŁÚÎŚVܡW)™×^¨ź{q^Í> Ţ«ŞĹ\“Ѱš$NăücX–-(( 6;n!•Ź!–eł˛˛BY¦>~ľ =ĺr'PŽ·BNNÎÜąsß|óM%a* ż"ą BÓ$bxQ›UuĂâ†30ËÇ íŚ»ąÚžpťĂC iî{Ë…Šů˛JŹü(iCMFĽ_Fޱ§Ü •J•›››4˙Ţ’˘Hĺ]Ś"ĄŹ[[[cÚ®P‰‰ •\nr?•\nOűă™_ýęW[¶likk+,,${˘ó+’U 4M"–oę;µĄ÷$ĚĆE.ĹxN'uŐ××üńÇ~~cĚ™›ő¦ZKZq$›ćZ2úźł¬ß›Őć&ů¨c+MFÖl»ô*•*///¸W¤‹KĐçţE$n©¤¬OD™‘‘ŃŢŢŢ EŤđ Ň<ĺr‡ăĘĘĘĘĘĘ–-[F>îرcöěŮŃůÉ'H‚&1ÓVݰȞRɆ-µ¨:cÄj ěk7Útą‘iQŔHę”sŁ-8ż;«á¬äŁMFĐl“.¤łřxžŹÂ+’FČęÎÝI•J•ššj2™b۰ ˇ =ĺrťăC”b………Ż˝öé,FíW$“ A°šÄ†“T†ó#;4ń•ť'ńúĆÓcÝŠĐ€Ř8`ş%˝¸ď©?BI€Ŕ›?úšŚ”ŮVÜ>ĘěĂč k(aÇĹ$˲N§Ă“ĄĄ… rëÖ­‹-Zż~˝$I»wďVrą=íO,˘ů+’C Mb–wčsĎ_ « ŃhhĎBSöŕźF?Ö˙»÷Töv‰^ŽŤ˛&áš5k¦M›¶|ůň0žÔY‹Žă’5mĺĘ•dŢö?üđ /Äş9‘Âe]dŽăL&“ŐjŤa“ü§G ˛¤¤dČ!€sçÎť:u*Ö͉ -H‚&e†ďĘ.»4¤A.ĆŮg=Ś!’ŠÎ}šŃô-”˝YnM.]şôÜąs‘zm!„E˛,[XX…W$ÇqwÜqÇ‹/ľč<©.jDmŢ6˲/ľřâwÜÍŇ›d Zĺ#)”@Ąŕc"ČP^^>oŢĽyóć㝬$ş Aŕš$3łŰŠ&Ô™XgŚ÷ Ä,iĐ=u%wĘśŹůQÓdDŢűĘĚŚ1Ă0ŃqE®]»¶˙ţ€)S¦|ůĺ—Q¸"ŕĉ¤,íˇC‡˘sĹéÓ§—”””””Ś5ęů矏ÎE<Ď+n=€$ImmmJ:FÜ+AĆ–$¨˙ăťÄ$\“cĚ©űMkí39* ¤8Á0ƱŔ^g˙ěÝ[M†ŮlcŚť˝€üüü¨Ť}}úÚµk ‰Á%%%wß}÷ÝwßbÜÚ˙ó †µk×Nź>ÝgŰbE ®I   É8?úQkZźh´Źâ cţ膒;°×’ď‘ÖdŘ̶,ËέV›‘‘®“űĎńăÇOžř`ôQ|đA˛xÜwß}wüřńX5agQ’5pâ-(NéO=őÔüůó 4räHďG†+ÝĚ˙óL0aĐ AóçĎ_¸pa(WŚ( !H”&§©®ďĐfŃ´xaÚzŤk8ysGT“á1Ű!ç¬HŽăňňňÂrć Ř´i©`PQQáó=@Ś9rřđáÄɦ8b˲.9“ń“›W‚ôÉÁÉĆÍ7ßěçW•nćó±[věŘa±X0ĆÓ¦M‹mcÂÂôéÓ !„V«uűöí±n@I=^ňc'1Ĺ9jÔ¨—^ziË–-›6mZ˝zuż~ýČ~ŤFłtéŇÍ›7oذaöěŮaśBf6›Łč˙€Ű'ˇĎ9QsäČ‘đÎËHMM}űí·ť÷°,{ß}÷mذá>Xľ|ąJ÷˙¶Ç­ A€šÄËŚŞąď”ŽĽ"ß4Jđ´őßŘ˙ç^âÜŇd¨f[ńü‡Á`‡']]]~ř!Ů3fLl&MšD66oŢl±Xbۆaśß>$~ŰT홚šúä“O~ňÉ'óçĎ˙?˙ç˙ś:uęÉ'ź$š7o^ffćŇĄKW­Z5iҤ0ÚW€R ô¦›nňÇŤćŹIöÇ‘îĺ< ĂÜtÓM.Í ťěěě+VĽńĆz˝Ţy˙Ě™3 ´bĹŠĹ‹‹˘x˙ý÷“ýÝö8$P“cĚ©: F6OĄyăńĂ´öžŘÜçf/•X"ˇÉPeˇTa0 “““â ĂĹ®]»ŞŞŞ6oŢüŇK/Ĺş-a`őęŐ›6m:wîÜW_}ë¶\‡ŰřM ‹™„(HAşşş”—,Ƹ­­ŤśjňäÉ۶m3™LŤŤŤź~úé”)SÂŘěďľű®˝˝cśžž>|řpźÇ{1ÉgĎžýä“O>ůä““'O†ržáǧ§§cŚŰŰŰĂŘnmm}ĺ•WV­Zĺ˛Ú´iď˝÷^kk«Őj}ăŤ7Ţzë-ÔmŹ7A‚@5Éňv}~ýŔŰ#Ţ,Jhę{‹9˝b<şO®ɼŮ.]ő‚‚‚PÎ^dY~öŮgcÝŠ°!IŇgź}öŮgźĹş!nŕ8Nɵ!˙OMMíěěŚ~KB¤Ýn_ż~ý3Ďuę”ĎRäţśG1tő’ôôôÔÔÔ‘#G®ZµŠçů#GŽüá°ŮlÁÝöř$P“2˘:őÂŘł  ÄÖ™]öĎסŁÓ“)Ż&m;gEŇÓÓcĄî“u:]ôóÂ"H†a-Z´oßľůóç˙ň—ż¬®®ž;w.@­V˲¬ ›l6›FăŁ@q (~”1cĆxš$}ęÔ©­[·nÝş5Ä5B|žÇ`0(ŃĄ(8xČÜĺÜÜÜÇü±ÇKMM}řá‡A°·=N פĚiŞF,’9-MCK$ Dś¦zŘőřpĂ«É Í6BČŮóĂq\ü$mR˘Źsü†,=ĺIŇádvvvvvö{ď˝g±XZ[[·oßNćÚl6–e•ߨŐjGXZ®PWWWUUEţyÇ}úˇ‡ŇétYYYłgĎţúëŻÉ%80wî\Áźźçťwä:^˛dÉ-·ÜrË-·x·p‡:sćĚĆŤ7lŘ\űĂĹ«ŻľşqăĆ3gÎx/Ćççďň BčŕÁ ,0 YYYsćĚ ý¶ÇP ›&'Nś8tčĐŇŇŇW^yĺÎ;ďtmĂYÓúvf ŽNŰ(‘ŁvČ™×yšÇ.Mě[Ç“ ‰Ů°,KÝăĂ0Î$˘ěčččEĂ.Č×_ý‘Gůýď/IҶmŰFöoÝşuѢEëׯ—$i÷îÝẢ‚Nť:@Ҥ»c6›WŻ^BŰÆŮl޵k×®]»ĽłdÉňsĽ/«ŕ'›7oVnď”âˇÜö¸Óä¨QŁDQä8Žçůx`äČ‘6lP˘á. žEÇŮI€Ěiއ?4đřďäp›+MÂ5kÖL›6můňĺţ6Ë)C——·k P˘ŹK<Bh4#şţq˘ŇŮČ}ůĺ—.ĹF2Î&/¦˝{÷ľóÎ;±n‘{˘/HŕA“EEEŹ>úhII ¸ÚÜ´iÓž={$†ox{[Żqm%šd_úşŕÂFvź‡Š&—.]zîÜ9vĘ”) Ř»wŻ?ßAɲ¬t"Ôjµ—$ JBč2YHŁŃX­Ö].yôčѬ¬¬ââba˙ţýł˛˛Ž=ëF é‚@I$nm6ş gMšL¦ýű÷ ‚PVVF&ňŢpĂ C‡ýü虺AwH+«$Ö”"}W-oď€ŘÍĚÉP49věXŁŃ¤V(sssű:%‰q™ŐŔ0ŚV«ŤôEc+H?Ó˛Ţzë­}űöEˇ=Qcßľ}ţ¸ Â’¶41$p§I„ĐÇĽbĹŠsçÎ˙ů±“?Ԕϣ6;Ů€°vČä!«śă¸iÓ¦9»ĐŐd±m—ˇ˝V«Uć ¦¦¦ţîwż[Ľx±ňWŤFłpáÂńăÇ ‚°gĎž;v„%F‰ ˝zőZ°`AYY™,ËÇŽ۸qcWW—§»Gtôz˝Íf {«Ľ2šw1Ůö´VPđyd<ĐŻčţD‚¨ ř§ÉşşşŐ«Wßu×]•ţád§Ř—ć%Ęś¦®ôžŢ§v2’ÝY#GŽ|衇ňóóĎś9sńâEe@š Ŕl;Ű]e›ěěě… –––şäî*•„őzýĘ•+›ššÂXÖM†yúÚ7Ău IDATé§Ź9˛nÝ:ŤFłhѢŋŻ[·ÎËWxžWB5c•JĄŃhěv{xćV±Âgş™BBl?ExÓÖ‚&:‚~k!ôŃG‰úśĆŃŹ‡˝ ”8ˇ3kHž6SÓŐ@>=đŔ#FŚ V|Íš5 ,  T“ţ:gHŔFů¨ŐjI:śŰ Ă‘.ŕL‰&ŮŮŮ999[·nµZ­FŁqçÎť>gĂ«´IŚqŘń$Ččăěúľĺ–[ś}N=çqöľ}űbŘ_‰‚ A šÄcNSS>°´iňa}éż"Nť’’˛páÂ×^{í†n !‹ĺŹücĐš R4YYY^ţéΔhŇÜÜřľsĆýG?¶ţôî*Ůné>©!8MúÎâqÖ„Đź‘Mś) ŮŮŮĎ>űlż~%‹ĐÔd˝˘˘âĺ—_v:deeét:ça“(Š÷Ýwź?ç$i“Ę6„Đ`0´··‡ŇÎŕM’crvpÄůoŹ„ ßšÄcÚ bĽ*+%š`-}&çÔČMÓ 4é»&ąłMÍÍÍ ×âw·ß~ű>¸|ůňűďżď}ˇˇžÉo~ó›!C†Š"Ć·´4˝őÖ›őő‘ZůX)Ř´iÓ_ţň—pťcěě’eą±±1”Áh„Ié!„]ŔoM"†k-šĐŘ:ŃdEJĚ@(óňŃ^Ua$7C/˙5Ij’űPŹséÔđ.XKô…¬X±âńÇw»mŹĺî»ď./&ËBŘŃŃ~ňä‰Ů좢˘gžyfĹŠD7ĘZËaÁYŽ–eC)-9ARzá$D“Qµô™LÝă=Ű FËś{ĄŞIoNr—%cSSSl©7VŻ^=}úô™3gęt:áĉÇŹżk×®?ýéO^ gö†>s潇Ś1ˇ«Ëôç?ö«¤¤¤TVVŢzë­$2‡1¶Z­[¶l {=;˛ <نęőúŕÖr¨ ‚TŘîîžvń"'űŠ‹íń纏<Ý˝¨.A‚€4 ™®ěRIţ2/”B `Sź› ĎÎČnĹҤ7łí’öŢ·¤$Iź}öŮW_}E,Ă0,ËŢ~űíS¦LŮşukOxççç?ńÄ’„1!ŁŃ¸uëfAgT›„±gÎśé¶@/¤ h B¨ŃhX–u™°ĐI±2ŰĘ'ĐÍö¤IŇŚúúůţű“˝z}5`@uśĄËĹ^î^4 ‹ A š”®©Ď” .AI:ň* ĎîéŻţkŇ›“Üů;jµ:Ĺ#»şş6lذ|ůň'N=z˝~ѢEk×® űµµZ˝rĺJ„YĆÄ=~üř‘ęę á˝ĘÚµk|đAbł'NśXľ|ů¦M›"jłGĂ0ĘĄ" ‚ [nąĹea«ż«Őę|Śo®­}ěŔźź>Í 7+÷őXś§‡Ĺp ř­Iڱ5µ·C—ÜU(ÉĚjĚݦQ¤IŹŁmY–BŠýŹčȦ®®îĄ—^"YQ€FîrńĚŻýk!MeˇĂáčččřË_ţö«}dY>wîÜ|P]] |=čĐ üÖ$Ćqš¦ţÓhT»§akŃx}ÇVrłd˙šôh¶•™$É-čި˙?~ü»ďľ›>}úđáĂwíÚéËĹ!łfU–––‰"†Ę2jo7nÝşIYą(ŚěÚµk„ űöíŰżt‚ÎţˇJĄ ´@U ‚ś9sć AV¬XaµZ/^|˙ý÷s–µéśËŞüěg?s.Bľµoß§­Ö”–ÖjÍ“$mGÇę={Ţ;öÇÂÂ@Ż’L„^†Ĺíb©©©O>ůäý×?~śeŮ3f<ůä“˙öo˙|=čĐ üÖ$„PÔ¤[ŇŠ:9%)1g ô´Ľş˙šôčftžIć˛(gä ď˙÷.ΔЌ9ňÎ;ď¤+ϬŁĂxäČ?kk/úţfŕȲüěłĎ~ńĹQN kÝ@yž4 ňĎV?Îöx‡y(eXÜ.6(BWWB_…TňóA‡"Hŕ·&eVÝ0`z '§$!bČ´çŤ@,7đO“GŰÎé‘iiiˇ4•â“‚‚‚Ç\’Ćc$ŽŽŽöĎ?˙,Öí '˛,;“Ňétťťťţ;¨dzzzjjęČ‘#W­ZĹóü‘#Gţđ‡?Řl¶đ®Mç©´H­^ż˘˘â…ďżOcY®ŁC@ž$M®©ÔҲ~âÄ6!č+&.*Ăb·Űׯ_˙Ě3Ď‘ŠÍf{â‰'€‹†(Hŕź&1ĆËÖ´ľţź–’Ü´ôźŮx¸Ë'÷S“îmľsą5aó)ŢŃét«V­–eHŇĐ0Fííí[¶lJî\zžçU*÷Őţş¨ I/577÷ńÇě±ÇRSS~řaµéŢzë-·v¨E­^QQq9;[ČÎF°äĘrż®®•{÷ŢP[ĘO÷*†Y´hŃľ}űćĎź˙Ë_ţ˛şşzîÜą ¨ A štčse–.Hą‚ Í4ţéI“îͶóš$qX<2Éxâ‰'µZ˝(^‰ ŤĆoľůş®. _!ů;Ä Äqś˙&3PA’€Đ»ďľk6›;::vîÜ9zôhŕ´69,˘kÓ™x~ĺđᲳż<’‹dŔ8O’}úÚµkýśşŇŃŃqúôé‡zH§ÓeeeÍž=; ş WMbŚeNíĐfQłMą„2§1g t« 4é&%ŤaĹlâeaj,ĺ:ŠŠŠ–.]*Š×:\íím~ŐŘŘŃëj4š’’ŇÁ‡ô7I’$Iľ|9˛%°,ë\4źeYµZmłŮĽ+8AnŢĽYYîŔŰ·o'ű}®M0aBiiiiiéÂ… Ź=ş˙ţ“'O˘ óŔ!ÜĐżżQĄú|S”$€c•$Už81´±qÓ1ŽžŠb¦˘˘bĘ”)ŁGŹ&ç‰'îٳǟďľţúëŹ<ňČď˙{ň ·mŰFöűó $đ_“i+íĎŻ ô4Z{ŤÓuÖp˘kS4éf02Ź‚lëőú¬¬¬·ż'˘Óéţă?ţCĄŇÉ2÷xmmÍoü.xóŕ‹Ě̬ňňaEE˝AÁn·[­ÖË—ëkjŞŁ6ăŽeY•JŻ®rŘÜÜÜŮŮéý+Ńä /ĽPVVćÜ€öööěÝ»·ĄĄ%čÓŢÜÜüČůóŞćf ¤›-ĐÁ˛F•ę'N¬Ďđ+K%É(,,ś2eĘM7Ý”‘‘á\(ôرcŻĽňJ„ ßš”YMͰűÍ™ĂŘ`JrŔČBůß×2î–ňô˘I˛ëhŰYŽ€(TYé0 óÔSO©TZQ”‰!ąłłsË–M‘°Ů2}úô:t¸Á"ŠBgg§( V«Íá°ź={:âPˇŕąŃjµŢß’1䫯ľ:iҤ›nşiŕŔaffć=÷ÜsĎ=÷ś©Č»&]Ͷłń˘H/Ĺ )))Ď>ű¬,„śÝăm_|±§µ5řD'‚N§4¨¬´´L–‘$‰]]f„d‡Ă!BKKsmmŤÝî¦OdYVĘS0 ă˝|J\ Rqž‡~*ŁJőtEĹę,bľµ`LL´€|YžńÓOĺ—/ż}ăŤć$ŤR™ÍćŐ«WÇşWHŔoMve Ô´čĹČ:ôyZS]÷?z×äuf›äť«ÝIŘ#$ Ťç5‚ ďĆŘjµ477<čfF©˙dgç :Ľ  P«Ő&Ë2B˛ÝnEˇ±±±®®6ĐuŤ"Ť(ŠDZDl^d–Ü‚´pÜęaĂ–˙ôÓ`–囚 ‰•*sŁqÍîÝďÜxăŮÜÜX·4Éń_ MĘÔfS|aʤ1ŐCŕZwĹ»&Ż3ŰÇ‘‰@JqµČ6ą'ńđĂő&ihdB˛ÉdÚ˛ĺýŕÜă,ËöíŰoذáŤF…®.BX–eÉ®««mh¨ŹĎŞćD]Ę}ŕ8Žă8·MMzAŠ óňŕÁŹVUŤcőĺË!rSŇŇ ÂŁî/)ů´Ľ%ÝoŹü$đ[“á-)˝#Ô`JŇ`K)D¬š•]]ˇŢ5é:ÚV¶“ďCnľůć›ož˘¤ˇ‘űÜÖÖ¶gĎçAäÍęőú˛˛!–ʲ$‚ŮlÁK’dłY%Işx±ćňĺ†Xe÷ř‰säĆË[˛'AřfI‰QĄşŤaT—/C§ű  _–VUUÖÔôÖ„ ť±Ž$1~ ř­Ḭ6C~xII>lúĐm¨Mđ˘IŹf›¦‘‡‹ţýű/\¸PtšUŹ1¶X, _ý÷€N•——_^>,//ßá,3):/‚ÍfE±¦ćBssS@+Ć çőéxžW–|pˇçr[ßľí*Ő}Ş._˘HúŘ,&IÚÎÎŐ{öĽ;v쏅…1nh’â§ šÄCYtčóÂŰHJň!h2 ‡ `^4éQťtᯰššşrĺJI‚ÄÄ’ť˛,wu™¶mŰěçIX–í×o@yů0µZ-ŠRg§ !Án·Ůíöęęómm­űáG™?CRóĽĽ%’^» :x~)Şćfŕ´\@B„ůç?żéŰ÷˙Ť!'©ă!†!HŕY“BIť‚$W,%,şluW—˘+Ý5éq´MW Žăžyć–U9§ˇÚÚZ˙ú×OŰŰŤ>Ď`0.0 D’DI’, 9 6›ÍfłTW_đç<ń†$IÎe€<˝ţzš ˙‘ťÝĹó+ T·¶b«ŐŮ8“ĄĂ&×Ô jiY?qb[ČkśPśńSŔoMš˛JĂŘ477_‹Ĺ,ËW)‡Ăn·›Í¦ęęóQ®KF\‡n§‹ˇ KJJ† â˛óÜąs§NťŠôĄLK[5tč˙ýńG­Ńş®UĹW—Óuu­Ü»÷QŁľíÓ'ŇŤ‰1ĽŰ ţř­I   Ncó(I „6CbřîĹÉ˝hňšŮ& Ź(űşŹŮ)1uęÔ‰':×ý;—$Éd2mßîŃ=Îq|˙ţʡňĽJ%“ÉtµwŹív‡Ăaooożxń‚Ĺb W;yžĎÍÍÍĎĎĎËË#ş¬¬ě ŞĂ[µÍ†aśß€*•Ş{EÉ ˛ĽĽ|ŢĽy.;?účŁč’Z˝~EEŠߟƲLG‡ó› c•$=xěذ˗·Ť%&~Č?¶w›ŕŹ ßšÄ,/©Sh}4Š?ę4̰ ›Ův«I˛}ťŮVFĺÔf‡HIIÉüůó¬d ’íFcëgź}âv­‚”””˛˛ňŠ˘$‚ X”oŮí6AZ[[jkküYUĐ!//////??żwďŢ………ŮŮ9:ťÖnwȲĚ0,Ër‡]„ü!č«ř ™á@¶Y–ĺ8Îe~yOd‹Z˝˘˘â˙ţđC.Çń­­ç߯ @’Tuuý[[×OšÔ”š«v&> üÖ$†Ś¨N‹\S)É„¨ńčé®I˛í>óÂĎŚ Š[ŇÓÓW¬xZ±s_ cl6›jkkŹ=ěr|AAáСółsAčęę"ŁkŚ1ĆČfł‹˘půrăĄKµ‚ŕţ!ĚĘĘ"ş   wďŢůůYY™2‡cŔó<Ć!Śęęrd‚­łłăđáoöîÝípř{­ qŽ’ş»^ĘÂDYgĎžýřăŹ]vžsć§ęęóµµc[«\™Čî3RŘÓ á†ţýŤ*Ő/P55IrľSÄaž!Ë:»ýÉ}űţމhK)I…ĚiúčŁz˝~ٲeÓ§O˙ë_˙rËŹŃŁG/[ökrŻl6[jjJccÓąsUťťťv»ť”ePžBH’$I{÷î3|xEjjš?›¤Ş]­o*K’téŇĹÓ§O]ĽXÓÔt9®zKżůÍo>üꫯ"„fĚńřăŹ/]şÔËń.siĽŹ§ý·µ:ťŽt¤ČÇyóćeff.]şTŻ×Ż\ą˛©©i˙ţý~ž*niĐéVŚńü÷ßgrT~ýĹ/ÄŰfśilN˛Úí«Őʲ\Ż^˝ëë/ŬŃ€a§ź~úČ‘#ëÖ­Óh4‹-ZĽxńşuë€ççîE đí·ß¶´´¸ýW|ä’đt­6ŠżČ¬Ćí~Oš x´ť––V^^ţđĂŰl6łŮĽeË–űî»Ď­Ův[jŘ™(—/ ĂüęWŹ€[ZÚÚÚ:0ĆőőMKv»Ýl6;;4’B‚ ôď?`čĐaz˝Á»Á&Ţá¸r‹Ĺ|ţ|™¦…UC‚{jŮŮŮŮŮŮŰ·oGét:I’ŚFMUIÂüám/\¸đűďżź üÖäŕľwŽ UŇ(ţrć7V3Ý' xҤűAŚE¶¶¶ÖÖÖΛ7o۶maîÜą=srÎđáĂIá3ĄDţŻÓéÍf‹$I˛,cŚ.4ŁR©ăÖl‡Hzzzeeĺ¸qă^|ńEŕůą{×C@‚ô~üČ~y‹Çgú+(=–Ͷ˘Ożtńô¤1ʱm/˘üÝď~·dÉ’wß}×h48pŔÓhűěŮłź|ň‰—¶FżěpxAĄ§§566“ŹÄˇa±X‡ ýű÷3f,ðJBĆ@’I’Ěć.YF‚ \ĽXsöěO55ŐÍÍMqâ˝ ý©µ¶¶îÜąóąçžó~Ëďő^PŧĺŻ~ő«-[¶´µµ)ąB6›ŤÔß'oj­Vë©ÖzâjAřfI‰>3łç# Šă8–ŤÓ„üPî˙Ś3fÍšuřđáĺË—“ĐŚ§çî] xŐ$ť·M čć!ž5éŢIîý-ŮÔÔôüóĎ“í©S§^¸pÁíaqRj8B|÷Ýw7Ţ8ˇĄĄU–Eöj!ĂövŁ,Ë…ăňňa ĂbŚÁ!˘ĹŇěęꪪ:[UuîâĹj·ë€ĹśŕžZNNÎ˙üĎ˙Ü˙ý˘(xž·Z}řö]ür·˛ťţ ’PVVVVV¶lŮ2ňqÇŽłg϶X,ĹĹĹUUU€âââK—Üçd%şV·wu­Vű¨ŻbµZÚŰŰŁÓž@ úţWVVŽ3ćąçžs~˛nź»§ýź‚ţic|ş¦îío“Đ«A ;ą:¶ŔŔĄjUwß}w÷żšL&çů8Š&ÝŹ¶B^)_yĺ•#GŽ|ňÉ'3gÎ|űí·CkyBräČ‘ĄK˙Íb±466€u:˝ŮlÂőv8ě‡ IbccĂ0---Äű][[c·ŰcÝđĐÚÚzůňĺ_üâ}ô‘Á`¨¬¬đ_>ĐvÔč:/d d0d0’“C€€ Ŕ2bcĚ`„!Ä ‹!‹!‹Y3ś 9ĚráĂ#^‡FfŐQc/sZ  Ěi„Ó`Čʬ 3,bTĺĂ!†ÇlB®żŢŁ8Ü`?Ü`ďbWŠŃMMIŤF“››K¶ť%w]Jš˛—ľ%âŇĄ‹ÔZ ÇqJ(Q–ĺî’Ł‚ ‚úúK\—––ž‘‘1îčččěě wĎ| ř­Iĺ< F#ďăhňW1”˘’éF6ČU\ňä ô 0 H{0‚@r]Ś1Ă`Čb†ĂA¬ C1*̰2«Ć,Ź85‚śĚi«B¬ 3¤—pĹäc†“Y†,âÔ0×\é(H}á…şÜî÷¤I÷f;Aç S—tďf› Ň0Ćíqš4·ř$Š&ť Ó‚n›Ŕ` `p] ‡`:D22Ś1w}oŔµsŔ00a€$?H–§á«{$ b9 fx ĚŞĺ3śĚň€UˬJfxĚ©eVMş2ňŰOÂZˇĚjđUWbU=ą+ŔŠîň¤IW'9y–=!‹Š[śăŻ!O’Ł‚¤D? S“žz×>b dŮç*(#F1Ć8\z.˝†,0Ć3,‰ F$L€H˘«aÄň€áůŹU#†Ă¬±ĽÄŞ1ĂËĽbď™U†%®™áĂa†G,%«€IŚR`¬hs»ß“&Żm+Ď€zŐ(‘Fń˙ÎľŰŃv¬é¶DvĽ•%Oâänű$ /I€W7€Ko±Lú8€D?vź9‡b0ÂXp^{¤€&`q 0“0Ä`Ś@1q `Č VŤ ‹X5f8™W#†G, (V_… ‹9†¬ĚŞ1ddN s%«€×…zŻ˙mIž¦xҤűr+J¤q®‰ëp8şŻfCA–——Ď›7ĎeçG}DÍv$“»íS€ľ$#‰˙˝@ŔźĺQˇ,BˇäN r¸ÍŔ†ĹW˘$~-Č`Ŕ €X1f8Ěr^ë#V…Yby™U#V…śĂĽc€x%—‘YµĚk9‡ ±jVr3ŕö¤IŹĺVü¸!Jđ8ŹDy—$%Ň$H@5™ x t?`€$ňŚ, dżÎ ŕ>…bČ€1ÄÒt%A÷†Ř“&Ż-Ë2ő˙P˘†ł"EQěžŕCAž={öăŹ?vŮŮ3Ë E8ąŰ> čK’r=ţĺĘ$®fvółŔ}zŁ'M^g¶ť‡äţT¦P‚!ä¬.»ÝîÖlÇJ‰^˘<±‡»íŹ }IR˘M2Î9G„č4ŽŇQÖÖ$˘ŘÝĺHI‰ţPMR˘Mş/…!ô´Ä!…::ݵlL„Y7ĚT”H Ő$%ňxŃäu‘p†a”€ M¸ DŤFC* ˝yzKRAR˘ź‚T“”háE“׍¶Z·ŽB Ĺ˙!´Z­ž NQAR˘ź‚T“”háE“ëůŃr’”ȡR©”mOY»€ ’-ü$ š¤D /šĽÎl“?(ąěÔD‰c†a†!JëęęňôúŁ‚¤D˙ ¨&)QÁ»&]Ͷ2gcLó$)‘Ŕ`09]zÜÄ› ĂôéÓ×®]«×ëcŰ’DÇ`0¬]»vęÔ©!Öm @ ţ4IIJĽkŇÍR"ŠHŤF˝–RzÎojY–˝§ăĆ †©¨¨2eĘčŃŁyžLś8qĎž=ŃoIŇ0a„ŇŇŇŇŇŇ… =zt˙ţý'OžŚŐČ5 A‚řĐ$%ąń®I÷+€|΂ P‚ŔY‘v»Ýçě/e;ú‚,,,ś2eĘM7Ý”‘‘áÜ’n¸šíP4iŮŕyţĆo?~|{{űöîÝŰŇŇĺĆ$HkMRzŢ5éj¶ťëţĐ čK’yĽkŇŐl;ç·Ş Î)”áy^™ů !ěěěôţ–ډ źzꩲ˛2ĺ#ĆŚwďŢÝÖÖé«÷Ěfó®]»víÚŐÝźQQQQQQ1věŘ—_~9 -áyž\—Ě‘ő)H@_’”ăS“®fŰ9Ľ„1¶ŰíT‘”0’••ĄlK’d·Űý_ű+j‚˝˘˘âĺ—_¦Y‘cúôé%%%%%%wÜqÇűďżťÉ6ůůůĘ6qţř?¸ B•••cĆŚyîąç.]ş¤ěěčč°X,ĹĹĹUUU€ââbçżţ˙öÎ=6Šë|ŘgfgŻľá ŽÍ%upHZAę(mDI(H€ T˘µ!„;¦©PŞ’*Ş")-íŻ!•Ó6$-Ô`L“•¨Đ.i«¶ „F„âH Ë®íÝőŢfgć|Ľň|Óµ±÷2—3»ďó»3ggźť÷ĚąĽ'#žzę©ŮłgL¸‘ ÇÁEË"rű…Ţi:_t.Bën’H“¦“ĂŹ$WďD0Íś& ĆĆĆ˙űż˙[±bĹ´iÓćÎťk 5µdmmísĎ=÷ôÓOO0Á蓬uA›h4š~ŔËTH§Ó9oŢĽ_|1ĺfM)íěě\ştiqqqMMÍÂ… Oť:•ůGůźgÇcÇŽáŁö¨Ľúę«'Nś€íYłf©ă˝ÓäN_h._t.B‹n’H~“¦“wěŰN&“‚đ˙˙×Đ&  &,_ľü‹_ü˘şgĆŚďĽóŽA§C¶nÝ:wîÜĹ‹ĂJVÓ§Oä‘GŽ9ňÖ[oÁśWÝ)))Ćízűöí”>Ł’‘•••>źď7żůŤöíË–-#„ěŰ·ŻĄĄĄµµU’¤ŁGŹžýęNeeeQQ‘z©)Ą’$-[¶ěNűÉh_´*$Ľ+ !‰ą7I$ďIßÉ;†mQťN§ęăń¸F–””455ÁoöD"‘¶¶¶,n¦HúH’třđáS§NÁĹw8‡cţüů3gÎÜ·oźŢj㤧‡Ă™˙ÉHČ7n477ßé8»víÚµkWFg–'Nüú׿Îý8…Äi¨ôdÄŤ7šššŇßOFű˘µ­‘˛,g!$1ë&‰é;9úHr2¸Ľ˘(Ú!E9ÝŘ‹/VG˲üç?˙ůŹüŁA|H ápx÷îÝGŹ]ľ|ů>Čq\QQŃşuëfĎžýü@Çq§]Ц··7‹ĺx@Ý…LőŰĆł€…«§»Äj'»“‘“#…íx<®ť5C0t)"!d۶m“&MRS¸˝˙ţű{÷î˝zőŞ^ÇGŇäęŐ«Ű·ooll\ąr%T÷†ć•Ě‘ÚÚZ¸—QJEąyóf$Éâ8† ™°sÁň«W[[ =9 IXr±599RŘ–e9eAxŤ<}úô¤I“(Ą7nÜ0m03r'Ξ={îÜąąsçNť:őČ‘#ú\M Ŕq\2™ŚD"ŮM0TH¤p;v,<0ä($A'ťČČÉQɵɀ(ĄÉdÖçÉť#GŽLź>ýĉ'OžÄ\ü,އÖ÷°eeeÚa;×®]ËúɆ)¤ľrĆ?»ľBű8‰0K¦NŽŇ “ŇĽžţ`ˇzhűöímmm{öěŮşuë=÷Ü“ňY–źţůcÇŽa̶ “'OŢ»wo¦ďš0aĎóp_S%Ç~Ĭ…46kÖ,`ú2nܸ¶¶¶ěŢ[WW×ÜÜśËFĹĐĎ® ú Ilâ$Â2™:9Jئ”jGX(Š’NkRiié3Ϛѻ´­,Š˘twwçľfBš†6 ˉ' m(ć8î©§žŞ¬¬Ü±cGUUŐĎ~öł·Ţzëë_˙:Ątßľ}wß}÷cŹ=&Šb[[۱cÇŕ-'Něîî7n!dţüůÍÍÍ’$µµµ?~\ŻRi§xÍš5KQ¦ćČ©BÂŔo]„$l;‰0NNŽţđ”L&Őş$Çq˛,Źš(Ź·¶¶nÚ´©­­íwżűݢE‹~ůË_¦Q~„QfĚQ^^ži·7ĎócĆŚQź;!éOîKf!¤9¨ĎŮ”ŇăÇŹł[ZZŞ««wěŘ“;AaíÚµoľůćęŐ«ĂáđęŐ«:´dÉxKCCdú„ßu×]ëׯ?tčĐO<ˇoŮ^}őŐăÇŹC^ťÇśťgn„$ ;‰0NvN¦Őć™H$ÔŚk$ŤÎžç[ZZŽ?ľzőę 6\ľ|yéŇĄéśa±cÇ.]şt×®]™Ţ‰ ©šsĺĘ˝fäg*¤ ůśMYµjŐ¬Ył^yĺ5!ĄôÍ7ßEńĚ™3”ŇŠ˘řď˙Űëő RZČsłĐĎ­ ÁU_! {N"쓵“éŽ0‚Çvř‘Ă FxńĐëŇ…X”)S6nÜŘŃѱsçN§ÓŮŃёλî˝÷^í8ť®®.}“ße$¤ˇhźłÍIQ®(ĘĎţóÝ»wĎ›7oâĉéĽeĘ”).\0ş`)0őĚm´„%'[µ“é†íx<Î Bąó¦żż˙ŁŹ>ZąrĄĎ竬¬lnn~ď˝÷Ň<ÂMlܸ1™LŢ)´AŞŞŞ`ô8ÇqŃh4 岲őP2Ň ?ŰśáWŠ˘$“ÉK—.?~|ÝşuéĽĺ+_ůĘß˙ţwŁ 6ő™ŰüSk! !Ć IŘsa™\śL+'9’F ‰Ś0Zňĺ—_^·nÝŻ~ő+I’:;;÷ďßźţ‰»ÓĐĐp űř㏍Č3ź‘Ćaa’íöööť;w~ő«_UÇš ‹Ăᨨ¨¸uë–iÓÂBrRÍBe„'öÉĹIî‡?üáś9sž}öŮt^]VVőGč˛*..VCŔëőj×`ííí=wîśA1…DFĹL! :‰¤AÖNnذˇ««+łěj§5Ô°óĘ”)SÔŚ?”ŇO>ůĸ%ÝPHdT¦L™˘6\-$A'‘4ČŃÉĚÂv,ÓŽ–”eY÷ţ!ÄÖTTT‘Á´h}}}‘Hĸ; ‰Ś ©v9-$A'‘ŃČÝÉ ú¶X,ćőzŐ1&‰DBlB!”RµW›"IŇĹ‹űúú =© Bz<žµk×>ňČ#˘(ţĺ/éčč°|Ś•­?~üš5k¦L™"Ëň™3g^ýuíŁĆäÉ“·lٲ|ůr’ó•OR–e„$x“DîŚ.NfĽ˘»:•K}ĆÇş$Ô××;HjKéîî…BFĎý3AČ'žx˘˘˘bÆ [¶l™1cĆcŹ=¦ďń žçź{îąO?ý´ĄĄeăĆŤŹgýúőę˙¦¤ľĎńĘ×××ó4SH‚7Id8ôr2›° ÓFµ{°.‰<đŔędJé˙űßţţ~sć­*dyyąĎç»rĺ üyůňĺńăÇëuđäÖ­[K–,Q—ëť6mÚµk×`;%ő}ŽW^’b˛o’Čpčĺd6a›ŤFŐÓĂm:Źgw($?~ĽÓé”eZ~@ 03-łqBşÝn5W(!$‹y<]Ž\ŕŚ3fýúő ,xíµ×Čp©ďsąňăÇŹÁB! Ţ$‘˙EG'ł Ű„H$˘MťźL&Ykr8/˝ôŇ‚ !ă‘w¬!‚ ^zé%¶¸\.x ˘”ÂCFWW— R0HČX,ćp8T…Ľ^/>6ĺÎüůó_~ůe‡ĂńěłĎ^şt‰ —ú>ë+B‚  Iěp“DĚA_'łŹg’$A>uO"‘Đf˛śąsç644444<ôĐC?úŃŹ¬.NNl۶­ľľž2sćĚwß}×ęâüÚćqBHWWW(R’LĂ !űűű#‘H]]d"«««ëîîÎńNSSÓĂ?ü /hŻääÉ“!ű=üyŕŔ%K–dwĺµM‘Ä:!‰n’9čëdöOŰ„p8¬vA)egąş’’’o|ă°ýŹüĂÚÂäÎéÓ§aăÉ'ź,..¶¶0ZęęęśN§:0Ňď÷ßľ}Ű´?)!$Ą´łłséŇĄĹĹĹ555 .šÓ鬫«lç0?›ňé§źŢŢŢüčr3AHD/ AH‚NÚ Ëť4ÉJ), žŇćŁKz |P„÷ß?ÇădÇĹ‹ß~űí·ß~ű>°¤n·űĂ?üö·ż˝iÓ¦ęęęU«Ve}(ŹÇóąĎ}N]ˇ„ă8I’>űě3żßňćI ы’ “6'ÍxÚVéíí-++S× `đE.‹Y}ík_{çťwr.]–ś?ţüůóVťťň /ŔF<oooß´iSvÇ)++«®®&„Ȳ U~Y–ˇ ië!?#`. ťdFś4»í% í°EQ’¤ěX]]=iҤ3gÎä\4[RYYyŕŔ˛˛2řS–ĺěz Ş««AG@QI’>ůä“[·nĺń-’ $˘ +$A'Y…'-č2FŁÚŢhgH&“Y´0|éK_úđĂm‘ŃĐŔgź}¶rĺJŻ×[QQŃÔÔôŢ{ďetžçďľűî’’mC\<‡©‡z™9ôÉ’ “ŚÁš“¦6’«Äb1Jiii©ö*Ȳ¬(ŠËĺĘhÎĂľđkۨ-çżřĹşuëvďŢ‹Ĺ:;;÷ďßźţ{=Omm­zwP…çůp8ÜÓÓâń¸1Ef…Dr…TA'A'­ Ű„x<®(Jyy9¤•ť”RQGJ×Îüä'?1¬Śö §§g۶mYĽ±˛˛˛´´4eçíŰ·@ EQŹŇŮ˝„D˛…Lť´6ť´ň‹EńöíŰ‚ ¨Ý6”RI’(ĄVͧ*A¨­­UöPTĄ§§§żżż···0G®˘VBŢ tŇ*XvŇâúš˘(~żż´´Ôçóɲ¬]>EQ§Ó‰u§´´´ĽĽ(äČ “ćø“L4ł„Bˇx<^QQˇ(Ęж –k”‡cÉ’%łgĎv»Ý|đAkk+ËCfA¨®®VŻ'Ô !Á`š} °rXě+¤˝@!Óť4[8ÉJ5MĹ[·n)Š’Ňa#Ër"‘€!«Ę6‹/ľďľű6oŢĽ~ýúd2ůä“OZ]˘á‘eą´´´¦¦F[1§”ʲ|ýúőëׯ߼y“ŮÁ¦BÚ2 ĐIC±‘“L!¤şşúé§źaÆ «V­jmmµş\„ÂóíčGŇF"p1‘HXTŇ…D!YťĚW'í¶D"‘H$\.WII‰ËĺZ©$ť:„đ’ÄŠňfäXŰ\›… ĺőđ_ĐF¤m 2¨Ą&hĎĄ&ÖÖŐ1dPYEQ’É$¬öźńN aa tŇîä[ŘV‘e9‡Ăa—Ëj‚ ĂV-U†öú¤¨©ş˘ę˘nS ęۡJ¨ľXmqÖu­…Ú"I’Ëű€vď)LPH„5ĐI›’·a[EEQÁ Ěᡆŕ%d ůí)†ŤŚÚhĂqśÖ<­ľęa‡ÝV÷ŔČI’ ü±X,eÁĦ k “ö"˙Ă6@)…•„žçÁK‰^¦cg:gQ+•ęÎa[´;Őć¨ĆB;O<O$˘(­Ű"y ‰°:i %lkQf4AžçÝ‚j’Áúc¦6 +ß°uFî¨ţ 8ŽK$Éd~6…faB"¬N˛L!†m-Š˘@F!řSÄét:§Ó©zCW‰!šŞĽK­6Şz©ŻŃţĽ…çyJ©(Š0•PÄäްIîB¦ôÉ t’5 =l§0TŽă`.?L~ŕ†Ě…ŕQ[o`f@Ş-KĐ#IRôľ ş…jş+1tŇr0lŹTúň{\"b#PH„5ĐI“a.ý ‚ ‚ wĂ6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶Ă6‚ ‚Ř Ű‚ b0l#‚ mŔ°Ť ‚ ¶á˙ř-żW+x¸ IEND®B`‚qwt5-5.2.3/doc/html/inherit_graph_19.map0000644000175000017500000000024412052741162017323 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_wheel__inherit__graph.map0000644000175000017500000000051612052741161022555 0ustar gudjongudjon qwt5-5.2.3/doc/html/class_qwt_plot_curve.html0000644000175000017500000032635612052741164020641 0ustar gudjongudjon Qwt User's Guide: QwtPlotCurve Class Reference

#include <qwt_plot_curve.h>

Inheritance diagram for QwtPlotCurve:

List of all members.

Public Types

enum  CurveAttribute {
  Inverted = 1,
  Fitted = 2
}
enum  CurveStyle {
  NoCurve,
  Lines,
  Sticks,
  Steps,
  Dots,
  UserCurve = 100
}
enum  CurveType {
  Yfx,
  Xfy
}
enum  PaintAttribute {
  PaintFiltered = 1,
  ClipPolygons = 2
}
- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

 QwtPlotCurve ()
 QwtPlotCurve (const QwtText &title)
 QwtPlotCurve (const QString &title)
virtual ~QwtPlotCurve ()
double baseline () const
virtual QwtDoubleRect boundingRect () const
const QBrush & brush () const
int closestPoint (const QPoint &pos, double *dist=NULL) const
QwtCurveFittercurveFitter () const
CurveType curveType () const
QwtDatadata ()
const QwtDatadata () const
int dataSize () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void draw (int from, int to) const
double maxXValue () const
double maxYValue () const
double minXValue () const
double minYValue () const
const QPen & pen () const
virtual int rtti () const
void setBaseline (double ref)
void setBrush (const QBrush &)
void setCurveAttribute (CurveAttribute, bool on=true)
void setCurveFitter (QwtCurveFitter *)
void setCurveType (CurveType)
void setData (const double *xData, const double *yData, int size)
void setData (const QwtArray< double > &xData, const QwtArray< double > &yData)
void setData (const QPolygonF &data)
void setData (const QwtData &data)
void setPaintAttribute (PaintAttribute, bool on=true)
void setPen (const QPen &)
void setRawData (const double *x, const double *y, int size)
void setStyle (CurveStyle style)
void setSymbol (const QwtSymbol &s)
CurveStyle style () const
const QwtSymbolsymbol () const
bool testCurveAttribute (CurveAttribute) const
bool testPaintAttribute (PaintAttribute) const
virtual void updateLegend (QwtLegend *) const
double x (int i) const
double y (int i) const
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Protected Member Functions

void closePolyline (const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const
virtual void drawCurve (QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void drawDots (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void drawLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void drawSteps (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void drawSticks (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
virtual void drawSymbols (QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const
void fillCurve (QPainter *, const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const
void init ()

Detailed Description

A plot item, that represents a series of points.

A curve is the representation of a series of points in the x-y plane. It supports different display styles, interpolation ( f.e. spline ) and symbols.

Usage
a) Assign curve properties
When a curve is created, it is configured to draw black solid lines with in Lines style and no symbols. You can change this by calling setPen(), setStyle() and setSymbol().
b) Connect/Assign data.
QwtPlotCurve gets its points using a QwtData object offering a bridge to the real storage of the points ( like QAbstractItemModel ). There are several convenience classes derived from QwtData, that also store the points inside ( like QStandardItemModel ). QwtPlotCurve also offers a couple of variations of setData(), that build QwtData objects from arrays internally.
c) Attach the curve to a plot
See QwtPlotItem::attach()
Example:
see examples/bode
See also:
QwtPlot, QwtData, QwtSymbol, QwtScaleMap

Member Enumeration Documentation

Attribute for drawing the curve

Curve styles.

  • NoCurve
    Don't draw a curve. Note: This doesn't affect the symbols.
  • Lines
    Connect the points with straight lines. The lines might be interpolated depending on the 'Fitted' attribute. Curve fitting can be configured using setCurveFitter().
  • Sticks
    Draw vertical(Yfx) or horizontal(Xfy) sticks from a baseline which is defined by setBaseline().
  • Steps
    Connect the points with a step function. The step function is drawn from the left to the right or vice versa, depending on the 'Inverted' attribute.
  • Dots
    Draw dots at the locations of the data points. Note: This is different from a dotted line (see setPen()), and faster as a curve in NoStyle style and a symbol painting a point.
  • UserCurve
    Styles >= UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types.
See also:
setStyle(), style()

Curve type.

  • Yfx
    Draws y as a function of x (the default). The baseline is interpreted as a horizontal line with y = baseline().
  • Xfy
    Draws x as a function of y. The baseline is interpreted as a vertical line with x = baseline().

The baseline is used for aligning the sticks, or filling the curve with a brush.

See also:
setCurveType(), curveType(), baseline() brush()

Attributes to modify the drawing algorithm.

  • PaintFiltered
    Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area. Might have a notable impact on curves with many close points. Only a couple of very basic filtering algos are implemented.
  • ClipPolygons
    Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance ( especially on Windows ).

The default is, that no paint attributes are enabled.

See also:
setPaintAttribute(), testPaintAttribute()

Constructor & Destructor Documentation

QwtPlotCurve::QwtPlotCurve ( const QwtText title)
explicit

Constructor

Parameters:
titleTitle of the curve
QwtPlotCurve::QwtPlotCurve ( const QString &  title)
explicit

Constructor

Parameters:
titleTitle of the curve

Member Function Documentation

double QwtPlotCurve::baseline ( ) const

Return the value of the baseline

See also:
setBaseline()
QwtDoubleRect QwtPlotCurve::boundingRect ( ) const
virtual

Returns the bounding rectangle of the curve data. If there is no bounding rect, like for empty data the rectangle is invalid.

See also:
QwtData::boundingRect(), QwtDoubleRect::isValid()

Reimplemented from QwtPlotItem.

const QBrush & QwtPlotCurve::brush ( ) const

Return the brush used to fill the area between lines and the baseline.

See also:
setBrush(), setBaseline(), baseline()
void QwtPlotCurve::closePolyline ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
QwtPolygon &  pa 
) const
protected

Complete a polygon to be a closed polygon including the area between the original polygon and the baseline.

Parameters:
xMapX map
yMapY map
paPolygon to be completed
int QwtPlotCurve::closestPoint ( const QPoint &  pos,
double *  dist = NULL 
) const

Find the closest curve point for a specific position

Parameters:
posPosition, where to look for the closest curve point
distIf dist != NULL, closestPoint() returns the distance between the position and the clostest curve point
Returns:
Index of the closest curve point, or -1 if none can be found ( f.e when the curve has no points )
Note:
closestPoint() implements a dumb algorithm, that iterates over all points
QwtCurveFitter * QwtPlotCurve::curveFitter ( ) const

Get the curve fitter. If curve fitting is disabled NULL is returned.

Returns:
Curve fitter
QwtPlotCurve::CurveType QwtPlotCurve::curveType ( ) const

Return the curve type

See also:
CurveType, setCurveType()
QwtData & QwtPlotCurve::data ( )
inline
Returns:
the the curve data
const QwtData & QwtPlotCurve::data ( ) const
inline
Returns:
the the curve data
int QwtPlotCurve::dataSize ( ) const

Return the size of the data arrays

See also:
setData()
void QwtPlotCurve::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the complete curve.

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
See also:
drawCurve(), drawSymbols()

Implements QwtPlotItem.

void QwtPlotCurve::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
virtual

Draw an interval of the curve.

Parameters:
painterPainter
xMapmaps x-values into pixel coordinates.
yMapmaps y-values into pixel coordinates.
fromindex of the first point to be painted
toindex of the last point to be painted. If to < 0 the curve will be painted to its last point.
See also:
drawCurve(), drawSymbols(),
void QwtPlotCurve::draw ( int  from,
int  to 
) const

Draw a set of points of a curve.

When observing an measurement while it is running, new points have to be added to an existing curve. drawCurve can be used to display them avoiding a complete redraw of the canvas.

Setting plot()->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); will result in faster painting, if the paint engine of the canvas widget supports this feature.

Parameters:
fromIndex of the first point to be painted
toIndex of the last point to be painted. If to < 0 the curve will be painted to its last point.
See also:
drawCurve(), drawSymbols()
void QwtPlotCurve::drawCurve ( QPainter *  painter,
int  style,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protectedvirtual

Draw the line part (without symbols) of a curve interval.

Parameters:
painterPainter
stylecurve style, see QwtPlotCurve::CurveStyle
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
draw(), drawDots(), drawLines(), drawSteps(), drawSticks()
void QwtPlotCurve::drawDots ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protected

Draw dots

Parameters:
painterPainter
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
draw(), drawCurve(), drawSticks(), drawLines(), drawSteps()
void QwtPlotCurve::drawLines ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protected

Draw lines.

If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.

Parameters:
painterPainter
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
setCurveAttribute(), setCurveFitter(), draw(), drawLines(), drawDots(), drawSteps(), drawSticks()
void QwtPlotCurve::drawSteps ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protected

Draw step function

The direction of the steps depends on Inverted attribute.

Parameters:
painterPainter
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
CurveAttribute, setCurveAttribute(), draw(), drawCurve(), drawDots(), drawLines(), drawSticks()
void QwtPlotCurve::drawSticks ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protected

Draw sticks

Parameters:
painterPainter
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
draw(), drawCurve(), drawDots(), drawLines(), drawSteps()
void QwtPlotCurve::drawSymbols ( QPainter *  painter,
const QwtSymbol symbol,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
int  from,
int  to 
) const
protectedvirtual

Draw symbols.

Parameters:
painterPainter
symbolCurve symbol
xMapx map
yMapy map
fromindex of the first point to be painted
toindex of the last point to be painted
See also:
setSymbol(), draw(), drawCurve()
void QwtPlotCurve::fillCurve ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
QwtPolygon &  pa 
) const
protected

Fill the area between the curve and the baseline with the curve brush

Parameters:
painterPainter
xMapx map
yMapy map
paPolygon
See also:
setBrush(), setBaseline(), setCurveType()
const QPen & QwtPlotCurve::pen ( ) const

Return the pen used to draw the lines.

See also:
setPen(), brush()
int QwtPlotCurve::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotCurve

Reimplemented from QwtPlotItem.

void QwtPlotCurve::setBaseline ( double  reference)

Set the value of the baseline.

The baseline is needed for filling the curve with a brush or the Sticks drawing style. The default value is 0.0. The interpretation of the baseline depends on the CurveType. With QwtPlotCurve::Yfx, the baseline is interpreted as a horizontal line at y = baseline(), with QwtPlotCurve::Yfy, it is interpreted as a vertical line at x = baseline().

Parameters:
referencebaseline
See also:
baseline(), setBrush(), setStyle(), setCurveType()
void QwtPlotCurve::setBrush ( const QBrush &  brush)

Assign a brush.

In case of brush.style() != QBrush::NoBrush and style() != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled.

In case !brush.color().isValid() the area will be filled by pen.color(). The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending).

Parameters:
brushNew brush
See also:
brush(), setBaseline(), baseline()
void QwtPlotCurve::setCurveAttribute ( CurveAttribute  attribute,
bool  on = true 
)

Specify an attribute for drawing the curve

Parameters:
attributeCurve attribute
onOn/Off

/sa CurveAttribute, testCurveAttribute(), setCurveFitter()

void QwtPlotCurve::setCurveFitter ( QwtCurveFitter curveFitter)

Assign a curve fitter setCurveFitter(NULL) disables curve fitting.

Parameters:
curveFitterCurve fitter
void QwtPlotCurve::setCurveType ( CurveType  curveType)

Assign the curve type

Parameters:
curveTypeYfx or Xfy
See also:
CurveType, curveType()
void QwtPlotCurve::setData ( const double *  xData,
const double *  yData,
int  size 
)

Set data by copying x- and y-values from specified memory blocks. Contrary to setCurveRawData(), this function makes a 'deep copy' of the data.

Parameters:
xDataPointer to x values
yDataPointer to y values
sizeSize of xData and yData
Note:
Internally the data is stored in a QwtArrayData object
void QwtPlotCurve::setData ( const QwtArray< double > &  xData,
const QwtArray< double > &  yData 
)

Initialize data with x- and y-arrays (explicitly shared) ( Builds an QwtArrayData object internally )

Parameters:
xDatax data
yDatay data
Note:
Internally the data is stored in a QwtArrayData object
void QwtPlotCurve::setData ( const QPolygonF &  data)

Initialize data with an array of points (explicitly shared).

Parameters:
dataData
Note:
Internally the data is stored in a QwtPolygonFData object
void QwtPlotCurve::setData ( const QwtData data)

Initialize data with a pointer to QwtData.

Parameters:
dataData
See also:
QwtData::copy()
void QwtPlotCurve::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Specify an attribute how to draw the curve

Parameters:
attributePaint attribute
onOn/Off /sa PaintAttribute, testPaintAttribute()
void QwtPlotCurve::setPen ( const QPen &  pen)

Assign a pen

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penNew pen
See also:
pen(), brush(), QwtPainter::scaledPen()
void QwtPlotCurve::setRawData ( const double *  xData,
const double *  yData,
int  size 
)

Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve.

setRawData is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class.

Parameters:
xDatapointer to x data
yDatapointer to y data
sizesize of x and y
Note:
Internally the data is stored in a QwtCPointerData object
void QwtPlotCurve::setStyle ( CurveStyle  style)

Set the curve's drawing style

Parameters:
styleCurve style
See also:
CurveStyle, style()
void QwtPlotCurve::setSymbol ( const QwtSymbol symbol)

Assign a symbol.

Parameters:
symbolSymbol
See also:
symbol()
QwtPlotCurve::CurveStyle QwtPlotCurve::style ( ) const

Return the current style

See also:
CurveStyle, setStyle()
const QwtSymbol & QwtPlotCurve::symbol ( ) const

Return the current symbol.

See also:
setSymbol()
bool QwtPlotCurve::testCurveAttribute ( CurveAttribute  attribute) const
Returns:
true, if attribute is enabled
See also:
CurveAttribute, setCurveAttribute()
bool QwtPlotCurve::testPaintAttribute ( PaintAttribute  attribute) const

Return the current paint attributes.

See also:
PaintAttribute, setPaintAttribute()
double QwtPlotCurve::x ( int  i) const
inline
Parameters:
iindex
Returns:
x-value at position i
double QwtPlotCurve::y ( int  i) const
inline
Parameters:
iindex
Returns:
y-value at position i
qwt5-5.2.3/doc/html/class_qwt_panner__inherit__graph.md50000644000175000017500000000004012052741140022631 0ustar gudjongudjon91d67ce9a92095e1e69acee050c5d693qwt5-5.2.3/doc/html/class_qwt_plot_marker.html0000644000175000017500000013537312052741164020773 0ustar gudjongudjon Qwt User's Guide: QwtPlotMarker Class Reference

#include <qwt_plot_marker.h>

Inheritance diagram for QwtPlotMarker:

List of all members.

Public Types

enum  LineStyle {
  NoLine,
  HLine,
  VLine,
  Cross
}
- Public Types inherited from QwtPlotItem
enum  ItemAttribute {
  Legend = 1,
  AutoScale = 2
}
enum  RenderHint { RenderAntialiased = 1 }
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

 QwtPlotMarker ()
virtual ~QwtPlotMarker ()
virtual QwtDoubleRect boundingRect () const
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const
QwtText label () const
Qt::Alignment labelAlignment () const
Qt::Orientation labelOrientation () const
const QPen & linePen () const
LineStyle lineStyle () const
virtual int rtti () const
void setLabel (const QwtText &)
void setLabelAlignment (Qt::Alignment)
void setLabelOrientation (Qt::Orientation)
void setLinePen (const QPen &p)
void setLineStyle (LineStyle st)
void setSpacing (int)
void setSymbol (const QwtSymbol &s)
void setValue (double, double)
void setValue (const QwtDoublePoint &)
void setXValue (double)
void setYValue (double)
int spacing () const
const QwtSymbolsymbol () const
QwtDoublePoint value () const
double xValue () const
double yValue () const
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem (const QwtText &title=QwtText())
virtual ~QwtPlotItem ()
void attach (QwtPlot *plot)
void detach ()
void hide ()
QwtDoubleRect invTransform (const QwtScaleMap &, const QwtScaleMap &, const QRect &) const
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
QRect paintRect (const QwtScaleMap &, const QwtScaleMap &) const
QwtPlotplot () const
QwtDoubleRect scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxis (int xAxis, int yAxis)
void setItemAttribute (ItemAttribute, bool on=true)
void setRenderHint (RenderHint, bool on=true)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
QRect transform (const QwtScaleMap &, const QwtScaleMap &, const QwtDoubleRect &) const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
- Public Member Functions inherited from QwtLegendItemManager
 QwtLegendItemManager ()
virtual ~QwtLegendItemManager ()

Protected Member Functions

void drawAt (QPainter *, const QRect &, const QPoint &) const

Detailed Description

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.


Member Enumeration Documentation


Member Function Documentation

QwtDoubleRect QwtPlotMarker::boundingRect ( ) const
virtual
Returns:
An invalid bounding rect: QwtDoubleRect(1.0, 1.0, -2.0, -2.0)

Reimplemented from QwtPlotItem.

void QwtPlotMarker::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRect &  canvasRect 
) const
virtual

Draw the marker

Parameters:
painterPainter
xMapx Scale Map
yMapy Scale Map
canvasRectContents rect of the canvas in painter coordinates

Implements QwtPlotItem.

void QwtPlotMarker::drawAt ( QPainter *  painter,
const QRect &  canvasRect,
const QPoint &  pos 
) const
protected

Draw the marker at a specific position

Parameters:
painterPainter
canvasRectContents rect of the canvas in painter coordinates
posPosition of the marker in painter coordinates
QwtText QwtPlotMarker::label ( ) const
Returns:
the label
See also:
setLabel()
Qt::Alignment QwtPlotMarker::labelAlignment ( ) const
Returns:
the label alignment
See also:
setLabelAlignment(), setLabelOrientation()
Qt::Orientation QwtPlotMarker::labelOrientation ( ) const
Returns:
the label orientation
See also:
setLabelOrientation(), labelAlignment()
const QPen & QwtPlotMarker::linePen ( ) const
Returns:
the line pen
See also:
setLinePen()
QwtPlotMarker::LineStyle QwtPlotMarker::lineStyle ( ) const
Returns:
the line style
See also:
For a description of line styles, see QwtPlotMarker::setLineStyle()
int QwtPlotMarker::rtti ( ) const
virtual
Returns:
QwtPlotItem::Rtti_PlotMarker

Reimplemented from QwtPlotItem.

void QwtPlotMarker::setLabel ( const QwtText label)

Set the label.

Parameters:
labellabel text
See also:
label()
void QwtPlotMarker::setLabelAlignment ( Qt::Alignment  align)

Set the alignment of the label.

In case of QwtPlotMarker::HLine the alignment is relative to the y position of the marker, but the horizontal flags correspond to the canvas rectangle. In case of QwtPlotMarker::VLine the alignment is relative to the x position of the marker, but the vertical flags correspond to the canvas rectangle.

In all other styles the alignment is relative to the marker's position.

Parameters:
alignAlignment. A combination of AlignTop, AlignBottom, AlignLeft, AlignRight, AlignCenter, AlgnHCenter, AlignVCenter.
See also:
labelAlignment(), labelOrientation()
void QwtPlotMarker::setLabelOrientation ( Qt::Orientation  orientation)

Set the orientation of the label.

When orientation is Qt::Vertical the label is rotated by 90.0 degrees ( from bottom to top ).

Parameters:
orientationOrientation of the label
See also:
labelOrientation(), setLabelAlignment()
void QwtPlotMarker::setLinePen ( const QPen &  pen)

Specify a pen for the line.

The width of non cosmetic pens is scaled according to the resolution of the paint device.

Parameters:
penNew pen
See also:
linePen(), QwtPainter::scaledPen()
void QwtPlotMarker::setLineStyle ( QwtPlotMarker::LineStyle  st)

Set the line style.

Parameters:
stLine style. Can be one of QwtPlotMarker::NoLine, HLine, VLine or Cross
See also:
lineStyle()
void QwtPlotMarker::setSpacing ( int  spacing)

Set the spacing.

When the label is not centered on the marker position, the spacing is the distance between the position and the label.

Parameters:
spacingSpacing
See also:
spacing(), setLabelAlignment()
void QwtPlotMarker::setSymbol ( const QwtSymbol s)

Assign a symbol.

Parameters:
sNew symbol
See also:
symbol()
int QwtPlotMarker::spacing ( ) const
Returns:
the spacing
See also:
setSpacing()
const QwtSymbol & QwtPlotMarker::symbol ( ) const
Returns:
the symbol
See also:
setSymbol(), QwtSymbol
qwt5-5.2.3/doc/html/qwt__picker_8h_source.html0000644000175000017500000007526012052741135020656 0ustar gudjongudjon Qwt User's Guide: qwt_picker.h Source File
Qwt User's Guide  5.2.3
qwt_picker.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PICKER
11 #define QWT_PICKER 1
12 
13 #include <qobject.h>
14 #include <qpen.h>
15 #include <qfont.h>
16 #include <qrect.h>
17 #include "qwt_global.h"
18 #include "qwt_text.h"
19 #include "qwt_polygon.h"
20 #include "qwt_event_pattern.h"
21 
22 class QWidget;
23 class QMouseEvent;
24 class QWheelEvent;
25 class QKeyEvent;
26 class QwtPickerMachine;
27 
80 class QWT_EXPORT QwtPicker: public QObject, public QwtEventPattern
81 {
82  Q_OBJECT
83 
84  Q_ENUMS(RubberBand)
85  Q_ENUMS(DisplayMode)
86  Q_ENUMS(ResizeMode)
87 
88  Q_PROPERTY(int selectionFlags READ selectionFlags WRITE setSelectionFlags)
89  Q_PROPERTY(DisplayMode trackerMode READ trackerMode WRITE setTrackerMode)
90  Q_PROPERTY(QFont trackerFont READ trackerFont WRITE setTrackerFont)
91  Q_PROPERTY(RubberBand rubberBand READ rubberBand WRITE setRubberBand)
92  Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
93  Q_PROPERTY(bool isEnabled READ isEnabled WRITE setEnabled)
94 
95  Q_PROPERTY(QPen trackerPen READ trackerPen WRITE setTrackerPen)
96  Q_PROPERTY(QPen rubberBandPen READ rubberBandPen WRITE setRubberBandPen)
97 
98 public:
118  {
119  NoSelection = 0,
120  PointSelection = 1,
121  RectSelection = 2,
122  PolygonSelection = 4
123  };
124 
144  {
145  CornerToCorner = 64,
146  CenterToCorner = 128,
147  CenterToRadius = 256
148  };
149 
158  {
159  ClickSelection = 1024,
160  DragSelection = 2048
161  };
162 
188  {
189  NoRubberBand = 0,
190 
191  // Point
192  HLineRubberBand,
193  VLineRubberBand,
194  CrossRubberBand,
195 
196  // Rect
197  RectRubberBand,
198  EllipseRubberBand,
199 
200  // Polygon
201  PolygonRubberBand,
202 
203  UserRubberBand = 100
204  };
205 
218  {
219  AlwaysOff,
220  AlwaysOn,
221  ActiveOnly
222  };
223 
237  {
238  Stretch,
239  KeepSize
240  };
241 
242  explicit QwtPicker(QWidget *parent);
243  explicit QwtPicker(int selectionFlags, RubberBand rubberBand,
244  DisplayMode trackerMode, QWidget *);
245 
246  virtual ~QwtPicker();
247 
248  virtual void setSelectionFlags(int);
249  int selectionFlags() const;
250 
251  virtual void setRubberBand(RubberBand);
252  RubberBand rubberBand() const;
253 
254  virtual void setTrackerMode(DisplayMode);
255  DisplayMode trackerMode() const;
256 
257  virtual void setResizeMode(ResizeMode);
258  ResizeMode resizeMode() const;
259 
260  virtual void setRubberBandPen(const QPen &);
261  QPen rubberBandPen() const;
262 
263  virtual void setTrackerPen(const QPen &);
264  QPen trackerPen() const;
265 
266  virtual void setTrackerFont(const QFont &);
267  QFont trackerFont() const;
268 
269  bool isEnabled() const;
270  virtual void setEnabled(bool);
271 
272  bool isActive() const;
273 
274  virtual bool eventFilter(QObject *, QEvent *);
275 
276  QWidget *parentWidget();
277  const QWidget *parentWidget() const;
278 
279  virtual QRect pickRect() const;
280  const QwtPolygon &selection() const;
281 
282  virtual void drawRubberBand(QPainter *) const;
283  virtual void drawTracker(QPainter *) const;
284 
285  virtual QwtText trackerText(const QPoint &pos) const;
286  QPoint trackerPosition() const;
287  QRect trackerRect(const QFont &) const;
288 
289 
290 signals:
297  void selected(const QwtPolygon &pa);
298 
305  void appended(const QPoint &pos);
306 
314  void moved(const QPoint &pos);
315 
323  void changed(const QwtPolygon &pa);
324 
325 protected:
334  virtual bool accept(QwtPolygon &selection) const;
335 
336  virtual void transition(const QEvent *);
337 
338  virtual void begin();
339  virtual void append(const QPoint &);
340  virtual void move(const QPoint &);
341  virtual bool end(bool ok = true);
342 
343  virtual void reset();
344 
345  virtual void widgetMousePressEvent(QMouseEvent *);
346  virtual void widgetMouseReleaseEvent(QMouseEvent *);
347  virtual void widgetMouseDoubleClickEvent(QMouseEvent *);
348  virtual void widgetMouseMoveEvent(QMouseEvent *);
349  virtual void widgetWheelEvent(QWheelEvent *);
350  virtual void widgetKeyPressEvent(QKeyEvent *);
351  virtual void widgetKeyReleaseEvent(QKeyEvent *);
352  virtual void widgetLeaveEvent(QEvent *);
353 
354  virtual void stretchSelection(const QSize &oldSize,
355  const QSize &newSize);
356 
357  virtual QwtPickerMachine *stateMachine(int) const;
358 
359  virtual void updateDisplay();
360 
361  const QWidget *rubberBandWidget() const;
362  const QWidget *trackerWidget() const;
363 
364 private:
365  void init(QWidget *, int selectionFlags, RubberBand rubberBand,
366  DisplayMode trackerMode);
367 
368  void setStateMachine(QwtPickerMachine *);
369  void setMouseTracking(bool);
370 
371  class PickerWidget;
372  class PrivateData;
373  PrivateData *d_data;
374 };
375 
376 #endif
qwt5-5.2.3/doc/html/inherit_graph_21.md50000644000175000017500000000004012052741151017214 0ustar gudjongudjon2b7b14404f3ecd85993ba88546608687qwt5-5.2.3/doc/html/class_qwt_counter__inherit__graph.png0000644000175000017500000000705112052741153023141 0ustar gudjongudjon‰PNG  IHDR…pżç$ÁbKGD˙˙˙ ˝§“ ŢIDATxśíťkPW€Ď†R†„@äZ űQ@ahĹXÚ2J•Ž %ĺR«• Öj BmµµĄČX™:EZŔRýŇŠ  XásDîŘÖ*÷‹ˇ‘[ îÉ’ý~ěם„ A˛Ń}~8»ďîľçuźś=ár A a čş’‡ } ұ } *~gdd„Ďç몚gÄÄÄ×^{ Ű…đďŻňňňÂÂÂBBBtQسȟţéííť——‡E¨łOÂ&y˘„††Îă± } ұ } ұX¤ŹŽŽŽkkkCCCGGÇČĺňů/ikkŁÓéčôFFF^^^%%% -ËöŻAüQÁŘ´iÓť;wÚôe1>Z[[×®]Ëd2+**d2™P(loo÷ööţW%FFF‚ ňŕÁČČČ   ÖÖÖET˛P°v‘H$nnn»wď^†v‚#77wF䑼őÖ[ŃŃŃřFŁńńń‰ŤŤÝ¸qă‰'ééé$%%!ŇŰŰ‹o±şş_‰ŽŽG·e2ŮŽ;Řl¶ťťÝˇC‡T*Ukk+v>¶Ťn¤¤¤XZZZXXěßżrrćčččž={,--mmm?ýôSµZŤ?ŠRSScff†n755q8:ťnooź••…6áŕŕpúôi6›meeuîÜ9ôLĄRÉăńĚÍͲłłçiń_ďdHHHHH>˛ŕţˇT*+**>APLLĚożý¶eË–ňňrô¦3™ĚĘĘJ@eeĄ‡‡v;V¬X1#§żżMM şýŃG)•Ę–––˛˛˛˘˘˘“'OÎUÉÔÔTIIIcccYYŮŐ«W“’’đGÁřřxsssUUUUUUZZÚŚËĺryVVÖĆŤŃÝ#GŽřűűËd˛ŻľúęŕÁhp`` ˇˇˇŁŁă“O>‰‹‹CŃŃŃĂĂĂ---%%%)))Źßâc—ó8ýC,C4[~mm-Áhjjb0jµzßľ}_~ů%“É„axďŢ˝źţůŚ—6ţÚşş:‹… Čää$…Béčč@ăBˇĐÝÝ}®ţ‹Ĺh<''ÇĹĹ;ŞR©h4š\.GŹ–••yyyÍ~$2™L,CKKËŘŘZ­ÎĚĚÄ7188 Hss3–™JĄbćççĎÓâüwyT˙xÄ|ÉüXXX@$‘HśśśđńžžkkëU«V±X¬šššęęęśśśśśśÚÚÚĘĘĘS§NÍ“łżżßĆĆĐ××pttDăNNN÷ďßźë* …‚ŐđňË/÷÷÷c‡z{{Őj5‹Ĺ— 022šśśD#ăăă‡ćóůh‡ţ믿věŘAĐ /Ľ€]ehhöf …‚eÖh4X…/ľřâü-.”?ŻLćúőëSSS±Hrrrgggjjj`` `óćÍ"‘¨ŻŻĎŐŐuÆ /^ěééyýő×çÉYTTÄápÖÖÖ€ż˙ţŤwvv˘ž&=ńz4 v¦X,¶··ÇYYY`ŻÖŃŃŃ[·nÍhÔŘŘx÷îÝh\*•FFFţüóĎ555‰‰‰Ř9͸ĘĘĘjF…Źßâcď,Ź9ž777łŮl@ĐÖÖ611OŁŃ,,,†††‰D&&&ď˝÷‚ gĎž511árą‚´µµQ©ÔăłT*=uꔉ‰Éť;wĐČűďżĐßßßŢŢîîî~ěŘ1´Ó\ąrepppË–-ŘĂ„Bˇ 4559;;źd2ه~Čd2ťťťÓÓÓ Ć\-.źŹŮLLLÔÖÖ.îZý";;»ŻŻÝÎĎĎwuu]tŞ%xż;t:ÝÓÓs©˛™‚‚‚/ľřB©Tvuu}÷Ýw訹TóW &--M*•ÚŮŮyxx888>|x “/řý.‰µµőĄK—žPr˛ ұ } ұxÄx~úôéĺŻăŮ¤ŁŁcĆ4ŕC?ý5773 Ő¦ ťţ}¬$''ă<ôůD=ĺĆŤ{\nÚ®]>ÇŽqu]‹¶< ăG~ţmô_ÖčşmŃ{*,ŐŠńŞ*b}8ač˝ŹŠŠ¶ńń)€E$ş­ër´Eď}…· (Ö\ąŇ01ˇŇuEZˇß>ĆƦ®^m‚áitwj ľv­E·%i‰~űŔËP(PXŁĂz´Gż}…5ř_qð¦ĽĽM©śĐaIZ˘Ç>†‡ÇŞŞÚ§§zŹ‹ Č˙Ű «’´GŹ}ÖĎ"rá‚?˛ôŘÇĹ‹·fO.h4ČŤ÷úű:)I{ôŐÇňŰ·»4šGLöP._~D×Ń ôŐÇĺËusMĽÁđ´P¨Ż?ęëďĎW®´´±ab»ŁŁSt:ŤJý˙ËkőęçuT—¶< ó»[ŰĽ€˝˙Ŕ‘ľ>ŻžVHÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA,HÄ‚ôA0ýÝĘoľů¦®˙ŔČČžB1Öm ,«µµUË›ą?xýúő777íSé5 ...Ú$Yšżçtss۰aĂ’¤Ň_´OBŽÄ‚ôA,HÄ‚ôA,HÄbůľ/Ł··733óÖ­[###l6ŰÇLJÇă™Ěs‰D"áóůĹĹĹčn[[[fffcc#‚ NNN;wîôňňҲŞMčśeę]]]{öě166NIIą|ůňŃŁG»»»÷íŰ7::úÄbńÁ˝˝˝ýő׼ĽĽÍ›79r„h«ĎjĎ2ůřá‡üüü˝˝=ťNwvv>~ü8‹Ĺ:{öl\\şnŐĐĐŻŻoNN`xxŘ××—Çă©Őj___…B‘žžľ}űöŔŔ@‹ebb˛uëV.—‹®ę9::úí·ß†††ž9s†a‰DňöŰoŁMcۉä>(,, ärąĄĄĄ …ßÄäädrrrPPPpppFFĆôô4z‰H$zçťw$É2ܨĺđ1>>^WWŚBüǬ[·®¶¶ĐĐĐ`ll\__¨ŻŻwrrĘĘʢŃhĺĺĺ4­ľľŢĎĎź!**jűöí€äää±±±¬¬¬äää7n\Ľxq®JäryGGGNN—Ëýé§źLMM±&LMMSSS§¦¦233üńÇúúúüü|ŔĐĐX,ţĺ—_đë>9–úĄĺڏŤŤŤL&ăp8ŤŤŤÓÓÓ \.·±±QŁŃÔ×ׯ[·;SˇPĚÍÍg'W«Őű÷ďg±Xvvv;wîĽvíÚ\•LMMńxi–Ł{zzŠD",ráÂ…ŢŢ^‘HôĆo8Nuuőđđ°˝˝˝§§geeĄT*]µj>ĂęŐ«‹ŠŠđiĎź?óćMô•‹®á čííE#Ř÷záőĚÖ€affFˇP ËËËËËËŻ\ą’‘‘1˙%O‚eĎAqqqZZZww·JĄ‹¸{÷.:p8śK—.­^˝‚ OOĎ‚‚‚W_}•JĄB¤Ńh`|üńÇąąąYYY]]]}}}ąąąeeeaaa4ÍÇÇ'--M.—ßż?33ÓĎĎŹÁ`Ŕ0|óćM…BqáÂ…y Ăš ŃhëׯOOOW(rą<11qžqčɱL>222FFFżżqqqPP•••P(¬YłF­V{xx^y啉‰ tđX±bĹóĎ?®µzâĉ¦¦¦˝{÷ňůüëׯ?~íCqqqĎ=÷\DDDLL ‡Ă 333ăńx ‘‘‘3ŢĚßDllěôôtDDŹÇ333ăóůËrob ľŻ‚ řřřEĚ·«T*‰DňŇK/iYAđőőÍÍÍ Ő&‰.çK źK9E,HÄ‚ôA,HÄ‚ôA,HÄbi毲łł —$Ő3ÎřHJJş}[_×XBÜÝÝçź xž’ďÓj ÇbAú ¤bAú ˙âöŻŠ cîIEND®B`‚qwt5-5.2.3/doc/html/class_qwt_color_map.html0000644000175000017500000003637012052741164020424 0ustar gudjongudjon Qwt User's Guide: QwtColorMap Class Reference
QwtColorMap Class Reference

#include <qwt_color_map.h>

Inheritance diagram for QwtColorMap:

List of all members.

Public Types

enum  Format {
  RGB,
  Indexed
}

Public Member Functions

 QwtColorMap (Format=QwtColorMap::RGB)
virtual ~QwtColorMap ()
QColor color (const QwtDoubleInterval &, double value) const
virtual unsigned char colorIndex (const QwtDoubleInterval &interval, double value) const =0
virtual QVector< QRgb > colorTable (const QwtDoubleInterval &) const
virtual QwtColorMapcopy () const =0
Format format () const
virtual QRgb rgb (const QwtDoubleInterval &interval, double value) const =0

Detailed Description

QwtColorMap is used to map values into colors.

For displaying 3D data on a 2D plane the 3rd dimension is often displayed using colors, like f.e in a spectrogram.

Each color map is optimized to return colors for only one of the following image formats:

  • QImage::Format_Indexed8
  • QImage::Format_ARGB32
See also:
QwtPlotSpectrogram, QwtScaleWidget

Member Enumeration Documentation

  • RGB
    The map is intended to map into QRgb values.
  • Indexed
    The map is intended to map into 8 bit values, that are indices into the color table.
See also:
rgb(), colorIndex(), colorTable()

Member Function Documentation

QColor QwtColorMap::color ( const QwtDoubleInterval interval,
double  value 
) const
inline

Map a value into a color

Parameters:
intervalValid interval for values
valueValue
Returns:
Color corresponding to value
Warning:
This method is slow for Indexed color maps. If it is necessary to map many values, its better to get the color table once and find the color using colorIndex().
virtual unsigned char QwtColorMap::colorIndex ( const QwtDoubleInterval interval,
double  value 
) const
pure virtual

Map a value of a given interval into a color index

Parameters:
intervalRange for the values
valueValue
Returns:
color index, corresponding to value

Implemented in QwtLinearColorMap.

QwtColorTable QwtColorMap::colorTable ( const QwtDoubleInterval interval) const
virtual

Build and return a color map of 256 colors

The color table is needed for rendering indexed images in combination with using colorIndex().

Parameters:
intervalRange for the values
Returns:
A color table, that can be used for a QImage
QwtColorMap::Format QwtColorMap::format ( ) const
inline
Returns:
Intended format of the color map
See also:
Format
virtual QRgb QwtColorMap::rgb ( const QwtDoubleInterval interval,
double  value 
) const
pure virtual

Map a value of a given interval into a rgb value.

Parameters:
intervalRange for the values
valueValue
Returns:
rgb value, corresponding to value

Implemented in QwtAlphaColorMap, and QwtLinearColorMap.

qwt5-5.2.3/doc/html/inherits.html0000644000175000017500000005115412052741165016214 0ustar gudjongudjon Qwt User's Guide: Class Hierarchy
Class Hierarchy
qwt5-5.2.3/doc/html/class_qwt_wheel__inherit__graph.png0000644000175000017500000001204612052741160022564 0ustar gudjongudjon‰PNG  IHDR…»ÄČʶbKGD˙˙˙ ˝§“ŰIDATxśíťyT×Ű€ďdÄ6YPq'"´µŠ¸Ô Y´WNµÇ\ÚşÔŞĹöhk‹TA­ţˇ`+˛#j9Z\-˘(DĘľ„°$„Üßóuľ Arcďs<ž™wfî}ąOîL’y !Ŕ CŐ `^ű@ ě-°´`ŃWZ[[ýüüšššT•ÍÇ;99Q«ýýUTT”ŹŹŹ———*ű/’žžîěěEEX=w˘oĆĽUĽ˝˝»Eđő-°´Ŕ>Đű@ ě-裤¤dÝşu¦¦¦ŁGŹŢ±cGsss߇hii‘ ÄżhjjňxĽäääţ&@µöÚ }+ACGGgţüů………ýíú­2ůůů3gÎärąwďޱ±±EEEÎÎÎŻUBˇ©© !„VUUmŢĽŮÝÝ=??™ôŞ_ayyůĉ7mÚ4ýöH#22˛[D!óćÍó÷÷§GärůěŮłwîÜéęęzěŘ1aee%ŕčŃŁÂęęjzŹiiiôqúűűűúú’Ë`íÚµ†††ŁFŤÚłgOggg~~>µ?µL.}ţů牄ľg[[Ű–-[ŚŤŤÍÍÍżüňK©TJßJ’™™©ŻŻO.?}úÔŃŃQKKËŇŇ2,,ŚěÂĘĘęěŮł†††&&&—.]"÷liiYż~˝••ŐĹ‹űčńµ#éĺĺĺĺĺEŹô{~´´´Ü˝{7 €$bűö퉉‰‹/ľsç9č\.7%%’’2eĘj8FŚŃ­ÍĄK—fff’Ë[·nmiiyöěŮíŰ·Ż_ż~üřńŢ2éččHNNÎÍÍ˝}űöŤ7Ž=Jß ‰ňňňRSSSSSCBBşŢÜÜćęęJ®îßżéŇĄŕŰożýꫯČ`]]źĎ/))ůâ‹/víÚEýýý›ššž={–śśüć=ľt9o2?Š‹‹ ‚č)?++KGGçéÓ§:::R©t۶mß|ó —Ë•Édź}öŮîÝ»»˝´éÇfggëééA% Á())!ă±±±“'Oîm~Š‹‹ÉxDD„­­-µµłł“Íf777“[oßľÍăńzžą\.ŐÂłgĎÚŰŰĄRé… č]Ô××Cóňň¨–Y,•a|||=ö=’PŃüPpż¤oŚŚŚ‚(//·¶¶¦Ç+++MMMíííőôô233ÓŇŇ""""""˛˛˛RRRNť:ŐG›µµµfff€ššŔčѣɸµµő?˙üÓŰQ Ęa„ µµµÔ¦ęęj©Tާ§GO ©©)‘HČH$Ú»wŻźź9ˇ322Ö®]K„……u”††9› Ő˛\.§23fLß=ö—~źŻ¸\îś9sNžYŢđzž——ghhPPP ‹<ČfłŤŚŚ!„qqqgĺĘ•Âđđp‡ăáá!,((`±XÝ®Ď §Nťâp8………ddŐŞUnnnµµµEEE“'Oţá‡ČI“””T__żxńbędÂ`0ÜÜÜęęęž>}:~üřăÇŹÓ[öńńٸqc}}}mm­››ŰöíŰ{ž'‹ŠŠ †T*­««#"++«±±qÝşu,«ąąYáyB¸fÍšĺË—×ÔÔóx<--­Ţz|íHö<_ Ä„đĹ‹ľľľ&&&ÖÖÖ;wîäńx„¶´´°Ůě_~ůBXQQ8wî„°µµŐÖÖVGGçţýűÔ«Íf;88Üşu‹jąˇˇaÍš5ććć_ýugg'„đŕÁ\.×ÜÜüŇĄK”ʱcÇššîŮłG&“ŃGM řúúúůů‰D˘ž>ZZZLćĺË—!„‡ârącÇŽMHH°łł›?~o>ÁÇĚĺrÇŹŞŁŁÓ[ŹCçŁ'b±8++k`ÇŞ/^¬©©!—ăăăíěěÜÔ Ľßí --­iÓ¦ Vk(“°oßľ–––˛˛˛ź~ú‰ĽjřţUż ihh5jÔ”)S¬¬¬öîÝ;Ť÷űý.ĆÔÔôĘ•+o©qĐű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ úð>üđCU§3@45- mUg1ôőőóóó)Ż|055uÇŽÎÎÎŞJî?··7źĎ·µµ%W»źÓÉÉ ×ŻU!řúŘZ`h} öńˇL±T ???‚ bccűŘç ›ęôĂËĘĘ|}}GŽ9lذqăĆíŰ·O,WK»*ěKÉú ß>”/– ‰DQQQ®®®áááýM`°€.Z´ČÄÄ$33S DGGß»wĎßßźľŹ­­-UočҢDFFö]ňHÉb©dyĹđđđ©S§ćĺĺ±Ůěşş:˛…%P!„QQQ&LĐŇҲ··ŹŠŠ˘šJKKł˛˛:qâ‡ĂÉĎĎďYđBŘŇҲqăF˛ŕéţýűëëë©Ăłłł ‚‹ĹÔÂçóWŻ^ {Te%·666z{{ëęęZZZö]•žXßăŮmĚűçC(2Ś/^t‹ÇĆĆŽ7îçź^˛d „đňĺË\.wńâĹä2˝X*‰‹‹Khh(„ÇăS>Ë–-«­­ÍÍ͵±±9tčP(dłŮÉÉɉäôéÓcÇŽĄ–††Ć¦M›Ş««!„+W®üî»ďÄbńąs猍ŤÉ67lذbĹŠşşşüü| ‹¸¸8ęp™L6iҤ%K–ÄÇÇ“•ú(úđôôtuu­¬¬,,,´··§â›7oöőő­ŻŻ/..vtt$ËîŃ{‹>”/– !,--ĺp8BˇBxňäÉ3fĐ}t+ÚÔÔ¤©©.‰är9˝h0ą?5˝z<%k›RŻž{÷îeffŇ3 …!!!nnn†††vvvű÷ďoooWčC,3 ŞHbLLĚk łR‰˝E˝ÍŹk×®ŮŘŘ@-,,ŇÓÓ§L™’——gmmýčŃŁ‰'Ţ˝{—> ‡b±X&&&&&&€ÜÜ\řo‰Gą\Nîöäɲřň_ýµpáB.—ëęęúđáĂnóĘáüůó3fĚpppXąr%ąCYY˝A’žU!„rąüáÇóćÍ#ËXöôńňĺK‚ şşşČýł˛˛¨.şť˙ŤŚŚş%Ö7ÝĆĽ×s勥BĂÂÂNź>ťťťťťťť——çęęFníYU"‘čęę޸qŁ®®ÎŐŐŐÇLJžő°W…OÉÚ¦T‰Ő?˙ü3!!:vëÖ­Tqg‚ fÎśyôčŃ´´4…?¸™™A%%%äękˤö,´ú¦ôáJ!JK˝s玶¶v[[ŐŕąsçĚĚĚČęš=K ¶µµq8śŚŚ ‰Ddgg§°îŞÂ‚§BOOO//Żúúú˘˘˘1cĆÄÄÄP‡ßżźÉd;v¬˘˘B,¬X±bÆ ç„ĐŰŰ{ѢEUUUĎź?ź>}zż łľůüč·¨\±ÔĺË—űřřĐ[khh`±XIII K BĎź?oii©ĄĄ5sćĚŚŚ zÝUúŹÝłŕ)„°±±qÍš5úúúfffôL“’’ćĚ™Ăáp† 6a„ݻwwttô棱±ŃÇÇGOOĎÂÂâŹ?ţčWaÖ·ëŁ'˙ťb©PćúŃ˙ťb©o|˙ -°´Ŕ>Đű@ ě-°´čţyźďż˙ţÜąs*Iş=żýÇ|üXý*tuϟ뛚¶ëéu¨:—~3|řđ   }}}rő]xž~TÔŁíŰ/Í›g÷ű:ey®ńńŹ RR …B‘ŞsQµ÷Q_ßzď^­ęt”Eí}\»–Mţ±BóHŐé(‹ÚűŠĘ$«HÉĺ03ł¬şşsAőöQ^ŢČçWPU˝LFBB–jSRőöqĺJU3 ĐŐ%ŹŽVďS–zűŽ~$•ţ}NaAAő‹u*LIIÔŘGAAuqqůΊ‚Íf&$žhhtżß#•v]ľüP%ů ęęB“ŮŮ)ëą©˛RŔçW }J‚şúxň¤¬ŞJń[[µ>e©«Ź[·ň 44X=˙uuÉ“’rUťŕQ×z©ź|â$•vQ«QQŹśťÇZX«łfY«(/eyîď\/ó–Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-°´Ŕ>Đű@ ě-ůűQŹ?VŐ´’““kj†ú›µúúú\®qp궬­­–EK•áúőë8€źO.wvvfgg …BŞŔźĎwppx[©ż}Tŕă×_]°`A@@YjüřńGŽŃÓÓ ßµkWdd$ ±±ŃĹĹ%""ĐÔÔäââ˛~ýz©Tęââbcc#ČâTYYY#GŽtvvNOOČĺňĽĽ<ŹGv”čćććîîžśśLFȢ`îîîžžžgÎśéęęę-¨*†Ú‡H$ĘÎÎöôô¤ ‚đôôüűďżgÍš•••ŕóůÚÚÚ999€śśkkë°°06›}çÎ;;;333rSFFƬYłśťťßĂĂ#77W.—çääĚš5‹ľ3ŹÇŁűpttĚĎĎommĺóů¶¶¶Ă‡@7lŘ ­­={öěÖÖV€L&»y󦿿ż®®®ąąů§ź~šśś¬08Dcˇˇ~Ţ’žž ®®ÎĚĚŚohh000=z4‡Ă),,äóů¸uëÖóçĎłłłwěŘAß™Çă…††VTT…ÂI“&1™ĚńăÇ?|ř~ń`±Xşşş€V𱩩I&“-[¶ŚžŚÂŕŰůŃߡöˇ­­=mÚ´¸¸¸m۶‘‘ččč>ř ..îý÷ß8::¦ĄĄ555YZZN›6-%%ĄˇˇÁŢŢľŞŞŠjdĆŚ <ŹÉdśśśŇÓÓsss©3aĎ ™úúú #11‘ś@‰D(* vt¨¬N‚ ®ç7oŢ ©¨¨čěěloo_·nÝóçĎ?ů䀣Łă•+W&MšDÄ´iÓfĚÁb±‚Ëĺ2™ Ŕáp&LHťÇśśśRRR$Éĉ{ë—ÍfĎ™3'44T(677>|8&&FaphĆA!*đaeeućĚ™ÖÖÖ€€€ĄK—ŢĽyÓÝÝÝÄÄ$66ŕŕŕ •J§L™>}şX,&}Ä#GŽ\±by1ŕńx2™ĚŃŃ‘lÓĆĆFWWwęÔ©,V_3~çÎť]]]ëÖ­[ż~˝ľľľźź_oAU1Čχ#b`÷Ű;;;ËËËÇŤ7É ...‘‘‘ŢŢŢŐ *÷K444ÔNĆŰě-°´Ŕ>Đű@ ě-°ÄÄĎrAüy8ĄäßĎsss ±AÄ>|ř’%K±Áwäyúď řúŘZ`h} Ĺ˙Kă|>ŰĂ€IEND®B`‚qwt5-5.2.3/doc/html/class_qwt_polygon_f_data__inherit__graph.png0000644000175000017500000000612712052741157024456 0ustar gudjongudjon‰PNG  IHDRpJŻqbKGD˙˙˙ ˝§“ IDATxśíťkPŐŔĎÂ&¤´†•ǡkm§NŤ‡LÓŇÖčŚXZKg,‰CëŁÚ U>)rg¨(‚:MĄ´ÖĐi•ŞĺY&•¶$8¦‹šiŢ… !»÷Ă^÷Ƥ$9ˇç÷i÷ĽööGöě9$»I’!1;H ¤ 1‚Ä@ îëĽűî»íííľ>ŠźÉČČ(**ňé!0_ß•a–––öŔřô(ţD§Ó]˝zŐçwł¤Ź444řú(ţ¤ˇˇÁç Ť1‚Ä@ )H ¤ 1‹ááa‰DÇd2WŻ^}äČłŮěąĘőë×Y,µýMXXXJJŠç™]f ŁŃhüq6›}éŇ%“ÉÔÜÜüÓO? ‚9ÝĐ„……Qw™ŁŁŁű÷ďßąs§FŁńiĚ>Ç×÷ă`ó-[¶äĺ幦‘žž^PP°uëÖňňr’$GFFeee$IŽŤŤąvA©TŇb(ňňňrrr¨í~řĎçłX¬ÄÄÄÚÚZ˝^OWÔëőnąóé‘ć1c±XBBBnŢĽé–ŢÜÜĽfÍš÷ß˙©§ž"I˛ľľžÍf‹Ĺbj{ăĆŤŤ†ňAoĐ\ĽxqýúőÔöłĎ>[RRb·Ű«««cbbÜĘß™;'ţăóµ˛9Ńëő$I&&&şĄsąÜńńń'ź|˛¤¤dffF©T>|řřńăN§ł»»[,{h366–ţT;v,)) Çqa±XÜJzÎ s˙ý÷c¦Őją\®kúČČH\\܆ 8N__źR©¬«««««ëďďďîîţřăŹ=´9>>Om_»vmßľ}†Íş^ç97řú# ć1ĆD˘üü|z·˘˘bxxxÇŽGŹ%IňĹ_|ýő×cbb‚ČÍÍ-**Šžžöp)ËËË“JĄ$IęőúŢŢ^’$ÝĘĎš;'÷ĘĄ —Ë…B!I’LJJ˛Z­?ü0‡Ăůâ‹/b±X"‘ddd`¶yóćW_}uűöí Ă0§Óép8\›2 …âôéÓß˙=řűôá8n4ËËËťN§Ĺbˇ+Κłŕ†ŻÍů­.߼y3'''66–ÉdrąÜ‚‚‚”””ââb’$­V+Á¨¨¨ IR§ÓŞ««I’´ŮlëÖ­»ďľűľűî;ş; #99ąŁŁnůí·ßfłŮ>řŕąsçÖŻ_ź‘‘AW4 wćÎę˝rWöoŘíöţţţEŹçîą×—ýY,ŹÇ t^1÷8H ¤ 1‚Ä@ )H ¤řcćßŃŃ1˙˙¬Ŕµ¦ŕs|=QJKKóG7`2ă™Ěx˙K řúĽůü›ţÁé$}´ V˙'$ t8‹Ŕc®\ůŮhś0o÷ôüčX‡%"¦±±ÇCŚĆĆŢ@Dz8,1SSŽ T33N‡¸pA55ĺ»ô,1ťťZĆÔ”Łł3ČżXbš›ű0ě>†aÍÍ}ŤgQz1VëT{űŹN'Aí:ťD{űŹVëT`Łş{‚^Ě·ßÄ?îř ‚Ľxq0Pń,A/¦©©Ďm&F’dSSĐ_Í‚[Ś^oëé"Â5‘ Čžž!˝Ţ¨¨…ŕÓŇ20ë<ð–•˙ăYD‚[ŚBŃç6ŔPě3Í 32bR«u˙"¨TşŃŃ ^҆â ޱ|yŘÚµ±V«ťÚĄć,ÚŤg,¸»f‰¬.^~ąpę”4Đ,A|)[Ú 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¬¸>ĽLŁŃp8ś@Gä%8ľÇW: /áp8ŤĆŐĹ?~©V«Ífsqqq â»g)))Q«ŐëÖ­ŁSfůqěćÍ›ý@II‰[ c ‰$RHAb ĹËG–ŚŤŤŐÔÔôööÚl¶čččôôt©TşbĹ U´ZíZ[[µZ­Tú˙çW°ŮlŹ———íą˘wˇzĆ- …Ba·ŰétÇą\îK/˝”śśěˇťĹ Ň1żýöŰáÇ·nÝúá‡ĆÄÄhµÚÓ§OżöÚk'Nśđ솆Á`Đ}0 'Ož,///++ó"»Ç5­VK§[­Ö®®®7ß|łŞŞ*))É?Qys)ű裏¶mŰ&“ÉY,ÖÚµkßyç‡óŮgźRŻđ2 "‘¨®®`4E"‘T*u8"‘Čí= ŃŃŃ»víş~ý:µ{űöícÇŽeffîŮł§şşzff†.I˝ł’Ţ•JĄJĄrrr˛¬¬ě™gžŮ»wo[[ŰöíŰ˙­­V»wďŢ–––ĚĚ̬¬¬ŽŽŽyö—ÍfgffŠĹbę-€_ýőŕÁ;věČÎÎnmmµX,®˝sËőâ /ÄLNN ěŢ˝Ű5ðݻw÷ôô¤¦¦ö÷÷Ôjuxx¸JĄ¨T*.—[[[Ë`0şşşÜŢgh0šššzč!j·˛˛rbb˘¶¶¶˛˛ňęŐ«MMMtÉäädłŮüË/ż†‡‡ CZZÚńăÇm6[mmmEE…káYŰ1›ÍĂĂĂuuuYYYUUU ę¸@ ¸qăµýé§ź ‚ŻľúJ"‘TUUEDD¸öÎ-wAGˇY°ę˝111néńńń&“‰Ďç:ťNµZť••588H„JĄJMMu-LýqQH$»ÝţĆoPé—.]:tč‡ĂIHHxá…ÚÚÚčZ8Ž ĄR čěě …†µµµ:t(22rŐŞU999tűł¶ó×_IĄŇđđđôôt«Őzg0"‘čĚ™3łv<22Ň`0PŰČÎÎ Ĺq|bb­¤çÜy˛ŕ1†ZĺüóĎ?éwćRÜşu+**jőęŐ+V¬¸qă†Z­~ë­·:::†††Ž9âZxÖË:Ŕh4âââ¨Ýřřx×—‰„Bá™3g$IWWWAAŃh$µĽçvp§>Żôsš=ă†Éd˘oO4Mii)†awţΙ;Oü‰ çńxgĎžĄSÇĆĆΞ=űÄOř|ľR©4Ť‰‰‰<Ż»»űÖ­[6lOăQQQ€?ţřÚŁRhř|ľN§S*•SSS›6mŠŚŚt+ďąW ĺĘ•+Ô"ŁĹbyď˝÷ Oť:•››ëVĚsîüńfđ—Éd­­­rą\§ÓMOOOLLH$’ˇˇˇçźŔçóĎź?˙Č#Ź`ĆăńÎť;·iÓ&Ç1 #Âu0ż‘žž.—ËÍfóďż˙^SSłmŰ6×aaa©©©|đH$Â0ŚÁ`lٲE.—›L¦ŃŃŃĎ?˙ś:ős¶ł ¬VëůóçżůćęÖzô^hh¨Íf«ŻŻ'bbb‚îݬą^Ô1III'Ož´Ůl2™ěé§źnmmÝąsglllss3 99ŮáplܸđŘcŹŮívj€YąrĺŞU«233m6OŢ-,,\¶l™D"ÉĎĎçóůŮŮŮn„BˇÉdĘČČ vóóó—-[¶oßľ˘˘"±XŚăř<Ű™zěٵk××_]ZZšŕp8R©T&“˝ňĘ+Bˇ0!!ˇ¸¸î]hhčťą =4p{ô˘BˇČÎÎîęęň˘ˇééi­V»fÍ/ę.k×®ÉĺrznkkKIIˇ®i—/_ţä“Ojjj|â#‰öěŮC§,Ú’ “Éô˝^ŻP(\ŻK—/_®®®žśśŻŻŻ§Ćą%@­•íßżffĆu%“É,ËsĎ=—››KŤsK€ {Ľď—_~é–UZZ`|J}bîHAb ‰”Y˙ŁGŹú?„˙`šL¦‚‚ŻD^ł|ůňĘĘJjšL±t^ş°Ä@c ¤ 1‚Ä@ )˙ăÉ'łHIEND®B`‚qwt5-5.2.3/doc/html/qwtinstall.html0000644000175000017500000002533412052741136016570 0ustar gudjongudjon Qwt User's Guide: INSTALL
Qwt User's Guide  5.2.3
INSTALL
Introduction
============
Qwt uses qmake to build all its components and examples.
qmake is part of a Qt distribution.
qmake reads project files, that contain the options and rules how to
build a certain project. A project file ends with the suffix "*.pro".
Files that end with the suffix "*.pri" are included by the project
files and contain definitions, that are common for several project files.
qwtconfig.pri is read by all project files of the Qwt package.
So the first step is to edit qwtconfig.pri to adjust it to your
needs.
MathML Extension
================
Qwt/Qt4 supports the MathML render engine from the Qt solutions package,
that is only available with a commercial Qt license.
You need a release of qtmmlwidget >= 2.1.
Copy the files qtmmlwidget.[cpp|h] to textengines/mathml.
Documentation
==========================
Qwt includes a class documentation, that is available in various formats:
- Html files
- PDF document
- Qt Compressed Help (*.qch ) for the Qt assistant or creator.
You can load it "Edit Preferences" -> "Documentation" -> "Add..."
- Man pages ( UNIX only )
A) Unix Qt3/Qt4
==========================
qmake qwt.pro
make
make install
If you have installed a shared library it's path has to be known to
the run-time linker of your operating system. On Linux systems read
"man ldconfig" ( or google for it ). Another option is to use
the LD_LIBRARY_PATH (on some systems LIBPATH is used instead, on MacOSX
it is called DYLD_LIBRARY_PATH) environment variable.
If you only want to check the Qwt examples without installing something,
you can set the LD_LIBRARY_PATH to the lib directory
of your local build.
If you didn't enable autobuilding of the examples in qwtconfig.pri
you have to build the examples this way:
cd examples
qmake examples.pro
make
B) Win32/MSVC Qt3/Qt4
=====================
Please read the qmake documentation how to convert
your *.pro files into your development environment.
F.e MSVC with nmake:
qmake qwt.pro
nmake
nmake install
If you didn't enable autobuilding of the examples in qwtconfig.pri
you have to build the examples this way:
cd examples
qmake examples.pro
nmake
admin/msvc-qmake.bat helps users of Visual Studio users to
generate makefiles or project files (.dsp for MSVC-6.0 or vcproj for
MSVC.NET) for Qwt.
To generate makefiles, type: "admin\msvc-qmake"
To generate project files, type: "admin\msvc-qmake vc"
When you have built a Qwt DLL you need to add the following
define to your compiler flags: QWT_DLL.
Windows doesn't like mixing of debug and release binaries. Most
of the problems with using the Qwt designer plugin are because
of trying to load a Qwt debug library into a designer release
executable.
C) Win32/MinGW Qt4
==================
C1) Windows Shell
Start a Windows Shell, where Qt4 is initialized. ( F.e. with
"Programs->Qt by Trolltech ...->Qt 4.x.x Command Prompt" ).
qmake qwt.pro
make
make install
If you didn't enable autobuilding of the examples in qwtconfig.pri
you have to build the examples this way:
cd examples
qmake examples.pro
make
C2) MSYS Shell Qt >= 4.3.0
Support for the MSYS Shell has been improved in Qt 4.3.0.
Now building Qwt from the MSYS Shell works exactly like in UNIX or in the
Windows Shell - or at least it should:
because of a bug in Qt 4.3.0 you always have to do a "qmake -r".
C3) MSYS Shell Qt < 4.3.0
For Qt < 4.3.0 you have to set the MINGW_IN_SHELL variable.
make will run into errors with the subdirs target, that can be
ignored (make -i).
export MINGW_IN_SHELL=1;
qmake
make -i
make -i install
If you didn't enable autobuilding of the examples in qwtconfig.pri
you have to build the examples this way:
cd examples
qmake examples.pro
make -i
C1-C3)
When you have built a Qwt DLL you need to add QWT_DLL to your compiler
flags. If you are using qmake for your own builds this done by adding
the following line to your profile: "DEFINES += QWT_DLL".
Windows doesn't like mixing of debug and release binaries. Most
of the problems with using the Qwt designer plugin are because
of trying to load a Qwt debug library into a designer release
executable.
D) MacOSX
Well, the Mac is only another Unix system. So read the instructions in A).
In the recent Qt4 releases the default target of qmake is to generate
XCode project files instead of makefiles. So you might need to do the
following:
qmake -spec macx-g++ qwt.pro
...
E) Qt Embedded
--------
I only tested Qwt with Qt Embedded in qvfb (Virtual Framebuffer Devivce)
Emulator on my Linux box. To build Qwt for the emulator was as simple as
for a regular Unix build.
F) Symbian
--------
I never tried this platform myself.
Good luck !
qwt5-5.2.3/doc/html/class_qwt_abstract_slider__inherit__graph.map0000644000175000017500000000165012052741152024616 0ustar gudjongudjon qwt5-5.2.3/doc/man/0000755000175000017500000000000012052741134013276 5ustar gudjongudjonqwt5-5.2.3/doc/man/man3/0000755000175000017500000000000012052741143014134 5ustar gudjongudjonqwt5-5.2.3/doc/man/man3/QwtPlotMagnifier.30000644000175000017500000000506512052741141017460 0ustar gudjongudjon.TH "QwtPlotMagnifier" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotMagnifier \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtMagnifier\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotMagnifier\fP (\fBQwtPlotCanvas\fP *)" .br .ti -1c .RI "virtual \fB~QwtPlotMagnifier\fP ()" .br .ti -1c .RI "\fBQwtPlotCanvas\fP * \fBcanvas\fP ()" .br .ti -1c .RI "const \fBQwtPlotCanvas\fP * \fBcanvas\fP () const " .br .ti -1c .RI "bool \fBisAxisEnabled\fP (int axis) const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP ()" .br .ti -1c .RI "const \fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "void \fBsetAxisEnabled\fP (int axis, bool on)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBrescale\fP (double factor)" .br .in -1c .SH "Detailed Description" .PP \fBQwtPlotMagnifier\fP provides zooming, by magnifying in steps\&. Using \fBQwtPlotMagnifier\fP a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction\&. .PP Together with \fBQwtPlotZoomer\fP and \fBQwtPlotPanner\fP it is possible to implement individual and powerful navigation of the plot canvas\&. .PP \fBSee also:\fP .RS 4 \fBQwtPlotZoomer\fP, \fBQwtPlotPanner\fP, \fBQwtPlot\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotMagnifier::QwtPlotMagnifier (\fBQwtPlotCanvas\fP *canvas)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIcanvas\fP Plot canvas to be magnified .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtPlotMagnifier::isAxisEnabled (intaxis) const" Test if an axis is enabled .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis, see \fBQwtPlot::Axis\fP .RE .PP \fBReturns:\fP .RS 4 True, if the axis is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisEnabled()\fP .RE .PP .SS "void QwtPlotMagnifier::rescale (doublefactor)\fC [protected]\fP, \fC [virtual]\fP" Zoom in/out the axes scales .PP \fBParameters:\fP .RS 4 \fIfactor\fP A value < 1\&.0 zooms in, a value > 1\&.0 zooms out\&. .RE .PP .PP Implements \fBQwtMagnifier\fP\&. .SS "void QwtPlotMagnifier::setAxisEnabled (intaxis, boolon)" .PP En/Disable an axis\&. Axes that are enabled will be synchronized to the result of panning\&. All other axes will remain unchanged\&. .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis, see \fBQwtPlot::Axis\fP .br \fIon\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBisAxisEnabled()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtDoubleRange.30000644000175000017500000001750212052741140017105 0ustar gudjongudjon.TH "QwtDoubleRange" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDoubleRange \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtAbstractSlider\fP, and \fBQwtCounter\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDoubleRange\fP ()" .br .ti -1c .RI "virtual \fB~QwtDoubleRange\fP ()" .br .ti -1c .RI "virtual void \fBfitValue\fP (double)" .br .ti -1c .RI "virtual void \fBincPages\fP (int)" .br .ti -1c .RI "virtual void \fBincValue\fP (int)" .br .ti -1c .RI "bool \fBisValid\fP () const " .br .ti -1c .RI "double \fBmaxValue\fP () const " .br .ti -1c .RI "double \fBminValue\fP () const " .br .ti -1c .RI "int \fBpageSize\fP () const " .br .ti -1c .RI "bool \fBperiodic\fP () const " .br .ti -1c .RI "void \fBsetPeriodic\fP (bool tf)" .br .ti -1c .RI "void \fBsetRange\fP (double vmin, double vmax, double vstep=0\&.0, int pagesize=1)" .br .ti -1c .RI "void \fBsetStep\fP (double)" .br .ti -1c .RI "void \fBsetValid\fP (bool)" .br .ti -1c .RI "virtual void \fBsetValue\fP (double)" .br .ti -1c .RI "double \fBstep\fP () const " .br .ti -1c .RI "double \fBvalue\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "double \fBexactPrevValue\fP () const " .br .ti -1c .RI "double \fBexactValue\fP () const " .br .ti -1c .RI "double \fBprevValue\fP () const " .br .ti -1c .RI "virtual void \fBrangeChange\fP ()" .br .ti -1c .RI "virtual void \fBstepChange\fP ()" .br .ti -1c .RI "virtual void \fBvalueChange\fP ()" .br .in -1c .SH "Detailed Description" .PP A class which controls a value within an interval\&. This class is useful as a base class or a member for sliders\&. It represents an interval of type double within which a value can be moved\&. The value can be either an arbitrary point inside the interval (see \fBQwtDoubleRange::setValue\fP), or it can be fitted into a step raster (see \fBQwtDoubleRange::fitValue\fP and \fBQwtDoubleRange::incValue\fP)\&. .PP As a special case, a \fBQwtDoubleRange\fP can be periodic, which means that a value outside the interval will be mapped to a value inside the interval when \fBQwtDoubleRange::setValue()\fP, \fBQwtDoubleRange::fitValue()\fP, \fBQwtDoubleRange::incValue()\fP or \fBQwtDoubleRange::incPages()\fP are called\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtDoubleRange::QwtDoubleRange ()" The range is initialized to [0\&.0, 100\&.0], the step size to 1\&.0, and the value to 0\&.0\&. .SH "Member Function Documentation" .PP .SS "double QwtDoubleRange::exactValue () const\fC [protected]\fP" .PP Returns the exact value\&. The exact value is the value which \fBQwtDoubleRange::value\fP would return if the value were not adjusted to the step raster\&. It differs from the current value only if \fBQwtDoubleRange::fitValue\fP or \fBQwtDoubleRange::incValue\fP have been used before\&. This function is intended for internal use in derived classes\&. .SS "void QwtDoubleRange::fitValue (doublex)\fC [virtual]\fP" .PP Adjust the value to the closest point in the step raster\&. \fBParameters:\fP .RS 4 \fIx\fP value .RE .PP \fBWarning:\fP .RS 4 The value is clipped when it lies outside the range\&. When the range is \fBQwtDoubleRange::periodic\fP, it will be mapped to a point in the interval such that .PP .nf new value := x + n * (max. value - min. value) .fi .PP with an integer number n\&. .RE .PP .PP Reimplemented in \fBQwtAbstractSlider\fP\&. .SS "void QwtDoubleRange::incPages (intnPages)\fC [virtual]\fP" .PP Increment the value by a specified number of pages\&. \fBParameters:\fP .RS 4 \fInPages\fP Number of pages to increment\&. A negative number decrements the value\&. .RE .PP \fBWarning:\fP .RS 4 The Page size is specified in the constructor\&. .RE .PP .SS "void QwtDoubleRange::incValue (intnSteps)\fC [virtual]\fP" .PP Increment the value by a specified number of steps\&. \fBParameters:\fP .RS 4 \fInSteps\fP Number of steps to increment .RE .PP \fBWarning:\fP .RS 4 As a result of this operation, the new value will always be adjusted to the step raster\&. .RE .PP .PP Reimplemented in \fBQwtAbstractSlider\fP\&. .SS "double QwtDoubleRange::maxValue () const" .PP Returns the value of the second border of the range\&. maxValue returns the value which has been specified as the second parameter in \fBQwtDoubleRange::setRange\fP\&. .PP \fBSee also:\fP .RS 4 \fBsetRange()\fP .RE .PP .SS "double QwtDoubleRange::minValue () const" .PP Returns the value at the first border of the range\&. minValue returns the value which has been specified as the first parameter in \fBsetRange()\fP\&. .PP \fBSee also:\fP .RS 4 \fBsetRange()\fP .RE .PP .SS "bool QwtDoubleRange::periodic () const" .PP Returns true if the range is periodic\&. \fBSee also:\fP .RS 4 \fBsetPeriodic()\fP .RE .PP .SS "void QwtDoubleRange::rangeChange ()\fC [protected]\fP, \fC [virtual]\fP" .PP Notify a change of the range\&. This virtual function is called whenever the range changes\&. The default implementation does nothing\&. .PP Reimplemented in \fBQwtDial\fP, \fBQwtCounter\fP, and \fBQwtSlider\fP\&. .SS "void QwtDoubleRange::setPeriodic (booltf)" .PP Make the range periodic\&. When the range is periodic, the value will be set to a point inside the interval such that .PP .PP .nf point = value + n * width .fi .PP .PP if the user tries to set a new value which is outside the range\&. If the range is nonperiodic (the default), values outside the range will be clipped\&. .PP \fBParameters:\fP .RS 4 \fItf\fP true for a periodic range .RE .PP .SS "void QwtDoubleRange::setRange (doublevmin, doublevmax, doublevstep = \fC0\&.0\fP, intpageSize = \fC1\fP)" .PP Specify range and step size\&. \fBParameters:\fP .RS 4 \fIvmin\fP lower boundary of the interval .br \fIvmax\fP higher boundary of the interval .br \fIvstep\fP step width .br \fIpageSize\fP page size in steps .RE .PP \fBWarning:\fP .RS 4 .PD 0 .IP "\(bu" 2 A change of the range changes the value if it lies outside the new range\&. The current value will \fInot\fP be adjusted to the new step raster\&. .IP "\(bu" 2 vmax < vmin is allowed\&. .IP "\(bu" 2 If the step size is left out or set to zero, it will be set to 1/100 of the interval length\&. .IP "\(bu" 2 If the step size has an absurd value, it will be corrected to a better one\&. .PP .RE .PP .SS "void QwtDoubleRange::setStep (doublevstep)" .PP Change the step raster\&. \fBParameters:\fP .RS 4 \fIvstep\fP new step width .RE .PP \fBWarning:\fP .RS 4 The value will \fInot\fP be adjusted to the new step raster\&. .RE .PP .PP Reimplemented in \fBQwtCounter\fP\&. .SS "void QwtDoubleRange::setValue (doublex)\fC [virtual]\fP" .PP Set a new value without adjusting to the step raster\&. \fBParameters:\fP .RS 4 \fIx\fP new value .RE .PP \fBWarning:\fP .RS 4 The value is clipped when it lies outside the range\&. When the range is \fBQwtDoubleRange::periodic\fP, it will be mapped to a point in the interval such that .PP .nf new value := x + n * (max. value - min. value) .fi .PP with an integer number n\&. .RE .PP .PP Reimplemented in \fBQwtCounter\fP, and \fBQwtAbstractSlider\fP\&. .SS "double QwtDoubleRange::step () const" \fBReturns:\fP .RS 4 the step size .RE .PP \fBSee also:\fP .RS 4 \fBsetStep()\fP, \fBsetRange()\fP .RE .PP .PP Reimplemented in \fBQwtCounter\fP\&. .SS "void QwtDoubleRange::stepChange ()\fC [protected]\fP, \fC [virtual]\fP" .PP Notify a change of the step size\&. This virtual function is called whenever the step size changes\&. The default implementation does nothing\&. .SS "void QwtDoubleRange::valueChange ()\fC [protected]\fP, \fC [virtual]\fP" .PP Notify a change of value\&. This virtual function is called whenever the value changes\&. The default implementation does nothing\&. .PP Reimplemented in \fBQwtDial\fP, \fBQwtAbstractSlider\fP, \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/_tmp_qwt-5.2.3-tmp_src_.30000644000175000017500000001541512052741143020327 0ustar gudjongudjon.TH "/tmp/qwt-5.2.3-tmp/src/ Directory Reference" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME /tmp/qwt-5.2.3-tmp/src/ Directory Reference \- .SH SYNOPSIS .br .PP .SS "Files" .in +1c .ti -1c .RI "file \fBqwt_abstract_scale\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_abstract_scale\&.h\fP" .br .ti -1c .RI "file \fBqwt_abstract_scale_draw\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_abstract_scale_draw\&.h\fP" .br .ti -1c .RI "file \fBqwt_abstract_slider\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_abstract_slider\&.h\fP" .br .ti -1c .RI "file \fBqwt_analog_clock\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_analog_clock\&.h\fP" .br .ti -1c .RI "file \fBqwt_array\&.h\fP" .br .ti -1c .RI "file \fBqwt_arrow_button\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_arrow_button\&.h\fP" .br .ti -1c .RI "file \fBqwt_clipper\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_clipper\&.h\fP" .br .ti -1c .RI "file \fBqwt_color_map\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_color_map\&.h\fP" .br .ti -1c .RI "file \fBqwt_compass\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_compass\&.h\fP" .br .ti -1c .RI "file \fBqwt_compass_rose\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_compass_rose\&.h\fP" .br .ti -1c .RI "file \fBqwt_counter\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_counter\&.h\fP" .br .ti -1c .RI "file \fBqwt_curve_fitter\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_curve_fitter\&.h\fP" .br .ti -1c .RI "file \fBqwt_data\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_data\&.h\fP" .br .ti -1c .RI "file \fBqwt_dial\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_dial\&.h\fP" .br .ti -1c .RI "file \fBqwt_dial_needle\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_dial_needle\&.h\fP" .br .ti -1c .RI "file \fBqwt_double_interval\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_double_interval\&.h\fP" .br .ti -1c .RI "file \fBqwt_double_range\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_double_range\&.h\fP" .br .ti -1c .RI "file \fBqwt_double_rect\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_double_rect\&.h\fP" .br .ti -1c .RI "file \fBqwt_dyngrid_layout\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_dyngrid_layout\&.h\fP" .br .ti -1c .RI "file \fBqwt_event_pattern\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_event_pattern\&.h\fP" .br .ti -1c .RI "file \fBqwt_global\&.h\fP" .br .ti -1c .RI "file \fBqwt_interval_data\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_interval_data\&.h\fP" .br .ti -1c .RI "file \fBqwt_knob\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_knob\&.h\fP" .br .ti -1c .RI "file \fBqwt_layout_metrics\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_layout_metrics\&.h\fP" .br .ti -1c .RI "file \fBqwt_legend\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_legend\&.h\fP" .br .ti -1c .RI "file \fBqwt_legend_item\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_legend_item\&.h\fP" .br .ti -1c .RI "file \fBqwt_legend_itemmanager\&.h\fP" .br .ti -1c .RI "file \fBqwt_magnifier\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_magnifier\&.h\fP" .br .ti -1c .RI "file \fBqwt_math\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_math\&.h\fP" .br .ti -1c .RI "file \fBqwt_paint_buffer\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_paint_buffer\&.h\fP" .br .ti -1c .RI "file \fBqwt_painter\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_painter\&.h\fP" .br .ti -1c .RI "file \fBqwt_panner\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_panner\&.h\fP" .br .ti -1c .RI "file \fBqwt_picker\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_picker\&.h\fP" .br .ti -1c .RI "file \fBqwt_picker_machine\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_picker_machine\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_axis\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_canvas\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_canvas\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_curve\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_curve\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_dict\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_dict\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_grid\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_grid\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_item\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_item\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_layout\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_layout\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_magnifier\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_magnifier\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_marker\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_marker\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_panner\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_panner\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_picker\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_picker\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_print\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_printfilter\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_printfilter\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_rasteritem\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_rasteritem\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_rescaler\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_rescaler\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_scaleitem\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_scaleitem\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_spectrogram\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_spectrogram\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_svgitem\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_svgitem\&.h\fP" .br .ti -1c .RI "file \fBqwt_plot_xml\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_zoomer\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_plot_zoomer\&.h\fP" .br .ti -1c .RI "file \fBqwt_polygon\&.h\fP" .br .ti -1c .RI "file \fBqwt_raster_data\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_raster_data\&.h\fP" .br .ti -1c .RI "file \fBqwt_round_scale_draw\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_round_scale_draw\&.h\fP" .br .ti -1c .RI "file \fBqwt_scale_div\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_scale_div\&.h\fP" .br .ti -1c .RI "file \fBqwt_scale_draw\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_scale_draw\&.h\fP" .br .ti -1c .RI "file \fBqwt_scale_engine\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_scale_engine\&.h\fP" .br .ti -1c .RI "file \fBqwt_scale_map\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_scale_map\&.h\fP" .br .ti -1c .RI "file \fBqwt_scale_widget\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_scale_widget\&.h\fP" .br .ti -1c .RI "file \fBqwt_slider\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_slider\&.h\fP" .br .ti -1c .RI "file \fBqwt_spline\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_spline\&.h\fP" .br .ti -1c .RI "file \fBqwt_symbol\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_symbol\&.h\fP" .br .ti -1c .RI "file \fBqwt_text\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_text\&.h\fP" .br .ti -1c .RI "file \fBqwt_text_engine\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_text_engine\&.h\fP" .br .ti -1c .RI "file \fBqwt_text_label\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_text_label\&.h\fP" .br .ti -1c .RI "file \fBqwt_thermo\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_thermo\&.h\fP" .br .ti -1c .RI "file \fBqwt_valuelist\&.h\fP" .br .ti -1c .RI "file \fBqwt_wheel\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_wheel\&.h\fP" .br .in -1c qwt5-5.2.3/doc/man/man3/QwtScaleMap.30000644000175000017500000001056612052741143016411 0ustar gudjongudjon.TH "QwtScaleMap" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleMap \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleMap\fP ()" .br .ti -1c .RI "\fBQwtScaleMap\fP (const \fBQwtScaleMap\fP &)" .br .ti -1c .RI "\fB~QwtScaleMap\fP ()" .br .ti -1c .RI "double \fBinvTransform\fP (double i) const " .br .ti -1c .RI "\fBQwtScaleMap\fP & \fBoperator=\fP (const \fBQwtScaleMap\fP &)" .br .ti -1c .RI "double \fBp1\fP () const " .br .ti -1c .RI "double \fBp2\fP () const " .br .ti -1c .RI "double \fBpDist\fP () const " .br .ti -1c .RI "double \fBs1\fP () const " .br .ti -1c .RI "double \fBs2\fP () const " .br .ti -1c .RI "double \fBsDist\fP () const " .br .ti -1c .RI "void \fBsetPaintInterval\fP (int \fBp1\fP, int \fBp2\fP)" .br .ti -1c .RI "void \fBsetPaintXInterval\fP (double \fBp1\fP, double \fBp2\fP)" .br .ti -1c .RI "void \fBsetScaleInterval\fP (double \fBs1\fP, double \fBs2\fP)" .br .ti -1c .RI "void \fBsetTransformation\fP (\fBQwtScaleTransformation\fP *)" .br .ti -1c .RI "int \fBtransform\fP (double x) const " .br .ti -1c .RI "const \fBQwtScaleTransformation\fP * \fBtransformation\fP () const " .br .ti -1c .RI "double \fBxTransform\fP (double x) const " .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "QT_STATIC_CONST double \fBLogMax\fP = 1\&.0e150" .br .ti -1c .RI "QT_STATIC_CONST double \fBLogMin\fP = 1\&.0e-150" .br .in -1c .SH "Detailed Description" .PP A scale map\&. \fBQwtScaleMap\fP offers transformations from a scale into a paint interval and vice versa\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtScaleMap::QwtScaleMap ()" .PP Constructor\&. The scale and paint device intervals are both set to [0,1]\&. .SS "QwtScaleMap::~QwtScaleMap ()" Destructor .SH "Member Function Documentation" .PP .SS "double QwtScaleMap::invTransform (doublep) const\fC [inline]\fP" Transform an paint device value into a value in the interval of the scale\&. .PP \fBParameters:\fP .RS 4 \fIp\fP Value relative to the coordinates of the paint device .RE .PP \fBSee also:\fP .RS 4 \fBtransform()\fP .RE .PP .SS "double QwtScaleMap::p1 () const\fC [inline]\fP" \fBReturns:\fP .RS 4 First border of the paint interval .RE .PP .SS "double QwtScaleMap::p2 () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Second border of the paint interval .RE .PP .SS "double QwtScaleMap::pDist () const\fC [inline]\fP" \fBReturns:\fP .RS 4 qwtAbs(\fBp2()\fP - \fBp1()\fP) .RE .PP .SS "double QwtScaleMap::s1 () const\fC [inline]\fP" \fBReturns:\fP .RS 4 First border of the scale interval .RE .PP .SS "double QwtScaleMap::s2 () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Second border of the scale interval .RE .PP .SS "double QwtScaleMap::sDist () const\fC [inline]\fP" \fBReturns:\fP .RS 4 qwtAbs(\fBs2()\fP - \fBs1()\fP) .RE .PP .SS "void QwtScaleMap::setPaintInterval (intp1, intp2)" .PP Specify the borders of the paint device interval\&. \fBParameters:\fP .RS 4 \fIp1\fP first border .br \fIp2\fP second border .RE .PP .SS "void QwtScaleMap::setPaintXInterval (doublep1, doublep2)" .PP Specify the borders of the paint device interval\&. \fBParameters:\fP .RS 4 \fIp1\fP first border .br \fIp2\fP second border .RE .PP .SS "void QwtScaleMap::setScaleInterval (doubles1, doubles2)" .PP Specify the borders of the scale interval\&. \fBParameters:\fP .RS 4 \fIs1\fP first border .br \fIs2\fP second border .RE .PP \fBWarning:\fP .RS 4 logarithmic scales might be aligned to [LogMin, LogMax] .RE .PP .SS "void QwtScaleMap::setTransformation (\fBQwtScaleTransformation\fP *transformation)" Initialize the map with a transformation .SS "int QwtScaleMap::transform (doubles) const\fC [inline]\fP" Transform a point related to the scale interval into an point related to the interval of the paint device and round it to an integer\&. (In Qt <= 3\&.x paint devices are integer based\&. ) .PP \fBParameters:\fP .RS 4 \fIs\fP Value relative to the coordinates of the scale .RE .PP \fBSee also:\fP .RS 4 \fBxTransform()\fP .RE .PP .SS "double QwtScaleMap::xTransform (doubles) const\fC [inline]\fP" Transform a point related to the scale interval into an point related to the interval of the paint device .PP \fBParameters:\fP .RS 4 \fIs\fP Value relative to the coordinates of the scale .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtAbstractSlider.30000644000175000017500000002744012052741137017634 0ustar gudjongudjon.TH "QwtAbstractSlider" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtAbstractSlider \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDoubleRange\fP\&. .PP Inherited by \fBQwtDial\fP, \fBQwtKnob\fP, \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBScrollMode\fP { \fBScrNone\fP, \fBScrMouse\fP, \fBScrTimer\fP, \fBScrDirect\fP, \fBScrPage\fP }" .br .in -1c .SS "Public Slots" .in +1c .ti -1c .RI "virtual void \fBfitValue\fP (double val)" .br .ti -1c .RI "virtual void \fBincValue\fP (int steps)" .br .ti -1c .RI "virtual void \fBsetReadOnly\fP (bool)" .br .ti -1c .RI "virtual void \fBsetValue\fP (double val)" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBsliderMoved\fP (double \fBvalue\fP)" .br .ti -1c .RI "void \fBsliderPressed\fP ()" .br .ti -1c .RI "void \fBsliderReleased\fP ()" .br .ti -1c .RI "void \fBvalueChanged\fP (double \fBvalue\fP)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtAbstractSlider\fP (Qt::Orientation, QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtAbstractSlider\fP ()" .br .ti -1c .RI "bool \fBisReadOnly\fP () const " .br .ti -1c .RI "bool \fBisValid\fP () const " .br .ti -1c .RI "virtual double \fBmass\fP () const " .br .ti -1c .RI "Qt::Orientation \fBorientation\fP () const " .br .ti -1c .RI "virtual void \fBsetMass\fP (double val)" .br .ti -1c .RI "virtual void \fBsetOrientation\fP (Qt::Orientation o)" .br .ti -1c .RI "void \fBsetTracking\fP (bool enable)" .br .ti -1c .RI "void \fBsetUpdateTime\fP (int t)" .br .ti -1c .RI "void \fBsetValid\fP (bool valid)" .br .ti -1c .RI "void \fBstopMoving\fP ()" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBgetScrollMode\fP (const QPoint &p, int &scrollMode, int &direction)=0" .br .ti -1c .RI "virtual double \fBgetValue\fP (const QPoint &p)=0" .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *e)" .br .ti -1c .RI "virtual void \fBmouseMoveEvent\fP (QMouseEvent *e)" .br .ti -1c .RI "double \fBmouseOffset\fP () const " .br .ti -1c .RI "virtual void \fBmousePressEvent\fP (QMouseEvent *e)" .br .ti -1c .RI "virtual void \fBmouseReleaseEvent\fP (QMouseEvent *e)" .br .ti -1c .RI "int \fBscrollMode\fP () const " .br .ti -1c .RI "void \fBsetMouseOffset\fP (double)" .br .ti -1c .RI "virtual void \fBsetPosition\fP (const QPoint &)" .br .ti -1c .RI "virtual void \fBtimerEvent\fP (QTimerEvent *e)" .br .ti -1c .RI "virtual void \fBvalueChange\fP ()" .br .ti -1c .RI "virtual void \fBwheelEvent\fP (QWheelEvent *e)" .br .in -1c .SH "Detailed Description" .PP An abstract base class for slider widgets\&. \fBQwtAbstractSlider\fP is a base class for slider widgets\&. It handles mouse events and updates the slider's value accordingly\&. Derived classes only have to implement the \fBgetValue()\fP and \fBgetScrollMode()\fP members, and should react to a \fBvalueChange()\fP, which normally requires repainting\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtAbstractSlider::ScrollMode\fP" Scroll mode .PP \fBSee also:\fP .RS 4 \fBgetScrollMode()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtAbstractSlider::QwtAbstractSlider (Qt::Orientationorientation, QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIorientation\fP Orientation .br \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtAbstractSlider::fitValue (doublevalue)\fC [virtual]\fP, \fC [slot]\fP" .PP Set the slider's value to the nearest integer multiple of the step size\&. \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBsetValue()\fP, \fBincValue()\fP .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "virtual void QwtAbstractSlider::getScrollMode (const QPoint &p, int &scrollMode, int &direction)\fC [protected]\fP, \fC [pure virtual]\fP" .PP Determine what to do when the user presses a mouse button\&. This function is abstract and has to be implemented by derived classes\&. It is called on a mousePress event\&. The derived class can determine what should happen next in dependence of the position where the mouse was pressed by returning scrolling mode and direction\&. \fBQwtAbstractSlider\fP knows the following modes: .IP "\fBQwtAbstractSlider::ScrNone \fP" 1c Scrolling switched off\&. Don't change the value\&. .IP "\fBQwtAbstractSlider::ScrMouse \fP" 1c Change the value while the user keeps the button pressed and moves the mouse\&. .IP "\fBQwtAbstractSlider::ScrTimer \fP" 1c Automatic scrolling\&. Increment the value in the specified direction as long as the user keeps the button pressed\&. .IP "\fBQwtAbstractSlider::ScrPage \fP" 1c Automatic scrolling\&. Same as ScrTimer, but increment by page size\&. .PP .PP \fBParameters:\fP .RS 4 \fIp\fP point where the mouse was pressed .RE .PP \fBReturn values:\fP .RS 4 \fIscrollMode\fP The scrolling mode .br \fIdirection\fP direction: 1, 0, or -1\&. .RE .PP .PP Implemented in \fBQwtDial\fP, \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SS "virtual double QwtAbstractSlider::getValue (const QPoint &p)\fC [protected]\fP, \fC [pure virtual]\fP" .PP Determine the value corresponding to a specified poind\&. This is an abstract virtual function which is called when the user presses or releases a mouse button or moves the mouse\&. It has to be implemented by the derived class\&. .PP \fBParameters:\fP .RS 4 \fIp\fP point .RE .PP .PP Implemented in \fBQwtDial\fP, \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SS "void QwtAbstractSlider::incValue (intsteps)\fC [virtual]\fP, \fC [slot]\fP" .PP Increment the value by a specified number of steps\&. \fBParameters:\fP .RS 4 \fIsteps\fP number of steps .RE .PP \fBSee also:\fP .RS 4 \fBsetValue()\fP .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "bool QwtAbstractSlider::isReadOnly () const" In read only mode the slider can't be controlled by mouse or keyboard\&. .PP \fBReturns:\fP .RS 4 true if read only .RE .PP \fBSee also:\fP .RS 4 \fBsetReadOnly()\fP .RE .PP .SS "bool QwtAbstractSlider::isValid () const\fC [inline]\fP" \fBSee also:\fP .RS 4 QwtDblRange::isValid() .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtAbstractSlider::keyPressEvent (QKeyEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handles key events .PP .IP "\(bu" 2 Key_Down, KeyLeft .br Decrement by 1 .IP "\(bu" 2 Key_Up, Key_Right .br Increment by 1 .PP .PP \fBParameters:\fP .RS 4 \fIe\fP Key event .RE .PP \fBSee also:\fP .RS 4 \fBisReadOnly()\fP .RE .PP .PP Reimplemented in \fBQwtDial\fP, and \fBQwtCompass\fP\&. .SS "double QwtAbstractSlider::mass () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 mass .RE .PP \fBSee also:\fP .RS 4 \fBsetMass()\fP .RE .PP .PP Reimplemented in \fBQwtWheel\fP\&. .SS "void QwtAbstractSlider::mouseMoveEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Mouse Move Event handler .PP \fBParameters:\fP .RS 4 \fIe\fP Mouse event .RE .PP .SS "void QwtAbstractSlider::mousePressEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Mouse press event handler .PP \fBParameters:\fP .RS 4 \fIe\fP Mouse event .RE .PP .SS "void QwtAbstractSlider::mouseReleaseEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Mouse Release Event handler .PP \fBParameters:\fP .RS 4 \fIe\fP Mouse event .RE .PP .SS "Qt::Orientation QwtAbstractSlider::orientation () const" \fBReturns:\fP .RS 4 Orientation .RE .PP \fBSee also:\fP .RS 4 \fBsetOrientation()\fP .RE .PP .SS "void QwtAbstractSlider::setMass (doubleval)\fC [virtual]\fP" .PP Set the slider's mass for flywheel effect\&. If the slider's mass is greater then 0, it will continue to move after the mouse button has been released\&. Its speed decreases with time at a rate depending on the slider's mass\&. A large mass means that it will continue to move for a long time\&. .PP Derived widgets may overload this function to make it public\&. .PP \fBParameters:\fP .RS 4 \fIval\fP New mass in kg .RE .PP \fBSee also:\fP .RS 4 \fBmass()\fP .RE .PP .PP Reimplemented in \fBQwtWheel\fP\&. .SS "void QwtAbstractSlider::setOrientation (Qt::Orientationo)\fC [virtual]\fP" .PP Set the orientation\&. \fBParameters:\fP .RS 4 \fIo\fP Orientation\&. Allowed values are Qt::Horizontal and Qt::Vertical\&. .RE .PP .PP Reimplemented in \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SS "void QwtAbstractSlider::setPosition (const QPoint &p)\fC [protected]\fP, \fC [virtual]\fP" Move the slider to a specified point, adjust the value and emit signals if necessary\&. .SS "void QwtAbstractSlider::setReadOnly (boolreadOnly)\fC [virtual]\fP, \fC [slot]\fP" En/Disable read only mode .PP In read only mode the slider can't be controlled by mouse or keyboard\&. .PP \fBParameters:\fP .RS 4 \fIreadOnly\fP Enables in case of true .RE .PP \fBSee also:\fP .RS 4 \fBisReadOnly()\fP .RE .PP .SS "void QwtAbstractSlider::setTracking (boolenable)" .PP Enables or disables tracking\&. If tracking is enabled, the slider emits a \fBvalueChanged()\fP signal whenever its value changes (the default behaviour)\&. If tracking is disabled, the value changed() signal will only be emitted if: .PD 0 .IP "\(bu" 2 the user releases the mouse button and the value has changed or .IP "\(bu" 2 at the end of automatic scrolling\&. .PP Tracking is enabled by default\&. .PP \fBParameters:\fP .RS 4 \fIenable\fP \fCtrue\fP (enable) or \fCfalse\fP (disable) tracking\&. .RE .PP .SS "void QwtAbstractSlider::setUpdateTime (intt)" .PP Specify the update interval for automatic scrolling\&. \fBParameters:\fP .RS 4 \fIt\fP update interval in milliseconds .RE .PP \fBSee also:\fP .RS 4 \fBgetScrollMode()\fP .RE .PP .SS "void QwtAbstractSlider::setValid (boolvalid)\fC [inline]\fP" \fBParameters:\fP .RS 4 \fIvalid\fP true/false .RE .PP \fBSee also:\fP .RS 4 QwtDblRange::isValid() .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtAbstractSlider::setValue (doubleval)\fC [virtual]\fP, \fC [slot]\fP" .PP Move the slider to a specified value\&. This function can be used to move the slider to a value which is not an integer multiple of the step size\&. .PP \fBParameters:\fP .RS 4 \fIval\fP new value .RE .PP \fBSee also:\fP .RS 4 \fBfitValue()\fP .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtAbstractSlider::sliderMoved (doublevalue)\fC [signal]\fP" This signal is emitted when the user moves the slider with the mouse\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP new value .RE .PP .SS "void QwtAbstractSlider::sliderPressed ()\fC [signal]\fP" This signal is emitted when the user presses the movable part of the slider (start ScrMouse Mode)\&. .SS "void QwtAbstractSlider::sliderReleased ()\fC [signal]\fP" This signal is emitted when the user releases the movable part of the slider\&. .SS "void QwtAbstractSlider::timerEvent (QTimerEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Qt timer event .PP \fBParameters:\fP .RS 4 \fIe\fP Timer event .RE .PP .SS "void QwtAbstractSlider::valueChange ()\fC [protected]\fP, \fC [virtual]\fP" Notify change of value .PP This function can be reimplemented by derived classes in order to keep track of changes, i\&.e\&. repaint the widget\&. The default implementation emits a \fBvalueChanged()\fP signal if tracking is enabled\&. .PP Reimplemented from \fBQwtDoubleRange\fP\&. .PP Reimplemented in \fBQwtDial\fP, \fBQwtSlider\fP, and \fBQwtWheel\fP\&. .SS "void QwtAbstractSlider::valueChanged (doublevalue)\fC [signal]\fP" .PP Notify a change of value\&. In the default setting (tracking enabled), this signal will be emitted every time the value changes ( see \fBsetTracking()\fP )\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP new value .RE .PP .SS "void QwtAbstractSlider::wheelEvent (QWheelEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Wheel Event handler .PP \fBParameters:\fP .RS 4 \fIe\fP Whell event .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtScaleDraw.30000644000175000017500000003035312052741142016564 0ustar gudjongudjon.TH "QwtScaleDraw" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleDraw \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractScaleDraw\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBAlignment\fP { \fBBottomScale\fP, \fBTopScale\fP, \fBLeftScale\fP, \fBRightScale\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleDraw\fP ()" .br .ti -1c .RI "\fBQwtScaleDraw\fP (const \fBQwtScaleDraw\fP &)" .br .ti -1c .RI "virtual \fB~QwtScaleDraw\fP ()" .br .ti -1c .RI "\fBAlignment\fP \fBalignment\fP () const " .br .ti -1c .RI "QRect \fBboundingLabelRect\fP (const QFont &, double val) const " .br .ti -1c .RI "virtual int \fBextent\fP (const QPen &, const QFont &) const " .br .ti -1c .RI "void \fBgetBorderDistHint\fP (const QFont &, int &start, int &end) const " .br .ti -1c .RI "Qt::Alignment \fBlabelAlignment\fP () const " .br .ti -1c .RI "QPoint \fBlabelPosition\fP (double val) const " .br .ti -1c .RI "QRect \fBlabelRect\fP (const QFont &, double val) const " .br .ti -1c .RI "double \fBlabelRotation\fP () const " .br .ti -1c .RI "QSize \fBlabelSize\fP (const QFont &, double val) const " .br .ti -1c .RI "int \fBlength\fP () const " .br .ti -1c .RI "int \fBmaxLabelHeight\fP (const QFont &) const " .br .ti -1c .RI "int \fBmaxLabelWidth\fP (const QFont &) const " .br .ti -1c .RI "int \fBminLabelDist\fP (const QFont &) const " .br .ti -1c .RI "int \fBminLength\fP (const QPen &, const QFont &) const " .br .ti -1c .RI "void \fBmove\fP (int x, int y)" .br .ti -1c .RI "void \fBmove\fP (const QPoint &)" .br .ti -1c .RI "\fBQwtScaleDraw\fP & \fBoperator=\fP (const \fBQwtScaleDraw\fP &other)" .br .ti -1c .RI "Qt::Orientation \fBorientation\fP () const " .br .ti -1c .RI "QPoint \fBpos\fP () const " .br .ti -1c .RI "void \fBsetAlignment\fP (\fBAlignment\fP)" .br .ti -1c .RI "void \fBsetLabelAlignment\fP (Qt::Alignment)" .br .ti -1c .RI "void \fBsetLabelRotation\fP (double rotation)" .br .ti -1c .RI "void \fBsetLength\fP (int \fBlength\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawBackbone\fP (QPainter *p) const " .br .ti -1c .RI "virtual void \fBdrawLabel\fP (QPainter *p, double val) const " .br .ti -1c .RI "virtual void \fBdrawTick\fP (QPainter *p, double val, int len) const " .br .ti -1c .RI "QMatrix \fBlabelMatrix\fP (const QPoint &, const QSize &) const " .br .in -1c .SH "Detailed Description" .PP A class for drawing scales\&. \fBQwtScaleDraw\fP can be used to draw linear or logarithmic scales\&. A scale has a position, an alignment and a length, which can be specified \&. The labels can be rotated and aligned to the ticks using \fBsetLabelRotation()\fP and \fBsetLabelAlignment()\fP\&. .PP After a scale division has been specified as a \fBQwtScaleDiv\fP object using \fBQwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s)\fP, the scale can be drawn with the \fBQwtAbstractScaleDraw::draw()\fP member\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtScaleDraw::Alignment\fP" Alignment of the scale draw .PP \fBSee also:\fP .RS 4 \fBsetAlignment()\fP, \fBalignment()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtScaleDraw::QwtScaleDraw ()" .PP Constructor\&. The range of the scale is initialized to [0, 100], The position is at (0, 0) with a length of 100\&. The orientation is QwtAbstractScaleDraw::Bottom\&. .SH "Member Function Documentation" .PP .SS "\fBQwtScaleDraw::Alignment\fP QwtScaleDraw::alignment () const" Return alignment of the scale .PP \fBSee also:\fP .RS 4 \fBsetAlignment()\fP .RE .PP .SS "QRect QwtScaleDraw::boundingLabelRect (const QFont &font, doublevalue) const" Find the bounding rect for the label\&. The coordinates of the rect are absolute coordinates ( calculated from \fBpos()\fP )\&. in direction of the tick\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font used for painting .br \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBlabelRect()\fP .RE .PP .SS "void QwtScaleDraw::drawBackbone (QPainter *painter) const\fC [protected]\fP, \fC [virtual]\fP" Draws the baseline of the scale .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick()\fP, \fBdrawLabel()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtScaleDraw::drawLabel (QPainter *painter, doublevalue) const\fC [protected]\fP, \fC [virtual]\fP" Draws the label for a major scale tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick()\fP, \fBdrawBackbone()\fP, \fBboundingLabelRect()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtScaleDraw::drawTick (QPainter *painter, doublevalue, intlen) const\fC [protected]\fP, \fC [virtual]\fP" Draw a tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value of the tick .br \fIlen\fP Lenght of the tick .RE .PP \fBSee also:\fP .RS 4 \fBdrawBackbone()\fP, \fBdrawLabel()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "int QwtScaleDraw::extent (const QPen &pen, const QFont &font) const\fC [virtual]\fP" Calculate the width/height that is needed for a vertical/horizontal scale\&. .PP The extent is calculated from the pen width of the backbone, the major tick length, the spacing and the maximum width/height of the labels\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen that is used for painting backbone and ticks .br \fIfont\fP Font used for painting the labels .RE .PP \fBSee also:\fP .RS 4 \fBminLength()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtScaleDraw::getBorderDistHint (const QFont &font, int &start, int &end) const" .PP Determine the minimum border distance\&. This member function returns the minimum space needed to draw the mark labels at the scale's endpoints\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font .br \fIstart\fP Start border distance .br \fIend\fP End border distance .RE .PP .SS "Qt::Alignment QwtScaleDraw::labelAlignment () const" \fBReturns:\fP .RS 4 the label flags .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelAlignment()\fP, \fBlabelRotation()\fP .RE .PP .SS "QMatrix QwtScaleDraw::labelMatrix (const QPoint &pos, const QSize &size) const\fC [protected]\fP" Calculate the matrix that is needed to paint a label depending on its alignment and rotation\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Position where to paint the label .br \fIsize\fP Size of the label .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelAlignment()\fP, \fBsetLabelRotation()\fP .RE .PP .SS "QPoint QwtScaleDraw::labelPosition (doublevalue) const" Find the position, where to paint a label .PP The position has a distance of \fBmajTickLength()\fP + \fBspacing()\fP + 1 from the backbone\&. The direction depends on the \fBalignment()\fP .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP .SS "QRect QwtScaleDraw::labelRect (const QFont &font, doublevalue) const" Find the bounding rect for the label\&. The coordinates of the rect are relative to spacing + ticklength from the backbone in direction of the tick\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font used for painting .br \fIvalue\fP Value .RE .PP .SS "double QwtScaleDraw::labelRotation () const" \fBReturns:\fP .RS 4 the label rotation .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelRotation()\fP, \fBlabelAlignment()\fP .RE .PP .SS "QSize QwtScaleDraw::labelSize (const QFont &font, doublevalue) const" Calculate the size that is needed to draw a label .PP \fBParameters:\fP .RS 4 \fIfont\fP Label font .br \fIvalue\fP Value .RE .PP .SS "int QwtScaleDraw::length () const" \fBReturns:\fP .RS 4 the length of the backbone .RE .PP \fBSee also:\fP .RS 4 \fBsetLength()\fP, \fBpos()\fP .RE .PP .SS "int QwtScaleDraw::maxLabelHeight (const QFont &font) const" \fBParameters:\fP .RS 4 \fIfont\fP Font .RE .PP \fBReturns:\fP .RS 4 the maximum height of a label .RE .PP .SS "int QwtScaleDraw::maxLabelWidth (const QFont &font) const" \fBParameters:\fP .RS 4 \fIfont\fP Font .RE .PP \fBReturns:\fP .RS 4 the maximum width of a label .RE .PP .SS "int QwtScaleDraw::minLabelDist (const QFont &font) const" Determine the minimum distance between two labels, that is necessary that the texts don't overlap\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font .RE .PP \fBReturns:\fP .RS 4 The maximum width of a label .RE .PP \fBSee also:\fP .RS 4 \fBgetBorderDistHint()\fP .RE .PP .SS "int QwtScaleDraw::minLength (const QPen &pen, const QFont &font) const" Calculate the minimum length that is needed to draw the scale .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen that is used for painting backbone and ticks .br \fIfont\fP Font used for painting the labels .RE .PP \fBSee also:\fP .RS 4 \fBextent()\fP .RE .PP .SS "void QwtScaleDraw::move (intx, inty)\fC [inline]\fP" Move the position of the scale .PP \fBSee also:\fP .RS 4 \fBmove(const QPoint &)\fP .RE .PP .SS "void QwtScaleDraw::move (const QPoint &pos)" .PP Move the position of the scale\&. The meaning of the parameter pos depends on the alignment: .IP "\fBQwtScaleDraw::LeftScale \fP" 1c The origin is the topmost point of the backbone\&. The backbone is a vertical line\&. Scale marks and labels are drawn at the left of the backbone\&. .IP "\fBQwtScaleDraw::RightScale \fP" 1c The origin is the topmost point of the backbone\&. The backbone is a vertical line\&. Scale marks and labels are drawn at the right of the backbone\&. .IP "\fBQwtScaleDraw::TopScale \fP" 1c The origin is the leftmost point of the backbone\&. The backbone is a horizontal line\&. Scale marks and labels are drawn above the backbone\&. .IP "\fBQwtScaleDraw::BottomScale \fP" 1c The origin is the leftmost point of the backbone\&. The backbone is a horizontal line Scale marks and labels are drawn below the backbone\&. .PP .PP \fBParameters:\fP .RS 4 \fIpos\fP Origin of the scale .RE .PP \fBSee also:\fP .RS 4 \fBpos()\fP, \fBsetLength()\fP .RE .PP .SS "Qt::Orientation QwtScaleDraw::orientation () const" Return the orientation .PP TopScale, BottomScale are horizontal (Qt::Horizontal) scales, LeftScale, RightScale are vertical (Qt::Vertical) scales\&. .PP \fBSee also:\fP .RS 4 \fBalignment()\fP .RE .PP .SS "QPoint QwtScaleDraw::pos () const" \fBReturns:\fP .RS 4 Origin of the scale .RE .PP \fBSee also:\fP .RS 4 \fBmove()\fP, \fBlength()\fP .RE .PP .SS "void QwtScaleDraw::setAlignment (\fBAlignment\fPalign)" Set the alignment of the scale .PP The default alignment is QwtScaleDraw::BottomScale .PP \fBSee also:\fP .RS 4 \fBalignment()\fP .RE .PP .SS "void QwtScaleDraw::setLabelAlignment (Qt::Alignmentalignment)" .PP Change the label flags\&. Labels are aligned to the point ticklength + spacing away from the backbone\&. .PP The alignment is relative to the orientation of the label text\&. In case of an flags of 0 the label will be aligned depending on the orientation of the scale: .PP .nf QwtScaleDraw::TopScale: Qt::AlignHCenter | Qt::AlignTop\n QwtScaleDraw::BottomScale: Qt::AlignHCenter | Qt::AlignBottom\n QwtScaleDraw::LeftScale: Qt::AlignLeft | Qt::AlignVCenter\n QwtScaleDraw::RightScale: Qt::AlignRight | Qt::AlignVCenter\n .fi .PP .PP Changing the alignment is often necessary for rotated labels\&. .PP \fBParameters:\fP .RS 4 \fIalignment\fP Or'd Qt::AlignmentFlags .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelRotation()\fP, \fBlabelRotation()\fP, \fBlabelAlignment()\fP .RE .PP \fBWarning:\fP .RS 4 The various alignments might be confusing\&. The alignment of the label is not the alignment of the scale and is not the alignment of the flags (QwtText::flags()) returned from \fBQwtAbstractScaleDraw::label()\fP\&. .RE .PP .SS "void QwtScaleDraw::setLabelRotation (doublerotation)" Rotate all labels\&. .PP When changing the rotation, it might be necessary to adjust the label flags too\&. Finding a useful combination is often the result of try and error\&. .PP \fBParameters:\fP .RS 4 \fIrotation\fP Angle in degrees\&. When changing the label rotation, the label flags often needs to be adjusted too\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelAlignment()\fP, \fBlabelRotation()\fP, \fBlabelAlignment()\fP\&. .RE .PP .SS "void QwtScaleDraw::setLength (intlength)" Set the length of the backbone\&. .PP The length doesn't include the space needed for overlapping labels\&. .PP \fBSee also:\fP .RS 4 \fBmove()\fP, \fBminLabelDist()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtPickerDragRectMachine.30000644000175000017500000000171012052741141021027 0ustar gudjongudjon.TH "QwtPickerDragRectMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerDragRectMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPickerMachine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A state machine for rectangle selections\&. Pressing QwtEventPattern::MouseSelect1 selects the first point, releasing it the second point\&. Pressing QwtEventPattern::KeySelect1 also selects the first point, a second press selects the second point and terminates the selection\&. .PP \fBSee also:\fP .RS 4 \fBQwtEventPattern::MousePatternCode\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtPanner.30000644000175000017500000001575612052741140016152 0ustar gudjongudjon.TH "QwtPanner" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPanner \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPlotPanner\fP\&. .SS "Signals" .in +1c .ti -1c .RI "void \fBmoved\fP (int dx, int dy)" .br .ti -1c .RI "void \fBpanned\fP (int dx, int dy)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPanner\fP (QWidget *parent)" .br .ti -1c .RI "virtual \fB~QwtPanner\fP ()" .br .ti -1c .RI "const QCursor \fBcursor\fP () const " .br .ti -1c .RI "virtual bool \fBeventFilter\fP (QObject *, QEvent *)" .br .ti -1c .RI "void \fBgetAbortKey\fP (int &key, int &state) const " .br .ti -1c .RI "void \fBgetMouseButton\fP (int &button, int &buttonState) const " .br .ti -1c .RI "bool \fBisEnabled\fP () const " .br .ti -1c .RI "bool \fBisOrientationEnabled\fP (Qt::Orientation) const " .br .ti -1c .RI "Qt::Orientations \fBorientations\fP () const " .br .ti -1c .RI "void \fBsetAbortKey\fP (int key, int state=Qt::NoButton)" .br .ti -1c .RI "void \fBsetCursor\fP (const QCursor &)" .br .ti -1c .RI "void \fBsetEnabled\fP (bool)" .br .ti -1c .RI "void \fBsetMouseButton\fP (int button, int buttonState=Qt::NoButton)" .br .ti -1c .RI "void \fBsetOrientations\fP (Qt::Orientations)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *)" .br .ti -1c .RI "virtual void \fBwidgetKeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetKeyReleaseEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseMoveEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMousePressEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseReleaseEvent\fP (QMouseEvent *)" .br .in -1c .SH "Detailed Description" .PP \fBQwtPanner\fP provides panning of a widget\&. \fBQwtPanner\fP grabs the contents of a widget, that can be dragged in all directions\&. The offset between the start and the end position is emitted by the panned signal\&. .PP \fBQwtPanner\fP grabs the content of the widget into a pixmap and moves the pixmap around, without initiating any repaint events for the widget\&. Areas, that are not part of content are not painted while panning in in process\&. This makes panning fast enough for widgets, where repaints are too slow for mouse movements\&. .PP For widgets, where repaints are very fast it might be better to implement panning manually by mapping mouse events into paint events\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtPanner::QwtPanner (QWidget *parent)" Creates an panner that is enabled for the left mouse button\&. .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget to be panned .RE .PP .SH "Member Function Documentation" .PP .SS "const QCursor QwtPanner::cursor () const" \fBReturns:\fP .RS 4 Cursor that is active while panning .RE .PP \fBSee also:\fP .RS 4 \fBsetCursor()\fP .RE .PP .SS "bool QwtPanner::eventFilter (QObject *o, QEvent *e)\fC [virtual]\fP" .PP Event filter\&. When \fBisEnabled()\fP the mouse events of the observed widget are filtered\&. .PP \fBSee also:\fP .RS 4 \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseMoveEvent()\fP .RE .PP .SS "bool QwtPanner::isEnabled () const" \fBReturns:\fP .RS 4 true when enabled, false otherwise .RE .PP \fBSee also:\fP .RS 4 \fBsetEnabled\fP, \fBeventFilter()\fP .RE .PP .SS "bool QwtPanner::isOrientationEnabled (Qt::Orientationo) const" Return true if a orientatio is enabled .PP \fBSee also:\fP .RS 4 \fBorientations()\fP, \fBsetOrientations()\fP .RE .PP .SS "void QwtPanner::moved (intdx, intdy)\fC [signal]\fP" Signal emitted, while the widget moved, but panning is not finished\&. .PP \fBParameters:\fP .RS 4 \fIdx\fP Offset in horizontal direction .br \fIdy\fP Offset in vertical direction .RE .PP .SS "void QwtPanner::paintEvent (QPaintEvent *pe)\fC [protected]\fP, \fC [virtual]\fP" .PP Paint event\&. Repaint the grabbed pixmap on its current position and fill the empty spaces by the background of the parent widget\&. .PP \fBParameters:\fP .RS 4 \fIpe\fP Paint event .RE .PP .SS "void QwtPanner::panned (intdx, intdy)\fC [signal]\fP" Signal emitted, when panning is done .PP \fBParameters:\fP .RS 4 \fIdx\fP Offset in horizontal direction .br \fIdy\fP Offset in vertical direction .RE .PP .SS "void QwtPanner::setAbortKey (intkey, intstate = \fCQt::NoButton\fP)" Change the abort key The defaults are Qt::Key_Escape and Qt::NoButton .PP \fBParameters:\fP .RS 4 \fIkey\fP Key ( See Qt::Keycode ) .br \fIstate\fP State .RE .PP .SS "void QwtPanner::setCursor (const QCursor &cursor)" Change the cursor, that is active while panning The default is the cursor of the parent widget\&. .PP \fBParameters:\fP .RS 4 \fIcursor\fP New cursor .RE .PP \fBSee also:\fP .RS 4 \fBsetCursor()\fP .RE .PP .SS "void QwtPanner::setEnabled (boolon)" .PP En/disable the panner\&. When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed\&. .PP \fBParameters:\fP .RS 4 \fIon\fP true or false .RE .PP \fBSee also:\fP .RS 4 \fBisEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "void QwtPanner::setMouseButton (intbutton, intbuttonState = \fCQt::NoButton\fP)" Change the mouse button The defaults are Qt::LeftButton and Qt::NoButton .SS "void QwtPanner::setOrientations (Qt::Orientationso)" Set the orientations, where panning is enabled The default value is in both directions: Qt::Horizontal | Qt::Vertical .PP /param o Orientation .SS "void QwtPanner::widgetKeyPressEvent (QKeyEvent *ke)\fC [protected]\fP, \fC [virtual]\fP" Handle a key press event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIke\fP Key event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPanner::widgetKeyReleaseEvent (QKeyEvent *)\fC [protected]\fP, \fC [virtual]\fP" Handle a key release event for the observed widget\&. .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPanner::widgetMouseMoveEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse move event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIme\fP Mouse event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP .RE .PP .SS "void QwtPanner::widgetMousePressEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse press event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIme\fP Mouse event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseMoveEvent()\fP, .RE .PP .SS "void QwtPanner::widgetMouseReleaseEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse release event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIme\fP Mouse event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseMoveEvent()\fP, .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtScaleEngine.30000644000175000017500000001762712052741143017106 0ustar gudjongudjon.TH "QwtScaleEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtLinearScaleEngine\fP, and \fBQwtLog10ScaleEngine\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBAttribute\fP { \fBNoAttribute\fP = 0, \fBIncludeReference\fP = 1, \fBSymmetric\fP = 2, \fBFloating\fP = 4, \fBInverted\fP = 8 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleEngine\fP ()" .br .ti -1c .RI "virtual \fB~QwtScaleEngine\fP ()" .br .ti -1c .RI "int \fBattributes\fP () const " .br .ti -1c .RI "virtual void \fBautoScale\fP (int maxNumSteps, double &x1, double &x2, double &stepSize) const =0" .br .ti -1c .RI "virtual \fBQwtScaleDiv\fP \fBdivideScale\fP (double x1, double x2, int maxMajSteps, int maxMinSteps, double stepSize=0\&.0) const =0" .br .ti -1c .RI "double \fBlowerMargin\fP () const " .br .ti -1c .RI "double \fBreference\fP () const " .br .ti -1c .RI "void \fBsetAttribute\fP (\fBAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetAttributes\fP (int)" .br .ti -1c .RI "void \fBsetMargins\fP (double lower, double upper)" .br .ti -1c .RI "void \fBsetReference\fP (double \fBreference\fP)" .br .ti -1c .RI "bool \fBtestAttribute\fP (\fBAttribute\fP) const " .br .ti -1c .RI "virtual \fBQwtScaleTransformation\fP * \fBtransformation\fP () const =0" .br .ti -1c .RI "double \fBupperMargin\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtDoubleInterval\fP \fBbuildInterval\fP (double v) const " .br .ti -1c .RI "bool \fBcontains\fP (const \fBQwtDoubleInterval\fP &, double val) const " .br .ti -1c .RI "double \fBdivideInterval\fP (double interval, int numSteps) const " .br .ti -1c .RI "QwtValueList \fBstrip\fP (const QwtValueList &, const \fBQwtDoubleInterval\fP &) const " .br .in -1c .SH "Detailed Description" .PP Base class for scale engines\&. A scale engine trys to find 'reasonable' ranges and step sizes for scales\&. .PP The layout of the scale can be varied with \fBsetAttribute()\fP\&. .PP Qwt offers implementations for logarithmic (log10) and linear scales\&. Contributions for other types of scale engines (date/time, log2 \&.\&.\&. ) are welcome\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtScaleEngine::Attribute\fP" .IP "\(bu" 2 IncludeReference .br Build a scale which includes the \fBreference()\fP value\&. .IP "\(bu" 2 Symmetric .br Build a scale which is symmetric to the \fBreference()\fP value\&. .IP "\(bu" 2 Floating .br The endpoints of the scale are supposed to be equal the outmost included values plus the specified margins (see \fBsetMargins()\fP)\&. If this attribute is \fInot\fP set, the endpoints of the scale will be integer multiples of the step size\&. .IP "\(bu" 2 Inverted .br Turn the scale upside down\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetAttribute()\fP, \fBtestAttribute()\fP, \fBreference()\fP, \fBlowerMargin()\fP, \fBupperMargin()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "int QwtScaleEngine::attributes () const" Return the scale attributes .PP \fBSee also:\fP .RS 4 \fBAttribute\fP, \fBsetAttributes()\fP, \fBtestAttribute()\fP .RE .PP .SS "virtual void QwtScaleEngine::autoScale (intmaxNumSteps, double &x1, double &x2, double &stepSize) const\fC [pure virtual]\fP" Align and divide an interval .PP \fBParameters:\fP .RS 4 \fImaxNumSteps\fP Max\&. number of steps .br \fIx1\fP First limit of the interval (In/Out) .br \fIx2\fP Second limit of the interval (In/Out) .br \fIstepSize\fP Step size (Return value) .RE .PP .PP Implemented in \fBQwtLog10ScaleEngine\fP, and \fBQwtLinearScaleEngine\fP\&. .SS "\fBQwtDoubleInterval\fP QwtScaleEngine::buildInterval (doublev) const\fC [protected]\fP" .PP Build an interval for a value\&. In case of v == 0\&.0 the interval is [-0\&.5, 0\&.5], otherwide it is [0\&.5 * v, 1\&.5 * v] .SS "bool QwtScaleEngine::contains (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [protected]\fP" Check if an interval 'contains' a value .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval .br \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleArithmetic::compareEps()\fP .RE .PP .SS "double QwtScaleEngine::divideInterval (doubleintervalSize, intnumSteps) const\fC [protected]\fP" Calculate a step size for an interval size .PP \fBParameters:\fP .RS 4 \fIintervalSize\fP Interval size .br \fInumSteps\fP Number of steps .RE .PP \fBReturns:\fP .RS 4 Step size .RE .PP .SS "virtual \fBQwtScaleDiv\fP QwtScaleEngine::divideScale (doublex1, doublex2, intmaxMajSteps, intmaxMinSteps, doublestepSize = \fC0\&.0\fP) const\fC [pure virtual]\fP" .PP Calculate a scale division\&. \fBParameters:\fP .RS 4 \fIx1\fP First interval limit .br \fIx2\fP Second interval limit .br \fImaxMajSteps\fP Maximum for the number of major steps .br \fImaxMinSteps\fP Maximum number of minor steps .br \fIstepSize\fP Step size\&. If stepSize == 0\&.0, the scaleEngine calculates one\&. .RE .PP .PP Implemented in \fBQwtLog10ScaleEngine\fP, and \fBQwtLinearScaleEngine\fP\&. .SS "double QwtScaleEngine::lowerMargin () const" \fBReturns:\fP .RS 4 the margin at the lower end of the scale The default margin is 0\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetMargins()\fP .RE .PP .SS "double QwtScaleEngine::reference () const" \fBReturns:\fP .RS 4 the reference value .RE .PP \fBSee also:\fP .RS 4 \fBsetReference()\fP, \fBsetAttribute()\fP .RE .PP .SS "void QwtScaleEngine::setAttribute (\fBAttribute\fPattribute, boolon = \fCtrue\fP)" Change a scale attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Attribute to change .br \fIon\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBAttribute\fP, \fBtestAttribute()\fP .RE .PP .SS "void QwtScaleEngine::setAttributes (intattributes)" Change the scale attribute .PP \fBParameters:\fP .RS 4 \fIattributes\fP Set scale attributes .RE .PP \fBSee also:\fP .RS 4 \fBAttribute\fP, \fBattributes()\fP .RE .PP .SS "void QwtScaleEngine::setMargins (doublelower, doubleupper)" .PP Specify margins at the scale's endpoints\&. \fBParameters:\fP .RS 4 \fIlower\fP minimum distance between the scale's lower boundary and the smallest enclosed value .br \fIupper\fP minimum distance between the scale's upper boundary and the greatest enclosed value .RE .PP Margins can be used to leave a minimum amount of space between the enclosed intervals and the boundaries of the scale\&. .PP \fBWarning:\fP .RS 4 .PD 0 .IP "\(bu" 2 \fBQwtLog10ScaleEngine\fP measures the margins in decades\&. .PP .RE .PP \fBSee also:\fP .RS 4 \fBupperMargin()\fP, \fBlowerMargin()\fP .RE .PP .SS "void QwtScaleEngine::setReference (doubler)" .PP Specify a reference point\&. \fBParameters:\fP .RS 4 \fIr\fP new reference value .RE .PP The reference point is needed if options IncludeReference or Symmetric are active\&. Its default value is 0\&.0\&. .PP \fBSee also:\fP .RS 4 \fBAttribute\fP .RE .PP .SS "QwtValueList QwtScaleEngine::strip (const QwtValueList &ticks, const \fBQwtDoubleInterval\fP &interval) const\fC [protected]\fP" Remove ticks from a list, that are not inside an interval .PP \fBParameters:\fP .RS 4 \fIticks\fP Tick list .br \fIinterval\fP Interval .RE .PP \fBReturns:\fP .RS 4 Stripped tick list .RE .PP .SS "bool QwtScaleEngine::testAttribute (\fBAttribute\fPattribute) const" Check if a attribute is set\&. .PP \fBParameters:\fP .RS 4 \fIattribute\fP Attribute to be tested .RE .PP \fBSee also:\fP .RS 4 \fBAttribute\fP, \fBsetAttribute()\fP .RE .PP .SS "virtual \fBQwtScaleTransformation\fP* QwtScaleEngine::transformation () const\fC [pure virtual]\fP" \fBReturns:\fP .RS 4 a transformation .RE .PP .PP Implemented in \fBQwtLog10ScaleEngine\fP, and \fBQwtLinearScaleEngine\fP\&. .SS "double QwtScaleEngine::upperMargin () const" \fBReturns:\fP .RS 4 the margin at the upper end of the scale The default margin is 0\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetMargins()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/scatterscreenshots.30000644000175000017500000000023212052741136020145 0ustar gudjongudjon.TH "scatterscreenshots" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME scatterscreenshots \- Scatter Plot qwt5-5.2.3/doc/man/man3/QwtAnalogClock.30000644000175000017500000001157212052741137017102 0ustar gudjongudjon.TH "QwtAnalogClock" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtAnalogClock \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDial\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBHand\fP { \fBSecondHand\fP, \fBMinuteHand\fP, \fBHourHand\fP, \fBNHands\fP }" .br .in -1c .SS "Public Slots" .in +1c .ti -1c .RI "void \fBsetCurrentTime\fP ()" .br .ti -1c .RI "void \fBsetTime\fP (const QTime &=QTime::currentTime())" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtAnalogClock\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtAnalogClock\fP ()" .br .ti -1c .RI "const \fBQwtDialNeedle\fP * \fBhand\fP (\fBHand\fP) const " .br .ti -1c .RI "\fBQwtDialNeedle\fP * \fBhand\fP (\fBHand\fP)" .br .ti -1c .RI "virtual void \fBsetHand\fP (\fBHand\fP, \fBQwtDialNeedle\fP *)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawHand\fP (QPainter *, \fBHand\fP, const QPoint &, int radius, double \fBdirection\fP, QPalette::ColorGroup) const " .br .ti -1c .RI "virtual void \fBdrawNeedle\fP (QPainter *, const QPoint &, int radius, double \fBdirection\fP, QPalette::ColorGroup) const " .br .ti -1c .RI "virtual \fBQwtText\fP \fBscaleLabel\fP (double) const " .br .in -1c .SH "Detailed Description" .PP An analog clock\&. .PP \fBExample\fP .RS 4 .PP .nf #include QwtAnalogClock *clock = new QwtAnalogClock(...); clock->scaleDraw()->setPenWidth(3); clock->setLineWidth(6); clock->setFrameShadow(QwtDial::Sunken); clock->setTime(); // update the clock every second QTimer *timer = new QTimer(clock); timer->connect(timer, SIGNAL(timeout()), clock, SLOT(setCurrentTime())); timer->start(1000); .fi .PP .RE .PP Qwt is missing a set of good looking hands\&. Contributions are very welcome\&. .PP \fBNote:\fP .RS 4 The examples/dials example shows how to use \fBQwtAnalogClock\fP\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtAnalogClock::Hand\fP" Hand type .PP \fBSee also:\fP .RS 4 \fBsetHand()\fP, \fBhand()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtAnalogClock::QwtAnalogClock (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtAnalogClock::drawHand (QPainter *painter, \fBHand\fPhd, const QPoint ¢er, intradius, doubledirection, QPalette::ColorGroupcg) const\fC [protected]\fP, \fC [virtual]\fP" Draw a clock hand .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIhd\fP Specify the type of hand .br \fIcenter\fP Center of the clock .br \fIradius\fP Maximum length for the hands .br \fIdirection\fP Direction of the hand in degrees, counter clockwise .br \fIcg\fP ColorGroup .RE .PP .SS "void QwtAnalogClock::drawNeedle (QPainter *painter, const QPoint ¢er, intradius, doubledirection, QPalette::ColorGroupcg) const\fC [protected]\fP, \fC [virtual]\fP" .PP Draw the needle\&. A clock has no single needle but three hands instead\&. drawNeedle translates \fBvalue()\fP into directions for the hands and calls \fBdrawHand()\fP\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the clock .br \fIradius\fP Maximum length for the hands .br \fIdirection\fP Dummy, not used\&. .br \fIcg\fP ColorGroup .RE .PP \fBSee also:\fP .RS 4 \fBdrawHand()\fP .RE .PP .PP Reimplemented from \fBQwtDial\fP\&. .SS "const \fBQwtDialNeedle\fP * QwtAnalogClock::hand (\fBHand\fPhd) const" \fBReturns:\fP .RS 4 Clock hand .RE .PP \fBParameters:\fP .RS 4 \fIhd\fP Specifies the type of hand .RE .PP \fBSee also:\fP .RS 4 \fBsetHand()\fP .RE .PP .SS "\fBQwtDialNeedle\fP * QwtAnalogClock::hand (\fBHand\fPhd)" \fBReturns:\fP .RS 4 Clock hand .RE .PP \fBParameters:\fP .RS 4 \fIhd\fP Specifies the type of hand .RE .PP \fBSee also:\fP .RS 4 \fBsetHand()\fP .RE .PP .SS "\fBQwtText\fP QwtAnalogClock::scaleLabel (doublevalue) const\fC [protected]\fP, \fC [virtual]\fP" Find the scale label for a given value .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 Label .RE .PP .PP Reimplemented from \fBQwtDial\fP\&. .SS "void QwtAnalogClock::setCurrentTime ()\fC [slot]\fP" .PP Set the current time\&. This is the same as \fBQwtAnalogClock::setTime()\fP, but Qt < 3\&.0 can't handle default parameters for slots\&. .SS "void QwtAnalogClock::setHand (\fBHand\fPhand, \fBQwtDialNeedle\fP *needle)\fC [virtual]\fP" Set a clockhand .PP \fBParameters:\fP .RS 4 \fIhand\fP Specifies the type of hand .br \fIneedle\fP Hand .RE .PP \fBSee also:\fP .RS 4 \fBhand()\fP .RE .PP .SS "void QwtAnalogClock::setTime (const QTime &time = \fCQTime::currentTime()\fP)\fC [slot]\fP" Set a time .PP \fBParameters:\fP .RS 4 \fItime\fP Time to display .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtCompass.30000644000175000017500000001212012052741137016320 0ustar gudjongudjon.TH "QwtCompass" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCompass \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDial\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtCompass\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtCompass\fP ()" .br .ti -1c .RI "const QMap< double, QString > & \fBlabelMap\fP () const " .br .ti -1c .RI "QMap< double, QString > & \fBlabelMap\fP ()" .br .ti -1c .RI "const \fBQwtCompassRose\fP * \fBrose\fP () const " .br .ti -1c .RI "\fBQwtCompassRose\fP * \fBrose\fP ()" .br .ti -1c .RI "void \fBsetLabelMap\fP (const QMap< double, QString > &map)" .br .ti -1c .RI "void \fBsetRose\fP (\fBQwtCompassRose\fP *\fBrose\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawRose\fP (QPainter *, const QPoint ¢er, int radius, double north, QPalette::ColorGroup) const " .br .ti -1c .RI "virtual void \fBdrawScaleContents\fP (QPainter *, const QPoint ¢er, int radius) const " .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual \fBQwtText\fP \fBscaleLabel\fP (double \fBvalue\fP) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A Compass Widget\&. \fBQwtCompass\fP is a widget to display and enter directions\&. It consists of a scale, an optional needle and rose\&. .PP .PP \fBNote:\fP .RS 4 The examples/dials example shows how to use \fBQwtCompass\fP\&. .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtCompass::QwtCompass (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP Create a compass widget with a scale, no needle and no rose\&. The default origin is 270\&.0 with no valid value\&. It accepts mouse and keyboard inputs and has no step size\&. The default mode is QwtDial::RotateNeedle\&. .SH "Member Function Documentation" .PP .SS "void QwtCompass::drawRose (QPainter *painter, const QPoint ¢er, intradius, doublenorth, QPalette::ColorGroupcg) const\fC [protected]\fP, \fC [virtual]\fP" Draw the compass rose .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the compass .br \fIradius\fP of the circle, where to paint the rose .br \fInorth\fP Direction pointing north, in degrees counter clockwise .br \fIcg\fP Color group .RE .PP .SS "void QwtCompass::drawScaleContents (QPainter *painter, const QPoint ¢er, intradius) const\fC [protected]\fP, \fC [virtual]\fP" Draw the contents of the scale .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the content circle .br \fIradius\fP Radius of the content circle .RE .PP .PP Reimplemented from \fBQwtDial\fP\&. .SS "void QwtCompass::keyPressEvent (QKeyEvent *kev)\fC [protected]\fP, \fC [virtual]\fP" Handles key events .PP Beside the keys described in \fBQwtDial::keyPressEvent\fP numbers from 1-9 (without 5) set the direction according to their position on the num pad\&. .PP \fBSee also:\fP .RS 4 \fBisReadOnly()\fP .RE .PP .PP Reimplemented from \fBQwtDial\fP\&. .SS "const QMap< double, QString > & QwtCompass::labelMap () const" \fBReturns:\fP .RS 4 map, mapping values to labels .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelMap()\fP .RE .PP .SS "QMap< double, QString > & QwtCompass::labelMap ()" \fBReturns:\fP .RS 4 map, mapping values to labels .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelMap()\fP .RE .PP .SS "const \fBQwtCompassRose\fP * QwtCompass::rose () const" \fBReturns:\fP .RS 4 rose .RE .PP \fBSee also:\fP .RS 4 \fBsetRose()\fP .RE .PP .SS "\fBQwtCompassRose\fP * QwtCompass::rose ()" \fBReturns:\fP .RS 4 rose .RE .PP \fBSee also:\fP .RS 4 \fBsetRose()\fP .RE .PP .SS "\fBQwtText\fP QwtCompass::scaleLabel (doublevalue) const\fC [protected]\fP, \fC [virtual]\fP" Map a value to a corresponding label .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value that will be mapped .RE .PP \fBReturns:\fP .RS 4 Label, or QString::null .RE .PP label() looks in a map for a corresponding label for value or return an null text\&. .PP \fBSee also:\fP .RS 4 \fBlabelMap()\fP, \fBsetLabelMap()\fP .RE .PP .PP Reimplemented from \fBQwtDial\fP\&. .SS "void QwtCompass::setLabelMap (const QMap< double, QString > &map)" .PP Set a map, mapping values to labels\&. \fBParameters:\fP .RS 4 \fImap\fP value to label map .RE .PP The values of the major ticks are found by looking into this map\&. The default map consists of the labels N, NE, E, SE, S, SW, W, NW\&. .PP \fBWarning:\fP .RS 4 The map will have no effect for values that are no major tick values\&. Major ticks can be changed by QwtScaleDraw::setScale .RE .PP \fBSee also:\fP .RS 4 \fBlabelMap()\fP, \fBscaleDraw()\fP, \fBsetScale()\fP .RE .PP .SS "void QwtCompass::setRose (\fBQwtCompassRose\fP *rose)" Set a rose for the compass .PP \fBParameters:\fP .RS 4 \fIrose\fP Compass rose .RE .PP \fBWarning:\fP .RS 4 The rose will be deleted, when a different rose is set or in ~QwtCompass .RE .PP \fBSee also:\fP .RS 4 \fBrose()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/qwtlicense.30000644000175000017500000006747412052741136016422 0ustar gudjongudjon.TH "qwtlicense" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME qwtlicense \- Qwt License, Version 1\&.0 .PP .nf Qwt License Version 1\&.0, January 1, 2003 The Qwt library and included programs are provided under the terms of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following exceptions: 1\&. Widgets that are subclassed from Qwt widgets do not constitute a derivative work\&. 2\&. Static linking of applications and widgets to the Qwt library does not constitute a derivative work and does not require the author to provide source code for the application or widget, use the shared Qwt libraries, or link their applications or widgets against a user-supplied version of Qwt\&. If you link the application or widget to a modified version of Qwt, then the changes to Qwt must be provided under the terms of the LGPL in sections 1, 2, and 4\&. 3\&. You do not have to provide a copy of the Qwt license with programs that are linked to the Qwt library, nor do you have to identify the Qwt license in your program or documentation as required by section 6 of the LGPL\&. However, programs must still identify their use of Qwt\&. The following example statement can be included in user documentation to satisfy this requirement: [program/widget] is based in part on the work of the Qwt project (http://qwt\&.sf\&.net)\&. ---------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 2\&.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc\&. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed\&. [This is the first released version of the Lesser GPL\&. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2\&.1\&.] Preamble The licenses for most software are designed to take away your freedom to share and change it\&. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users\&. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it\&. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below\&. When we speak of free software, we are referring to freedom of use, not price\&. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things\&. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights\&. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it\&. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you\&. You must make sure that they, too, receive or can get the source code\&. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it\&. And you must show them these terms so they know their rights\&. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library\&. To protect each distributor, we want to make it very clear that there is no warranty for the free library\&. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others\&. Finally, software patents pose a constant threat to the existence of any free program\&. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder\&. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license\&. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License\&. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License\&. We use this license for certain libraries in order to permit linking those libraries into non-free programs\&. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library\&. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom\&. The Lesser General Public License permits more lax criteria for linking other code with the library\&. We call this license the 'Lesser' General Public License because it does Less to protect the user's freedom than the ordinary General Public License\&. It also provides other free software developers Less of an advantage over competing non-free programs\&. These disadvantages are the reason we use the ordinary General Public License for many libraries\&. However, the Lesser license provides advantages in certain special circumstances\&. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard\&. To achieve this, non-free programs must be allowed to use the library\&. A more frequent case is that a free library does the same job as widely used non-free libraries\&. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License\&. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software\&. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system\&. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library\&. The precise terms and conditions for copying, distribution and modification follow\&. Pay close attention to the difference between a 'work based on the library' and a 'work that uses the library'\&. The former contains code derived from the library, whereas the latter must be combined with the library in order to run\&. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0\&. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called 'this License')\&. Each licensee is addressed as 'you'\&. A 'library' means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables\&. The 'Library', below, refers to any such software library or work which has been distributed under these terms\&. A 'work based on the Library' means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language\&. (Hereinafter, translation is included without limitation in the term 'modification'\&.) 'Source code' for a work means the preferred form of the work for making modifications to it\&. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library\&. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope\&. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it)\&. Whether that is true depends on what the Library does and what the program that uses the Library does\&. 1\&. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library\&. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee\&. 2\&. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library\&. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change\&. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License\&. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful\&. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application\&. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots\&.) These requirements apply to the modified work as a whole\&. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works\&. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it\&. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library\&. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License\&. 3\&. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library\&. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License\&. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish\&.) Do not make any other change in these notices\&. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy\&. This option is useful when you wish to copy part of the code of the Library into a program that is not a library\&. 4\&. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange\&. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code\&. 5\&. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a 'work that uses the Library'\&. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License\&. However, linking a 'work that uses the Library' with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a 'work that uses the library'\&. The executable is therefore covered by this License\&. Section 6 states terms for distribution of such executables\&. When a 'work that uses the Library' uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not\&. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library\&. The threshold for this to be true is not precisely defined by law\&. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work\&. (Executables containing this object code plus portions of the Library will still fall under Section 6\&.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6\&. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself\&. 6\&. As an exception to the Sections above, you may also combine or link a 'work that uses the Library' with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications\&. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License\&. You must supply a copy of this License\&. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License\&. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable 'work that uses the Library', as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library\&. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions\&.) b) Use a suitable shared library mechanism for linking with the Library\&. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with\&. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution\&. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place\&. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy\&. For an executable, the required form of the 'work that uses the Library' must include any data and utility programs needed for reproducing the executable from it\&. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable\&. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system\&. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute\&. 7\&. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities\&. This must be distributed under the terms of the Sections above\&. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work\&. 8\&. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License\&. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License\&. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance\&. 9\&. You are not required to accept this License, since you have not signed it\&. However, nothing else grants you permission to modify or distribute the Library or its derivative works\&. These actions are prohibited by law if you do not accept this License\&. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it\&. 10\&. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions\&. You may not impose any further restrictions on the recipients' exercise of the rights granted herein\&. You are not responsible for enforcing compliance by third parties with this License\&. 11\&. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License\&. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all\&. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library\&. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances\&. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices\&. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice\&. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License\&. 12\&. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded\&. In such case, this License incorporates the limitation as if written in the body of this License\&. 13\&. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time\&. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns\&. Each version is given a distinguishing version number\&. If the Library specifies a version number of this License which applies to it and 'any later version', you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation\&. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation\&. 14\&. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission\&. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this\&. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally\&. NO WARRANTY 15\&. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW\&. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\&. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU\&. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION\&. 16\&. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES\&. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change\&. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License)\&. To apply these terms, attach the following notices to the library\&. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the 'copyright' line and a pointer to where the full notice is found\&. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2\&.1 of the License, or (at your option) any later version\&. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&. See the GNU Lesser General Public License for more details\&. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc\&., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail\&. You should also get your employer (if you work as a programmer) or your school, if any, to sign a 'copyright disclaimer' for the library, if necessary\&. Here is a sample; alter the names: Yoyodyne, Inc\&., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker\&. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! .fi .PP qwt5-5.2.3/doc/man/man3/QwtMetricsMap.30000644000175000017500000000703512052741140016762 0ustar gudjongudjon.TH "QwtMetricsMap" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtMetricsMap \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "QPoint \fBdeviceToLayout\fP (const QPoint &, const QPainter *=NULL) const " .br .ti -1c .RI "QSize \fBdeviceToLayout\fP (const QSize &) const " .br .ti -1c .RI "QRect \fBdeviceToLayout\fP (const QRect &, const QPainter *=NULL) const " .br .ti -1c .RI "QwtPolygon \fBdeviceToLayout\fP (const QwtPolygon &, const QPainter *=NULL) const " .br .ti -1c .RI "int \fBdeviceToLayoutX\fP (int x) const " .br .ti -1c .RI "int \fBdeviceToLayoutY\fP (int y) const " .br .ti -1c .RI "bool \fBisIdentity\fP () const " .br .ti -1c .RI "QPoint \fBlayoutToDevice\fP (const QPoint &, const QPainter *=NULL) const " .br .ti -1c .RI "QSize \fBlayoutToDevice\fP (const QSize &) const " .br .ti -1c .RI "QRect \fBlayoutToDevice\fP (const QRect &, const QPainter *=NULL) const " .br .ti -1c .RI "QwtPolygon \fBlayoutToDevice\fP (const QwtPolygon &, const QPainter *=NULL) const " .br .ti -1c .RI "int \fBlayoutToDeviceX\fP (int x) const " .br .ti -1c .RI "int \fBlayoutToDeviceY\fP (int y) const " .br .ti -1c .RI "QPoint \fBlayoutToScreen\fP (const QPoint &point) const " .br .ti -1c .RI "QSize \fBlayoutToScreen\fP (const QSize &) const " .br .ti -1c .RI "QRect \fBlayoutToScreen\fP (const QRect &) const " .br .ti -1c .RI "int \fBlayoutToScreenX\fP (int x) const " .br .ti -1c .RI "int \fBlayoutToScreenY\fP (int y) const " .br .ti -1c .RI "QPoint \fBscreenToLayout\fP (const QPoint &) const " .br .ti -1c .RI "QSize \fBscreenToLayout\fP (const QSize &) const " .br .ti -1c .RI "QRect \fBscreenToLayout\fP (const QRect &) const " .br .ti -1c .RI "int \fBscreenToLayoutX\fP (int x) const " .br .ti -1c .RI "int \fBscreenToLayoutY\fP (int y) const " .br .ti -1c .RI "void \fBsetMetrics\fP (const QPaintDevice *layoutMetrics, const QPaintDevice *deviceMetrics)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static QwtPolygon \fBtranslate\fP (const QMatrix &, const QwtPolygon &)" .br .ti -1c .RI "static QRect \fBtranslate\fP (const QMatrix &, const QRect &)" .br .in -1c .SH "Detailed Description" .PP A Map to translate between layout, screen and paint device metrics\&. Qt3 supports painting in integer coordinates only\&. Therefore it is not possible to scale the layout in screen coordinates to layouts in higher resolutions ( f\&.e printing ) without losing the higher precision\&. \fBQwtMetricsMap\fP is used to incorporate the various widget attributes ( always in screen resolution ) into the layout/printing code of \fBQwtPlot\fP\&. .PP Qt4 is able to paint floating point based coordinates, what makes it possible always to render in screen coordinates ( with a common scale factor )\&. \fBQwtMetricsMap\fP will be obsolete as soon as Qt3 support has been dropped ( Qwt 6\&.x )\&. .SH "Member Function Documentation" .PP .SS "QwtPolygon QwtMetricsMap::translate (const QMatrix &m, const QwtPolygon &pa)\fC [static]\fP" Wrapper for QMatrix::map\&. .PP \fBParameters:\fP .RS 4 \fIm\fP Matrix .br \fIpa\fP Polygon to translate .RE .PP \fBReturns:\fP .RS 4 Translated polygon .RE .PP .SS "QRect QwtMetricsMap::translate (const QMatrix &m, const QRect &rect)\fC [static]\fP" Wrapper for QMatrix::mapRect\&. .PP \fBParameters:\fP .RS 4 \fIm\fP Matrix .br \fIrect\fP Rectangle to translate .RE .PP \fBReturns:\fP .RS 4 Translated rectangle .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. qwt5-5.2.3/doc/man/man3/QwtMathMLTextEngine.30000644000175000017500000000737312052741140020040 0ustar gudjongudjon.TH "QwtMathMLTextEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtMathMLTextEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtTextEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtMathMLTextEngine\fP ()" .br .ti -1c .RI "virtual \fB~QwtMathMLTextEngine\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QRect &rect, int flags, const QString &text) const " .br .ti -1c .RI "virtual int \fBheightForWidth\fP (const QFont &font, int flags, const QString &text, int width) const " .br .ti -1c .RI "virtual bool \fBmightRender\fP (const QString &) const " .br .ti -1c .RI "virtual void \fBtextMargins\fP (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const " .br .ti -1c .RI "virtual QSize \fBtextSize\fP (const QFont &font, int flags, const QString &text) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Text Engine for the MathML renderer of the Qt solutions package\&. The Qt Solution package includes a renderer for MathML http://www.trolltech.com/products/qt/addon/solutions/catalog/4/Widgets/qtmmlwidget that is available for owners of a commercial Qt license\&. You need a version >= 2\&.1, that is only available for Qt4\&. .PP To enable MathML support the following code needs to be added to the application: .PP .nf #include QwtText::setTextEngine(QwtText::MathMLText, new QwtMathMLTextEngine()); .fi .PP .PP \fBSee also:\fP .RS 4 \fBQwtTextEngine\fP, \fBQwtText::setTextEngine\fP .RE .PP \fBWarning:\fP .RS 4 Unfortunately the MathML renderer doesn't support rotating of texts\&. .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtMathMLTextEngine::draw (QPainter *painter, const QRect &rect, intflags, const QString &text) const\fC [virtual]\fP" Draw the text in a clipping rectangle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Clipping rectangle .br \fIflags\fP Bitwise OR of the flags like in for QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "int QwtMathMLTextEngine::heightForWidth (const QFont &font, intflags, const QString &text, intwidth) const\fC [virtual]\fP" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .br \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "bool QwtMathMLTextEngine::mightRender (const QString &text) const\fC [virtual]\fP" Test if a string can be rendered by \fBQwtMathMLTextEngine\fP .PP \fBParameters:\fP .RS 4 \fItext\fP Text to be tested .RE .PP \fBReturns:\fP .RS 4 true, if text begins with ''\&. .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "void QwtMathMLTextEngine::textMargins (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const\fC [virtual]\fP" Return margins around the texts .PP \fBParameters:\fP .RS 4 \fIleft\fP Return 0 .br \fIright\fP Return 0 .br \fItop\fP Return 0 .br \fIbottom\fP Return 0 .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "QSize QwtMathMLTextEngine::textSize (const QFont &font, intflags, const QString &text) const\fC [virtual]\fP" Returns the size, that is needed to render text .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP \fBReturns:\fP .RS 4 Caluclated size .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtSymbol.3�����������������������������������������������������������������0000644�0001750�0001750�00000012132�12052741143�016160� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtSymbol" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtSymbol \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBStyle\fP { \fBNoSymbol\fP = -1, \fBEllipse\fP, \fBRect\fP, \fBDiamond\fP, \fBTriangle\fP, \fBDTriangle\fP, \fBUTriangle\fP, \fBLTriangle\fP, \fBRTriangle\fP, \fBCross\fP, \fBXCross\fP, \fBHLine\fP, \fBVLine\fP, \fBStar1\fP, \fBStar2\fP, \fBHexagon\fP, \fBStyleCnt\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtSymbol\fP ()" .br .ti -1c .RI "\fBQwtSymbol\fP (\fBStyle\fP st, const QBrush &bd, const QPen &pn, const QSize &s)" .br .ti -1c .RI "virtual \fB~QwtSymbol\fP ()" .br .ti -1c .RI "const QBrush & \fBbrush\fP () const " .br .ti -1c .RI "virtual \fBQwtSymbol\fP * \fBclone\fP () const " .br .ti -1c .RI "void \fBdraw\fP (QPainter *p, const QPoint &pt) const " .br .ti -1c .RI "void \fBdraw\fP (QPainter *p, int x, int y) const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const QRect &r) const " .br .ti -1c .RI "bool \fBoperator!=\fP (const \fBQwtSymbol\fP &) const " .br .ti -1c .RI "virtual bool \fBoperator==\fP (const \fBQwtSymbol\fP &) const " .br .ti -1c .RI "const QPen & \fBpen\fP () const " .br .ti -1c .RI "void \fBsetBrush\fP (const QBrush &b)" .br .ti -1c .RI "void \fBsetPen\fP (const QPen &p)" .br .ti -1c .RI "void \fBsetSize\fP (const QSize &s)" .br .ti -1c .RI "void \fBsetSize\fP (int a, int b=-1)" .br .ti -1c .RI "void \fBsetStyle\fP (\fBStyle\fP s)" .br .ti -1c .RI "const QSize & \fBsize\fP () const " .br .ti -1c .RI "\fBStyle\fP \fBstyle\fP () const " .br .in -1c .SH "Detailed Description" .PP A class for drawing symbols\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtSymbol::Style\fP" Style .PP \fBSee also:\fP .RS 4 \fBsetStyle()\fP, \fBstyle()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtSymbol::QwtSymbol ()" Default Constructor .PP The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'\&. .SS "QwtSymbol::QwtSymbol (\fBQwtSymbol::Style\fPstyle, const QBrush &brush, const QPen &pen, const QSize &size)" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIstyle\fP Symbol Style .br \fIbrush\fP brush to fill the interior .br \fIpen\fP outline pen .br \fIsize\fP size .RE .PP .SH "Member Function Documentation" .PP .SS "\fBQwtSymbol\fP * QwtSymbol::clone () const\fC [virtual]\fP" Allocate and return a symbol with the same attributes .PP \fBReturns:\fP .RS 4 Cloned symbol .RE .PP .SS "void QwtSymbol::draw (QPainter *painter, const QPoint &pos) const" .PP Draw the symbol at a specified point\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpos\fP Center of the symbol .RE .PP .SS "void QwtSymbol::draw (QPainter *painter, const QRect &r) const\fC [virtual]\fP" .PP Draw the symbol into a bounding rectangle\&. This function assumes that the painter has been initialized with brush and pen before\&. This allows a much more performant implementation when painting many symbols with the same brush and pen like in curves\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIr\fP Bounding rectangle .RE .PP .SS "void QwtSymbol::setBrush (const QBrush &brush)" .PP Assign a brush\&. The brush is used to draw the interior of the symbol\&. .PP \fBParameters:\fP .RS 4 \fIbrush\fP Brush .RE .PP .SS "void QwtSymbol::setPen (const QPen &pen)" Assign a pen .PP The pen is used to draw the symbol's outline\&. .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen .RE .PP \fBSee also:\fP .RS 4 \fBpen()\fP, \fBsetBrush()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtSymbol::setSize (const QSize &size)" Set the symbol's size .PP \fBParameters:\fP .RS 4 \fIsize\fP Size .RE .PP .SS "void QwtSymbol::setSize (intwidth, intheight = \fC-1\fP)" .PP Specify the symbol's size\&. If the 'h' parameter is left out or less than 0, and the 'w' parameter is greater than or equal to 0, the symbol size will be set to (w,w)\&. .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width .br \fIheight\fP Height (defaults to -1) .RE .PP .SS "void QwtSymbol::setStyle (\fBQwtSymbol::Style\fPs)" .PP Specify the symbol style\&. The following styles are defined: .IP "\fBNoSymbol\fP" 1c No Style\&. The symbol cannot be drawn\&. .IP "\fBEllipse\fP" 1c Ellipse or circle .IP "\fBRect\fP" 1c Rectangle .IP "\fBDiamond\fP" 1c Diamond .IP "\fBTriangle\fP" 1c Triangle pointing upwards .IP "\fBDTriangle\fP" 1c Triangle pointing downwards .IP "\fBUTriangle\fP" 1c Triangle pointing upwards .IP "\fBLTriangle\fP" 1c Triangle pointing left .IP "\fBRTriangle\fP" 1c Triangle pointing right .IP "\fBCross\fP" 1c Cross (+) .IP "\fBXCross\fP" 1c Diagonal cross (X) .IP "\fBHLine\fP" 1c Horizontal line .IP "\fBVLine\fP" 1c Vertical line .IP "\fBStar1\fP" 1c X combined with + .IP "\fBStar2\fP" 1c Six-pointed star .IP "\fBHexagon\fP" 1c Hexagon .PP .PP \fBParameters:\fP .RS 4 \fIs\fP style .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtWheel.3������������������������������������������������������������������0000644�0001750�0001750�00000015432�12052741143�015765� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtWheel" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtWheel \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractSlider\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtWheel\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtWheel\fP ()" .br .ti -1c .RI "int \fBinternalBorder\fP () const " .br .ti -1c .RI "double \fBmass\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "void \fBsetInternalBorder\fP (int width)" .br .ti -1c .RI "void \fBsetMass\fP (double val)" .br .ti -1c .RI "virtual void \fBsetOrientation\fP (Qt::Orientation)" .br .ti -1c .RI "void \fBsetTickCnt\fP (int cnt)" .br .ti -1c .RI "void \fBsetTotalAngle\fP (double angle)" .br .ti -1c .RI "void \fBsetViewAngle\fP (double angle)" .br .ti -1c .RI "void \fBsetWheelWidth\fP (int w)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "int \fBtickCnt\fP () const " .br .ti -1c .RI "double \fBtotalAngle\fP () const " .br .ti -1c .RI "double \fBviewAngle\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdraw\fP (QPainter *, const QRect &)" .br .ti -1c .RI "void \fBdrawWheel\fP (QPainter *, const QRect &)" .br .ti -1c .RI "void \fBdrawWheelBackground\fP (QPainter *, const QRect &)" .br .ti -1c .RI "virtual void \fBgetScrollMode\fP (const QPoint &, int &scrollMode, int &direction)" .br .ti -1c .RI "virtual double \fBgetValue\fP (const QPoint &)" .br .ti -1c .RI "void \fBlayoutWheel\fP (bool update=true)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .ti -1c .RI "virtual void \fBpaletteChange\fP (const QPalette &)" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .ti -1c .RI "void \fBsetColorArray\fP ()" .br .ti -1c .RI "virtual void \fBvalueChange\fP ()" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The Wheel Widget\&. The wheel widget can be used to change values over a very large range in very small steps\&. Using the setMass member, it can be configured as a flywheel\&. .PP \fBSee also:\fP .RS 4 The radio example\&. .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtWheel::draw (QPainter *painter, const QRect &)\fC [protected]\fP" Redraw panel and wheel .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP .SS "void QwtWheel::drawWheel (QPainter *painter, const QRect &r)\fC [protected]\fP" .PP Redraw the wheel\&. \fBParameters:\fP .RS 4 \fIpainter\fP painter .br \fIr\fP contents rectangle .RE .PP .SS "void QwtWheel::drawWheelBackground (QPainter *painter, const QRect &r)\fC [protected]\fP" Draw the Wheel's background gradient .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIr\fP Bounding rectangle .RE .PP .SS "void QwtWheel::getScrollMode (const QPoint &p, int &scrollMode, int &direction)\fC [protected]\fP, \fC [virtual]\fP" .PP Determine the scrolling mode and direction corresponding to a specified point\&. \fBParameters:\fP .RS 4 \fIp\fP point .br \fIscrollMode\fP scrolling mode .br \fIdirection\fP direction .RE .PP .PP Implements \fBQwtAbstractSlider\fP\&. .SS "int QwtWheel::internalBorder () const" \fBReturns:\fP .RS 4 Internal border width of the wheel\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetInternalBorder()\fP .RE .PP .SS "double QwtWheel::mass () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 mass .RE .PP .PP Reimplemented from \fBQwtAbstractSlider\fP\&. .SS "QSize QwtWheel::minimumSizeHint () const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBWarning:\fP .RS 4 The return value is based on the wheel width\&. .RE .PP .SS "void QwtWheel::setInternalBorder (intw)" .PP Set the internal border width of the wheel\&. The internal border must not be smaller than 1 and is limited in dependence on the wheel's size\&. Values outside the allowed range will be clipped\&. .PP The internal border defaults to 2\&. .PP \fBParameters:\fP .RS 4 \fIw\fP border width .RE .PP \fBSee also:\fP .RS 4 \fBinternalBorder()\fP .RE .PP .SS "void QwtWheel::setMass (doubleval)\fC [virtual]\fP" .PP Set the mass of the wheel\&. Assigning a mass turns the wheel into a flywheel\&. .PP \fBParameters:\fP .RS 4 \fIval\fP the wheel's mass .RE .PP .PP Reimplemented from \fBQwtAbstractSlider\fP\&. .SS "void QwtWheel::setOrientation (Qt::Orientationo)\fC [virtual]\fP" .PP Set the wheel's orientation\&. \fBParameters:\fP .RS 4 \fIo\fP Orientation\&. Allowed values are Qt::Horizontal and Qt::Vertical\&. Defaults to Qt::Horizontal\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtAbstractSlider::orientation()\fP .RE .PP .PP Reimplemented from \fBQwtAbstractSlider\fP\&. .SS "void QwtWheel::setTickCnt (intcnt)" .PP Adjust the number of grooves in the wheel's surface\&. The number of grooves is limited to 6 <= cnt <= 50\&. Values outside this range will be clipped\&. The default value is 10\&. .PP \fBParameters:\fP .RS 4 \fIcnt\fP Number of grooves per 360 degrees .RE .PP \fBSee also:\fP .RS 4 \fBtickCnt()\fP .RE .PP .SS "void QwtWheel::setTotalAngle (doubleangle)" .PP Set the total angle which the wheel can be turned\&. One full turn of the wheel corresponds to an angle of 360 degrees\&. A total angle of n*360 degrees means that the wheel has to be turned n times around its axis to get from the minimum value to the maximum value\&. .PP The default setting of the total angle is 360 degrees\&. .PP \fBParameters:\fP .RS 4 \fIangle\fP total angle in degrees .RE .PP \fBSee also:\fP .RS 4 \fBtotalAngle()\fP .RE .PP .SS "void QwtWheel::setViewAngle (doubleangle)" .PP Specify the visible portion of the wheel\&. You may use this function for fine-tuning the appearance of the wheel\&. The default value is 175 degrees\&. The value is limited from 10 to 175 degrees\&. .PP \fBParameters:\fP .RS 4 \fIangle\fP Visible angle in degrees .RE .PP \fBSee also:\fP .RS 4 \fBviewAngle()\fP, \fBsetTotalAngle()\fP .RE .PP .SS "void QwtWheel::setWheelWidth (intw)" .PP Set the width of the wheel\&. Corresponds to the wheel height for horizontal orientation, and the wheel width for vertical orientation\&. .PP \fBParameters:\fP .RS 4 \fIw\fP the wheel's width .RE .PP .SS "QSize QwtWheel::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 a size hint .RE .PP .SS "int QwtWheel::tickCnt () const" \fBReturns:\fP .RS 4 Number of grooves in the wheel's surface\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetTickCnt()\fP .RE .PP .SS "double QwtWheel::totalAngle () const" \fBReturns:\fP .RS 4 Total angle which the wheel can be turned\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetTotalAngle()\fP .RE .PP .SS "double QwtWheel::viewAngle () const" \fBReturns:\fP .RS 4 Visible portion of the wheel .RE .PP \fBSee also:\fP .RS 4 \fBsetViewAngle()\fP, \fBtotalAngle()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotSvgItem.3������������������������������������������������������������0000644�0001750�0001750�00000007371�12052741142�017140� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotSvgItem" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotSvgItem \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotSvgItem\fP (const QString &\fBtitle\fP=QString::null)" .br .ti -1c .RI "\fBQwtPlotSvgItem\fP (const \fBQwtText\fP &\fBtitle\fP)" .br .ti -1c .RI "virtual \fB~QwtPlotSvgItem\fP ()" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const " .br .ti -1c .RI "bool \fBloadData\fP (const QwtDoubleRect &, const QByteArray &)" .br .ti -1c .RI "bool \fBloadFile\fP (const QwtDoubleRect &, const QString &fileName)" .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBrender\fP (QPainter *painter, const QwtDoubleRect &\fBviewBox\fP, const QRect &rect) const " .br .ti -1c .RI "QwtDoubleRect \fBviewBox\fP (const QwtDoubleRect &area) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A plot item, which displays data in Scalable Vector Graphics (SVG) format\&. SVG images are often used to display maps .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotSvgItem::QwtPlotSvgItem (const QString &title = \fCQString::null\fP)\fC [explicit]\fP" .PP Constructor\&. Sets the following item attributes: .IP "\(bu" 2 QwtPlotItem::AutoScale: true .IP "\(bu" 2 QwtPlotItem::Legend: false .PP .PP \fBParameters:\fP .RS 4 \fItitle\fP Title .RE .PP .SS "QwtPlotSvgItem::QwtPlotSvgItem (const \fBQwtText\fP &title)\fC [explicit]\fP" .PP Constructor\&. Sets the following item attributes: .IP "\(bu" 2 QwtPlotItem::AutoScale: true .IP "\(bu" 2 QwtPlotItem::Legend: false .PP .PP \fBParameters:\fP .RS 4 \fItitle\fP Title .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlotSvgItem::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" Draw the SVG item .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP X-Scale Map .br \fIyMap\fP Y-Scale Map .br \fIcanvasRect\fP Contents rect of the plot canvas .RE .PP .PP Implements \fBQwtPlotItem\fP\&. .SS "bool QwtPlotSvgItem::loadData (const QwtDoubleRect &rect, const QByteArray &data)" Load SVG data .PP \fBParameters:\fP .RS 4 \fIrect\fP Bounding rectangle .br \fIdata\fP in SVG format .RE .PP \fBReturns:\fP .RS 4 true, if the SVG data could be loaded .RE .PP .SS "bool QwtPlotSvgItem::loadFile (const QwtDoubleRect &rect, const QString &fileName)" Load a SVG file .PP \fBParameters:\fP .RS 4 \fIrect\fP Bounding rectangle .br \fIfileName\fP SVG file name .RE .PP \fBReturns:\fP .RS 4 true, if the SVG file could be loaded .RE .PP .SS "void QwtPlotSvgItem::render (QPainter *painter, const QwtDoubleRect &viewBox, const QRect &rect) const\fC [protected]\fP" Render the SVG data .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIviewBox\fP View Box, see QSvgRenderer::viewBox .br \fIrect\fP Traget rectangle on the paint device .RE .PP .SS "int QwtPlotSvgItem::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotSVG .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "QwtDoubleRect QwtPlotSvgItem::viewBox (const QwtDoubleRect &rect) const\fC [protected]\fP" Calculate the viewBox from an rect and \fBboundingRect()\fP\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Rectangle in scale coordinates .RE .PP \fBReturns:\fP .RS 4 viewBox View Box, see QSvgRenderer::viewBox .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtScaleWidget.3������������������������������������������������������������0000644�0001750�0001750�00000025740�12052741143�017117� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtScaleWidget" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleWidget \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Signals" .in +1c .ti -1c .RI "void \fBscaleDivChanged\fP ()" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleWidget\fP (QWidget *parent=NULL)" .br .ti -1c .RI "\fBQwtScaleWidget\fP (\fBQwtScaleDraw::Alignment\fP, QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtScaleWidget\fP ()" .br .ti -1c .RI "\fBQwtScaleDraw::Alignment\fP \fBalignment\fP () const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBcolorBarInterval\fP () const " .br .ti -1c .RI "QRect \fBcolorBarRect\fP (const QRect &) const " .br .ti -1c .RI "int \fBcolorBarWidth\fP () const " .br .ti -1c .RI "const \fBQwtColorMap\fP & \fBcolorMap\fP () const " .br .ti -1c .RI "int \fBdimForLength\fP (int length, const QFont &scaleFont) const " .br .ti -1c .RI "void \fBdrawColorBar\fP (QPainter *painter, const QRect &rect) const " .br .ti -1c .RI "void \fBdrawTitle\fP (QPainter *painter, \fBQwtScaleDraw::Alignment\fP, const QRect &rect) const " .br .ti -1c .RI "int \fBendBorderDist\fP () const " .br .ti -1c .RI "void \fBgetBorderDistHint\fP (int &start, int &end) const " .br .ti -1c .RI "void \fBgetMinBorderDist\fP (int &start, int &end) const " .br .ti -1c .RI "bool \fBisColorBarEnabled\fP () const " .br .ti -1c .RI "int \fBmargin\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "int \fBpenWidth\fP () const " .br .ti -1c .RI "const \fBQwtScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "\fBQwtScaleDraw\fP * \fBscaleDraw\fP ()" .br .ti -1c .RI "void \fBsetAlignment\fP (\fBQwtScaleDraw::Alignment\fP)" .br .ti -1c .RI "void \fBsetBorderDist\fP (int start, int end)" .br .ti -1c .RI "void \fBsetColorBarEnabled\fP (bool)" .br .ti -1c .RI "void \fBsetColorBarWidth\fP (int)" .br .ti -1c .RI "void \fBsetColorMap\fP (const \fBQwtDoubleInterval\fP &, const \fBQwtColorMap\fP &)" .br .ti -1c .RI "void \fBsetLabelAlignment\fP (Qt::Alignment)" .br .ti -1c .RI "void \fBsetLabelRotation\fP (double rotation)" .br .ti -1c .RI "void \fBsetMargin\fP (int)" .br .ti -1c .RI "void \fBsetMinBorderDist\fP (int start, int end)" .br .ti -1c .RI "void \fBsetPenWidth\fP (int)" .br .ti -1c .RI "void \fBsetScaleDiv\fP (\fBQwtScaleTransformation\fP *, const \fBQwtScaleDiv\fP &sd)" .br .ti -1c .RI "void \fBsetScaleDraw\fP (\fBQwtScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetSpacing\fP (int td)" .br .ti -1c .RI "void \fBsetTitle\fP (const QString &\fBtitle\fP)" .br .ti -1c .RI "void \fBsetTitle\fP (const \fBQwtText\fP &\fBtitle\fP)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "int \fBspacing\fP () const " .br .ti -1c .RI "int \fBstartBorderDist\fP () const " .br .ti -1c .RI "\fBQwtText\fP \fBtitle\fP () const " .br .ti -1c .RI "int \fBtitleHeightForWidth\fP (int width) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdraw\fP (QPainter *p) const " .br .ti -1c .RI "void \fBlayoutScale\fP (bool update=true)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .ti -1c .RI "void \fBscaleChange\fP ()" .br .in -1c .SH "Detailed Description" .PP A Widget which contains a scale\&. This Widget can be used to decorate composite widgets with a scale\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtScaleWidget::QwtScaleWidget (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Create a scale with the position QwtScaleWidget::Left\&. \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SS "QwtScaleWidget::QwtScaleWidget (\fBQwtScaleDraw::Alignment\fPalign, QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIalign\fP Alignment\&. .br \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "\fBQwtScaleDraw::Alignment\fP QwtScaleWidget::alignment () const" \fBReturns:\fP .RS 4 position .RE .PP \fBSee also:\fP .RS 4 setPosition() .RE .PP .SS "int QwtScaleWidget::dimForLength (intlength, const QFont &scaleFont) const" .PP Find the minimum dimension for a given length\&. dim is the height, length the width seen in direction of the title\&. \fBParameters:\fP .RS 4 \fIlength\fP width for horizontal, height for vertical scales .br \fIscaleFont\fP Font of the scale .RE .PP \fBReturns:\fP .RS 4 height for horizontal, width for vertical scales .RE .PP .SS "void QwtScaleWidget::drawTitle (QPainter *painter, \fBQwtScaleDraw::Alignment\fPalign, const QRect &rect) const" Rotate and paint a title according to its position into a given rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIalign\fP Alignment .br \fIrect\fP Bounding rectangle .RE .PP .SS "int QwtScaleWidget::endBorderDist () const" \fBReturns:\fP .RS 4 end border distance .RE .PP \fBSee also:\fP .RS 4 \fBsetBorderDist()\fP .RE .PP .SS "void QwtScaleWidget::getBorderDistHint (int &start, int &end) const" .PP Calculate a hint for the border distances\&. This member function calculates the distance of the scale's endpoints from the widget borders which is required for the mark labels to fit into the widget\&. The maximum of this distance an the minimum border distance is returned\&. .PP \fBWarning:\fP .RS 4 .PD 0 .IP "\(bu" 2 The minimum border distance depends on the font\&. .PP .RE .PP \fBSee also:\fP .RS 4 \fBsetMinBorderDist()\fP, \fBgetMinBorderDist()\fP, \fBsetBorderDist()\fP .RE .PP .SS "void QwtScaleWidget::getMinBorderDist (int &start, int &end) const" Get the minimum value for the distances of the scale's endpoints from the widget borders\&. .PP \fBSee also:\fP .RS 4 \fBsetMinBorderDist()\fP, \fBgetBorderDistHint()\fP .RE .PP .SS "int QwtScaleWidget::margin () const" \fBReturns:\fP .RS 4 margin .RE .PP \fBSee also:\fP .RS 4 \fBsetMargin()\fP .RE .PP .SS "QSize QwtScaleWidget::minimumSizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 a minimum size hint .RE .PP .SS "int QwtScaleWidget::penWidth () const" \fBReturns:\fP .RS 4 Scale pen width .RE .PP \fBSee also:\fP .RS 4 \fBsetPenWidth()\fP .RE .PP .SS "void QwtScaleWidget::scaleChange ()\fC [protected]\fP" .PP Notify a change of the scale\&. This virtual function can be overloaded by derived classes\&. The default implementation updates the geometry and repaints the widget\&. .SS "const \fBQwtScaleDraw\fP * QwtScaleWidget::scaleDraw () const" scaleDraw of this scale .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP, QwtScaleDraw::setScaleDraw() .RE .PP .SS "\fBQwtScaleDraw\fP * QwtScaleWidget::scaleDraw ()" scaleDraw of this scale .PP \fBSee also:\fP .RS 4 QwtScaleDraw::setScaleDraw() .RE .PP .SS "void QwtScaleWidget::setAlignment (\fBQwtScaleDraw::Alignment\fPalignment)" Change the alignment .PP \fBParameters:\fP .RS 4 \fIalignment\fP New alignment .RE .PP \fBSee also:\fP .RS 4 \fBalignment()\fP .RE .PP .SS "void QwtScaleWidget::setBorderDist (intdist1, intdist2)" Specify distances of the scale's endpoints from the widget's borders\&. The actual borders will never be less than minimum border distance\&. .PP \fBParameters:\fP .RS 4 \fIdist1\fP Left or top Distance .br \fIdist2\fP Right or bottom distance .RE .PP \fBSee also:\fP .RS 4 borderDist() .RE .PP .SS "void QwtScaleWidget::setLabelAlignment (Qt::Alignmentalignment)" .PP Change the alignment for the labels\&. \fBSee also:\fP .RS 4 \fBQwtScaleDraw::setLabelAlignment()\fP, \fBsetLabelRotation()\fP .RE .PP .SS "void QwtScaleWidget::setLabelRotation (doublerotation)" .PP Change the rotation for the labels\&. See \fBQwtScaleDraw::setLabelRotation()\fP\&. \fBParameters:\fP .RS 4 \fIrotation\fP Rotation .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw::setLabelRotation()\fP, setLabelFlags() .RE .PP .SS "void QwtScaleWidget::setMargin (intmargin)" .PP Specify the margin to the colorBar/base line\&. \fBParameters:\fP .RS 4 \fImargin\fP Margin .RE .PP \fBSee also:\fP .RS 4 \fBmargin()\fP .RE .PP .SS "void QwtScaleWidget::setMinBorderDist (intstart, intend)" Set a minimum value for the distances of the scale's endpoints from the widget borders\&. This is useful to avoid that the scales are 'jumping', when the tick labels or their positions change often\&. .PP \fBParameters:\fP .RS 4 \fIstart\fP Minimum for the start border .br \fIend\fP Minimum for the end border .RE .PP \fBSee also:\fP .RS 4 \fBgetMinBorderDist()\fP, \fBgetBorderDistHint()\fP .RE .PP .SS "void QwtScaleWidget::setPenWidth (intwidth)" .PP Specify the width of the scale pen\&. \fBParameters:\fP .RS 4 \fIwidth\fP Pen width .RE .PP \fBSee also:\fP .RS 4 \fBpenWidth()\fP .RE .PP .SS "void QwtScaleWidget::setScaleDiv (\fBQwtScaleTransformation\fP *transformation, const \fBQwtScaleDiv\fP &scaleDiv)" .PP Assign a scale division\&. The scale division determines where to set the tick marks\&. .PP \fBParameters:\fP .RS 4 \fItransformation\fP Transformation, needed to translate between scale and pixal values .br \fIscaleDiv\fP Scale Division .RE .PP \fBSee also:\fP .RS 4 For more information about scale divisions, see \fBQwtScaleDiv\fP\&. .RE .PP .SS "void QwtScaleWidget::setScaleDraw (\fBQwtScaleDraw\fP *sd)" Set a scale draw sd has to be created with new and will be deleted in \fB~QwtScaleWidget()\fP or the next call of \fBsetScaleDraw()\fP\&. .PP \fBParameters:\fP .RS 4 \fIsd\fP ScaleDraw object .RE .PP \fBSee also:\fP .RS 4 \fBscaleDraw()\fP .RE .PP .SS "void QwtScaleWidget::setSpacing (intspacing)" .PP Specify the distance between color bar, scale and title\&. \fBParameters:\fP .RS 4 \fIspacing\fP Spacing .RE .PP \fBSee also:\fP .RS 4 \fBspacing()\fP .RE .PP .SS "void QwtScaleWidget::setTitle (const QString &title)" Give title new text contents .PP \fBParameters:\fP .RS 4 \fItitle\fP New title .RE .PP \fBSee also:\fP .RS 4 \fBtitle()\fP, \fBsetTitle(const QwtText &)\fP; .RE .PP .SS "void QwtScaleWidget::setTitle (const \fBQwtText\fP &title)" Give title new text contents .PP \fBParameters:\fP .RS 4 \fItitle\fP New title .RE .PP \fBSee also:\fP .RS 4 \fBtitle()\fP .RE .PP \fBWarning:\fP .RS 4 The title flags are interpreted in direction of the label, AlignTop, AlignBottom can't be set as the title will always be aligned to the scale\&. .RE .PP .SS "QSize QwtScaleWidget::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 a size hint .RE .PP .SS "int QwtScaleWidget::spacing () const" \fBReturns:\fP .RS 4 distance between scale and title .RE .PP \fBSee also:\fP .RS 4 \fBsetMargin()\fP .RE .PP .SS "int QwtScaleWidget::startBorderDist () const" \fBReturns:\fP .RS 4 start border distance .RE .PP \fBSee also:\fP .RS 4 \fBsetBorderDist()\fP .RE .PP .SS "\fBQwtText\fP QwtScaleWidget::title () const" \fBReturns:\fP .RS 4 title .RE .PP \fBSee also:\fP .RS 4 \fBsetTitle()\fP .RE .PP .SS "int QwtScaleWidget::titleHeightForWidth (intwidth) const" .PP Find the height of the title for a given width\&. \fBParameters:\fP .RS 4 \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 height Height .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������qwt5-5.2.3/doc/man/man3/QwtPickerClickRectMachine.3�������������������������������������������������0000644�0001750�0001750�00000002075�12052741140�021203� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPickerClickRectMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerClickRectMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPickerMachine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A state machine for rectangle selections\&. Pressing QwtEventPattern::MouseSelect1 starts the selection, releasing it selects the first point\&. Pressing it again selects the second point and terminates the selection\&. Pressing QwtEventPattern::KeySelect1 also starts the selection, a second press selects the first point\&. A third one selects the second point and terminates the selection\&. .PP \fBSee also:\fP .RS 4 \fBQwtEventPattern::MousePatternCode\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCompassWindArrow.3�������������������������������������������������������0000644�0001750�0001750�00000006570�12052741137�020171� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCompassWindArrow" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCompassWindArrow \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDialNeedle\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBStyle\fP { \fBStyle1\fP, \fBStyle2\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtCompassWindArrow\fP (\fBStyle\fP, const QColor &light=Qt::white, const QColor &dark=Qt::gray)" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const " .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static void \fBdrawStyle1Needle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)" .br .ti -1c .RI "static void \fBdrawStyle2Needle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP An indicator for the wind direction\&. \fBQwtCompassWindArrow\fP shows the direction where the wind comes from\&. .PP .IP "\(bu" 2 QColorGroup::Light .br Used for Style1, or the light half of Style2 .IP "\(bu" 2 QColorGroup::Dark .br Used for the dark half of Style2 .PP .PP \fBSee also:\fP .RS 4 \fBQwtDial\fP, \fBQwtCompass\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtCompassWindArrow::QwtCompassWindArrow (\fBStyle\fPstyle, const QColor &light = \fCQt::white\fP, const QColor &dark = \fCQt::gray\fP)" Constructor .PP \fBParameters:\fP .RS 4 \fIstyle\fP Arrow style .br \fIlight\fP Light color .br \fIdark\fP Dark color .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtCompassWindArrow::draw (QPainter *painter, const QPoint ¢er, intlength, doubledirection, QPalette::ColorGroupcolorGroup = \fCQPalette::Active\fP) const\fC [virtual]\fP" Draw the needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .br \fIcolorGroup\fP Color group, used for painting .RE .PP .PP Implements \fBQwtDialNeedle\fP\&. .SS "void QwtCompassWindArrow::drawStyle1Needle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, doubledirection)\fC [static]\fP" Draw a compass needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP colorGroup .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .RE .PP .SS "void QwtCompassWindArrow::drawStyle2Needle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, doubledirection)\fC [static]\fP" Draw a compass needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP colorGroup .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/histogramscreenshots.3������������������������������������������������������0000644�0001750�0001750�00000000233�12052741136�020476� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "histogramscreenshots" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME histogramscreenshots \- Histogram ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotRasterItem.3���������������������������������������������������������0000644�0001750�0001750�00000013563�12052741142�017641� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotRasterItem" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotRasterItem \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .PP Inherited by \fBQwtPlotSpectrogram\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBCachePolicy\fP { \fBNoCache\fP, \fBPaintCache\fP, \fBScreenCache\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotRasterItem\fP (const QString &\fBtitle\fP=QString::null)" .br .ti -1c .RI "\fBQwtPlotRasterItem\fP (const \fBQwtText\fP &\fBtitle\fP)" .br .ti -1c .RI "virtual \fB~QwtPlotRasterItem\fP ()" .br .ti -1c .RI "int \fBalpha\fP () const " .br .ti -1c .RI "\fBCachePolicy\fP \fBcachePolicy\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const " .br .ti -1c .RI "void \fBinvalidateCache\fP ()" .br .ti -1c .RI "virtual QSize \fBrasterHint\fP (const QwtDoubleRect &) const " .br .ti -1c .RI "void \fBsetAlpha\fP (int \fBalpha\fP)" .br .ti -1c .RI "void \fBsetCachePolicy\fP (\fBCachePolicy\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual QImage \fBrenderImage\fP (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtDoubleRect &area) const =0" .br .in -1c .SH "Detailed Description" .PP A class, which displays raster data\&. Raster data is a grid of pixel values, that can be represented as a QImage\&. It is used for many types of information like spectrograms, cartograms, geographical maps \&.\&.\&. .PP Often a plot has several types of raster data organized in layers\&. ( f\&.e a geographical map, with weather statistics )\&. Using \fBsetAlpha()\fP raster items can be stacked easily\&. .PP \fBQwtPlotRasterItem\fP is only implemented for images of the following formats: QImage::Format_Indexed8, QImage::Format_ARGB32\&. .PP \fBSee also:\fP .RS 4 \fBQwtPlotSpectrogram\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotRasterItem::CachePolicy\fP" .IP "\(bu" 2 NoCache .br \fBrenderImage()\fP is called, whenever the item has to be repainted .IP "\(bu" 2 PaintCache .br \fBrenderImage()\fP is called, whenever the image cache is not valid, or the scales, or the size of the canvas has changed\&. This type of cache is only useful for improving the performance of hide/show operations\&. All other situations are already handled by the plot canvas cache\&. .IP "\(bu" 2 ScreenCache .br The screen cache is an image in size of the screen\&. As long as the scales don't change the target image is scaled from the cache\&. This might improve the performance when resizing the plot widget, but suffers from scaling effects\&. .PP .PP The default policy is NoCache .SH "Member Function Documentation" .PP .SS "int QwtPlotRasterItem::alpha () const" \fBReturns:\fP .RS 4 Alpha value of the raster item .RE .PP \fBSee also:\fP .RS 4 \fBsetAlpha()\fP .RE .PP .SS "\fBQwtPlotRasterItem::CachePolicy\fP QwtPlotRasterItem::cachePolicy () const" \fBReturns:\fP .RS 4 Cache policy .RE .PP \fBSee also:\fP .RS 4 \fBCachePolicy\fP, \fBsetCachePolicy()\fP .RE .PP .SS "void QwtPlotRasterItem::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" .PP Draw the raster data\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP X-Scale Map .br \fIyMap\fP Y-Scale Map .br \fIcanvasRect\fP Contents rect of the plot canvas .RE .PP .PP Implements \fBQwtPlotItem\fP\&. .PP Reimplemented in \fBQwtPlotSpectrogram\fP\&. .SS "void QwtPlotRasterItem::invalidateCache ()" Invalidate the paint cache .PP \fBSee also:\fP .RS 4 \fBsetCachePolicy()\fP .RE .PP .SS "QSize QwtPlotRasterItem::rasterHint (const QwtDoubleRect &) const\fC [virtual]\fP" .PP Returns the recommended raster for a given rect\&. F\&.e the raster hint can be used to limit the resolution of the image that is rendered\&. .PP The default implementation returns an invalid size (QSize()), what means: no hint\&. .PP Reimplemented in \fBQwtPlotSpectrogram\fP\&. .SS "virtual QImage QwtPlotRasterItem::renderImage (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtDoubleRect &area) const\fC [protected]\fP, \fC [pure virtual]\fP" Renders an image for an area .PP The format of the image must be QImage::Format_Indexed8, QImage::Format_RGB32 or QImage::Format_ARGB32 .PP \fBParameters:\fP .RS 4 \fIxMap\fP Maps x-values into pixel coordinates\&. .br \fIyMap\fP Maps y-values into pixel coordinates\&. .br \fIarea\fP Requested area for the image in scale coordinates .RE .PP .PP Implemented in \fBQwtPlotSpectrogram\fP\&. .SS "void QwtPlotRasterItem::setAlpha (intalpha)" .PP Set an alpha value for the raster data\&. Often a plot has several types of raster data organized in layers\&. ( f\&.e a geographical map, with weather statistics )\&. Using \fBsetAlpha()\fP raster items can be stacked easily\&. .PP The alpha value is a value [0, 255] to control the transparency of the image\&. 0 represents a fully transparent color, while 255 represents a fully opaque color\&. .PP \fBParameters:\fP .RS 4 \fIalpha\fP Alpha value .RE .PP .IP "\(bu" 2 alpha >= 0 .br All alpha values of the pixels returned by \fBrenderImage()\fP will be set to alpha, beside those with an alpha value of 0 (invalid pixels)\&. .IP "\(bu" 2 alpha < 0 The alpha values returned by \fBrenderImage()\fP are not changed\&. .PP .PP The default alpha value is -1\&. .PP \fBSee also:\fP .RS 4 \fBalpha()\fP .RE .PP .SS "void QwtPlotRasterItem::setCachePolicy (\fBQwtPlotRasterItem::CachePolicy\fPpolicy)" Change the cache policy .PP The default policy is NoCache .PP \fBParameters:\fP .RS 4 \fIpolicy\fP Cache policy .RE .PP \fBSee also:\fP .RS 4 \fBCachePolicy\fP, \fBcachePolicy()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtAbstractScale.3����������������������������������������������������������0000644�0001750�0001750�00000015354�12052741136�017441� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtAbstractScale" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtAbstractScale \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtKnob\fP, \fBQwtSlider\fP, and \fBQwtThermo\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtAbstractScale\fP ()" .br .ti -1c .RI "virtual \fB~QwtAbstractScale\fP ()" .br .ti -1c .RI "bool \fBautoScale\fP () const " .br .ti -1c .RI "const \fBQwtScaleEngine\fP * \fBscaleEngine\fP () const " .br .ti -1c .RI "\fBQwtScaleEngine\fP * \fBscaleEngine\fP ()" .br .ti -1c .RI "const \fBQwtScaleMap\fP & \fBscaleMap\fP () const " .br .ti -1c .RI "int \fBscaleMaxMajor\fP () const " .br .ti -1c .RI "int \fBscaleMaxMinor\fP () const " .br .ti -1c .RI "void \fBsetAutoScale\fP ()" .br .ti -1c .RI "void \fBsetScale\fP (double vmin, double vmax, double step=0\&.0)" .br .ti -1c .RI "void \fBsetScale\fP (const \fBQwtDoubleInterval\fP &, double step=0\&.0)" .br .ti -1c .RI "void \fBsetScale\fP (const \fBQwtScaleDiv\fP &s)" .br .ti -1c .RI "void \fBsetScaleEngine\fP (\fBQwtScaleEngine\fP *)" .br .ti -1c .RI "void \fBsetScaleMaxMajor\fP (int ticks)" .br .ti -1c .RI "void \fBsetScaleMaxMinor\fP (int ticks)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "const \fBQwtAbstractScaleDraw\fP * \fBabstractScaleDraw\fP () const " .br .ti -1c .RI "\fBQwtAbstractScaleDraw\fP * \fBabstractScaleDraw\fP ()" .br .ti -1c .RI "void \fBrescale\fP (double vmin, double vmax, double step=0\&.0)" .br .ti -1c .RI "virtual void \fBscaleChange\fP ()" .br .ti -1c .RI "void \fBsetAbstractScaleDraw\fP (\fBQwtAbstractScaleDraw\fP *)" .br .in -1c .SH "Detailed Description" .PP An abstract base class for classes containing a scale\&. \fBQwtAbstractScale\fP is used to provide classes with a \fBQwtScaleDraw\fP, and a \fBQwtScaleDiv\fP\&. The \fBQwtScaleDiv\fP might be set explicitely or calculated by a \fBQwtScaleEngine\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtAbstractScale::QwtAbstractScale ()" Constructor .PP Creates a default \fBQwtScaleDraw\fP and a \fBQwtLinearScaleEngine\fP\&. Autoscaling is enabled, and the stepSize is initialized by 0\&.0\&. .SH "Member Function Documentation" .PP .SS "const \fBQwtAbstractScaleDraw\fP * QwtAbstractScale::abstractScaleDraw () const\fC [protected]\fP" \fBReturns:\fP .RS 4 Scale draw .RE .PP \fBSee also:\fP .RS 4 \fBsetAbstractScaleDraw()\fP .RE .PP .SS "\fBQwtAbstractScaleDraw\fP * QwtAbstractScale::abstractScaleDraw ()\fC [protected]\fP" \fBReturns:\fP .RS 4 Scale draw .RE .PP \fBSee also:\fP .RS 4 \fBsetAbstractScaleDraw()\fP .RE .PP .SS "bool QwtAbstractScale::autoScale () const" \fBReturns:\fP .RS 4 \fCtrue\fP if autoscaling is enabled .RE .PP .SS "void QwtAbstractScale::rescale (doublevmin, doublevmax, doublestepSize = \fC0\&.0\fP)\fC [protected]\fP" Recalculate the scale division and update the scale draw\&. .PP \fBParameters:\fP .RS 4 \fIvmin\fP Lower limit of the scale interval .br \fIvmax\fP Upper limit of the scale interval .br \fIstepSize\fP Major step size .RE .PP \fBSee also:\fP .RS 4 \fBscaleChange()\fP .RE .PP .SS "void QwtAbstractScale::scaleChange ()\fC [protected]\fP, \fC [virtual]\fP" .PP Notify changed scale\&. Dummy empty implementation, intended to be overloaded by derived classes .PP Reimplemented in \fBQwtThermo\fP, and \fBQwtSlider\fP\&. .SS "const \fBQwtScaleEngine\fP * QwtAbstractScale::scaleEngine () const" \fBReturns:\fP .RS 4 Scale engine .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleEngine()\fP .RE .PP .SS "\fBQwtScaleEngine\fP * QwtAbstractScale::scaleEngine ()" \fBReturns:\fP .RS 4 Scale engine .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleEngine()\fP .RE .PP .SS "const \fBQwtScaleMap\fP & QwtAbstractScale::scaleMap () const" \fBReturns:\fP .RS 4 \fBabstractScaleDraw()\fP->\fBscaleMap()\fP .RE .PP .SS "int QwtAbstractScale::scaleMaxMajor () const" \fBReturns:\fP .RS 4 Max\&. number of major tick intervals The default value is 5\&. .RE .PP .SS "int QwtAbstractScale::scaleMaxMinor () const" \fBReturns:\fP .RS 4 Max\&. number of minor tick intervals The default value is 3\&. .RE .PP .SS "void QwtAbstractScale::setAbstractScaleDraw (\fBQwtAbstractScaleDraw\fP *scaleDraw)\fC [protected]\fP" .PP Set a scale draw\&. scaleDraw has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setAbstractScaleDraw\&. .SS "void QwtAbstractScale::setAutoScale ()" .PP Advise the widget to control the scale range internally\&. Autoscaling is on by default\&. .PP \fBSee also:\fP .RS 4 \fBsetScale()\fP, \fBautoScale()\fP .RE .PP .SS "void QwtAbstractScale::setScale (doublevmin, doublevmax, doublestepSize = \fC0\&.0\fP)" .PP Specify a scale\&. Disable autoscaling and define a scale by an interval and a step size .PP \fBParameters:\fP .RS 4 \fIvmin\fP lower limit of the scale interval .br \fIvmax\fP upper limit of the scale interval .br \fIstepSize\fP major step size .RE .PP \fBSee also:\fP .RS 4 \fBsetAutoScale()\fP .RE .PP .SS "void QwtAbstractScale::setScale (const \fBQwtDoubleInterval\fP &interval, doublestepSize = \fC0\&.0\fP)" .PP Specify a scale\&. Disable autoscaling and define a scale by an interval and a step size .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval .br \fIstepSize\fP major step size .RE .PP \fBSee also:\fP .RS 4 \fBsetAutoScale()\fP .RE .PP .SS "void QwtAbstractScale::setScale (const \fBQwtScaleDiv\fP &scaleDiv)" .PP Specify a scale\&. Disable autoscaling and define a scale by a scale division .PP \fBParameters:\fP .RS 4 \fIscaleDiv\fP Scale division .RE .PP \fBSee also:\fP .RS 4 \fBsetAutoScale()\fP .RE .PP .SS "void QwtAbstractScale::setScaleEngine (\fBQwtScaleEngine\fP *scaleEngine)" .PP Set a scale engine\&. The scale engine is responsible for calculating the scale division, and in case of auto scaling how to align the scale\&. .PP scaleEngine has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setScaleEngine\&. .SS "void QwtAbstractScale::setScaleMaxMajor (intticks)" .PP Set the maximum number of major tick intervals\&. The scale's major ticks are calculated automatically such that the number of major intervals does not exceed ticks\&. The default value is 5\&. .PP \fBParameters:\fP .RS 4 \fIticks\fP maximal number of major ticks\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtAbstractScaleDraw\fP .RE .PP .SS "void QwtAbstractScale::setScaleMaxMinor (intticks)" .PP Set the maximum number of minor tick intervals\&. The scale's minor ticks are calculated automatically such that the number of minor intervals does not exceed ticks\&. The default value is 3\&. .PP \fBParameters:\fP .RS 4 \fIticks\fP .RE .PP \fBSee also:\fP .RS 4 \fBQwtAbstractScaleDraw\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotItem.3���������������������������������������������������������������0000644�0001750�0001750�00000034563�12052741141�016462� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotItem" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotItem \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtLegendItemManager\fP\&. .PP Inherited by \fBQwtPlotCurve\fP, \fBQwtPlotGrid\fP, \fBQwtPlotMarker\fP, \fBQwtPlotRasterItem\fP, \fBQwtPlotScaleItem\fP, and \fBQwtPlotSvgItem\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBItemAttribute\fP { \fBLegend\fP = 1, \fBAutoScale\fP = 2 }" .br .ti -1c .RI "enum \fBRenderHint\fP { \fBRenderAntialiased\fP = 1 }" .br .ti -1c .RI "enum \fBRttiValues\fP { \fBRtti_PlotItem\fP = 0, \fBRtti_PlotGrid\fP, \fBRtti_PlotScale\fP, \fBRtti_PlotMarker\fP, \fBRtti_PlotCurve\fP, \fBRtti_PlotHistogram\fP, \fBRtti_PlotSpectrogram\fP, \fBRtti_PlotSVG\fP, \fBRtti_PlotUserItem\fP = 1000 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotItem\fP (const \fBQwtText\fP &\fBtitle\fP=\fBQwtText\fP())" .br .ti -1c .RI "virtual \fB~QwtPlotItem\fP ()" .br .ti -1c .RI "void \fBattach\fP (\fBQwtPlot\fP *\fBplot\fP)" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "void \fBdetach\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const =0" .br .ti -1c .RI "void \fBhide\fP ()" .br .ti -1c .RI "QwtDoubleRect \fBinvTransform\fP (const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &, const QRect &) const " .br .ti -1c .RI "bool \fBisVisible\fP () const " .br .ti -1c .RI "virtual void \fBitemChanged\fP ()" .br .ti -1c .RI "virtual QWidget * \fBlegendItem\fP () const " .br .ti -1c .RI "QRect \fBpaintRect\fP (const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &) const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "QwtDoubleRect \fBscaleRect\fP (const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &) const " .br .ti -1c .RI "void \fBsetAxis\fP (int \fBxAxis\fP, int \fByAxis\fP)" .br .ti -1c .RI "void \fBsetItemAttribute\fP (\fBItemAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetRenderHint\fP (\fBRenderHint\fP, bool on=true)" .br .ti -1c .RI "void \fBsetTitle\fP (const QString &\fBtitle\fP)" .br .ti -1c .RI "void \fBsetTitle\fP (const \fBQwtText\fP &\fBtitle\fP)" .br .ti -1c .RI "virtual void \fBsetVisible\fP (bool)" .br .ti -1c .RI "void \fBsetXAxis\fP (int axis)" .br .ti -1c .RI "void \fBsetYAxis\fP (int axis)" .br .ti -1c .RI "void \fBsetZ\fP (double \fBz\fP)" .br .ti -1c .RI "void \fBshow\fP ()" .br .ti -1c .RI "bool \fBtestItemAttribute\fP (\fBItemAttribute\fP) const " .br .ti -1c .RI "bool \fBtestRenderHint\fP (\fBRenderHint\fP) const " .br .ti -1c .RI "const \fBQwtText\fP & \fBtitle\fP () const " .br .ti -1c .RI "QRect \fBtransform\fP (const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &, const QwtDoubleRect &) const " .br .ti -1c .RI "virtual void \fBupdateLegend\fP (\fBQwtLegend\fP *) const " .br .ti -1c .RI "virtual void \fBupdateScaleDiv\fP (const \fBQwtScaleDiv\fP &, const \fBQwtScaleDiv\fP &)" .br .ti -1c .RI "int \fBxAxis\fP () const " .br .ti -1c .RI "int \fByAxis\fP () const " .br .ti -1c .RI "double \fBz\fP () const " .br .in -1c .SH "Detailed Description" .PP Base class for items on the plot canvas\&. A plot item is 'something', that can be painted on the plot canvas, or only affects the scales of the plot widget\&. They can be categorized as: .PP .IP "\(bu" 2 Representator .br A 'Representator' is an item that represents some sort of data on the plot canvas\&. The different representator classes are organized according to the characteristics of the data: .IP " \(bu" 4 \fBQwtPlotMarker\fP Represents a point or a horizontal/vertical coordinate .IP " \(bu" 4 \fBQwtPlotCurve\fP Represents a series of points .IP " \(bu" 4 \fBQwtPlotSpectrogram\fP ( \fBQwtPlotRasterItem\fP ) Represents raster data .IP " \(bu" 4 \&.\&.\&. .PP .PP .PP .IP "\(bu" 2 Decorators .br A 'Decorator' is an item, that displays additional information, that is not related to any data: .IP " \(bu" 4 \fBQwtPlotGrid\fP .IP " \(bu" 4 \fBQwtPlotScaleItem\fP .IP " \(bu" 4 \fBQwtPlotSvgItem\fP .IP " \(bu" 4 \&.\&.\&. .PP .PP .PP Depending on the \fBQwtPlotItem::ItemAttribute\fP flags, an item is included into autoscaling or has an entry on the legnd\&. .PP Before misusing the existing item classes it might be better to implement a new type of plot item ( don't implement a watermark as spectrogram )\&. Deriving a new type of \fBQwtPlotItem\fP primarily means to implement the YourPlotItem::draw() method\&. .PP \fBSee also:\fP .RS 4 The cpuplot example shows the implementation of additional \fBplot\fP items\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotItem::ItemAttribute\fP" Plot Item Attributes .PP .IP "\(bu" 2 Legend .br The item is represented on the legend\&. .IP "\(bu" 2 AutoScale .br The \fBboundingRect()\fP of the item is included in the autoscaling calculation\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetItemAttribute()\fP, \fBtestItemAttribute()\fP .RE .PP .SS "enum \fBQwtPlotItem::RttiValues\fP" .PP Runtime type information\&. RttiValues is used to cast plot items, without having to enable runtime type information of the compiler\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotItem::QwtPlotItem (const \fBQwtText\fP &title = \fC\fBQwtText\fP()\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fItitle\fP Title of the item .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlotItem::attach (\fBQwtPlot\fP *plot)" .PP Attach the item to a plot\&. This method will attach a \fBQwtPlotItem\fP to the \fBQwtPlot\fP argument\&. It will first detach the \fBQwtPlotItem\fP from any plot from a previous call to attach (if necessary)\&. If a NULL argument is passed, it will detach from any \fBQwtPlot\fP it was attached to\&. .PP \fBParameters:\fP .RS 4 \fIplot\fP Plot widget .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotItem::detach()\fP .RE .PP .SS "QwtDoubleRect QwtPlotItem::boundingRect () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 An invalid bounding rect: QwtDoubleRect(1\&.0, 1\&.0, -2\&.0, -2\&.0) .RE .PP .PP Reimplemented in \fBQwtPlotCurve\fP, \fBQwtPlotMarker\fP, \fBQwtPlotSpectrogram\fP, and \fBQwtPlotSvgItem\fP\&. .SS "void QwtPlotItem::detach ()\fC [inline]\fP" .PP This method detaches a \fBQwtPlotItem\fP from any \fBQwtPlot\fP it has been associated with\&. \fBdetach()\fP is equivalent to calling attach( NULL ) .PP \fBSee also:\fP .RS 4 \fBattach( QwtPlot* plot )\fP .RE .PP .SS "virtual void QwtPlotItem::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [pure virtual]\fP" .PP Draw the item\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP Maps x-values into pixel coordinates\&. .br \fIyMap\fP Maps y-values into pixel coordinates\&. .br \fIcanvasRect\fP Contents rect of the canvas in painter coordinates .RE .PP .PP Implemented in \fBQwtPlotCurve\fP, \fBQwtPlotMarker\fP, \fBQwtPlotScaleItem\fP, \fBQwtPlotSpectrogram\fP, \fBQwtPlotRasterItem\fP, \fBQwtPlotGrid\fP, and \fBQwtPlotSvgItem\fP\&. .SS "QwtDoubleRect QwtPlotItem::invTransform (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const" Transform a rectangle from paint to scale coordinates .PP \fBParameters:\fP .RS 4 \fIxMap\fP X map .br \fIyMap\fP Y map .br \fIrect\fP Rectangle in paint coordinates .RE .PP \fBReturns:\fP .RS 4 Rectangle in scale coordinates .RE .PP \fBSee also:\fP .RS 4 \fBtransform()\fP .RE .PP .SS "bool QwtPlotItem::isVisible () const" \fBReturns:\fP .RS 4 true if visible .RE .PP \fBSee also:\fP .RS 4 \fBsetVisible()\fP, \fBshow()\fP, \fBhide()\fP .RE .PP .SS "void QwtPlotItem::itemChanged ()\fC [virtual]\fP" Update the legend and call \fBQwtPlot::autoRefresh\fP for the parent plot\&. .PP \fBSee also:\fP .RS 4 \fBupdateLegend()\fP .RE .PP .SS "QWidget * QwtPlotItem::legendItem () const\fC [virtual]\fP" .PP Allocate the widget that represents the item on the legend\&. The default implementation is made for \fBQwtPlotCurve\fP and returns a QwtLegendItem(), but an item could be represented by any type of widget, by overloading \fBlegendItem()\fP and \fBupdateLegend()\fP\&. .PP \fBReturns:\fP .RS 4 QwtLegendItem() .RE .PP \fBSee also:\fP .RS 4 \fBupdateLegend()\fP QwtLegend() .RE .PP .PP Implements \fBQwtLegendItemManager\fP\&. .SS "QRect QwtPlotItem::paintRect (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap) const" .PP Calculate the bounding paint rect of 2 maps\&. \fBParameters:\fP .RS 4 \fIxMap\fP X map .br \fIyMap\fP X map .RE .PP \fBReturns:\fP .RS 4 Bounding rect of the scale maps .RE .PP .SS "int QwtPlotItem::rtti () const\fC [virtual]\fP" Return rtti for the specific class represented\&. \fBQwtPlotItem\fP is simply a virtual interface class, and base classes will implement this method with specific rtti values so a user can differentiate them\&. .PP The rtti value is useful for environments, where the runtime type information is disabled and it is not possible to do a dynamic_cast<\&.\&.\&.>\&. .PP \fBReturns:\fP .RS 4 rtti value .RE .PP \fBSee also:\fP .RS 4 \fBRttiValues\fP .RE .PP .PP Reimplemented in \fBQwtPlotCurve\fP, \fBQwtPlotSpectrogram\fP, \fBQwtPlotMarker\fP, \fBQwtPlotScaleItem\fP, \fBQwtPlotSvgItem\fP, and \fBQwtPlotGrid\fP\&. .SS "QwtDoubleRect QwtPlotItem::scaleRect (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap) const" .PP Calculate the bounding scale rect of 2 maps\&. \fBParameters:\fP .RS 4 \fIxMap\fP X map .br \fIyMap\fP X map .RE .PP \fBReturns:\fP .RS 4 Bounding rect of the scale maps .RE .PP .SS "void QwtPlotItem::setAxis (intxAxis, intyAxis)" Set X and Y axis .PP The item will painted according to the coordinates its Axes\&. .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X Axis .br \fIyAxis\fP Y Axis .RE .PP \fBSee also:\fP .RS 4 \fBsetXAxis()\fP, \fBsetYAxis()\fP, \fBxAxis()\fP, \fByAxis()\fP .RE .PP .SS "void QwtPlotItem::setItemAttribute (\fBItemAttribute\fPattribute, boolon = \fCtrue\fP)" Toggle an item attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Attribute type .br \fIon\fP true/false .RE .PP \fBSee also:\fP .RS 4 \fBtestItemAttribute()\fP, \fBItemAttribute\fP .RE .PP .SS "void QwtPlotItem::setRenderHint (\fBRenderHint\fPhint, boolon = \fCtrue\fP)" Toggle an render hint .PP \fBParameters:\fP .RS 4 \fIhint\fP Render hint .br \fIon\fP true/false .RE .PP \fBSee also:\fP .RS 4 \fBtestRenderHint()\fP, \fBRenderHint\fP .RE .PP .SS "void QwtPlotItem::setTitle (const QString &title)" Set a new title .PP \fBParameters:\fP .RS 4 \fItitle\fP Title .RE .PP \fBSee also:\fP .RS 4 \fBtitle()\fP .RE .PP .SS "void QwtPlotItem::setTitle (const \fBQwtText\fP &title)" Set a new title .PP \fBParameters:\fP .RS 4 \fItitle\fP Title .RE .PP \fBSee also:\fP .RS 4 \fBtitle()\fP .RE .PP .SS "void QwtPlotItem::setVisible (boolon)\fC [virtual]\fP" Show/Hide the item .PP \fBParameters:\fP .RS 4 \fIon\fP Show if true, otherwise hide .RE .PP \fBSee also:\fP .RS 4 \fBisVisible()\fP, \fBshow()\fP, \fBhide()\fP .RE .PP .SS "void QwtPlotItem::setXAxis (intaxis)" Set the X axis .PP The item will painted according to the coordinates its Axes\&. .PP \fBParameters:\fP .RS 4 \fIaxis\fP X Axis .RE .PP \fBSee also:\fP .RS 4 \fBsetAxis()\fP, \fBsetYAxis()\fP, \fBxAxis()\fP .RE .PP .SS "void QwtPlotItem::setYAxis (intaxis)" Set the Y axis .PP The item will painted according to the coordinates its Axes\&. .PP \fBParameters:\fP .RS 4 \fIaxis\fP Y Axis .RE .PP \fBSee also:\fP .RS 4 \fBsetAxis()\fP, \fBsetXAxis()\fP, \fByAxis()\fP .RE .PP .SS "void QwtPlotItem::setZ (doublez)" .PP Set the z value\&. Plot items are painted in increasing z-order\&. .PP \fBParameters:\fP .RS 4 \fIz\fP Z-value .RE .PP \fBSee also:\fP .RS 4 \fBz()\fP, \fBQwtPlotDict::itemList()\fP .RE .PP .SS "bool QwtPlotItem::testItemAttribute (\fBItemAttribute\fPattribute) const" Test an item attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Attribute type .RE .PP \fBReturns:\fP .RS 4 true/false .RE .PP \fBSee also:\fP .RS 4 \fBsetItemAttribute()\fP, \fBItemAttribute\fP .RE .PP .SS "bool QwtPlotItem::testRenderHint (\fBRenderHint\fPhint) const" Test a render hint .PP \fBParameters:\fP .RS 4 \fIhint\fP Render hint .RE .PP \fBReturns:\fP .RS 4 true/false .RE .PP \fBSee also:\fP .RS 4 \fBsetRenderHint()\fP, \fBRenderHint\fP .RE .PP .SS "const \fBQwtText\fP & QwtPlotItem::title () const" \fBReturns:\fP .RS 4 Title of the item .RE .PP \fBSee also:\fP .RS 4 \fBsetTitle()\fP .RE .PP .SS "QRect QwtPlotItem::transform (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtDoubleRect &rect) const" Transform a rectangle .PP \fBParameters:\fP .RS 4 \fIxMap\fP X map .br \fIyMap\fP Y map .br \fIrect\fP Rectangle in scale coordinates .RE .PP \fBReturns:\fP .RS 4 Rectangle in paint coordinates .RE .PP \fBSee also:\fP .RS 4 \fBinvTransform()\fP .RE .PP .SS "void QwtPlotItem::updateLegend (\fBQwtLegend\fP *legend) const\fC [virtual]\fP" .PP Update the widget that represents the item on the legend\&. \fBupdateLegend()\fP is called from \fBitemChanged()\fP to adopt the widget representing the item on the legend to its new configuration\&. .PP The default implementation is made for \fBQwtPlotCurve\fP and updates a QwtLegendItem(), but an item could be represented by any type of widget, by overloading \fBlegendItem()\fP and \fBupdateLegend()\fP\&. .PP \fBParameters:\fP .RS 4 \fIlegend\fP Legend .RE .PP \fBSee also:\fP .RS 4 \fBlegendItem()\fP, \fBitemChanged()\fP, QwtLegend() .RE .PP .PP Implements \fBQwtLegendItemManager\fP\&. .PP Reimplemented in \fBQwtPlotCurve\fP\&. .SS "void QwtPlotItem::updateScaleDiv (const \fBQwtScaleDiv\fP &, const \fBQwtScaleDiv\fP &)\fC [virtual]\fP" .PP Update the item to changes of the axes scale division\&. Update the item, when the axes of plot have changed\&. The default implementation does nothing, but items that depend on the scale division (like QwtPlotGrid()) have to reimplement \fBupdateScaleDiv()\fP .PP \fBParameters:\fP .RS 4 \fIxScaleDiv\fP Scale division of the x-axis .br \fIyScaleDiv\fP Scale division of the y-axis .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::updateAxes()\fP .RE .PP .PP Reimplemented in \fBQwtPlotScaleItem\fP, and \fBQwtPlotGrid\fP\&. .SS "double QwtPlotItem::z () const" Plot items are painted in increasing z-order\&. .PP \fBReturns:\fP .RS 4 \fBsetZ()\fP, \fBQwtPlotDict::itemList()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPicker.3�����������������������������������������������������������������0000644�0001750�0001750�00000065126�12052741140�016140� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPicker" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPicker \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtEventPattern\fP\&. .PP Inherited by \fBQwtPlotPicker\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBDisplayMode\fP { \fBAlwaysOff\fP, \fBAlwaysOn\fP, \fBActiveOnly\fP }" .br .ti -1c .RI "enum \fBRectSelectionType\fP { \fBCornerToCorner\fP = 64, \fBCenterToCorner\fP = 128, \fBCenterToRadius\fP = 256 }" .br .ti -1c .RI "enum \fBResizeMode\fP { \fBStretch\fP, \fBKeepSize\fP }" .br .ti -1c .RI "enum \fBRubberBand\fP { \fBNoRubberBand\fP = 0, \fBHLineRubberBand\fP, \fBVLineRubberBand\fP, \fBCrossRubberBand\fP, \fBRectRubberBand\fP, \fBEllipseRubberBand\fP, \fBPolygonRubberBand\fP, \fBUserRubberBand\fP = 100 }" .br .ti -1c .RI "enum \fBSelectionMode\fP { \fBClickSelection\fP = 1024, \fBDragSelection\fP = 2048 }" .br .ti -1c .RI "enum \fBSelectionType\fP { \fBNoSelection\fP = 0, \fBPointSelection\fP = 1, \fBRectSelection\fP = 2, \fBPolygonSelection\fP = 4 }" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBappended\fP (const QPoint &pos)" .br .ti -1c .RI "void \fBchanged\fP (const QwtPolygon &pa)" .br .ti -1c .RI "void \fBmoved\fP (const QPoint &pos)" .br .ti -1c .RI "void \fBselected\fP (const QwtPolygon &pa)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPicker\fP (QWidget *parent)" .br .ti -1c .RI "\fBQwtPicker\fP (int \fBselectionFlags\fP, \fBRubberBand\fP \fBrubberBand\fP, \fBDisplayMode\fP \fBtrackerMode\fP, QWidget *)" .br .ti -1c .RI "virtual \fB~QwtPicker\fP ()" .br .ti -1c .RI "virtual void \fBdrawRubberBand\fP (QPainter *) const " .br .ti -1c .RI "virtual void \fBdrawTracker\fP (QPainter *) const " .br .ti -1c .RI "virtual bool \fBeventFilter\fP (QObject *, QEvent *)" .br .ti -1c .RI "bool \fBisActive\fP () const " .br .ti -1c .RI "bool \fBisEnabled\fP () const " .br .ti -1c .RI "QWidget * \fBparentWidget\fP ()" .br .ti -1c .RI "const QWidget * \fBparentWidget\fP () const " .br .ti -1c .RI "virtual QRect \fBpickRect\fP () const " .br .ti -1c .RI "\fBResizeMode\fP \fBresizeMode\fP () const " .br .ti -1c .RI "\fBRubberBand\fP \fBrubberBand\fP () const " .br .ti -1c .RI "QPen \fBrubberBandPen\fP () const " .br .ti -1c .RI "const QwtPolygon & \fBselection\fP () const " .br .ti -1c .RI "int \fBselectionFlags\fP () const " .br .ti -1c .RI "virtual void \fBsetEnabled\fP (bool)" .br .ti -1c .RI "virtual void \fBsetResizeMode\fP (\fBResizeMode\fP)" .br .ti -1c .RI "virtual void \fBsetRubberBand\fP (\fBRubberBand\fP)" .br .ti -1c .RI "virtual void \fBsetRubberBandPen\fP (const QPen &)" .br .ti -1c .RI "virtual void \fBsetSelectionFlags\fP (int)" .br .ti -1c .RI "virtual void \fBsetTrackerFont\fP (const QFont &)" .br .ti -1c .RI "virtual void \fBsetTrackerMode\fP (\fBDisplayMode\fP)" .br .ti -1c .RI "virtual void \fBsetTrackerPen\fP (const QPen &)" .br .ti -1c .RI "QFont \fBtrackerFont\fP () const " .br .ti -1c .RI "\fBDisplayMode\fP \fBtrackerMode\fP () const " .br .ti -1c .RI "QPen \fBtrackerPen\fP () const " .br .ti -1c .RI "QPoint \fBtrackerPosition\fP () const " .br .ti -1c .RI "QRect \fBtrackerRect\fP (const QFont &) const " .br .ti -1c .RI "virtual \fBQwtText\fP \fBtrackerText\fP (const QPoint &pos) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual bool \fBaccept\fP (QwtPolygon &\fBselection\fP) const " .br .ti -1c .RI "virtual void \fBappend\fP (const QPoint &)" .br .ti -1c .RI "virtual void \fBbegin\fP ()" .br .ti -1c .RI "virtual bool \fBend\fP (bool ok=true)" .br .ti -1c .RI "virtual void \fBmove\fP (const QPoint &)" .br .ti -1c .RI "virtual void \fBreset\fP ()" .br .ti -1c .RI "const QWidget * \fBrubberBandWidget\fP () const " .br .ti -1c .RI "virtual \fBQwtPickerMachine\fP * \fBstateMachine\fP (int) const " .br .ti -1c .RI "virtual void \fBstretchSelection\fP (const QSize &oldSize, const QSize &newSize)" .br .ti -1c .RI "const QWidget * \fBtrackerWidget\fP () const " .br .ti -1c .RI "virtual void \fBtransition\fP (const QEvent *)" .br .ti -1c .RI "virtual void \fBupdateDisplay\fP ()" .br .ti -1c .RI "virtual void \fBwidgetKeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetKeyReleaseEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetLeaveEvent\fP (QEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseDoubleClickEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseMoveEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMousePressEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseReleaseEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetWheelEvent\fP (QWheelEvent *)" .br .in -1c .SH "Detailed Description" .PP \fBQwtPicker\fP provides selections on a widget\&. \fBQwtPicker\fP filters all mouse and keyboard events of a widget and translates them into an array of selected points\&. Depending on the \fBQwtPicker::SelectionType\fP the selection might be a single point, a rectangle or a polygon\&. The selection process is supported by optional rubberbands (rubberband selection) and position trackers\&. .PP \fBQwtPicker\fP is useful for widgets where the event handlers can't be overloaded, like for components of composite widgets\&. It offers alternative handlers for mouse and key events\&. .PP \fBExample \fP .RS 4 .PP .nf #include QwtPicker *picker = new QwtPicker(widget); picker->setTrackerMode(QwtPicker::ActiveOnly); connect(picker, SIGNAL(selected(const QwtPolygon &)), ...); // emit the position of clicks on widget picker->setSelectionFlags(QwtPicker::PointSelection | QwtPicker::ClickSelection); ... // now select rectangles picker->setSelectionFlags(QwtPicker::RectSelection | QwtPicker::DragSelection); picker->setRubberBand(QwtPicker::RectRubberBand); .fi .PP .br .RE .PP The selection process uses the commands \fBbegin()\fP, \fBappend()\fP, \fBmove()\fP and \fBend()\fP\&. \fBappend()\fP adds a new point to the selection, \fBmove()\fP changes the position of the latest point\&. .PP The commands are initiated from a small state machine (\fBQwtPickerMachine\fP) that translates mouse and key events\&. There are a couple of predefined state machines for point, rect and polygon selections\&. The \fBselectionFlags()\fP control which one should be used\&. It is possible to use other machines by overloading \fBstateMachine()\fP\&. .PP The picker is active (\fBisActive()\fP), between \fBbegin()\fP and \fBend()\fP\&. In active state the rubberband is displayed, and the tracker is visible in case of trackerMode is ActiveOnly or AlwaysOn\&. .PP The cursor can be moved using the arrow keys\&. All selections can be aborted using the abort key\&. (\fBQwtEventPattern::KeyPatternCode\fP) .PP \fBWarning:\fP .RS 4 In case of QWidget::NoFocus the focus policy of the observed widget is set to QWidget::WheelFocus and mouse tracking will be manipulated for ClickSelection while the picker is active, or if \fBtrackerMode()\fP is AlwayOn\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPicker::DisplayMode\fP" .IP "\(bu" 2 AlwaysOff .br Display never\&. .IP "\(bu" 2 AlwaysOn .br Display always\&. .IP "\(bu" 2 ActiveOnly .br Display only when the selection is active\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtPicker::setTrackerMode()\fP, \fBQwtPicker::trackerMode()\fP, \fBQwtPicker::isActive()\fP .RE .PP .SS "enum \fBQwtPicker::RectSelectionType\fP" .PP Selection subtype for RectSelection This enum type describes the type of rectangle selections\&. It can be or'd with \fBQwtPicker::RectSelectionType\fP and \fBQwtPicker::SelectionMode\fP and passed to \fBQwtPicker::setSelectionFlags()\fP\&. .IP "\(bu" 2 CornerToCorner .br The first and the second selected point are the corners of the rectangle\&. .IP "\(bu" 2 CenterToCorner .br The first point is the center, the second a corner of the rectangle\&. .IP "\(bu" 2 CenterToRadius .br The first point is the center of a quadrat, calculated by the maximum of the x- and y-distance\&. .PP .PP The default value is CornerToCorner\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker::setSelectionFlags()\fP, \fBQwtPicker::selectionFlags()\fP .RE .PP .SS "enum \fBQwtPicker::ResizeMode\fP" Controls what to do with the selected points of an active selection when the observed widget is resized\&. .IP "\(bu" 2 Stretch .br All points are scaled according to the new size, .IP "\(bu" 2 KeepSize .br All points remain unchanged\&. .PP .PP The default value is Stretch\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker::setResizeMode()\fP, QwtPicker::resize() .RE .PP .SS "enum \fBQwtPicker::RubberBand\fP" Rubberband style .IP "\(bu" 2 NoRubberBand .br No rubberband\&. .IP "\(bu" 2 HLineRubberBand & PointSelection .br A horizontal line\&. .IP "\(bu" 2 VLineRubberBand & PointSelection .br A vertical line\&. .IP "\(bu" 2 CrossRubberBand & PointSelection .br A horizontal and a vertical line\&. .IP "\(bu" 2 RectRubberBand & RectSelection .br A rectangle\&. .IP "\(bu" 2 EllipseRubberBand & RectSelection .br An ellipse\&. .IP "\(bu" 2 PolygonRubberBand &PolygonSelection .br A polygon\&. .IP "\(bu" 2 UserRubberBand .br Values >= UserRubberBand can be used to define additional rubber bands\&. .PP .PP The default value is NoRubberBand\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker::setRubberBand()\fP, \fBQwtPicker::rubberBand()\fP .RE .PP .SS "enum \fBQwtPicker::SelectionMode\fP" Values of this enum type or'd together with a SelectionType value identifies which state machine should be used for the selection\&. .PP The default value is ClickSelection\&. .PP \fBSee also:\fP .RS 4 \fBstateMachine()\fP .RE .PP .SS "enum \fBQwtPicker::SelectionType\fP" This enum type describes the type of a selection\&. It can be or'd with \fBQwtPicker::RectSelectionType\fP and \fBQwtPicker::SelectionMode\fP and passed to \fBQwtPicker::setSelectionFlags()\fP .IP "\(bu" 2 NoSelection .br Selection is disabled\&. Note this is different to the disabled state, as you might have a tracker\&. .IP "\(bu" 2 PointSelection .br Select a single point\&. .IP "\(bu" 2 RectSelection .br Select a rectangle\&. .IP "\(bu" 2 PolygonSelection .br Select a polygon\&. .PP .PP The default value is NoSelection\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker::setSelectionFlags()\fP, \fBQwtPicker::selectionFlags()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPicker::QwtPicker (QWidget *parent)\fC [explicit]\fP" Constructor .PP Creates an picker that is enabled, but where selection flag is set to NoSelection, rubberband and tracker are disabled\&. .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget, that will be observed .RE .PP .SS "QwtPicker::QwtPicker (intselectionFlags, \fBRubberBand\fPrubberBand, \fBDisplayMode\fPtrackerMode, QWidget *parent)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIselectionFlags\fP Or'd value of SelectionType, RectSelectionType and SelectionMode .br \fIrubberBand\fP Rubberband style .br \fItrackerMode\fP Tracker mode .br \fIparent\fP Parent widget, that will be observed .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtPicker::accept (QwtPolygon &selection) const\fC [protected]\fP, \fC [virtual]\fP" .PP Validate and fixup the selection\&. Accepts all selections unmodified .PP \fBParameters:\fP .RS 4 \fIselection\fP Selection to validate and fixup .RE .PP \fBReturns:\fP .RS 4 true, when accepted, false otherwise .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "void QwtPicker::append (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Append a point to the selection and update rubberband and tracker\&. The \fBappended()\fP signal is emitted\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Additional point .RE .PP \fBSee also:\fP .RS 4 \fBisActive()\fP, \fBbegin()\fP, \fBend()\fP, \fBmove()\fP, \fBappended()\fP .RE .PP .PP Reimplemented in \fBQwtPlotPicker\fP\&. .SS "void QwtPicker::appended (const QPoint &pos)\fC [signal]\fP" A signal emitted when a point has been appended to the selection .PP \fBParameters:\fP .RS 4 \fIpos\fP Position of the appended point\&. .RE .PP \fBSee also:\fP .RS 4 \fBappend()\fP\&. \fBmoved()\fP .RE .PP .SS "void QwtPicker::begin ()\fC [protected]\fP, \fC [virtual]\fP" Open a selection setting the state to active .PP \fBSee also:\fP .RS 4 \fBisActive()\fP, \fBend()\fP, \fBappend()\fP, \fBmove()\fP .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "void QwtPicker::changed (const QwtPolygon &pa)\fC [signal]\fP" A signal emitted when the active selection has been changed\&. This might happen when the observed widget is resized\&. .PP \fBParameters:\fP .RS 4 \fIpa\fP Changed selection .RE .PP \fBSee also:\fP .RS 4 \fBstretchSelection()\fP .RE .PP .SS "void QwtPicker::drawRubberBand (QPainter *painter) const\fC [virtual]\fP" Draw a rubberband , depending on \fBrubberBand()\fP and \fBselectionFlags()\fP .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter, initialized with clip rect .RE .PP \fBSee also:\fP .RS 4 \fBrubberBand()\fP, \fBRubberBand\fP, \fBselectionFlags()\fP .RE .PP .SS "void QwtPicker::drawTracker (QPainter *painter) const\fC [virtual]\fP" Draw the tracker .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBtrackerRect()\fP, \fBtrackerText()\fP .RE .PP .SS "bool QwtPicker::end (boolok = \fCtrue\fP)\fC [protected]\fP, \fC [virtual]\fP" .PP Close a selection setting the state to inactive\&. The selection is validated and maybe fixed by \fBQwtPicker::accept()\fP\&. .PP \fBParameters:\fP .RS 4 \fIok\fP If true, complete the selection and emit a selected signal otherwise discard the selection\&. .RE .PP \fBReturns:\fP .RS 4 true if the selection is accepted, false otherwise .RE .PP \fBSee also:\fP .RS 4 \fBisActive()\fP, \fBbegin()\fP, \fBappend()\fP, \fBmove()\fP, \fBselected()\fP, \fBaccept()\fP .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP, and \fBQwtPlotPicker\fP\&. .SS "bool QwtPicker::eventFilter (QObject *o, QEvent *e)\fC [virtual]\fP" .PP Event filter\&. When \fBisEnabled()\fP == true all events of the observed widget are filtered\&. Mouse and keyboard events are translated into widgetMouse- and widgetKey- and widgetWheel-events\&. Paint and Resize events are handled to keep rubberband and tracker up to date\&. .PP \fBSee also:\fP .RS 4 event(), \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "bool QwtPicker::isActive () const" A picker is active between \fBbegin()\fP and \fBend()\fP\&. .PP \fBReturns:\fP .RS 4 true if the selection is active\&. .RE .PP .SS "bool QwtPicker::isEnabled () const" \fBReturns:\fP .RS 4 true when enabled, false otherwise .RE .PP \fBSee also:\fP .RS 4 \fBsetEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "void QwtPicker::move (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Move the last point of the selection The \fBmoved()\fP signal is emitted\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP New position .RE .PP \fBSee also:\fP .RS 4 \fBisActive()\fP, \fBbegin()\fP, \fBend()\fP, \fBappend()\fP .RE .PP .PP Reimplemented in \fBQwtPlotPicker\fP\&. .SS "void QwtPicker::moved (const QPoint &pos)\fC [signal]\fP" A signal emitted whenever the last appended point of the selection has been moved\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Position of the moved last point of the selection\&. .RE .PP \fBSee also:\fP .RS 4 \fBmove()\fP, \fBappended()\fP .RE .PP .SS "QRect QwtPicker::pickRect () const\fC [virtual]\fP" Find the area of the observed widget, where selection might happen\&. .PP \fBReturns:\fP .RS 4 QFrame::contentsRect() if it is a QFrame, QWidget::rect() otherwise\&. .RE .PP .SS "void QwtPicker::reset ()\fC [protected]\fP, \fC [virtual]\fP" Reset the state machine and terminate (end(false)) the selection .SS "\fBQwtPicker::ResizeMode\fP QwtPicker::resizeMode () const" \fBReturns:\fP .RS 4 Resize mode .RE .PP \fBSee also:\fP .RS 4 \fBsetResizeMode()\fP, \fBResizeMode\fP .RE .PP .SS "\fBQwtPicker::RubberBand\fP QwtPicker::rubberBand () const" \fBReturns:\fP .RS 4 Rubberband style .RE .PP \fBSee also:\fP .RS 4 \fBsetRubberBand()\fP, \fBRubberBand\fP, \fBrubberBandPen()\fP .RE .PP .SS "QPen QwtPicker::rubberBandPen () const" \fBReturns:\fP .RS 4 Rubberband pen .RE .PP \fBSee also:\fP .RS 4 \fBsetRubberBandPen()\fP, \fBrubberBand()\fP .RE .PP .SS "const QWidget * QwtPicker::rubberBandWidget () const\fC [protected]\fP" \fBReturns:\fP .RS 4 Widget displaying the rubberband .RE .PP .SS "void QwtPicker::selected (const QwtPolygon &pa)\fC [signal]\fP" A signal emitting the selected points, at the end of a selection\&. .PP \fBParameters:\fP .RS 4 \fIpa\fP Selected points .RE .PP .SS "int QwtPicker::selectionFlags () const" \fBReturns:\fP .RS 4 Selection flags, an Or'd value of SelectionType, RectSelectionType and SelectionMode\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetSelectionFlags()\fP, \fBSelectionType\fP, \fBRectSelectionType\fP, \fBSelectionMode\fP .RE .PP .SS "void QwtPicker::setEnabled (boolenabled)\fC [virtual]\fP" .PP En/disable the picker\&. When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed\&. .PP \fBParameters:\fP .RS 4 \fIenabled\fP true or false .RE .PP \fBSee also:\fP .RS 4 \fBisEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "void QwtPicker::setResizeMode (\fBResizeMode\fPmode)\fC [virtual]\fP" .PP Set the resize mode\&. The resize mode controls what to do with the selected points of an active selection when the observed widget is resized\&. .PP Stretch means the points are scaled according to the new size, KeepSize means the points remain unchanged\&. .PP The default mode is Stretch\&. .PP \fBParameters:\fP .RS 4 \fImode\fP Resize mode .RE .PP \fBSee also:\fP .RS 4 \fBresizeMode()\fP, \fBResizeMode\fP .RE .PP .SS "void QwtPicker::setRubberBand (\fBRubberBand\fPrubberBand)\fC [virtual]\fP" Set the rubberband style .PP \fBParameters:\fP .RS 4 \fIrubberBand\fP Rubberband style The default value is NoRubberBand\&. .RE .PP \fBSee also:\fP .RS 4 \fBrubberBand()\fP, \fBRubberBand\fP, \fBsetRubberBandPen()\fP .RE .PP .SS "void QwtPicker::setRubberBandPen (const QPen &pen)\fC [virtual]\fP" Set the pen for the rubberband .PP \fBParameters:\fP .RS 4 \fIpen\fP Rubberband pen .RE .PP \fBSee also:\fP .RS 4 \fBrubberBandPen()\fP, \fBsetRubberBand()\fP .RE .PP .SS "void QwtPicker::setSelectionFlags (intflags)\fC [virtual]\fP" Set the selection flags .PP \fBParameters:\fP .RS 4 \fIflags\fP Or'd value of SelectionType, RectSelectionType and SelectionMode\&. The default value is NoSelection\&. .RE .PP \fBSee also:\fP .RS 4 \fBselectionFlags()\fP, \fBSelectionType\fP, \fBRectSelectionType\fP, \fBSelectionMode\fP .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "void QwtPicker::setTrackerFont (const QFont &font)\fC [virtual]\fP" Set the font for the tracker .PP \fBParameters:\fP .RS 4 \fIfont\fP Tracker font .RE .PP \fBSee also:\fP .RS 4 \fBtrackerFont()\fP, \fBsetTrackerMode()\fP, \fBsetTrackerPen()\fP .RE .PP .SS "void QwtPicker::setTrackerMode (\fBDisplayMode\fPmode)\fC [virtual]\fP" .PP Set the display mode of the tracker\&. A tracker displays information about current position of the cursor as a string\&. The display mode controls if the tracker has to be displayed whenever the observed widget has focus and cursor (AlwaysOn), never (AlwaysOff), or only when the selection is active (ActiveOnly)\&. .PP \fBParameters:\fP .RS 4 \fImode\fP Tracker display mode .RE .PP \fBWarning:\fP .RS 4 In case of AlwaysOn, mouseTracking will be enabled for the observed widget\&. .RE .PP \fBSee also:\fP .RS 4 \fBtrackerMode()\fP, \fBDisplayMode\fP .RE .PP .SS "void QwtPicker::setTrackerPen (const QPen &pen)\fC [virtual]\fP" Set the pen for the tracker .PP \fBParameters:\fP .RS 4 \fIpen\fP Tracker pen .RE .PP \fBSee also:\fP .RS 4 \fBtrackerPen()\fP, \fBsetTrackerMode()\fP, \fBsetTrackerFont()\fP .RE .PP .SS "\fBQwtPickerMachine\fP * QwtPicker::stateMachine (intflags) const\fC [protected]\fP, \fC [virtual]\fP" Create a state machine depending on the selection flags\&. .PP .IP "\(bu" 2 PointSelection | ClickSelection .br QwtPickerClickPointMachine() .IP "\(bu" 2 PointSelection | DragSelection .br QwtPickerDragPointMachine() .IP "\(bu" 2 RectSelection | ClickSelection .br QwtPickerClickRectMachine() .IP "\(bu" 2 RectSelection | DragSelection .br QwtPickerDragRectMachine() .IP "\(bu" 2 PolygonSelection .br QwtPickerPolygonMachine() .PP .PP \fBSee also:\fP .RS 4 \fBsetSelectionFlags()\fP .RE .PP .SS "void QwtPicker::stretchSelection (const QSize &oldSize, const QSize &newSize)\fC [protected]\fP, \fC [virtual]\fP" Scale the selection by the ratios of oldSize and newSize The \fBchanged()\fP signal is emitted\&. .PP \fBParameters:\fP .RS 4 \fIoldSize\fP Previous size .br \fInewSize\fP Current size .RE .PP \fBSee also:\fP .RS 4 \fBResizeMode\fP, \fBsetResizeMode()\fP, \fBresizeMode()\fP .RE .PP .SS "QFont QwtPicker::trackerFont () const" \fBReturns:\fP .RS 4 Tracker font .RE .PP \fBSee also:\fP .RS 4 \fBsetTrackerFont()\fP, \fBtrackerMode()\fP, \fBtrackerPen()\fP .RE .PP .SS "\fBQwtPicker::DisplayMode\fP QwtPicker::trackerMode () const" \fBReturns:\fP .RS 4 Tracker display mode .RE .PP \fBSee also:\fP .RS 4 \fBsetTrackerMode()\fP, \fBDisplayMode\fP .RE .PP .SS "QPen QwtPicker::trackerPen () const" \fBReturns:\fP .RS 4 Tracker pen .RE .PP \fBSee also:\fP .RS 4 \fBsetTrackerPen()\fP, \fBtrackerMode()\fP, \fBtrackerFont()\fP .RE .PP .SS "QPoint QwtPicker::trackerPosition () const" \fBReturns:\fP .RS 4 Current position of the tracker .RE .PP .SS "QRect QwtPicker::trackerRect (const QFont &font) const" Calculate the bounding rectangle for the tracker text from the current position of the tracker .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the tracker text .RE .PP \fBReturns:\fP .RS 4 Bounding rectangle of the tracker text .RE .PP \fBSee also:\fP .RS 4 \fBtrackerPosition()\fP .RE .PP .SS "\fBQwtText\fP QwtPicker::trackerText (const QPoint &pos) const\fC [virtual]\fP" .PP Return the label for a position\&. In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position\&. Otherwise the label contains x and y position separated by a ',' \&. .PP The format for the string conversion is '%d'\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Position .RE .PP \fBReturns:\fP .RS 4 Converted position as string .RE .PP .PP Reimplemented in \fBQwtPlotPicker\fP\&. .SS "const QWidget * QwtPicker::trackerWidget () const\fC [protected]\fP" \fBReturns:\fP .RS 4 Widget displaying the tracker text .RE .PP .SS "void QwtPicker::transition (const QEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Passes an event to the state machine and executes the resulting commands\&. Append and Move commands use the current position of the cursor (QCursor::pos())\&. .PP \fBParameters:\fP .RS 4 \fIe\fP Event .RE .PP .SS "void QwtPicker::widgetKeyPressEvent (QKeyEvent *ke)\fC [protected]\fP, \fC [virtual]\fP" Handle a key press event for the observed widget\&. .PP Selections can be completely done by the keyboard\&. The arrow keys move the cursor, the abort key aborts a selection\&. All other keys are handled by the current state machine\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBselectionFlags()\fP .PP \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyReleaseEvent()\fP, \fBstateMachine()\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "void QwtPicker::widgetKeyReleaseEvent (QKeyEvent *ke)\fC [protected]\fP, \fC [virtual]\fP" Handle a key release event for the observed widget\&. .PP Passes the event to the state machine\&. .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBstateMachine()\fP .RE .PP .SS "void QwtPicker::widgetLeaveEvent (QEvent *)\fC [protected]\fP, \fC [virtual]\fP" Handle a leave event for the observed widget\&. .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPicker::widgetMouseDoubleClickEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle mouse double click event for the observed widget\&. .PP Empty implementation, does nothing\&. .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPicker::widgetMouseMoveEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse move event for the observed widget\&. .PP Move the last point of the selection in case of \fBisActive()\fP == true .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPicker::widgetMousePressEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse press event for the observed widget\&. .PP Begin and/or end a selection depending on the selection flags\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBselectionFlags()\fP .PP \fBeventFilter()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtPicker::widgetMouseReleaseEvent (QMouseEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse relase event for the observed widget\&. .PP End a selection depending on the selection flags\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBselectionFlags()\fP .PP \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "void QwtPicker::widgetWheelEvent (QWheelEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle a wheel event for the observed widget\&. .PP Move the last point of the selection in case of \fBisActive()\fP == true .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseDoubleClickEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetKeyPressEvent()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtScaleDiv.3���������������������������������������������������������������0000644�0001750�0001750�00000010632�12052741142�016407� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtScaleDiv" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleDiv \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBTickType\fP { \fBNoTick\fP = -1, \fBMinorTick\fP, \fBMediumTick\fP, \fBMajorTick\fP, \fBNTickTypes\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleDiv\fP ()" .br .ti -1c .RI "\fBQwtScaleDiv\fP (const \fBQwtDoubleInterval\fP &, QwtValueList[NTickTypes])" .br .ti -1c .RI "\fBQwtScaleDiv\fP (double \fBlowerBound\fP, double \fBupperBound\fP, QwtValueList[NTickTypes])" .br .ti -1c .RI "bool \fBcontains\fP (double v) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBinterval\fP () const " .br .ti -1c .RI "void \fBinvalidate\fP ()" .br .ti -1c .RI "void \fBinvert\fP ()" .br .ti -1c .RI "bool \fBisValid\fP () const " .br .ti -1c .RI "double \fBlowerBound\fP () const " .br .ti -1c .RI "int \fBoperator!=\fP (const \fBQwtScaleDiv\fP &s) const " .br .ti -1c .RI "int \fBoperator==\fP (const \fBQwtScaleDiv\fP &s) const " .br .ti -1c .RI "double \fBrange\fP () const " .br .ti -1c .RI "void \fBsetInterval\fP (double \fBlowerBound\fP, double \fBupperBound\fP)" .br .ti -1c .RI "void \fBsetInterval\fP (const \fBQwtDoubleInterval\fP &)" .br .ti -1c .RI "void \fBsetTicks\fP (int type, const QwtValueList &)" .br .ti -1c .RI "const QwtValueList & \fBticks\fP (int type) const " .br .ti -1c .RI "double \fBupperBound\fP () const " .br .in -1c .SH "Detailed Description" .PP A class representing a scale division\&. A scale division consists of its limits and 3 list of tick values qualified as major, medium and minor ticks\&. .PP In most cases scale divisions are calculated by a \fBQwtScaleEngine\fP\&. .PP \fBSee also:\fP .RS 4 subDivideInto(), subDivide() .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtScaleDiv::QwtScaleDiv (const \fBQwtDoubleInterval\fP &interval, QwtValueListticks[NTickTypes])\fC [explicit]\fP" Construct \fBQwtScaleDiv\fP instance\&. .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval .br \fIticks\fP List of major, medium and minor ticks .RE .PP .SS "QwtScaleDiv::QwtScaleDiv (doublelowerBound, doubleupperBound, QwtValueListticks[NTickTypes])\fC [explicit]\fP" Construct \fBQwtScaleDiv\fP instance\&. .PP \fBParameters:\fP .RS 4 \fIlowerBound\fP First interval limit .br \fIupperBound\fP Second interval limit .br \fIticks\fP List of major, medium and minor ticks .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtScaleDiv::contains (doublevalue) const" Return if a value is between \fBlowerBound()\fP and \fBupperBound()\fP .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 true/false .RE .PP .SS "\fBQwtDoubleInterval\fP QwtScaleDiv::interval () const\fC [inline]\fP" \fBReturns:\fP .RS 4 lowerBound -> upperBound .RE .PP .SS "double QwtScaleDiv::lowerBound () const\fC [inline]\fP" \fBReturns:\fP .RS 4 lower bound .RE .PP \fBSee also:\fP .RS 4 \fBupperBound()\fP .RE .PP .SS "int QwtScaleDiv::operator!= (const \fBQwtScaleDiv\fP &s) const" .PP Inequality\&. \fBReturns:\fP .RS 4 true if this instance is not equal to s .RE .PP .SS "int QwtScaleDiv::operator== (const \fBQwtScaleDiv\fP &other) const" .PP Equality operator\&. \fBReturns:\fP .RS 4 true if this instance is equal to other .RE .PP .SS "double QwtScaleDiv::range () const\fC [inline]\fP" \fBReturns:\fP .RS 4 \fBupperBound()\fP - \fBlowerBound()\fP .RE .PP .SS "void QwtScaleDiv::setInterval (doublelowerBound, doubleupperBound)\fC [inline]\fP" Change the interval .PP \fBParameters:\fP .RS 4 \fIlowerBound\fP lower bound .br \fIupperBound\fP upper bound .RE .PP .SS "void QwtScaleDiv::setInterval (const \fBQwtDoubleInterval\fP &interval)" Change the interval .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval .RE .PP .SS "void QwtScaleDiv::setTicks (inttype, const QwtValueList &ticks)" Assign ticks .PP \fBParameters:\fP .RS 4 \fItype\fP MinorTick, MediumTick or MajorTick .br \fIticks\fP Values of the tick positions .RE .PP .SS "const QwtValueList & QwtScaleDiv::ticks (inttype) const" Return a list of ticks .PP \fBParameters:\fP .RS 4 \fItype\fP MinorTick, MediumTick or MajorTick .RE .PP .SS "double QwtScaleDiv::upperBound () const\fC [inline]\fP" \fBReturns:\fP .RS 4 upper bound .RE .PP \fBSee also:\fP .RS 4 \fBlowerBound()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlainTextEngine.3��������������������������������������������������������0000644�0001750�0001750�00000006361�12052741141�017756� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlainTextEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlainTextEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtTextEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlainTextEngine\fP ()" .br .ti -1c .RI "virtual \fB~QwtPlainTextEngine\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QRect &rect, int flags, const QString &text) const " .br .ti -1c .RI "virtual int \fBheightForWidth\fP (const QFont &font, int flags, const QString &text, int width) const " .br .ti -1c .RI "virtual bool \fBmightRender\fP (const QString &) const " .br .ti -1c .RI "virtual void \fBtextMargins\fP (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const " .br .ti -1c .RI "virtual QSize \fBtextSize\fP (const QFont &font, int flags, const QString &text) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A text engine for plain texts\&. \fBQwtPlainTextEngine\fP renders texts using the basic Qt classes QPainter and QFontMetrics\&. .SH "Member Function Documentation" .PP .SS "void QwtPlainTextEngine::draw (QPainter *painter, const QRect &rect, intflags, const QString &text) const\fC [virtual]\fP" .PP Draw the text in a clipping rectangle\&. A wrapper for QPainter::drawText\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Clipping rectangle .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "int QwtPlainTextEngine::heightForWidth (const QFont &font, intflags, const QString &text, intwidth) const\fC [virtual]\fP" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .br \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "bool QwtPlainTextEngine::mightRender (const QString &) const\fC [virtual]\fP" Test if a string can be rendered by this text engine\&. .PP \fBReturns:\fP .RS 4 Always true\&. All texts can be rendered by \fBQwtPlainTextEngine\fP .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "void QwtPlainTextEngine::textMargins (const QFont &font, const QString &, int &left, int &right, int &top, int &bottom) const\fC [virtual]\fP" Return margins around the texts .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIleft\fP Return 0 .br \fIright\fP Return 0 .br \fItop\fP Return value for the top margin .br \fIbottom\fP Return value for the bottom margin .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "QSize QwtPlainTextEngine::textSize (const QFont &font, intflags, const QString &text) const\fC [virtual]\fP" Returns the size, that is needed to render text .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP \fBReturns:\fP .RS 4 Caluclated size .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtMagnifier.3��������������������������������������������������������������0000644�0001750�0001750�00000022307�12052741140�016616� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtMagnifier" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtMagnifier \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPlotMagnifier\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtMagnifier\fP (QWidget *)" .br .ti -1c .RI "virtual \fB~QwtMagnifier\fP ()" .br .ti -1c .RI "virtual bool \fBeventFilter\fP (QObject *, QEvent *)" .br .ti -1c .RI "void \fBgetMouseButton\fP (int &button, int &buttonState) const " .br .ti -1c .RI "void \fBgetZoomInKey\fP (int &key, int &modifiers) const " .br .ti -1c .RI "void \fBgetZoomOutKey\fP (int &key, int &modifiers) const " .br .ti -1c .RI "bool \fBisEnabled\fP () const " .br .ti -1c .RI "double \fBkeyFactor\fP () const " .br .ti -1c .RI "double \fBmouseFactor\fP () const " .br .ti -1c .RI "QWidget * \fBparentWidget\fP ()" .br .ti -1c .RI "const QWidget * \fBparentWidget\fP () const " .br .ti -1c .RI "void \fBsetEnabled\fP (bool)" .br .ti -1c .RI "void \fBsetKeyFactor\fP (double)" .br .ti -1c .RI "void \fBsetMouseButton\fP (int button, int buttonState=Qt::NoButton)" .br .ti -1c .RI "void \fBsetMouseFactor\fP (double)" .br .ti -1c .RI "void \fBsetWheelButtonState\fP (int buttonState)" .br .ti -1c .RI "void \fBsetWheelFactor\fP (double)" .br .ti -1c .RI "void \fBsetZoomInKey\fP (int key, int modifiers)" .br .ti -1c .RI "void \fBsetZoomOutKey\fP (int key, int modifiers)" .br .ti -1c .RI "int \fBwheelButtonState\fP () const " .br .ti -1c .RI "double \fBwheelFactor\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBrescale\fP (double factor)=0" .br .ti -1c .RI "virtual void \fBwidgetKeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetKeyReleaseEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseMoveEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMousePressEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseReleaseEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBwidgetWheelEvent\fP (QWheelEvent *)" .br .in -1c .SH "Detailed Description" .PP \fBQwtMagnifier\fP provides zooming, by magnifying in steps\&. Using \fBQwtMagnifier\fP a plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtMagnifier::QwtMagnifier (QWidget *parent)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Widget to be magnified .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtMagnifier::eventFilter (QObject *o, QEvent *e)\fC [virtual]\fP" .PP Event filter\&. When \fBisEnabled()\fP the mouse events of the observed widget are filtered\&. .PP \fBSee also:\fP .RS 4 \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseMoveEvent()\fP, \fBwidgetWheelEvent()\fP, \fBwidgetKeyPressEvent()\fP \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtMagnifier::getMouseButton (int &button, int &buttonState) const" \fBSee also:\fP .RS 4 \fBsetMouseButton()\fP .RE .PP .SS "void QwtMagnifier::getZoomInKey (int &key, int &modifiers) const" \fBSee also:\fP .RS 4 \fBsetZoomInKey()\fP .RE .PP .SS "void QwtMagnifier::getZoomOutKey (int &key, int &modifiers) const" \fBSee also:\fP .RS 4 \fBsetZoomOutKey()\fP .RE .PP .SS "bool QwtMagnifier::isEnabled () const" \fBReturns:\fP .RS 4 true when enabled, false otherwise .RE .PP \fBSee also:\fP .RS 4 \fBsetEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "double QwtMagnifier::keyFactor () const" \fBReturns:\fP .RS 4 Key factor .RE .PP \fBSee also:\fP .RS 4 \fBsetKeyFactor()\fP .RE .PP .SS "double QwtMagnifier::mouseFactor () const" \fBReturns:\fP .RS 4 Mouse factor .RE .PP \fBSee also:\fP .RS 4 \fBsetMouseFactor()\fP .RE .PP .SS "QWidget * QwtMagnifier::parentWidget ()" \fBReturns:\fP .RS 4 Parent widget, where the rescaling happens .RE .PP .SS "const QWidget * QwtMagnifier::parentWidget () const" \fBReturns:\fP .RS 4 Parent widget, where the rescaling happens .RE .PP .SS "virtual void QwtMagnifier::rescale (doublefactor)\fC [protected]\fP, \fC [pure virtual]\fP" Rescale the parent widget .PP \fBParameters:\fP .RS 4 \fIfactor\fP Scale factor .RE .PP .PP Implemented in \fBQwtPlotMagnifier\fP\&. .SS "void QwtMagnifier::setEnabled (boolon)" .PP En/disable the magnifier\&. When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed\&. .PP \fBParameters:\fP .RS 4 \fIon\fP true or false .RE .PP \fBSee also:\fP .RS 4 \fBisEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "void QwtMagnifier::setKeyFactor (doublefactor)" .PP Change the key factor\&. The key factor defines the ratio between the current range on the parent widget and the zoomed range for each key press of the zoom in/out keys\&. The default value is 0\&.9\&. .PP \fBParameters:\fP .RS 4 \fIfactor\fP Key factor .RE .PP \fBSee also:\fP .RS 4 \fBkeyFactor()\fP, \fBsetZoomInKey()\fP, \fBsetZoomOutKey()\fP, \fBsetWheelFactor\fP, \fBsetMouseFactor()\fP .RE .PP .SS "void QwtMagnifier::setMouseButton (intbutton, intbuttonState = \fCQt::NoButton\fP)" Assign the mouse button, that is used for zooming in/out\&. The default value is Qt::RightButton\&. .PP \fBParameters:\fP .RS 4 \fIbutton\fP Button .br \fIbuttonState\fP Button state .RE .PP \fBSee also:\fP .RS 4 \fBgetMouseButton()\fP .RE .PP .SS "void QwtMagnifier::setMouseFactor (doublefactor)" .PP Change the mouse factor\&. The mouse factor defines the ratio between the current range on the parent widget and the zoomed range for each vertical mouse movement\&. The default value is 0\&.95\&. .PP \fBParameters:\fP .RS 4 \fIfactor\fP Wheel factor .RE .PP \fBSee also:\fP .RS 4 \fBmouseFactor()\fP, \fBsetMouseButton()\fP, \fBsetWheelFactor()\fP, \fBsetKeyFactor()\fP .RE .PP .SS "void QwtMagnifier::setWheelButtonState (intbuttonState)" Assign a mandatory button state for zooming in/out using the wheel\&. The default button state is Qt::NoButton\&. .PP \fBParameters:\fP .RS 4 \fIbuttonState\fP Button state .RE .PP \fBSee also:\fP .RS 4 \fBwheelButtonState()\fP .RE .PP .SS "void QwtMagnifier::setWheelFactor (doublefactor)" .PP Change the wheel factor\&. The wheel factor defines the ratio between the current range on the parent widget and the zoomed range for each step of the wheel\&. The default value is 0\&.9\&. .PP \fBParameters:\fP .RS 4 \fIfactor\fP Wheel factor .RE .PP \fBSee also:\fP .RS 4 \fBwheelFactor()\fP, \fBsetWheelButtonState()\fP, \fBsetMouseFactor()\fP, \fBsetKeyFactor()\fP .RE .PP .SS "void QwtMagnifier::setZoomInKey (intkey, intmodifiers)" Assign the key, that is used for zooming in\&. The default combination is Qt::Key_Plus + Qt::NoModifier\&. .PP \fBParameters:\fP .RS 4 \fIkey\fP .br \fImodifiers\fP .RE .PP \fBSee also:\fP .RS 4 \fBgetZoomInKey()\fP, \fBsetZoomOutKey()\fP .RE .PP .SS "void QwtMagnifier::setZoomOutKey (intkey, intmodifiers)" Assign the key, that is used for zooming out\&. The default combination is Qt::Key_Minus + Qt::NoModifier\&. .PP \fBParameters:\fP .RS 4 \fIkey\fP .br \fImodifiers\fP .RE .PP \fBSee also:\fP .RS 4 \fBgetZoomOutKey()\fP, \fBsetZoomOutKey()\fP .RE .PP .SS "int QwtMagnifier::wheelButtonState () const" \fBReturns:\fP .RS 4 Wheel button state .RE .PP \fBSee also:\fP .RS 4 \fBsetWheelButtonState()\fP .RE .PP .SS "double QwtMagnifier::wheelFactor () const" \fBReturns:\fP .RS 4 Wheel factor .RE .PP \fBSee also:\fP .RS 4 \fBsetWheelFactor()\fP .RE .PP .SS "void QwtMagnifier::widgetKeyPressEvent (QKeyEvent *ke)\fC [protected]\fP, \fC [virtual]\fP" Handle a key press event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIke\fP Key event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtMagnifier::widgetKeyReleaseEvent (QKeyEvent *)\fC [protected]\fP, \fC [virtual]\fP" Handle a key release event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIke\fP Key event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetKeyReleaseEvent()\fP .RE .PP .SS "void QwtMagnifier::widgetMouseMoveEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse move event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIme\fP Mouse event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseReleaseEvent()\fP, .RE .PP .SS "void QwtMagnifier::widgetMousePressEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse press event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIme\fP Mouse event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMouseReleaseEvent()\fP, \fBwidgetMouseMoveEvent()\fP .RE .PP .SS "void QwtMagnifier::widgetMouseReleaseEvent (QMouseEvent *)\fC [protected]\fP, \fC [virtual]\fP" Handle a mouse release event for the observed widget\&. .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP, \fBwidgetMousePressEvent()\fP, \fBwidgetMouseMoveEvent()\fP, .RE .PP .SS "void QwtMagnifier::widgetWheelEvent (QWheelEvent *we)\fC [protected]\fP, \fC [virtual]\fP" Handle a wheel event for the observed widget\&. .PP \fBParameters:\fP .RS 4 \fIwe\fP Wheel event .RE .PP \fBSee also:\fP .RS 4 \fBeventFilter()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/qwtinstall.3����������������������������������������������������������������0000644�0001750�0001750�00000011607�12052741136�016431� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "qwtinstall" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME qwtinstall \- INSTALL .PP .nf Introduction ============ Qwt uses qmake to build all its components and examples\&. qmake is part of a Qt distribution\&. qmake reads project files, that contain the options and rules how to build a certain project\&. A project file ends with the suffix '*\&.pro'\&. Files that end with the suffix '*\&.pri' are included by the project files and contain definitions, that are common for several project files\&. qwtconfig\&.pri is read by all project files of the Qwt package\&. So the first step is to edit qwtconfig\&.pri to adjust it to your needs\&. MathML Extension ================ Qwt/Qt4 supports the MathML render engine from the Qt solutions package, that is only available with a commercial Qt license\&. You need a release of qtmmlwidget >= 2\&.1\&. Copy the files qtmmlwidget\&.[cpp|h] to textengines/mathml\&. Documentation ========================== Qwt includes a class documentation, that is available in various formats: - Html files - PDF document - Qt Compressed Help (*\&.qch ) for the Qt assistant or creator\&. You can load it 'Edit Preferences' -> 'Documentation' -> 'Add\&.\&.\&.' - Man pages ( UNIX only ) A) Unix Qt3/Qt4 ========================== qmake qwt\&.pro make make install If you have installed a shared library it's path has to be known to the run-time linker of your operating system\&. On Linux systems read 'man ldconfig' ( or google for it )\&. Another option is to use the LD_LIBRARY_PATH (on some systems LIBPATH is used instead, on MacOSX it is called DYLD_LIBRARY_PATH) environment variable\&. If you only want to check the Qwt examples without installing something, you can set the LD_LIBRARY_PATH to the lib directory of your local build\&. If you didn't enable autobuilding of the examples in qwtconfig\&.pri you have to build the examples this way: cd examples qmake examples\&.pro make B) Win32/MSVC Qt3/Qt4 ===================== Please read the qmake documentation how to convert your *\&.pro files into your development environment\&. F\&.e MSVC with nmake: qmake qwt\&.pro nmake nmake install If you didn't enable autobuilding of the examples in qwtconfig\&.pri you have to build the examples this way: cd examples qmake examples\&.pro nmake admin/msvc-qmake\&.bat helps users of Visual Studio users to generate makefiles or project files (\&.dsp for MSVC-6\&.0 or vcproj for MSVC\&.NET) for Qwt\&. To generate makefiles, type: 'admin\msvc-qmake' To generate project files, type: 'admin\msvc-qmake vc' When you have built a Qwt DLL you need to add the following define to your compiler flags: QWT_DLL\&. Windows doesn't like mixing of debug and release binaries\&. Most of the problems with using the Qwt designer plugin are because of trying to load a Qwt debug library into a designer release executable\&. C) Win32/MinGW Qt4 ================== C1) Windows Shell Start a Windows Shell, where Qt4 is initialized\&. ( F\&.e\&. with 'Programs->Qt by Trolltech \&.\&.\&.->Qt 4\&.x\&.x Command Prompt' )\&. qmake qwt\&.pro make make install If you didn't enable autobuilding of the examples in qwtconfig\&.pri you have to build the examples this way: cd examples qmake examples\&.pro make C2) MSYS Shell Qt >= 4\&.3\&.0 Support for the MSYS Shell has been improved in Qt 4\&.3\&.0\&. Now building Qwt from the MSYS Shell works exactly like in UNIX or in the Windows Shell - or at least it should: because of a bug in Qt 4\&.3\&.0 you always have to do a 'qmake -r'\&. C3) MSYS Shell Qt < 4\&.3\&.0 For Qt < 4\&.3\&.0 you have to set the MINGW_IN_SHELL variable\&. make will run into errors with the subdirs target, that can be ignored (make -i)\&. export MINGW_IN_SHELL=1; qmake make -i make -i install If you didn't enable autobuilding of the examples in qwtconfig\&.pri you have to build the examples this way: cd examples qmake examples\&.pro make -i C1-C3) When you have built a Qwt DLL you need to add QWT_DLL to your compiler flags\&. If you are using qmake for your own builds this done by adding the following line to your profile: 'DEFINES += QWT_DLL'\&. Windows doesn't like mixing of debug and release binaries\&. Most of the problems with using the Qwt designer plugin are because of trying to load a Qwt debug library into a designer release executable\&. D) MacOSX Well, the Mac is only another Unix system\&. So read the instructions in A)\&. In the recent Qt4 releases the default target of qmake is to generate XCode project files instead of makefiles\&. So you might need to do the following: qmake -spec macx-g++ qwt\&.pro \&.\&.\&. E) Qt Embedded -------- I only tested Qwt with Qt Embedded in qvfb (Virtual Framebuffer Devivce) Emulator on my Linux box\&. To build Qwt for the emulator was as simple as for a regular Unix build\&. F) Symbian -------- I never tried this platform myself\&. Good luck ! .fi .PP �������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/_tmp_qwt-5.2.3-tmp_textengines_mathml_.3������������������������������������0000644�0001750�0001750�00000000577�12052741143�023442� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "/tmp/qwt-5.2.3-tmp/textengines/mathml/ Directory Reference" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME /tmp/qwt-5.2.3-tmp/textengines/mathml/ Directory Reference \- .SH SYNOPSIS .br .PP .SS "Files" .in +1c .ti -1c .RI "file \fBqwt_mathml_text_engine\&.cpp\fP" .br .ti -1c .RI "file \fBqwt_mathml_text_engine\&.h\fP" .br .in -1c ���������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtSpline.3�����������������������������������������������������������������0000644�0001750�0001750�00000011630�12052741143�016147� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtSpline" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtSpline \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBSplineType\fP { \fBNatural\fP, \fBPeriodic\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtSpline\fP ()" .br .ti -1c .RI "\fBQwtSpline\fP (const \fBQwtSpline\fP &)" .br .ti -1c .RI "\fB~QwtSpline\fP ()" .br .ti -1c .RI "const QwtArray< double > & \fBcoefficientsA\fP () const " .br .ti -1c .RI "const QwtArray< double > & \fBcoefficientsB\fP () const " .br .ti -1c .RI "const QwtArray< double > & \fBcoefficientsC\fP () const " .br .ti -1c .RI "bool \fBisValid\fP () const " .br .ti -1c .RI "\fBQwtSpline\fP & \fBoperator=\fP (const \fBQwtSpline\fP &)" .br .ti -1c .RI "QPolygonF \fBpoints\fP () const " .br .ti -1c .RI "void \fBreset\fP ()" .br .ti -1c .RI "bool \fBsetPoints\fP (const QPolygonF &\fBpoints\fP)" .br .ti -1c .RI "void \fBsetSplineType\fP (\fBSplineType\fP)" .br .ti -1c .RI "\fBSplineType\fP \fBsplineType\fP () const " .br .ti -1c .RI "double \fBvalue\fP (double x) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "bool \fBbuildNaturalSpline\fP (const QPolygonF &)" .br .ti -1c .RI "bool \fBbuildPeriodicSpline\fP (const QPolygonF &)" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "PrivateData * \fBd_data\fP" .br .in -1c .SH "Detailed Description" .PP A class for spline interpolation\&. The \fBQwtSpline\fP class is used for cubical spline interpolation\&. Two types of splines, natural and periodic, are supported\&. .PP \fBUsage:\fP .RS 4 .PD 0 .IP "1." 4 First call \fBsetPoints()\fP to determine the spline coefficients for a tabulated function y(x)\&. .IP "2." 4 After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling \fBQwtSpline::value()\fP\&. .PP .RE .PP \fBExample:\fP .RS 4 .PP .nf #include QPolygonF interpolate(const QPolygonF& points, int numValues) { QwtSpline spline; if ( !spline\&.setPoints(points) ) return points; QPolygonF interpolatedPoints(numValues); const double delta = (points[numPoints - 1]\&.x() - points[0]\&.x()) / (points\&.size() - 1); for(i = 0; i < points\&.size(); i++) / interpolate { const double x = points[0]\&.x() + i * delta; interpolatedPoints[i]\&.setX(x); interpolatedPoints[i]\&.setY(spline\&.value(x)); } return interpolatedPoints; } .fi .PP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtSpline::QwtSpline (const \fBQwtSpline\fP &other)" Copy constructor .PP \fBParameters:\fP .RS 4 \fIother\fP Spline used for initilization .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtSpline::buildNaturalSpline (const QPolygonF &points)\fC [protected]\fP" .PP Determines the coefficients for a natural spline\&. \fBReturns:\fP .RS 4 true if successful .RE .PP .SS "bool QwtSpline::buildPeriodicSpline (const QPolygonF &points)\fC [protected]\fP" .PP Determines the coefficients for a periodic spline\&. \fBReturns:\fP .RS 4 true if successful .RE .PP .SS "const QwtArray< double > & QwtSpline::coefficientsA () const" \fBReturns:\fP .RS 4 A coefficients .RE .PP .SS "const QwtArray< double > & QwtSpline::coefficientsB () const" \fBReturns:\fP .RS 4 B coefficients .RE .PP .SS "const QwtArray< double > & QwtSpline::coefficientsC () const" \fBReturns:\fP .RS 4 C coefficients .RE .PP .SS "\fBQwtSpline\fP & QwtSpline::operator= (const \fBQwtSpline\fP &other)" Assignment operator .PP \fBParameters:\fP .RS 4 \fIother\fP Spline used for initilization .RE .PP .SS "QPolygonF QwtSpline::points () const" Return points passed by setPoints .SS "bool QwtSpline::setPoints (const QPolygonF &points)" .PP Calculate the spline coefficients\&. Depending on the value of \fIperiodic\fP, this function will determine the coefficients for a natural or a periodic spline and store them internally\&. .PP \fBParameters:\fP .RS 4 \fIpoints\fP Points .RE .PP \fBReturns:\fP .RS 4 true if successful .RE .PP \fBWarning:\fP .RS 4 The sequence of x (but not y) values has to be strictly monotone increasing, which means \fCpoints[i]\&.x() < points[i+1]\&.x()\fP\&. If this is not the case, the function will return false .RE .PP .SS "void QwtSpline::setSplineType (\fBSplineType\fPsplineType)" Select the algorithm used for calculating the spline .PP \fBParameters:\fP .RS 4 \fIsplineType\fP Spline type .RE .PP \fBSee also:\fP .RS 4 \fBsplineType()\fP .RE .PP .SS "\fBQwtSpline::SplineType\fP QwtSpline::splineType () const" \fBReturns:\fP .RS 4 the spline type .RE .PP \fBSee also:\fP .RS 4 \fBsetSplineType()\fP .RE .PP .SS "double QwtSpline::value (doublex) const" Calculate the interpolated function value corresponding to a given argument x\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotRescaler.3�����������������������������������������������������������0000644�0001750�0001750�00000023550�12052741142�017317� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotRescaler" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotRescaler \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBExpandingDirection\fP { \fBExpandUp\fP, \fBExpandDown\fP, \fBExpandBoth\fP }" .br .ti -1c .RI "enum \fBRescalePolicy\fP { \fBFixed\fP, \fBExpanding\fP, \fBFitting\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotRescaler\fP (\fBQwtPlotCanvas\fP *, int \fBreferenceAxis\fP=QwtPlot::xBottom, \fBRescalePolicy\fP=Expanding)" .br .ti -1c .RI "virtual \fB~QwtPlotRescaler\fP ()" .br .ti -1c .RI "double \fBaspectRatio\fP (int axis) const " .br .ti -1c .RI "\fBQwtPlotCanvas\fP * \fBcanvas\fP ()" .br .ti -1c .RI "const \fBQwtPlotCanvas\fP * \fBcanvas\fP () const " .br .ti -1c .RI "virtual bool \fBeventFilter\fP (QObject *, QEvent *)" .br .ti -1c .RI "ExpandingDirection \fBexpandingDirection\fP (int axis) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBintervalHint\fP (int axis) const " .br .ti -1c .RI "bool \fBisEnabled\fP () const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP ()" .br .ti -1c .RI "const \fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "int \fBreferenceAxis\fP () const " .br .ti -1c .RI "void \fBrescale\fP () const " .br .ti -1c .RI "\fBRescalePolicy\fP \fBrescalePolicy\fP () const " .br .ti -1c .RI "void \fBsetAspectRatio\fP (double ratio)" .br .ti -1c .RI "void \fBsetAspectRatio\fP (int axis, double ratio)" .br .ti -1c .RI "void \fBsetEnabled\fP (bool)" .br .ti -1c .RI "void \fBsetExpandingDirection\fP (ExpandingDirection)" .br .ti -1c .RI "void \fBsetExpandingDirection\fP (int axis, ExpandingDirection)" .br .ti -1c .RI "void \fBsetIntervalHint\fP (int axis, const \fBQwtDoubleInterval\fP &)" .br .ti -1c .RI "void \fBsetReferenceAxis\fP (int axis)" .br .ti -1c .RI "void \fBsetRescalePolicy\fP (\fBRescalePolicy\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBcanvasResizeEvent\fP (QResizeEvent *)" .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBexpandInterval\fP (const \fBQwtDoubleInterval\fP &, double width, ExpandingDirection) const " .br .ti -1c .RI "virtual \fBQwtDoubleInterval\fP \fBexpandScale\fP (int axis, const QSize &oldSize, const QSize &newSize) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBinterval\fP (int axis) const " .br .ti -1c .RI "Qt::Orientation \fBorientation\fP (int axis) const " .br .ti -1c .RI "virtual void \fBrescale\fP (const QSize &oldSize, const QSize &newSize) const " .br .ti -1c .RI "virtual \fBQwtDoubleInterval\fP \fBsyncScale\fP (int axis, const \fBQwtDoubleInterval\fP &reference, const QSize &size) const " .br .ti -1c .RI "virtual void \fBupdateScales\fP (\fBQwtDoubleInterval\fP intervals[QwtPlot::axisCnt]) const " .br .in -1c .SH "Detailed Description" .PP \fBQwtPlotRescaler\fP takes care of fixed aspect ratios for plot scales\&. \fBQwtPlotRescaler\fP autoadjusts the axes of a \fBQwtPlot\fP according to fixed aspect ratios\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotRescaler::RescalePolicy\fP" .PP Rescale Policy\&. The rescale policy defines how to rescale the reference axis and their depending axes\&. .PP .IP "\(bu" 2 Fixed .PP The interval of the reference axis remains unchanged, when the geometry of the canvas changes\&. All other axes will be adjusted according to their aspect ratio\&. .PP .PP .IP "\(bu" 2 Expanding .PP The interval of the reference axis will be shrinked/expanded, when the geometry of the canvas changes\&. All other axes will be adjusted according to their aspect ratio\&. .PP The interval, that is represented by one pixel is fixed\&. .PP .PP .IP "\(bu" 2 Fitting .PP The intervals of the axes are calculated, so that all axes include their minimal interval\&. .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotRescaler::QwtPlotRescaler (\fBQwtPlotCanvas\fP *canvas, intreferenceAxis = \fCQwtPlot::xBottom\fP, \fBRescalePolicy\fPpolicy = \fCExpanding\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIcanvas\fP Canvas .br \fIreferenceAxis\fP Reference axis, see RescalePolicy .br \fIpolicy\fP Rescale policy .RE .PP \fBSee also:\fP .RS 4 \fBsetRescalePolicy()\fP, \fBsetReferenceAxis()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "double QwtPlotRescaler::aspectRatio (intaxis) const" Return aspect ratio between an axis and the reference axis\&. .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .RE .PP \fBSee also:\fP .RS 4 \fBsetAspectRatio()\fP .RE .PP .SS "\fBQwtPlotCanvas\fP * QwtPlotRescaler::canvas ()" \fBReturns:\fP .RS 4 plot canvas .RE .PP .SS "const \fBQwtPlotCanvas\fP * QwtPlotRescaler::canvas () const" \fBReturns:\fP .RS 4 plot canvas .RE .PP .SS "QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection (intaxis) const" Return direction in which an axis should be expanded .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .RE .PP \fBSee also:\fP .RS 4 \fBsetExpandingDirection()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtPlotRescaler::expandInterval (const \fBQwtDoubleInterval\fP &interval, doublewidth, ExpandingDirectiondirection) const\fC [protected]\fP" Expand the interval .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval to be expanded .br \fIwidth\fP Distance to be added to the interval .br \fIdirection\fP Direction of the expand operation .RE .PP \fBReturns:\fP .RS 4 Expanded interval .RE .PP .SS "\fBQwtDoubleInterval\fP QwtPlotRescaler::expandScale (intaxis, const QSize &oldSize, const QSize &newSize) const\fC [protected]\fP, \fC [virtual]\fP" Calculate the new scale interval of a plot axis .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .br \fIoldSize\fP Previous size of the canvas .br \fInewSize\fP New size of the canvas .RE .PP \fBReturns:\fP .RS 4 Calculated new interval for the axis .RE .PP .SS "\fBQwtDoubleInterval\fP QwtPlotRescaler::interval (intaxis) const\fC [protected]\fP" Return interval of an axis .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .RE .PP .SS "bool QwtPlotRescaler::isEnabled () const" \fBReturns:\fP .RS 4 true when enabled, false otherwise .RE .PP \fBSee also:\fP .RS 4 \fBsetEnabled\fP, \fBeventFilter()\fP .RE .PP .SS "Qt::Orientation QwtPlotRescaler::orientation (intaxis) const\fC [protected]\fP" Return orientation of an axis .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .RE .PP .SS "\fBQwtPlot\fP * QwtPlotRescaler::plot ()" \fBReturns:\fP .RS 4 plot widget .RE .PP .SS "const \fBQwtPlot\fP * QwtPlotRescaler::plot () const" \fBReturns:\fP .RS 4 plot widget .RE .PP .SS "int QwtPlotRescaler::referenceAxis () const" \fBReturns:\fP .RS 4 Reference axis ( see RescalePolicy ) .RE .PP \fBSee also:\fP .RS 4 \fBsetReferenceAxis()\fP .RE .PP .SS "void QwtPlotRescaler::rescale (const QSize &oldSize, const QSize &newSize) const\fC [protected]\fP, \fC [virtual]\fP" Adjust the plot axes scales .PP \fBParameters:\fP .RS 4 \fIoldSize\fP Previous size of the canvas .br \fInewSize\fP New size of the canvas .RE .PP .SS "\fBQwtPlotRescaler::RescalePolicy\fP QwtPlotRescaler::rescalePolicy () const" \fBReturns:\fP .RS 4 Rescale policy .RE .PP \fBSee also:\fP .RS 4 \fBsetRescalePolicy()\fP .RE .PP .SS "void QwtPlotRescaler::setAspectRatio (doubleratio)" Set the aspect ratio between the scale of the reference axis and the other scales\&. The default ratio is 1\&.0 .PP \fBParameters:\fP .RS 4 \fIratio\fP Aspect ratio .RE .PP \fBSee also:\fP .RS 4 \fBaspectRatio()\fP .RE .PP .SS "void QwtPlotRescaler::setAspectRatio (intaxis, doubleratio)" Set the aspect ratio between the scale of the reference axis and another scale\&. The default ratio is 1\&.0 .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .br \fIratio\fP Aspect ratio .RE .PP \fBSee also:\fP .RS 4 \fBaspectRatio()\fP .RE .PP .SS "void QwtPlotRescaler::setEnabled (boolon)" .PP En/disable the rescaler\&. When enabled is true an event filter is installed for the canvas, otherwise the event filter is removed\&. .PP \fBParameters:\fP .RS 4 \fIon\fP true or false .RE .PP \fBSee also:\fP .RS 4 \fBisEnabled()\fP, \fBeventFilter()\fP .RE .PP .SS "void QwtPlotRescaler::setExpandingDirection (ExpandingDirectiondirection)" Set the direction in which all axis should be expanded .PP \fBParameters:\fP .RS 4 \fIdirection\fP Direction .RE .PP \fBSee also:\fP .RS 4 \fBexpandingDirection()\fP .RE .PP .SS "void QwtPlotRescaler::setExpandingDirection (intaxis, ExpandingDirectiondirection)" Set the direction in which an axis should be expanded .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .br \fIdirection\fP Direction .RE .PP \fBSee also:\fP .RS 4 \fBexpandingDirection()\fP .RE .PP .SS "void QwtPlotRescaler::setReferenceAxis (intaxis)" Set the reference axis ( see RescalePolicy ) .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( \fBQwtPlot::Axis\fP ) .RE .PP \fBSee also:\fP .RS 4 \fBreferenceAxis()\fP .RE .PP .SS "void QwtPlotRescaler::setRescalePolicy (\fBRescalePolicy\fPpolicy)" Change the rescale policy .PP \fBParameters:\fP .RS 4 \fIpolicy\fP Rescale policy .RE .PP \fBSee also:\fP .RS 4 \fBrescalePolicy()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtPlotRescaler::syncScale (intaxis, const \fBQwtDoubleInterval\fP &reference, const QSize &size) const\fC [protected]\fP, \fC [virtual]\fP" Synchronize an axis scale according to the scale of the reference axis .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis index ( see QwtPlot::AxisId ) .br \fIreference\fP Interval of the reference axis .br \fIsize\fP Size of the canvas .RE .PP .SS "void QwtPlotRescaler::updateScales (\fBQwtDoubleInterval\fPintervals[QwtPlot::axisCnt]) const\fC [protected]\fP, \fC [virtual]\fP" Update the axes scales .PP \fBParameters:\fP .RS 4 \fIintervals\fP Scale intervals .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDynGridLayout.3����������������������������������������������������������0000644�0001750�0001750�00000020055�12052741140�017451� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDynGridLayout" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDynGridLayout \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDynGridLayout\fP (QWidget *, int margin=0, int space=-1)" .br .ti -1c .RI "\fBQwtDynGridLayout\fP (int space=-1)" .br .ti -1c .RI "virtual \fB~QwtDynGridLayout\fP ()" .br .ti -1c .RI "virtual void \fBaddItem\fP (QLayoutItem *)" .br .ti -1c .RI "virtual uint \fBcolumnsForWidth\fP (int width) const " .br .ti -1c .RI "virtual int \fBcount\fP () const " .br .ti -1c .RI "virtual Qt::Orientations \fBexpandingDirections\fP () const " .br .ti -1c .RI "virtual bool \fBhasHeightForWidth\fP () const " .br .ti -1c .RI "virtual int \fBheightForWidth\fP (int) const " .br .ti -1c .RI "virtual void \fBinvalidate\fP ()" .br .ti -1c .RI "virtual bool \fBisEmpty\fP () const " .br .ti -1c .RI "virtual QLayoutItem * \fBitemAt\fP (int index) const " .br .ti -1c .RI "uint \fBitemCount\fP () const " .br .ti -1c .RI "QList< QRect > \fBlayoutItems\fP (const QRect &, uint \fBnumCols\fP) const " .br .ti -1c .RI "uint \fBmaxCols\fP () const " .br .ti -1c .RI "virtual int \fBmaxItemWidth\fP () const " .br .ti -1c .RI "uint \fBnumCols\fP () const " .br .ti -1c .RI "uint \fBnumRows\fP () const " .br .ti -1c .RI "void \fBsetExpandingDirections\fP (Qt::Orientations)" .br .ti -1c .RI "virtual void \fBsetGeometry\fP (const QRect &rect)" .br .ti -1c .RI "void \fBsetMaxCols\fP (uint \fBmaxCols\fP)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "virtual QLayoutItem * \fBtakeAt\fP (int index)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBlayoutGrid\fP (uint \fBnumCols\fP, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const " .br .ti -1c .RI "void \fBstretchGrid\fP (const QRect &rect, uint \fBnumCols\fP, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const " .br .in -1c .SH "Detailed Description" .PP The \fBQwtDynGridLayout\fP class lays out widgets in a grid, adjusting the number of columns and rows to the current size\&. \fBQwtDynGridLayout\fP takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s)\&. It lays out as many number of columns as possible (limited by \fBmaxCols()\fP)\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtDynGridLayout::QwtDynGridLayout (QWidget *parent, intmargin = \fC0\fP, intspacing = \fC-1\fP)\fC [explicit]\fP" \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .br \fImargin\fP Margin .br \fIspacing\fP Spacing .RE .PP .SS "QwtDynGridLayout::QwtDynGridLayout (intspacing = \fC-1\fP)\fC [explicit]\fP" \fBParameters:\fP .RS 4 \fIspacing\fP Spacing .RE .PP .SH "Member Function Documentation" .PP .SS "uint QwtDynGridLayout::columnsForWidth (intwidth) const\fC [virtual]\fP" Calculate the number of columns for a given width\&. It tries to use as many columns as possible (limited by \fBmaxCols()\fP) .PP \fBParameters:\fP .RS 4 \fIwidth\fP Available width for all columns .RE .PP \fBSee also:\fP .RS 4 \fBmaxCols()\fP, \fBsetMaxCols()\fP .RE .PP .SS "int QwtDynGridLayout::count () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Number of items in the layout .RE .PP .SS "Qt::Orientations QwtDynGridLayout::expandingDirections () const\fC [virtual]\fP" Returns whether this layout can make use of more space than \fBsizeHint()\fP\&. A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions\&. .PP \fBSee also:\fP .RS 4 \fBsetExpandingDirections()\fP .RE .PP .SS "bool QwtDynGridLayout::hasHeightForWidth () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 true: \fBQwtDynGridLayout\fP implements heightForWidth\&. .RE .PP \fBSee also:\fP .RS 4 \fBheightForWidth()\fP .RE .PP .SS "int QwtDynGridLayout::heightForWidth (intwidth) const\fC [virtual]\fP" \fBReturns:\fP .RS 4 The preferred height for this layout, given the width w\&. .RE .PP \fBSee also:\fP .RS 4 \fBhasHeightForWidth()\fP .RE .PP .SS "bool QwtDynGridLayout::isEmpty () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 true if this layout is empty\&. .RE .PP .SS "QLayoutItem * QwtDynGridLayout::itemAt (intindex) const\fC [virtual]\fP" Find the item at a spcific index .PP \fBParameters:\fP .RS 4 \fIindex\fP Index .RE .PP \fBSee also:\fP .RS 4 \fBtakeAt()\fP .RE .PP .SS "uint QwtDynGridLayout::itemCount () const" \fBReturns:\fP .RS 4 number of layout items .RE .PP .SS "void QwtDynGridLayout::layoutGrid (uintnumCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const\fC [protected]\fP" Calculate the dimensions for the columns and rows for a grid of numCols columns\&. .PP \fBParameters:\fP .RS 4 \fInumCols\fP Number of columns\&. .br \fIrowHeight\fP Array where to fill in the calculated row heights\&. .br \fIcolWidth\fP Array where to fill in the calculated column widths\&. .RE .PP .SS "QList< QRect > QwtDynGridLayout::layoutItems (const QRect &rect, uintnumCols) const" Calculate the geometries of the layout items for a layout with numCols columns and a given rect\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Rect where to place the items .br \fInumCols\fP Number of columns .RE .PP \fBReturns:\fP .RS 4 item geometries .RE .PP .SS "uint QwtDynGridLayout::maxCols () const" Return the upper limit for the number of columns\&. 0 means unlimited, what is the default\&. .PP \fBSee also:\fP .RS 4 \fBsetMaxCols()\fP .RE .PP .SS "int QwtDynGridLayout::maxItemWidth () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 the maximum width of all layout items .RE .PP .SS "uint QwtDynGridLayout::numCols () const" \fBReturns:\fP .RS 4 Number of columns of the current layout\&. .RE .PP \fBSee also:\fP .RS 4 \fBnumRows()\fP .RE .PP \fBWarning:\fP .RS 4 The number of columns might change whenever the geometry changes .RE .PP .SS "uint QwtDynGridLayout::numRows () const" \fBReturns:\fP .RS 4 Number of rows of the current layout\&. .RE .PP \fBSee also:\fP .RS 4 \fBnumCols()\fP .RE .PP \fBWarning:\fP .RS 4 The number of rows might change whenever the geometry changes .RE .PP .SS "void QwtDynGridLayout::setExpandingDirections (Qt::Orientationsexpanding)" Set whether this layout can make use of more space than \fBsizeHint()\fP\&. A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions\&. The default value is 0\&. .PP \fBParameters:\fP .RS 4 \fIexpanding\fP Or'd orientations .RE .PP \fBSee also:\fP .RS 4 \fBexpandingDirections()\fP .RE .PP .SS "void QwtDynGridLayout::setGeometry (const QRect &rect)\fC [virtual]\fP" Reorganizes columns and rows and resizes managed widgets within the rectangle rect\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Layout geometry .RE .PP .SS "void QwtDynGridLayout::setMaxCols (uintmaxCols)" Limit the number of columns\&. .PP \fBParameters:\fP .RS 4 \fImaxCols\fP upper limit, 0 means unlimited .RE .PP \fBSee also:\fP .RS 4 \fBmaxCols()\fP .RE .PP .SS "QSize QwtDynGridLayout::sizeHint () const\fC [virtual]\fP" Return the size hint\&. If \fBmaxCols()\fP > 0 it is the size for a grid with \fBmaxCols()\fP columns, otherwise it is the size for a grid with only one row\&. .PP \fBSee also:\fP .RS 4 \fBmaxCols()\fP, \fBsetMaxCols()\fP .RE .PP .SS "void QwtDynGridLayout::stretchGrid (const QRect &rect, uintnumCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const\fC [protected]\fP" Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect\&. Rows and columns are stretched with the same factor\&. .PP \fBSee also:\fP .RS 4 setExpanding(), expanding() .RE .PP .SS "QLayoutItem * QwtDynGridLayout::takeAt (intindex)\fC [virtual]\fP" Find the item at a spcific index and remove it from the layout .PP \fBParameters:\fP .RS 4 \fIindex\fP Index .RE .PP \fBSee also:\fP .RS 4 \fBitemAt()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCompassRose.3������������������������������������������������������������0000644�0001750�0001750�00000002515�12052741137�017160� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCompassRose" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCompassRose \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtSimpleCompassRose\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QPoint ¢er, int radius, double north, QPalette::ColorGroup colorGroup=QPalette::Active) const =0" .br .ti -1c .RI "const QPalette & \fBpalette\fP () const " .br .ti -1c .RI "virtual void \fBsetPalette\fP (const QPalette &p)" .br .in -1c .SH "Detailed Description" .PP Abstract base class for a compass rose\&. .SH "Member Function Documentation" .PP .SS "virtual void QwtCompassRose::draw (QPainter *painter, const QPoint ¢er, intradius, doublenorth, QPalette::ColorGroupcolorGroup = \fCQPalette::Active\fP) const\fC [pure virtual]\fP" Draw the rose .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center point .br \fIradius\fP Radius of the rose .br \fInorth\fP Position .br \fIcolorGroup\fP Color group .RE .PP .PP Implemented in \fBQwtSimpleCompassRose\fP\&. .SS "const QPalette& QwtCompassRose::palette () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Current palette .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtSplineCurveFitter.3������������������������������������������������������0000644�0001750�0001750�00000004467�12052741143�020344� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtSplineCurveFitter" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtSplineCurveFitter \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtCurveFitter\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBFitMode\fP { \fBAuto\fP, \fBSpline\fP, \fBParametricSpline\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtSplineCurveFitter\fP ()" .br .ti -1c .RI "virtual \fB~QwtSplineCurveFitter\fP ()" .br .ti -1c .RI "virtual QPolygonF \fBfitCurve\fP (const QPolygonF &) const " .br .ti -1c .RI "FitMode \fBfitMode\fP () const " .br .ti -1c .RI "void \fBsetFitMode\fP (FitMode)" .br .ti -1c .RI "void \fBsetSpline\fP (const \fBQwtSpline\fP &)" .br .ti -1c .RI "void \fBsetSplineSize\fP (int size)" .br .ti -1c .RI "const \fBQwtSpline\fP & \fBspline\fP () const " .br .ti -1c .RI "\fBQwtSpline\fP & \fBspline\fP ()" .br .ti -1c .RI "int \fBsplineSize\fP () const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A curve fitter using cubic splines\&. .SH "Member Function Documentation" .PP .SS "QPolygonF QwtSplineCurveFitter::fitCurve (const QPolygonF &points) const\fC [virtual]\fP" Find a curve which has the best fit to a series of data points .PP \fBParameters:\fP .RS 4 \fIpoints\fP Series of data points .RE .PP \fBReturns:\fP .RS 4 Curve points .RE .PP .PP Implements \fBQwtCurveFitter\fP\&. .SS "QwtSplineCurveFitter::FitMode QwtSplineCurveFitter::fitMode () const" \fBReturns:\fP .RS 4 Mode representing a spline algorithm .RE .PP \fBSee also:\fP .RS 4 \fBsetFitMode()\fP .RE .PP .SS "void QwtSplineCurveFitter::setFitMode (FitModemode)" Select the algorithm used for building the spline .PP \fBParameters:\fP .RS 4 \fImode\fP Mode representing a spline algorithm .RE .PP \fBSee also:\fP .RS 4 \fBfitMode()\fP .RE .PP .SS "void QwtSplineCurveFitter::setSplineSize (intsplineSize)" Assign a spline size ( has to be at least 10 points ) .PP \fBParameters:\fP .RS 4 \fIsplineSize\fP Spline size .RE .PP \fBSee also:\fP .RS 4 \fBsplineSize()\fP .RE .PP .SS "int QwtSplineCurveFitter::splineSize () const" \fBReturns:\fP .RS 4 Spline size .RE .PP \fBSee also:\fP .RS 4 \fBsetSplineSize()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLegendItemManager.3������������������������������������������������������0000644�0001750�0001750�00000002605�12052741140�020224� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLegendItemManager" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLegendItemManager \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPlotItem\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtLegendItemManager\fP ()" .br .ti -1c .RI "virtual \fB~QwtLegendItemManager\fP ()" .br .ti -1c .RI "virtual QWidget * \fBlegendItem\fP () const =0" .br .ti -1c .RI "virtual void \fBupdateLegend\fP (\fBQwtLegend\fP *legend) const =0" .br .in -1c .SH "Detailed Description" .PP Abstract API to bind plot items to the legend\&. .SH "Member Function Documentation" .PP .SS "virtual QWidget* QwtLegendItemManager::legendItem () const\fC [pure virtual]\fP" Allocate the widget that represents the item on the legend .PP \fBReturns:\fP .RS 4 Allocated widget .RE .PP \fBSee also:\fP .RS 4 \fBupdateLegend()\fP QwtLegend() .RE .PP .PP Implemented in \fBQwtPlotItem\fP\&. .SS "virtual void QwtLegendItemManager::updateLegend (\fBQwtLegend\fP *legend) const\fC [pure virtual]\fP" Update the widget that represents the item on the legend .PP \fBParameters:\fP .RS 4 \fIlegend\fP Legend .RE .PP \fBSee also:\fP .RS 4 \fBlegendItem()\fP .RE .PP .PP Implemented in \fBQwtPlotCurve\fP, and \fBQwtPlotItem\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotLayout.3�������������������������������������������������������������0000644�0001750�0001750�00000025527�12052741141�017041� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotLayout" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotLayout \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBOptions\fP { \fBAlignScales\fP = 1, \fBIgnoreScrollbars\fP = 2, \fBIgnoreFrames\fP = 4, \fBIgnoreMargin\fP = 8, \fBIgnoreLegend\fP = 16 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotLayout\fP ()" .br .ti -1c .RI "virtual \fB~QwtPlotLayout\fP ()" .br .ti -1c .RI "virtual void \fBactivate\fP (const \fBQwtPlot\fP *, const QRect &rect, int options=0)" .br .ti -1c .RI "bool \fBalignCanvasToScales\fP () const " .br .ti -1c .RI "int \fBcanvasMargin\fP (int axis) const " .br .ti -1c .RI "const QRect & \fBcanvasRect\fP () const " .br .ti -1c .RI "virtual void \fBinvalidate\fP ()" .br .ti -1c .RI "\fBQwtPlot::LegendPosition\fP \fBlegendPosition\fP () const " .br .ti -1c .RI "double \fBlegendRatio\fP () const " .br .ti -1c .RI "const QRect & \fBlegendRect\fP () const " .br .ti -1c .RI "int \fBmargin\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP (const \fBQwtPlot\fP *) const " .br .ti -1c .RI "const QRect & \fBscaleRect\fP (int axis) const " .br .ti -1c .RI "void \fBsetAlignCanvasToScales\fP (bool)" .br .ti -1c .RI "void \fBsetCanvasMargin\fP (int \fBmargin\fP, int axis=-1)" .br .ti -1c .RI "void \fBsetLegendPosition\fP (\fBQwtPlot::LegendPosition\fP pos, double ratio)" .br .ti -1c .RI "void \fBsetLegendPosition\fP (\fBQwtPlot::LegendPosition\fP pos)" .br .ti -1c .RI "void \fBsetLegendRatio\fP (double ratio)" .br .ti -1c .RI "void \fBsetMargin\fP (int)" .br .ti -1c .RI "void \fBsetSpacing\fP (int)" .br .ti -1c .RI "int \fBspacing\fP () const " .br .ti -1c .RI "const QRect & \fBtitleRect\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "QRect \fBalignLegend\fP (const QRect &\fBcanvasRect\fP, const QRect &\fBlegendRect\fP) const " .br .ti -1c .RI "void \fBalignScales\fP (int options, QRect &\fBcanvasRect\fP, QRect \fBscaleRect\fP[QwtPlot::axisCnt]) const " .br .ti -1c .RI "void \fBexpandLineBreaks\fP (int options, const QRect &rect, int &dimTitle, int dimAxes[QwtPlot::axisCnt]) const " .br .ti -1c .RI "QRect \fBlayoutLegend\fP (int options, const QRect &) const " .br .in -1c .SH "Detailed Description" .PP Layout engine for \fBQwtPlot\fP\&. It is used by the \fBQwtPlot\fP widget to organize its internal widgets or by \fBQwtPlot::print()\fP to render its content to a QPaintDevice like a QPrinter, QPixmap/QImage or QSvgRenderer\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotLayout::Options\fP" Options to configure the plot layout engine .PP .IP "\(bu" 2 AlignScales .br Unused .IP "\(bu" 2 IgnoreScrollbars .br Ignore the dimension of the scrollbars\&. There are no scrollbars, when the plot is rendered to a paint device (\fBQwtPlot::print()\fP )\&. .IP "\(bu" 2 IgnoreFrames .br Ignore all frames\&. \fBQwtPlot::print()\fP doesn't paint them\&. .IP "\(bu" 2 IgnoreMargin .br Ignore the \fBmargin()\fP\&. .IP "\(bu" 2 IgnoreLegend .br Ignore the legend\&. .PP .PP \fBSee also:\fP .RS 4 \fBactivate()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlotLayout::activate (const \fBQwtPlot\fP *plot, const QRect &plotRect, intoptions = \fC0\fP)\fC [virtual]\fP" .PP Recalculate the geometry of all components\&. \fBParameters:\fP .RS 4 \fIplot\fP Plot to be layout .br \fIplotRect\fP Rect where to place the components .br \fIoptions\fP Options .RE .PP \fBSee also:\fP .RS 4 \fBinvalidate()\fP, \fBOptions\fP, \fBtitleRect()\fP, \fBlegendRect()\fP, \fBscaleRect()\fP, \fBcanvasRect()\fP .RE .PP .SS "bool QwtPlotLayout::alignCanvasToScales () const" Return the align-canvas-to-axis-scales setting\&. The canvas may: .IP "\(bu" 2 extend beyond the axis scale ends to maximize its size .IP "\(bu" 2 align with the axis scale ends to control its size\&. .PP .PP \fBReturns:\fP .RS 4 align-canvas-to-axis-scales setting .RE .PP \fBSee also:\fP .RS 4 \fBsetAlignCanvasToScales\fP, \fBsetCanvasMargin()\fP .RE .PP \fBNote:\fP .RS 4 In this context the term 'scale' means the backbone of a scale\&. .RE .PP .SS "QRect QwtPlotLayout::alignLegend (const QRect &canvasRect, const QRect &legendRect) const\fC [protected]\fP" Align the legend to the canvas .PP \fBParameters:\fP .RS 4 \fIcanvasRect\fP Geometry of the canvas .br \fIlegendRect\fP Maximum geometry for the legend .RE .PP \fBReturns:\fP .RS 4 Geometry for the aligned legend .RE .PP .SS "void QwtPlotLayout::alignScales (intoptions, QRect &canvasRect, QRectscaleRect[QwtPlot::axisCnt]) const\fC [protected]\fP" Align the ticks of the axis to the canvas borders using the empty corners\&. .PP \fBSee also:\fP .RS 4 \fBOptions\fP .RE .PP .SS "int QwtPlotLayout::canvasMargin (intaxis) const" \fBReturns:\fP .RS 4 Margin around the scale tick borders .RE .PP \fBSee also:\fP .RS 4 \fBsetCanvasMargin()\fP .RE .PP .SS "const QRect & QwtPlotLayout::canvasRect () const" \fBReturns:\fP .RS 4 Geometry for the canvas .RE .PP \fBSee also:\fP .RS 4 \fBactivate()\fP, \fBinvalidate()\fP .RE .PP .SS "void QwtPlotLayout::expandLineBreaks (intoptions, const QRect &rect, int &dimTitle, intdimAxis[QwtPlot::axisCnt]) const\fC [protected]\fP" Expand all line breaks in text labels, and calculate the height of their widgets in orientation of the text\&. .PP \fBParameters:\fP .RS 4 \fIoptions\fP Options how to layout the legend .br \fIrect\fP Bounding rect for title, axes and canvas\&. .br \fIdimTitle\fP Expanded height of the title widget .br \fIdimAxis\fP Expanded heights of the axis in axis orientation\&. .RE .PP \fBSee also:\fP .RS 4 \fBOptions\fP .RE .PP .SS "void QwtPlotLayout::invalidate ()\fC [virtual]\fP" Invalidate the geometry of all components\&. .PP \fBSee also:\fP .RS 4 \fBactivate()\fP .RE .PP .SS "QRect QwtPlotLayout::layoutLegend (intoptions, const QRect &rect) const\fC [protected]\fP" Find the geometry for the legend .PP \fBParameters:\fP .RS 4 \fIoptions\fP Options how to layout the legend .br \fIrect\fP Rectangle where to place the legend .RE .PP \fBReturns:\fP .RS 4 Geometry for the legend .RE .PP \fBSee also:\fP .RS 4 \fBOptions\fP .RE .PP .SS "\fBQwtPlot::LegendPosition\fP QwtPlotLayout::legendPosition () const" \fBReturns:\fP .RS 4 Position of the legend .RE .PP \fBSee also:\fP .RS 4 \fBsetLegendPosition()\fP, QwtPlot::setLegendPosition(), QwtPlot::legendPosition() .RE .PP .SS "double QwtPlotLayout::legendRatio () const" \fBReturns:\fP .RS 4 The relative size of the legend in the plot\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetLegendPosition()\fP .RE .PP .SS "const QRect & QwtPlotLayout::legendRect () const" \fBReturns:\fP .RS 4 Geometry for the legend .RE .PP \fBSee also:\fP .RS 4 \fBactivate()\fP, \fBinvalidate()\fP .RE .PP .SS "int QwtPlotLayout::margin () const" \fBReturns:\fP .RS 4 margin .RE .PP \fBSee also:\fP .RS 4 \fBsetMargin()\fP, \fBspacing()\fP, \fBQwtPlot::margin()\fP .RE .PP .SS "QSize QwtPlotLayout::minimumSizeHint (const \fBQwtPlot\fP *plot) const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBSee also:\fP .RS 4 \fBQwtPlot::minimumSizeHint()\fP .RE .PP .SS "const QRect & QwtPlotLayout::scaleRect (intaxis) const" \fBParameters:\fP .RS 4 \fIaxis\fP Axis index .RE .PP \fBReturns:\fP .RS 4 Geometry for the scale .RE .PP \fBSee also:\fP .RS 4 \fBactivate()\fP, \fBinvalidate()\fP .RE .PP .SS "void QwtPlotLayout::setAlignCanvasToScales (boolalignCanvasToScales)" Change the align-canvas-to-axis-scales setting\&. The canvas may: .IP "\(bu" 2 extend beyond the axis scale ends to maximize its size, .IP "\(bu" 2 align with the axis scale ends to control its size\&. .PP .PP \fBParameters:\fP .RS 4 \fIalignCanvasToScales\fP New align-canvas-to-axis-scales setting .RE .PP \fBSee also:\fP .RS 4 \fBsetCanvasMargin()\fP .RE .PP \fBNote:\fP .RS 4 In this context the term 'scale' means the backbone of a scale\&. .RE .PP \fBWarning:\fP .RS 4 In case of alignCanvasToScales == true canvasMargin will have no effect .RE .PP .SS "void QwtPlotLayout::setCanvasMargin (intmargin, intaxis = \fC-1\fP)" Change a margin of the canvas\&. The margin is the space above/below the scale ticks\&. A negative margin will be set to -1, excluding the borders of the scales\&. .PP \fBParameters:\fP .RS 4 \fImargin\fP New margin .br \fIaxis\fP One of \fBQwtPlot::Axis\fP\&. Specifies where the position of the margin\&. -1 means margin at all borders\&. .RE .PP \fBSee also:\fP .RS 4 \fBcanvasMargin()\fP .RE .PP \fBWarning:\fP .RS 4 The margin will have no effect when alignCanvasToScales is true .RE .PP .SS "void QwtPlotLayout::setLegendPosition (\fBQwtPlot::LegendPosition\fPpos, doubleratio)" .PP Specify the position of the legend\&. \fBParameters:\fP .RS 4 \fIpos\fP The legend's position\&. .br \fIratio\fP Ratio between legend and the bounding rect of title, canvas and axes\&. The legend will be shrinked if it would need more space than the given ratio\&. The ratio is limited to ]0\&.0 \&.\&. 1\&.0]\&. In case of <= 0\&.0 it will be reset to the default ratio\&. The default vertical/horizontal ratio is 0\&.33/0\&.5\&. .RE .PP \fBSee also:\fP .RS 4 QwtPlot::setLegendPosition() .RE .PP .SS "void QwtPlotLayout::setLegendPosition (\fBQwtPlot::LegendPosition\fPpos)" .PP Specify the position of the legend\&. \fBParameters:\fP .RS 4 \fIpos\fP The legend's position\&. Valid values are \fCQwtPlot::LeftLegend\fP, \fCQwtPlot::RightLegend\fP, \fCQwtPlot::TopLegend\fP, \fCQwtPlot::BottomLegend\fP\&. .RE .PP \fBSee also:\fP .RS 4 QwtPlot::setLegendPosition() .RE .PP .SS "void QwtPlotLayout::setLegendRatio (doubleratio)" Specify the relative size of the legend in the plot .PP \fBParameters:\fP .RS 4 \fIratio\fP Ratio between legend and the bounding rect of title, canvas and axes\&. The legend will be shrinked if it would need more space than the given ratio\&. The ratio is limited to ]0\&.0 \&.\&. 1\&.0]\&. In case of <= 0\&.0 it will be reset to the default ratio\&. The default vertical/horizontal ratio is 0\&.33/0\&.5\&. .RE .PP .SS "void QwtPlotLayout::setMargin (intmargin)" Change the margin of the plot\&. The margin is the space around all components\&. .PP \fBParameters:\fP .RS 4 \fImargin\fP new margin .RE .PP \fBSee also:\fP .RS 4 \fBmargin()\fP, \fBsetSpacing()\fP, \fBQwtPlot::setMargin()\fP .RE .PP .SS "void QwtPlotLayout::setSpacing (intspacing)" Change the spacing of the plot\&. The spacing is the distance between the plot components\&. .PP \fBParameters:\fP .RS 4 \fIspacing\fP new spacing .RE .PP \fBSee also:\fP .RS 4 \fBsetMargin()\fP, \fBspacing()\fP .RE .PP .SS "int QwtPlotLayout::spacing () const" \fBReturns:\fP .RS 4 spacing .RE .PP \fBSee also:\fP .RS 4 \fBmargin()\fP, \fBsetSpacing()\fP .RE .PP .SS "const QRect & QwtPlotLayout::titleRect () const" \fBReturns:\fP .RS 4 Geometry for the title .RE .PP \fBSee also:\fP .RS 4 \fBactivate()\fP, \fBinvalidate()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotZoomer.3�������������������������������������������������������������0000644�0001750�0001750�00000033151�12052741142�017030� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotZoomer" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotZoomer \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotPicker\fP\&. .SS "Public Slots" .in +1c .ti -1c .RI "virtual void \fBmove\fP (double x, double y)" .br .ti -1c .RI "void \fBmoveBy\fP (double x, double y)" .br .ti -1c .RI "virtual void \fBzoom\fP (const QwtDoubleRect &)" .br .ti -1c .RI "virtual void \fBzoom\fP (int up)" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBzoomed\fP (const QwtDoubleRect &rect)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotZoomer\fP (\fBQwtPlotCanvas\fP *, bool doReplot=true)" .br .ti -1c .RI "\fBQwtPlotZoomer\fP (int \fBxAxis\fP, int \fByAxis\fP, \fBQwtPlotCanvas\fP *, bool doReplot=true)" .br .ti -1c .RI "\fBQwtPlotZoomer\fP (int \fBxAxis\fP, int \fByAxis\fP, int \fBselectionFlags\fP, \fBDisplayMode\fP \fBtrackerMode\fP, \fBQwtPlotCanvas\fP *, bool doReplot=true)" .br .ti -1c .RI "int \fBmaxStackDepth\fP () const " .br .ti -1c .RI "virtual void \fBsetAxis\fP (int \fBxAxis\fP, int \fByAxis\fP)" .br .ti -1c .RI "void \fBsetMaxStackDepth\fP (int)" .br .ti -1c .RI "virtual void \fBsetSelectionFlags\fP (int)" .br .ti -1c .RI "virtual void \fBsetZoomBase\fP (bool doReplot=true)" .br .ti -1c .RI "virtual void \fBsetZoomBase\fP (const QwtDoubleRect &)" .br .ti -1c .RI "void \fBsetZoomStack\fP (const QStack< QwtDoubleRect > &, int \fBzoomRectIndex\fP=-1)" .br .ti -1c .RI "QwtDoubleRect \fBzoomBase\fP () const " .br .ti -1c .RI "QwtDoubleRect \fBzoomRect\fP () const " .br .ti -1c .RI "uint \fBzoomRectIndex\fP () const " .br .ti -1c .RI "const QStack< QwtDoubleRect > & \fBzoomStack\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual bool \fBaccept\fP (QwtPolygon &) const " .br .ti -1c .RI "virtual void \fBbegin\fP ()" .br .ti -1c .RI "virtual bool \fBend\fP (bool ok=true)" .br .ti -1c .RI "virtual QwtDoubleSize \fBminZoomSize\fP () const " .br .ti -1c .RI "virtual void \fBrescale\fP ()" .br .ti -1c .RI "virtual void \fBwidgetKeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBwidgetMouseReleaseEvent\fP (QMouseEvent *)" .br .in -1c .SH "Detailed Description" .PP \fBQwtPlotZoomer\fP provides stacked zooming for a plot widget\&. \fBQwtPlotZoomer\fP offers rubberband selections on the plot canvas, translating the selected rectangles into plot coordinates and adjusting the axes to them\&. Zooming can repeated as often as possible, limited only by \fBmaxStackDepth()\fP or \fBminZoomSize()\fP\&. Each rectangle is pushed on a stack\&. .PP Zoom rectangles can be selected depending on \fBselectionFlags()\fP using the mouse or keyboard (\fBQwtEventPattern\fP, \fBQwtPickerMachine\fP)\&. QwtEventPattern::MouseSelect3/QwtEventPattern::KeyUndo, or QwtEventPattern::MouseSelect6/QwtEventPattern::KeyRedo walk up and down the zoom stack\&. QwtEventPattern::MouseSelect2 or QwtEventPattern::KeyHome unzoom to the initial size\&. .PP \fBQwtPlotZoomer\fP is tailored for plots with one x and y axis, but it is allowed to attach a second \fBQwtPlotZoomer\fP for the other axes\&. .PP \fBNote:\fP .RS 4 The realtime example includes an derived zoomer class that adds scrollbars to the plot canvas\&. .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotZoomer::QwtPlotZoomer (\fBQwtPlotCanvas\fP *canvas, booldoReplot = \fCtrue\fP)\fC [explicit]\fP" .PP Create a zoomer for a plot canvas\&. The zoomer is set to those x- and y-axis of the parent plot of the canvas that are enabled\&. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom\&. If both or no y-axis are enabled, it is set to QwtPlot::yLeft\&. .PP The \fBselectionFlags()\fP are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly\&. .PP \fBParameters:\fP .RS 4 \fIcanvas\fP Plot canvas to observe, also the parent object .br \fIdoReplot\fP Call replot for the attached plot before initializing the zoomer with its scales\&. This might be necessary, when the plot is in a state with pending scale changes\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBsetZoomBase()\fP .RE .PP .SS "QwtPlotZoomer::QwtPlotZoomer (intxAxis, intyAxis, \fBQwtPlotCanvas\fP *canvas, booldoReplot = \fCtrue\fP)\fC [explicit]\fP" .PP Create a zoomer for a plot canvas\&. The \fBselectionFlags()\fP are set to QwtPicker::RectSelection | QwtPicker::ClickSelection, the tracker mode to QwtPicker::ActiveOnly\&. .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X axis of the zoomer .br \fIyAxis\fP Y axis of the zoomer .br \fIcanvas\fP Plot canvas to observe, also the parent object .br \fIdoReplot\fP Call replot for the attached plot before initializing the zoomer with its scales\&. This might be necessary, when the plot is in a state with pending scale changes\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBsetZoomBase()\fP .RE .PP .SS "QwtPlotZoomer::QwtPlotZoomer (intxAxis, intyAxis, intselectionFlags, \fBDisplayMode\fPtrackerMode, \fBQwtPlotCanvas\fP *canvas, booldoReplot = \fCtrue\fP)\fC [explicit]\fP" Create a zoomer for a plot canvas\&. .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X axis of the zoomer .br \fIyAxis\fP Y axis of the zoomer .br \fIselectionFlags\fP Or'd value of \fBQwtPicker::RectSelectionType\fP and \fBQwtPicker::SelectionMode\fP\&. QwtPicker::RectSelection will be auto added\&. .br \fItrackerMode\fP Tracker mode .br \fIcanvas\fP Plot canvas to observe, also the parent object .br \fIdoReplot\fP Call replot for the attached plot before initializing the zoomer with its scales\&. This might be necessary, when the plot is in a state with pending scale changes\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBQwtPicker::setSelectionFlags()\fP, \fBQwtPicker::setRubberBand()\fP, \fBQwtPicker::setTrackerMode()\fP .PP \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBsetZoomBase()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtPlotZoomer::accept (QwtPolygon &pa) const\fC [protected]\fP, \fC [virtual]\fP" .PP Check and correct a selected rectangle\&. Reject rectangles with a hight or width < 2, otherwise expand the selected rectangle to a minimum size of 11x11 and accept it\&. .PP \fBReturns:\fP .RS 4 true If rect is accepted, or has been changed to a accepted rectangle\&. .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotZoomer::begin ()\fC [protected]\fP, \fC [virtual]\fP" Rejects selections, when the stack depth is too deep, or the zoomed rectangle is \fBminZoomSize()\fP\&. .PP \fBSee also:\fP .RS 4 \fBminZoomSize()\fP, \fBmaxStackDepth()\fP .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "bool QwtPlotZoomer::end (boolok = \fCtrue\fP)\fC [protected]\fP, \fC [virtual]\fP" Expand the selected rectangle to \fBminZoomSize()\fP and zoom in if accepted\&. .PP \fBSee also:\fP .RS 4 \fBaccept()\fP, \fBminZoomSize()\fP .RE .PP .PP Reimplemented from \fBQwtPlotPicker\fP\&. .SS "int QwtPlotZoomer::maxStackDepth () const" \fBReturns:\fP .RS 4 Maximal depth of the zoom stack\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetMaxStackDepth()\fP .RE .PP .SS "QwtDoubleSize QwtPlotZoomer::minZoomSize () const\fC [protected]\fP, \fC [virtual]\fP" .PP Limit zooming by a minimum rectangle\&. \fBReturns:\fP .RS 4 \fBzoomBase()\fP\&.width() / 10e4, \fBzoomBase()\fP\&.height() / 10e4 .RE .PP .SS "void QwtPlotZoomer::move (doublex, doubley)\fC [virtual]\fP, \fC [slot]\fP" Move the the current zoom rectangle\&. .PP \fBParameters:\fP .RS 4 \fIx\fP X value .br \fIy\fP Y value .RE .PP \fBSee also:\fP .RS 4 QwtDoubleRect::move() .RE .PP \fBNote:\fP .RS 4 The changed rectangle is limited by the zoom base .RE .PP .SS "void QwtPlotZoomer::moveBy (doubledx, doubledy)\fC [slot]\fP" Move the current zoom rectangle\&. .PP \fBParameters:\fP .RS 4 \fIdx\fP X offset .br \fIdy\fP Y offset .RE .PP \fBNote:\fP .RS 4 The changed rectangle is limited by the zoom base .RE .PP .SS "void QwtPlotZoomer::rescale ()\fC [protected]\fP, \fC [virtual]\fP" Adjust the observed plot to \fBzoomRect()\fP .PP \fBNote:\fP .RS 4 Initiates \fBQwtPlot::replot\fP .RE .PP .SS "void QwtPlotZoomer::setAxis (intxAxis, intyAxis)\fC [virtual]\fP" Reinitialize the axes, and set the zoom base to their scales\&. .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X axis .br \fIyAxis\fP Y axis .RE .PP .PP Reimplemented from \fBQwtPlotPicker\fP\&. .SS "void QwtPlotZoomer::setMaxStackDepth (intdepth)" .PP Limit the number of recursive zoom operations to depth\&. A value of -1 set the depth to unlimited, 0 disables zooming\&. If the current zoom rectangle is below depth, the plot is unzoomed\&. .PP \fBParameters:\fP .RS 4 \fIdepth\fP Maximum for the stack depth .RE .PP \fBSee also:\fP .RS 4 \fBmaxStackDepth()\fP .RE .PP \fBNote:\fP .RS 4 depth doesn't include the zoom base, so \fBzoomStack()\fP\&.count() might be \fBmaxStackDepth()\fP + 1\&. .RE .PP .SS "void QwtPlotZoomer::setSelectionFlags (intflags)\fC [virtual]\fP" Set the selection flags .PP \fBParameters:\fP .RS 4 \fIflags\fP Or'd value of \fBQwtPicker::RectSelectionType\fP and \fBQwtPicker::SelectionMode\fP\&. The default value is QwtPicker::RectSelection & QwtPicker::ClickSelection\&. .RE .PP \fBSee also:\fP .RS 4 \fBselectionFlags()\fP, \fBSelectionType\fP, \fBRectSelectionType\fP, \fBSelectionMode\fP .RE .PP \fBNote:\fP .RS 4 QwtPicker::RectSelection will be auto added\&. .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotZoomer::setZoomBase (booldoReplot = \fCtrue\fP)\fC [virtual]\fP" Reinitialized the zoom stack with \fBscaleRect()\fP as base\&. .PP \fBParameters:\fP .RS 4 \fIdoReplot\fP Call replot for the attached plot before initializing the zoomer with its scales\&. This might be necessary, when the plot is in a state with pending scale changes\&. .RE .PP \fBSee also:\fP .RS 4 \fBzoomBase()\fP, \fBscaleRect()\fP \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP\&. .RE .PP .SS "void QwtPlotZoomer::setZoomBase (const QwtDoubleRect &base)\fC [virtual]\fP" .PP Set the initial size of the zoomer\&. base is united with the current \fBscaleRect()\fP and the zoom stack is reinitalized with it as zoom base\&. plot is zoomed to \fBscaleRect()\fP\&. .PP \fBParameters:\fP .RS 4 \fIbase\fP Zoom base .RE .PP \fBSee also:\fP .RS 4 \fBzoomBase()\fP, \fBscaleRect()\fP .RE .PP .SS "void QwtPlotZoomer::setZoomStack (const QStack< QwtDoubleRect > &, intzoomRectIndex = \fC-1\fP)" .PP Assign a zoom stack\&. In combination with other types of navigation it might be useful to modify to manipulate the complete zoom stack\&. .PP \fBParameters:\fP .RS 4 \fIzoomStack\fP New zoom stack .br \fIzoomRectIndex\fP Index of the current position of zoom stack\&. In case of -1 the current position is at the top of the stack\&. .RE .PP \fBNote:\fP .RS 4 The zoomed signal might be emitted\&. .RE .PP \fBSee also:\fP .RS 4 \fBzoomStack()\fP, \fBzoomRectIndex()\fP .RE .PP .SS "void QwtPlotZoomer::widgetKeyPressEvent (QKeyEvent *ke)\fC [protected]\fP, \fC [virtual]\fP" Qt::Key_Plus zooms in, Qt::Key_Minus zooms out one position on the zoom stack, Qt::Key_Escape zooms out to the zoom base\&. .PP Changes the current position on the stack, but doesn't pop any rectangle\&. .PP \fBNote:\fP .RS 4 The keys codes can be changed, using \fBQwtEventPattern::setKeyPattern\fP: 3, 4, 5 .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotZoomer::widgetMouseReleaseEvent (QMouseEvent *me)\fC [protected]\fP, \fC [virtual]\fP" Qt::MidButton zooms out one position on the zoom stack, Qt::RightButton to the zoom base\&. .PP Changes the current position on the stack, but doesn't pop any rectangle\&. .PP \fBNote:\fP .RS 4 The mouse events can be changed, using \fBQwtEventPattern::setMousePattern\fP: 2, 1 .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotZoomer::zoom (const QwtDoubleRect &rect)\fC [virtual]\fP, \fC [slot]\fP" .PP Zoom in\&. Clears all rectangles above the current position of the zoom stack and pushs the intersection of \fBzoomRect()\fP and the normalized rect on it\&. .PP \fBNote:\fP .RS 4 If the maximal stack depth is reached, zoom is ignored\&. .PP The zoomed signal is emitted\&. .RE .PP .SS "void QwtPlotZoomer::zoom (intoffset)\fC [virtual]\fP, \fC [slot]\fP" .PP Zoom in or out\&. Activate a rectangle on the zoom stack with an offset relative to the current position\&. Negative values of offest will zoom out, positive zoom in\&. A value of 0 zooms out to the zoom base\&. .PP \fBParameters:\fP .RS 4 \fIoffset\fP Offset relative to the current position of the zoom stack\&. .RE .PP \fBNote:\fP .RS 4 The zoomed signal is emitted\&. .RE .PP \fBSee also:\fP .RS 4 \fBzoomRectIndex()\fP .RE .PP .SS "QwtDoubleRect QwtPlotZoomer::zoomBase () const" \fBReturns:\fP .RS 4 Initial rectangle of the zoomer .RE .PP \fBSee also:\fP .RS 4 \fBsetZoomBase()\fP, \fBzoomRect()\fP .RE .PP .SS "void QwtPlotZoomer::zoomed (const QwtDoubleRect &rect)\fC [signal]\fP" A signal emitting the \fBzoomRect()\fP, when the plot has been zoomed in or out\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Current zoom rectangle\&. .RE .PP .SS "QwtDoubleRect QwtPlotZoomer::zoomRect () const" Rectangle at the current position on the zoom stack\&. .PP \fBSee also:\fP .RS 4 \fBzoomRectIndex()\fP, \fBscaleRect()\fP\&. .RE .PP .SS "uint QwtPlotZoomer::zoomRectIndex () const" \fBReturns:\fP .RS 4 Index of current position of zoom stack\&. .RE .PP .SS "const QwtZoomStack & QwtPlotZoomer::zoomStack () const" Return the zoom stack\&. \fBzoomStack()\fP[0] is the zoom base, \fBzoomStack()\fP[1] the first zoomed rectangle\&. .PP \fBSee also:\fP .RS 4 \fBsetZoomStack()\fP, \fBzoomRectIndex()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtClipper.3����������������������������������������������������������������0000644�0001750�0001750�00000003570�12052741137�016322� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtClipper" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtClipper \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static QwtArray .br < \fBQwtDoubleInterval\fP > \fBclipCircle\fP (const QwtDoubleRect &, const QwtDoublePoint &, double radius)" .br .ti -1c .RI "static QwtPolygon \fBclipPolygon\fP (const QRect &, const QwtPolygon &)" .br .ti -1c .RI "static QwtPolygonF \fBclipPolygonF\fP (const QwtDoubleRect &, const QwtPolygonF &)" .br .in -1c .SH "Detailed Description" .PP Some clipping algos\&. .SH "Member Function Documentation" .PP .SS "QwtArray< \fBQwtDoubleInterval\fP > QwtClipper::clipCircle (const QwtDoubleRect &clipRect, const QwtDoublePoint ¢er, doubleradius)\fC [static]\fP" Circle clipping .PP \fBclipCircle()\fP devides a circle into intervals of angles representing arcs of the circle\&. When the circle is completely inside the clip rectangle an interval [0\&.0, 2 * M_PI] is returned\&. .PP \fBParameters:\fP .RS 4 \fIclipRect\fP Clip rectangle .br \fIcenter\fP Center of the circle .br \fIradius\fP Radius of the circle .RE .PP \fBReturns:\fP .RS 4 Arcs of the circle .RE .PP .SS "QwtPolygon QwtClipper::clipPolygon (const QRect &clipRect, const QwtPolygon &polygon)\fC [static]\fP" Sutherland-Hodgman polygon clipping .PP \fBParameters:\fP .RS 4 \fIclipRect\fP Clip rectangle .br \fIpolygon\fP Polygon .RE .PP \fBReturns:\fP .RS 4 Clipped polygon .RE .PP .SS "QwtPolygonF QwtClipper::clipPolygonF (const QwtDoubleRect &clipRect, const QwtPolygonF &polygon)\fC [static]\fP" Sutherland-Hodgman polygon clipping .PP \fBParameters:\fP .RS 4 \fIclipRect\fP Clip rectangle .br \fIpolygon\fP Polygon .RE .PP \fBReturns:\fP .RS 4 Clipped polygon .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtEventPattern.3�����������������������������������������������������������0000644�0001750�0001750�00000017234�12052741140�017337� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtEventPattern" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtEventPattern \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPicker\fP\&. .SS "Classes" .in +1c .ti -1c .RI "class \fBKeyPattern\fP" .br .RI "\fIA pattern for key events\&. \fP" .ti -1c .RI "class \fBMousePattern\fP" .br .RI "\fIA pattern for mouse events\&. \fP" .in -1c .SS "Public Types" .in +1c .ti -1c .RI "enum \fBKeyPatternCode\fP { \fBKeySelect1\fP, \fBKeySelect2\fP, \fBKeyAbort\fP, \fBKeyLeft\fP, \fBKeyRight\fP, \fBKeyUp\fP, \fBKeyDown\fP, \fBKeyRedo\fP, \fBKeyUndo\fP, \fBKeyHome\fP, \fBKeyPatternCount\fP }" .br .ti -1c .RI "enum \fBMousePatternCode\fP { \fBMouseSelect1\fP, \fBMouseSelect2\fP, \fBMouseSelect3\fP, \fBMouseSelect4\fP, \fBMouseSelect5\fP, \fBMouseSelect6\fP, \fBMousePatternCount\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtEventPattern\fP ()" .br .ti -1c .RI "virtual \fB~QwtEventPattern\fP ()" .br .ti -1c .RI "void \fBinitKeyPattern\fP ()" .br .ti -1c .RI "void \fBinitMousePattern\fP (int numButtons)" .br .ti -1c .RI "bool \fBkeyMatch\fP (uint pattern, const QKeyEvent *) const " .br .ti -1c .RI "const QwtArray< \fBKeyPattern\fP > & \fBkeyPattern\fP () const " .br .ti -1c .RI "QwtArray< \fBKeyPattern\fP > & \fBkeyPattern\fP ()" .br .ti -1c .RI "bool \fBmouseMatch\fP (uint pattern, const QMouseEvent *) const " .br .ti -1c .RI "const QwtArray< \fBMousePattern\fP > & \fBmousePattern\fP () const " .br .ti -1c .RI "QwtArray< \fBMousePattern\fP > & \fBmousePattern\fP ()" .br .ti -1c .RI "void \fBsetKeyPattern\fP (uint pattern, int key, int state=Qt::NoButton)" .br .ti -1c .RI "void \fBsetKeyPattern\fP (const QwtArray< \fBKeyPattern\fP > &)" .br .ti -1c .RI "void \fBsetMousePattern\fP (uint pattern, int button, int state=Qt::NoButton)" .br .ti -1c .RI "void \fBsetMousePattern\fP (const QwtArray< \fBMousePattern\fP > &)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual bool \fBkeyMatch\fP (const \fBKeyPattern\fP &, const QKeyEvent *) const " .br .ti -1c .RI "virtual bool \fBmouseMatch\fP (const \fBMousePattern\fP &, const QMouseEvent *) const " .br .in -1c .SH "Detailed Description" .PP A collection of event patterns\&. \fBQwtEventPattern\fP introduces an level of indirection for mouse and keyboard inputs\&. Those are represented by symbolic names, so the application code can be configured by individual mappings\&. .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBQwtPickerMachine\fP, \fBQwtPlotZoomer\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtEventPattern::KeyPatternCode\fP" .PP Symbolic keyboard input codes\&. Default initialization: .IP "\(bu" 2 KeySelect1 .br Qt::Key_Return .IP "\(bu" 2 KeySelect2 .br Qt::Key_Space .IP "\(bu" 2 KeyAbort .br Qt::Key_Escape .PP .PP .IP "\(bu" 2 KeyLeft .br Qt::Key_Left .IP "\(bu" 2 KeyRight .br Qt::Key_Right .IP "\(bu" 2 KeyUp .br Qt::Key_Up .IP "\(bu" 2 KeyDown .br Qt::Key_Down .PP .PP .IP "\(bu" 2 KeyUndo .br Qt::Key_Minus .IP "\(bu" 2 KeyRedo .br Qt::Key_Plus .IP "\(bu" 2 KeyHome .br Qt::Key_Escape .PP .SS "enum \fBQwtEventPattern::MousePatternCode\fP" .PP Symbolic mouse input codes\&. The default initialization for 3 button mice is: .IP "\(bu" 2 MouseSelect1 .br Qt::LeftButton .IP "\(bu" 2 MouseSelect2 .br Qt::RightButton .IP "\(bu" 2 MouseSelect3 .br Qt::MidButton .IP "\(bu" 2 MouseSelect4 .br Qt::LeftButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect5 .br Qt::RightButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect6 .br Qt::MidButton + Qt::ShiftButton .PP .PP The default initialization for 2 button mice is: .IP "\(bu" 2 MouseSelect1 .br Qt::LeftButton .IP "\(bu" 2 MouseSelect2 .br Qt::RightButton .IP "\(bu" 2 MouseSelect3 .br Qt::LeftButton + Qt::AltButton .IP "\(bu" 2 MouseSelect4 .br Qt::LeftButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect5 .br Qt::RightButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect6 .br Qt::LeftButton + Qt::AltButton + Qt::ShiftButton .PP .PP The default initialization for 1 button mice is: .IP "\(bu" 2 MouseSelect1 .br Qt::LeftButton .IP "\(bu" 2 MouseSelect2 .br Qt::LeftButton + Qt::ControlButton .IP "\(bu" 2 MouseSelect3 .br Qt::LeftButton + Qt::AltButton .IP "\(bu" 2 MouseSelect4 .br Qt::LeftButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect5 .br Qt::LeftButton + Qt::ControlButton + Qt::ShiftButton .IP "\(bu" 2 MouseSelect6 .br Qt::LeftButton + Qt::AltButton + Qt::ShiftButton .PP .PP \fBSee also:\fP .RS 4 \fBinitMousePattern()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtEventPattern::QwtEventPattern ()" Constructor .PP \fBSee also:\fP .RS 4 \fBMousePatternCode\fP, \fBKeyPatternCode\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtEventPattern::initKeyPattern ()" Set default mouse patterns\&. .PP \fBSee also:\fP .RS 4 \fBKeyPatternCode\fP .RE .PP .SS "void QwtEventPattern::initMousePattern (intnumButtons)" Set default mouse patterns, depending on the number of mouse buttons .PP \fBParameters:\fP .RS 4 \fInumButtons\fP Number of mouse buttons ( <= 3 ) .RE .PP \fBSee also:\fP .RS 4 \fBMousePatternCode\fP .RE .PP .SS "bool QwtEventPattern::keyMatch (uintpattern, const QKeyEvent *e) const" .PP Compare a key event with an event pattern\&. A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set\&. .PP \fBParameters:\fP .RS 4 \fIpattern\fP Index of the event pattern .br \fIe\fP Key event .RE .PP \fBReturns:\fP .RS 4 true if matches .RE .PP \fBSee also:\fP .RS 4 \fBmouseMatch()\fP .RE .PP .SS "bool QwtEventPattern::keyMatch (const \fBKeyPattern\fP &pattern, const QKeyEvent *e) const\fC [protected]\fP, \fC [virtual]\fP" .PP Compare a key event with an event pattern\&. A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set\&. .PP \fBParameters:\fP .RS 4 \fIpattern\fP Key event pattern .br \fIe\fP Key event .RE .PP \fBReturns:\fP .RS 4 true if matches .RE .PP \fBSee also:\fP .RS 4 \fBmouseMatch()\fP .RE .PP .SS "bool QwtEventPattern::mouseMatch (uintpattern, const QMouseEvent *e) const" .PP Compare a mouse event with an event pattern\&. A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set\&. .PP \fBParameters:\fP .RS 4 \fIpattern\fP Index of the event pattern .br \fIe\fP Mouse event .RE .PP \fBReturns:\fP .RS 4 true if matches .RE .PP \fBSee also:\fP .RS 4 \fBkeyMatch()\fP .RE .PP .SS "bool QwtEventPattern::mouseMatch (const \fBMousePattern\fP &pattern, const QMouseEvent *e) const\fC [protected]\fP, \fC [virtual]\fP" .PP Compare a mouse event with an event pattern\&. A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set\&. .PP \fBParameters:\fP .RS 4 \fIpattern\fP Mouse event pattern .br \fIe\fP Mouse event .RE .PP \fBReturns:\fP .RS 4 true if matches .RE .PP \fBSee also:\fP .RS 4 \fBkeyMatch()\fP .RE .PP .SS "void QwtEventPattern::setKeyPattern (uintpattern, intkey, intstate = \fCQt::NoButton\fP)" Change one key pattern .PP \fBParameters:\fP .RS 4 \fIpattern\fP Index of the pattern .br \fIkey\fP Key .br \fIstate\fP State .RE .PP \fBSee also:\fP .RS 4 QKeyEvent .RE .PP .SS "void QwtEventPattern::setMousePattern (uintpattern, intbutton, intstate = \fCQt::NoButton\fP)" Change one mouse pattern .PP \fBParameters:\fP .RS 4 \fIpattern\fP Index of the pattern .br \fIbutton\fP Button .br \fIstate\fP State .RE .PP \fBSee also:\fP .RS 4 QMouseEvent .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/deprecated.3����������������������������������������������������������������0000644�0001750�0001750�00000001006�12052741136�016317� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "deprecated" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME deprecated \- Deprecated List .IP "\fBMember \fBQwtPlot::clear\fP ()\fP" 1c Use QwtPlotDeict::detachItems instead .IP "\fBClass \fBQwtPlotPrintFilter\fP \fP" 1c In Qwt 5\&.0 the design of \fBQwtPlot\fP allows/recommends writing individual QwtPlotItems, that are not known to \fBQwtPlotPrintFilter\fP\&. So this concept is outdated and \fBQwtPlotPrintFilter\fP will be removed/replaced in Qwt 6\&.x\&. .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCounter.3����������������������������������������������������������������0000644�0001750�0001750�00000020760�12052741137�016343� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCounter" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCounter \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDoubleRange\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBButton\fP { \fBButton1\fP, \fBButton2\fP, \fBButton3\fP, \fBButtonCnt\fP }" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBbuttonReleased\fP (double \fBvalue\fP)" .br .ti -1c .RI "void \fBvalueChanged\fP (double \fBvalue\fP)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtCounter\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtCounter\fP ()" .br .ti -1c .RI "bool \fBeditable\fP () const " .br .ti -1c .RI "int \fBincSteps\fP (\fBQwtCounter::Button\fP btn) const " .br .ti -1c .RI "double \fBmaxVal\fP () const " .br .ti -1c .RI "double \fBminVal\fP () const " .br .ti -1c .RI "int \fBnumButtons\fP () const " .br .ti -1c .RI "virtual void \fBpolish\fP ()" .br .ti -1c .RI "void \fBsetEditable\fP (bool)" .br .ti -1c .RI "void \fBsetIncSteps\fP (\fBQwtCounter::Button\fP btn, int nSteps)" .br .ti -1c .RI "void \fBsetMaxValue\fP (double m)" .br .ti -1c .RI "void \fBsetMinValue\fP (double m)" .br .ti -1c .RI "void \fBsetNumButtons\fP (int n)" .br .ti -1c .RI "void \fBsetStep\fP (double s)" .br .ti -1c .RI "void \fBsetStepButton1\fP (int nSteps)" .br .ti -1c .RI "void \fBsetStepButton2\fP (int nSteps)" .br .ti -1c .RI "void \fBsetStepButton3\fP (int nSteps)" .br .ti -1c .RI "virtual void \fBsetValue\fP (double)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "double \fBstep\fP () const " .br .ti -1c .RI "int \fBstepButton1\fP () const " .br .ti -1c .RI "int \fBstepButton2\fP () const " .br .ti -1c .RI "int \fBstepButton3\fP () const " .br .ti -1c .RI "virtual double \fBvalue\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual bool \fBevent\fP (QEvent *)" .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBrangeChange\fP ()" .br .ti -1c .RI "virtual void \fBwheelEvent\fP (QWheelEvent *)" .br .in -1c .SH "Detailed Description" .PP The Counter Widget\&. A Counter consists of a label displaying a number and one ore more (up to three) push buttons on each side of the label which can be used to increment or decrement the counter's value\&. .PP A Counter has a range from a minimum value to a maximum value and a step size\&. The range can be specified using QwtDblRange::setRange()\&. The counter's value is an integer multiple of the step size\&. The number of steps by which a button increments or decrements the value can be specified using \fBQwtCounter::setIncSteps()\fP\&. The number of buttons can be changed with \fBQwtCounter::setNumButtons()\fP\&. .PP Holding the space bar down with focus on a button is the fastest method to step through the counter values\&. When the counter underflows/overflows, the focus is set to the smallest up/down button and counting is disabled\&. Counting is re-enabled on a button release event (mouse or space bar)\&. .PP Example: .PP .nf #include '\&.\&./include/qwt_counter\&.h> QwtCounter *cnt; cnt = new QwtCounter(parent, name); cnt->setRange(0\&.0, 100\&.0, 1\&.0); // From 0\&.0 to 100, step 1\&.0 cnt->setNumButtons(2); // Two buttons each side cnt->setIncSteps(QwtCounter::Button1, 1); // Button 1 increments 1 step cnt->setIncSteps(QwtCounter::Button2, 20); // Button 2 increments 20 steps connect(cnt, SIGNAL(valueChanged(double)), my_class, SLOT(newValue(double))); .fi .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtCounter::Button\fP" Button index .SH "Constructor & Destructor Documentation" .PP .SS "QwtCounter::QwtCounter (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" The default number of buttons is set to 2\&. The default increments are: .PD 0 .IP "\(bu" 2 Button 1: 1 step .IP "\(bu" 2 Button 2: 10 steps .IP "\(bu" 2 Button 3: 100 steps .PP \fBParameters:\fP .RS 4 \fIparent\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtCounter::buttonReleased (doublevalue)\fC [signal]\fP" This signal is emitted when a button has been released .PP \fBParameters:\fP .RS 4 \fIvalue\fP The new value .RE .PP .SS "bool QwtCounter::event (QEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle PolishRequest events .SS "int QwtCounter::incSteps (\fBQwtCounter::Button\fPbtn) const" \fBReturns:\fP .RS 4 the number of steps by which a specified button increments the value or 0 if the button is invalid\&. .RE .PP \fBParameters:\fP .RS 4 \fIbtn\fP One of \fCQwtCounter::Button1\fP, \fCQwtCounter::Button2\fP, \fCQwtCounter::Button3\fP .RE .PP .SS "void QwtCounter::keyPressEvent (QKeyEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle key events .PP .IP "\(bu" 2 Ctrl + Qt::Key_Home Step to \fBminValue()\fP .IP "\(bu" 2 Ctrl + Qt::Key_End Step to \fBmaxValue()\fP .IP "\(bu" 2 Qt::Key_Up Increment by incSteps(QwtCounter::Button1) .IP "\(bu" 2 Qt::Key_Down Decrement by incSteps(QwtCounter::Button1) .IP "\(bu" 2 Qt::Key_PageUp Increment by incSteps(QwtCounter::Button2) .IP "\(bu" 2 Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button2) .IP "\(bu" 2 Shift + Qt::Key_PageUp Increment by incSteps(QwtCounter::Button3) .IP "\(bu" 2 Shift + Qt::Key_PageDown Decrement by incSteps(QwtCounter::Button3) .PP .SS "int QwtCounter::numButtons () const" \fBReturns:\fP .RS 4 The number of buttons on each side of the widget\&. .RE .PP .SS "void QwtCounter::polish ()\fC [virtual]\fP" Sets the minimum width for the buttons .SS "void QwtCounter::rangeChange ()\fC [protected]\fP, \fC [virtual]\fP" .PP Notify change of range\&. This function updates the enabled property of all buttons contained in \fBQwtCounter\fP\&. .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtCounter::setEditable (booleditable)" .PP Allow/disallow the user to manually edit the value\&. \fBParameters:\fP .RS 4 \fIeditable\fP true enables editing .RE .PP \fBSee also:\fP .RS 4 \fBeditable()\fP .RE .PP .SS "void QwtCounter::setIncSteps (\fBQwtCounter::Button\fPbtn, intnSteps)" Specify the number of steps by which the value is incremented or decremented when a specified button is pushed\&. .PP \fBParameters:\fP .RS 4 \fIbtn\fP One of \fCQwtCounter::Button1\fP, \fCQwtCounter::Button2\fP, \fCQwtCounter::Button3\fP .br \fInSteps\fP Number of steps .RE .PP .SS "void QwtCounter::setMaxValue (doublevalue)" Set the maximum value of the range .PP \fBParameters:\fP .RS 4 \fIvalue\fP Maximum value .RE .PP \fBSee also:\fP .RS 4 \fBsetMinValue()\fP, \fBmaxVal()\fP .RE .PP .SS "void QwtCounter::setMinValue (doublevalue)" Set the minimum value of the range .PP \fBParameters:\fP .RS 4 \fIvalue\fP Minimum value .RE .PP \fBSee also:\fP .RS 4 \fBsetMaxValue()\fP, \fBminVal()\fP .RE .PP .SS "void QwtCounter::setNumButtons (intn)" .PP Specify the number of buttons on each side of the label\&. \fBParameters:\fP .RS 4 \fIn\fP Number of buttons .RE .PP .SS "void QwtCounter::setStep (doublestepSize)" Set the step size .PP \fBParameters:\fP .RS 4 \fIstepSize\fP Step size .RE .PP \fBSee also:\fP .RS 4 \fBQwtDoubleRange::setStep()\fP .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtCounter::setStepButton1 (intnSteps)" Set the number of increment steps for button 1 .PP \fBParameters:\fP .RS 4 \fInSteps\fP Number of steps .RE .PP .SS "void QwtCounter::setStepButton2 (intnSteps)" Set the number of increment steps for button 2 .PP \fBParameters:\fP .RS 4 \fInSteps\fP Number of steps .RE .PP .SS "void QwtCounter::setStepButton3 (intnSteps)" Set the number of increment steps for button 3 .PP \fBParameters:\fP .RS 4 \fInSteps\fP Number of steps .RE .PP .SS "void QwtCounter::setValue (doublev)\fC [virtual]\fP" .PP Set a new value\&. \fBParameters:\fP .RS 4 \fIv\fP new value Calls \fBQwtDoubleRange::setValue\fP and does all visual updates\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtDoubleRange::setValue()\fP .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "double QwtCounter::value () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Current value .RE .PP .PP Reimplemented from \fBQwtDoubleRange\fP\&. .SS "void QwtCounter::valueChanged (doublevalue)\fC [signal]\fP" This signal is emitted when the counter's value has changed .PP \fBParameters:\fP .RS 4 \fIvalue\fP The new value .RE .PP .SS "void QwtCounter::wheelEvent (QWheelEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Handle wheel events .PP \fBParameters:\fP .RS 4 \fIe\fP Wheel event .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������qwt5-5.2.3/doc/man/man3/QwtPlotPicker.3�������������������������������������������������������������0000644�0001750�0001750�00000022437�12052741142�016777� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotPicker" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotPicker \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPicker\fP\&. .PP Inherited by \fBQwtPlotZoomer\fP\&. .SS "Signals" .in +1c .ti -1c .RI "void \fBappended\fP (const QwtDoublePoint &pos)" .br .ti -1c .RI "void \fBmoved\fP (const QwtDoublePoint &pos)" .br .ti -1c .RI "void \fBselected\fP (const QwtDoublePoint &pos)" .br .ti -1c .RI "void \fBselected\fP (const QwtDoubleRect &rect)" .br .ti -1c .RI "void \fBselected\fP (const QwtArray< QwtDoublePoint > &pa)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotPicker\fP (\fBQwtPlotCanvas\fP *)" .br .ti -1c .RI "\fBQwtPlotPicker\fP (int \fBxAxis\fP, int \fByAxis\fP, \fBQwtPlotCanvas\fP *)" .br .ti -1c .RI "\fBQwtPlotPicker\fP (int \fBxAxis\fP, int \fByAxis\fP, int \fBselectionFlags\fP, \fBRubberBand\fP \fBrubberBand\fP, \fBDisplayMode\fP \fBtrackerMode\fP, \fBQwtPlotCanvas\fP *)" .br .ti -1c .RI "virtual \fB~QwtPlotPicker\fP ()" .br .ti -1c .RI "\fBQwtPlotCanvas\fP * \fBcanvas\fP ()" .br .ti -1c .RI "const \fBQwtPlotCanvas\fP * \fBcanvas\fP () const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP ()" .br .ti -1c .RI "const \fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "virtual void \fBsetAxis\fP (int \fBxAxis\fP, int \fByAxis\fP)" .br .ti -1c .RI "int \fBxAxis\fP () const " .br .ti -1c .RI "int \fByAxis\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBappend\fP (const QPoint &)" .br .ti -1c .RI "virtual bool \fBend\fP (bool ok=true)" .br .ti -1c .RI "QwtDoubleRect \fBinvTransform\fP (const QRect &) const " .br .ti -1c .RI "QwtDoublePoint \fBinvTransform\fP (const QPoint &) const " .br .ti -1c .RI "virtual void \fBmove\fP (const QPoint &)" .br .ti -1c .RI "QwtDoubleRect \fBscaleRect\fP () const " .br .ti -1c .RI "virtual \fBQwtText\fP \fBtrackerText\fP (const QPoint &) const " .br .ti -1c .RI "virtual \fBQwtText\fP \fBtrackerText\fP (const QwtDoublePoint &) const " .br .ti -1c .RI "QRect \fBtransform\fP (const QwtDoubleRect &) const " .br .ti -1c .RI "QPoint \fBtransform\fP (const QwtDoublePoint &) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP \fBQwtPlotPicker\fP provides selections on a plot canvas\&. \fBQwtPlotPicker\fP is a \fBQwtPicker\fP tailored for selections on a plot canvas\&. It is set to a x-Axis and y-Axis and translates all pixel coordinates into this coodinate system\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotPicker::QwtPlotPicker (\fBQwtPlotCanvas\fP *canvas)\fC [explicit]\fP" .PP Create a plot picker\&. The picker is set to those x- and y-axis of the plot that are enabled\&. If both or no x-axis are enabled, the picker is set to QwtPlot::xBottom\&. If both or no y-axis are enabled, it is set to QwtPlot::yLeft\&. .PP \fBParameters:\fP .RS 4 \fIcanvas\fP Plot canvas to observe, also the parent object .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBQwtPlotPicker::scaleRect()\fP .RE .PP .SS "QwtPlotPicker::QwtPlotPicker (intxAxis, intyAxis, \fBQwtPlotCanvas\fP *canvas)\fC [explicit]\fP" Create a plot picker .PP \fBParameters:\fP .RS 4 \fIxAxis\fP Set the x axis of the picker .br \fIyAxis\fP Set the y axis of the picker .br \fIcanvas\fP Plot canvas to observe, also the parent object .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBQwtPlotPicker::scaleRect()\fP .RE .PP .SS "QwtPlotPicker::QwtPlotPicker (intxAxis, intyAxis, intselectionFlags, \fBRubberBand\fPrubberBand, \fBDisplayMode\fPtrackerMode, \fBQwtPlotCanvas\fP *canvas)\fC [explicit]\fP" Create a plot picker .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X axis of the picker .br \fIyAxis\fP Y axis of the picker .br \fIselectionFlags\fP Or'd value of SelectionType, RectSelectionType and SelectionMode .br \fIrubberBand\fP Rubberband style .br \fItrackerMode\fP Tracker mode .br \fIcanvas\fP Plot canvas to observe, also the parent object .RE .PP \fBSee also:\fP .RS 4 \fBQwtPicker\fP, \fBQwtPicker::setSelectionFlags()\fP, \fBQwtPicker::setRubberBand()\fP, \fBQwtPicker::setTrackerMode\fP .PP \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP, \fBQwtPlotPicker::scaleRect()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlotPicker::append (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Append a point to the selection and update rubberband and tracker\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Additional point .RE .PP \fBSee also:\fP .RS 4 \fBisActive\fP, \fBbegin()\fP, \fBend()\fP, \fBmove()\fP, \fBappended()\fP .RE .PP \fBNote:\fP .RS 4 The \fBappended(const QPoint &)\fP, appended(const QDoublePoint &) signals are emitted\&. .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotPicker::appended (const QwtDoublePoint &pos)\fC [signal]\fP" A signal emitted when a point has been appended to the selection .PP \fBParameters:\fP .RS 4 \fIpos\fP Position of the appended point\&. .RE .PP \fBSee also:\fP .RS 4 \fBappend()\fP\&. \fBmoved()\fP .RE .PP .SS "bool QwtPlotPicker::end (boolok = \fCtrue\fP)\fC [protected]\fP, \fC [virtual]\fP" Close a selection setting the state to inactive\&. .PP \fBParameters:\fP .RS 4 \fIok\fP If true, complete the selection and emit selected signals otherwise discard the selection\&. .RE .PP \fBReturns:\fP .RS 4 true if the selection is accepted, false otherwise .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "QwtDoubleRect QwtPlotPicker::invTransform (const QRect &rect) const\fC [protected]\fP" Translate a rectangle from pixel into plot coordinates .PP \fBReturns:\fP .RS 4 Rectangle in plot coordinates .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPicker::transform()\fP .RE .PP .SS "QwtDoublePoint QwtPlotPicker::invTransform (const QPoint &pos) const\fC [protected]\fP" Translate a point from pixel into plot coordinates .PP \fBReturns:\fP .RS 4 Point in plot coordinates .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPicker::transform()\fP .RE .PP .SS "void QwtPlotPicker::move (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Move the last point of the selection .PP \fBParameters:\fP .RS 4 \fIpos\fP New position .RE .PP \fBSee also:\fP .RS 4 \fBisActive\fP, \fBbegin()\fP, \fBend()\fP, \fBappend()\fP .RE .PP \fBNote:\fP .RS 4 The \fBmoved(const QPoint &)\fP, moved(const QDoublePoint &) signals are emitted\&. .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "void QwtPlotPicker::moved (const QwtDoublePoint &pos)\fC [signal]\fP" A signal emitted whenever the last appended point of the selection has been moved\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Position of the moved last point of the selection\&. .RE .PP \fBSee also:\fP .RS 4 \fBmove()\fP, \fBappended()\fP .RE .PP .SS "QwtDoubleRect QwtPlotPicker::scaleRect () const\fC [protected]\fP" Return normalized bounding rect of the axes .PP \fBSee also:\fP .RS 4 \fBQwtPlot::autoReplot()\fP, \fBQwtPlot::replot()\fP\&. .RE .PP .SS "void QwtPlotPicker::selected (const QwtDoublePoint &pos)\fC [signal]\fP" A signal emitted in case of \fBselectionFlags()\fP & PointSelection\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Selected point .RE .PP .SS "void QwtPlotPicker::selected (const QwtDoubleRect &rect)\fC [signal]\fP" A signal emitted in case of \fBselectionFlags()\fP & RectSelection\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Selected rectangle .RE .PP .SS "void QwtPlotPicker::selected (const QwtArray< QwtDoublePoint > &pa)\fC [signal]\fP" A signal emitting the selected points, at the end of a selection\&. .PP \fBParameters:\fP .RS 4 \fIpa\fP Selected points .RE .PP .SS "void QwtPlotPicker::setAxis (intxAxis, intyAxis)\fC [virtual]\fP" Set the x and y axes of the picker .PP \fBParameters:\fP .RS 4 \fIxAxis\fP X axis .br \fIyAxis\fP Y axis .RE .PP .PP Reimplemented in \fBQwtPlotZoomer\fP\&. .SS "\fBQwtText\fP QwtPlotPicker::trackerText (const QPoint &pos) const\fC [protected]\fP, \fC [virtual]\fP" Translate a pixel position into a position string .PP \fBParameters:\fP .RS 4 \fIpos\fP Position in pixel coordinates .RE .PP \fBReturns:\fP .RS 4 Position string .RE .PP .PP Reimplemented from \fBQwtPicker\fP\&. .SS "\fBQwtText\fP QwtPlotPicker::trackerText (const QwtDoublePoint &pos) const\fC [protected]\fP, \fC [virtual]\fP" .PP Translate a position into a position string\&. In case of HLineRubberBand the label is the value of the y position, in case of VLineRubberBand the value of the x position\&. Otherwise the label contains x and y position separated by a ',' \&. .PP The format for the double to string conversion is '%\&.4f'\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Position .RE .PP \fBReturns:\fP .RS 4 Position string .RE .PP .SS "QRect QwtPlotPicker::transform (const QwtDoubleRect &rect) const\fC [protected]\fP" Translate a rectangle from plot into pixel coordinates .PP \fBReturns:\fP .RS 4 Rectangle in pixel coordinates .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPicker::invTransform()\fP .RE .PP .SS "QPoint QwtPlotPicker::transform (const QwtDoublePoint &pos) const\fC [protected]\fP" Translate a point from plot into pixel coordinates .PP \fBReturns:\fP .RS 4 Point in pixel coordinates .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPicker::invTransform()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotSpectrogram.3��������������������������������������������������������0000644�0001750�0001750�00000030102�12052741142�020034� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotSpectrogram" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotSpectrogram \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotRasterItem\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBDisplayMode\fP { \fBImageMode\fP = 1, \fBContourMode\fP = 2 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotSpectrogram\fP (const QString &\fBtitle\fP=QString::null)" .br .ti -1c .RI "virtual \fB~QwtPlotSpectrogram\fP ()" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "const \fBQwtColorMap\fP & \fBcolorMap\fP () const " .br .ti -1c .RI "QwtValueList \fBcontourLevels\fP () const " .br .ti -1c .RI "virtual QPen \fBcontourPen\fP (double level) const " .br .ti -1c .RI "const \fBQwtRasterData\fP & \fBdata\fP () const " .br .ti -1c .RI "QPen \fBdefaultContourPen\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const " .br .ti -1c .RI "virtual QSize \fBrasterHint\fP (const QwtDoubleRect &) const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "void \fBsetColorMap\fP (const \fBQwtColorMap\fP &)" .br .ti -1c .RI "void \fBsetConrecAttribute\fP (\fBQwtRasterData::ConrecAttribute\fP, bool on)" .br .ti -1c .RI "void \fBsetContourLevels\fP (const QwtValueList &)" .br .ti -1c .RI "void \fBsetData\fP (const \fBQwtRasterData\fP &\fBdata\fP)" .br .ti -1c .RI "void \fBsetDefaultContourPen\fP (const QPen &)" .br .ti -1c .RI "void \fBsetDisplayMode\fP (\fBDisplayMode\fP, bool on=true)" .br .ti -1c .RI "bool \fBtestConrecAttribute\fP (\fBQwtRasterData::ConrecAttribute\fP) const " .br .ti -1c .RI "bool \fBtestDisplayMode\fP (\fBDisplayMode\fP) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual QSize \fBcontourRasterSize\fP (const QwtDoubleRect &, const QRect &) const " .br .ti -1c .RI "virtual void \fBdrawContourLines\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtRasterData::ContourLines &lines) const " .br .ti -1c .RI "virtual QwtRasterData::ContourLines \fBrenderContourLines\fP (const QwtDoubleRect &rect, const QSize &raster) const " .br .ti -1c .RI "virtual QImage \fBrenderImage\fP (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtDoubleRect &rect) const " .br .in -1c .SH "Detailed Description" .PP A plot item, which displays a spectrogram\&. A spectrogram displays threedimenional data, where the 3rd dimension ( the intensity ) is displayed using colors\&. The colors are calculated from the values using a color map\&. .PP In ContourMode contour lines are painted for the contour levels\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtRasterData\fP, \fBQwtColorMap\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotSpectrogram::DisplayMode\fP" The display mode controls how the raster data will be represented\&. .IP "\(bu" 2 ImageMode .br The values are mapped to colors using a color map\&. .IP "\(bu" 2 ContourMode .br The data is displayed using contour lines .PP .PP When both modes are enabled the contour lines are painted on top of the spectrogram\&. The default setting enables ImageMode\&. .PP \fBSee also:\fP .RS 4 \fBsetDisplayMode()\fP, \fBtestDisplayMode()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotSpectrogram::QwtPlotSpectrogram (const QString &title = \fCQString::null\fP)\fC [explicit]\fP" Sets the following item attributes: .IP "\(bu" 2 QwtPlotItem::AutoScale: true .IP "\(bu" 2 QwtPlotItem::Legend: false .PP .PP The z value is initialized by 8\&.0\&. .PP \fBParameters:\fP .RS 4 \fItitle\fP Title .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotItem::setItemAttribute()\fP, \fBQwtPlotItem::setZ()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtPlotSpectrogram::boundingRect () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Bounding rect of the data .RE .PP \fBSee also:\fP .RS 4 \fBQwtRasterData::boundingRect()\fP .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "const \fBQwtColorMap\fP & QwtPlotSpectrogram::colorMap () const" \fBReturns:\fP .RS 4 Color Map used for mapping the intensity values to colors .RE .PP \fBSee also:\fP .RS 4 \fBsetColorMap()\fP .RE .PP .SS "QwtValueList QwtPlotSpectrogram::contourLevels () const" .PP Return the levels of the contour lines\&. The levels are sorted in increasing order\&. .PP \fBSee also:\fP .RS 4 \fBcontourLevels()\fP, \fBrenderContourLines()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP .SS "QPen QwtPlotSpectrogram::contourPen (doublelevel) const\fC [virtual]\fP" .PP Calculate the pen for a contour line\&. The color of the pen is the color for level calculated by the color map .PP \fBParameters:\fP .RS 4 \fIlevel\fP Contour level .RE .PP \fBReturns:\fP .RS 4 Pen for the contour line .RE .PP \fBNote:\fP .RS 4 contourPen is only used if \fBdefaultContourPen()\fP\&.style() == Qt::NoPen .RE .PP \fBSee also:\fP .RS 4 \fBsetDefaultContourPen()\fP, \fBsetColorMap()\fP, \fBsetContourLevels()\fP .RE .PP .SS "QSize QwtPlotSpectrogram::contourRasterSize (const QwtDoubleRect &area, const QRect &rect) const\fC [protected]\fP, \fC [virtual]\fP" .PP Return the raster to be used by the CONREC contour algorithm\&. A larger size will improve the precisision of the CONREC algorithm, but will slow down the time that is needed to calculate the lines\&. .PP The default implementation returns rect\&.size() / 2 bounded to \fBdata()\fP\&.\fBrasterHint()\fP\&. .PP \fBParameters:\fP .RS 4 \fIarea\fP Rect, where to calculate the contour lines .br \fIrect\fP Rect in pixel coordinates, where to paint the contour lines .RE .PP \fBReturns:\fP .RS 4 Raster to be used by the CONREC contour algorithm\&. .RE .PP \fBNote:\fP .RS 4 The size will be bounded to rect\&.size()\&. .RE .PP \fBSee also:\fP .RS 4 \fBdrawContourLines()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP .SS "const \fBQwtRasterData\fP & QwtPlotSpectrogram::data () const" \fBReturns:\fP .RS 4 Spectrogram data .RE .PP \fBSee also:\fP .RS 4 \fBsetData()\fP .RE .PP .SS "QPen QwtPlotSpectrogram::defaultContourPen () const" \fBReturns:\fP .RS 4 Default contour pen .RE .PP \fBSee also:\fP .RS 4 \fBsetDefaultContourPen()\fP .RE .PP .SS "void QwtPlotSpectrogram::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" .PP Draw the spectrogram\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP Maps x-values into pixel coordinates\&. .br \fIyMap\fP Maps y-values into pixel coordinates\&. .br \fIcanvasRect\fP Contents rect of the canvas in painter coordinates .RE .PP \fBSee also:\fP .RS 4 \fBsetDisplayMode()\fP, \fBrenderImage()\fP, \fBQwtPlotRasterItem::draw()\fP, \fBdrawContourLines()\fP .RE .PP .PP Reimplemented from \fBQwtPlotRasterItem\fP\&. .SS "void QwtPlotSpectrogram::drawContourLines (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtRasterData::ContourLines &contourLines) const\fC [protected]\fP, \fC [virtual]\fP" Paint the contour lines .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP Maps x-values into pixel coordinates\&. .br \fIyMap\fP Maps y-values into pixel coordinates\&. .br \fIcontourLines\fP Contour lines .RE .PP \fBSee also:\fP .RS 4 \fBrenderContourLines()\fP, \fBdefaultContourPen()\fP, \fBcontourPen()\fP .RE .PP .SS "QSize QwtPlotSpectrogram::rasterHint (const QwtDoubleRect &rect) const\fC [virtual]\fP" .PP Returns the recommended raster for a given rect\&. F\&.e the raster hint is used to limit the resolution of the image that is rendered\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Rect for the raster hint .RE .PP \fBReturns:\fP .RS 4 \fBdata()\fP\&.rasterHint(rect) .RE .PP .PP Reimplemented from \fBQwtPlotRasterItem\fP\&. .SS "QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines (const QwtDoubleRect &rect, const QSize &raster) const\fC [protected]\fP, \fC [virtual]\fP" Calculate contour lines .PP \fBParameters:\fP .RS 4 \fIrect\fP Rectangle, where to calculate the contour lines .br \fIraster\fP Raster, used by the CONREC algorithm .RE .PP \fBSee also:\fP .RS 4 \fBcontourLevels()\fP, \fBsetConrecAttribute()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP .SS "QImage QwtPlotSpectrogram::renderImage (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QwtDoubleRect &area) const\fC [protected]\fP, \fC [virtual]\fP" .PP Render an image from the data and color map\&. The area is translated into a rect of the paint device\&. For each pixel of this rect the intensity is mapped into a color\&. .PP \fBParameters:\fP .RS 4 \fIxMap\fP X-Scale Map .br \fIyMap\fP Y-Scale Map .br \fIarea\fP Area that should be rendered in scale coordinates\&. .RE .PP \fBReturns:\fP .RS 4 A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map\&. .RE .PP \fBSee also:\fP .RS 4 QwtRasterData::intensity(), \fBQwtColorMap::rgb()\fP, \fBQwtColorMap::colorIndex()\fP .RE .PP .PP Implements \fBQwtPlotRasterItem\fP\&. .SS "int QwtPlotSpectrogram::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotSpectrogram .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "void QwtPlotSpectrogram::setColorMap (const \fBQwtColorMap\fP &colorMap)" Change the color map .PP Often it is useful to display the mapping between intensities and colors as an additional plot axis, showing a color bar\&. .PP \fBParameters:\fP .RS 4 \fIcolorMap\fP Color Map .RE .PP \fBSee also:\fP .RS 4 \fBcolorMap()\fP, QwtScaleWidget::setColorBarEnabled(), QwtScaleWidget::setColorMap() .RE .PP .SS "void QwtPlotSpectrogram::setConrecAttribute (\fBQwtRasterData::ConrecAttribute\fPattribute, boolon)" Modify an attribute of the CONREC algorithm, used to calculate the contour lines\&. .PP \fBParameters:\fP .RS 4 \fIattribute\fP CONREC attribute .br \fIon\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBtestConrecAttribute()\fP, \fBrenderContourLines()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP .SS "void QwtPlotSpectrogram::setContourLevels (const QwtValueList &levels)" Set the levels of the contour lines .PP \fBParameters:\fP .RS 4 \fIlevels\fP Values of the contour levels .RE .PP \fBSee also:\fP .RS 4 \fBcontourLevels()\fP, \fBrenderContourLines()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP \fBNote:\fP .RS 4 contourLevels returns the same levels but sorted\&. .RE .PP .SS "void QwtPlotSpectrogram::setData (const \fBQwtRasterData\fP &data)" Set the data to be displayed .PP \fBParameters:\fP .RS 4 \fIdata\fP Spectrogram Data .RE .PP \fBSee also:\fP .RS 4 \fBdata()\fP .RE .PP .SS "void QwtPlotSpectrogram::setDefaultContourPen (const QPen &pen)" .PP Set the default pen for the contour lines\&. If the spectrogram has a valid default contour pen a contour line is painted using the default contour pen\&. Otherwise (pen\&.style() == Qt::NoPen) the pen is calculated for each contour level using \fBcontourPen()\fP\&. .PP \fBSee also:\fP .RS 4 \fBdefaultContourPen()\fP, \fBcontourPen()\fP .RE .PP .SS "void QwtPlotSpectrogram::setDisplayMode (\fBDisplayMode\fPmode, boolon = \fCtrue\fP)" The display mode controls how the raster data will be represented\&. .PP \fBParameters:\fP .RS 4 \fImode\fP Display mode .br \fIon\fP On/Off .RE .PP The default setting enables ImageMode\&. .PP \fBSee also:\fP .RS 4 \fBDisplayMode\fP, displayMode() .RE .PP .SS "bool QwtPlotSpectrogram::testConrecAttribute (\fBQwtRasterData::ConrecAttribute\fPattribute) const" Test an attribute of the CONREC algorithm, used to calculate the contour lines\&. .PP \fBParameters:\fP .RS 4 \fIattribute\fP CONREC attribute .RE .PP \fBReturns:\fP .RS 4 true, is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetConrecAttribute()\fP, \fBrenderContourLines()\fP, \fBQwtRasterData::contourLines()\fP .RE .PP .SS "bool QwtPlotSpectrogram::testDisplayMode (\fBDisplayMode\fPmode) const" The display mode controls how the raster data will be represented\&. .PP \fBParameters:\fP .RS 4 \fImode\fP Display mode .RE .PP \fBReturns:\fP .RS 4 true if mode is enabled .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtIntervalData.3�����������������������������������������������������������0000644�0001750�0001750�00000004065�12052741140�017274� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtIntervalData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtIntervalData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtIntervalData\fP ()" .br .ti -1c .RI "\fBQwtIntervalData\fP (const QwtArray< \fBQwtDoubleInterval\fP > &, const QwtArray< double > &)" .br .ti -1c .RI "\fB~QwtIntervalData\fP ()" .br .ti -1c .RI "QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "const \fBQwtDoubleInterval\fP & \fBinterval\fP (size_t i) const " .br .ti -1c .RI "void \fBsetData\fP (const QwtArray< \fBQwtDoubleInterval\fP > &, const QwtArray< double > &)" .br .ti -1c .RI "size_t \fBsize\fP () const " .br .ti -1c .RI "double \fBvalue\fP (size_t i) const " .br .in -1c .SH "Detailed Description" .PP Series of samples of a value and an interval\&. \fBQwtIntervalData\fP is a series of samples of a value and an interval\&. F\&.e\&. error bars are built from samples [x, y1-y2], while a histogram might consist of [x1-x2, y] samples\&. .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtIntervalData::boundingRect () const" Calculate the bounding rectangle of the samples .PP The x coordinates of the rectangle are built from the intervals, the y coordinates from the values\&. .PP \fBReturns:\fP .RS 4 Bounding rectangle .RE .PP .SS "const \fBQwtDoubleInterval\fP & QwtIntervalData::interval (size_ti) const\fC [inline]\fP" Interval of a sample .PP \fBParameters:\fP .RS 4 \fIi\fP Sample index .RE .PP \fBReturns:\fP .RS 4 Interval .RE .PP \fBSee also:\fP .RS 4 \fBvalue()\fP, \fBsize()\fP .RE .PP .SS "size_t QwtIntervalData::size () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Number of samples .RE .PP .SS "double QwtIntervalData::value (size_ti) const\fC [inline]\fP" Value of a sample .PP \fBParameters:\fP .RS 4 \fIi\fP Sample index .RE .PP \fBReturns:\fP .RS 4 Value .RE .PP \fBSee also:\fP .RS 4 \fBinterval()\fP, \fBsize()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDialScaleDraw.3����������������������������������������������������������0000644�0001750�0001750�00000003400�12052741137�017353� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDialScaleDraw" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDialScaleDraw \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtRoundScaleDraw\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDialScaleDraw\fP (\fBQwtDial\fP *)" .br .ti -1c .RI "virtual \fBQwtText\fP \fBlabel\fP (double value) const " .br .ti -1c .RI "uint \fBpenWidth\fP () const " .br .ti -1c .RI "void \fBsetPenWidth\fP (uint)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A special scale draw made for \fBQwtDial\fP\&. \fBSee also:\fP .RS 4 \fBQwtDial\fP, \fBQwtCompass\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtDialScaleDraw::QwtDialScaleDraw (\fBQwtDial\fP *parent)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent dial widget .RE .PP .SH "Member Function Documentation" .PP .SS "\fBQwtText\fP QwtDialScaleDraw::label (doublevalue) const\fC [virtual]\fP" Call \fBQwtDial::scaleLabel\fP of the parent dial widget\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value to display .RE .PP \fBSee also:\fP .RS 4 \fBQwtDial::scaleLabel()\fP .RE .PP .PP Reimplemented from \fBQwtAbstractScaleDraw\fP\&. .SS "uint QwtDialScaleDraw::penWidth () const" \fBReturns:\fP .RS 4 Pen width used for painting the scale .RE .PP \fBSee also:\fP .RS 4 \fBsetPenWidth\fP, \fBQwtDial::drawScale()\fP .RE .PP .SS "void QwtDialScaleDraw::setPenWidth (uintpenWidth)" Set the pen width used for painting the scale .PP \fBParameters:\fP .RS 4 \fIpenWidth\fP Pen width .RE .PP \fBSee also:\fP .RS 4 \fBpenWidth()\fP, \fBQwtDial::drawScale()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/spectrogramscreenshots.3����������������������������������������������������0000644�0001750�0001750�00000000276�12052741136�021036� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "spectrogramscreenshots" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME spectrogramscreenshots \- Spectrogram, Contour Plot .PP .PP .PP /*! ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLegendItem.3�������������������������������������������������������������0000644�0001750�0001750�00000015626�12052741140�016740� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLegendItem" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLegendItem \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtTextLabel\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBIdentifierMode\fP { \fBNoIdentifier\fP = 0, \fBShowLine\fP = 1, \fBShowSymbol\fP = 2, \fBShowText\fP = 4 }" .br .in -1c .SS "Public Slots" .in +1c .ti -1c .RI "void \fBsetChecked\fP (bool on)" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBchecked\fP (bool)" .br .ti -1c .RI "void \fBclicked\fP ()" .br .ti -1c .RI "void \fBpressed\fP ()" .br .ti -1c .RI "void \fBreleased\fP ()" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtLegendItem\fP (QWidget *parent=0)" .br .ti -1c .RI "\fBQwtLegendItem\fP (const \fBQwtSymbol\fP &, const QPen &, const \fBQwtText\fP &, QWidget *parent=0)" .br .ti -1c .RI "virtual \fB~QwtLegendItem\fP ()" .br .ti -1c .RI "const QPen & \fBcurvePen\fP () const " .br .ti -1c .RI "virtual void \fBdrawIdentifier\fP (QPainter *, const QRect &) const " .br .ti -1c .RI "virtual void \fBdrawItem\fP (QPainter *p, const QRect &) const " .br .ti -1c .RI "int \fBidentifierMode\fP () const " .br .ti -1c .RI "int \fBidentifierWidth\fP () const " .br .ti -1c .RI "bool \fBisChecked\fP () const " .br .ti -1c .RI "\fBQwtLegend::LegendItemMode\fP \fBitemMode\fP () const " .br .ti -1c .RI "void \fBsetCurvePen\fP (const QPen &)" .br .ti -1c .RI "void \fBsetIdentifierMode\fP (int)" .br .ti -1c .RI "void \fBsetIdentifierWidth\fP (int width)" .br .ti -1c .RI "void \fBsetItemMode\fP (\fBQwtLegend::LegendItemMode\fP)" .br .ti -1c .RI "void \fBsetSpacing\fP (int \fBspacing\fP)" .br .ti -1c .RI "void \fBsetSymbol\fP (const \fBQwtSymbol\fP &)" .br .ti -1c .RI "virtual void \fBsetText\fP (const \fBQwtText\fP &)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "int \fBspacing\fP () const " .br .ti -1c .RI "const \fBQwtSymbol\fP & \fBsymbol\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawText\fP (QPainter *, const QRect &)" .br .ti -1c .RI "bool \fBisDown\fP () const " .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBkeyReleaseEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBmousePressEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBmouseReleaseEvent\fP (QMouseEvent *)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *)" .br .ti -1c .RI "void \fBsetDown\fP (bool)" .br .in -1c .SH "Detailed Description" .PP A legend label\&. \fBQwtLegendItem\fP represents a curve on a legend\&. It displays an curve identifier with an explaining text\&. The identifier might be a combination of curve symbol and line\&. In readonly mode it behaves like a label, otherwise like an unstylish push button\&. .PP \fBSee also:\fP .RS 4 \fBQwtLegend\fP, \fBQwtPlotCurve\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtLegendItem::IdentifierMode\fP" .PP Identifier mode\&. Default is ShowLine | ShowText .PP \fBSee also:\fP .RS 4 \fBidentifierMode()\fP, \fBsetIdentifierMode()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtLegendItem::QwtLegendItem (QWidget *parent = \fC0\fP)\fC [explicit]\fP" \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SS "QwtLegendItem::QwtLegendItem (const \fBQwtSymbol\fP &symbol, const QPen &curvePen, const \fBQwtText\fP &text, QWidget *parent = \fC0\fP)\fC [explicit]\fP" \fBParameters:\fP .RS 4 \fIsymbol\fP Curve symbol .br \fIcurvePen\fP Curve pen .br \fItext\fP Label text .br \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "const QPen & QwtLegendItem::curvePen () const" \fBReturns:\fP .RS 4 The curve pen\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetCurvePen()\fP .RE .PP .SS "void QwtLegendItem::drawIdentifier (QPainter *painter, const QRect &rect) const\fC [virtual]\fP" Paint the identifier to a given rect\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Rect where to paint .RE .PP .SS "void QwtLegendItem::drawItem (QPainter *painter, const QRect &rect) const\fC [virtual]\fP" Draw the legend item to a given rect\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Rect where to paint the button .RE .PP .SS "int QwtLegendItem::identifierMode () const" Or'd values of IdentifierMode\&. .PP \fBSee also:\fP .RS 4 \fBsetIdentifierMode()\fP, \fBIdentifierMode\fP .RE .PP .SS "int QwtLegendItem::identifierWidth () const" Return the width of the identifier .PP \fBSee also:\fP .RS 4 \fBsetIdentifierWidth()\fP .RE .PP .SS "\fBQwtLegend::LegendItemMode\fP QwtLegendItem::itemMode () const" Return the item mode .PP \fBSee also:\fP .RS 4 \fBsetItemMode()\fP .RE .PP .SS "void QwtLegendItem::setChecked (boolon)\fC [slot]\fP" Check/Uncheck a the item .PP \fBParameters:\fP .RS 4 \fIon\fP check/uncheck .RE .PP \fBSee also:\fP .RS 4 \fBsetItemMode()\fP .RE .PP .SS "void QwtLegendItem::setCurvePen (const QPen &pen)" Set curve pen\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Curve pen .RE .PP \fBSee also:\fP .RS 4 \fBcurvePen()\fP .RE .PP .SS "void QwtLegendItem::setIdentifierMode (intmode)" Set identifier mode\&. Default is ShowLine | ShowText\&. .PP \fBParameters:\fP .RS 4 \fImode\fP Or'd values of IdentifierMode .RE .PP \fBSee also:\fP .RS 4 \fBidentifierMode()\fP .RE .PP .SS "void QwtLegendItem::setIdentifierWidth (intwidth)" Set the width for the identifier Default is 8 pixels .PP \fBParameters:\fP .RS 4 \fIwidth\fP New width .RE .PP \fBSee also:\fP .RS 4 \fBidentifierMode()\fP, \fBidentifierWidth()\fP .RE .PP .SS "void QwtLegendItem::setItemMode (\fBQwtLegend::LegendItemMode\fPmode)" Set the item mode The default is QwtLegend::ReadOnlyItem .PP \fBParameters:\fP .RS 4 \fImode\fP Item mode .RE .PP \fBSee also:\fP .RS 4 \fBitemMode()\fP .RE .PP .SS "void QwtLegendItem::setSpacing (intspacing)" Change the spacing .PP \fBParameters:\fP .RS 4 \fIspacing\fP Spacing .RE .PP \fBSee also:\fP .RS 4 \fBspacing()\fP, \fBidentifierWidth()\fP, \fBQwtTextLabel::margin()\fP .RE .PP .SS "void QwtLegendItem::setSymbol (const \fBQwtSymbol\fP &symbol)" Set curve symbol\&. .PP \fBParameters:\fP .RS 4 \fIsymbol\fP Symbol .RE .PP \fBSee also:\fP .RS 4 \fBsymbol()\fP .RE .PP .SS "void QwtLegendItem::setText (const \fBQwtText\fP &text)\fC [virtual]\fP" Set the text to the legend item .PP \fBParameters:\fP .RS 4 \fItext\fP Text label .RE .PP \fBSee also:\fP .RS 4 \fBQwtTextLabel::text()\fP .RE .PP .PP Reimplemented from \fBQwtTextLabel\fP\&. .SS "int QwtLegendItem::spacing () const" Return the spacing .PP \fBSee also:\fP .RS 4 \fBsetSpacing()\fP, \fBidentifierWidth()\fP, \fBQwtTextLabel::margin()\fP .RE .PP .SS "const \fBQwtSymbol\fP & QwtLegendItem::symbol () const" \fBReturns:\fP .RS 4 The curve symbol\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetSymbol()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtTextEngine.3�������������������������������������������������������������0000644�0001750�0001750�00000010520�12052741143�016764� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtTextEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtTextEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtMathMLTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtRichTextEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fB~QwtTextEngine\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QRect &rect, int flags, const QString &text) const =0" .br .ti -1c .RI "virtual int \fBheightForWidth\fP (const QFont &font, int flags, const QString &text, int width) const =0" .br .ti -1c .RI "virtual bool \fBmightRender\fP (const QString &text) const =0" .br .ti -1c .RI "virtual void \fBtextMargins\fP (const QFont &font, const QString &text, int &left, int &right, int &top, int &bottom) const =0" .br .ti -1c .RI "virtual QSize \fBtextSize\fP (const QFont &font, int flags, const QString &text) const =0" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtTextEngine\fP ()" .br .in -1c .SH "Detailed Description" .PP Abstract base class for rendering text strings\&. A text engine is responsible for rendering texts for a specific text format\&. They are used by \fBQwtText\fP to render a text\&. .PP \fBQwtPlainTextEngine\fP and \fBQwtRichTextEngine\fP are part of the Qwt library\&. .PP \fBQwtMathMLTextEngine\fP can be found in Qwt MathML extension, that needs the MathML renderer of the Qt solutions package\&. Unfortunately it is only available with a commercial Qt license\&. .PP \fBSee also:\fP .RS 4 \fBQwtText::setTextEngine()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "virtual void QwtTextEngine::draw (QPainter *painter, const QRect &rect, intflags, const QString &text) const\fC [pure virtual]\fP" Draw the text in a clipping rectangle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Clipping rectangle .br \fIflags\fP Bitwise OR of the flags like in for QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP .PP Implemented in \fBQwtRichTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtMathMLTextEngine\fP\&. .SS "virtual int QwtTextEngine::heightForWidth (const QFont &font, intflags, const QString &text, intwidth) const\fC [pure virtual]\fP" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .br \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP .PP Implemented in \fBQwtRichTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtMathMLTextEngine\fP\&. .SS "virtual bool QwtTextEngine::mightRender (const QString &text) const\fC [pure virtual]\fP" Test if a string can be rendered by this text engine .PP \fBParameters:\fP .RS 4 \fItext\fP Text to be tested .RE .PP \fBReturns:\fP .RS 4 true, if it can be rendered .RE .PP .PP Implemented in \fBQwtRichTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtMathMLTextEngine\fP\&. .SS "virtual void QwtTextEngine::textMargins (const QFont &font, const QString &text, int &left, int &right, int &top, int &bottom) const\fC [pure virtual]\fP" Return margins around the texts .PP The textSize might include margins around the text, like QFontMetrics::descent\&. In situations where texts need to be aligend in detail, knowing these margins might improve the layout calculations\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fItext\fP Text to be rendered .br \fIleft\fP Return value for the left margin .br \fIright\fP Return value for the right margin .br \fItop\fP Return value for the top margin .br \fIbottom\fP Return value for the bottom margin .RE .PP .PP Implemented in \fBQwtRichTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtMathMLTextEngine\fP\&. .SS "virtual QSize QwtTextEngine::textSize (const QFont &font, intflags, const QString &text) const\fC [pure virtual]\fP" Returns the size, that is needed to render text .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags like in for QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP \fBReturns:\fP .RS 4 Caluclated size .RE .PP .PP Implemented in \fBQwtRichTextEngine\fP, \fBQwtPlainTextEngine\fP, and \fBQwtMathMLTextEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotScaleItem.3����������������������������������������������������������0000644�0001750�0001750�00000020521�12052741142�017420� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotScaleItem" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotScaleItem \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotScaleItem\fP (\fBQwtScaleDraw::Alignment\fP=QwtScaleDraw::BottomScale, const double pos=0\&.0)" .br .ti -1c .RI "virtual \fB~QwtPlotScaleItem\fP ()" .br .ti -1c .RI "int \fBborderDistance\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const " .br .ti -1c .RI "QFont \fBfont\fP () const " .br .ti -1c .RI "bool \fBisScaleDivFromAxis\fP () const " .br .ti -1c .RI "QPalette \fBpalette\fP () const " .br .ti -1c .RI "double \fBposition\fP () const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "const \fBQwtScaleDiv\fP & \fBscaleDiv\fP () const " .br .ti -1c .RI "const \fBQwtScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "\fBQwtScaleDraw\fP * \fBscaleDraw\fP ()" .br .ti -1c .RI "void \fBsetAlignment\fP (\fBQwtScaleDraw::Alignment\fP)" .br .ti -1c .RI "void \fBsetBorderDistance\fP (int numPixels)" .br .ti -1c .RI "void \fBsetFont\fP (const QFont &)" .br .ti -1c .RI "void \fBsetPalette\fP (const QPalette &)" .br .ti -1c .RI "void \fBsetPosition\fP (double pos)" .br .ti -1c .RI "void \fBsetScaleDiv\fP (const \fBQwtScaleDiv\fP &)" .br .ti -1c .RI "void \fBsetScaleDivFromAxis\fP (bool on)" .br .ti -1c .RI "void \fBsetScaleDraw\fP (\fBQwtScaleDraw\fP *)" .br .ti -1c .RI "virtual void \fBupdateScaleDiv\fP (const \fBQwtScaleDiv\fP &, const \fBQwtScaleDiv\fP &)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A class which draws a scale inside the plot canvas\&. \fBQwtPlotScaleItem\fP can be used to draw an axis inside the plot canvas\&. It might by synchronized to one of the axis of the plot, but can also display its own ticks and labels\&. .PP It is allowed to synchronize the scale item with a disabled axis\&. In plots with vertical and horizontal scale items, it might be necessary to remove ticks at the intersections, by overloading \fBupdateScaleDiv()\fP\&. .PP The scale might be at a specific position (f\&.e 0\&.0) or it might be aligned to a canvas border\&. .PP \fBExample\fP .RS 4 The following example shows how to replace the left axis, by a scale item at the x position 0\&.0\&. .PP .nf QwtPlotScaleItem *scaleItem = new QwtPlotScaleItem(QwtScaleDraw::RightScale, 0.0); scaleItem->setFont(plot->axisWidget(QwtPlot::yLeft)->font()); scaleItem->attach(plot); plot->enableAxis(QwtPlot::yLeft, false); .fi .PP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotScaleItem::QwtPlotScaleItem (\fBQwtScaleDraw::Alignment\fPalignment = \fCQwtScaleDraw::BottomScale\fP, const doublepos = \fC0\&.0\fP)\fC [explicit]\fP" .PP Constructor for scale item at the position pos\&. \fBParameters:\fP .RS 4 \fIalignment\fP In case of QwtScaleDraw::BottomScale/QwtScaleDraw::TopScale the scale item is corresponding to the \fBxAxis()\fP, otherwise it corresponds to the \fByAxis()\fP\&. .br \fIpos\fP x or y position, depending on the corresponding axis\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetPosition()\fP, \fBsetAlignment()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "int QwtPlotScaleItem::borderDistance () const" \fBReturns:\fP .RS 4 Distance from a canvas border .RE .PP \fBSee also:\fP .RS 4 \fBsetBorderDistance()\fP, \fBsetPosition()\fP .RE .PP .SS "QFont QwtPlotScaleItem::font () const" \fBReturns:\fP .RS 4 tick label font .RE .PP \fBSee also:\fP .RS 4 \fBsetFont()\fP .RE .PP .SS "bool QwtPlotScaleItem::isScaleDivFromAxis () const" \fBReturns:\fP .RS 4 True, if the synchronization of the scale division with the corresponding axis is enabled\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDiv()\fP, \fBsetScaleDivFromAxis()\fP .RE .PP .SS "QPalette QwtPlotScaleItem::palette () const" \fBReturns:\fP .RS 4 palette .RE .PP \fBSee also:\fP .RS 4 \fBsetPalette()\fP .RE .PP .SS "double QwtPlotScaleItem::position () const" \fBReturns:\fP .RS 4 Position of the scale .RE .PP \fBSee also:\fP .RS 4 \fBsetPosition()\fP, \fBsetAlignment()\fP .RE .PP .SS "int QwtPlotScaleItem::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotScale .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "const \fBQwtScaleDiv\fP & QwtPlotScaleItem::scaleDiv () const" \fBReturns:\fP .RS 4 Scale division .RE .PP .SS "const \fBQwtScaleDraw\fP * QwtPlotScaleItem::scaleDraw () const" \fBReturns:\fP .RS 4 Scale draw .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "\fBQwtScaleDraw\fP * QwtPlotScaleItem::scaleDraw ()" \fBReturns:\fP .RS 4 Scale draw .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "void QwtPlotScaleItem::setAlignment (\fBQwtScaleDraw::Alignment\fPalignment)" Change the alignment of the scale .PP The alignment sets the orientation of the scale and the position of the ticks: .PP .IP "\(bu" 2 QwtScaleDraw::BottomScale: horizontal, ticks below .IP "\(bu" 2 QwtScaleDraw::TopScale: horizontal, ticks above .IP "\(bu" 2 QwtScaleDraw::LeftScale: vertical, ticks left .IP "\(bu" 2 QwtScaleDraw::RightScale: vertical, ticks right .PP .PP For horizontal scales the position corresponds to \fBQwtPlotItem::yAxis()\fP, otherwise to \fBQwtPlotItem::xAxis()\fP\&. .PP \fBSee also:\fP .RS 4 \fBscaleDraw()\fP, \fBQwtScaleDraw::alignment()\fP, \fBsetPosition()\fP .RE .PP .SS "void QwtPlotScaleItem::setBorderDistance (intdistance)" .PP Align the scale to the canvas\&. If distance is >= 0 the scale will be aligned to a border of the contents rect of the canvas\&. If alignment() is QwtScaleDraw::LeftScale, the scale will be aligned to the right border, if it is QwtScaleDraw::TopScale it will be aligned to the bottom (and vice versa), .PP If distance is < 0 the scale will be at the \fBposition()\fP\&. .PP \fBParameters:\fP .RS 4 \fIdistance\fP Number of pixels between the canvas border and the backbone of the scale\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetPosition()\fP, \fBborderDistance()\fP .RE .PP .SS "void QwtPlotScaleItem::setFont (const QFont &font)" Change the tick label font .PP \fBSee also:\fP .RS 4 \fBfont()\fP .RE .PP .SS "void QwtPlotScaleItem::setPalette (const QPalette &palette)" Set the palette .PP \fBSee also:\fP .RS 4 \fBQwtAbstractScaleDraw::draw()\fP, \fBpalette()\fP .RE .PP .SS "void QwtPlotScaleItem::setPosition (doublepos)" Change the position of the scale .PP The position is interpreted as y value for horizontal axes and as x value for vertical axes\&. .PP The border distance is set to -1\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP New position .RE .PP \fBSee also:\fP .RS 4 \fBposition()\fP, \fBsetAlignment()\fP .RE .PP .SS "void QwtPlotScaleItem::setScaleDiv (const \fBQwtScaleDiv\fP &scaleDiv)" .PP Assign a scale division\&. When assigning a scaleDiv the scale division won't be synchronized with the corresponding axis anymore\&. .PP \fBParameters:\fP .RS 4 \fIscaleDiv\fP Scale division .RE .PP \fBSee also:\fP .RS 4 \fBscaleDiv()\fP, \fBsetScaleDivFromAxis()\fP, \fBisScaleDivFromAxis()\fP .RE .PP .SS "void QwtPlotScaleItem::setScaleDivFromAxis (boolon)" Enable/Disable the synchronization of the scale division with the corresponding axis\&. .PP \fBParameters:\fP .RS 4 \fIon\fP true/false .RE .PP \fBSee also:\fP .RS 4 \fBisScaleDivFromAxis()\fP .RE .PP .SS "void QwtPlotScaleItem::setScaleDraw (\fBQwtScaleDraw\fP *scaleDraw)" .PP Set a scale draw\&. \fBParameters:\fP .RS 4 \fIscaleDraw\fP object responsible for drawing scales\&. .RE .PP The main use case for replacing the default \fBQwtScaleDraw\fP is to overload \fBQwtAbstractScaleDraw::label\fP, to replace or swallow tick labels\&. .PP \fBSee also:\fP .RS 4 \fBscaleDraw()\fP .RE .PP .SS "void QwtPlotScaleItem::updateScaleDiv (const \fBQwtScaleDiv\fP &xScaleDiv, const \fBQwtScaleDiv\fP &yScaleDiv)\fC [virtual]\fP" .PP Update the item to changes of the axes scale division\&. In case of \fBisScaleDivFromAxis()\fP, the scale draw is synchronized to the correspond axis\&. .PP \fBParameters:\fP .RS 4 \fIxScaleDiv\fP Scale division of the x-axis .br \fIyScaleDiv\fP Scale division of the y-axis .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::updateAxes()\fP .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotPanner.3�������������������������������������������������������������0000644�0001750�0001750�00000005507�12052741141�017003� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotPanner" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotPanner \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPanner\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotPanner\fP (\fBQwtPlotCanvas\fP *)" .br .ti -1c .RI "virtual \fB~QwtPlotPanner\fP ()" .br .ti -1c .RI "\fBQwtPlotCanvas\fP * \fBcanvas\fP ()" .br .ti -1c .RI "const \fBQwtPlotCanvas\fP * \fBcanvas\fP () const " .br .ti -1c .RI "bool \fBisAxisEnabled\fP (int axis) const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP ()" .br .ti -1c .RI "const \fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "void \fBsetAxisEnabled\fP (int axis, bool on)" .br .in -1c .SS "Protected Slots" .in +1c .ti -1c .RI "virtual void \fBmoveCanvas\fP (int dx, int dy)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP \fBQwtPlotPanner\fP provides panning of a plot canvas\&. \fBQwtPlotPanner\fP is a panner for a \fBQwtPlotCanvas\fP, that adjusts the scales of the axes after dropping the canvas on its new position\&. .PP Together with \fBQwtPlotZoomer\fP and \fBQwtPlotMagnifier\fP powerful ways of navigating on a \fBQwtPlot\fP widget can be implemented easily\&. .PP \fBNote:\fP .RS 4 The axes are not updated, while dragging the canvas .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotZoomer\fP, \fBQwtPlotMagnifier\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotPanner::QwtPlotPanner (\fBQwtPlotCanvas\fP *canvas)\fC [explicit]\fP" .PP Create a plot panner\&. The panner is enabled for all axes .PP \fBParameters:\fP .RS 4 \fIcanvas\fP Plot canvas to pan, also the parent object .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisEnabled()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtPlotPanner::isAxisEnabled (intaxis) const" Test if an axis is enabled .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis, see \fBQwtPlot::Axis\fP .RE .PP \fBReturns:\fP .RS 4 True, if the axis is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisEnabled()\fP, \fBmoveCanvas()\fP .RE .PP .SS "void QwtPlotPanner::moveCanvas (intdx, intdy)\fC [protected]\fP, \fC [virtual]\fP, \fC [slot]\fP" Adjust the enabled axes according to dx/dy .PP \fBParameters:\fP .RS 4 \fIdx\fP Pixel offset in x direction .br \fIdy\fP Pixel offset in y direction .RE .PP \fBSee also:\fP .RS 4 \fBQwtPanner::panned()\fP .RE .PP .SS "void QwtPlotPanner::setAxisEnabled (intaxis, boolon)" .PP En/Disable an axis\&. Axes that are enabled will be synchronized to the result of panning\&. All other axes will remain unchanged\&. .PP \fBParameters:\fP .RS 4 \fIaxis\fP Axis, see \fBQwtPlot::Axis\fP .br \fIon\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBisAxisEnabled()\fP, \fBmoveCanvas()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotPrintFilter.3��������������������������������������������������������0000644�0001750�0001750�00000006754�12052741142�020030� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotPrintFilter" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotPrintFilter \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBItem\fP { \fBTitle\fP, \fBLegend\fP, \fBCurve\fP, \fBCurveSymbol\fP, \fBMarker\fP, \fBMarkerSymbol\fP, \fBMajorGrid\fP, \fBMinorGrid\fP, \fBCanvasBackground\fP, \fBAxisScale\fP, \fBAxisTitle\fP, \fBWidgetBackground\fP }" .br .ti -1c .RI "enum \fBOptions\fP { \fBPrintMargin\fP = 1, \fBPrintTitle\fP = 2, \fBPrintLegend\fP = 4, \fBPrintGrid\fP = 8, \fBPrintBackground\fP = 16, \fBPrintFrameWithScales\fP = 32, \fBPrintAll\fP = ~PrintFrameWithScales }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotPrintFilter\fP ()" .br .ti -1c .RI "virtual \fB~QwtPlotPrintFilter\fP ()" .br .ti -1c .RI "virtual void \fBapply\fP (\fBQwtPlot\fP *) const " .br .ti -1c .RI "virtual void \fBapply\fP (\fBQwtPlotItem\fP *) const " .br .ti -1c .RI "virtual QColor \fBcolor\fP (const QColor &, \fBItem\fP item) const " .br .ti -1c .RI "virtual QFont \fBfont\fP (const QFont &, \fBItem\fP item) const " .br .ti -1c .RI "int \fBoptions\fP () const " .br .ti -1c .RI "virtual void \fBreset\fP (\fBQwtPlot\fP *) const " .br .ti -1c .RI "virtual void \fBreset\fP (\fBQwtPlotItem\fP *) const " .br .ti -1c .RI "void \fBsetOptions\fP (int \fBoptions\fP)" .br .in -1c .SH "Detailed Description" .PP A base class for plot print filters\&. A print filter can be used to customize \fBQwtPlot::print()\fP\&. .PP \fBDeprecated\fP .RS 4 In Qwt 5\&.0 the design of \fBQwtPlot\fP allows/recommends writing individual QwtPlotItems, that are not known to \fBQwtPlotPrintFilter\fP\&. So this concept is outdated and \fBQwtPlotPrintFilter\fP will be removed/replaced in Qwt 6\&.x\&. .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotPrintFilter::QwtPlotPrintFilter ()\fC [explicit]\fP" Sets filter options to PrintAll .SH "Member Function Documentation" .PP .SS "void QwtPlotPrintFilter::apply (\fBQwtPlot\fP *plot) const\fC [virtual]\fP" Change color and fonts of a plot .PP \fBSee also:\fP .RS 4 \fBapply()\fP .RE .PP .SS "QColor QwtPlotPrintFilter::color (const QColor &c, \fBItem\fPitem) const\fC [virtual]\fP" .PP Modifies a color for printing\&. \fBParameters:\fP .RS 4 \fIc\fP Color to be modified .br \fIitem\fP Type of item where the color belongs .RE .PP \fBReturns:\fP .RS 4 Modified color\&. .RE .PP In case of !(\fBQwtPlotPrintFilter::options()\fP & PrintBackground) MajorGrid is modified to Qt::darkGray, MinorGrid to Qt::gray\&. All other colors are returned unmodified\&. .SS "QFont QwtPlotPrintFilter::font (const QFont &f, \fBItem\fPitem) const\fC [virtual]\fP" .PP Modifies a font for printing\&. \fBParameters:\fP .RS 4 \fIf\fP Font to be modified .br \fIitem\fP Type of item where the font belongs .RE .PP All fonts are returned unmodified .SS "int QwtPlotPrintFilter::options () const" .PP Get plot print options\&. \fBSee also:\fP .RS 4 \fBsetOptions()\fP .RE .PP .SS "void QwtPlotPrintFilter::reset (\fBQwtPlot\fP *plot) const\fC [virtual]\fP" Reset color and fonts of a plot .PP \fBSee also:\fP .RS 4 \fBapply()\fP .RE .PP .SS "void QwtPlotPrintFilter::setOptions (intoptions)" .PP Set plot print options\&. \fBParameters:\fP .RS 4 \fIoptions\fP Or'd \fBQwtPlotPrintFilter::Options\fP values .RE .PP \fBSee also:\fP .RS 4 \fBoptions()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������qwt5-5.2.3/doc/man/man3/controlscreenshots.3��������������������������������������������������������0000644�0001750�0001750�00000000317�12052741136�020164� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "controlscreenshots" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME controlscreenshots \- Dials, Compasses, Knobs, Wheels, Sliders, Thermos .PP .PP .PP .PP �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLinearColorMap.3���������������������������������������������������������0000644�0001750�0001750�00000012560�12052741140�017564� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLinearColorMap" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLinearColorMap \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtColorMap\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBMode\fP { \fBFixedColors\fP, \fBScaledColors\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtLinearColorMap\fP (\fBQwtColorMap::Format\fP=QwtColorMap::RGB)" .br .ti -1c .RI "\fBQwtLinearColorMap\fP (const QColor &from, const QColor &to, \fBQwtColorMap::Format\fP=QwtColorMap::RGB)" .br .ti -1c .RI "\fBQwtLinearColorMap\fP (const \fBQwtLinearColorMap\fP &)" .br .ti -1c .RI "virtual \fB~QwtLinearColorMap\fP ()" .br .ti -1c .RI "void \fBaddColorStop\fP (double value, const QColor &)" .br .ti -1c .RI "QColor \fBcolor1\fP () const " .br .ti -1c .RI "QColor \fBcolor2\fP () const " .br .ti -1c .RI "virtual unsigned char \fBcolorIndex\fP (const \fBQwtDoubleInterval\fP &, double value) const " .br .ti -1c .RI "QwtArray< double > \fBcolorStops\fP () const " .br .ti -1c .RI "virtual \fBQwtColorMap\fP * \fBcopy\fP () const " .br .ti -1c .RI "\fBMode\fP \fBmode\fP () const " .br .ti -1c .RI "\fBQwtLinearColorMap\fP & \fBoperator=\fP (const \fBQwtLinearColorMap\fP &)" .br .ti -1c .RI "virtual QRgb \fBrgb\fP (const \fBQwtDoubleInterval\fP &, double value) const " .br .ti -1c .RI "void \fBsetColorInterval\fP (const QColor &\fBcolor1\fP, const QColor &\fBcolor2\fP)" .br .ti -1c .RI "void \fBsetMode\fP (\fBMode\fP)" .br .in -1c .SH "Detailed Description" .PP \fBQwtLinearColorMap\fP builds a color map from color stops\&. A color stop is a color at a specific position\&. The valid range for the positions is [0\&.0, 1\&.0]\&. When mapping a value into a color it is translated into this interval\&. If \fBmode()\fP == FixedColors the color is calculated from the next lower color stop\&. If \fBmode()\fP == ScaledColors the color is calculated by interpolating the colors of the adjacent stops\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtLinearColorMap::Mode\fP" Mode of color map .PP \fBSee also:\fP .RS 4 \fBsetMode()\fP, \fBmode()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtLinearColorMap::QwtLinearColorMap (\fBQwtColorMap::Format\fPformat = \fCQwtColorMap::RGB\fP)" Build a color map with two stops at 0\&.0 and 1\&.0\&. The color at 0\&.0 is Qt::blue, at 1\&.0 it is Qt::yellow\&. .PP \fBParameters:\fP .RS 4 \fIformat\fP Preferred format of the color map .RE .PP .SS "QwtLinearColorMap::QwtLinearColorMap (const QColor &color1, const QColor &color2, \fBQwtColorMap::Format\fPformat = \fCQwtColorMap::RGB\fP)" Build a color map with two stops at 0\&.0 and 1\&.0\&. .PP \fBParameters:\fP .RS 4 \fIcolor1\fP Color used for the minimum value of the value interval .br \fIcolor2\fP Color used for the maximum value of the value interval .br \fIformat\fP Preferred format of the coor map .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtLinearColorMap::addColorStop (doublevalue, const QColor &color)" Add a color stop .PP The value has to be in the range [0\&.0, 1\&.0]\&. F\&.e\&. a stop at position 17\&.0 for a range [10\&.0,20\&.0] must be passed as: (17\&.0 - 10\&.0) / (20\&.0 - 10\&.0) .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value between [0\&.0, 1\&.0] .br \fIcolor\fP Color stop .RE .PP .SS "QColor QwtLinearColorMap::color1 () const" \fBReturns:\fP .RS 4 the first color of the color range .RE .PP \fBSee also:\fP .RS 4 \fBsetColorInterval()\fP .RE .PP .SS "QColor QwtLinearColorMap::color2 () const" \fBReturns:\fP .RS 4 the second color of the color range .RE .PP \fBSee also:\fP .RS 4 \fBsetColorInterval()\fP .RE .PP .SS "unsigned char QwtLinearColorMap::colorIndex (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [virtual]\fP" Map a value of a given interval into a color index, between 0 and 255 .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for all values .br \fIvalue\fP Value to map into a color index .RE .PP .PP Implements \fBQwtColorMap\fP\&. .SS "QwtArray< double > QwtLinearColorMap::colorStops () const" Return all positions of color stops in increasing order .SS "\fBQwtLinearColorMap::Mode\fP QwtLinearColorMap::mode () const" \fBReturns:\fP .RS 4 Mode of the color map .RE .PP \fBSee also:\fP .RS 4 \fBsetMode()\fP .RE .PP .SS "QRgb QwtLinearColorMap::rgb (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [virtual]\fP" Map a value of a given interval into a rgb value .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for all values .br \fIvalue\fP Value to map into a rgb value .RE .PP .PP Implements \fBQwtColorMap\fP\&. .SS "void QwtLinearColorMap::setColorInterval (const QColor &color1, const QColor &color2)" Set the color range .PP Add stops at 0\&.0 and 1\&.0\&. .PP \fBParameters:\fP .RS 4 \fIcolor1\fP Color used for the minimum value of the value interval .br \fIcolor2\fP Color used for the maximum value of the value interval .RE .PP \fBSee also:\fP .RS 4 \fBcolor1()\fP, \fBcolor2()\fP .RE .PP .SS "void QwtLinearColorMap::setMode (\fBMode\fPmode)" .PP Set the mode of the color map\&. FixedColors means the color is calculated from the next lower color stop\&. ScaledColors means the color is calculated by interpolating the colors of the adjacent stops\&. .PP \fBSee also:\fP .RS 4 \fBmode()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/_tmp_qwt-5.2.3-tmp_textengines_.3�������������������������������������������0000644�0001750�0001750�00000000456�12052741143�022074� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "/tmp/qwt-5.2.3-tmp/textengines/ Directory Reference" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME /tmp/qwt-5.2.3-tmp/textengines/ Directory Reference \- .SH SYNOPSIS .br .PP .SS "Directories" .in +1c .ti -1c .RI "directory \fBmathml\fP" .br .in -1c ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtText.3�������������������������������������������������������������������0000644�0001750�0001750�00000032063�12052741143�015644� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtText" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtText \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBLayoutAttribute\fP { \fBMinimumLayout\fP = 1 }" .br .ti -1c .RI "enum \fBPaintAttribute\fP { \fBPaintUsingTextFont\fP = 1, \fBPaintUsingTextColor\fP = 2, \fBPaintBackground\fP = 4 }" .br .ti -1c .RI "enum \fBTextFormat\fP { \fBAutoText\fP = 0, \fBPlainText\fP, \fBRichText\fP, \fBMathMLText\fP, \fBTeXText\fP, \fBOtherFormat\fP = 100 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtText\fP (const QString &=QString::null, \fBTextFormat\fP textFormat=AutoText)" .br .ti -1c .RI "\fBQwtText\fP (const \fBQwtText\fP &)" .br .ti -1c .RI "\fB~QwtText\fP ()" .br .ti -1c .RI "QBrush \fBbackgroundBrush\fP () const " .br .ti -1c .RI "QPen \fBbackgroundPen\fP () const " .br .ti -1c .RI "QColor \fBcolor\fP () const " .br .ti -1c .RI "void \fBdraw\fP (QPainter *painter, const QRect &rect) const " .br .ti -1c .RI "QFont \fBfont\fP () const " .br .ti -1c .RI "int \fBheightForWidth\fP (int width, const QFont &=QFont()) const " .br .ti -1c .RI "bool \fBisEmpty\fP () const " .br .ti -1c .RI "bool \fBisNull\fP () const " .br .ti -1c .RI "int \fBoperator!=\fP (const \fBQwtText\fP &) const " .br .ti -1c .RI "\fBQwtText\fP & \fBoperator=\fP (const \fBQwtText\fP &)" .br .ti -1c .RI "int \fBoperator==\fP (const \fBQwtText\fP &) const " .br .ti -1c .RI "int \fBrenderFlags\fP () const " .br .ti -1c .RI "void \fBsetBackgroundBrush\fP (const QBrush &)" .br .ti -1c .RI "void \fBsetBackgroundPen\fP (const QPen &)" .br .ti -1c .RI "void \fBsetColor\fP (const QColor &)" .br .ti -1c .RI "void \fBsetFont\fP (const QFont &)" .br .ti -1c .RI "void \fBsetLayoutAttribute\fP (\fBLayoutAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetPaintAttribute\fP (\fBPaintAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetRenderFlags\fP (int flags)" .br .ti -1c .RI "void \fBsetText\fP (const QString &, \fBQwtText::TextFormat\fP textFormat=AutoText)" .br .ti -1c .RI "bool \fBtestLayoutAttribute\fP (\fBLayoutAttribute\fP) const " .br .ti -1c .RI "bool \fBtestPaintAttribute\fP (\fBPaintAttribute\fP) const " .br .ti -1c .RI "QString \fBtext\fP () const " .br .ti -1c .RI "QSize \fBtextSize\fP (const QFont &=QFont()) const " .br .ti -1c .RI "QColor \fBusedColor\fP (const QColor &) const " .br .ti -1c .RI "QFont \fBusedFont\fP (const QFont &) const " .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static void \fBsetTextEngine\fP (\fBQwtText::TextFormat\fP, \fBQwtTextEngine\fP *)" .br .ti -1c .RI "static const \fBQwtTextEngine\fP * \fBtextEngine\fP (const QString &\fBtext\fP, \fBQwtText::TextFormat\fP=AutoText)" .br .ti -1c .RI "static const \fBQwtTextEngine\fP * \fBtextEngine\fP (\fBQwtText::TextFormat\fP)" .br .in -1c .SH "Detailed Description" .PP A class representing a text\&. A \fBQwtText\fP is a text including a set of attributes how to render it\&. .PP .IP "\(bu" 2 Format .br A text might include control sequences (f\&.e tags) describing how to render it\&. Each format (f\&.e MathML, TeX, Qt Rich Text) has its own set of control sequences, that can be handles by a \fBQwtTextEngine\fP for this format\&. .IP "\(bu" 2 Background .br A text might have a background, defined by a QPen and QBrush to improve its visibility\&. .IP "\(bu" 2 Font .br A text might have an individual font\&. .IP "\(bu" 2 Color .br A text might have an individual color\&. .IP "\(bu" 2 Render Flags .br Flags from Qt::AlignmentFlag and Qt::TextFlag used like in QPainter::drawText\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtTextEngine\fP, \fBQwtTextLabel\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtText::LayoutAttribute\fP" .PP Layout Attributes\&. The layout attributes affects some aspects of the layout of the text\&. .PP .IP "\(bu" 2 MinimumLayout .br Layout the text without its margins\&. This mode is useful if a text needs to be aligned accurately, like the tick labels of a scale\&. If \fBQwtTextEngine::textMargins\fP is not implemented for the format of the text, MinimumLayout has no effect\&. .PP .SS "enum \fBQwtText::PaintAttribute\fP" .PP Paint Attributes\&. Font and color and background are optional attributes of a \fBQwtText\fP\&. The paint attributes hold the information, if they are set\&. .PP .IP "\(bu" 2 PaintUsingTextFont .br The text has an individual font\&. .IP "\(bu" 2 PaintUsingTextColor .br The text has an individual color\&. .IP "\(bu" 2 PaintBackground .br The text has an individual background\&. .PP .SS "enum \fBQwtText::TextFormat\fP" .PP Text format\&. The text format defines the \fBQwtTextEngine\fP, that is used to render the text\&. .PP .IP "\(bu" 2 AutoText .br The text format is determined using \fBQwtTextEngine::mightRender\fP for all available text engines in increasing order > PlainText\&. If none of the text engines can render the text is rendered like PlainText\&. .IP "\(bu" 2 PlainText .br Draw the text as it is, using a \fBQwtPlainTextEngine\fP\&. .IP "\(bu" 2 RichText .br Use the Scribe framework (Qt Rich Text) to render the text\&. .IP "\(bu" 2 MathMLText .br Use a MathML (http://en.wikipedia.org/wiki/MathML) render engine to display the text\&. The Qwt MathML extension offers such an engine based on the MathML renderer of the Qt solutions package\&. Unfortunately it is only available for owners of a commercial Qt license\&. .IP "\(bu" 2 TeXText .br Use a TeX (http://en.wikipedia.org/wiki/TeX) render engine to display the text\&. .IP "\(bu" 2 OtherFormat .br The number of text formats can be extended using setTextEngine\&. Formats >= OtherFormat are not used by Qwt\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtTextEngine\fP, \fBsetTextEngine()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtText::QwtText (const QString &text = \fCQString::null\fP, \fBQwtText::TextFormat\fPtextFormat = \fCAutoText\fP)" Constructor .PP \fBParameters:\fP .RS 4 \fItext\fP Text content .br \fItextFormat\fP Text format .RE .PP .SH "Member Function Documentation" .PP .SS "QBrush QwtText::backgroundBrush () const" \fBReturns:\fP .RS 4 Background brush .RE .PP \fBSee also:\fP .RS 4 \fBsetBackgroundBrush()\fP, \fBbackgroundPen()\fP .RE .PP .SS "QPen QwtText::backgroundPen () const" \fBReturns:\fP .RS 4 Background pen .RE .PP \fBSee also:\fP .RS 4 \fBsetBackgroundPen()\fP, \fBbackgroundBrush()\fP .RE .PP .SS "void QwtText::draw (QPainter *painter, const QRect &rect) const" Draw a text into a rectangle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Rectangle .RE .PP .SS "int QwtText::heightForWidth (intwidth, const QFont &defaultFont = \fCQFont()\fP) const" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIdefaultFont\fP Font, used for the calculation if the text has no font .br \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP .SS "bool QwtText::isEmpty () const\fC [inline]\fP" \fBReturns:\fP .RS 4 \fBtext()\fP\&.\fBisEmpty()\fP .RE .PP .SS "bool QwtText::isNull () const\fC [inline]\fP" \fBReturns:\fP .RS 4 \fBtext()\fP\&.\fBisNull()\fP .RE .PP .SS "int QwtText::renderFlags () const" \fBReturns:\fP .RS 4 Render flags .RE .PP \fBSee also:\fP .RS 4 \fBsetRenderFlags()\fP .RE .PP .SS "void QwtText::setBackgroundBrush (const QBrush &brush)" Set the background brush .PP \fBParameters:\fP .RS 4 \fIbrush\fP Background brush .RE .PP \fBSee also:\fP .RS 4 \fBbackgroundBrush()\fP, \fBsetBackgroundPen()\fP .RE .PP .SS "void QwtText::setBackgroundPen (const QPen &pen)" Set the background pen .PP \fBParameters:\fP .RS 4 \fIpen\fP Background pen .RE .PP \fBSee also:\fP .RS 4 \fBbackgroundPen()\fP, \fBsetBackgroundBrush()\fP .RE .PP .SS "void QwtText::setColor (const QColor &color)" Set the pen color used for painting the text\&. .PP \fBParameters:\fP .RS 4 \fIcolor\fP Color .RE .PP \fBNote:\fP .RS 4 Setting the color might have no effect, when the text contains control sequences for setting colors\&. .RE .PP .SS "void QwtText::setFont (const QFont &font)" Set the font\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font .RE .PP \fBNote:\fP .RS 4 Setting the font might have no effect, when the text contains control sequences for setting fonts\&. .RE .PP .SS "void QwtText::setLayoutAttribute (\fBLayoutAttribute\fPattribute, boolon = \fCtrue\fP)" Change a layout attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Layout attribute .br \fIon\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBtestLayoutAttribute()\fP .RE .PP .SS "void QwtText::setPaintAttribute (\fBPaintAttribute\fPattribute, boolon = \fCtrue\fP)" Change a paint attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Paint attribute .br \fIon\fP On/Off .RE .PP \fBNote:\fP .RS 4 Used by \fBsetFont()\fP, \fBsetColor()\fP, \fBsetBackgroundPen()\fP and \fBsetBackgroundBrush()\fP .RE .PP \fBSee also:\fP .RS 4 \fBtestPaintAttribute()\fP .RE .PP .SS "void QwtText::setRenderFlags (intrenderFlags)" .PP Change the render flags\&. The default setting is Qt::AlignCenter .PP \fBParameters:\fP .RS 4 \fIrenderFlags\fP Bitwise OR of the flags used like in QPainter::drawText .RE .PP \fBSee also:\fP .RS 4 \fBrenderFlags()\fP, \fBQwtTextEngine::draw()\fP .RE .PP \fBNote:\fP .RS 4 Some renderFlags might have no effect, depending on the text format\&. .RE .PP .SS "void QwtText::setText (const QString &text, \fBQwtText::TextFormat\fPtextFormat = \fCAutoText\fP)" Assign a new text content .PP \fBParameters:\fP .RS 4 \fItext\fP Text content .br \fItextFormat\fP Text format .RE .PP \fBSee also:\fP .RS 4 \fBtext()\fP .RE .PP .SS "void QwtText::setTextEngine (\fBQwtText::TextFormat\fPformat, \fBQwtTextEngine\fP *engine)\fC [static]\fP" Assign/Replace a text engine for a text format .PP With setTextEngine it is possible to extend Qwt with other types of text formats\&. .PP Owner of a commercial Qt license can build the qwtmathml library, that is based on the MathML renderer, that is included in MML Widget component of the Qt solutions package\&. .PP For QwtText::PlainText it is not allowed to assign a engine == NULL\&. .PP \fBParameters:\fP .RS 4 \fIformat\fP Text format .br \fIengine\fP Text engine .RE .PP \fBSee also:\fP .RS 4 \fBQwtMathMLTextEngine\fP .RE .PP \fBWarning:\fP .RS 4 Using QwtText::AutoText does nothing\&. .RE .PP .SS "bool QwtText::testLayoutAttribute (\fBLayoutAttribute\fPattribute) const" Test a layout attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Layout attribute .RE .PP \fBReturns:\fP .RS 4 true, if attribute is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetLayoutAttribute()\fP .RE .PP .SS "bool QwtText::testPaintAttribute (\fBPaintAttribute\fPattribute) const" Test a paint attribute .PP \fBParameters:\fP .RS 4 \fIattribute\fP Paint attribute .RE .PP \fBReturns:\fP .RS 4 true, if attribute is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetPaintAttribute()\fP .RE .PP .SS "QString QwtText::text () const" Return the text\&. .PP \fBSee also:\fP .RS 4 \fBsetText()\fP .RE .PP .SS "const \fBQwtTextEngine\fP * QwtText::textEngine (const QString &text, \fBQwtText::TextFormat\fPformat = \fCAutoText\fP)\fC [static]\fP" Find the text engine for a text format .PP In case of QwtText::AutoText the first text engine (beside \fBQwtPlainTextEngine\fP) is returned, where \fBQwtTextEngine::mightRender\fP returns true\&. If there is none \fBQwtPlainTextEngine\fP is returnd\&. .PP If no text engine is registered for the format \fBQwtPlainTextEngine\fP is returnd\&. .PP \fBParameters:\fP .RS 4 \fItext\fP Text, needed in case of AutoText .br \fIformat\fP Text format .RE .PP .SS "const \fBQwtTextEngine\fP * QwtText::textEngine (\fBQwtText::TextFormat\fPformat)\fC [static]\fP" .PP Find the text engine for a text format\&. textEngine can be used to find out if a text format is supported\&. F\&.e, if one wants to use MathML labels, the MathML renderer from the commercial Qt solutions package might be required, that is not available in Qt Open Source Edition environments\&. .PP \fBParameters:\fP .RS 4 \fIformat\fP Text format .RE .PP \fBReturns:\fP .RS 4 The text engine, or NULL if no engine is available\&. .RE .PP .SS "QSize QwtText::textSize (const QFont &defaultFont = \fCQFont()\fP) const" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIdefaultFont\fP Font, used for the calculation if the text has no font .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP Returns the size, that is needed to render text .PP \fBParameters:\fP .RS 4 \fIdefaultFont\fP Font of the text .RE .PP \fBReturns:\fP .RS 4 Caluclated size .RE .PP .SS "QColor QwtText::usedColor (const QColor &defaultColor) const" Return the color of the text, if it has one\&. Otherwise return defaultColor\&. .PP \fBParameters:\fP .RS 4 \fIdefaultColor\fP Default color .RE .PP \fBSee also:\fP .RS 4 \fBsetColor()\fP, \fBcolor()\fP, PaintAttributes .RE .PP .SS "QFont QwtText::usedFont (const QFont &defaultFont) const" Return the font of the text, if it has one\&. Otherwise return defaultFont\&. .PP \fBParameters:\fP .RS 4 \fIdefaultFont\fP Default font .RE .PP \fBSee also:\fP .RS 4 \fBsetFont()\fP, \fBfont()\fP, PaintAttributes .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCompassMagnetNeedle.3����������������������������������������������������0000644�0001750�0001750�00000007325�12052741137�020604� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCompassMagnetNeedle" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCompassMagnetNeedle \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDialNeedle\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBStyle\fP { \fBTriangleStyle\fP, \fBThinStyle\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtCompassMagnetNeedle\fP (\fBStyle\fP=TriangleStyle, const QColor &light=Qt::white, const QColor &dark=Qt::red)" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const " .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static void \fBdrawThinNeedle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)" .br .ti -1c .RI "static void \fBdrawTriangleNeedle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, double direction)" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static void \fBdrawPointer\fP (QPainter *painter, const QBrush &brush, int colorOffset, const QPoint ¢er, int length, int width, double direction)" .br .in -1c .SH "Detailed Description" .PP A magnet needle for compass widgets\&. A magnet needle points to two opposite directions indicating north and south\&. .PP The following colors are used: .IP "\(bu" 2 QColorGroup::Light .br Used for pointing south .IP "\(bu" 2 QColorGroup::Dark .br Used for pointing north .IP "\(bu" 2 QColorGroup::Base .br Knob (ThinStyle only) .PP .PP \fBSee also:\fP .RS 4 \fBQwtDial\fP, \fBQwtCompass\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtCompassMagnetNeedle::draw (QPainter *painter, const QPoint ¢er, intlength, doubledirection, QPalette::ColorGroupcolorGroup = \fCQPalette::Active\fP) const\fC [virtual]\fP" Draw the needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .br \fIcolorGroup\fP Color group, used for painting .RE .PP .PP Implements \fBQwtDialNeedle\fP\&. .SS "void QwtCompassMagnetNeedle::drawPointer (QPainter *painter, const QBrush &brush, intcolorOffset, const QPoint ¢er, intlength, intwidth, doubledirection)\fC [static]\fP, \fC [protected]\fP" Draw a compass needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIbrush\fP Brush .br \fIcolorOffset\fP Color offset .br \fIcenter\fP Center, where the needle starts .br \fIlength\fP Length of the needle .br \fIwidth\fP Width of the needle .br \fIdirection\fP Direction .RE .PP .SS "void QwtCompassMagnetNeedle::drawThinNeedle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, doubledirection)\fC [static]\fP" Draw a compass needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP Color group .br \fIcenter\fP Center, where the needle starts .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction .RE .PP .SS "void QwtCompassMagnetNeedle::drawTriangleNeedle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, doubledirection)\fC [static]\fP" Draw a compass needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP Color group .br \fIcenter\fP Center, where the needle starts .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotCurve.3��������������������������������������������������������������0000644�0001750�0001750�00000056676�12052741141�016661� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotCurve" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotCurve \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBCurveAttribute\fP { \fBInverted\fP = 1, \fBFitted\fP = 2 }" .br .ti -1c .RI "enum \fBCurveStyle\fP { \fBNoCurve\fP, \fBLines\fP, \fBSticks\fP, \fBSteps\fP, \fBDots\fP, \fBUserCurve\fP = 100 }" .br .ti -1c .RI "enum \fBCurveType\fP { \fBYfx\fP, \fBXfy\fP }" .br .ti -1c .RI "enum \fBPaintAttribute\fP { \fBPaintFiltered\fP = 1, \fBClipPolygons\fP = 2 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotCurve\fP ()" .br .ti -1c .RI "\fBQwtPlotCurve\fP (const \fBQwtText\fP &\fBtitle\fP)" .br .ti -1c .RI "\fBQwtPlotCurve\fP (const QString &\fBtitle\fP)" .br .ti -1c .RI "virtual \fB~QwtPlotCurve\fP ()" .br .ti -1c .RI "double \fBbaseline\fP () const " .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "const QBrush & \fBbrush\fP () const " .br .ti -1c .RI "int \fBclosestPoint\fP (const QPoint &pos, double *dist=NULL) const " .br .ti -1c .RI "\fBQwtCurveFitter\fP * \fBcurveFitter\fP () const " .br .ti -1c .RI "\fBCurveType\fP \fBcurveType\fP () const " .br .ti -1c .RI "\fBQwtData\fP & \fBdata\fP ()" .br .ti -1c .RI "const \fBQwtData\fP & \fBdata\fP () const " .br .ti -1c .RI "int \fBdataSize\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &) const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBdraw\fP (int from, int to) const " .br .ti -1c .RI "double \fBmaxXValue\fP () const " .br .ti -1c .RI "double \fBmaxYValue\fP () const " .br .ti -1c .RI "double \fBminXValue\fP () const " .br .ti -1c .RI "double \fBminYValue\fP () const " .br .ti -1c .RI "const QPen & \fBpen\fP () const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "void \fBsetBaseline\fP (double ref)" .br .ti -1c .RI "void \fBsetBrush\fP (const QBrush &)" .br .ti -1c .RI "void \fBsetCurveAttribute\fP (\fBCurveAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetCurveFitter\fP (\fBQwtCurveFitter\fP *)" .br .ti -1c .RI "void \fBsetCurveType\fP (\fBCurveType\fP)" .br .ti -1c .RI "void \fBsetData\fP (const double *xData, const double *yData, int size)" .br .ti -1c .RI "void \fBsetData\fP (const QwtArray< double > &xData, const QwtArray< double > &yData)" .br .ti -1c .RI "void \fBsetData\fP (const QPolygonF &\fBdata\fP)" .br .ti -1c .RI "void \fBsetData\fP (const \fBQwtData\fP &\fBdata\fP)" .br .ti -1c .RI "void \fBsetPaintAttribute\fP (\fBPaintAttribute\fP, bool on=true)" .br .ti -1c .RI "void \fBsetPen\fP (const QPen &)" .br .ti -1c .RI "void \fBsetRawData\fP (const double *\fBx\fP, const double *\fBy\fP, int size)" .br .ti -1c .RI "void \fBsetStyle\fP (\fBCurveStyle\fP \fBstyle\fP)" .br .ti -1c .RI "void \fBsetSymbol\fP (const \fBQwtSymbol\fP &s)" .br .ti -1c .RI "\fBCurveStyle\fP \fBstyle\fP () const " .br .ti -1c .RI "const \fBQwtSymbol\fP & \fBsymbol\fP () const " .br .ti -1c .RI "bool \fBtestCurveAttribute\fP (\fBCurveAttribute\fP) const " .br .ti -1c .RI "bool \fBtestPaintAttribute\fP (\fBPaintAttribute\fP) const " .br .ti -1c .RI "virtual void \fBupdateLegend\fP (\fBQwtLegend\fP *) const " .br .ti -1c .RI "double \fBx\fP (int i) const " .br .ti -1c .RI "double \fBy\fP (int i) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBclosePolyline\fP (const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &, QwtPolygon &) const " .br .ti -1c .RI "virtual void \fBdrawCurve\fP (QPainter *p, int \fBstyle\fP, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBdrawDots\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBdrawLines\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBdrawSteps\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBdrawSticks\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "virtual void \fBdrawSymbols\fP (QPainter *p, const \fBQwtSymbol\fP &, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, int from, int to) const " .br .ti -1c .RI "void \fBfillCurve\fP (QPainter *, const \fBQwtScaleMap\fP &, const \fBQwtScaleMap\fP &, QwtPolygon &) const " .br .ti -1c .RI "void \fBinit\fP ()" .br .in -1c .SH "Detailed Description" .PP A plot item, that represents a series of points\&. A curve is the representation of a series of points in the x-y plane\&. It supports different display styles, interpolation ( f\&.e\&. spline ) and symbols\&. .PP \fBUsage\fP .RS 4 .IP "\fBa) Assign curve properties \fP" 1c When a curve is created, it is configured to draw black solid lines with in Lines style and no symbols\&. You can change this by calling \fBsetPen()\fP, \fBsetStyle()\fP and \fBsetSymbol()\fP\&. .IP "\fBb) Connect/Assign data\&. \fP" 1c \fBQwtPlotCurve\fP gets its points using a \fBQwtData\fP object offering a bridge to the real storage of the points ( like QAbstractItemModel )\&. There are several convenience classes derived from \fBQwtData\fP, that also store the points inside ( like QStandardItemModel )\&. \fBQwtPlotCurve\fP also offers a couple of variations of \fBsetData()\fP, that build \fBQwtData\fP objects from arrays internally\&. .IP "\fBc) Attach the curve to a plot \fP" 1c See \fBQwtPlotItem::attach()\fP .PP .RE .PP \fBExample:\fP .RS 4 see examples/bode .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot\fP, \fBQwtData\fP, \fBQwtSymbol\fP, \fBQwtScaleMap\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotCurve::CurveAttribute\fP" Attribute for drawing the curve .PP .IP "\(bu" 2 Fitted ( in combination with the Lines \fBQwtPlotCurve::CurveStyle\fP only ) .br A \fBQwtCurveFitter\fP tries to interpolate/smooth the curve, before it is painted\&. Note that curve fitting requires temorary memory for calculating coefficients and additional points\&. If painting in Fitted mode is slow it might be better to fit the points, before they are passed to \fBQwtPlotCurve\fP\&. .IP "\(bu" 2 Inverted .br For Steps only\&. Draws a step function from the right to the left\&. .PP \fBSee also:\fP .RS 4 \fBsetCurveAttribute()\fP, \fBtestCurveAttribute()\fP, \fBcurveFitter()\fP .RE .PP .PP .SS "enum \fBQwtPlotCurve::CurveStyle\fP" Curve styles\&. .PP .IP "\(bu" 2 NoCurve .br Don't draw a curve\&. Note: This doesn't affect the symbols\&. .IP "\(bu" 2 Lines .br Connect the points with straight lines\&. The lines might be interpolated depending on the 'Fitted' attribute\&. Curve fitting can be configured using \fBsetCurveFitter()\fP\&. .IP "\(bu" 2 Sticks .br Draw vertical(Yfx) or horizontal(Xfy) sticks from a baseline which is defined by \fBsetBaseline()\fP\&. .IP "\(bu" 2 Steps .br Connect the points with a step function\&. The step function is drawn from the left to the right or vice versa, depending on the 'Inverted' attribute\&. .IP "\(bu" 2 Dots .br Draw dots at the locations of the data points\&. Note: This is different from a dotted line (see \fBsetPen()\fP), and faster as a curve in NoStyle style and a symbol painting a point\&. .IP "\(bu" 2 UserCurve .br Styles >= UserCurve are reserved for derived classes of \fBQwtPlotCurve\fP that overload \fBdrawCurve()\fP with additional application specific curve types\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetStyle()\fP, \fBstyle()\fP .RE .PP .SS "enum \fBQwtPlotCurve::CurveType\fP" Curve type\&. .PP .IP "\(bu" 2 Yfx .br Draws y as a function of x (the default)\&. The baseline is interpreted as a horizontal line with y = \fBbaseline()\fP\&. .IP "\(bu" 2 Xfy .br Draws x as a function of y\&. The baseline is interpreted as a vertical line with x = \fBbaseline()\fP\&. .PP .PP The baseline is used for aligning the sticks, or filling the curve with a brush\&. .PP \fBSee also:\fP .RS 4 \fBsetCurveType()\fP, \fBcurveType()\fP, \fBbaseline()\fP \fBbrush()\fP .RE .PP .SS "enum \fBQwtPlotCurve::PaintAttribute\fP" Attributes to modify the drawing algorithm\&. .PP .IP "\(bu" 2 PaintFiltered .br Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area\&. Might have a notable impact on curves with many close points\&. Only a couple of very basic filtering algos are implemented\&. .IP "\(bu" 2 ClipPolygons .br Clip polygons before painting them\&. In situations, where points are far outside the visible area (f\&.e when zooming deep) this might be a substantial improvement for the painting performance ( especially on Windows )\&. .PP .PP The default is, that no paint attributes are enabled\&. .PP \fBSee also:\fP .RS 4 \fBsetPaintAttribute()\fP, \fBtestPaintAttribute()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotCurve::QwtPlotCurve (const \fBQwtText\fP &title)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fItitle\fP Title of the curve .RE .PP .SS "QwtPlotCurve::QwtPlotCurve (const QString &title)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fItitle\fP Title of the curve .RE .PP .SH "Member Function Documentation" .PP .SS "double QwtPlotCurve::baseline () const" Return the value of the baseline .PP \fBSee also:\fP .RS 4 \fBsetBaseline()\fP .RE .PP .SS "QwtDoubleRect QwtPlotCurve::boundingRect () const\fC [virtual]\fP" Returns the bounding rectangle of the curve data\&. If there is no bounding rect, like for empty data the rectangle is invalid\&. .PP \fBSee also:\fP .RS 4 \fBQwtData::boundingRect()\fP, QwtDoubleRect::isValid() .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "const QBrush & QwtPlotCurve::brush () const" .PP Return the brush used to fill the area between lines and the baseline\&. \fBSee also:\fP .RS 4 \fBsetBrush()\fP, \fBsetBaseline()\fP, \fBbaseline()\fP .RE .PP .SS "void QwtPlotCurve::closePolyline (const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, QwtPolygon &pa) const\fC [protected]\fP" .PP Complete a polygon to be a closed polygon including the area between the original polygon and the baseline\&. \fBParameters:\fP .RS 4 \fIxMap\fP X map .br \fIyMap\fP Y map .br \fIpa\fP Polygon to be completed .RE .PP .SS "int QwtPlotCurve::closestPoint (const QPoint &pos, double *dist = \fCNULL\fP) const" Find the closest curve point for a specific position .PP \fBParameters:\fP .RS 4 \fIpos\fP Position, where to look for the closest curve point .br \fIdist\fP If dist != NULL, \fBclosestPoint()\fP returns the distance between the position and the clostest curve point .RE .PP \fBReturns:\fP .RS 4 Index of the closest curve point, or -1 if none can be found ( f\&.e when the curve has no points ) .RE .PP \fBNote:\fP .RS 4 \fBclosestPoint()\fP implements a dumb algorithm, that iterates over all points .RE .PP .SS "\fBQwtCurveFitter\fP * QwtPlotCurve::curveFitter () const" Get the curve fitter\&. If curve fitting is disabled NULL is returned\&. .PP \fBReturns:\fP .RS 4 Curve fitter .RE .PP .SS "\fBQwtPlotCurve::CurveType\fP QwtPlotCurve::curveType () const" Return the curve type .PP \fBSee also:\fP .RS 4 \fBCurveType\fP, \fBsetCurveType()\fP .RE .PP .SS "\fBQwtData\fP & QwtPlotCurve::data ()\fC [inline]\fP" \fBReturns:\fP .RS 4 the the curve data .RE .PP .SS "const \fBQwtData\fP & QwtPlotCurve::data () const\fC [inline]\fP" \fBReturns:\fP .RS 4 the the curve data .RE .PP .SS "int QwtPlotCurve::dataSize () const" Return the size of the data arrays .PP \fBSee also:\fP .RS 4 \fBsetData()\fP .RE .PP .SS "void QwtPlotCurve::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" .PP Draw the complete curve\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP Maps x-values into pixel coordinates\&. .br \fIyMap\fP Maps y-values into pixel coordinates\&. .RE .PP \fBSee also:\fP .RS 4 \fBdrawCurve()\fP, \fBdrawSymbols()\fP .RE .PP .PP Implements \fBQwtPlotItem\fP\&. .SS "void QwtPlotCurve::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [virtual]\fP" .PP Draw an interval of the curve\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP maps x-values into pixel coordinates\&. .br \fIyMap\fP maps y-values into pixel coordinates\&. .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted\&. If to < 0 the curve will be painted to its last point\&. .RE .PP \fBSee also:\fP .RS 4 \fBdrawCurve()\fP, \fBdrawSymbols()\fP, .RE .PP .SS "void QwtPlotCurve::draw (intfrom, intto) const" .PP Draw a set of points of a curve\&. When observing an measurement while it is running, new points have to be added to an existing curve\&. drawCurve can be used to display them avoiding a complete redraw of the canvas\&. .PP Setting \fBplot()\fP->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); will result in faster painting, if the paint engine of the canvas widget supports this feature\&. .PP \fBParameters:\fP .RS 4 \fIfrom\fP Index of the first point to be painted .br \fIto\fP Index of the last point to be painted\&. If to < 0 the curve will be painted to its last point\&. .RE .PP \fBSee also:\fP .RS 4 \fBdrawCurve()\fP, \fBdrawSymbols()\fP .RE .PP .SS "void QwtPlotCurve::drawCurve (QPainter *painter, intstyle, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP, \fC [virtual]\fP" .PP Draw the line part (without symbols) of a curve interval\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIstyle\fP curve style, see \fBQwtPlotCurve::CurveStyle\fP .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBdraw()\fP, \fBdrawDots()\fP, \fBdrawLines()\fP, \fBdrawSteps()\fP, \fBdrawSticks()\fP .RE .PP .SS "void QwtPlotCurve::drawDots (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP" Draw dots .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBdraw()\fP, \fBdrawCurve()\fP, \fBdrawSticks()\fP, \fBdrawLines()\fP, \fBdrawSteps()\fP .RE .PP .SS "void QwtPlotCurve::drawLines (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP" .PP Draw lines\&. If the CurveAttribute Fitted is enabled a \fBQwtCurveFitter\fP tries to interpolate/smooth the curve, before it is painted\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBsetCurveAttribute()\fP, \fBsetCurveFitter()\fP, \fBdraw()\fP, \fBdrawLines()\fP, \fBdrawDots()\fP, \fBdrawSteps()\fP, \fBdrawSticks()\fP .RE .PP .SS "void QwtPlotCurve::drawSteps (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP" Draw step function .PP The direction of the steps depends on Inverted attribute\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBCurveAttribute\fP, \fBsetCurveAttribute()\fP, \fBdraw()\fP, \fBdrawCurve()\fP, \fBdrawDots()\fP, \fBdrawLines()\fP, \fBdrawSticks()\fP .RE .PP .SS "void QwtPlotCurve::drawSticks (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP" Draw sticks .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBdraw()\fP, \fBdrawCurve()\fP, \fBdrawDots()\fP, \fBdrawLines()\fP, \fBdrawSteps()\fP .RE .PP .SS "void QwtPlotCurve::drawSymbols (QPainter *painter, const \fBQwtSymbol\fP &symbol, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, intfrom, intto) const\fC [protected]\fP, \fC [virtual]\fP" .PP Draw symbols\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIsymbol\fP Curve symbol .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIfrom\fP index of the first point to be painted .br \fIto\fP index of the last point to be painted .RE .PP \fBSee also:\fP .RS 4 \fBsetSymbol()\fP, \fBdraw()\fP, \fBdrawCurve()\fP .RE .PP .SS "void QwtPlotCurve::fillCurve (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, QwtPolygon &pa) const\fC [protected]\fP" Fill the area between the curve and the baseline with the curve brush .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x map .br \fIyMap\fP y map .br \fIpa\fP Polygon .RE .PP \fBSee also:\fP .RS 4 \fBsetBrush()\fP, \fBsetBaseline()\fP, \fBsetCurveType()\fP .RE .PP .SS "const QPen & QwtPlotCurve::pen () const" .PP Return the pen used to draw the lines\&. \fBSee also:\fP .RS 4 \fBsetPen()\fP, \fBbrush()\fP .RE .PP .SS "int QwtPlotCurve::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotCurve .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "void QwtPlotCurve::setBaseline (doublereference)" .PP Set the value of the baseline\&. The baseline is needed for filling the curve with a brush or the Sticks drawing style\&. The default value is 0\&.0\&. The interpretation of the baseline depends on the CurveType\&. With QwtPlotCurve::Yfx, the baseline is interpreted as a horizontal line at y = \fBbaseline()\fP, with QwtPlotCurve::Yfy, it is interpreted as a vertical line at x = \fBbaseline()\fP\&. .PP \fBParameters:\fP .RS 4 \fIreference\fP baseline .RE .PP \fBSee also:\fP .RS 4 \fBbaseline()\fP, \fBsetBrush()\fP, \fBsetStyle()\fP, \fBsetCurveType()\fP .RE .PP .SS "void QwtPlotCurve::setBrush (const QBrush &brush)" .PP Assign a brush\&. In case of brush\&.style() != QBrush::NoBrush and \fBstyle()\fP != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled\&. .PP In case !brush\&.color()\&.isValid() the area will be filled by pen\&.color()\&. The fill algorithm simply connects the first and the last curve point to the baseline\&. So the curve data has to be sorted (ascending or descending)\&. .PP \fBParameters:\fP .RS 4 \fIbrush\fP New brush .RE .PP \fBSee also:\fP .RS 4 \fBbrush()\fP, \fBsetBaseline()\fP, \fBbaseline()\fP .RE .PP .SS "void QwtPlotCurve::setCurveAttribute (\fBCurveAttribute\fPattribute, boolon = \fCtrue\fP)" Specify an attribute for drawing the curve .PP \fBParameters:\fP .RS 4 \fIattribute\fP Curve attribute .br \fIon\fP On/Off .RE .PP /sa CurveAttribute, \fBtestCurveAttribute()\fP, \fBsetCurveFitter()\fP .SS "void QwtPlotCurve::setCurveFitter (\fBQwtCurveFitter\fP *curveFitter)" Assign a curve fitter setCurveFitter(NULL) disables curve fitting\&. .PP \fBParameters:\fP .RS 4 \fIcurveFitter\fP Curve fitter .RE .PP .SS "void QwtPlotCurve::setCurveType (\fBCurveType\fPcurveType)" Assign the curve type .PP \fBParameters:\fP .RS 4 \fIcurveType\fP Yfx or Xfy .RE .PP \fBSee also:\fP .RS 4 \fBCurveType\fP, \fBcurveType()\fP .RE .PP .SS "void QwtPlotCurve::setData (const double *xData, const double *yData, intsize)" Set data by copying x- and y-values from specified memory blocks\&. Contrary to setCurveRawData(), this function makes a 'deep copy' of the data\&. .PP \fBParameters:\fP .RS 4 \fIxData\fP Pointer to x values .br \fIyData\fP Pointer to y values .br \fIsize\fP Size of xData and yData .RE .PP \fBNote:\fP .RS 4 Internally the data is stored in a \fBQwtArrayData\fP object .RE .PP .SS "void QwtPlotCurve::setData (const QwtArray< double > &xData, const QwtArray< double > &yData)" Initialize data with x- and y-arrays (explicitly shared) ( Builds an \fBQwtArrayData\fP object internally ) .PP \fBParameters:\fP .RS 4 \fIxData\fP x data .br \fIyData\fP y data .RE .PP \fBNote:\fP .RS 4 Internally the data is stored in a \fBQwtArrayData\fP object .RE .PP .SS "void QwtPlotCurve::setData (const QPolygonF &data)" Initialize data with an array of points (explicitly shared)\&. .PP \fBParameters:\fP .RS 4 \fIdata\fP Data .RE .PP \fBNote:\fP .RS 4 Internally the data is stored in a \fBQwtPolygonFData\fP object .RE .PP .SS "void QwtPlotCurve::setData (const \fBQwtData\fP &data)" Initialize data with a pointer to \fBQwtData\fP\&. .PP \fBParameters:\fP .RS 4 \fIdata\fP Data .RE .PP \fBSee also:\fP .RS 4 \fBQwtData::copy()\fP .RE .PP .SS "void QwtPlotCurve::setPaintAttribute (\fBPaintAttribute\fPattribute, boolon = \fCtrue\fP)" Specify an attribute how to draw the curve .PP \fBParameters:\fP .RS 4 \fIattribute\fP Paint attribute .br \fIon\fP On/Off /sa PaintAttribute, \fBtestPaintAttribute()\fP .RE .PP .SS "void QwtPlotCurve::setPen (const QPen &pen)" Assign a pen .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP New pen .RE .PP \fBSee also:\fP .RS 4 \fBpen()\fP, \fBbrush()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtPlotCurve::setRawData (const double *xData, const double *yData, intsize)" .PP Initialize the data by pointing to memory blocks which are not managed by \fBQwtPlotCurve\fP\&. setRawData is provided for efficiency\&. It is important to keep the pointers during the lifetime of the underlying \fBQwtCPointerData\fP class\&. .PP \fBParameters:\fP .RS 4 \fIxData\fP pointer to x data .br \fIyData\fP pointer to y data .br \fIsize\fP size of x and y .RE .PP \fBNote:\fP .RS 4 Internally the data is stored in a \fBQwtCPointerData\fP object .RE .PP .SS "void QwtPlotCurve::setStyle (\fBCurveStyle\fPstyle)" Set the curve's drawing style .PP \fBParameters:\fP .RS 4 \fIstyle\fP Curve style .RE .PP \fBSee also:\fP .RS 4 \fBCurveStyle\fP, \fBstyle()\fP .RE .PP .SS "void QwtPlotCurve::setSymbol (const \fBQwtSymbol\fP &symbol)" .PP Assign a symbol\&. \fBParameters:\fP .RS 4 \fIsymbol\fP Symbol .RE .PP \fBSee also:\fP .RS 4 \fBsymbol()\fP .RE .PP .SS "\fBQwtPlotCurve::CurveStyle\fP QwtPlotCurve::style () const" Return the current style .PP \fBSee also:\fP .RS 4 \fBCurveStyle\fP, \fBsetStyle()\fP .RE .PP .SS "const \fBQwtSymbol\fP & QwtPlotCurve::symbol () const" .PP Return the current symbol\&. \fBSee also:\fP .RS 4 \fBsetSymbol()\fP .RE .PP .SS "bool QwtPlotCurve::testCurveAttribute (\fBCurveAttribute\fPattribute) const" \fBReturns:\fP .RS 4 true, if attribute is enabled .RE .PP \fBSee also:\fP .RS 4 \fBCurveAttribute\fP, \fBsetCurveAttribute()\fP .RE .PP .SS "bool QwtPlotCurve::testPaintAttribute (\fBPaintAttribute\fPattribute) const" .PP Return the current paint attributes\&. \fBSee also:\fP .RS 4 \fBPaintAttribute\fP, \fBsetPaintAttribute()\fP .RE .PP .SS "double QwtPlotCurve::x (inti) const\fC [inline]\fP" \fBParameters:\fP .RS 4 \fIi\fP index .RE .PP \fBReturns:\fP .RS 4 x-value at position i .RE .PP .SS "double QwtPlotCurve::y (inti) const\fC [inline]\fP" \fBParameters:\fP .RS 4 \fIi\fP index .RE .PP \fBReturns:\fP .RS 4 y-value at position i .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtThermo.3�����������������������������������������������������������������0000644�0001750�0001750�00000027556�12052741143�016171� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtThermo" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtThermo \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractScale\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBScalePos\fP { \fBNoScale\fP, \fBLeftScale\fP, \fBRightScale\fP, \fBTopScale\fP, \fBBottomScale\fP }" .br .in -1c .SS "Public Slots" .in +1c .ti -1c .RI "void \fBsetValue\fP (double val)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtThermo\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtThermo\fP ()" .br .ti -1c .RI "const QBrush & \fBalarmBrush\fP () const " .br .ti -1c .RI "const QColor & \fBalarmColor\fP () const " .br .ti -1c .RI "bool \fBalarmEnabled\fP () const " .br .ti -1c .RI "double \fBalarmLevel\fP () const " .br .ti -1c .RI "int \fBborderWidth\fP () const " .br .ti -1c .RI "const QBrush & \fBfillBrush\fP () const " .br .ti -1c .RI "const QColor & \fBfillColor\fP () const " .br .ti -1c .RI "double \fBmaxValue\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "double \fBminValue\fP () const " .br .ti -1c .RI "int \fBpipeWidth\fP () const " .br .ti -1c .RI "const \fBQwtScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "ScalePos \fBscalePosition\fP () const " .br .ti -1c .RI "void \fBsetAlarmBrush\fP (const QBrush &b)" .br .ti -1c .RI "void \fBsetAlarmColor\fP (const QColor &c)" .br .ti -1c .RI "void \fBsetAlarmEnabled\fP (bool tf)" .br .ti -1c .RI "void \fBsetAlarmLevel\fP (double v)" .br .ti -1c .RI "void \fBsetBorderWidth\fP (int w)" .br .ti -1c .RI "void \fBsetFillBrush\fP (const QBrush &b)" .br .ti -1c .RI "void \fBsetFillColor\fP (const QColor &c)" .br .ti -1c .RI "void \fBsetMargin\fP (int m)" .br .ti -1c .RI "void \fBsetMaxValue\fP (double v)" .br .ti -1c .RI "void \fBsetMinValue\fP (double v)" .br .ti -1c .RI "void \fBsetOrientation\fP (Qt::Orientation o, ScalePos s)" .br .ti -1c .RI "void \fBsetPipeWidth\fP (int w)" .br .ti -1c .RI "void \fBsetRange\fP (double vmin, double vmax, bool lg=false)" .br .ti -1c .RI "void \fBsetScaleDraw\fP (\fBQwtScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetScalePosition\fP (ScalePos s)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "double \fBvalue\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdraw\fP (QPainter *p, const QRect &update_rect)" .br .ti -1c .RI "void \fBdrawThermo\fP (QPainter *p)" .br .ti -1c .RI "virtual void \fBfontChange\fP (const QFont &oldFont)" .br .ti -1c .RI "void \fBlayoutThermo\fP (bool update=true)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .ti -1c .RI "virtual void \fBscaleChange\fP ()" .br .ti -1c .RI "\fBQwtScaleDraw\fP * \fBscaleDraw\fP ()" .br .in -1c .SH "Detailed Description" .PP The Thermometer Widget\&. \fBQwtThermo\fP is a widget which displays a value in an interval\&. It supports: .IP "\(bu" 2 a horizontal or vertical layout; .IP "\(bu" 2 a range; .IP "\(bu" 2 a scale; .IP "\(bu" 2 an alarm level\&. .PP .PP .PP By default, the scale and range run over the same interval of values\&. \fBQwtAbstractScale::setScale()\fP changes the interval of the scale and allows easy conversion between physical units\&. .PP The example shows how to make the scale indicate in degrees Fahrenheit and to set the value in degrees Kelvin: .PP .nf #include #include double Kelvin2Fahrenheit(double kelvin) { // see http://en\&.wikipedia\&.org/wiki/Kelvin return 1\&.8*kelvin - 459\&.67; } int main(int argc, char **argv) { const double minKelvin = 0\&.0; const double maxKelvin = 500\&.0; QApplication a(argc, argv); QwtThermo t; t\&.setRange(minKelvin, maxKelvin); t\&.setScale(Kelvin2Fahrenheit(minKelvin), Kelvin2Fahrenheit(maxKelvin)); // set the value in Kelvin but the scale displays in Fahrenheit // 273\&.15 Kelvin = 0 Celsius = 32 Fahrenheit t\&.setValue(273\&.15); a\&.setMainWidget(&t); t\&.show(); return a\&.exec(); } .fi .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtThermo::QwtThermo (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "const QBrush & QwtThermo::alarmBrush () const" Return the liquid brush above the alarm threshold\&. .PP \fBSee also:\fP .RS 4 \fBsetAlarmBrush()\fP .RE .PP .SS "double QwtThermo::alarmLevel () const" Return the alarm threshold\&. .PP \fBSee also:\fP .RS 4 \fBsetAlarmLevel()\fP .RE .PP .SS "int QwtThermo::borderWidth () const" Return the border width of the thermometer pipe\&. .PP \fBSee also:\fP .RS 4 \fBsetBorderWidth()\fP .RE .PP .SS "void QwtThermo::draw (QPainter *painter, const QRect &rect)\fC [protected]\fP" Draw the whole \fBQwtThermo\fP\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Update rectangle .RE .PP .SS "void QwtThermo::drawThermo (QPainter *painter)\fC [protected]\fP" Redraw the liquid in thermometer pipe\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP .SS "const QBrush & QwtThermo::fillBrush () const" Return the liquid brush\&. .PP \fBSee also:\fP .RS 4 \fBsetFillBrush()\fP .RE .PP .SS "const QColor & QwtThermo::fillColor () const" Return the liquid color\&. .PP \fBSee also:\fP .RS 4 \fBsetFillColor()\fP .RE .PP .SS "void QwtThermo::layoutThermo (boolupdate_geometry = \fCtrue\fP)\fC [protected]\fP" Recalculate the \fBQwtThermo\fP geometry and layout based on the QwtThermo::rect() and the fonts\&. .PP \fBParameters:\fP .RS 4 \fIupdate_geometry\fP notify the layout system and call update to redraw the scale .RE .PP .SS "QSize QwtThermo::minimumSizeHint () const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBWarning:\fP .RS 4 The return value depends on the font and the scale\&. .RE .PP \fBSee also:\fP .RS 4 \fBsizeHint()\fP .RE .PP .SS "void QwtThermo::paintEvent (QPaintEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Qt paint event\&. event Paint event .SS "int QwtThermo::pipeWidth () const" Return the width of the pipe\&. .PP \fBSee also:\fP .RS 4 \fBsetPipeWidth()\fP .RE .PP .SS "const \fBQwtScaleDraw\fP * QwtThermo::scaleDraw () const" \fBReturns:\fP .RS 4 the scale draw of the thermo .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "\fBQwtScaleDraw\fP * QwtThermo::scaleDraw ()\fC [protected]\fP" \fBReturns:\fP .RS 4 the scale draw of the thermo .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "QwtThermo::ScalePos QwtThermo::scalePosition () const" Return the scale position\&. .PP \fBSee also:\fP .RS 4 \fBsetScalePosition()\fP .RE .PP .SS "void QwtThermo::setAlarmBrush (const QBrush &brush)" .PP Specify the liquid brush above the alarm threshold\&. \fBParameters:\fP .RS 4 \fIbrush\fP New brush\&. The default is solid white\&. .RE .PP \fBSee also:\fP .RS 4 \fBalarmBrush()\fP .RE .PP .SS "void QwtThermo::setAlarmColor (const QColor &c)" .PP Specify the liquid color above the alarm threshold\&. \fBParameters:\fP .RS 4 \fIc\fP New color\&. The default is white\&. .RE .PP .SS "void QwtThermo::setAlarmEnabled (booltf)" .PP Enable or disable the alarm threshold\&. \fBParameters:\fP .RS 4 \fItf\fP true (disabled) or false (enabled) .RE .PP .SS "void QwtThermo::setAlarmLevel (doublelevel)" Specify the alarm threshold\&. .PP \fBParameters:\fP .RS 4 \fIlevel\fP Alarm threshold .RE .PP \fBSee also:\fP .RS 4 \fBalarmLevel()\fP .RE .PP .SS "void QwtThermo::setBorderWidth (intwidth)" Set the border width of the pipe\&. .PP \fBParameters:\fP .RS 4 \fIwidth\fP Border width .RE .PP \fBSee also:\fP .RS 4 \fBborderWidth()\fP .RE .PP .SS "void QwtThermo::setFillBrush (const QBrush &brush)" .PP Change the brush of the liquid\&. \fBParameters:\fP .RS 4 \fIbrush\fP New brush\&. The default brush is solid black\&. .RE .PP \fBSee also:\fP .RS 4 \fBfillBrush()\fP .RE .PP .SS "void QwtThermo::setFillColor (const QColor &c)" .PP Change the color of the liquid\&. \fBParameters:\fP .RS 4 \fIc\fP New color\&. The default color is black\&. .RE .PP \fBSee also:\fP .RS 4 \fBfillColor()\fP .RE .PP .SS "void QwtThermo::setMargin (intm)" .PP Specify the distance between the pipe's endpoints and the widget's border\&. The margin is used to leave some space for the scale labels\&. If a large font is used, it is advisable to adjust the margins\&. .PP \fBParameters:\fP .RS 4 \fIm\fP New Margin\&. The default values are 10 for horizontal orientation and 20 for vertical orientation\&. .RE .PP \fBWarning:\fP .RS 4 The margin has no effect if the scale is disabled\&. .PP This function is a NOOP because margins are determined automatically\&. .RE .PP .SS "void QwtThermo::setMaxValue (doublemax)" Set the maximum value\&. .PP \fBParameters:\fP .RS 4 \fImax\fP Maximum value .RE .PP \fBSee also:\fP .RS 4 \fBmaxValue()\fP, \fBsetMinValue()\fP .RE .PP .SS "void QwtThermo::setMinValue (doublemin)" Set the minimum value\&. .PP \fBParameters:\fP .RS 4 \fImin\fP Minimum value .RE .PP \fBSee also:\fP .RS 4 \fBminValue()\fP, \fBsetMaxValue()\fP .RE .PP .SS "void QwtThermo::setOrientation (Qt::Orientationo, ScalePoss)" .PP Set the thermometer orientation and the scale position\&. The scale position NoScale disables the scale\&. .PP \fBParameters:\fP .RS 4 \fIo\fP orientation\&. Possible values are Qt::Horizontal and Qt::Vertical\&. The default value is Qt::Vertical\&. .br \fIs\fP Position of the scale\&. The default value is NoScale\&. .RE .PP A valid combination of scale position and orientation is enforced: .IP "\(bu" 2 a horizontal thermometer can have the scale positions TopScale, BottomScale or NoScale; .IP "\(bu" 2 a vertical thermometer can have the scale positions LeftScale, RightScale or NoScale; .IP "\(bu" 2 an invalid scale position will default to NoScale\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetScalePosition()\fP .RE .PP .SS "void QwtThermo::setPipeWidth (intwidth)" Change the width of the pipe\&. .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width of the pipe .RE .PP \fBSee also:\fP .RS 4 \fBpipeWidth()\fP .RE .PP .SS "void QwtThermo::setRange (doublevmin, doublevmax, boollogarithmic = \fCfalse\fP)" .PP Set the range\&. \fBParameters:\fP .RS 4 \fIvmin\fP value corresponding lower or left end of the thermometer .br \fIvmax\fP value corresponding to the upper or right end of the thermometer .br \fIlogarithmic\fP logarithmic mapping, true or false .RE .PP .SS "void QwtThermo::setScaleDraw (\fBQwtScaleDraw\fP *scaleDraw)" .PP Set a scale draw\&. For changing the labels of the scales, it is necessary to derive from \fBQwtScaleDraw\fP and overload \fBQwtScaleDraw::label()\fP\&. .PP \fBParameters:\fP .RS 4 \fIscaleDraw\fP ScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of \fBsetScaleDraw()\fP\&. .RE .PP .SS "void QwtThermo::setScalePosition (ScalePosscalePos)" .PP Change the scale position (and thermometer orientation)\&. \fBParameters:\fP .RS 4 \fIscalePos\fP Position of the scale\&. .RE .PP A valid combination of scale position and orientation is enforced: .IP "\(bu" 2 if the new scale position is LeftScale or RightScale, the scale orientation will become Qt::Vertical; .IP "\(bu" 2 if the new scale position is BottomScale or TopScale, the scale orientation will become Qt::Horizontal; .IP "\(bu" 2 if the new scale position is NoScale, the scale orientation will not change\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetOrientation()\fP, \fBscalePosition()\fP .RE .PP .SS "void QwtThermo::setValue (doublevalue)\fC [slot]\fP" Set the current value\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP New Value .RE .PP \fBSee also:\fP .RS 4 \fBvalue()\fP .RE .PP .SS "QSize QwtThermo::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 the minimum size hint .RE .PP \fBSee also:\fP .RS 4 \fBminimumSizeHint()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotCanvas.3�������������������������������������������������������������0000644�0001750�0001750�00000013016�12052741141�016765� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotCanvas" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotCanvas \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBFocusIndicator\fP { \fBNoFocusIndicator\fP, \fBCanvasFocusIndicator\fP, \fBItemFocusIndicator\fP }" .br .ti -1c .RI "enum \fBPaintAttribute\fP { \fBPaintCached\fP = 1, \fBPaintPacked\fP = 2 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotCanvas\fP (\fBQwtPlot\fP *)" .br .ti -1c .RI "virtual \fB~QwtPlotCanvas\fP ()" .br .ti -1c .RI "\fBFocusIndicator\fP \fBfocusIndicator\fP () const " .br .ti -1c .RI "void \fBinvalidatePaintCache\fP ()" .br .ti -1c .RI "QPixmap * \fBpaintCache\fP ()" .br .ti -1c .RI "const QPixmap * \fBpaintCache\fP () const " .br .ti -1c .RI "\fBQwtPlot\fP * \fBplot\fP ()" .br .ti -1c .RI "const \fBQwtPlot\fP * \fBplot\fP () const " .br .ti -1c .RI "void \fBreplot\fP ()" .br .ti -1c .RI "void \fBsetFocusIndicator\fP (\fBFocusIndicator\fP)" .br .ti -1c .RI "void \fBsetPaintAttribute\fP (\fBPaintAttribute\fP, bool on=true)" .br .ti -1c .RI "bool \fBtestPaintAttribute\fP (\fBPaintAttribute\fP) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdrawCanvas\fP (QPainter *painter=NULL)" .br .ti -1c .RI "virtual void \fBdrawContents\fP (QPainter *)" .br .ti -1c .RI "virtual void \fBdrawFocusIndicator\fP (QPainter *)" .br .ti -1c .RI "virtual void \fBhideEvent\fP (QHideEvent *)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *)" .br .in -1c .SH "Detailed Description" .PP Canvas of a \fBQwtPlot\fP\&. \fBSee also:\fP .RS 4 \fBQwtPlot\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotCanvas::FocusIndicator\fP" .PP Focus indicator\&. .IP "\(bu" 2 NoFocusIndicator .br Don't paint a focus indicator .PP .PP .IP "\(bu" 2 CanvasFocusIndicator .br The focus is related to the complete canvas\&. Paint the focus indicator using paintFocus() .PP .PP .IP "\(bu" 2 ItemFocusIndicator .br The focus is related to an item (curve, point, \&.\&.\&.) on the canvas\&. It is up to the application to display a focus indication using f\&.e\&. highlighting\&. .PP .PP \fBSee also:\fP .RS 4 \fBsetFocusIndicator()\fP, \fBfocusIndicator()\fP, paintFocus() .RE .PP .SS "enum \fBQwtPlotCanvas::PaintAttribute\fP" .PP Paint attributes\&. .IP "\(bu" 2 PaintCached .br Paint double buffered and reuse the content of the pixmap buffer for some spontaneous repaints that happen when a plot gets unhidden, deiconified or changes the focus\&. Disabling the cache will improve the performance for incremental paints (using \fBQwtPlotCurve::draw\fP)\&. .PP .PP .IP "\(bu" 2 PaintPacked .br Suppress system background repaints and paint it together with the canvas contents\&. Painting packed might avoid flickering for expensive repaints, when there is a notable gap between painting the background and the plot contents\&. .PP .PP The default setting enables PaintCached and PaintPacked .PP \fBSee also:\fP .RS 4 \fBsetPaintAttribute()\fP, \fBtestPaintAttribute()\fP, \fBpaintCache()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlotCanvas::drawCanvas (QPainter *painter = \fCNULL\fP)\fC [protected]\fP" Draw the the canvas .PP Paints all plot items to the contentsRect(), using \fBQwtPlot::drawCanvas\fP and updates the paint cache\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::drawCanvas()\fP, setPaintAttributes(), testPaintAttributes() .RE .PP .SS "void QwtPlotCanvas::drawContents (QPainter *painter)\fC [protected]\fP, \fC [virtual]\fP" Redraw the canvas, and focus rect .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP .SS "void QwtPlotCanvas::drawFocusIndicator (QPainter *painter)\fC [protected]\fP, \fC [virtual]\fP" Draw the focus indication .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP .SS "\fBQwtPlotCanvas::FocusIndicator\fP QwtPlotCanvas::focusIndicator () const" \fBReturns:\fP .RS 4 Focus indicator .RE .PP \fBSee also:\fP .RS 4 \fBFocusIndicator\fP, \fBsetFocusIndicator()\fP .RE .PP .SS "void QwtPlotCanvas::hideEvent (QHideEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Hide event .PP \fBParameters:\fP .RS 4 \fIevent\fP Hide event .RE .PP .SS "void QwtPlotCanvas::paintEvent (QPaintEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Paint event .PP \fBParameters:\fP .RS 4 \fIevent\fP Paint event .RE .PP .SS "void QwtPlotCanvas::replot ()" Invalidate the paint cache and repaint the canvas .PP \fBSee also:\fP .RS 4 \fBinvalidatePaintCache()\fP .RE .PP .SS "void QwtPlotCanvas::setFocusIndicator (\fBFocusIndicator\fPfocusIndicator)" Set the focus indicator .PP \fBSee also:\fP .RS 4 \fBFocusIndicator\fP, \fBfocusIndicator()\fP .RE .PP .SS "void QwtPlotCanvas::setPaintAttribute (\fBPaintAttribute\fPattribute, boolon = \fCtrue\fP)" .PP Changing the paint attributes\&. \fBParameters:\fP .RS 4 \fIattribute\fP Paint attribute .br \fIon\fP On/Off .RE .PP The default setting enables PaintCached and PaintPacked .PP \fBSee also:\fP .RS 4 \fBtestPaintAttribute()\fP, \fBdrawCanvas()\fP, \fBdrawContents()\fP, \fBpaintCache()\fP .RE .PP .SS "bool QwtPlotCanvas::testPaintAttribute (\fBPaintAttribute\fPattribute) const" Test wether a paint attribute is enabled .PP \fBParameters:\fP .RS 4 \fIattribute\fP Paint attribute .RE .PP \fBReturns:\fP .RS 4 true if the attribute is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetPaintAttribute()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDialSimpleNeedle.3�������������������������������������������������������0000644�0001750�0001750�00000007604�12052741137�020066� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDialSimpleNeedle" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDialSimpleNeedle \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtDialNeedle\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBStyle\fP { \fBArrow\fP, \fBRay\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDialSimpleNeedle\fP (\fBStyle\fP, bool hasKnob=true, const QColor &mid=Qt::gray, const QColor &base=Qt::darkGray)" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup=QPalette::Active) const " .br .ti -1c .RI "void \fBsetWidth\fP (int \fBwidth\fP)" .br .ti -1c .RI "int \fBwidth\fP () const " .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static void \fBdrawArrowNeedle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int \fBwidth\fP, double direction, bool hasKnob)" .br .ti -1c .RI "static void \fBdrawRayNeedle\fP (QPainter *, const QPalette &, QPalette::ColorGroup, const QPoint &, int length, int \fBwidth\fP, double direction, bool hasKnob)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A needle for dial widgets\&. The following colors are used: .IP "\(bu" 2 QColorGroup::Mid .br Pointer .IP "\(bu" 2 QColorGroup::base .br Knob .PP .PP \fBSee also:\fP .RS 4 \fBQwtDial\fP, \fBQwtCompass\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtDialSimpleNeedle::QwtDialSimpleNeedle (\fBStyle\fPstyle, boolhasKnob = \fCtrue\fP, const QColor &mid = \fCQt::gray\fP, const QColor &base = \fCQt::darkGray\fP)" Constructor .PP \fBParameters:\fP .RS 4 \fIstyle\fP Style .br \fIhasKnob\fP With/Without knob .br \fImid\fP Middle color .br \fIbase\fP Base color .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtDialSimpleNeedle::draw (QPainter *painter, const QPoint ¢er, intlength, doubledirection, QPalette::ColorGroupcolorGroup = \fCQPalette::Active\fP) const\fC [virtual]\fP" Draw the needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .br \fIcolorGroup\fP Color group, used for painting .RE .PP .PP Implements \fBQwtDialNeedle\fP\&. .SS "void QwtDialSimpleNeedle::drawArrowNeedle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, intwidth, doubledirection, boolhasKnob)\fC [static]\fP" Draw a needle looking like an arrow .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP Color group .br \fIcenter\fP center of the needle .br \fIlength\fP Length of the needle .br \fIwidth\fP Width of the needle .br \fIdirection\fP Current Direction .br \fIhasKnob\fP With/Without knob .RE .PP .SS "void QwtDialSimpleNeedle::drawRayNeedle (QPainter *painter, const QPalette &palette, QPalette::ColorGroupcolorGroup, const QPoint ¢er, intlength, intwidth, doubledirection, boolhasKnob)\fC [static]\fP" Draw a needle looking like a ray .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcolorGroup\fP Color group .br \fIcenter\fP center of the needle .br \fIlength\fP Length of the needle .br \fIwidth\fP Width of the needle .br \fIdirection\fP Current Direction .br \fIhasKnob\fP With/Without knob .RE .PP .SS "void QwtDialSimpleNeedle::setWidth (intwidth)" Set the width of the needle .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width .RE .PP \fBSee also:\fP .RS 4 \fBwidth()\fP .RE .PP .SS "int QwtDialSimpleNeedle::width () const" \fBReturns:\fP .RS 4 the width of the needle .RE .PP \fBSee also:\fP .RS 4 \fBsetWidth()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtEventPattern_KeyPattern.3������������������������������������������������0000644�0001750�0001750�00000001131�12052741140�021472� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtEventPattern::KeyPattern" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtEventPattern::KeyPattern \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBKeyPattern\fP (int k=0, int st=Qt::NoButton)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "int \fBkey\fP" .br .ti -1c .RI "int \fBstate\fP" .br .in -1c .SH "Detailed Description" .PP A pattern for key events\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDoubleInterval.3���������������������������������������������������������0000644�0001750�0001750�00000020662�12052741137�017644� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDoubleInterval" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDoubleInterval \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBBorderMode\fP { \fBIncludeBorders\fP = 0, \fBExcludeMinimum\fP = 1, \fBExcludeMaximum\fP = 2, \fBExcludeBorders\fP = ExcludeMinimum | ExcludeMaximum }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDoubleInterval\fP ()" .br .ti -1c .RI "\fBQwtDoubleInterval\fP (double \fBminValue\fP, double \fBmaxValue\fP, int \fBborderFlags\fP=IncludeBorders)" .br .ti -1c .RI "int \fBborderFlags\fP () const " .br .ti -1c .RI "bool \fBcontains\fP (double value) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBextend\fP (double value) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBintersect\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "bool \fBintersects\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "void \fBinvalidate\fP ()" .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBinverted\fP () const " .br .ti -1c .RI "bool \fBisNull\fP () const " .br .ti -1c .RI "bool \fBisValid\fP () const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBlimited\fP (double \fBminValue\fP, double \fBmaxValue\fP) const " .br .ti -1c .RI "double \fBmaxValue\fP () const " .br .ti -1c .RI "double \fBminValue\fP () const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBnormalized\fP () const " .br .ti -1c .RI "int \fBoperator!=\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBoperator&\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP & \fBoperator&=\fP (const \fBQwtDoubleInterval\fP &)" .br .ti -1c .RI "int \fBoperator==\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBoperator|\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBoperator|\fP (double) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP & \fBoperator|=\fP (const \fBQwtDoubleInterval\fP &)" .br .ti -1c .RI "\fBQwtDoubleInterval\fP & \fBoperator|=\fP (double)" .br .ti -1c .RI "void \fBsetBorderFlags\fP (int)" .br .ti -1c .RI "void \fBsetInterval\fP (double \fBminValue\fP, double \fBmaxValue\fP, int \fBborderFlags\fP=IncludeBorders)" .br .ti -1c .RI "void \fBsetMaxValue\fP (double)" .br .ti -1c .RI "void \fBsetMinValue\fP (double)" .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBsymmetrize\fP (double value) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBunite\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "double \fBwidth\fP () const " .br .in -1c .SH "Detailed Description" .PP A class representing an interval\&. The interval is represented by 2 doubles, the lower and the upper limit\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtDoubleInterval::BorderMode\fP" Flag indicating if a border is included/excluded from an interval .PP .IP "\(bu" 2 IncludeBorders .br min/max values are inside the interval .IP "\(bu" 2 ExcludeMinimum .br min value is not included in the interval .IP "\(bu" 2 ExcludeMaximum .br max value is not included in the interval .IP "\(bu" 2 ExcludeBorders .br min/max values are not included in the interval .PP .PP \fBSee also:\fP .RS 4 setBorderMode(), testBorderMode() .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtDoubleInterval::QwtDoubleInterval ()\fC [inline]\fP" .PP Default Constructor\&. Creates an invalid interval [0\&.0, -1\&.0] .PP \fBSee also:\fP .RS 4 \fBsetInterval()\fP, \fBisValid()\fP .RE .PP .SS "QwtDoubleInterval::QwtDoubleInterval (doubleminValue, doublemaxValue, intborderFlags = \fCIncludeBorders\fP)\fC [inline]\fP" Constructor .PP Build an interval with from min/max values .PP \fBParameters:\fP .RS 4 \fIminValue\fP Minimum value .br \fImaxValue\fP Maximum value .br \fIborderFlags\fP Include/Exclude borders .RE .PP .SH "Member Function Documentation" .PP .SS "int QwtDoubleInterval::borderFlags () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Border flags .RE .PP \fBSee also:\fP .RS 4 \fBsetBorderFlags()\fP .RE .PP .SS "bool QwtDoubleInterval::contains (doublevalue) const" Test if a value is inside an interval .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 true, if value >= \fBminValue()\fP && value <= \fBmaxValue()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::extend (doublevalue) const" Extend the interval .PP If value is below minValue, value becomes the lower limit\&. If value is above maxValue, value becomes the upper limit\&. .PP extend has no effect for invalid intervals .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBisValid()\fP .RE .PP .SS "bool QwtDoubleInterval::intersects (const \fBQwtDoubleInterval\fP &other) const" Test if two intervals overlap .SS "void QwtDoubleInterval::invalidate ()\fC [inline]\fP" Invalidate the interval .PP The limits are set to interval [0\&.0, -1\&.0] .PP \fBSee also:\fP .RS 4 \fBisValid()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::inverted () const" Invert the limits of the interval .PP \fBReturns:\fP .RS 4 Inverted interval .RE .PP \fBSee also:\fP .RS 4 \fBnormalized()\fP .RE .PP .SS "bool QwtDoubleInterval::isNull () const\fC [inline]\fP" \fBReturns:\fP .RS 4 true, if \fBisValid()\fP && (\fBminValue()\fP >= \fBmaxValue()\fP) .RE .PP .SS "bool QwtDoubleInterval::isValid () const\fC [inline]\fP" A interval is valid when \fBminValue()\fP <= \fBmaxValue()\fP\&. In case of QwtDoubleInterval::ExcludeBorders it is true when \fBminValue()\fP < \fBmaxValue()\fP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::limited (doublelowerBound, doubleupperBound) const" Limit the interval, keeping the border modes .PP \fBParameters:\fP .RS 4 \fIlowerBound\fP Lower limit .br \fIupperBound\fP Upper limit .RE .PP \fBReturns:\fP .RS 4 Limited interval .RE .PP .SS "double QwtDoubleInterval::maxValue () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Upper limit of the interval .RE .PP .SS "double QwtDoubleInterval::minValue () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Lower limit of the interval .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::normalized () const" .PP Normalize the limits of the interval\&. If \fBmaxValue()\fP < \fBminValue()\fP the limits will be inverted\&. .PP \fBReturns:\fP .RS 4 Normalized interval .RE .PP \fBSee also:\fP .RS 4 \fBisValid()\fP, \fBinverted()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::operator& (const \fBQwtDoubleInterval\fP &interval) const\fC [inline]\fP" Intersection of two intervals .PP \fBSee also:\fP .RS 4 \fBintersect()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::operator| (const \fBQwtDoubleInterval\fP &interval) const\fC [inline]\fP" Union of two intervals .PP \fBSee also:\fP .RS 4 \fBunite()\fP .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::operator| (doublevalue) const\fC [inline]\fP" Extend an interval .PP \fBSee also:\fP .RS 4 \fBextend()\fP .RE .PP .SS "void QwtDoubleInterval::setBorderFlags (intborderFlags)\fC [inline]\fP" Change the border flags .PP \fBParameters:\fP .RS 4 \fIborderFlags\fP Or'd BorderMode flags .RE .PP \fBSee also:\fP .RS 4 \fBborderFlags()\fP .RE .PP .SS "void QwtDoubleInterval::setInterval (doubleminValue, doublemaxValue, intborderFlags = \fCIncludeBorders\fP)\fC [inline]\fP" Assign the limits of the interval .PP \fBParameters:\fP .RS 4 \fIminValue\fP Minimum value .br \fImaxValue\fP Maximum value .br \fIborderFlags\fP Include/Exclude borders .RE .PP .SS "void QwtDoubleInterval::setMaxValue (doublemaxValue)\fC [inline]\fP" Assign the upper limit of the interval .PP \fBParameters:\fP .RS 4 \fImaxValue\fP Maximum value .RE .PP .SS "void QwtDoubleInterval::setMinValue (doubleminValue)\fC [inline]\fP" Assign the lower limit of the interval .PP \fBParameters:\fP .RS 4 \fIminValue\fP Minimum value .RE .PP .SS "\fBQwtDoubleInterval\fP QwtDoubleInterval::symmetrize (doublevalue) const" Adjust the limit that is closer to value, so that value becomes the center of the interval\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP Center .RE .PP \fBReturns:\fP .RS 4 Interval with value as center .RE .PP .SS "double QwtDoubleInterval::width () const\fC [inline]\fP" Return the width of an interval The width of invalid intervals is 0\&.0, otherwise the result is \fBmaxValue()\fP - \fBminValue()\fP\&. .PP \fBSee also:\fP .RS 4 \fBisValid()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtArrowButton.3������������������������������������������������������������0000644�0001750�0001750�00000006040�12052741137�017205� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtArrowButton" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtArrowButton \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtArrowButton\fP (int \fBnum\fP, Qt::ArrowType, QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtArrowButton\fP ()" .br .ti -1c .RI "Qt::ArrowType \fBarrowType\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "int \fBnum\fP () const " .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual QSize \fBarrowSize\fP (Qt::ArrowType, const QSize &boundingSize) const " .br .ti -1c .RI "virtual void \fBdrawArrow\fP (QPainter *, const QRect &, Qt::ArrowType) const " .br .ti -1c .RI "virtual void \fBdrawButtonLabel\fP (QPainter *p)" .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual QRect \fBlabelRect\fP () const " .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *event)" .br .in -1c .SH "Detailed Description" .PP Arrow Button\&. A push button with one or more filled triangles on its front\&. An Arrow button can have 1 to 3 arrows in a row, pointing up, down, left or right\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtArrowButton::QwtArrowButton (intnum, Qt::ArrowTypearrowType, QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" \fBParameters:\fP .RS 4 \fInum\fP Number of arrows .br \fIarrowType\fP see Qt::ArowType in the Qt docs\&. .br \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "QSize QwtArrowButton::arrowSize (Qt::ArrowTypearrowType, const QSize &boundingSize) const\fC [protected]\fP, \fC [virtual]\fP" Calculate the size for a arrow that fits into a rect of a given size .PP \fBParameters:\fP .RS 4 \fIarrowType\fP Arrow type .br \fIboundingSize\fP Bounding size .RE .PP \fBReturns:\fP .RS 4 Size of the arrow .RE .PP .SS "void QwtArrowButton::drawArrow (QPainter *painter, const QRect &r, Qt::ArrowTypearrowType) const\fC [protected]\fP, \fC [virtual]\fP" Draw an arrow int a bounding rect .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIr\fP Rectangle where to paint the arrow .br \fIarrowType\fP Arrow type .RE .PP .SS "void QwtArrowButton::drawButtonLabel (QPainter *painter)\fC [protected]\fP, \fC [virtual]\fP" .PP Draw the button label\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 The Qt Manual on QPushButton .RE .PP .SS "QRect QwtArrowButton::labelRect () const\fC [protected]\fP, \fC [virtual]\fP" \fBReturns:\fP .RS 4 the bounding rect for the label .RE .PP .SS "void QwtArrowButton::paintEvent (QPaintEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Paint event handler .PP \fBParameters:\fP .RS 4 \fIevent\fP Paint event .RE .PP .SS "QSize QwtArrowButton::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 a size hint .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCPointerData.3�����������������������������������������������������������0000644�0001750�0001750�00000005650�12052741137�017242� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCPointerData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCPointerData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtData\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtCPointerData\fP (const double *\fBx\fP, const double *\fBy\fP, size_t \fBsize\fP)" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual \fBQwtData\fP * \fBcopy\fP () const " .br .ti -1c .RI "\fBQwtCPointerData\fP & \fBoperator=\fP (const \fBQwtCPointerData\fP &)" .br .ti -1c .RI "virtual size_t \fBsize\fP () const " .br .ti -1c .RI "virtual double \fBx\fP (size_t i) const " .br .ti -1c .RI "const double * \fBxData\fP () const " .br .ti -1c .RI "virtual double \fBy\fP (size_t i) const " .br .ti -1c .RI "const double * \fByData\fP () const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Data class containing two pointers to memory blocks of doubles\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtCPointerData::QwtCPointerData (const double *x, const double *y, size_tsize)" Constructor .PP \fBParameters:\fP .RS 4 \fIx\fP Array of x values .br \fIy\fP Array of y values .br \fIsize\fP Size of the x and y arrays .RE .PP \fBWarning:\fP .RS 4 The programmer must assure that the memory blocks referenced by the pointers remain valid during the lifetime of the QwtPlotCPointer object\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotCurve::setData()\fP, \fBQwtPlotCurve::setRawData()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtCPointerData::boundingRect () const\fC [virtual]\fP" Returns the bounding rectangle of the data\&. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false .PP Reimplemented from \fBQwtData\fP\&. .SS "\fBQwtData\fP * QwtCPointerData::copy () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Pointer to a copy (virtual copy constructor) .RE .PP .PP Implements \fBQwtData\fP\&. .SS "size_t QwtCPointerData::size () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Size of the data set .RE .PP .PP Implements \fBQwtData\fP\&. .SS "double QwtCPointerData::x (size_ti) const\fC [virtual]\fP" Return the x value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 x X value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SS "const double * QwtCPointerData::xData () const" \fBReturns:\fP .RS 4 Array of the x-values .RE .PP .SS "double QwtCPointerData::y (size_ti) const\fC [virtual]\fP" Return the y value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 y Y value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SS "const double * QwtCPointerData::yData () const" \fBReturns:\fP .RS 4 Array of the y-values .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPickerMachine.3����������������������������������������������������������0000644�0001750�0001750�00000002571�12052741141�017421� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPickerMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPickerClickPointMachine\fP, \fBQwtPickerClickRectMachine\fP, \fBQwtPickerDragPointMachine\fP, \fBQwtPickerDragRectMachine\fP, and \fBQwtPickerPolygonMachine\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBCommand\fP { \fBBegin\fP, \fBAppend\fP, \fBMove\fP, \fBEnd\fP }" .br .ti -1c .RI "typedef QList< \fBCommand\fP > \fBCommandList\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fB~QwtPickerMachine\fP ()" .br .ti -1c .RI "void \fBreset\fP ()" .br .ti -1c .RI "void \fBsetState\fP (int)" .br .ti -1c .RI "int \fBstate\fP () const " .br .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)=0" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtPickerMachine\fP ()" .br .in -1c .SH "Detailed Description" .PP A state machine for \fBQwtPicker\fP selections\&. \fBQwtPickerMachine\fP accepts key and mouse events and translates them into selection commands\&. .PP \fBSee also:\fP .RS 4 \fBQwtEventPattern::MousePatternCode\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLegend.3�����������������������������������������������������������������0000644�0001750�0001750�00000017064�12052741140�016117� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLegend" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLegend \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBLegendDisplayPolicy\fP { \fBNoIdentifier\fP = 0, \fBFixedIdentifier\fP = 1, \fBAutoIdentifier\fP = 2 }" .br .ti -1c .RI "enum \fBLegendItemMode\fP { \fBReadOnlyItem\fP, \fBClickableItem\fP, \fBCheckableItem\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtLegend\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtLegend\fP ()" .br .ti -1c .RI "void \fBclear\fP ()" .br .ti -1c .RI "QWidget * \fBcontentsWidget\fP ()" .br .ti -1c .RI "const QWidget * \fBcontentsWidget\fP () const " .br .ti -1c .RI "\fBLegendDisplayPolicy\fP \fBdisplayPolicy\fP () const " .br .ti -1c .RI "virtual bool \fBeventFilter\fP (QObject *, QEvent *)" .br .ti -1c .RI "QWidget * \fBfind\fP (const \fBQwtLegendItemManager\fP *) const " .br .ti -1c .RI "\fBQwtLegendItemManager\fP * \fBfind\fP (const QWidget *) const " .br .ti -1c .RI "virtual int \fBheightForWidth\fP (int w) const " .br .ti -1c .RI "QScrollBar * \fBhorizontalScrollBar\fP () const " .br .ti -1c .RI "int \fBidentifierMode\fP () const " .br .ti -1c .RI "void \fBinsert\fP (const \fBQwtLegendItemManager\fP *, QWidget *)" .br .ti -1c .RI "bool \fBisEmpty\fP () const " .br .ti -1c .RI "uint \fBitemCount\fP () const " .br .ti -1c .RI "\fBLegendItemMode\fP \fBitemMode\fP () const " .br .ti -1c .RI "virtual QList< QWidget * > \fBlegendItems\fP () const " .br .ti -1c .RI "void \fBremove\fP (const \fBQwtLegendItemManager\fP *)" .br .ti -1c .RI "void \fBsetDisplayPolicy\fP (\fBLegendDisplayPolicy\fP policy, int mode)" .br .ti -1c .RI "void \fBsetItemMode\fP (\fBLegendItemMode\fP)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "QScrollBar * \fBverticalScrollBar\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBlayoutContents\fP ()" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *)" .br .in -1c .SH "Detailed Description" .PP The legend widget\&. The \fBQwtLegend\fP widget is a tabular arrangement of legend items\&. Legend items might be any type of widget, but in general they will be a \fBQwtLegendItem\fP\&. .PP \fBSee also:\fP .RS 4 \fBQwtLegendItem\fP, \fBQwtLegendItemManager\fP \fBQwtPlot\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtLegend::LegendDisplayPolicy\fP" .PP Display policy\&. .IP "\(bu" 2 NoIdentifier .br The client code is responsible how to display of each legend item\&. The Qwt library will not interfere\&. .PP .PP .IP "\(bu" 2 FixedIdentifier .br All legend items are displayed with the \fBQwtLegendItem::IdentifierMode\fP to be passed in 'mode'\&. .PP .PP .IP "\(bu" 2 AutoIdentifier .br Each legend item is displayed with a mode that is a bitwise or of .IP " \(bu" 4 QwtLegendItem::ShowLine (if its curve is drawn with a line) and .IP " \(bu" 4 QwtLegendItem::ShowSymbol (if its curve is drawn with symbols) and .IP " \(bu" 4 QwtLegendItem::ShowText (if the has a title)\&. .PP .PP .PP Default is AutoIdentifier\&. .PP \fBSee also:\fP .RS 4 \fBsetDisplayPolicy()\fP, \fBdisplayPolicy()\fP, \fBQwtLegendItem::IdentifierMode\fP .RE .PP .SS "enum \fBQwtLegend::LegendItemMode\fP" .PP Interaction mode for the legend items\&. .IP "\(bu" 2 ReadOnlyItem .br The legend item is not interactive, like a label .PP .PP .IP "\(bu" 2 ClickableItem .br The legend item is clickable, like a push button .PP .PP .IP "\(bu" 2 CheckableItem .br The legend item is checkable, like a checkable button .PP .PP Default is ReadOnlyItem\&. .PP \fBSee also:\fP .RS 4 \fBsetItemMode()\fP, \fBitemMode()\fP, \fBQwtLegendItem::IdentifierMode\fP \fBQwtLegendItem::clicked()\fP, \fBQwtLegendItem::checked()\fP, \fBQwtPlot::legendClicked()\fP, \fBQwtPlot::legendChecked()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtLegend::QwtLegend (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "QWidget * QwtLegend::contentsWidget ()" The contents widget is the only child of the viewport() and the parent widget of all legend items\&. .SS "const QWidget * QwtLegend::contentsWidget () const" The contents widget is the only child of the viewport() and the parent widget of all legend items\&. .SS "\fBQwtLegend::LegendDisplayPolicy\fP QwtLegend::displayPolicy () const" \fBReturns:\fP .RS 4 the legend display policy\&. Default is LegendDisplayPolicy::Auto\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetDisplayPolicy()\fP, \fBLegendDisplayPolicy\fP .RE .PP .SS "bool QwtLegend::eventFilter (QObject *o, QEvent *e)\fC [virtual]\fP" Filter layout related events of \fBQwtLegend::contentsWidget()\fP\&. .PP \fBParameters:\fP .RS 4 \fIo\fP Object to be filtered .br \fIe\fP Event .RE .PP .SS "QWidget * QwtLegend::find (const \fBQwtLegendItemManager\fP *plotItem) const" Find the widget that represents a plot item .PP \fBParameters:\fP .RS 4 \fIplotItem\fP Plot item .RE .PP \fBReturns:\fP .RS 4 Widget on the legend, or NULL .RE .PP .SS "\fBQwtLegendItemManager\fP * QwtLegend::find (const QWidget *legendItem) const" Find the widget that represents a plot item .PP \fBParameters:\fP .RS 4 \fIlegendItem\fP Legend item .RE .PP \fBReturns:\fP .RS 4 Widget on the legend, or NULL .RE .PP .SS "int QwtLegend::heightForWidth (intwidth) const\fC [virtual]\fP" \fBReturns:\fP .RS 4 The preferred height, for the width w\&. .RE .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width .RE .PP .SS "QScrollBar * QwtLegend::horizontalScrollBar () const" \fBReturns:\fP .RS 4 Horizontal scrollbar .RE .PP \fBSee also:\fP .RS 4 \fBverticalScrollBar()\fP .RE .PP .SS "int QwtLegend::identifierMode () const" \fBReturns:\fP .RS 4 the IdentifierMode to be used in combination with LegendDisplayPolicy::Fixed\&. .RE .PP Default is ShowLine | ShowSymbol | ShowText\&. .SS "void QwtLegend::insert (const \fBQwtLegendItemManager\fP *plotItem, QWidget *legendItem)" Insert a new item for a plot item .PP \fBParameters:\fP .RS 4 \fIplotItem\fP Plot item .br \fIlegendItem\fP New legend item .RE .PP \fBNote:\fP .RS 4 The parent of item will be changed to \fBQwtLegend::contentsWidget()\fP .RE .PP .SS "\fBQwtLegend::LegendItemMode\fP QwtLegend::itemMode () const" \fBSee also:\fP .RS 4 \fBLegendItemMode\fP .RE .PP .SS "void QwtLegend::layoutContents ()\fC [protected]\fP, \fC [virtual]\fP" Adjust contents widget and item layout to the size of the viewport()\&. .SS "void QwtLegend::remove (const \fBQwtLegendItemManager\fP *plotItem)" Find the corresponding item for a plotItem and remove it from the item list\&. .PP \fBParameters:\fP .RS 4 \fIplotItem\fP Plot item .RE .PP .SS "void QwtLegend::resizeEvent (QResizeEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Resize event .PP \fBParameters:\fP .RS 4 \fIe\fP Resize event .RE .PP .SS "void QwtLegend::setDisplayPolicy (\fBLegendDisplayPolicy\fPpolicy, intmode)" Set the legend display policy to: .PP \fBParameters:\fP .RS 4 \fIpolicy\fP Legend display policy .br \fImode\fP Identifier mode (or'd ShowLine, ShowSymbol, ShowText) .RE .PP \fBSee also:\fP .RS 4 \fBdisplayPolicy()\fP, \fBLegendDisplayPolicy\fP .RE .PP .SS "void QwtLegend::setItemMode (\fBLegendItemMode\fPmode)" \fBSee also:\fP .RS 4 \fBLegendItemMode\fP .RE .PP .SS "QScrollBar * QwtLegend::verticalScrollBar () const" \fBReturns:\fP .RS 4 Vertical scrollbar .RE .PP \fBSee also:\fP .RS 4 \fBhorizontalScrollBar()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtTextLabel.3��������������������������������������������������������������0000644�0001750�0001750�00000006730�12052741143�016606� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtTextLabel" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtTextLabel \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtLegendItem\fP\&. .SS "Public Slots" .in +1c .ti -1c .RI "void \fBclear\fP ()" .br .ti -1c .RI "void \fBsetText\fP (const QString &, \fBQwtText::TextFormat\fP textFormat=QwtText::AutoText)" .br .ti -1c .RI "virtual void \fBsetText\fP (const \fBQwtText\fP &)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtTextLabel\fP (QWidget *parent=NULL)" .br .ti -1c .RI "\fBQwtTextLabel\fP (const \fBQwtText\fP &, QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtTextLabel\fP ()" .br .ti -1c .RI "virtual int \fBheightForWidth\fP (int) const " .br .ti -1c .RI "int \fBindent\fP () const " .br .ti -1c .RI "int \fBmargin\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "void \fBsetIndent\fP (int)" .br .ti -1c .RI "void \fBsetMargin\fP (int)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "const \fBQwtText\fP & \fBtext\fP () const " .br .ti -1c .RI "QRect \fBtextRect\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawContents\fP (QPainter *)" .br .ti -1c .RI "virtual void \fBdrawText\fP (QPainter *, const QRect &)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .in -1c .SH "Detailed Description" .PP A Widget which displays a \fBQwtText\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtTextLabel::QwtTextLabel (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructs an empty label\&. .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SS "QwtTextLabel::QwtTextLabel (const \fBQwtText\fP &text, QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructs a label that displays the text, text .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .br \fItext\fP Text .RE .PP .SH "Member Function Documentation" .PP .SS "int QwtTextLabel::heightForWidth (intwidth) const\fC [virtual]\fP" Returns the preferred height for this widget, given the width\&. .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width .RE .PP .SS "void QwtTextLabel::paintEvent (QPaintEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Qt paint event .PP \fBParameters:\fP .RS 4 \fIevent\fP Paint event .RE .PP .PP Reimplemented in \fBQwtLegendItem\fP\&. .SS "void QwtTextLabel::setIndent (intindent)" Set label's text indent in pixels .PP \fBParameters:\fP .RS 4 \fIindent\fP Indentation in pixels .RE .PP .SS "void QwtTextLabel::setMargin (intmargin)" Set label's margin in pixels .PP \fBParameters:\fP .RS 4 \fImargin\fP Margin in pixels .RE .PP .SS "void QwtTextLabel::setText (const QString &text, \fBQwtText::TextFormat\fPtextFormat = \fCQwtText::AutoText\fP)\fC [slot]\fP" Change the label's text, keeping all other \fBQwtText\fP attributes .PP \fBParameters:\fP .RS 4 \fItext\fP New text .br \fItextFormat\fP Format of text .RE .PP \fBSee also:\fP .RS 4 \fBQwtText\fP .RE .PP .SS "void QwtTextLabel::setText (const \fBQwtText\fP &text)\fC [virtual]\fP, \fC [slot]\fP" Change the label's text .PP \fBParameters:\fP .RS 4 \fItext\fP New text .RE .PP .PP Reimplemented in \fBQwtLegendItem\fP\&. .SS "QRect QwtTextLabel::textRect () const" Calculate the rect for the text in widget coordinates .PP \fBReturns:\fP .RS 4 Text rect .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ����������������������������������������qwt5-5.2.3/doc/man/man3/QwtData.3�������������������������������������������������������������������0000644�0001750�0001750�00000005720�12052741137�015574� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtArrayData\fP, \fBQwtCPointerData\fP, and \fBQwtPolygonFData\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtData\fP ()" .br .ti -1c .RI "virtual \fB~QwtData\fP ()" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual \fBQwtData\fP * \fBcopy\fP () const =0" .br .ti -1c .RI "virtual size_t \fBsize\fP () const =0" .br .ti -1c .RI "virtual double \fBx\fP (size_t i) const =0" .br .ti -1c .RI "virtual double \fBy\fP (size_t i) const =0" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtData\fP & \fBoperator=\fP (const \fBQwtData\fP &)" .br .in -1c .SH "Detailed Description" .PP \fBQwtData\fP defines an interface to any type of curve data\&. Classes, derived from \fBQwtData\fP may: .IP "\(bu" 2 store the data in almost any type of container .IP "\(bu" 2 calculate the data on the fly instead of storing it .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtData::boundingRect () const\fC [virtual]\fP" Returns the bounding rectangle of the data\&. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false .PP \fBWarning:\fP .RS 4 This is an slow implementation iterating over all points\&. It is intended to be overloaded by derived classes\&. In case of auto scaling \fBboundingRect()\fP is called for every replot, so it might be worth to implement a cache, or use x(0), x(\fBsize()\fP - 1) for ordered data \&.\&.\&. .RE .PP .PP Reimplemented in \fBQwtCPointerData\fP, and \fBQwtArrayData\fP\&. .SS "virtual \fBQwtData\fP* QwtData::copy () const\fC [pure virtual]\fP" \fBReturns:\fP .RS 4 Pointer to a copy (virtual copy constructor) .RE .PP .PP Implemented in \fBQwtCPointerData\fP, \fBQwtArrayData\fP, and \fBQwtPolygonFData\fP\&. .SS "\fBQwtData\fP& QwtData::operator= (const \fBQwtData\fP &)\fC [protected]\fP" Assignment operator (virtualized) .SS "virtual size_t QwtData::size () const\fC [pure virtual]\fP" \fBReturns:\fP .RS 4 Size of the data set .RE .PP .PP Implemented in \fBQwtCPointerData\fP, \fBQwtArrayData\fP, and \fBQwtPolygonFData\fP\&. .SS "virtual double QwtData::x (size_ti) const\fC [pure virtual]\fP" Return the x value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 x X value of data point i .RE .PP .PP Implemented in \fBQwtCPointerData\fP, \fBQwtArrayData\fP, and \fBQwtPolygonFData\fP\&. .SS "virtual double QwtData::y (size_ti) const\fC [pure virtual]\fP" Return the y value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 y Y value of data point i .RE .PP .PP Implemented in \fBQwtCPointerData\fP, \fBQwtArrayData\fP, and \fBQwtPolygonFData\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtEventPattern_MousePattern.3����������������������������������������������0000644�0001750�0001750�00000001161�12052741140�022035� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtEventPattern::MousePattern" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtEventPattern::MousePattern \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBMousePattern\fP (int btn=Qt::NoButton, int st=Qt::NoButton)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "int \fBbutton\fP" .br .ti -1c .RI "int \fBstate\fP" .br .in -1c .SH "Detailed Description" .PP A pattern for mouse events\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlot.3�������������������������������������������������������������������0000644�0001750�0001750�00000074021�12052741141�015634� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlot" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlot \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotDict\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBAxis\fP { \fByLeft\fP, \fByRight\fP, \fBxBottom\fP, \fBxTop\fP, \fBaxisCnt\fP }" .br .ti -1c .RI "enum \fBLegendPosition\fP { \fBLeftLegend\fP, \fBRightLegend\fP, \fBBottomLegend\fP, \fBTopLegend\fP, \fBExternalLegend\fP }" .br .in -1c .SS "Public Slots" .in +1c .ti -1c .RI "void \fBautoRefresh\fP ()" .br .ti -1c .RI "virtual void \fBclear\fP ()" .br .ti -1c .RI "virtual void \fBreplot\fP ()" .br .in -1c .SS "Signals" .in +1c .ti -1c .RI "void \fBlegendChecked\fP (\fBQwtPlotItem\fP *plotItem, bool on)" .br .ti -1c .RI "void \fBlegendClicked\fP (\fBQwtPlotItem\fP *plotItem)" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlot\fP (QWidget *=NULL)" .br .ti -1c .RI "\fBQwtPlot\fP (const \fBQwtText\fP &\fBtitle\fP, QWidget *p=NULL)" .br .ti -1c .RI "virtual \fB~QwtPlot\fP ()" .br .ti -1c .RI "void \fBapplyProperties\fP (const QString &)" .br .ti -1c .RI "bool \fBautoReplot\fP () const " .br .ti -1c .RI "bool \fBaxisAutoScale\fP (int axisId) const " .br .ti -1c .RI "bool \fBaxisEnabled\fP (int axisId) const " .br .ti -1c .RI "QFont \fBaxisFont\fP (int axisId) const " .br .ti -1c .RI "int \fBaxisMaxMajor\fP (int axisId) const " .br .ti -1c .RI "int \fBaxisMaxMinor\fP (int axisId) const " .br .ti -1c .RI "const \fBQwtScaleDiv\fP * \fBaxisScaleDiv\fP (int axisId) const " .br .ti -1c .RI "\fBQwtScaleDiv\fP * \fBaxisScaleDiv\fP (int axisId)" .br .ti -1c .RI "const \fBQwtScaleDraw\fP * \fBaxisScaleDraw\fP (int axisId) const " .br .ti -1c .RI "\fBQwtScaleDraw\fP * \fBaxisScaleDraw\fP (int axisId)" .br .ti -1c .RI "\fBQwtScaleEngine\fP * \fBaxisScaleEngine\fP (int axisId)" .br .ti -1c .RI "const \fBQwtScaleEngine\fP * \fBaxisScaleEngine\fP (int axisId) const " .br .ti -1c .RI "double \fBaxisStepSize\fP (int axisId) const " .br .ti -1c .RI "\fBQwtText\fP \fBaxisTitle\fP (int axisId) const " .br .ti -1c .RI "const \fBQwtScaleWidget\fP * \fBaxisWidget\fP (int axisId) const " .br .ti -1c .RI "\fBQwtScaleWidget\fP * \fBaxisWidget\fP (int axisId)" .br .ti -1c .RI "\fBQwtPlotCanvas\fP * \fBcanvas\fP ()" .br .ti -1c .RI "const \fBQwtPlotCanvas\fP * \fBcanvas\fP () const " .br .ti -1c .RI "const QColor & \fBcanvasBackground\fP () const " .br .ti -1c .RI "int \fBcanvasLineWidth\fP () const " .br .ti -1c .RI "virtual \fBQwtScaleMap\fP \fBcanvasMap\fP (int axisId) const " .br .ti -1c .RI "virtual void \fBdrawCanvas\fP (QPainter *)" .br .ti -1c .RI "void \fBenableAxis\fP (int axisId, bool tf=true)" .br .ti -1c .RI "virtual bool \fBevent\fP (QEvent *)" .br .ti -1c .RI "QString \fBgrabProperties\fP () const " .br .ti -1c .RI "void \fBinsertLegend\fP (\fBQwtLegend\fP *, \fBLegendPosition\fP=QwtPlot::RightLegend, double ratio=-1\&.0)" .br .ti -1c .RI "double \fBinvTransform\fP (int axisId, int pos) const " .br .ti -1c .RI "\fBQwtLegend\fP * \fBlegend\fP ()" .br .ti -1c .RI "const \fBQwtLegend\fP * \fBlegend\fP () const " .br .ti -1c .RI "int \fBmargin\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "\fBQwtPlotLayout\fP * \fBplotLayout\fP ()" .br .ti -1c .RI "const \fBQwtPlotLayout\fP * \fBplotLayout\fP () const " .br .ti -1c .RI "virtual void \fBpolish\fP ()" .br .ti -1c .RI "void \fBprint\fP (QPaintDevice &p, const \fBQwtPlotPrintFilter\fP &=\fBQwtPlotPrintFilter\fP()) const " .br .ti -1c .RI "virtual void \fBprint\fP (QPainter *, const QRect &rect, const \fBQwtPlotPrintFilter\fP &=\fBQwtPlotPrintFilter\fP()) const " .br .ti -1c .RI "void \fBsetAutoReplot\fP (bool tf=true)" .br .ti -1c .RI "void \fBsetAxisAutoScale\fP (int axisId)" .br .ti -1c .RI "void \fBsetAxisFont\fP (int axisId, const QFont &f)" .br .ti -1c .RI "void \fBsetAxisLabelAlignment\fP (int axisId, Qt::Alignment)" .br .ti -1c .RI "void \fBsetAxisLabelRotation\fP (int axisId, double rotation)" .br .ti -1c .RI "void \fBsetAxisMaxMajor\fP (int axisId, int maxMajor)" .br .ti -1c .RI "void \fBsetAxisMaxMinor\fP (int axisId, int maxMinor)" .br .ti -1c .RI "void \fBsetAxisScale\fP (int axisId, double min, double max, double step=0)" .br .ti -1c .RI "void \fBsetAxisScaleDiv\fP (int axisId, const \fBQwtScaleDiv\fP &)" .br .ti -1c .RI "void \fBsetAxisScaleDraw\fP (int axisId, \fBQwtScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetAxisScaleEngine\fP (int axisId, \fBQwtScaleEngine\fP *)" .br .ti -1c .RI "void \fBsetAxisTitle\fP (int axisId, const QString &)" .br .ti -1c .RI "void \fBsetAxisTitle\fP (int axisId, const \fBQwtText\fP &)" .br .ti -1c .RI "void \fBsetCanvasBackground\fP (const QColor &c)" .br .ti -1c .RI "void \fBsetCanvasLineWidth\fP (int w)" .br .ti -1c .RI "void \fBsetMargin\fP (int \fBmargin\fP)" .br .ti -1c .RI "void \fBsetTitle\fP (const QString &)" .br .ti -1c .RI "void \fBsetTitle\fP (const \fBQwtText\fP &t)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "\fBQwtText\fP \fBtitle\fP () const " .br .ti -1c .RI "\fBQwtTextLabel\fP * \fBtitleLabel\fP ()" .br .ti -1c .RI "const \fBQwtTextLabel\fP * \fBtitleLabel\fP () const " .br .ti -1c .RI "int \fBtransform\fP (int axisId, double value) const " .br .ti -1c .RI "void \fBupdateAxes\fP ()" .br .ti -1c .RI "virtual void \fBupdateLayout\fP ()" .br .in -1c .SS "Protected Slots" .in +1c .ti -1c .RI "virtual void \fBlegendItemChecked\fP (bool)" .br .ti -1c .RI "virtual void \fBlegendItemClicked\fP ()" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawItems\fP (QPainter *, const QRect &, const \fBQwtScaleMap\fP maps[axisCnt], const \fBQwtPlotPrintFilter\fP &) const " .br .ti -1c .RI "virtual void \fBprintCanvas\fP (QPainter *, const QRect &boundingRect, const QRect &canvasRect, const \fBQwtScaleMap\fP maps[axisCnt], const \fBQwtPlotPrintFilter\fP &) const " .br .ti -1c .RI "virtual void \fBprintLegend\fP (QPainter *, const QRect &) const " .br .ti -1c .RI "virtual void \fBprintLegendItem\fP (QPainter *, const QWidget *, const QRect &) const " .br .ti -1c .RI "virtual void \fBprintScale\fP (QPainter *, int axisId, int startDist, int endDist, int baseDist, const QRect &) const " .br .ti -1c .RI "virtual void \fBprintTitle\fP (QPainter *, const QRect &) const " .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .ti -1c .RI "virtual void \fBupdateTabOrder\fP ()" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static bool \fBaxisValid\fP (int axisId)" .br .in -1c .SH "Detailed Description" .PP A 2-D plotting widget\&. \fBQwtPlot\fP is a widget for plotting two-dimensional graphs\&. An unlimited number of plot items can be displayed on its canvas\&. Plot items might be curves (\fBQwtPlotCurve\fP), markers (\fBQwtPlotMarker\fP), the grid (\fBQwtPlotGrid\fP), or anything else derived from \fBQwtPlotItem\fP\&. A plot can have up to four axes, with each plot item attached to an x- and a y axis\&. The scales at the axes can be explicitely set (\fBQwtScaleDiv\fP), or are calculated from the plot items, using algorithms (\fBQwtScaleEngine\fP) which can be configured separately for each axis\&. .PP .PP \fBExample\fP .RS 4 The following example shows (schematically) the most simple way to use \fBQwtPlot\fP\&. By default, only the left and bottom axes are visible and their scales are computed automatically\&. .PP .nf #include #include QwtPlot *myPlot = new QwtPlot("Two Curves", parent); // add curves QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1"); QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2"); // copy the data into the curves curve1->setData(...); curve2->setData(...); curve1->attach(myPlot); curve2->attach(myPlot); // finally, refresh the plot myPlot->replot(); .fi .PP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlot::Axis\fP" Axis index .PP .IP "\(bu" 2 yLeft .br .IP "\(bu" 2 yRight .br .IP "\(bu" 2 xBottom .br .IP "\(bu" 2 xTop .br .PP .SS "enum \fBQwtPlot::LegendPosition\fP" Position of the legend, relative to the canvas\&. .PP .IP "\(bu" 2 LeftLegend .br The legend will be left from the yLeft axis\&. .IP "\(bu" 2 RightLegend .br The legend will be right from the yLeft axis\&. .IP "\(bu" 2 BottomLegend .br The legend will be right below the xBottom axis\&. .IP "\(bu" 2 TopLegend .br The legend will be between xTop axis and the title\&. .IP "\(bu" 2 ExternalLegend .br External means that only the content of the legend will be handled by \fBQwtPlot\fP, but not its geometry\&. This might be interesting if an application wants to have a legend in an external window ( or on the canvas )\&. .PP .PP \fBNote:\fP .RS 4 In case of ExternalLegend, the legend is not printed by \fBprint()\fP\&. .RE .PP \fBSee also:\fP .RS 4 \fBinsertLegend()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlot::QwtPlot (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SS "QwtPlot::QwtPlot (const \fBQwtText\fP &title, QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fItitle\fP Title text .br \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtPlot::applyProperties (const QString &)" This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin\&. .PP \fBWarning:\fP .RS 4 The plot editor has never been implemented\&. .RE .PP .SS "bool QwtPlot::autoReplot () const" \fBReturns:\fP .RS 4 true if the autoReplot option is set\&. .RE .PP .SS "bool QwtPlot::axisAutoScale (intaxisId) const" \fBReturns:\fP .RS 4 \fCtrue\fP if autoscaling is enabled .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "bool QwtPlot::axisEnabled (intaxisId) const" \fBReturns:\fP .RS 4 \fCtrue\fP if a specified axis is enabled .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "QFont QwtPlot::axisFont (intaxisId) const" \fBReturns:\fP .RS 4 the font of the scale labels for a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "int QwtPlot::axisMaxMajor (intaxisId) const" \fBReturns:\fP .RS 4 the maximum number of major ticks for a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index sa \fBsetAxisMaxMajor()\fP .RE .PP .SS "int QwtPlot::axisMaxMinor (intaxisId) const" \fBReturns:\fP .RS 4 the maximum number of minor ticks for a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index sa \fBsetAxisMaxMinor()\fP .RE .PP .SS "const \fBQwtScaleDiv\fP * QwtPlot::axisScaleDiv (intaxisId) const" .PP Return the scale division of a specified axis\&. axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 Scale division .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDiv\fP, \fBsetAxisScaleDiv()\fP .RE .PP .SS "\fBQwtScaleDiv\fP * QwtPlot::axisScaleDiv (intaxisId)" .PP Return the scale division of a specified axis\&. axisScaleDiv(axisId)->lowerBound(), axisScaleDiv(axisId)->upperBound() are the current limits of the axis scale\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 Scale division .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDiv\fP, \fBsetAxisScaleDiv()\fP .RE .PP .SS "const \fBQwtScaleDraw\fP * QwtPlot::axisScaleDraw (intaxisId) const" \fBReturns:\fP .RS 4 the scale draw of a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 specified scaleDraw for axis, or NULL if axis is invalid\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw\fP .RE .PP .SS "\fBQwtScaleDraw\fP * QwtPlot::axisScaleDraw (intaxisId)" \fBReturns:\fP .RS 4 the scale draw of a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 specified scaleDraw for axis, or NULL if axis is invalid\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw\fP .RE .PP .SS "\fBQwtScaleEngine\fP * QwtPlot::axisScaleEngine (intaxisId)" \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 Scale engine for a specific axis .RE .PP .SS "const \fBQwtScaleEngine\fP * QwtPlot::axisScaleEngine (intaxisId) const" \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 Scale engine for a specific axis .RE .PP .SS "double QwtPlot::axisStepSize (intaxisId) const" Return the step size parameter, that has been set in setAxisScale\&. This doesn't need to be the step size of the current scale\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBReturns:\fP .RS 4 step size parameter value .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisScale()\fP .RE .PP .SS "\fBQwtText\fP QwtPlot::axisTitle (intaxisId) const" \fBReturns:\fP .RS 4 the title of a specified axis .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "bool QwtPlot::axisValid (intaxisId)\fC [static]\fP, \fC [protected]\fP" \fBReturns:\fP .RS 4 \fCtrue\fP if the specified axis exists, otherwise \fCfalse\fP .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "const \fBQwtScaleWidget\fP * QwtPlot::axisWidget (intaxisId) const" \fBReturns:\fP .RS 4 specified axis, or NULL if axisId is invalid\&. .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "\fBQwtScaleWidget\fP * QwtPlot::axisWidget (intaxisId)" \fBReturns:\fP .RS 4 specified axis, or NULL if axisId is invalid\&. .RE .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP .SS "\fBQwtPlotCanvas\fP * QwtPlot::canvas ()" \fBReturns:\fP .RS 4 the plot's canvas .RE .PP .SS "const \fBQwtPlotCanvas\fP * QwtPlot::canvas () const" \fBReturns:\fP .RS 4 the plot's canvas .RE .PP .SS "const QColor & QwtPlot::canvasBackground () const" Nothing else than: \fBcanvas()\fP->palette()\&.color( QPalette::Normal, QColorGroup::Background); .PP \fBReturns:\fP .RS 4 the background color of the plotting area\&. .RE .PP .SS "int QwtPlot::canvasLineWidth () const" Nothing else than: \fBcanvas()\fP->lineWidth(), left for compatibility only\&. .PP \fBReturns:\fP .RS 4 the border width of the plotting area .RE .PP .SS "\fBQwtScaleMap\fP QwtPlot::canvasMap (intaxisId) const\fC [virtual]\fP" \fBParameters:\fP .RS 4 \fIaxisId\fP Axis .RE .PP \fBReturns:\fP .RS 4 Map for the axis on the canvas\&. With this map pixel coordinates can translated to plot coordinates and vice versa\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleMap\fP, \fBtransform()\fP, \fBinvTransform()\fP .RE .PP .SS "void QwtPlot::clear ()\fC [virtual]\fP, \fC [slot]\fP" Remove all curves and markers .PP \fBDeprecated\fP .RS 4 Use QwtPlotDeict::detachItems instead .RE .PP .SS "void QwtPlot::drawCanvas (QPainter *painter)\fC [virtual]\fP" Redraw the canvas\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter used for drawing .RE .PP \fBWarning:\fP .RS 4 drawCanvas calls drawItems what is also used for printing\&. Applications that like to add individual plot items better overload \fBdrawItems()\fP .RE .PP \fBSee also:\fP .RS 4 \fBdrawItems()\fP .RE .PP .SS "void QwtPlot::drawItems (QPainter *painter, const QRect &rect, const \fBQwtScaleMap\fPmap[axisCnt], const \fBQwtPlotPrintFilter\fP &pfilter) const\fC [protected]\fP, \fC [virtual]\fP" Redraw the canvas items\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter used for drawing .br \fIrect\fP Bounding rectangle where to paint .br \fImap\fP QwtPlot::axisCnt maps, mapping between plot and paint device coordinates .br \fIpfilter\fP Plot print filter .RE .PP .SS "void QwtPlot::enableAxis (intaxisId, booltf = \fCtrue\fP)" .PP Enable or disable a specified axis\&. When an axis is disabled, this only means that it is not visible on the screen\&. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal\&. .PP Only xBottom and yLeft are enabled by default\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fItf\fP \fCtrue\fP (enabled) or \fCfalse\fP (disabled) .RE .PP .SS "QString QwtPlot::grabProperties () const" This method is intended for manipulating the plot widget from a specific editor in the Qwt designer plugin\&. .PP \fBWarning:\fP .RS 4 The plot editor has never been implemented\&. .RE .PP .SS "void QwtPlot::insertLegend (\fBQwtLegend\fP *legend, \fBQwtPlot::LegendPosition\fPpos = \fCQwtPlot::RightLegend\fP, doubleratio = \fC-1\&.0\fP)" .PP Insert a legend\&. If the position legend is \fCQwtPlot::LeftLegend\fP or \fCQwtPlot::RightLegend\fP the legend will be organized in one column from top to down\&. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right\&. .PP If pos != QwtPlot::ExternalLegend the plot widget will become parent of the legend\&. It will be deleted when the plot is deleted, or another legend is set with \fBinsertLegend()\fP\&. .PP \fBParameters:\fP .RS 4 \fIlegend\fP Legend .br \fIpos\fP The legend's position\&. For top/left position the number of colums will be limited to 1, otherwise it will be set to unlimited\&. .br \fIratio\fP Ratio between legend and the bounding rect of title, canvas and axes\&. The legend will be shrinked if it would need more space than the given ratio\&. The ratio is limited to ]0\&.0 \&.\&. 1\&.0]\&. In case of <= 0\&.0 it will be reset to the default ratio\&. The default vertical/horizontal ratio is 0\&.33/0\&.5\&. .RE .PP \fBSee also:\fP .RS 4 \fBlegend()\fP, \fBQwtPlotLayout::legendPosition()\fP, \fBQwtPlotLayout::setLegendPosition()\fP .RE .PP .SS "double QwtPlot::invTransform (intaxisId, intpos) const" Transform the x or y coordinate of a position in the drawing region into a value\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIpos\fP position .RE .PP \fBWarning:\fP .RS 4 The position can be an x or a y coordinate, depending on the specified axis\&. .RE .PP .SS "\fBQwtLegend\fP * QwtPlot::legend ()" \fBReturns:\fP .RS 4 the plot's legend .RE .PP \fBSee also:\fP .RS 4 \fBinsertLegend()\fP .RE .PP .SS "const \fBQwtLegend\fP * QwtPlot::legend () const" \fBReturns:\fP .RS 4 the plot's legend .RE .PP \fBSee also:\fP .RS 4 \fBinsertLegend()\fP .RE .PP .SS "void QwtPlot::legendChecked (\fBQwtPlotItem\fP *plotItem, boolon)\fC [signal]\fP" A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::CheckableItem mode .PP \fBParameters:\fP .RS 4 \fIplotItem\fP Corresponding plot item of the selected legend item .br \fIon\fP True when the legen item is checked .RE .PP \fBNote:\fP .RS 4 clicks are disabled as default .RE .PP \fBSee also:\fP .RS 4 \fBQwtLegend::setItemMode()\fP, \fBQwtLegend::itemMode()\fP .RE .PP .SS "void QwtPlot::legendClicked (\fBQwtPlotItem\fP *plotItem)\fC [signal]\fP" A signal which is emitted when the user has clicked on a legend item, which is in QwtLegend::ClickableItem mode\&. .PP \fBParameters:\fP .RS 4 \fIplotItem\fP Corresponding plot item of the selected legend item .RE .PP \fBNote:\fP .RS 4 clicks are disabled as default .RE .PP \fBSee also:\fP .RS 4 \fBQwtLegend::setItemMode()\fP, \fBQwtLegend::itemMode()\fP .RE .PP .SS "void QwtPlot::legendItemChecked (boolon)\fC [protected]\fP, \fC [virtual]\fP, \fC [slot]\fP" Called internally when the legend has been checked Emits a \fBlegendClicked()\fP signal\&. .SS "void QwtPlot::legendItemClicked ()\fC [protected]\fP, \fC [virtual]\fP, \fC [slot]\fP" Called internally when the legend has been clicked on\&. Emits a \fBlegendClicked()\fP signal\&. .SS "int QwtPlot::margin () const" \fBReturns:\fP .RS 4 margin .RE .PP \fBSee also:\fP .RS 4 \fBsetMargin()\fP, \fBQwtPlotLayout::margin()\fP, \fBplotLayout()\fP .RE .PP .SS "\fBQwtPlotLayout\fP * QwtPlot::plotLayout ()" \fBReturns:\fP .RS 4 the plot's title .RE .PP .SS "const \fBQwtPlotLayout\fP * QwtPlot::plotLayout () const" \fBReturns:\fP .RS 4 the plot's titel label\&. .RE .PP .SS "void QwtPlot::print (QPaintDevice &paintDev, const \fBQwtPlotPrintFilter\fP &pfilter = \fC\fBQwtPlotPrintFilter\fP()\fP) const" .PP Print the plot to a \fCQPaintDevice\fP (\fCQPrinter\fP) This function prints the contents of a \fBQwtPlot\fP instance to \fCQPaintDevice\fP object\&. The size is derived from its device metrics\&. \fBParameters:\fP .RS 4 \fIpaintDev\fP device to paint on, often a printer .br \fIpfilter\fP print filter .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPrintFilter\fP .RE .PP .SS "void QwtPlot::print (QPainter *painter, const QRect &plotRect, const \fBQwtPlotPrintFilter\fP &pfilter = \fC\fBQwtPlotPrintFilter\fP()\fP) const\fC [virtual]\fP" .PP Paint the plot into a given rectangle\&. Paint the contents of a \fBQwtPlot\fP instance into a given rectangle\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIplotRect\fP Bounding rectangle .br \fIpfilter\fP Print filter .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPrintFilter\fP .RE .PP .SS "void QwtPlot::printCanvas (QPainter *painter, const QRect &boundingRect, const QRect &canvasRect, const \fBQwtScaleMap\fPmap[axisCnt], const \fBQwtPlotPrintFilter\fP &pfilter) const\fC [protected]\fP, \fC [virtual]\fP" Print the canvas into a given rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fImap\fP Maps mapping between plot and paint device coordinates .br \fIboundingRect\fP Bounding rectangle .br \fIcanvasRect\fP Canvas rectangle .br \fIpfilter\fP Print filter .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotPrintFilter\fP .RE .PP .SS "void QwtPlot::printLegend (QPainter *painter, const QRect &rect) const\fC [protected]\fP, \fC [virtual]\fP" Print the legend into a given rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Bounding rectangle .RE .PP .SS "void QwtPlot::printLegendItem (QPainter *painter, const QWidget *w, const QRect &rect) const\fC [protected]\fP, \fC [virtual]\fP" Print the legend item into a given rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIw\fP Widget representing a legend item .br \fIrect\fP Bounding rectangle .RE .PP .SS "void QwtPlot::printScale (QPainter *painter, intaxisId, intstartDist, intendDist, intbaseDist, const QRect &rect) const\fC [protected]\fP, \fC [virtual]\fP" .PP Paint a scale into a given rectangle\&. Paint the scale into a given rectangle\&. \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIaxisId\fP Axis .br \fIstartDist\fP Start border distance .br \fIendDist\fP End border distance .br \fIbaseDist\fP Base distance .br \fIrect\fP Bounding rectangle .RE .PP .SS "void QwtPlot::printTitle (QPainter *painter, const QRect &rect) const\fC [protected]\fP, \fC [virtual]\fP" Print the title into a given rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Bounding rectangle .RE .PP .SS "void QwtPlot::replot ()\fC [virtual]\fP, \fC [slot]\fP" .PP Redraw the plot\&. If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible\&. .PP \fBSee also:\fP .RS 4 \fBsetAutoReplot()\fP .RE .PP \fBWarning:\fP .RS 4 Calls \fBcanvas()\fP->repaint, take care of infinite recursions .RE .PP .SS "void QwtPlot::resizeEvent (QResizeEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Resize and update internal layout .PP \fBParameters:\fP .RS 4 \fIe\fP Resize event .RE .PP .SS "void QwtPlot::setAutoReplot (booltf = \fCtrue\fP)" .PP Set or reset the autoReplot option\&. If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions\&. Since this may be time-consuming, it is recommended to leave this option switched off and call \fBreplot()\fP explicitly if necessary\&. .PP The autoReplot option is set to false by default, which means that the user has to call \fBreplot()\fP in order to make changes visible\&. .PP \fBParameters:\fP .RS 4 \fItf\fP \fCtrue\fP or \fCfalse\fP\&. Defaults to \fCtrue\fP\&. .RE .PP \fBSee also:\fP .RS 4 \fBreplot()\fP .RE .PP .SS "void QwtPlot::setAxisAutoScale (intaxisId)" .PP Enable autoscaling for a specified axis\&. This member function is used to switch back to autoscaling mode after a fixed scale has been set\&. Autoscaling is enabled by default\&. .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisScale()\fP, \fBsetAxisScaleDiv()\fP .RE .PP .SS "void QwtPlot::setAxisFont (intaxisId, const QFont &f)" .PP Change the font of an axis\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIf\fP font .RE .PP \fBWarning:\fP .RS 4 This function changes the font of the tick labels, not of the axis title\&. .RE .PP .SS "void QwtPlot::setAxisLabelAlignment (intaxisId, Qt::Alignmentalignment)" Change the alignment of the tick labels .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIalignment\fP Or'd Qt::AlignmentFlags .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw::setLabelAlignment()\fP .RE .PP .SS "void QwtPlot::setAxisLabelRotation (intaxisId, doublerotation)" Rotate all tick labels .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIrotation\fP Angle in degrees\&. When changing the label rotation, the label alignment might be adjusted too\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw::setLabelRotation()\fP, \fBsetAxisLabelAlignment()\fP .RE .PP .SS "void QwtPlot::setAxisMaxMajor (intaxisId, intmaxMajor)" Set the maximum number of major scale intervals for a specified axis .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fImaxMajor\fP maximum number of major steps .RE .PP \fBSee also:\fP .RS 4 \fBaxisMaxMajor()\fP .RE .PP .SS "void QwtPlot::setAxisMaxMinor (intaxisId, intmaxMinor)" Set the maximum number of minor scale intervals for a specified axis .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fImaxMinor\fP maximum number of minor steps .RE .PP \fBSee also:\fP .RS 4 \fBaxisMaxMinor()\fP .RE .PP .SS "void QwtPlot::setAxisScale (intaxisId, doublemin, doublemax, doublestepSize = \fC0\fP)" .PP Disable autoscaling and specify a fixed scale for a selected axis\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fImin\fP .br \fImax\fP minimum and maximum of the scale .br \fIstepSize\fP Major step size\&. If \fCstep == 0\fP, the step size is calculated automatically using the maxMajor setting\&. .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisMaxMajor()\fP, \fBsetAxisAutoScale()\fP .RE .PP .SS "void QwtPlot::setAxisScaleDiv (intaxisId, const \fBQwtScaleDiv\fP &scaleDiv)" .PP Disable autoscaling and specify a fixed scale for a selected axis\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIscaleDiv\fP Scale division .RE .PP \fBSee also:\fP .RS 4 \fBsetAxisScale()\fP, \fBsetAxisAutoScale()\fP .RE .PP .SS "void QwtPlot::setAxisScaleDraw (intaxisId, \fBQwtScaleDraw\fP *scaleDraw)" .PP Set a scale draw\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIscaleDraw\fP object responsible for drawing scales\&. .RE .PP By passing scaleDraw it is possible to extend \fBQwtScaleDraw\fP functionality and let it take place in \fBQwtPlot\fP\&. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object )\&. .PP \fBSee also:\fP .RS 4 \fBQwtScaleDraw\fP, \fBQwtScaleWidget\fP .RE .PP \fBWarning:\fP .RS 4 The attributes of scaleDraw will be overwritten by those of the previous \fBQwtScaleDraw\fP\&. .RE .PP .SS "void QwtPlot::setAxisScaleEngine (intaxisId, \fBQwtScaleEngine\fP *scaleEngine)" Change the scale engine for an axis .PP \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIscaleEngine\fP Scale engine .RE .PP \fBSee also:\fP .RS 4 \fBaxisScaleEngine()\fP .RE .PP .SS "void QwtPlot::setAxisTitle (intaxisId, const QString &title)" .PP Change the title of a specified axis\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fItitle\fP axis title .RE .PP .SS "void QwtPlot::setAxisTitle (intaxisId, const \fBQwtText\fP &title)" .PP Change the title of a specified axis\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fItitle\fP axis title .RE .PP .SS "void QwtPlot::setCanvasBackground (const QColor &c)" .PP Change the background of the plotting area\&. Sets c to QColorGroup::Background of all colorgroups of the palette of the canvas\&. Using \fBcanvas()\fP->setPalette() is a more powerful way to set these colors\&. .PP \fBParameters:\fP .RS 4 \fIc\fP new background color .RE .PP .SS "void QwtPlot::setCanvasLineWidth (intw)" .PP Change the border width of the plotting area Nothing else than \fBcanvas()\fP->setLineWidth(w), left for compatibility only\&. \fBParameters:\fP .RS 4 \fIw\fP new border width .RE .PP .SS "void QwtPlot::setMargin (intmargin)" Change the margin of the plot\&. The margin is the space around all components\&. .PP \fBParameters:\fP .RS 4 \fImargin\fP new margin .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotLayout::setMargin()\fP, \fBmargin()\fP, \fBplotLayout()\fP .RE .PP .SS "void QwtPlot::setTitle (const QString &title)" Change the plot's title .PP \fBParameters:\fP .RS 4 \fItitle\fP New title .RE .PP .SS "void QwtPlot::setTitle (const \fBQwtText\fP &title)" Change the plot's title .PP \fBParameters:\fP .RS 4 \fItitle\fP New title .RE .PP .SS "QSize QwtPlot::sizeHint () const\fC [virtual]\fP" Return sizeHint .PP \fBSee also:\fP .RS 4 \fBminimumSizeHint()\fP .RE .PP .SS "\fBQwtText\fP QwtPlot::title () const" \fBReturns:\fP .RS 4 the plot's title .RE .PP .SS "\fBQwtTextLabel\fP * QwtPlot::titleLabel ()" \fBReturns:\fP .RS 4 the plot's titel label\&. .RE .PP .SS "const \fBQwtTextLabel\fP * QwtPlot::titleLabel () const" \fBReturns:\fP .RS 4 the plot's titel label\&. .RE .PP .SS "int QwtPlot::transform (intaxisId, doublevalue) const" .PP Transform a value into a coordinate in the plotting region\&. \fBParameters:\fP .RS 4 \fIaxisId\fP axis index .br \fIvalue\fP value .RE .PP \fBReturns:\fP .RS 4 X or y coordinate in the plotting region corresponding to the value\&. .RE .PP .SS "void QwtPlot::updateLayout ()\fC [virtual]\fP" .PP Adjust plot content to its current size\&. \fBSee also:\fP .RS 4 \fBresizeEvent()\fP .RE .PP .SS "void QwtPlot::updateTabOrder ()\fC [protected]\fP, \fC [virtual]\fP" Update the focus tab order .PP The order is changed so that the canvas will be in front of the first legend item, or behind the last legend item - depending on the position of the legend\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtSimpleCompassRose.3������������������������������������������������������0000644�0001750�0001750�00000007673�12052741143�020341� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtSimpleCompassRose" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtSimpleCompassRose \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtCompassRose\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtSimpleCompassRose\fP (int \fBnumThorns\fP=8, int \fBnumThornLevels\fP=-1)" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *, const QPoint ¢er, int radius, double north, QPalette::ColorGroup=QPalette::Active) const " .br .ti -1c .RI "int \fBnumThornLevels\fP () const " .br .ti -1c .RI "int \fBnumThorns\fP () const " .br .ti -1c .RI "void \fBsetNumThornLevels\fP (int count)" .br .ti -1c .RI "void \fBsetNumThorns\fP (int count)" .br .ti -1c .RI "void \fBsetShrinkFactor\fP (double factor)" .br .ti -1c .RI "void \fBsetWidth\fP (double w)" .br .ti -1c .RI "double \fBshrinkFactor\fP () const " .br .ti -1c .RI "double \fBwidth\fP () const " .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static void \fBdrawRose\fP (QPainter *, const QPalette &, const QPoint ¢er, int radius, double origin, double \fBwidth\fP, int \fBnumThorns\fP, int \fBnumThornLevels\fP, double shrinkFactor)" .br .in -1c .SH "Detailed Description" .PP A simple rose for \fBQwtCompass\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtSimpleCompassRose::QwtSimpleCompassRose (intnumThorns = \fC8\fP, intnumThornLevels = \fC-1\fP)" Constructor .PP \fBParameters:\fP .RS 4 \fInumThorns\fP Number of thorns .br \fInumThornLevels\fP Number of thorn levels .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtSimpleCompassRose::draw (QPainter *painter, const QPoint ¢er, intradius, doublenorth, QPalette::ColorGroupcg = \fCQPalette::Active\fP) const\fC [virtual]\fP" Draw the rose .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center point .br \fIradius\fP Radius of the rose .br \fInorth\fP Position .br \fIcg\fP Color group .RE .PP .PP Implements \fBQwtCompassRose\fP\&. .SS "void QwtSimpleCompassRose::drawRose (QPainter *painter, const QPalette &palette, const QPoint ¢er, intradius, doublenorth, doublewidth, intnumThorns, intnumThornLevels, doubleshrinkFactor)\fC [static]\fP" Draw the rose .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIpalette\fP Palette .br \fIcenter\fP Center of the rose .br \fIradius\fP Radius of the rose .br \fInorth\fP Position pointing to north .br \fIwidth\fP Width of the rose .br \fInumThorns\fP Number of thorns .br \fInumThornLevels\fP Number of thorn levels .br \fIshrinkFactor\fP Factor to shrink the thorns with each level .RE .PP .SS "int QwtSimpleCompassRose::numThornLevels () const" \fBReturns:\fP .RS 4 Number of thorn levels .RE .PP \fBSee also:\fP .RS 4 \fBsetNumThorns()\fP, \fBsetNumThornLevels()\fP .RE .PP .SS "int QwtSimpleCompassRose::numThorns () const" \fBReturns:\fP .RS 4 Number of thorns .RE .PP \fBSee also:\fP .RS 4 \fBsetNumThorns()\fP, \fBsetNumThornLevels()\fP .RE .PP .SS "void QwtSimpleCompassRose::setNumThornLevels (intnumThornLevels)" Set the of thorns levels .PP \fBParameters:\fP .RS 4 \fInumThornLevels\fP Number of thorns levels .RE .PP \fBSee also:\fP .RS 4 \fBsetNumThorns()\fP, \fBnumThornLevels()\fP .RE .PP .SS "void QwtSimpleCompassRose::setNumThorns (intnumThorns)" Set the number of thorns on one level The number is aligned to a multiple of 4, with a minimum of 4 .PP \fBParameters:\fP .RS 4 \fInumThorns\fP Number of thorns .RE .PP \fBSee also:\fP .RS 4 \fBnumThorns()\fP, \fBsetNumThornLevels()\fP .RE .PP .SS "void QwtSimpleCompassRose::setWidth (doublewidth)" Set the width of the rose heads\&. Lower value make thinner heads\&. The range is limited from 0\&.03 to 0\&.4\&. .PP \fBParameters:\fP .RS 4 \fIwidth\fP Width .RE .PP .SS "double QwtSimpleCompassRose::width () const\fC [inline]\fP" \fBSee also:\fP .RS 4 \fBsetWidth()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtSlider.3�����������������������������������������������������������������0000644�0001750�0001750�00000023067�12052741143�016146� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtSlider" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtSlider \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractSlider\fP, and \fBQwtAbstractScale\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBBGSTYLE\fP { \fBBgTrough\fP = 0x1, \fBBgSlot\fP = 0x2, \fBBgBoth\fP = BgTrough | BgSlot }" .br .ti -1c .RI "enum \fBScalePos\fP { \fBNoScale\fP, \fBLeftScale\fP, \fBRightScale\fP, \fBTopScale\fP, \fBBottomScale\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtSlider\fP (QWidget *parent, Qt::Orientation=Qt::Horizontal, \fBScalePos\fP=NoScale, \fBBGSTYLE\fP \fBbgStyle\fP=BgTrough)" .br .ti -1c .RI "\fBBGSTYLE\fP \fBbgStyle\fP () const " .br .ti -1c .RI "int \fBborderWidth\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "const \fBQwtScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "\fBScalePos\fP \fBscalePosition\fP () const " .br .ti -1c .RI "void \fBsetBgStyle\fP (\fBBGSTYLE\fP)" .br .ti -1c .RI "void \fBsetBorderWidth\fP (int bw)" .br .ti -1c .RI "void \fBsetMargins\fP (int x, int y)" .br .ti -1c .RI "virtual void \fBsetOrientation\fP (Qt::Orientation)" .br .ti -1c .RI "void \fBsetScaleDraw\fP (\fBQwtScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetScalePosition\fP (\fBScalePos\fP s)" .br .ti -1c .RI "void \fBsetThumbLength\fP (int l)" .br .ti -1c .RI "void \fBsetThumbWidth\fP (int w)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "int \fBthumbLength\fP () const " .br .ti -1c .RI "int \fBthumbWidth\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdraw\fP (QPainter *p, const QRect &update_rect)" .br .ti -1c .RI "virtual void \fBdrawSlider\fP (QPainter *p, const QRect &r)" .br .ti -1c .RI "virtual void \fBdrawThumb\fP (QPainter *p, const QRect &, int pos)" .br .ti -1c .RI "virtual void \fBfontChange\fP (const QFont &oldFont)" .br .ti -1c .RI "virtual void \fBgetScrollMode\fP (const QPoint &p, int &scrollMode, int &direction)" .br .ti -1c .RI "virtual double \fBgetValue\fP (const QPoint &p)" .br .ti -1c .RI "void \fBlayoutSlider\fP (bool update=true)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .ti -1c .RI "virtual void \fBrangeChange\fP ()" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .ti -1c .RI "virtual void \fBscaleChange\fP ()" .br .ti -1c .RI "\fBQwtScaleDraw\fP * \fBscaleDraw\fP ()" .br .ti -1c .RI "virtual void \fBvalueChange\fP ()" .br .ti -1c .RI "int \fBxyPosition\fP (double v) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The Slider Widget\&. \fBQwtSlider\fP is a slider widget which operates on an interval of type double\&. \fBQwtSlider\fP supports different layouts as well as a scale\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtAbstractSlider\fP and \fBQwtAbstractScale\fP for the descriptions of the inherited members\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtSlider::BGSTYLE\fP" Background style\&. .PP \fBSee also:\fP .RS 4 \fBQwtSlider()\fP .RE .PP .SS "enum \fBQwtSlider::ScalePos\fP" Scale position\&. \fBQwtSlider\fP tries to enforce valid combinations of its orientation and scale position: .IP "\(bu" 2 Qt::Horizonal combines with NoScale, TopScale and BottomScale .IP "\(bu" 2 Qt::Vertical combines with NoScale, LeftScale and RightScale .PP .PP \fBSee also:\fP .RS 4 \fBQwtSlider()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtSlider::QwtSlider (QWidget *parent, Qt::Orientationorientation = \fCQt::Horizontal\fP, \fBScalePos\fPscalePos = \fCNoScale\fP, \fBBGSTYLE\fPbgStyle = \fCBgTrough\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIparent\fP parent widget .br \fIorientation\fP Orientation of the slider\&. Can be Qt::Horizontal or Qt::Vertical\&. Defaults to Qt::Horizontal\&. .br \fIscalePos\fP Position of the scale\&. Defaults to QwtSlider::NoScale\&. .br \fIbgStyle\fP Background style\&. QwtSlider::BgTrough draws the slider button in a trough, QwtSlider::BgSlot draws a slot underneath the button\&. An or-combination of both may also be used\&. The default is QwtSlider::BgTrough\&. .RE .PP \fBQwtSlider\fP enforces valid combinations of its orientation and scale position\&. If the combination is invalid, the scale position will be set to NoScale\&. Valid combinations are: .IP "\(bu" 2 Qt::Horizonal with NoScale, TopScale, or BottomScale; .IP "\(bu" 2 Qt::Vertical with NoScale, LeftScale, or RightScale\&. .PP .SH "Member Function Documentation" .PP .SS "\fBQwtSlider::BGSTYLE\fP QwtSlider::bgStyle () const" \fBReturns:\fP .RS 4 the background style\&. .RE .PP .SS "int QwtSlider::borderWidth () const" \fBReturns:\fP .RS 4 the border width\&. .RE .PP .SS "void QwtSlider::drawSlider (QPainter *painter, const QRect &r)\fC [protected]\fP, \fC [virtual]\fP" Draw the slider into the specified rectangle\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIr\fP Rectangle .RE .PP .SS "void QwtSlider::drawThumb (QPainter *painter, const QRect &sliderRect, intpos)\fC [protected]\fP, \fC [virtual]\fP" Draw the thumb at a position .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIsliderRect\fP Bounding rectangle of the slider .br \fIpos\fP Position of the slider thumb .RE .PP .SS "void QwtSlider::getScrollMode (const QPoint &p, int &scrollMode, int &direction)\fC [protected]\fP, \fC [virtual]\fP" .PP Determine scrolling mode and direction\&. \fBParameters:\fP .RS 4 \fIp\fP point .br \fIscrollMode\fP Scrolling mode .br \fIdirection\fP Direction .RE .PP .PP Implements \fBQwtAbstractSlider\fP\&. .SS "double QwtSlider::getValue (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Determine the value corresponding to a specified mouse location\&. .PP \fBParameters:\fP .RS 4 \fIpos\fP Mouse position .RE .PP .PP Implements \fBQwtAbstractSlider\fP\&. .SS "void QwtSlider::layoutSlider (boolupdate_geometry = \fCtrue\fP)\fC [protected]\fP" Recalculate the slider's geometry and layout based on the current rect and fonts\&. .PP \fBParameters:\fP .RS 4 \fIupdate_geometry\fP notify the layout system and call update to redraw the scale .RE .PP .SS "QSize QwtSlider::minimumSizeHint () const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBWarning:\fP .RS 4 The return value of \fBQwtSlider::minimumSizeHint()\fP depends on the font and the scale\&. .RE .PP .SS "void QwtSlider::paintEvent (QPaintEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Qt paint event .PP \fBParameters:\fP .RS 4 \fIevent\fP Paint event .RE .PP .SS "const \fBQwtScaleDraw\fP * QwtSlider::scaleDraw () const" \fBReturns:\fP .RS 4 the scale draw of the slider .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "\fBQwtScaleDraw\fP * QwtSlider::scaleDraw ()\fC [protected]\fP" \fBReturns:\fP .RS 4 the scale draw of the slider .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "void QwtSlider::setBgStyle (\fBBGSTYLE\fPst)" Set the background style\&. .SS "void QwtSlider::setBorderWidth (intbd)" .PP Change the slider's border width\&. \fBParameters:\fP .RS 4 \fIbd\fP border width .RE .PP .SS "void QwtSlider::setMargins (intxMargin, intyMargin)" .PP Set distances between the widget's border and internals\&. \fBParameters:\fP .RS 4 \fIxMargin\fP Horizontal margin .br \fIyMargin\fP Vertical margin .RE .PP .SS "void QwtSlider::setOrientation (Qt::Orientationo)\fC [virtual]\fP" .PP Set the orientation\&. \fBParameters:\fP .RS 4 \fIo\fP Orientation\&. Allowed values are Qt::Horizontal and Qt::Vertical\&. .RE .PP If the new orientation and the old scale position are an invalid combination, the scale position will be set to QwtSlider::NoScale\&. .PP \fBSee also:\fP .RS 4 \fBQwtAbstractSlider::orientation()\fP .RE .PP .PP Reimplemented from \fBQwtAbstractSlider\fP\&. .SS "void QwtSlider::setScaleDraw (\fBQwtScaleDraw\fP *scaleDraw)" .PP Set a scale draw\&. For changing the labels of the scales, it is necessary to derive from \fBQwtScaleDraw\fP and overload \fBQwtScaleDraw::label()\fP\&. .PP \fBParameters:\fP .RS 4 \fIscaleDraw\fP ScaleDraw object, that has to be created with new and will be deleted in ~QwtSlider or the next call of \fBsetScaleDraw()\fP\&. .RE .PP .SS "void QwtSlider::setScalePosition (\fBScalePos\fPs)" .PP Change the scale position (and slider orientation)\&. \fBParameters:\fP .RS 4 \fIs\fP Position of the scale\&. .RE .PP A valid combination of scale position and orientation is enforced: .IP "\(bu" 2 if the new scale position is Left or Right, the scale orientation will become Qt::Vertical; .IP "\(bu" 2 if the new scale position is Bottom or Top the scale orientation will become Qt::Horizontal; .IP "\(bu" 2 if the new scale position is QwtSlider::NoScale, the scale orientation will not change\&. .PP .SS "void QwtSlider::setThumbLength (intthumbLength)" .PP Set the slider's thumb length\&. \fBParameters:\fP .RS 4 \fIthumbLength\fP new length .RE .PP .SS "void QwtSlider::setThumbWidth (intw)" .PP Change the width of the thumb\&. \fBParameters:\fP .RS 4 \fIw\fP new width .RE .PP .SS "QSize QwtSlider::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 \fBQwtSlider::minimumSizeHint()\fP .RE .PP .SS "int QwtSlider::thumbLength () const" \fBReturns:\fP .RS 4 the thumb length\&. .RE .PP .SS "int QwtSlider::thumbWidth () const" \fBReturns:\fP .RS 4 the thumb width\&. .RE .PP .SS "int QwtSlider::xyPosition (doublevalue) const\fC [protected]\fP" Find the x/y position for a given value v .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtArrayData.3��������������������������������������������������������������0000644�0001750�0001750�00000006104�12052741137�016570� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtArrayData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtArrayData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtData\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtArrayData\fP (const QwtArray< double > &\fBx\fP, const QwtArray< double > &\fBy\fP)" .br .ti -1c .RI "\fBQwtArrayData\fP (const double *\fBx\fP, const double *\fBy\fP, size_t \fBsize\fP)" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual \fBQwtData\fP * \fBcopy\fP () const " .br .ti -1c .RI "\fBQwtArrayData\fP & \fBoperator=\fP (const \fBQwtArrayData\fP &)" .br .ti -1c .RI "virtual size_t \fBsize\fP () const " .br .ti -1c .RI "virtual double \fBx\fP (size_t i) const " .br .ti -1c .RI "const QwtArray< double > & \fBxData\fP () const " .br .ti -1c .RI "virtual double \fBy\fP (size_t i) const " .br .ti -1c .RI "const QwtArray< double > & \fByData\fP () const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Data class containing two QwtArray objects\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtArrayData::QwtArrayData (const QwtArray< double > &x, const QwtArray< double > &y)" Constructor .PP \fBParameters:\fP .RS 4 \fIx\fP Array of x values .br \fIy\fP Array of y values .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotCurve::setData()\fP .RE .PP .SS "QwtArrayData::QwtArrayData (const double *x, const double *y, size_tsize)" Constructor .PP \fBParameters:\fP .RS 4 \fIx\fP Array of x values .br \fIy\fP Array of y values .br \fIsize\fP Size of the x and y arrays .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotCurve::setData()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtArrayData::boundingRect () const\fC [virtual]\fP" Returns the bounding rectangle of the data\&. If there is no bounding rect, like for empty data the rectangle is invalid: QwtDoubleRect::isValid() == false .PP Reimplemented from \fBQwtData\fP\&. .SS "\fBQwtData\fP * QwtArrayData::copy () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Pointer to a copy (virtual copy constructor) .RE .PP .PP Implements \fBQwtData\fP\&. .SS "size_t QwtArrayData::size () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Size of the data set .RE .PP .PP Implements \fBQwtData\fP\&. .SS "double QwtArrayData::x (size_ti) const\fC [virtual]\fP" Return the x value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 x X value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SS "const QwtArray< double > & QwtArrayData::xData () const" \fBReturns:\fP .RS 4 Array of the x-values .RE .PP .SS "double QwtArrayData::y (size_ti) const\fC [virtual]\fP" Return the y value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 y Y value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SS "const QwtArray< double > & QwtArrayData::yData () const" \fBReturns:\fP .RS 4 Array of the y-values .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLog10ScaleEngine.3�������������������������������������������������������0000644�0001750�0001750�00000006076�12052741140�017702� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLog10ScaleEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLog10ScaleEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtScaleEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual void \fBautoScale\fP (int maxSteps, double &x1, double &x2, double &stepSize) const " .br .ti -1c .RI "virtual \fBQwtScaleDiv\fP \fBdivideScale\fP (double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0\&.0) const " .br .ti -1c .RI "virtual \fBQwtScaleTransformation\fP * \fBtransformation\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtDoubleInterval\fP \fBlog10\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "\fBQwtDoubleInterval\fP \fBpow10\fP (const \fBQwtDoubleInterval\fP &) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A scale engine for logarithmic (base 10) scales\&. The step size is measured in \fIdecades\fP and the major step size will be adjusted to fit the pattern $\left\{ 1,2,3,5\right\} \cdot 10^{n}$, where n is a natural number including zero\&. .PP \fBWarning:\fP .RS 4 the step size as well as the margins are measured in \fIdecades\fP\&. .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtLog10ScaleEngine::autoScale (intmaxNumSteps, double &x1, double &x2, double &stepSize) const\fC [virtual]\fP" Align and divide an interval .PP \fBParameters:\fP .RS 4 \fImaxNumSteps\fP Max\&. number of steps .br \fIx1\fP First limit of the interval (In/Out) .br \fIx2\fP Second limit of the interval (In/Out) .br \fIstepSize\fP Step size (Out) .RE .PP \fBSee also:\fP .RS 4 \fBQwtScaleEngine::setAttribute()\fP .RE .PP .PP Implements \fBQwtScaleEngine\fP\&. .SS "\fBQwtScaleDiv\fP QwtLog10ScaleEngine::divideScale (doublex1, doublex2, intmaxMajSteps, intmaxMinSteps, doublestepSize = \fC0\&.0\fP) const\fC [virtual]\fP" .PP Calculate a scale division\&. \fBParameters:\fP .RS 4 \fIx1\fP First interval limit .br \fIx2\fP Second interval limit .br \fImaxMajSteps\fP Maximum for the number of major steps .br \fImaxMinSteps\fP Maximum number of minor steps .br \fIstepSize\fP Step size\&. If stepSize == 0, the scaleEngine calculates one\&. .RE .PP \fBSee also:\fP .RS 4 QwtScaleEngine::stepSize(), QwtLog10ScaleEngine::subDivide() .RE .PP .PP Implements \fBQwtScaleEngine\fP\&. .SS "\fBQwtDoubleInterval\fP QwtLog10ScaleEngine::log10 (const \fBQwtDoubleInterval\fP &interval) const\fC [protected]\fP" Return the interval [log10(interval\&.minValue(), log10(interval\&.maxValue] .SS "\fBQwtDoubleInterval\fP QwtLog10ScaleEngine::pow10 (const \fBQwtDoubleInterval\fP &interval) const\fC [protected]\fP" Return the interval [pow10(interval\&.minValue(), pow10(interval\&.maxValue] .SS "\fBQwtScaleTransformation\fP * QwtLog10ScaleEngine::transformation () const\fC [virtual]\fP" Return a transformation, for logarithmic (base 10) scales .PP Implements \fBQwtScaleEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtColorMap.3���������������������������������������������������������������0000644�0001750�0001750�00000007517�12052741137�016445� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtColorMap" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtColorMap \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtAlphaColorMap\fP, and \fBQwtLinearColorMap\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBFormat\fP { \fBRGB\fP, \fBIndexed\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtColorMap\fP (\fBFormat\fP=QwtColorMap::RGB)" .br .ti -1c .RI "virtual \fB~QwtColorMap\fP ()" .br .ti -1c .RI "QColor \fBcolor\fP (const \fBQwtDoubleInterval\fP &, double value) const " .br .ti -1c .RI "virtual unsigned char \fBcolorIndex\fP (const \fBQwtDoubleInterval\fP &interval, double value) const =0" .br .ti -1c .RI "virtual QVector< QRgb > \fBcolorTable\fP (const \fBQwtDoubleInterval\fP &) const " .br .ti -1c .RI "virtual \fBQwtColorMap\fP * \fBcopy\fP () const =0" .br .ti -1c .RI "\fBFormat\fP \fBformat\fP () const " .br .ti -1c .RI "virtual QRgb \fBrgb\fP (const \fBQwtDoubleInterval\fP &interval, double value) const =0" .br .in -1c .SH "Detailed Description" .PP \fBQwtColorMap\fP is used to map values into colors\&. For displaying 3D data on a 2D plane the 3rd dimension is often displayed using colors, like f\&.e in a spectrogram\&. .PP Each color map is optimized to return colors for only one of the following image formats: .PP .IP "\(bu" 2 QImage::Format_Indexed8 .br .IP "\(bu" 2 QImage::Format_ARGB32 .br .PP .PP \fBSee also:\fP .RS 4 \fBQwtPlotSpectrogram\fP, \fBQwtScaleWidget\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtColorMap::Format\fP" .IP "\(bu" 2 RGB .br The map is intended to map into QRgb values\&. .IP "\(bu" 2 Indexed .br The map is intended to map into 8 bit values, that are indices into the color table\&. .PP .PP \fBSee also:\fP .RS 4 \fBrgb()\fP, \fBcolorIndex()\fP, \fBcolorTable()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QColor QwtColorMap::color (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [inline]\fP" Map a value into a color .PP \fBParameters:\fP .RS 4 \fIinterval\fP Valid interval for values .br \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 Color corresponding to value .RE .PP \fBWarning:\fP .RS 4 This method is slow for Indexed color maps\&. If it is necessary to map many values, its better to get the color table once and find the color using \fBcolorIndex()\fP\&. .RE .PP .SS "virtual unsigned char QwtColorMap::colorIndex (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [pure virtual]\fP" Map a value of a given interval into a color index .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for the values .br \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 color index, corresponding to value .RE .PP .PP Implemented in \fBQwtLinearColorMap\fP\&. .SS "QwtColorTable QwtColorMap::colorTable (const \fBQwtDoubleInterval\fP &interval) const\fC [virtual]\fP" Build and return a color map of 256 colors .PP The color table is needed for rendering indexed images in combination with using \fBcolorIndex()\fP\&. .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for the values .RE .PP \fBReturns:\fP .RS 4 A color table, that can be used for a QImage .RE .PP .SS "\fBQwtColorMap::Format\fP QwtColorMap::format () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Intended format of the color map .RE .PP \fBSee also:\fP .RS 4 \fBFormat\fP .RE .PP .SS "virtual QRgb QwtColorMap::rgb (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [pure virtual]\fP" Map a value of a given interval into a rgb value\&. .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for the values .br \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 rgb value, corresponding to value .RE .PP .PP Implemented in \fBQwtAlphaColorMap\fP, and \fBQwtLinearColorMap\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPolygonFData.3�����������������������������������������������������������0000644�0001750�0001750�00000004124�12052741142�017243� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPolygonFData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPolygonFData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtData\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPolygonFData\fP (const QPolygonF &)" .br .ti -1c .RI "virtual \fBQwtData\fP * \fBcopy\fP () const " .br .ti -1c .RI "const QPolygonF & \fBdata\fP () const " .br .ti -1c .RI "\fBQwtPolygonFData\fP & \fBoperator=\fP (const \fBQwtPolygonFData\fP &)" .br .ti -1c .RI "virtual size_t \fBsize\fP () const " .br .ti -1c .RI "virtual double \fBx\fP (size_t i) const " .br .ti -1c .RI "virtual double \fBy\fP (size_t i) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Data class containing a single QwtArray object\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtPolygonFData::QwtPolygonFData (const QPolygonF &polygon)" Constructor .PP \fBParameters:\fP .RS 4 \fIpolygon\fP Polygon data .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlotCurve::setData()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "\fBQwtData\fP * QwtPolygonFData::copy () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Pointer to a copy (virtual copy constructor) .RE .PP .PP Implements \fBQwtData\fP\&. .SS "const QPolygonF & QwtPolygonFData::data () const" \fBReturns:\fP .RS 4 Point array .RE .PP .SS "size_t QwtPolygonFData::size () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Size of the data set .RE .PP .PP Implements \fBQwtData\fP\&. .SS "double QwtPolygonFData::x (size_ti) const\fC [virtual]\fP" Return the x value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 x X value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SS "double QwtPolygonFData::y (size_ti) const\fC [virtual]\fP" Return the y value of data point i .PP \fBParameters:\fP .RS 4 \fIi\fP Index .RE .PP \fBReturns:\fP .RS 4 y Y value of data point i .RE .PP .PP Implements \fBQwtData\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDialNeedle.3�������������������������������������������������������������0000644�0001750�0001750�00000004344�12052741137�016712� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDialNeedle" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDialNeedle \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtCompassMagnetNeedle\fP, \fBQwtCompassWindArrow\fP, and \fBQwtDialSimpleNeedle\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDialNeedle\fP ()" .br .ti -1c .RI "virtual \fB~QwtDialNeedle\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup cg=QPalette::Active) const =0" .br .ti -1c .RI "const QPalette & \fBpalette\fP () const " .br .ti -1c .RI "virtual void \fBsetPalette\fP (const QPalette &)" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static void \fBdrawKnob\fP (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken)" .br .in -1c .SH "Detailed Description" .PP Base class for needles that can be used in a \fBQwtDial\fP\&. \fBQwtDialNeedle\fP is a pointer that indicates a value by pointing to a specific direction\&. .PP Qwt is missing a set of good looking needles\&. Contributions are very welcome\&. .PP \fBSee also:\fP .RS 4 \fBQwtDial\fP, \fBQwtCompass\fP .RE .PP .SH "Member Function Documentation" .PP .SS "virtual void QwtDialNeedle::draw (QPainter *painter, const QPoint ¢er, intlength, doubledirection, QPalette::ColorGroupcg = \fCQPalette::Active\fP) const\fC [pure virtual]\fP" Draw the needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial, start position for the needle .br \fIlength\fP Length of the needle .br \fIdirection\fP Direction of the needle, in degrees counter clockwise .br \fIcg\fP Color group, used for painting .RE .PP .PP Implemented in \fBQwtCompassWindArrow\fP, \fBQwtCompassMagnetNeedle\fP, and \fBQwtDialSimpleNeedle\fP\&. .SS "const QPalette & QwtDialNeedle::palette () const" \fBReturns:\fP .RS 4 the palette of the needle\&. .RE .PP .SS "void QwtDialNeedle::setPalette (const QPalette &palette)\fC [virtual]\fP" Sets the palette for the needle\&. .PP \fBParameters:\fP .RS 4 \fIpalette\fP New Palette .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtLinearScaleEngine.3������������������������������������������������������0000644�0001750�0001750�00000005413�12052741140�020224� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtLinearScaleEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtLinearScaleEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtScaleEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual void \fBautoScale\fP (int maxSteps, double &x1, double &x2, double &stepSize) const " .br .ti -1c .RI "virtual \fBQwtScaleDiv\fP \fBdivideScale\fP (double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0\&.0) const " .br .ti -1c .RI "virtual \fBQwtScaleTransformation\fP * \fBtransformation\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtDoubleInterval\fP \fBalign\fP (const \fBQwtDoubleInterval\fP &, double stepSize) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A scale engine for linear scales\&. The step size will fit into the pattern $\left\{ 1,2,5\right\} \cdot 10^{n}$, where n is an integer\&. .SH "Member Function Documentation" .PP .SS "\fBQwtDoubleInterval\fP QwtLinearScaleEngine::align (const \fBQwtDoubleInterval\fP &interval, doublestepSize) const\fC [protected]\fP" .PP Align an interval to a step size\&. The limits of an interval are aligned that both are integer multiples of the step size\&. .PP \fBParameters:\fP .RS 4 \fIinterval\fP Interval .br \fIstepSize\fP Step size .RE .PP \fBReturns:\fP .RS 4 Aligned interval .RE .PP .SS "void QwtLinearScaleEngine::autoScale (intmaxNumSteps, double &x1, double &x2, double &stepSize) const\fC [virtual]\fP" Align and divide an interval .PP \fBParameters:\fP .RS 4 \fImaxNumSteps\fP Max\&. number of steps .br \fIx1\fP First limit of the interval (In/Out) .br \fIx2\fP Second limit of the interval (In/Out) .br \fIstepSize\fP Step size (Out) .RE .PP \fBSee also:\fP .RS 4 \fBsetAttribute()\fP .RE .PP .PP Implements \fBQwtScaleEngine\fP\&. .SS "\fBQwtScaleDiv\fP QwtLinearScaleEngine::divideScale (doublex1, doublex2, intmaxMajSteps, intmaxMinSteps, doublestepSize = \fC0\&.0\fP) const\fC [virtual]\fP" .PP Calculate a scale division\&. \fBParameters:\fP .RS 4 \fIx1\fP First interval limit .br \fIx2\fP Second interval limit .br \fImaxMajSteps\fP Maximum for the number of major steps .br \fImaxMinSteps\fP Maximum number of minor steps .br \fIstepSize\fP Step size\&. If stepSize == 0, the scaleEngine calculates one\&. .RE .PP \fBSee also:\fP .RS 4 QwtScaleEngine::stepSize(), QwtScaleEngine::subDivide() .RE .PP .PP Implements \fBQwtScaleEngine\fP\&. .SS "\fBQwtScaleTransformation\fP * QwtLinearScaleEngine::transformation () const\fC [virtual]\fP" Return a transformation, for linear scales .PP Implements \fBQwtScaleEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPickerDragPointMachine.3�������������������������������������������������0000644�0001750�0001750�00000001456�12052741141�021232� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPickerDragPointMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerDragPointMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPickerMachine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A state machine for point selections\&. Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection, releasing QwtEventPattern::MouseSelect1 or a second press of QwtEventPattern::KeySelect1 terminates it\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtAbstractScaleDraw.3������������������������������������������������������0000644�0001750�0001750�00000022753�12052741136�020260� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtAbstractScaleDraw" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtAbstractScaleDraw \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtRoundScaleDraw\fP, and \fBQwtScaleDraw\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBScaleComponent\fP { \fBBackbone\fP = 1, \fBTicks\fP = 2, \fBLabels\fP = 4 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtAbstractScaleDraw\fP ()" .br .ti -1c .RI "\fBQwtAbstractScaleDraw\fP (const \fBQwtAbstractScaleDraw\fP &)" .br .ti -1c .RI "virtual \fB~QwtAbstractScaleDraw\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *, const QPalette &) const " .br .ti -1c .RI "void \fBenableComponent\fP (\fBScaleComponent\fP, bool enable=true)" .br .ti -1c .RI "virtual int \fBextent\fP (const QPen &, const QFont &) const =0" .br .ti -1c .RI "bool \fBhasComponent\fP (\fBScaleComponent\fP) const " .br .ti -1c .RI "virtual \fBQwtText\fP \fBlabel\fP (double) const " .br .ti -1c .RI "int \fBmajTickLength\fP () const " .br .ti -1c .RI "const \fBQwtScaleMap\fP & \fBmap\fP () const " .br .ti -1c .RI "int \fBminimumExtent\fP () const " .br .ti -1c .RI "\fBQwtAbstractScaleDraw\fP & \fBoperator=\fP (const \fBQwtAbstractScaleDraw\fP &)" .br .ti -1c .RI "const \fBQwtScaleDiv\fP & \fBscaleDiv\fP () const " .br .ti -1c .RI "\fBQwtScaleMap\fP & \fBscaleMap\fP ()" .br .ti -1c .RI "void \fBsetMinimumExtent\fP (int)" .br .ti -1c .RI "void \fBsetScaleDiv\fP (const \fBQwtScaleDiv\fP &s)" .br .ti -1c .RI "void \fBsetSpacing\fP (int margin)" .br .ti -1c .RI "void \fBsetTickLength\fP (\fBQwtScaleDiv::TickType\fP, int length)" .br .ti -1c .RI "void \fBsetTransformation\fP (\fBQwtScaleTransformation\fP *)" .br .ti -1c .RI "int \fBspacing\fP () const " .br .ti -1c .RI "int \fBtickLength\fP (\fBQwtScaleDiv::TickType\fP) const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawBackbone\fP (QPainter *painter) const =0" .br .ti -1c .RI "virtual void \fBdrawLabel\fP (QPainter *painter, double value) const =0" .br .ti -1c .RI "virtual void \fBdrawTick\fP (QPainter *painter, double value, int len) const =0" .br .ti -1c .RI "void \fBinvalidateCache\fP ()" .br .ti -1c .RI "const \fBQwtText\fP & \fBtickLabel\fP (const QFont &, double value) const " .br .in -1c .SH "Detailed Description" .PP A abstract base class for drawing scales\&. \fBQwtAbstractScaleDraw\fP can be used to draw linear or logarithmic scales\&. .PP After a scale division has been specified as a \fBQwtScaleDiv\fP object using \fBQwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s)\fP, the scale can be drawn with the \fBQwtAbstractScaleDraw::draw()\fP member\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtAbstractScaleDraw::ScaleComponent\fP" Components of a scale .PP .IP "\(bu" 2 Backbone .IP "\(bu" 2 Ticks .IP "\(bu" 2 Labels .PP .PP \fBSee also:\fP .RS 4 \fBenableComponent()\fP, \fBhasComponent\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtAbstractScaleDraw::QwtAbstractScaleDraw ()" .PP Constructor\&. The range of the scale is initialized to [0, 100], The spacing (distance between ticks and labels) is set to 4, the tick lengths are set to 4,6 and 8 pixels .SH "Member Function Documentation" .PP .SS "void QwtAbstractScaleDraw::draw (QPainter *painter, const QPalette &palette) const\fC [virtual]\fP" .PP Draw the scale\&. \fBParameters:\fP .RS 4 \fIpainter\fP The painter .br \fIpalette\fP Palette, text color is used for the labels, foreground color for ticks and backbone .RE .PP .SS "virtual void QwtAbstractScaleDraw::drawBackbone (QPainter *painter) const\fC [protected]\fP, \fC [pure virtual]\fP" Draws the baseline of the scale .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick()\fP, \fBdrawLabel()\fP .RE .PP .PP Implemented in \fBQwtScaleDraw\fP, and \fBQwtRoundScaleDraw\fP\&. .SS "virtual void QwtAbstractScaleDraw::drawLabel (QPainter *painter, doublevalue) const\fC [protected]\fP, \fC [pure virtual]\fP" Draws the label for a major scale tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick\fP, \fBdrawBackbone\fP .RE .PP .PP Implemented in \fBQwtScaleDraw\fP, and \fBQwtRoundScaleDraw\fP\&. .SS "virtual void QwtAbstractScaleDraw::drawTick (QPainter *painter, doublevalue, intlen) const\fC [protected]\fP, \fC [pure virtual]\fP" Draw a tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value of the tick .br \fIlen\fP Lenght of the tick .RE .PP \fBSee also:\fP .RS 4 \fBdrawBackbone()\fP, \fBdrawLabel()\fP .RE .PP .PP Implemented in \fBQwtScaleDraw\fP, and \fBQwtRoundScaleDraw\fP\&. .SS "void QwtAbstractScaleDraw::enableComponent (\fBScaleComponent\fPcomponent, boolenable = \fCtrue\fP)" En/Disable a component of the scale .PP \fBParameters:\fP .RS 4 \fIcomponent\fP Scale component .br \fIenable\fP On/Off .RE .PP \fBSee also:\fP .RS 4 \fBhasComponent()\fP .RE .PP .SS "virtual int QwtAbstractScaleDraw::extent (const QPen &, const QFont &) const\fC [pure virtual]\fP" Calculate the extent .PP The extent is the distcance from the baseline to the outermost pixel of the scale draw in opposite to its orientation\&. It is at least \fBminimumExtent()\fP pixels\&. .PP \fBSee also:\fP .RS 4 \fBsetMinimumExtent()\fP, \fBminimumExtent()\fP .RE .PP .PP Implemented in \fBQwtRoundScaleDraw\fP, and \fBQwtScaleDraw\fP\&. .SS "bool QwtAbstractScaleDraw::hasComponent (\fBScaleComponent\fPcomponent) const" Check if a component is enabled .PP \fBSee also:\fP .RS 4 \fBenableComponent()\fP .RE .PP .SS "void QwtAbstractScaleDraw::invalidateCache ()\fC [protected]\fP" Invalidate the cache used by \fBQwtAbstractScaleDraw::tickLabel\fP .PP The cache is invalidated, when a new \fBQwtScaleDiv\fP is set\&. If the labels need to be changed\&. while the same \fBQwtScaleDiv\fP is set, \fBQwtAbstractScaleDraw::invalidateCache\fP needs to be called manually\&. .SS "\fBQwtText\fP QwtAbstractScaleDraw::label (doublevalue) const\fC [virtual]\fP" .PP Convert a value into its representing label\&. The value is converted to a plain text using QLocale::system()\&.toString(value)\&. This method is often overloaded by applications to have individual labels\&. .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 Label string\&. .RE .PP .PP Reimplemented in \fBQwtDialScaleDraw\fP\&. .SS "int QwtAbstractScaleDraw::majTickLength () const" The same as QwtAbstractScaleDraw::tickLength(QwtScaleDiv::MajorTick)\&. .SS "const \fBQwtScaleMap\fP & QwtAbstractScaleDraw::map () const" \fBReturns:\fP .RS 4 Map how to translate between scale and pixel values .RE .PP .SS "int QwtAbstractScaleDraw::minimumExtent () const" Get the minimum extent .PP \fBSee also:\fP .RS 4 \fBextent()\fP, \fBsetMinimumExtent()\fP .RE .PP .SS "const \fBQwtScaleDiv\fP & QwtAbstractScaleDraw::scaleDiv () const" \fBReturns:\fP .RS 4 scale division .RE .PP .SS "\fBQwtScaleMap\fP & QwtAbstractScaleDraw::scaleMap ()" \fBReturns:\fP .RS 4 Map how to translate between scale and pixel values .RE .PP .SS "void QwtAbstractScaleDraw::setMinimumExtent (intminExtent)" .PP Set a minimum for the extent\&. The extent is calculated from the coomponents of the scale draw\&. In situations, where the labels are changing and the layout depends on the extent (f\&.e scrolling a scale), setting an upper limit as minimum extent will avoid jumps of the layout\&. .PP \fBParameters:\fP .RS 4 \fIminExtent\fP Minimum extent .RE .PP \fBSee also:\fP .RS 4 \fBextent()\fP, \fBminimumExtent()\fP .RE .PP .SS "void QwtAbstractScaleDraw::setScaleDiv (const \fBQwtScaleDiv\fP &sd)" Change the scale division .PP \fBParameters:\fP .RS 4 \fIsd\fP New scale division .RE .PP .SS "void QwtAbstractScaleDraw::setSpacing (intspacing)" .PP Set the spacing between tick and labels\&. The spacing is the distance between ticks and labels\&. The default spacing is 4 pixels\&. .PP \fBParameters:\fP .RS 4 \fIspacing\fP Spacing .RE .PP \fBSee also:\fP .RS 4 \fBspacing()\fP .RE .PP .SS "void QwtAbstractScaleDraw::setTickLength (\fBQwtScaleDiv::TickType\fPtickType, intlength)" Set the length of the ticks .PP \fBParameters:\fP .RS 4 \fItickType\fP Tick type .br \fIlength\fP New length .RE .PP \fBWarning:\fP .RS 4 the length is limited to [0\&.\&.1000] .RE .PP .SS "void QwtAbstractScaleDraw::setTransformation (\fBQwtScaleTransformation\fP *transformation)" Change the transformation of the scale .PP \fBParameters:\fP .RS 4 \fItransformation\fP New scale transformation .RE .PP .SS "int QwtAbstractScaleDraw::spacing () const" .PP Get the spacing\&. The spacing is the distance between ticks and labels\&. The default spacing is 4 pixels\&. .PP \fBSee also:\fP .RS 4 \fBsetSpacing()\fP .RE .PP .SS "const \fBQwtText\fP & QwtAbstractScaleDraw::tickLabel (const QFont &font, doublevalue) const\fC [protected]\fP" .PP Convert a value into its representing label and cache it\&. The conversion between value and label is called very often in the layout and painting code\&. Unfortunately the calculation of the label sizes might be slow (really slow for rich text in Qt4), so it's necessary to cache the labels\&. .PP \fBParameters:\fP .RS 4 \fIfont\fP Font .br \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 Tick label .RE .PP .SS "int QwtAbstractScaleDraw::tickLength (\fBQwtScaleDiv::TickType\fPtickType) const" Return the length of the ticks .PP \fBSee also:\fP .RS 4 \fBsetTickLength()\fP, \fBmajTickLength()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������qwt5-5.2.3/doc/man/man3/QwtPickerClickPointMachine.3������������������������������������������������0000644�0001750�0001750�00000001465�12052741140�021401� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPickerClickPointMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerClickPointMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPickerMachine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A state machine for point selections\&. Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 selects a point\&. .PP \fBSee also:\fP .RS 4 \fBQwtEventPattern::MousePatternCode\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/curvescreenshots.3����������������������������������������������������������0000644�0001750�0001750�00000000245�12052741136�017630� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "curvescreenshots" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME curvescreenshots \- Curve Plots .PP .PP .PP .PP �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtDial.3�������������������������������������������������������������������0000644�0001750�0001750�00000044235�12052741137�015600� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtDial" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtDial \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractSlider\fP\&. .PP Inherited by \fBQwtAnalogClock\fP, and \fBQwtCompass\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBDirection\fP { \fBClockwise\fP, \fBCounterClockwise\fP }" .br .ti -1c .RI "enum \fBMode\fP { \fBRotateNeedle\fP, \fBRotateScale\fP }" .br .ti -1c .RI "enum \fBScaleOptions\fP { \fBScaleBackbone\fP = 1, \fBScaleTicks\fP = 2, \fBScaleLabel\fP = 4 }" .br .ti -1c .RI "enum \fBShadow\fP { \fBPlain\fP = QFrame::Plain, \fBRaised\fP = QFrame::Raised, \fBSunken\fP = QFrame::Sunken }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtDial\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtDial\fP ()" .br .ti -1c .RI "QRect \fBboundingRect\fP () const " .br .ti -1c .RI "QRect \fBcontentsRect\fP () const " .br .ti -1c .RI "\fBDirection\fP \fBdirection\fP () const " .br .ti -1c .RI "\fBShadow\fP \fBframeShadow\fP () const " .br .ti -1c .RI "bool \fBhasVisibleBackground\fP () const " .br .ti -1c .RI "int \fBlineWidth\fP () const " .br .ti -1c .RI "double \fBmaxScaleArc\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "double \fBminScaleArc\fP () const " .br .ti -1c .RI "\fBMode\fP \fBmode\fP () const " .br .ti -1c .RI "const \fBQwtDialNeedle\fP * \fBneedle\fP () const " .br .ti -1c .RI "\fBQwtDialNeedle\fP * \fBneedle\fP ()" .br .ti -1c .RI "double \fBorigin\fP () const " .br .ti -1c .RI "virtual QRect \fBscaleContentsRect\fP () const " .br .ti -1c .RI "\fBQwtDialScaleDraw\fP * \fBscaleDraw\fP ()" .br .ti -1c .RI "const \fBQwtDialScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "void \fBsetDirection\fP (\fBDirection\fP)" .br .ti -1c .RI "void \fBsetFrameShadow\fP (\fBShadow\fP)" .br .ti -1c .RI "void \fBsetLineWidth\fP (int)" .br .ti -1c .RI "void \fBsetMode\fP (\fBMode\fP)" .br .ti -1c .RI "virtual void \fBsetNeedle\fP (\fBQwtDialNeedle\fP *)" .br .ti -1c .RI "virtual void \fBsetOrigin\fP (double)" .br .ti -1c .RI "virtual void \fBsetScale\fP (int maxMajIntv, int maxMinIntv, double \fBstep\fP=0\&.0)" .br .ti -1c .RI "void \fBsetScaleArc\fP (double min, double max)" .br .ti -1c .RI "virtual void \fBsetScaleDraw\fP (\fBQwtDialScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetScaleOptions\fP (int)" .br .ti -1c .RI "void \fBsetScaleTicks\fP (int minLen, int medLen, int majLen, int penWidth=1)" .br .ti -1c .RI "virtual void \fBsetWrapping\fP (bool)" .br .ti -1c .RI "void \fBshowBackground\fP (bool)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "bool \fBwrapping\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawContents\fP (QPainter *) const " .br .ti -1c .RI "virtual void \fBdrawFocusIndicator\fP (QPainter *) const " .br .ti -1c .RI "virtual void \fBdrawFrame\fP (QPainter *p)" .br .ti -1c .RI "virtual void \fBdrawNeedle\fP (QPainter *, const QPoint &, int radius, double \fBdirection\fP, QPalette::ColorGroup) const " .br .ti -1c .RI "virtual void \fBdrawScale\fP (QPainter *, const QPoint ¢er, int radius, double \fBorigin\fP, double arcMin, double arcMax) const " .br .ti -1c .RI "virtual void \fBdrawScaleContents\fP (QPainter *painter, const QPoint ¢er, int radius) const " .br .ti -1c .RI "virtual void \fBgetScrollMode\fP (const QPoint &, int &scrollMode, int &\fBdirection\fP)" .br .ti -1c .RI "virtual double \fBgetValue\fP (const QPoint &)" .br .ti -1c .RI "virtual void \fBkeyPressEvent\fP (QKeyEvent *)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *)" .br .ti -1c .RI "virtual void \fBrangeChange\fP ()" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *)" .br .ti -1c .RI "virtual \fBQwtText\fP \fBscaleLabel\fP (double) const " .br .ti -1c .RI "virtual void \fBupdateMask\fP ()" .br .ti -1c .RI "void \fBupdateScale\fP ()" .br .ti -1c .RI "virtual void \fBvalueChange\fP ()" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "class \fBQwtDialScaleDraw\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP \fBQwtDial\fP class provides a rounded range control\&. \fBQwtDial\fP is intended as base class for dial widgets like speedometers, compass widgets, clocks \&.\&.\&. .PP .PP A dial contains a scale and a needle indicating the current value of the dial\&. Depending on Mode one of them is fixed and the other is rotating\&. If not \fBisReadOnly()\fP the dial can be rotated by dragging the mouse or using keyboard inputs (see \fBkeyPressEvent()\fP)\&. A dial might be wrapping, what means a rotation below/above one limit continues on the other limit (f\&.e compass)\&. The scale might cover any arc of the dial, its values are related to the \fBorigin()\fP of the dial\&. .PP Qwt is missing a set of good looking needles (\fBQwtDialNeedle\fP)\&. Contributions are very welcome\&. .PP \fBSee also:\fP .RS 4 \fBQwtCompass\fP, \fBQwtAnalogClock\fP, \fBQwtDialNeedle\fP .RE .PP \fBNote:\fP .RS 4 The examples/dials example shows different types of dials\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtDial::Direction\fP" Direction of the dial .SS "enum \fBQwtDial::Mode\fP" In case of RotateNeedle the needle is rotating, in case of RotateScale, the needle points to \fBorigin()\fP and the scale is rotating\&. .SS "enum \fBQwtDial::Shadow\fP" .PP Frame shadow\&. Unfortunately it is not possible to use QFrame::Shadow as a property of a widget that is not derived from QFrame\&. The following enum is made for the designer only\&. It is safe to use QFrame::Shadow instead\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtDial::QwtDial (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" .PP Constructor\&. \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP Create a dial widget with no scale and no needle\&. The default origin is 90\&.0 with no valid value\&. It accepts mouse and keyboard inputs and has no step size\&. The default mode is QwtDial::RotateNeedle\&. .SH "Member Function Documentation" .PP .SS "QRect QwtDial::boundingRect () const" \fBReturns:\fP .RS 4 bounding rect of the dial including the frame .RE .PP \fBSee also:\fP .RS 4 \fBsetLineWidth()\fP, \fBscaleContentsRect()\fP, \fBcontentsRect()\fP .RE .PP .SS "QRect QwtDial::contentsRect () const" \fBReturns:\fP .RS 4 bounding rect of the circle inside the frame .RE .PP \fBSee also:\fP .RS 4 \fBsetLineWidth()\fP, \fBscaleContentsRect()\fP, \fBboundingRect()\fP .RE .PP .SS "\fBQwtDial::Direction\fP QwtDial::direction () const" \fBReturns:\fP .RS 4 Direction of the dial .RE .PP The default direction of a dial is QwtDial::Clockwise .PP \fBSee also:\fP .RS 4 \fBsetDirection()\fP .RE .PP .SS "void QwtDial::drawContents (QPainter *painter) const\fC [protected]\fP, \fC [virtual]\fP" .PP Draw the contents inside the frame\&. QColorGroup::Background is the background color outside of the frame\&. QColorGroup::Base is the background color inside the frame\&. QColorGroup::Foreground is the background color inside the scale\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBboundingRect()\fP, \fBcontentsRect()\fP, \fBscaleContentsRect()\fP, QWidget::setPalette() .RE .PP .SS "void QwtDial::drawFocusIndicator (QPainter *painter) const\fC [protected]\fP, \fC [virtual]\fP" Draw a dotted round circle, if !isReadOnly() .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP .SS "void QwtDial::drawFrame (QPainter *painter)\fC [protected]\fP, \fC [virtual]\fP" Draw the frame around the dial .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBlineWidth()\fP, \fBframeShadow()\fP .RE .PP .SS "void QwtDial::drawNeedle (QPainter *painter, const QPoint ¢er, intradius, doubledirection, QPalette::ColorGroupcg) const\fC [protected]\fP, \fC [virtual]\fP" Draw the needle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial .br \fIradius\fP Length for the needle .br \fIdirection\fP Direction of the needle in degrees, counter clockwise .br \fIcg\fP ColorGroup .RE .PP .PP Reimplemented in \fBQwtAnalogClock\fP\&. .SS "void QwtDial::drawScale (QPainter *painter, const QPoint ¢er, intradius, doubleorigin, doubleminArc, doublemaxArc) const\fC [protected]\fP, \fC [virtual]\fP" Draw the scale .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the dial .br \fIradius\fP Radius of the scale .br \fIorigin\fP Origin of the scale .br \fIminArc\fP Minimum of the arc .br \fImaxArc\fP Minimum of the arc .RE .PP \fBSee also:\fP .RS 4 QwtAbstractScaleDraw::setAngleRange() .RE .PP .SS "void QwtDial::drawScaleContents (QPainter *painter, const QPoint ¢er, intradius) const\fC [protected]\fP, \fC [virtual]\fP" Draw the contents inside the scale .PP Paints nothing\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcenter\fP Center of the contents circle .br \fIradius\fP Radius of the contents circle .RE .PP .PP Reimplemented in \fBQwtCompass\fP\&. .SS "\fBQwtDial::Shadow\fP QwtDial::frameShadow () const" \fBReturns:\fP .RS 4 Frame shadow /sa \fBsetFrameShadow()\fP, \fBlineWidth()\fP, QFrame::frameShadow .RE .PP .SS "void QwtDial::getScrollMode (const QPoint &pos, int &scrollMode, int &direction)\fC [protected]\fP, \fC [virtual]\fP" See \fBQwtAbstractSlider::getScrollMode()\fP .PP \fBParameters:\fP .RS 4 \fIpos\fP point where the mouse was pressed .RE .PP \fBReturn values:\fP .RS 4 \fIscrollMode\fP The scrolling mode .br \fIdirection\fP direction: 1, 0, or -1\&. .RE .PP \fBSee also:\fP .RS 4 \fBQwtAbstractSlider::getScrollMode()\fP .RE .PP .PP Implements \fBQwtAbstractSlider\fP\&. .SS "double QwtDial::getValue (const QPoint &pos)\fC [protected]\fP, \fC [virtual]\fP" Find the value for a given position .PP \fBParameters:\fP .RS 4 \fIpos\fP Position .RE .PP \fBReturns:\fP .RS 4 Value .RE .PP .PP Implements \fBQwtAbstractSlider\fP\&. .SS "bool QwtDial::hasVisibleBackground () const" true when the area outside of the frame is visible .PP \fBSee also:\fP .RS 4 \fBshowBackground()\fP, setMask() .RE .PP .SS "void QwtDial::keyPressEvent (QKeyEvent *event)\fC [protected]\fP, \fC [virtual]\fP" Handles key events .PP .IP "\(bu" 2 Key_Down, KeyLeft .br Decrement by 1 .IP "\(bu" 2 Key_Prior .br Decrement by \fBpageSize()\fP .IP "\(bu" 2 Key_Home .br Set the value to \fBminValue()\fP .PP .PP .IP "\(bu" 2 Key_Up, KeyRight .br Increment by 1 .IP "\(bu" 2 Key_Next .br Increment by \fBpageSize()\fP .IP "\(bu" 2 Key_End .br Set the value to \fBmaxValue()\fP .PP .PP \fBParameters:\fP .RS 4 \fIevent\fP Key event .RE .PP \fBSee also:\fP .RS 4 \fBisReadOnly()\fP .RE .PP .PP Reimplemented from \fBQwtAbstractSlider\fP\&. .PP Reimplemented in \fBQwtCompass\fP\&. .SS "int QwtDial::lineWidth () const" \fBReturns:\fP .RS 4 Line width of the frame .RE .PP \fBSee also:\fP .RS 4 \fBsetLineWidth()\fP, \fBframeShadow()\fP, \fBlineWidth()\fP .RE .PP .SS "double QwtDial::maxScaleArc () const" \fBReturns:\fP .RS 4 Upper limit of the scale arc .RE .PP .SS "QSize QwtDial::minimumSizeHint () const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBWarning:\fP .RS 4 The return value of \fBQwtDial::minimumSizeHint()\fP depends on the font and the scale\&. .RE .PP .SS "double QwtDial::minScaleArc () const" \fBReturns:\fP .RS 4 Lower limit of the scale arc .RE .PP .SS "\fBQwtDial::Mode\fP QwtDial::mode () const" \fBReturns:\fP .RS 4 mode of the dial\&. .RE .PP The value of the dial is indicated by the difference between the origin and the direction of the needle\&. In case of QwtDial::RotateNeedle the scale arc is fixed to the \fBorigin()\fP and the needle is rotating, in case of QwtDial::RotateScale, the needle points to \fBorigin()\fP and the scale is rotating\&. .PP The default mode is QwtDial::RotateNeedle\&. .PP \fBSee also:\fP .RS 4 \fBsetMode()\fP, \fBorigin()\fP, \fBsetScaleArc()\fP, \fBvalue()\fP .RE .PP .SS "const \fBQwtDialNeedle\fP * QwtDial::needle () const" \fBReturns:\fP .RS 4 needle .RE .PP \fBSee also:\fP .RS 4 \fBsetNeedle()\fP .RE .PP .SS "\fBQwtDialNeedle\fP * QwtDial::needle ()" \fBReturns:\fP .RS 4 needle .RE .PP \fBSee also:\fP .RS 4 \fBsetNeedle()\fP .RE .PP .SS "double QwtDial::origin () const" The origin is the angle where scale and needle is relative to\&. .PP \fBReturns:\fP .RS 4 Origin of the dial .RE .PP \fBSee also:\fP .RS 4 \fBsetOrigin()\fP .RE .PP .SS "void QwtDial::paintEvent (QPaintEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Paint the dial .PP \fBParameters:\fP .RS 4 \fIe\fP Paint event .RE .PP .SS "void QwtDial::resizeEvent (QResizeEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Resize the dial widget .PP \fBParameters:\fP .RS 4 \fIe\fP Resize event .RE .PP .SS "QRect QwtDial::scaleContentsRect () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 rect inside the scale .RE .PP \fBSee also:\fP .RS 4 \fBsetLineWidth()\fP, \fBboundingRect()\fP, \fBcontentsRect()\fP .RE .PP .SS "\fBQwtText\fP QwtDial::scaleLabel (doublevalue) const\fC [protected]\fP, \fC [virtual]\fP" Find the label for a value .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value .RE .PP \fBReturns:\fP .RS 4 label .RE .PP .PP Reimplemented in \fBQwtAnalogClock\fP, and \fBQwtCompass\fP\&. .SS "void QwtDial::setDirection (\fBDirection\fPdirection)" Set the direction of the dial (clockwise/counterclockwise) .PP Direction direction .PP \fBSee also:\fP .RS 4 \fBdirection()\fP .RE .PP .SS "void QwtDial::setFrameShadow (\fBShadow\fPshadow)" Sets the frame shadow value from the frame style\&. .PP \fBParameters:\fP .RS 4 \fIshadow\fP Frame shadow .RE .PP \fBSee also:\fP .RS 4 \fBsetLineWidth()\fP, QFrame::setFrameShadow() .RE .PP .SS "void QwtDial::setLineWidth (intlineWidth)" Sets the line width .PP \fBParameters:\fP .RS 4 \fIlineWidth\fP Line width .RE .PP \fBSee also:\fP .RS 4 \fBsetFrameShadow()\fP .RE .PP .SS "void QwtDial::setMode (\fBMode\fPmode)" .PP Change the mode of the meter\&. \fBParameters:\fP .RS 4 \fImode\fP New mode .RE .PP The value of the meter is indicated by the difference between north of the scale and the direction of the needle\&. In case of QwtDial::RotateNeedle north is pointing to the \fBorigin()\fP and the needle is rotating, in case of QwtDial::RotateScale, the needle points to \fBorigin()\fP and the scale is rotating\&. .PP The default mode is QwtDial::RotateNeedle\&. .PP \fBSee also:\fP .RS 4 \fBmode()\fP, \fBsetValue()\fP, \fBsetOrigin()\fP .RE .PP .SS "void QwtDial::setNeedle (\fBQwtDialNeedle\fP *needle)\fC [virtual]\fP" Set a needle for the dial .PP Qwt is missing a set of good looking needles\&. Contributions are very welcome\&. .PP \fBParameters:\fP .RS 4 \fIneedle\fP Needle .RE .PP \fBWarning:\fP .RS 4 The needle will be deleted, when a different needle is set or in \fB~QwtDial()\fP .RE .PP .SS "void QwtDial::setOrigin (doubleorigin)\fC [virtual]\fP" .PP Change the origin\&. The origin is the angle where scale and needle is relative to\&. .PP \fBParameters:\fP .RS 4 \fIorigin\fP New origin .RE .PP \fBSee also:\fP .RS 4 \fBorigin()\fP .RE .PP .SS "void QwtDial::setScale (intmaxMajIntv, intmaxMinIntv, doublestep = \fC0\&.0\fP)\fC [virtual]\fP" Change the intervals of the scale .PP \fBSee also:\fP .RS 4 QwtAbstractScaleDraw::setScale() .RE .PP .SS "void QwtDial::setScaleArc (doubleminArc, doublemaxArc)" Change the arc of the scale .PP \fBParameters:\fP .RS 4 \fIminArc\fP Lower limit .br \fImaxArc\fP Upper limit .RE .PP .SS "void QwtDial::setScaleDraw (\fBQwtDialScaleDraw\fP *scaleDraw)\fC [virtual]\fP" Set an individual scale draw .PP \fBParameters:\fP .RS 4 \fIscaleDraw\fP Scale draw .RE .PP \fBWarning:\fP .RS 4 The previous scale draw is deleted .RE .PP .SS "void QwtDial::setScaleOptions (intoptions)" A wrapper method for accessing the scale draw\&. .PP .IP "\(bu" 2 options == 0 .br No visible scale: setScaleDraw(NULL) .IP "\(bu" 2 options & ScaleBackbone .br En/disable the backbone of the scale\&. .IP "\(bu" 2 options & ScaleTicks .br En/disable the ticks of the scale\&. .IP "\(bu" 2 options & ScaleLabel .br En/disable scale labels .PP .PP \fBSee also:\fP .RS 4 \fBQwtAbstractScaleDraw::enableComponent()\fP .RE .PP .SS "void QwtDial::setScaleTicks (intminLen, intmedLen, intmajLen, intpenWidth = \fC1\fP)" Assign length and width of the ticks .PP \fBParameters:\fP .RS 4 \fIminLen\fP Length of the minor ticks .br \fImedLen\fP Length of the medium ticks .br \fImajLen\fP Length of the major ticks .br \fIpenWidth\fP Width of the pen for all ticks .RE .PP \fBSee also:\fP .RS 4 \fBQwtAbstractScaleDraw::setTickLength()\fP, \fBQwtDialScaleDraw::setPenWidth()\fP .RE .PP .SS "void QwtDial::setWrapping (boolwrapping)\fC [virtual]\fP" Sets whether it is possible to step the value from the highest value to the lowest value and vice versa to on\&. .PP \fBParameters:\fP .RS 4 \fIwrapping\fP en/disables wrapping .RE .PP \fBSee also:\fP .RS 4 \fBwrapping()\fP, \fBQwtDoubleRange::periodic()\fP .RE .PP \fBNote:\fP .RS 4 The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial\&. .RE .PP .SS "void QwtDial::showBackground (boolshow)" Show/Hide the area outside of the frame .PP \fBParameters:\fP .RS 4 \fIshow\fP Show if true, hide if false .RE .PP \fBSee also:\fP .RS 4 \fBhasVisibleBackground()\fP, setMask() .RE .PP \fBWarning:\fP .RS 4 When \fBQwtDial\fP is a toplevel widget the window border might disappear too\&. .RE .PP .SS "QSize QwtDial::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 Size hint .RE .PP .SS "void QwtDial::updateMask ()\fC [protected]\fP, \fC [virtual]\fP" .PP Update the mask of the dial\&. In case of 'hasVisibleBackground() == false', the backgound is transparent by a mask\&. .PP \fBSee also:\fP .RS 4 \fBshowBackground()\fP, \fBhasVisibleBackground()\fP .RE .PP .SS "void QwtDial::updateScale ()\fC [protected]\fP" Update the scale with the current attributes .PP \fBSee also:\fP .RS 4 \fBsetScale()\fP .RE .PP .SS "bool QwtDial::wrapping () const" \fBwrapping()\fP holds whether it is possible to step the value from the highest value to the lowest value and vice versa\&. .PP \fBSee also:\fP .RS 4 \fBsetWrapping()\fP, \fBQwtDoubleRange::setPeriodic()\fP .RE .PP \fBNote:\fP .RS 4 The meaning of wrapping is like the wrapping property of QSpinBox, but not like it is used in QDial\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtScaleTransformation.3����������������������������������������������������0000644�0001750�0001750�00000005343�12052741143�020677� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtScaleTransformation" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleTransformation \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBType\fP { \fBLinear\fP, \fBLog10\fP, \fBOther\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtScaleTransformation\fP (Type \fBtype\fP)" .br .ti -1c .RI "virtual \fB~QwtScaleTransformation\fP ()" .br .ti -1c .RI "virtual \fBQwtScaleTransformation\fP * \fBcopy\fP () const " .br .ti -1c .RI "virtual double \fBinvXForm\fP (double x, double p1, double p2, double s1, double s2) const " .br .ti -1c .RI "Type \fBtype\fP () const " .br .ti -1c .RI "virtual double \fBxForm\fP (double x, double s1, double s2, double p1, double p2) const " .br .in -1c .SH "Detailed Description" .PP Operations for linear or logarithmic (base 10) transformations\&. .SH "Member Function Documentation" .PP .SS "double QwtScaleTransformation::invXForm (doublep, doublep1, doublep2, doubles1, doubles2) const\fC [virtual]\fP" .PP Transform a value from the coordinate system of the paint device into the coordinate system of a scale\&. \fBParameters:\fP .RS 4 \fIp\fP Value related to the coordinate system of the paint device .br \fIp1\fP First border of the coordinate system of the paint device .br \fIp2\fP Second border of the coordinate system of the paint device .br \fIs1\fP First border of the coordinate system of the scale .br \fIs2\fP Second border of the coordinate system of the scale .RE .PP \fBReturns:\fP .RS 4 .IP "\fBlinear mapping:\fP" 1c s1 + ( s2 - s1 ) / ( p2 - p1 ) * ( p - p1 ); .PP .IP "\fBlog10 mapping:\fP" 1c exp((p - p1) / (p2 - p1) * log(s2 / s1)) * s1; .PP .RE .PP .SS "QwtScaleTransformation::Type QwtScaleTransformation::type () const\fC [inline]\fP" \fBReturns:\fP .RS 4 Transformation type .RE .PP .SS "double QwtScaleTransformation::xForm (doubles, doubles1, doubles2, doublep1, doublep2) const\fC [virtual]\fP" .PP Transform a value from the coordinate system of a scale into the coordinate system of the paint device\&. \fBParameters:\fP .RS 4 \fIs\fP Value related to the coordinate system of the scale .br \fIs1\fP First border of the coordinate system of the scale .br \fIs2\fP Second border of the coordinate system of the scale .br \fIp1\fP First border of the coordinate system of the paint device .br \fIp2\fP Second border of the coordinate system of the paint device .RE .PP \fBReturns:\fP .RS 4 .IP "\fBlinear mapping:\fP" 1c p1 + (p2 - p1) / (s2 - s1) * (s - s1); .PP .IP "\fBlog10 mapping: \fP" 1c p1 + (p2 - p1) / log(s2 / s1) * log(s / s1); .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtRoundScaleDraw.3���������������������������������������������������������0000644�0001750�0001750�00000012755�12052741142�017602� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtRoundScaleDraw" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtRoundScaleDraw \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractScaleDraw\fP\&. .PP Inherited by \fBQwtDialScaleDraw\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtRoundScaleDraw\fP ()" .br .ti -1c .RI "\fBQwtRoundScaleDraw\fP (const \fBQwtRoundScaleDraw\fP &)" .br .ti -1c .RI "virtual \fB~QwtRoundScaleDraw\fP ()" .br .ti -1c .RI "QPoint \fBcenter\fP () const " .br .ti -1c .RI "virtual int \fBextent\fP (const QPen &, const QFont &) const " .br .ti -1c .RI "void \fBmoveCenter\fP (int x, int y)" .br .ti -1c .RI "void \fBmoveCenter\fP (const QPoint &)" .br .ti -1c .RI "\fBQwtRoundScaleDraw\fP & \fBoperator=\fP (const \fBQwtRoundScaleDraw\fP &other)" .br .ti -1c .RI "int \fBradius\fP () const " .br .ti -1c .RI "void \fBsetAngleRange\fP (double angle1, double angle2)" .br .ti -1c .RI "void \fBsetRadius\fP (int \fBradius\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBdrawBackbone\fP (QPainter *p) const " .br .ti -1c .RI "virtual void \fBdrawLabel\fP (QPainter *p, double val) const " .br .ti -1c .RI "virtual void \fBdrawTick\fP (QPainter *p, double val, int len) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A class for drawing round scales\&. \fBQwtRoundScaleDraw\fP can be used to draw round scales\&. The circle segment can be adjusted by \fBQwtRoundScaleDraw::setAngleRange()\fP\&. The geometry of the scale can be specified with \fBQwtRoundScaleDraw::moveCenter()\fP and \fBQwtRoundScaleDraw::setRadius()\fP\&. .PP After a scale division has been specified as a \fBQwtScaleDiv\fP object using \fBQwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s)\fP, the scale can be drawn with the \fBQwtAbstractScaleDraw::draw()\fP member\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtRoundScaleDraw::QwtRoundScaleDraw ()" .PP Constructor\&. The range of the scale is initialized to [0, 100], The center is set to (50, 50) with a radius of 50\&. The angle range is set to [-135, 135]\&. .SH "Member Function Documentation" .PP .SS "void QwtRoundScaleDraw::drawBackbone (QPainter *painter) const\fC [protected]\fP, \fC [virtual]\fP" Draws the baseline of the scale .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick()\fP, \fBdrawLabel()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtRoundScaleDraw::drawLabel (QPainter *painter, doublevalue) const\fC [protected]\fP, \fC [virtual]\fP" Draws the label for a major scale tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value .RE .PP \fBSee also:\fP .RS 4 \fBdrawTick()\fP, \fBdrawBackbone()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtRoundScaleDraw::drawTick (QPainter *painter, doublevalue, intlen) const\fC [protected]\fP, \fC [virtual]\fP" Draw a tick .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIvalue\fP Value of the tick .br \fIlen\fP Lenght of the tick .RE .PP \fBSee also:\fP .RS 4 \fBdrawBackbone()\fP, \fBdrawLabel()\fP .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "int QwtRoundScaleDraw::extent (const QPen &pen, const QFont &font) const\fC [virtual]\fP" Calculate the extent of the scale .PP The extent is the distcance between the baseline to the outermost pixel of the scale draw\&. \fBradius()\fP + \fBextent()\fP is an upper limit for the radius of the bounding circle\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen that is used for painting backbone and ticks .br \fIfont\fP Font used for painting the labels .RE .PP \fBSee also:\fP .RS 4 \fBsetMinimumExtent()\fP, \fBminimumExtent()\fP .RE .PP \fBWarning:\fP .RS 4 The implemented algo is not too smart and calculates only an upper limit, that might be a few pixels too large .RE .PP .PP Implements \fBQwtAbstractScaleDraw\fP\&. .SS "void QwtRoundScaleDraw::moveCenter (const QPoint ¢er)" Move the center of the scale draw, leaving the radius unchanged .PP \fBParameters:\fP .RS 4 \fIcenter\fP New center .RE .PP \fBSee also:\fP .RS 4 \fBsetRadius()\fP .RE .PP .SS "int QwtRoundScaleDraw::radius () const" Get the radius .PP Radius is the radius of the backbone without ticks and labels\&. .PP \fBSee also:\fP .RS 4 \fBsetRadius()\fP, \fBextent()\fP .RE .PP .SS "void QwtRoundScaleDraw::setAngleRange (doubleangle1, doubleangle2)" .PP Adjust the baseline circle segment for round scales\&. The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2)\&. The default setting is [ -135, 135 ]\&. An angle of 0 degrees corresponds to the 12 o'clock position, and positive angles count in a clockwise direction\&. .PP \fBParameters:\fP .RS 4 \fIangle1\fP .br \fIangle2\fP boundaries of the angle interval in degrees\&. .RE .PP \fBWarning:\fP .RS 4 .PD 0 .IP "\(bu" 2 The angle range is limited to [-360, 360] degrees\&. Angles exceeding this range will be clipped\&. .IP "\(bu" 2 For angles more than 359 degrees above or below min(angle1, angle2), scale marks will not be drawn\&. .IP "\(bu" 2 If you need a counterclockwise scale, use QwtScaleDiv::setRange .PP .RE .PP .SS "void QwtRoundScaleDraw::setRadius (intradius)" Change of radius the scale .PP Radius is the radius of the backbone without ticks and labels\&. .PP \fBParameters:\fP .RS 4 \fIradius\fP New Radius .RE .PP \fBSee also:\fP .RS 4 \fBmoveCenter()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������qwt5-5.2.3/doc/man/man3/QwtRichTextEngine.3���������������������������������������������������������0000644�0001750�0001750�00000006120�12052741142�017572� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtRichTextEngine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtRichTextEngine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtTextEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtRichTextEngine\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *painter, const QRect &rect, int flags, const QString &text) const " .br .ti -1c .RI "virtual int \fBheightForWidth\fP (const QFont &font, int flags, const QString &text, int width) const " .br .ti -1c .RI "virtual bool \fBmightRender\fP (const QString &) const " .br .ti -1c .RI "virtual void \fBtextMargins\fP (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const " .br .ti -1c .RI "virtual QSize \fBtextSize\fP (const QFont &font, int flags, const QString &text) const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A text engine for Qt rich texts\&. \fBQwtRichTextEngine\fP renders Qt rich texts using the classes of the Scribe framework of Qt\&. .SH "Member Function Documentation" .PP .SS "void QwtRichTextEngine::draw (QPainter *painter, const QRect &rect, intflags, const QString &text) const\fC [virtual]\fP" Draw the text in a clipping rectangle .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Clipping rectangle .br \fIflags\fP Bitwise OR of the flags like in for QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "int QwtRichTextEngine::heightForWidth (const QFont &font, intflags, const QString &text, intwidth) const\fC [virtual]\fP" Find the height for a given width .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .br \fIwidth\fP Width .RE .PP \fBReturns:\fP .RS 4 Calculated height .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "bool QwtRichTextEngine::mightRender (const QString &text) const\fC [virtual]\fP" Test if a string can be rendered by this text engine .PP \fBParameters:\fP .RS 4 \fItext\fP Text to be tested .RE .PP \fBReturns:\fP .RS 4 QStyleSheet::mightBeRichText(text); .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "void QwtRichTextEngine::textMargins (const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const\fC [virtual]\fP" Return margins around the texts .PP \fBParameters:\fP .RS 4 \fIleft\fP Return 0 .br \fIright\fP Return 0 .br \fItop\fP Return 0 .br \fIbottom\fP Return 0 .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SS "QSize QwtRichTextEngine::textSize (const QFont &font, intflags, const QString &text) const\fC [virtual]\fP" Returns the size, that is needed to render text .PP \fBParameters:\fP .RS 4 \fIfont\fP Font of the text .br \fIflags\fP Bitwise OR of the flags used like in QPainter::drawText .br \fItext\fP Text to be rendered .RE .PP \fBReturns:\fP .RS 4 Caluclated size .RE .PP .PP Implements \fBQwtTextEngine\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtRasterData.3�������������������������������������������������������������0000644�0001750�0001750�00000012300�12052741142�016741� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtRasterData" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtRasterData \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by QwtPlotSpectrogram::PrivateData::DummyData\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBConrecAttribute\fP { \fBIgnoreAllVerticesOnLevel\fP = 1, \fBIgnoreOutOfRange\fP = 2 }" .br .ti -1c .RI "typedef QMap< double, QPolygonF > \fBContourLines\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtRasterData\fP ()" .br .ti -1c .RI "\fBQwtRasterData\fP (const QwtDoubleRect &)" .br .ti -1c .RI "virtual \fB~QwtRasterData\fP ()" .br .ti -1c .RI "QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual ContourLines \fBcontourLines\fP (const QwtDoubleRect &rect, const QSize &raster, const QList< double > &levels, int flags) const " .br .ti -1c .RI "virtual \fBQwtRasterData\fP * \fBcopy\fP () const =0" .br .ti -1c .RI "virtual void \fBdiscardRaster\fP ()" .br .ti -1c .RI "virtual void \fBinitRaster\fP (const QwtDoubleRect &, const QSize &raster)" .br .ti -1c .RI "virtual \fBQwtDoubleInterval\fP \fBrange\fP () const =0" .br .ti -1c .RI "virtual QSize \fBrasterHint\fP (const QwtDoubleRect &) const " .br .ti -1c .RI "virtual void \fBsetBoundingRect\fP (const QwtDoubleRect &)" .br .ti -1c .RI "virtual double \fBvalue\fP (double x, double y) const =0" .br .in -1c .SH "Detailed Description" .PP \fBQwtRasterData\fP defines an interface to any type of raster data\&. \fBQwtRasterData\fP is an abstract interface, that is used by \fBQwtPlotRasterItem\fP to find the values at the pixels of its raster\&. .PP Often a raster item is used to display values from a matrix\&. Then the derived raster data class needs to implement some sort of resampling, that maps the raster of the matrix into the requested raster of the raster item ( depending on resolution and scales of the canvas )\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtRasterData::QwtRasterData (const QwtDoubleRect &boundingRect)" Constructor .PP \fBParameters:\fP .RS 4 \fIboundingRect\fP Bounding rectangle .RE .PP \fBSee also:\fP .RS 4 \fBsetBoundingRect()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtRasterData::boundingRect () const" \fBReturns:\fP .RS 4 Bounding rectangle .RE .PP \fBSee also:\fP .RS 4 \fBboundingRect()\fP .RE .PP .SS "QwtRasterData::ContourLines QwtRasterData::contourLines (const QwtDoubleRect &rect, const QSize &raster, const QList< double > &levels, intflags) const\fC [virtual]\fP" Calculate contour lines .PP An adaption of CONREC, a simple contouring algorithm\&. http://local.wasp.uwa.edu.au/~pbourke/papers/conrec/ .SS "void QwtRasterData::discardRaster ()\fC [virtual]\fP" .PP Discard a raster\&. After the composition of an image \fBQwtPlotSpectrogram\fP calls \fBdiscardRaster()\fP\&. .PP The default implementation does nothing, but if data has been loaded in \fBinitRaster()\fP, it could deleted now\&. .PP \fBSee also:\fP .RS 4 \fBinitRaster()\fP, \fBvalue()\fP .RE .PP .SS "void QwtRasterData::initRaster (const QwtDoubleRect &, const QSize &raster)\fC [virtual]\fP" .PP Initialize a raster\&. Before the composition of an image \fBQwtPlotSpectrogram\fP calls initRaster, announcing the area and its resolution that will be requested\&. .PP The default implementation does nothing, but for data sets that are stored in files, it might be good idea to reimplement initRaster, where the data is resampled and loaded into memory\&. .PP \fBParameters:\fP .RS 4 \fIrect\fP Area of the raster .br \fIraster\fP Number of horizontal and vertical pixels .RE .PP \fBSee also:\fP .RS 4 \fBinitRaster()\fP, \fBvalue()\fP .RE .PP .SS "virtual \fBQwtDoubleInterval\fP QwtRasterData::range () const\fC [pure virtual]\fP" \fBReturns:\fP .RS 4 the range of the values .RE .PP .SS "QSize QwtRasterData::rasterHint (const QwtDoubleRect &) const\fC [virtual]\fP" .PP Find the raster of the data for an area\&. The resolution is the number of horizontal and vertical pixels that the data can return for an area\&. An invalid resolution indicates that the data can return values for any detail level\&. .PP The resolution will limit the size of the image that is rendered from the data\&. F\&.e\&. this might be important when printing a spectrogram to a A0 printer with 600 dpi\&. .PP The default implementation returns an invalid resolution (size) .PP \fBParameters:\fP .RS 4 \fIrect\fP In most implementations the resolution of the data doesn't depend on the requested rectangle\&. .RE .PP \fBReturns:\fP .RS 4 Resolution, as number of horizontal and vertical pixels .RE .PP .SS "void QwtRasterData::setBoundingRect (const QwtDoubleRect &boundingRect)\fC [virtual]\fP" Set the bounding rect ( == area, un plot coordinates ) .PP \fBParameters:\fP .RS 4 \fIboundingRect\fP Bounding rectangle .RE .PP \fBSee also:\fP .RS 4 \fBboundingRect()\fP .RE .PP .SS "virtual double QwtRasterData::value (doublex, doubley) const\fC [pure virtual]\fP" \fBReturns:\fP .RS 4 the value at a raster position .RE .PP \fBParameters:\fP .RS 4 \fIx\fP X value in plot coordinates .br \fIy\fP Y value in plot coordinates .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotMarker.3�������������������������������������������������������������0000644�0001750�0001750�00000017533�12052741141�017003� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotMarker" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotMarker \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBLineStyle\fP { \fBNoLine\fP, \fBHLine\fP, \fBVLine\fP, \fBCross\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotMarker\fP ()" .br .ti -1c .RI "virtual \fB~QwtPlotMarker\fP ()" .br .ti -1c .RI "virtual QwtDoubleRect \fBboundingRect\fP () const " .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &) const " .br .ti -1c .RI "\fBQwtText\fP \fBlabel\fP () const " .br .ti -1c .RI "Qt::Alignment \fBlabelAlignment\fP () const " .br .ti -1c .RI "Qt::Orientation \fBlabelOrientation\fP () const " .br .ti -1c .RI "const QPen & \fBlinePen\fP () const " .br .ti -1c .RI "\fBLineStyle\fP \fBlineStyle\fP () const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "void \fBsetLabel\fP (const \fBQwtText\fP &)" .br .ti -1c .RI "void \fBsetLabelAlignment\fP (Qt::Alignment)" .br .ti -1c .RI "void \fBsetLabelOrientation\fP (Qt::Orientation)" .br .ti -1c .RI "void \fBsetLinePen\fP (const QPen &p)" .br .ti -1c .RI "void \fBsetLineStyle\fP (\fBLineStyle\fP st)" .br .ti -1c .RI "void \fBsetSpacing\fP (int)" .br .ti -1c .RI "void \fBsetSymbol\fP (const \fBQwtSymbol\fP &s)" .br .ti -1c .RI "void \fBsetValue\fP (double, double)" .br .ti -1c .RI "void \fBsetValue\fP (const QwtDoublePoint &)" .br .ti -1c .RI "void \fBsetXValue\fP (double)" .br .ti -1c .RI "void \fBsetYValue\fP (double)" .br .ti -1c .RI "int \fBspacing\fP () const " .br .ti -1c .RI "const \fBQwtSymbol\fP & \fBsymbol\fP () const " .br .ti -1c .RI "QwtDoublePoint \fBvalue\fP () const " .br .ti -1c .RI "double \fBxValue\fP () const " .br .ti -1c .RI "double \fByValue\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdrawAt\fP (QPainter *, const QRect &, const QPoint &) const " .br .in -1c .SH "Detailed Description" .PP 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\&. .PP The \fBQwtPlotMarker::setSymbol()\fP member assigns a symbol to the marker\&. The symbol is drawn at the specified point\&. .PP With \fBQwtPlotMarker::setLabel()\fP, a label can be assigned to the marker\&. The \fBQwtPlotMarker::setLabelAlignment()\fP 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\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtPlotMarker::LineStyle\fP" Line styles\&. .PP \fBSee also:\fP .RS 4 \fBsetLineStyle()\fP, \fBlineStyle()\fP .RE .PP .SH "Member Function Documentation" .PP .SS "QwtDoubleRect QwtPlotMarker::boundingRect () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 An invalid bounding rect: QwtDoubleRect(1\&.0, 1\&.0, -2\&.0, -2\&.0) .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "void QwtPlotMarker::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" Draw the marker .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP x Scale Map .br \fIyMap\fP y Scale Map .br \fIcanvasRect\fP Contents rect of the canvas in painter coordinates .RE .PP .PP Implements \fBQwtPlotItem\fP\&. .SS "void QwtPlotMarker::drawAt (QPainter *painter, const QRect &canvasRect, const QPoint &pos) const\fC [protected]\fP" Draw the marker at a specific position .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIcanvasRect\fP Contents rect of the canvas in painter coordinates .br \fIpos\fP Position of the marker in painter coordinates .RE .PP .SS "\fBQwtText\fP QwtPlotMarker::label () const" \fBReturns:\fP .RS 4 the label .RE .PP \fBSee also:\fP .RS 4 \fBsetLabel()\fP .RE .PP .SS "Qt::Alignment QwtPlotMarker::labelAlignment () const" \fBReturns:\fP .RS 4 the label alignment .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelAlignment()\fP, \fBsetLabelOrientation()\fP .RE .PP .SS "Qt::Orientation QwtPlotMarker::labelOrientation () const" \fBReturns:\fP .RS 4 the label orientation .RE .PP \fBSee also:\fP .RS 4 \fBsetLabelOrientation()\fP, \fBlabelAlignment()\fP .RE .PP .SS "const QPen & QwtPlotMarker::linePen () const" \fBReturns:\fP .RS 4 the line pen .RE .PP \fBSee also:\fP .RS 4 \fBsetLinePen()\fP .RE .PP .SS "\fBQwtPlotMarker::LineStyle\fP QwtPlotMarker::lineStyle () const" \fBReturns:\fP .RS 4 the line style .RE .PP \fBSee also:\fP .RS 4 For a description of line styles, see \fBQwtPlotMarker::setLineStyle()\fP .RE .PP .SS "int QwtPlotMarker::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotMarker .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "void QwtPlotMarker::setLabel (const \fBQwtText\fP &label)" .PP Set the label\&. \fBParameters:\fP .RS 4 \fIlabel\fP label text .RE .PP \fBSee also:\fP .RS 4 \fBlabel()\fP .RE .PP .SS "void QwtPlotMarker::setLabelAlignment (Qt::Alignmentalign)" .PP Set the alignment of the label\&. In case of QwtPlotMarker::HLine the alignment is relative to the y position of the marker, but the horizontal flags correspond to the canvas rectangle\&. In case of QwtPlotMarker::VLine the alignment is relative to the x position of the marker, but the vertical flags correspond to the canvas rectangle\&. .PP In all other styles the alignment is relative to the marker's position\&. .PP \fBParameters:\fP .RS 4 \fIalign\fP Alignment\&. A combination of AlignTop, AlignBottom, AlignLeft, AlignRight, AlignCenter, AlgnHCenter, AlignVCenter\&. .RE .PP \fBSee also:\fP .RS 4 \fBlabelAlignment()\fP, \fBlabelOrientation()\fP .RE .PP .SS "void QwtPlotMarker::setLabelOrientation (Qt::Orientationorientation)" .PP Set the orientation of the label\&. When orientation is Qt::Vertical the label is rotated by 90\&.0 degrees ( from bottom to top )\&. .PP \fBParameters:\fP .RS 4 \fIorientation\fP Orientation of the label .RE .PP \fBSee also:\fP .RS 4 \fBlabelOrientation()\fP, \fBsetLabelAlignment()\fP .RE .PP .SS "void QwtPlotMarker::setLinePen (const QPen &pen)" Specify a pen for the line\&. .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP New pen .RE .PP \fBSee also:\fP .RS 4 \fBlinePen()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtPlotMarker::setLineStyle (\fBQwtPlotMarker::LineStyle\fPst)" .PP Set the line style\&. \fBParameters:\fP .RS 4 \fIst\fP Line style\&. Can be one of QwtPlotMarker::NoLine, HLine, VLine or Cross .RE .PP \fBSee also:\fP .RS 4 \fBlineStyle()\fP .RE .PP .SS "void QwtPlotMarker::setSpacing (intspacing)" .PP Set the spacing\&. When the label is not centered on the marker position, the spacing is the distance between the position and the label\&. .PP \fBParameters:\fP .RS 4 \fIspacing\fP Spacing .RE .PP \fBSee also:\fP .RS 4 \fBspacing()\fP, \fBsetLabelAlignment()\fP .RE .PP .SS "void QwtPlotMarker::setSymbol (const \fBQwtSymbol\fP &s)" .PP Assign a symbol\&. \fBParameters:\fP .RS 4 \fIs\fP New symbol .RE .PP \fBSee also:\fP .RS 4 \fBsymbol()\fP .RE .PP .SS "int QwtPlotMarker::spacing () const" \fBReturns:\fP .RS 4 the spacing .RE .PP \fBSee also:\fP .RS 4 \fBsetSpacing()\fP .RE .PP .SS "const \fBQwtSymbol\fP & QwtPlotMarker::symbol () const" \fBReturns:\fP .RS 4 the symbol .RE .PP \fBSee also:\fP .RS 4 \fBsetSymbol()\fP, \fBQwtSymbol\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPainter.3����������������������������������������������������������������0000644�0001750�0001750�00000016567�12052741140�016332� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPainter" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPainter \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static bool \fBdeviceClipping\fP ()" .br .ti -1c .RI "static const QRect & \fBdeviceClipRect\fP ()" .br .ti -1c .RI "static void \fBdrawColorBar\fP (QPainter *painter, const \fBQwtColorMap\fP &, const \fBQwtDoubleInterval\fP &, const \fBQwtScaleMap\fP &, Qt::Orientation, const QRect &)" .br .ti -1c .RI "static void \fBdrawEllipse\fP (QPainter *, const QRect &)" .br .ti -1c .RI "static void \fBdrawFocusRect\fP (QPainter *, QWidget *)" .br .ti -1c .RI "static void \fBdrawFocusRect\fP (QPainter *, QWidget *, const QRect &)" .br .ti -1c .RI "static void \fBdrawLine\fP (QPainter *, int x1, int y1, int x2, int y2)" .br .ti -1c .RI "static void \fBdrawLine\fP (QPainter *, const QPoint &p1, const QPoint &p2)" .br .ti -1c .RI "static void \fBdrawPie\fP (QPainter *, const QRect &r, int a, int alen)" .br .ti -1c .RI "static void \fBdrawPoint\fP (QPainter *, int x, int y)" .br .ti -1c .RI "static void \fBdrawPolygon\fP (QPainter *, const QwtPolygon &pa)" .br .ti -1c .RI "static void \fBdrawPolyline\fP (QPainter *, const QwtPolygon &pa)" .br .ti -1c .RI "static void \fBdrawRect\fP (QPainter *, int x, int y, int w, int h)" .br .ti -1c .RI "static void \fBdrawRect\fP (QPainter *, const QRect &rect)" .br .ti -1c .RI "static void \fBdrawRoundFrame\fP (QPainter *, const QRect &, int width, const QPalette &, bool sunken)" .br .ti -1c .RI "static void \fBdrawSimpleRichText\fP (QPainter *, const QRect &, int flags, QTextDocument &)" .br .ti -1c .RI "static void \fBdrawText\fP (QPainter *, int x, int y, const QString &)" .br .ti -1c .RI "static void \fBdrawText\fP (QPainter *, const QPoint &, const QString &)" .br .ti -1c .RI "static void \fBdrawText\fP (QPainter *, int x, int y, int w, int h, int flags, const QString &)" .br .ti -1c .RI "static void \fBdrawText\fP (QPainter *, const QRect &, int flags, const QString &)" .br .ti -1c .RI "static void \fBfillRect\fP (QPainter *, const QRect &, const QBrush &)" .br .ti -1c .RI "static const \fBQwtMetricsMap\fP & \fBmetricsMap\fP ()" .br .ti -1c .RI "static void \fBresetMetricsMap\fP ()" .br .ti -1c .RI "static QPen \fBscaledPen\fP (const QPen &)" .br .ti -1c .RI "static void \fBsetClipRect\fP (QPainter *, const QRect &)" .br .ti -1c .RI "static void \fBsetDeviceClipping\fP (bool)" .br .ti -1c .RI "static void \fBsetMetricsMap\fP (const QPaintDevice *layout, const QPaintDevice *device)" .br .ti -1c .RI "static void \fBsetMetricsMap\fP (const \fBQwtMetricsMap\fP &)" .br .in -1c .SH "Detailed Description" .PP A collection of QPainter workarounds\&. 1) Clipping to coordinate system limits (Qt3 only) .PP On X11 pixel coordinates are stored in shorts\&. Qt produces overruns when mapping QCOORDS to shorts\&. .PP 2) Scaling to device metrics .PP QPainter scales fonts, line and fill patterns to the metrics of the paint device\&. Other values like the geometries of rects, points remain device independend\&. To enable a device independent widget implementation, \fBQwtPainter\fP adds scaling of these geometries\&. (Unfortunately QPainter::scale scales both types of paintings, so the objects of the first type would be scaled twice)\&. .SH "Member Function Documentation" .PP .SS "bool QwtPainter::deviceClipping ()\fC [inline]\fP, \fC [static]\fP" Returns whether device clipping is enabled\&. On X11 the default is enabled, otherwise it is disabled\&. .PP \fBSee also:\fP .RS 4 \fBQwtPainter::setDeviceClipping()\fP .RE .PP .SS "const QRect & QwtPainter::deviceClipRect ()\fC [static]\fP" Returns rect for device clipping .PP \fBSee also:\fP .RS 4 \fBQwtPainter::setDeviceClipping()\fP .RE .PP .SS "void QwtPainter::drawEllipse (QPainter *painter, const QRect &rect)\fC [static]\fP" Wrapper for QPainter::drawEllipse() .SS "void QwtPainter::drawLine (QPainter *painter, intx1, inty1, intx2, inty2)\fC [static]\fP" Wrapper for QPainter::drawLine() .SS "void QwtPainter::drawPie (QPainter *painter, const QRect &rect, inta, intalen)\fC [static]\fP" Wrapper for QPainter::drawPie() .SS "void QwtPainter::drawPoint (QPainter *painter, intx, inty)\fC [static]\fP" Wrapper for QPainter::drawPoint() .SS "void QwtPainter::drawPolygon (QPainter *painter, const QwtPolygon &pa)\fC [static]\fP" Wrapper for QPainter::drawPolygon() .SS "void QwtPainter::drawPolyline (QPainter *painter, const QwtPolygon &pa)\fC [static]\fP" Wrapper for QPainter::drawPolyline() .SS "void QwtPainter::drawRect (QPainter *painter, intx, inty, intw, inth)\fC [static]\fP" Wrapper for QPainter::drawRect() .SS "void QwtPainter::drawRect (QPainter *painter, const QRect &rect)\fC [static]\fP" Wrapper for QPainter::drawRect() .SS "void QwtPainter::drawSimpleRichText (QPainter *painter, const QRect &rect, intflags, QTextDocument &text)\fC [static]\fP" Wrapper for QSimpleRichText::draw() .SS "void QwtPainter::drawText (QPainter *painter, intx, inty, const QString &text)\fC [static]\fP" Wrapper for QPainter::drawText() .SS "void QwtPainter::drawText (QPainter *painter, const QPoint &pos, const QString &text)\fC [static]\fP" Wrapper for QPainter::drawText() .SS "void QwtPainter::drawText (QPainter *painter, intx, inty, intw, inth, intflags, const QString &text)\fC [static]\fP" Wrapper for QPainter::drawText() .SS "void QwtPainter::drawText (QPainter *painter, const QRect &rect, intflags, const QString &text)\fC [static]\fP" Wrapper for QPainter::drawText() .SS "void QwtPainter::fillRect (QPainter *painter, const QRect &rect, const QBrush &brush)\fC [static]\fP" Wrapper for QPainter::fillRect() .SS "const \fBQwtMetricsMap\fP & QwtPainter::metricsMap ()\fC [static]\fP" \fBReturns:\fP .RS 4 Metrics map .RE .PP .SS "void QwtPainter::resetMetricsMap ()\fC [static]\fP" Reset the metrics map to the ratio 1:1 .PP \fBSee also:\fP .RS 4 \fBQwtPainter::setMetricsMap()\fP, \fBQwtPainter::resetMetricsMap()\fP .RE .PP .SS "QPen QwtPainter::scaledPen (const QPen &pen)\fC [static]\fP" .PP Scale a pen according to the layout metrics\&. The width of non cosmetic pens is scaled from screen to layout metrics, so that they look similar on paint devices with different resolutions\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Unscaled pen .RE .PP \fBReturns:\fP .RS 4 Scaled pen .RE .PP .SS "void QwtPainter::setClipRect (QPainter *painter, const QRect &rect)\fC [static]\fP" Wrapper for QPainter::setClipRect() .SS "void QwtPainter::setDeviceClipping (boolenable)\fC [static]\fP" .PP En/Disable device clipping\&. On X11 the default for device clipping is enabled, otherwise it is disabled\&. .PP \fBSee also:\fP .RS 4 \fBQwtPainter::deviceClipping()\fP .RE .PP .SS "void QwtPainter::setMetricsMap (const QPaintDevice *layout, const QPaintDevice *device)\fC [static]\fP" Scale all \fBQwtPainter\fP drawing operations using the ratio QwtPaintMetrics(from)\&.logicalDpiX() / QwtPaintMetrics(to)\&.logicalDpiX() and QwtPaintMetrics(from)\&.logicalDpiY() / QwtPaintMetrics(to)\&.logicalDpiY() .PP \fBSee also:\fP .RS 4 QwtPainter::resetScaleMetrics(), QwtPainter::scaleMetricsX(), QwtPainter::scaleMetricsY() .RE .PP .SS "void QwtPainter::setMetricsMap (const \fBQwtMetricsMap\fP &map)\fC [static]\fP" Change the metrics map .PP \fBSee also:\fP .RS 4 \fBQwtPainter::resetMetricsMap()\fP, \fBQwtPainter::metricsMap()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtScaleArithmetic.3��������������������������������������������������������0000644�0001750�0001750�00000005316�12052741142�017761� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtScaleArithmetic" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtScaleArithmetic \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static double \fBceil125\fP (double x)" .br .ti -1c .RI "static double \fBceilEps\fP (double value, double intervalSize)" .br .ti -1c .RI "static int \fBcompareEps\fP (double value1, double value2, double intervalSize)" .br .ti -1c .RI "static double \fBdivideEps\fP (double interval, double steps)" .br .ti -1c .RI "static double \fBfloor125\fP (double x)" .br .ti -1c .RI "static double \fBfloorEps\fP (double value, double intervalSize)" .br .in -1c .SH "Detailed Description" .PP Arithmetic including a tolerance\&. .SH "Member Function Documentation" .PP .SS "double QwtScaleArithmetic::ceil125 (doublex)\fC [static]\fP" Find the smallest value out of {1,2,5}*10^n with an integer number n which is greater than or equal to x .PP \fBParameters:\fP .RS 4 \fIx\fP Input value .RE .PP .SS "double QwtScaleArithmetic::ceilEps (doublevalue, doubleintervalSize)\fC [static]\fP" Ceil a value, relative to an interval .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value to ceil .br \fIintervalSize\fP Interval size .RE .PP \fBSee also:\fP .RS 4 \fBfloorEps()\fP .RE .PP .SS "int QwtScaleArithmetic::compareEps (doublevalue1, doublevalue2, doubleintervalSize)\fC [static]\fP" .PP Compare 2 values, relative to an interval\&. Values are 'equal', when : $\cdot value2 - value1 <= abs(intervalSize * 10e^{-6})$ .PP \fBParameters:\fP .RS 4 \fIvalue1\fP First value to compare .br \fIvalue2\fP Second value to compare .br \fIintervalSize\fP interval size .RE .PP \fBReturns:\fP .RS 4 0: if equal, -1: if value2 > value1, 1: if value1 > value2 .RE .PP .SS "double QwtScaleArithmetic::divideEps (doubleintervalSize, doublenumSteps)\fC [static]\fP" .PP Divide an interval into steps\&. $stepSize = (intervalSize - intervalSize * 10e^{-6}) / numSteps$.PP \fBParameters:\fP .RS 4 \fIintervalSize\fP Interval size .br \fInumSteps\fP Number of steps .RE .PP \fBReturns:\fP .RS 4 Step size .RE .PP .SS "double QwtScaleArithmetic::floor125 (doublex)\fC [static]\fP" .PP Find the largest value out of {1,2,5}*10^n with an integer number n which is smaller than or equal to x\&. \fBParameters:\fP .RS 4 \fIx\fP Input value .RE .PP .SS "double QwtScaleArithmetic::floorEps (doublevalue, doubleintervalSize)\fC [static]\fP" Floor a value, relative to an interval .PP \fBParameters:\fP .RS 4 \fIvalue\fP Value to floor .br \fIintervalSize\fP Interval size .RE .PP \fBSee also:\fP .RS 4 \fBfloorEps()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtCurveFitter.3������������������������������������������������������������0000644�0001750�0001750�00000002051�12052741137�017157� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtCurveFitter" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtCurveFitter \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtSplineCurveFitter\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fB~QwtCurveFitter\fP ()" .br .ti -1c .RI "virtual QPolygonF \fBfitCurve\fP (const QPolygonF &polygon) const =0" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBQwtCurveFitter\fP ()" .br .in -1c .SH "Detailed Description" .PP Abstract base class for a curve fitter\&. .SH "Member Function Documentation" .PP .SS "virtual QPolygonF QwtCurveFitter::fitCurve (const QPolygonF &polygon) const\fC [pure virtual]\fP" Find a curve which has the best fit to a series of data points .PP \fBParameters:\fP .RS 4 \fIpolygon\fP Series of data points .RE .PP \fBReturns:\fP .RS 4 Curve points .RE .PP .PP Implemented in \fBQwtSplineCurveFitter\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPickerPolygonMachine.3���������������������������������������������������0000644�0001750�0001750�00000001743�12052741141�020771� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPickerPolygonMachine" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPickerPolygonMachine \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPickerMachine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual CommandList \fBtransition\fP (const \fBQwtEventPattern\fP &, const QEvent *)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A state machine for polygon selections\&. Pressing QwtEventPattern::MouseSelect1 or QwtEventPattern::KeySelect1 starts the selection and selects the first point, or appends a point\&. Pressing QwtEventPattern::MouseSelect2 or QwtEventPattern::KeySelect2 appends the last point and terminates the selection\&. .PP \fBSee also:\fP .RS 4 \fBQwtEventPattern::MousePatternCode\fP, \fBQwtEventPattern::KeyPatternCode\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������qwt5-5.2.3/doc/man/man3/QwtPlotDict.3���������������������������������������������������������������0000644�0001750�0001750�00000005370�12052741141�016441� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotDict" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotDict \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBQwtPlot\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotDict\fP ()" .br .ti -1c .RI "\fB~QwtPlotDict\fP ()" .br .ti -1c .RI "bool \fBautoDelete\fP () const " .br .ti -1c .RI "void \fBdetachItems\fP (int rtti=QwtPlotItem::Rtti_PlotItem, bool \fBautoDelete\fP=true)" .br .ti -1c .RI "const QwtPlotItemList & \fBitemList\fP () const " .br .ti -1c .RI "void \fBsetAutoDelete\fP (bool)" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "class \fBQwtPlotItem\fP" .br .in -1c .SH "Detailed Description" .PP A dictionary for plot items\&. \fBQwtPlotDict\fP organizes plot items in increasing z-order\&. If \fBautoDelete()\fP is enabled, all attached items will be deleted in the destructor of the dictionary\&. .PP \fBSee also:\fP .RS 4 \fBQwtPlotItem::attach()\fP, \fBQwtPlotItem::detach()\fP, \fBQwtPlotItem::z()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtPlotDict::QwtPlotDict ()\fC [explicit]\fP" Constructor .PP Auto deletion is enabled\&. .PP \fBSee also:\fP .RS 4 \fBsetAutoDelete()\fP, attachItem() .RE .PP .SS "QwtPlotDict::~QwtPlotDict ()" Destructor .PP If autoDelete is on, all attached items will be deleted .PP \fBSee also:\fP .RS 4 \fBsetAutoDelete()\fP, \fBautoDelete()\fP, attachItem() .RE .PP .SH "Member Function Documentation" .PP .SS "bool QwtPlotDict::autoDelete () const" \fBReturns:\fP .RS 4 true if auto deletion is enabled .RE .PP \fBSee also:\fP .RS 4 \fBsetAutoDelete()\fP, attachItem() .RE .PP .SS "void QwtPlotDict::detachItems (intrtti = \fCQwtPlotItem::Rtti_PlotItem\fP, boolautoDelete = \fCtrue\fP)" Detach items from the dictionary .PP \fBParameters:\fP .RS 4 \fIrtti\fP In case of QwtPlotItem::Rtti_PlotItem detach all items otherwise only those items of the type rtti\&. .br \fIautoDelete\fP If true, delete all detached items .RE .PP .SS "const QwtPlotItemList & QwtPlotDict::itemList () const" .PP A QwtPlotItemList of all attached plot items\&. Use caution when iterating these lists, as removing/detaching an item will invalidate the iterator\&. Instead you can place pointers to objects to be removed in a removal list, and traverse that list later\&. .PP \fBReturns:\fP .RS 4 List of all attached plot items\&. .RE .PP .SS "void QwtPlotDict::setAutoDelete (boolautoDelete)" En/Disable Auto deletion .PP If Auto deletion is on all attached plot items will be deleted in the destructor of \fBQwtPlotDict\fP\&. The default value is on\&. .PP \fBSee also:\fP .RS 4 \fBautoDelete()\fP, attachItem() .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtPlotGrid.3���������������������������������������������������������������0000644�0001750�0001750�00000015476�12052741141�016453� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtPlotGrid" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtPlotGrid \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtPlotItem\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtPlotGrid\fP ()" .br .ti -1c .RI "virtual \fB~QwtPlotGrid\fP ()" .br .ti -1c .RI "virtual void \fBdraw\fP (QPainter *p, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &rect) const " .br .ti -1c .RI "void \fBenableX\fP (bool tf)" .br .ti -1c .RI "void \fBenableXMin\fP (bool tf)" .br .ti -1c .RI "void \fBenableY\fP (bool tf)" .br .ti -1c .RI "void \fBenableYMin\fP (bool tf)" .br .ti -1c .RI "const QPen & \fBmajPen\fP () const " .br .ti -1c .RI "const QPen & \fBminPen\fP () const " .br .ti -1c .RI "virtual int \fBrtti\fP () const " .br .ti -1c .RI "void \fBsetMajPen\fP (const QPen &p)" .br .ti -1c .RI "void \fBsetMinPen\fP (const QPen &p)" .br .ti -1c .RI "void \fBsetPen\fP (const QPen &p)" .br .ti -1c .RI "void \fBsetXDiv\fP (const \fBQwtScaleDiv\fP &sx)" .br .ti -1c .RI "void \fBsetYDiv\fP (const \fBQwtScaleDiv\fP &sy)" .br .ti -1c .RI "virtual void \fBupdateScaleDiv\fP (const \fBQwtScaleDiv\fP &xMap, const \fBQwtScaleDiv\fP &yMap)" .br .ti -1c .RI "bool \fBxEnabled\fP () const " .br .ti -1c .RI "bool \fBxMinEnabled\fP () const " .br .ti -1c .RI "const \fBQwtScaleDiv\fP & \fBxScaleDiv\fP () const " .br .ti -1c .RI "bool \fByEnabled\fP () const " .br .ti -1c .RI "bool \fByMinEnabled\fP () const " .br .ti -1c .RI "const \fBQwtScaleDiv\fP & \fByScaleDiv\fP () const " .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP A class which draws a coordinate grid\&. The \fBQwtPlotGrid\fP class can be used to draw a coordinate grid\&. A coordinate grid consists of major and minor vertical and horizontal gridlines\&. The locations of the gridlines are determined by the X and Y scale divisions which can be assigned with \fBsetXDiv()\fP and \fBsetYDiv()\fP\&. The \fBdraw()\fP member draws the grid within a bounding rectangle\&. .SH "Member Function Documentation" .PP .SS "void QwtPlotGrid::draw (QPainter *painter, const \fBQwtScaleMap\fP &xMap, const \fBQwtScaleMap\fP &yMap, const QRect &canvasRect) const\fC [virtual]\fP" .PP Draw the grid\&. The grid is drawn into the bounding rectangle such that gridlines begin and end at the rectangle's borders\&. The X and Y maps are used to map the scale divisions into the drawing region screen\&. .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIxMap\fP X axis map .br \fIyMap\fP Y axis .br \fIcanvasRect\fP Contents rect of the plot canvas .RE .PP .PP Implements \fBQwtPlotItem\fP\&. .SS "void QwtPlotGrid::enableX (booltf)" .PP Enable or disable vertical gridlines\&. \fBParameters:\fP .RS 4 \fItf\fP Enable (true) or disable .RE .PP \fBSee also:\fP .RS 4 Minor gridlines can be enabled or disabled with \fBenableXMin()\fP .RE .PP .SS "void QwtPlotGrid::enableXMin (booltf)" .PP Enable or disable minor vertical gridlines\&. \fBParameters:\fP .RS 4 \fItf\fP Enable (true) or disable .RE .PP \fBSee also:\fP .RS 4 \fBenableX()\fP .RE .PP .SS "void QwtPlotGrid::enableY (booltf)" .PP Enable or disable horizontal gridlines\&. \fBParameters:\fP .RS 4 \fItf\fP Enable (true) or disable .RE .PP \fBSee also:\fP .RS 4 Minor gridlines can be enabled or disabled with \fBenableYMin()\fP .RE .PP .SS "void QwtPlotGrid::enableYMin (booltf)" .PP Enable or disable minor horizontal gridlines\&. \fBParameters:\fP .RS 4 \fItf\fP Enable (true) or disable .RE .PP \fBSee also:\fP .RS 4 \fBenableY()\fP .RE .PP .SS "const QPen & QwtPlotGrid::majPen () const" \fBReturns:\fP .RS 4 the pen for the major gridlines .RE .PP \fBSee also:\fP .RS 4 \fBsetMajPen()\fP, \fBsetMinPen()\fP, \fBsetPen()\fP .RE .PP .SS "const QPen & QwtPlotGrid::minPen () const" \fBReturns:\fP .RS 4 the pen for the minor gridlines .RE .PP \fBSee also:\fP .RS 4 \fBsetMinPen()\fP, \fBsetMajPen()\fP, \fBsetPen()\fP .RE .PP .SS "int QwtPlotGrid::rtti () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 QwtPlotItem::Rtti_PlotGrid .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "void QwtPlotGrid::setMajPen (const QPen &pen)" Assign a pen for the major gridlines .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen .RE .PP \fBSee also:\fP .RS 4 \fBmajPen()\fP, \fBsetMinPen()\fP, \fBsetPen()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtPlotGrid::setMinPen (const QPen &pen)" Assign a pen for the minor gridlines .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen .RE .PP \fBSee also:\fP .RS 4 \fBminPen()\fP, \fBsetMajPen()\fP, \fBsetPen()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtPlotGrid::setPen (const QPen &pen)" Assign a pen for both major and minor gridlines .PP The width of non cosmetic pens is scaled according to the resolution of the paint device\&. .PP \fBParameters:\fP .RS 4 \fIpen\fP Pen .RE .PP \fBSee also:\fP .RS 4 \fBsetMajPen()\fP, \fBsetMinPen()\fP, \fBQwtPainter::scaledPen()\fP .RE .PP .SS "void QwtPlotGrid::setXDiv (const \fBQwtScaleDiv\fP &scaleDiv)" Assign an x axis scale division .PP \fBParameters:\fP .RS 4 \fIscaleDiv\fP Scale division .RE .PP .SS "void QwtPlotGrid::setYDiv (const \fBQwtScaleDiv\fP &scaleDiv)" Assign a y axis division .PP \fBParameters:\fP .RS 4 \fIscaleDiv\fP Scale division .RE .PP .SS "void QwtPlotGrid::updateScaleDiv (const \fBQwtScaleDiv\fP &xScaleDiv, const \fBQwtScaleDiv\fP &yScaleDiv)\fC [virtual]\fP" Update the grid to changes of the axes scale division .PP \fBParameters:\fP .RS 4 \fIxScaleDiv\fP Scale division of the x-axis .br \fIyScaleDiv\fP Scale division of the y-axis .RE .PP \fBSee also:\fP .RS 4 \fBQwtPlot::updateAxes()\fP .RE .PP .PP Reimplemented from \fBQwtPlotItem\fP\&. .SS "bool QwtPlotGrid::xEnabled () const" \fBReturns:\fP .RS 4 true if vertical gridlines are enabled .RE .PP \fBSee also:\fP .RS 4 \fBenableX()\fP .RE .PP .SS "bool QwtPlotGrid::xMinEnabled () const" \fBReturns:\fP .RS 4 true if minor vertical gridlines are enabled .RE .PP \fBSee also:\fP .RS 4 \fBenableXMin()\fP .RE .PP .SS "const \fBQwtScaleDiv\fP & QwtPlotGrid::xScaleDiv () const" \fBReturns:\fP .RS 4 the scale division of the x axis .RE .PP .SS "bool QwtPlotGrid::yEnabled () const" \fBReturns:\fP .RS 4 true if horizontal gridlines are enabled .RE .PP \fBSee also:\fP .RS 4 \fBenableY()\fP .RE .PP .SS "bool QwtPlotGrid::yMinEnabled () const" \fBReturns:\fP .RS 4 true if minor horizontal gridlines are enabled .RE .PP \fBSee also:\fP .RS 4 \fBenableYMin()\fP .RE .PP .SS "const \fBQwtScaleDiv\fP & QwtPlotGrid::yScaleDiv () const" \fBReturns:\fP .RS 4 the scale division of the y axis .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtAlphaColorMap.3����������������������������������������������������������0000644�0001750�0001750�00000004641�12052741137�017406� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtAlphaColorMap" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtAlphaColorMap \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtColorMap\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtAlphaColorMap\fP (const QColor &=QColor(Qt::gray))" .br .ti -1c .RI "\fBQwtAlphaColorMap\fP (const \fBQwtAlphaColorMap\fP &)" .br .ti -1c .RI "virtual \fB~QwtAlphaColorMap\fP ()" .br .ti -1c .RI "QColor \fBcolor\fP () const " .br .ti -1c .RI "virtual \fBQwtColorMap\fP * \fBcopy\fP () const " .br .ti -1c .RI "\fBQwtAlphaColorMap\fP & \fBoperator=\fP (const \fBQwtAlphaColorMap\fP &)" .br .ti -1c .RI "virtual QRgb \fBrgb\fP (const \fBQwtDoubleInterval\fP &, double value) const " .br .ti -1c .RI "void \fBsetColor\fP (const QColor &)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP \fBQwtAlphaColorMap\fP variies the alpha value of a color\&. .SH "Constructor & Destructor Documentation" .PP .SS "QwtAlphaColorMap::QwtAlphaColorMap (const QColor &color = \fCQColor(Qt::gray)\fP)" Constructor .PP \fBParameters:\fP .RS 4 \fIcolor\fP Color of the map .RE .PP .SS "QwtAlphaColorMap::QwtAlphaColorMap (const \fBQwtAlphaColorMap\fP &other)" Copy constructor .PP \fBParameters:\fP .RS 4 \fIother\fP Other color map .RE .PP .SH "Member Function Documentation" .PP .SS "QColor QwtAlphaColorMap::color () const" \fBReturns:\fP .RS 4 the color .RE .PP \fBSee also:\fP .RS 4 \fBsetColor()\fP .RE .PP .SS "\fBQwtAlphaColorMap\fP & QwtAlphaColorMap::operator= (const \fBQwtAlphaColorMap\fP &other)" Assignment operator .PP \fBParameters:\fP .RS 4 \fIother\fP Other color map .RE .PP \fBReturns:\fP .RS 4 *this .RE .PP .SS "QRgb QwtAlphaColorMap::rgb (const \fBQwtDoubleInterval\fP &interval, doublevalue) const\fC [virtual]\fP" .PP Map a value of a given interval into a alpha value\&. alpha := (value - interval\&.minValue()) / interval\&.width(); .PP \fBParameters:\fP .RS 4 \fIinterval\fP Range for all values .br \fIvalue\fP Value to map into a rgb value .RE .PP \fBReturns:\fP .RS 4 rgb value, with an alpha value .RE .PP .PP Implements \fBQwtColorMap\fP\&. .SS "void QwtAlphaColorMap::setColor (const QColor &color)" Set the color .PP \fBParameters:\fP .RS 4 \fIcolor\fP Color .RE .PP \fBSee also:\fP .RS 4 \fBcolor()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �����������������������������������������������������������������������������������������������qwt5-5.2.3/doc/man/man3/QwtKnob.3�������������������������������������������������������������������0000644�0001750�0001750�00000012703�12052741140�015605� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "QwtKnob" 3 "Tue Nov 20 2012" "Version 5.2.3" "Qwt User's Guide" \" -*- nroff -*- .ad l .nh .SH NAME QwtKnob \- .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQwtAbstractSlider\fP, and \fBQwtAbstractScale\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBSymbol\fP { \fBLine\fP, \fBDot\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBQwtKnob\fP (QWidget *parent=NULL)" .br .ti -1c .RI "virtual \fB~QwtKnob\fP ()" .br .ti -1c .RI "int \fBborderWidth\fP () const " .br .ti -1c .RI "int \fBknobWidth\fP () const " .br .ti -1c .RI "virtual QSize \fBminimumSizeHint\fP () const " .br .ti -1c .RI "const \fBQwtRoundScaleDraw\fP * \fBscaleDraw\fP () const " .br .ti -1c .RI "\fBQwtRoundScaleDraw\fP * \fBscaleDraw\fP ()" .br .ti -1c .RI "void \fBsetBorderWidth\fP (int bw)" .br .ti -1c .RI "void \fBsetKnobWidth\fP (int w)" .br .ti -1c .RI "void \fBsetScaleDraw\fP (\fBQwtRoundScaleDraw\fP *)" .br .ti -1c .RI "void \fBsetSymbol\fP (\fBSymbol\fP)" .br .ti -1c .RI "void \fBsetTotalAngle\fP (double angle)" .br .ti -1c .RI "virtual QSize \fBsizeHint\fP () const " .br .ti -1c .RI "\fBSymbol\fP \fBsymbol\fP () const " .br .ti -1c .RI "double \fBtotalAngle\fP () const " .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBdraw\fP (QPainter *p, const QRect &ur)" .br .ti -1c .RI "void \fBdrawKnob\fP (QPainter *p, const QRect &r)" .br .ti -1c .RI "void \fBdrawMarker\fP (QPainter *p, double arc, const QColor &c)" .br .ti -1c .RI "virtual void \fBpaintEvent\fP (QPaintEvent *e)" .br .ti -1c .RI "virtual void \fBresizeEvent\fP (QResizeEvent *e)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The Knob Widget\&. The \fBQwtKnob\fP widget imitates look and behaviour of a volume knob on a radio\&. It contains a scale around the knob which is set up automatically or can be configured manually (see \fBQwtAbstractScale\fP)\&. Automatic scrolling is enabled when the user presses a mouse button on the scale\&. For a description of signals, slots and other members, see \fBQwtAbstractSlider\fP\&. .PP .PP \fBSee also:\fP .RS 4 \fBQwtAbstractSlider\fP and \fBQwtAbstractScale\fP for the descriptions of the inherited members\&. .RE .PP .SH "Member Enumeration Documentation" .PP .SS "enum \fBQwtKnob::Symbol\fP" Symbol .PP \fBSee also:\fP .RS 4 \fBQwtKnob::QwtKnob()\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "QwtKnob::QwtKnob (QWidget *parent = \fCNULL\fP)\fC [explicit]\fP" Constructor .PP \fBParameters:\fP .RS 4 \fIparent\fP Parent widget .RE .PP .SH "Member Function Documentation" .PP .SS "void QwtKnob::draw (QPainter *painter, const QRect &rect)\fC [protected]\fP" Repaint the knob .PP \fBParameters:\fP .RS 4 \fIpainter\fP Painter .br \fIrect\fP Update rectangle .RE .PP .SS "void QwtKnob::drawKnob (QPainter *painter, const QRect &r)\fC [protected]\fP" .PP Draw the knob\&. \fBParameters:\fP .RS 4 \fIpainter\fP painter .br \fIr\fP Bounding rectangle of the knob (without scale) .RE .PP .SS "void QwtKnob::drawMarker (QPainter *p, doublearc, const QColor &c)\fC [protected]\fP" .PP Draw the marker at the knob's front\&. \fBParameters:\fP .RS 4 \fIp\fP Painter .br \fIarc\fP Angle of the marker .br \fIc\fP Marker color .RE .PP .SS "QSize QwtKnob::minimumSizeHint () const\fC [virtual]\fP" .PP Return a minimum size hint\&. \fBWarning:\fP .RS 4 The return value of \fBQwtKnob::minimumSizeHint()\fP depends on the font and the scale\&. .RE .PP .SS "void QwtKnob::paintEvent (QPaintEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Repaint the knob .PP \fBParameters:\fP .RS 4 \fIe\fP Paint event .RE .PP .SS "void QwtKnob::resizeEvent (QResizeEvent *e)\fC [protected]\fP, \fC [virtual]\fP" Qt Resize Event .SS "const \fBQwtRoundScaleDraw\fP * QwtKnob::scaleDraw () const" \fBReturns:\fP .RS 4 the scale draw of the knob .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "\fBQwtRoundScaleDraw\fP * QwtKnob::scaleDraw ()" \fBReturns:\fP .RS 4 the scale draw of the knob .RE .PP \fBSee also:\fP .RS 4 \fBsetScaleDraw()\fP .RE .PP .SS "void QwtKnob::setBorderWidth (intbw)" .PP Set the knob's border width\&. \fBParameters:\fP .RS 4 \fIbw\fP new border width .RE .PP .SS "void QwtKnob::setKnobWidth (intw)" .PP Change the knob's width\&. The specified width must be >= 5, or it will be clipped\&. .PP \fBParameters:\fP .RS 4 \fIw\fP New width .RE .PP .SS "void QwtKnob::setScaleDraw (\fBQwtRoundScaleDraw\fP *scaleDraw)" Change the scale draw of the knob .PP For changing the labels of the scales, it is necessary to derive from \fBQwtRoundScaleDraw\fP and overload \fBQwtRoundScaleDraw::label()\fP\&. .PP \fBSee also:\fP .RS 4 \fBscaleDraw()\fP .RE .PP .SS "void QwtKnob::setSymbol (\fBQwtKnob::Symbol\fPs)" .PP Set the symbol of the knob\&. \fBSee also:\fP .RS 4 \fBsymbol()\fP .RE .PP .SS "void QwtKnob::setTotalAngle (doubleangle)" .PP Set the total angle by which the knob can be turned\&. \fBParameters:\fP .RS 4 \fIangle\fP Angle in degrees\&. .RE .PP The default angle is 270 degrees\&. It is possible to specify an angle of more than 360 degrees so that the knob can be turned several times around its axis\&. .SS "QSize QwtKnob::sizeHint () const\fC [virtual]\fP" \fBReturns:\fP .RS 4 \fBminimumSizeHint()\fP .RE .PP .SS "\fBQwtKnob::Symbol\fP QwtKnob::symbol () const" \fBReturns:\fP .RS 4 symbol of the knob .RE .PP \fBSee also:\fP .RS 4 \fBsetSymbol()\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Qwt User's Guide from the source code\&. �������������������������������������������������������������qwt5-5.2.3/doc/Doxyfile�����������������������������������������������������������������������������0000644�0001750�0001750�00000225700�12052741127�014241� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxyfile 1.8.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or sequence of words) that should # identify the project. Note that if you do not use Doxywizard you need # to put quotes around the project name if it contains spaces. PROJECT_NAME = "Qwt User's Guide" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 5.2.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = NO # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 2 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding # "class=itcl::class" will allow you to use the command class in the # itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all # comments according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you # can mix doxygen, HTML, and XML commands with Markdown formatting. # Disable only in case of backward compatibilities issues. MARKDOWN_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = NO # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and # unions are shown inside the group in which they are included (e.g. using # @ingroup) instead of on a separate page (for HTML and Man pages) or # section (for LaTeX and RTF). INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and # unions with only public data fields will be shown inline in the documentation # of the scope in which they are defined (i.e. file, namespace, or group # documentation), provided this scope is documented. If set to NO (the default), # structs, classes, and unions are shown on a separate page (for HTML and Man # pages) or section (for LaTeX and RTF). INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols. SYMBOL_CACHE_SIZE = 0 # Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be # set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given # their name and scope. Since this can be an expensive process and often the # same symbol appear multiple times in the code, doxygen keeps a cache of # pre-resolved symbols. If the cache is too small doxygen will become slower. # If the cache is too large, memory is wasted. The cache size is given by this # formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = YES # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = YES # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even # if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = NO # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = NO # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = NO # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files # containing the references data. This must be a list of .bib files. The # .bib extension is automatically appended if omitted. Using this command # requires the bibtex tool to be installed. See also # http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style # of the bibliography can be controlled using LATEX_BIB_STYLE. To use this # feature you need bibtex and perl available in the search path. CITE_BIB_FILES = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = Doxygen.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = . \ ../src \ ../textengines/mathml # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.cpp \ *.h \ *.dox # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = qwt.h # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = . # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = NO # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 4 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = Qwt \ Q #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. Note that when using a custom header you are responsible # for the proper inclusion of any scripts and style sheets that doxygen # needs, which is dependent on the configuration options used. # It is advised to generate a default header using "doxygen -w html # header.html footer.html stylesheet.css YourConfigFile" and then modify # that header. Note that the header is subject to change so you typically # have to redo this when upgrading to a newer version of doxygen or when # changing the value of configuration settings such as GENERATE_TREEVIEW! HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # style sheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that # the files will be copied as-is; there are no commands or markers available. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the style sheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of # entries shown in the various tree structured indices initially; the user # can expand and collapse entries dynamically later on. Doxygen will expand # the tree to such a level that at most the specified number of entries are # visible (unless a fully collapsed tree already exceeds this amount). # So setting the number of entries 1 will produce a full collapsed tree by # default. 0 is a special value representing an infinite number of entries # and will result in a full expanded tree by default. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = qwtdoc.qch # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = net.sourceforge.qwt-5.2.3 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = qwt-5.2.3 # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = qhelpgenerator # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) # at top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. Since the tabs have the same information as the # navigation tree you can set this option to NO if you already set # GENERATE_TREEVIEW to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. # Since the tree basically has the same information as the tab index you # could consider to set DISABLE_INDEX to NO when enabling this option. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values # (range [0,1..20]) that doxygen will group on one line in the generated HTML # documentation. Note that a value of 0 will completely suppress the enum # values from appearing in the overview section. ENUM_VALUES_PER_LINE = 1 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you may also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to # the MathJax Content Delivery Network so you can quickly see the result without # installing MathJax. # However, it is strongly recommended to install a local # copy of MathJax from http://www.mathjax.org before deployment. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension # names that should be enabled during MathJax rendering. MATHJAX_EXTENSIONS = # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = YES # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for # the generated latex document. The footer should contain everything after # the last chapter. If it is left blank doxygen will generate a # standard footer. Notice: only use this tag if you know what you are doing! LATEX_FOOTER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See # http://en.wikipedia.org/wiki/BibTeX for more info. LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load style sheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = $(QTDIR)/include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = *.h # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = QwtArray=QwtArray \ QwtMatrix=QMatrix \ Q_PROPERTY(x)= \ QT_VERSION=0x040000 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. For each # tag file the location of the external documentation should be added. The # format of a tag file without this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths # or URLs. Note that each tag file must have a unique name (where the name does # NOT include the path). If a tag file is not located in the directory in which # doxygen is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = NO # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will use the Helvetica font for all dot files that # doxygen generates. When you want a differently looking font you can specify # the font name using DOT_FONTNAME. You need to make sure dot is able to find # the font, which can be done by putting it in a standard location or by setting # the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the # directory containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the Helvetica font. # If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to # set the path where dot can find it. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If the UML_LOOK tag is enabled, the fields and methods are shown inside # the class node. If there are many fields or methods and many nodes the # graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS # threshold limits the number of items for each type to make the size more # managable. Set this to 0 for no limit. Note that the threshold may be # exceeded by 50% before the limit is enforced. UML_LIMIT_NUM_FIELDS = 10 # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. If you choose svg you need to set # HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible in IE 9+ (other browsers do not have this requirement). DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. # Note that this requires a modern browser other than Internet Explorer. # Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you # need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible. Older versions of IE do not have SVG support. INTERACTIVE_SVG = NO # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES ����������������������������������������������������������������qwt5-5.2.3/CHANGES����������������������������������������������������������������������������������0000644�0001750�0001750�00000040562�12052741122�012755� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Release 5.2.3 =================== Bug Fixes --------- Several minor bug fixes Release 5.2.2 =================== Bug Fixes --------- 1) QwtSplineCurveFitter Rounding to integers values removed 2) QwtPlot initial size of 200x200 3) QwtPlotPrintFilter, QwtPlot::print handling of background color in QwtPlot::print 4) QwtPlotPrintFilter Problem with colored plot titles fixed 5) QwtPlotItem Crash fixed, when changing the z order of attached items 6) QwtLinearScaleEngine, QwtLog10ScaleEngine Several minor fixes Release 5.2.1 =================== Bug Fixes --------- 1) Export declarations removed from qwt_valuelist.h to avoid compiler errors with Qt 4.6 + certain compilers on Windows. 2) QwtScaleDraw Wrong border dist hints for unregular scale divisions fixed Layout calculation for the tick labels fixed. The layout was wrong by 1 pixel for top/left/bottom axes. On a left axis without a title the labels were sometimes cut off. 3) QwtPainter Splits polylines for all pens to avoid a bottleneck of the raster paint engine. 4) QwtScaleWidget Calculation of the colorbar position fixed ( spacing/margin ) 5) QwtPlotCurve Wrong clipping rect fixed 6) QwtPicker QwtPicker::setTrackerFont() fixed. Recursion on the Mac, when constructing the rubberband fixed. Workaround for a Qt3 bug added that is responsible for left aligning all tracker texts to the canvas. Changes ------- 1) Project files adopted for symbian 2) qwt.pro CONFIG += ordered added for using make -j CONFIG += silent added Release 5.2.0 =================== Changes ------- 1) Ported to Qt 4.5.x 2) Scaling of non cosmetic pens (for printing to devices in high resolution) 3) Clipping of polygons for SVG rendering 4) QwtRect removed use QwtClipper instead 5) QwtPlotRescaler Introduced 6) QwtDoubleInterval BorderMode introduced 7) QwtPlotCurve Performance of incremental curve painting ( = draw(from, to) ) improved. 8) QwtLegendItem setIdentfierMode renamed to setIdentifierMode 9) QwtPlotCanvas::replot() introduced code from QwtPlot::replot shifted 10)QwtPlot drawCanvas(), updateAxes() changed from protected to public 11)QwtScaleEngine loMargin/hiMargin renamed to lowerMargin/upperMargin 12)QwtScaleDiv lBound/hBound renamed to lowerBound/upperBound 13)QwtSpline cofficientA/B/C introduced 14)QwtDial counter clockwise scales introduced 15)QwtPlotMarker Vertical text labels 16)doc/qwt-5.2.0.qch added foe browsing the Qwt docs in the Qt assistant Bug Fixes --------- 1) QwtLinearScaleEngine Rounding problems fixed 2) Again some print layout problems fixed 3) QwtPlotScaleItem: 1 pixel offset fixed 4) QwtPlotSpectrogram, clipping of contour lines against the bounding rect 5) QwtPlotZoomer::setZoomStack for stacks with unlimited depth 6) Printing of rotated tick labels Release 5.1.1 =================== Bug Fixes --------- 1) Several compiler incompatibilities fixed 2) DBL_EPSILON removed Using DBL_EPSILON in the calculations of the dials/sliders and the scale engines leads to problems with the inaccuracy of floating points. The behaviour has been reverted to 5.0.x. 3) QwtSlider/QwtKnob setScaleDraw() fixed. 4) QwtRect Pointless private declaration removed Release 5.1.0 =================== Changes ------- 1) QwtSymbol::copy introduced Now it is possible to use derived symbol classes for curves 2) QwtPlotScaleItem introduced A new type of plot item for displaying axes on the canvas 3) QwtClipper added A collection of clipping algos 4) Using DBL_EPSILON This change allows smaller intervals for sliders/dials 5) QwtPanner setOrientation() added. 6) QwtPlot axisStepSize() added clear is virtual now 7) QwtPlotPrintFilter PrintCanvasBackground splitted into PrintBackground, PrintFrameWithScales 8) QwtPlotZoomer setZoomStack() added 9) Changes for the QwtPolar package QwtLegendItemManager introduced QwtMagnifier introduced 10)Suffix rules added in qwtconfig.pri for different targets for debug/release builds. Bug Fixes --------- 1. QwtAbstractScaleDraw::setAbstractScaleDraw Reinitialization problem fixed 2. QwtLegendItem key event handlers fixed 3. QwtPicker solaris-cc compiler problem fixed 4. Inaccurate mapping of scale to widget coordinates fixed 5. QwtPlotCurve::draw Updates for Qt 4.3 added 6. QwtPlotLayout AlignToCanvas layout calculation fixed 7. QwtPlot::print Workaround for a QPen initialization problem, when printing to Pdf, added 8. QwtText Layout of rich text documents fixed 9. Designer Handling of QwtScaleWidget fixed 10. realtime example Qt::WA_PaintOutsidePaintEvent added, ScrollZoomer fixed 11. Several others I have forgotten Release 5.0.2 =================== Bug Fixes --------- 1. QwtPlotCurve::Xfy curve type fixed 2. Memory leak in QwtLegend fixed 3. Vertical alignment of rich texts fixed 4. Workaround for a Qt4 bug added, that produces horrible performance when painting curves with a pen width > 1. 5. Background for the tracker text of QwtPickers fixed. Improved (faster + better rendered texts) implementation of painting tracker texts, using capabilities of Qt >= 4.3. 6. QwtArrowButton/QwtCounter: workaround for layout bug ( Qt < 4.3 ) of the Cleanlook style added. 7. A couple of minor fixes Changes ------- 1. QSvgGenerator added to the bode example Release 5.0.1 =================== Changes ------- 1. A couple of problems, when building Qwt fixed. 2. Displaying Rich Text with Qt 4.x fixed Release 5.0.0 =================== Platforms --------- Support of Qt3 and Qt4. Qt2 is not supported any longer. Key features ------------ 1. Redesign of plot items. Makes it much easier to develop individual items. 2. Redesign of the scale classes. All calculations are collected in scale engines, where the application can implement it´s own (f.e log2, or date scales). Now it´s also possible to have individual and completely irregular scales 3. Redesign of the QwtText classes. The MathML renderer of the Qt4 solutions package is embedded. work for all expressions/situations. 4. New classes for navigating: QwtPanner, QwtMaginfier 5. Spectrogram/Contour plots and other classes for displaying raster data added. Changes ------- 5.0.0 is by far the release with the most changes in the history of Qwt - too many to make list. Release 4.2.0/0.4.2 =================== License -------- A couple of exceptions to the LGPL with the intention to allow static linking with commercial applications. See COPYING. Key features: ------------- 1. Designer plugin 2. Rich Text support ( f.e. E = m * c2 ) added. 3. QwtDial class family added (QwtDial, QwtCompass, QwtAnalogClock, ...) 4. QwtPicker class family added. Includes QwtPlotZoomer, a complete implementation of recursive zooming. 5. Device metrics independent printing of QwtPlot. (QPrinter::HighResolution) 6. QwtPlot::setCurveBrush(), QwtCurve::setBrush() added. The area between curve and baseline will be filled with this brush. 7. Rotation of axis tick labels added. Very useful for axis with long labels like time scales ... 8. Added a new abstract QwtData class to plot data from almost any type of container class. 9. QwtDoublePoint, QwtDoubleSize, QwtDoubleRect double counterparts for QPoint, QSize, QRect. 10. First steps to support Qtopia. All examples can be compiled and started in the qvfb emulator. Changes: --------- 1. Rewrite of QwtLegend/QwtLegendItem (no QTable anymore) 2. Each plot item will be painted, even if one of the axis it is attached to is disabled. (like in all other releases beside 0.4.1) 3. Code for double buffering moved to a new class QwtPaintBuffer. Double buffering can be enabled/disabled now. 4. QwtPainter, QwtMetricsMap, QwtLayoutMetrics added Hide paint device metrics dependencies. 5. Layout code rewritten and moved to a new class QwtPlotLayout New layout options canvasMargin(), alignCanvasToScales() 6. QwtPlot: sizeHint() != minimumSizeHint() 9. Internal plot data are private again. A couple of get methods added instead. 10. canvas repaints triggered by paint events. Enables event filtering 11. QwtPlot::drawCanvasItems added. In opposite to QwtPlot::drawCanvas it is used by the printing code too. 12. qwtMax, qwtMin, qwtInt mapped to QMAX, QMIN, qRound from qglobal.h 13. operator= for plot item classes changed. 14. readOnly property added for sliders. 15. valid flag added for QwtDblRange 16. QwtCounter wrap around policy: a counter under- or overflow sets focus to the smallest up/down button and disables counting. A space bar keypress release event re-enables counting. 17. QwtPushButton added. A class that adds rich text and alignments features to QPushButton, like they are used in QLabel 18. Clipped painting code moved from QwtCurve to QwtPainter/QwtRect 19. Canvas cache added to optimize trivial repaints. 20. QwtPlot::drawCurve added for incremental curve data 21. QwtSliderBase, readOnly, isValid added 22. Added filtering of the colors of the title and scales to QwtPrintFilter. 23. Support of QT_NO_CAST_ASII and QT_NO_COMPAT added 24. Batch file added for generating Visual Studio project files 25. QwtPlotCurve, QwtPlotMarker, QwtPlotGrid: more methods public 26. QwtPlot::setLegendPosition added 27. A lot of changes I don't remember, ... sorry. Bugfixes: --------- 1. Autodetection of painter redirection. QPixmap::grabWidget() works with Qwt Widgets again. 2. QwtSlider: Rounding double->int conversions instead of simple casts. 3. Bad additional line, connected to the first curve point, when zooming deep, fixed. 4. QwtMarker: Painting of symbols with width != height fixed 5. QwtPlot::plotMouseXXX/canvasMap pixel coordinates synced. Now both include the canvas frame. 6. Layout fixed for QwtScaleDraws without tick labels 8. Tab focus chains fixed, focus indications added. 9. Support QwtAutoScale::Inverted when autoScale is off also. 10. Keyboard control, focus indications added. 11. Improved QStyle awareness. 12. Printing of plots with disabled axes Examples -------- 1. New example linux/cpustat added. Runs also on non linux boxes with dummy values. Beside showing a couple of features that are new with 0.4.1 and 0.4.2, it shows how to extend and customize a QwtPlots. 2. Added new example event_filter to demonstrate event filtering. This example shows how to add additional controls to the scales, how to translate mouse clicks on the scales into signals and how to move points on the canvas. 3. realtime example shows how to use scrollbars when zooming Release 0.4.1 ============ Changes: --------- 1. Platform independent project files. makefiles directory removed. 2. RPM spec file template added. 3. __declspec formalism added for Win32 DLLs. Requires 'DEFINES += QWT_DLL' in the .pro file. 4. QString used for visible texts. 5. Code for error curves removed. These type of features should be implemented in derived curve classes. 6. A lot of Qt 1.2 related code removed/replaced. 7. QwtColorFilter, QwtPixFrame removed. QwtPlotPixFrame renamed to QwtPlotCanvas. 8. qmodules.h aware. Skips QwtLegend in case of !QT_MODULE_TABLE 9. All Widgets including QwtPlot optimized to reduce flicker during resize/repaint. 10. QwtPlot curves/markers can be disabled/enabled to hide/show individual curves without removing the curves from the plot. 11. Internal maps removed from QwtCurve. QwtCurve::setMap, QwtCurve::setRect, QwtCurve::setRange removed. Feature additions: ------------------ 1. Printing QwtPlot::print prints to any type of QPaintDevice now. Hardcoded printer attributes margin, creator and document title have been removed and must/can be set by the applications now. Printing of background and legends added. QwtColorFilter replaced by QwtPlotPrintFilter. 2. Layout Many layout fixes and additions. Now all Widgets behave well in QLayouts and provide sensible sizeHints. QwtPlot::setMargin(int) added. Fieldwidth added for QwtPlot::setAxisFormat for application that need range independent width. Title and axis title are Qt:Alignment aware. Qt::WordBreak or multiline titles are possible. 3. Legend En/Disabling of single curves in the legend added. QwtPlot::setAutoLegend added. 4. Extensibility QwtPlot::insertCurve + QwtPlot::insertMarker added. Now derived classes of QwtPlotCurve and QwtPlotMarker can be added. Virtual methods provided by QwtPlotCurve for sub-classing. QwtScale::setScaleDraw + QwtPlot::setAxisScaleDraw + some virtual methods for QwtScaleDraw added. Application can implement individual axis labels now. 5. Sliders QWheelEvent added. The MouseWheel stepsize is controlled by the Scroll Page Size. QwtWheel::setWheelWidth added. QwtKnob::setSymbol, QwtKnob::symbol added. Bugfixes: --------- 1. Workaround for spontanous curves resulting from overruns when zooming too deep. 2. Wrong QColorGroup::ColorRole for background colors fixed. Necessary for several non default QStyles. 3. QwtWheel fixed for vertical wheels. Better color support. 4. QwtSlider fixed. 5. Many forgotten others Release 0.4.0 ============ Bugfixes: --------- 1. A few occurences of the boolean literal \c false were changed into macro \c FALSE for cross compiler compatibility. 2. A few local variables in member functions were renamed to suppress warnings issued by really picky compilers about global/class variables being hidden. 3. In qwt_legend.h, a fully qualified name was used in a class declaration. The HPUX compiler chokes on this (and it's ugly), so it was fixed. 4. Macro M_2PI is now only defined is this hasn't already been done by the system's clib. Feature additions: ------------------ 1. Qwt now works with Qt3.0. In order to achieve this, QwtLegend now no longer derives from QTableView, but from QTable. This seems to have had quite a few consequences. Kudo's to Uwe Rathmann for uploading this nice fix to the CVS tree. 2. Getters for a plot's title and title font have been added. Release 0.3.0 ============ License: -------- 1. The license has changed from GPL to LGPL. Bugfixes: --------- 1. The makefiles for win32 caused object files to have extension .o instead of .obj. The 'propagate' file was changed to fix this, using tmake's target platform flag. 2. There were problems with rint() on win32 platforms. rint() is a BSD call, not even available on all unices. All calls to rint(x) have been replaced by floor(x+.5). 3. Some static class data members were initialized with the value of other static class data members (from Qt). This caused programs depend on the initialization order of class members. This is now fixed by replacing the static properties by static signleton factories. 4. When a plot was zoomed and then printed, curves and markers laying outside the plot's scale were still printed. The print() function now uses clipping. Feature additions: ------------------ 1. Multi-line plot titles are now supported: the PostScript document name is not the plot title, with "\n" characters replaced by "--". Geometry management has been changed to support multi-line titles. 2. In the mailinglist, there were often feature requests for features that were in fact implemented, but not available through QwtPlot's API. Many private members have been made protected or even public, to give users more control. This is poor design, but Qwt will be refactored anyway. 3. Qwt always displayed floats with 5 digits. This was insufficient for many applications. QwtPlot, QwtScale, QwtAutoScale got some methods to set the label format. This is a printf like format for the numbers at the scales, consisting of 'f' and a precision, or 'g' and the significance. Build system: ------------- 1. The 'makefiles' directory was removed from the cvs tree, and is now only generated for releases. CVS users should have tmake installed, to generate the makefiles themselves. 2. The 'examples' directory now uses tmake's 'subdirs' template, to iterate over all subdirectories and build all examples with one command. There was allready a makefile for this, but now the process is automated by tmake. 3. Under unix, the library now gets a proper version number. Current version is 0.3.0. Documentation: -------------- 1. All documentation is converted to the Doxygen documentation system. The release contains two settings files, 'Doxygen' and 'Doxygen.users', generating a developer's and user's manual, respectively. ����������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/qwt.prf����������������������������������������������������������������������������������0000644�0001750�0001750�00000001761�12052741127�013311� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### QwtBuild = dll QwtVersion = 5.2.2 unix { QwtBase = /usr/local/qwt-$${QwtVersion} LIBS += -L$${QwtBase}/lib -lqwt } win32 { QwtBase = C:/Qwt-$${QwtVersion} contains(QwtBuild, dll) { DEFINES += QWT_DLL msvc:LIBS += $${QwtBase}/lib/qwt5.lib msvc.net:LIBS += $${QwtBase}/lib/qwt5.lib msvc2005:LIBS += $${QwtBase}/lib/qwt5.lib } else { win32-msvc:LIBS += $${QwtBase}/lib/qwt.lib win32-msvc.net:LIBS += $${QwtBase}/lib/qwt.lib win32-msvc2005:LIBS += $${QwtBase}/lib/qwt.lib } g++:LIBS += -L$${QwtBase}/lib -lqwt } INCLUDEPATH += $${QwtBase}/include ���������������qwt5-5.2.3/qwt.pro����������������������������������������������������������������������������������0000644�0001750�0001750�00000001034�12052741127�013313� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ########################### # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ############################################## include( qwtconfig.pri ) TEMPLATE = subdirs CONFIG += ordered SUBDIRS = \ src \ textengines contains(CONFIG, QwtDesigner ) { SUBDIRS += designer } contains(CONFIG, QwtExamples ) { SUBDIRS += examples } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/�����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�014315� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/mathml/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015577� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/mathml/mathml.pro������������������������������������������������������������0000644�0001750�0001750�00000002441�12052741127�017604� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ########################### # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ############################################## VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt3 message(qwtmathml is not supported for Qt3 !) TEMPLATE = subdirs } else { # Qt4 include( ../textengines.pri ) exists( qtmmlwidget.cpp ) { TARGET = qwtmathml$${SUFFIX_STR} VERSION = 1.0.0 QT += xml HEADERS = \ qwt_mathml_text_engine.h SOURCES = \ qwt_mathml_text_engine.cpp # The files below can be found in the MathML tarball of the Qt Solution # package http://www.trolltech.com/products/qt/addon/solutions/catalog/4/Widgets/qtmmlwidget # that is available for owners of a commercial Qt license. # # Copy them here, or modify the pro file to your installation. HEADERS += qtmmlwidget.h SOURCES += qtmmlwidget.cpp } else { error( "qtmmlwidget.cpp is missing, see http://www.trolltech.com/products/qt/addon/solutions/catalog/4/Widgets/qtmmlwidget" ) } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/mathml/qwt_mathml_text_engine.h����������������������������������������������0000644�0001750�0001750�00000003546�12052741123�022522� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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_MATHML_TEXT_ENGINE_H #define QWT_MATHML_TEXT_ENGINE_H 1 #if QT_VERSION >= 0x040000 #include "qwt_text_engine.h" /*! \brief Text Engine for the MathML renderer of the Qt solutions package. The Qt Solution package includes a renderer for MathML http://www.trolltech.com/products/qt/addon/solutions/catalog/4/Widgets/qtmmlwidget that is available for owners of a commercial Qt license. You need a version >= 2.1, that is only available for Qt4. To enable MathML support the following code needs to be added to the application: \verbatim #include QwtText::setTextEngine(QwtText::MathMLText, new QwtMathMLTextEngine()); \endverbatim \sa QwtTextEngine, QwtText::setTextEngine \warning Unfortunately the MathML renderer doesn't support rotating of texts. */ class QWT_EXPORT QwtMathMLTextEngine: public QwtTextEngine { public: QwtMathMLTextEngine(); virtual ~QwtMathMLTextEngine(); virtual int heightForWidth(const QFont &font, int flags, const QString &text, int width) const; virtual QSize textSize(const QFont &font, int flags, const QString &text) const; virtual void draw(QPainter *painter, const QRect &rect, int flags, const QString &text) const; virtual bool mightRender(const QString &) const; virtual void textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const; }; #endif // QT_VERSION >= 0x040000 #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/mathml/qtmmlwidget.cpp.diff��������������������������������������������������0000644�0001750�0001750�00000001062�12052741122�021542� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- qtmmlwidget.cpp.org 2007-01-15 22:34:37.000000000 +0100 +++ qtmmlwidget.cpp 2007-01-15 22:34:37.000000000 +0100 @@ -3970,9 +3970,6 @@ void MmlNode::paint(QPainter *p) { p->save(); - p->setViewport(deviceRect()); - p->setWindow(myRect()); - QColor fg = color(); QColor bg = background(); @@ -4219,7 +4216,9 @@ p->save(); p->setFont(fn); - p->drawText(0, fm.strikeOutPos(), m_text); + QPoint dPos = devicePoint(relOrigin()); + p->drawText(dPos.x(), dPos.y() + fm.strikeOutPos(), m_text); + p->restore(); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/textengines/mathml/qwt_mathml_text_engine.cpp��������������������������������������������0000644�0001750�0001750�00000006340�12052741126�023053� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2003 Uwe Rathmann * * 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 #include #if QT_VERSION >= 0x040000 #include #include #include "qwt_mathml_text_engine.h" #include //! Constructor QwtMathMLTextEngine::QwtMathMLTextEngine() { } //! Destructor QwtMathMLTextEngine::~QwtMathMLTextEngine() { } /*! Find the height for a given width \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \param width Width \return Calculated height */ int QwtMathMLTextEngine::heightForWidth(const QFont& font, int flags, const QString& text, int) const { return textSize(font, flags, text).height(); } /*! Returns the size, that is needed to render text \param font Font of the text \param flags Bitwise OR of the flags used like in QPainter::drawText \param text Text to be rendered \return Caluclated size */ QSize QwtMathMLTextEngine::textSize(const QFont &font, int, const QString& text) const { static QString t; static QSize sz; if ( text != t ) { QtMmlDocument doc; doc.setContent(text); doc.setBaseFontPointSize(font.pointSize()); sz = doc.size(); t = text; } return sz; } /*! Return margins around the texts \param left Return 0 \param right Return 0 \param top Return 0 \param bottom Return 0 */ void QwtMathMLTextEngine::textMargins(const QFont &, const QString &, int &left, int &right, int &top, int &bottom) const { left = right = top = bottom = 0; } /*! Draw the text in a clipping rectangle \param painter Painter \param rect Clipping rectangle \param flags Bitwise OR of the flags like in for QPainter::drawText \param text Text to be rendered */ void QwtMathMLTextEngine::draw(QPainter *painter, const QRect &rect, int flags, const QString& text) const { QtMmlDocument doc; doc.setContent(text); doc.setBaseFontPointSize(painter->font().pointSize()); const QSize docSize = doc.size(); QPoint pos = rect.topLeft(); if ( rect.width() > docSize.width() ) { if ( flags & Qt::AlignRight ) pos.setX(rect.right() - docSize.width()); if ( flags & Qt::AlignHCenter ) pos.setX(rect.center().x() - docSize.width() / 2); } if ( rect.height() > docSize.height() ) { if ( flags & Qt::AlignBottom ) pos.setY(rect.bottom() - docSize.height()); if ( flags & Qt::AlignVCenter ) pos.setY(rect.center().y() - docSize.height() / 2); } doc.paint(painter, pos); } /*! Test if a string can be rendered by QwtMathMLTextEngine \param text Text to be tested \return true, if text begins with "". */ bool QwtMathMLTextEngine::mightRender(const QString &text) const { return text.trimmed().startsWith(" #include class Plot: public QwtPlot { Q_OBJECT public: Plot(QWidget * = NULL); public slots: void showContour(bool on); void showSpectrogram(bool on); void printPlot(); private: QwtPlotSpectrogram *d_spectrogram; }; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/spectrogram/plot.cpp������������������������������������������������������������0000644�0001750�0001750�00000010236�12052741127�017610� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #if QT_VERSION >= 0x040000 #include #endif #include #include #include #include #include #include #include #include "plot.h" class MyZoomer: public QwtPlotZoomer { public: MyZoomer(QwtPlotCanvas *canvas): QwtPlotZoomer(canvas) { setTrackerMode(AlwaysOn); } virtual QwtText trackerText(const QwtDoublePoint &pos) const { QColor bg(Qt::white); #if QT_VERSION >= 0x040300 bg.setAlpha(200); #endif QwtText text = QwtPlotZoomer::trackerText(pos); text.setBackgroundBrush( QBrush( bg )); return text; } }; class SpectrogramData: public QwtRasterData { public: SpectrogramData(): QwtRasterData(QwtDoubleRect(-1.5, -1.5, 3.0, 3.0)) { } virtual QwtRasterData *copy() const { return new SpectrogramData(); } virtual QwtDoubleInterval range() const { return QwtDoubleInterval(0.0, 10.0); } virtual double value(double x, double y) const { const double c = 0.842; const double v1 = x * x + (y-c) * (y+c); const double v2 = x * (y+c) + x * (y+c); return 1.0 / (v1 * v1 + v2 * v2); } }; Plot::Plot(QWidget *parent): QwtPlot(parent) { d_spectrogram = new QwtPlotSpectrogram(); QwtLinearColorMap colorMap(Qt::darkCyan, Qt::red); colorMap.addColorStop(0.1, Qt::cyan); colorMap.addColorStop(0.6, Qt::green); colorMap.addColorStop(0.95, Qt::yellow); d_spectrogram->setColorMap(colorMap); d_spectrogram->setData(SpectrogramData()); d_spectrogram->attach(this); QwtValueList contourLevels; for ( double level = 0.5; level < 10.0; level += 1.0 ) contourLevels += level; d_spectrogram->setContourLevels(contourLevels); // A color bar on the right axis QwtScaleWidget *rightAxis = axisWidget(QwtPlot::yRight); rightAxis->setTitle("Intensity"); rightAxis->setColorBarEnabled(true); rightAxis->setColorMap(d_spectrogram->data().range(), d_spectrogram->colorMap()); setAxisScale(QwtPlot::yRight, d_spectrogram->data().range().minValue(), d_spectrogram->data().range().maxValue() ); enableAxis(QwtPlot::yRight); plotLayout()->setAlignCanvasToScales(true); replot(); // LeftButton for the zooming // MidButton for the panning // RightButton: zoom out by 1 // Ctrl+RighButton: zoom out to full size QwtPlotZoomer* zoomer = new MyZoomer(canvas()); #if QT_VERSION < 0x040000 zoomer->setMousePattern(QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlButton); #else zoomer->setMousePattern(QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlModifier); #endif zoomer->setMousePattern(QwtEventPattern::MouseSelect3, Qt::RightButton); QwtPlotPanner *panner = new QwtPlotPanner(canvas()); panner->setAxisEnabled(QwtPlot::yRight, false); panner->setMouseButton(Qt::MidButton); // Avoid jumping when labels with more/less digits // appear/disappear when scrolling vertically const QFontMetrics fm(axisWidget(QwtPlot::yLeft)->font()); QwtScaleDraw *sd = axisScaleDraw(QwtPlot::yLeft); sd->setMinimumExtent( fm.width("100.00") ); const QColor c(Qt::darkBlue); zoomer->setRubberBandPen(c); zoomer->setTrackerPen(c); } void Plot::showContour(bool on) { d_spectrogram->setDisplayMode(QwtPlotSpectrogram::ContourMode, on); replot(); } void Plot::showSpectrogram(bool on) { d_spectrogram->setDisplayMode(QwtPlotSpectrogram::ImageMode, on); d_spectrogram->setDefaultContourPen(on ? QPen() : QPen(Qt::NoPen)); replot(); } void Plot::printPlot() { QPrinter printer; printer.setOrientation(QPrinter::Landscape); #if QT_VERSION < 0x040000 printer.setColorMode(QPrinter::Color); #if 0 printer.setOutputFileName("/tmp/spectrogram.ps"); #endif if (printer.setup()) #else #if 0 printer.setOutputFileName("/tmp/spectrogram.pdf"); #endif QPrintDialog dialog(&printer); if ( dialog.exec() ) #endif { print(printer); } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/spectrogram/main.cpp������������������������������������������������������������0000644�0001750�0001750�00000004416�12052741127�017561� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "plot.h" class MainWindow: public QMainWindow { public: MainWindow(QWidget * = NULL); private: Plot *d_plot; }; MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) { d_plot = new Plot(this); setCentralWidget(d_plot); QToolBar *toolBar = new QToolBar(this); QToolButton *btnSpectrogram = new QToolButton(toolBar); QToolButton *btnContour = new QToolButton(toolBar); QToolButton *btnPrint = new QToolButton(toolBar); #if QT_VERSION >= 0x040000 btnSpectrogram->setText("Spectrogram"); //btnSpectrogram->setIcon(QIcon()); btnSpectrogram->setCheckable(true); btnSpectrogram->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolBar->addWidget(btnSpectrogram); btnContour->setText("Contour"); //btnContour->setIcon(QIcon()); btnContour->setCheckable(true); btnContour->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolBar->addWidget(btnContour); btnPrint->setText("Print"); btnPrint->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolBar->addWidget(btnPrint); #else btnSpectrogram->setTextLabel("Spectrogram"); //btnSpectrogram->setPixmap(zoom_xpm); btnSpectrogram->setToggleButton(true); btnSpectrogram->setUsesTextLabel(true); btnContour->setTextLabel("Contour"); //btnContour->setPixmap(zoom_xpm); btnContour->setToggleButton(true); btnContour->setUsesTextLabel(true); btnPrint->setTextLabel("Print"); btnPrint->setUsesTextLabel(true); #endif addToolBar(toolBar); connect(btnSpectrogram, SIGNAL(toggled(bool)), d_plot, SLOT(showSpectrogram(bool))); connect(btnContour, SIGNAL(toggled(bool)), d_plot, SLOT(showContour(bool))); connect(btnPrint, SIGNAL(clicked()), d_plot, SLOT(printPlot()) ); #if QT_VERSION >= 0x040000 btnSpectrogram->setChecked(true); btnContour->setChecked(false); #else btnSpectrogram->setOn(true); btnContour->setOn(false); #endif } int main(int argc, char **argv) { QApplication a(argc, argv); MainWindow mainWindow; #if QT_VERSION < 0x040000 a.setMainWidget(&mainWindow); #endif mainWindow.resize(600,400); mainWindow.show(); return a.exec(); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015264� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/cpustat.cpp�������������������������������������������������������������0000644�0001750�0001750�00000017757�12052741127�017474� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include "cpustat.h" CpuStat::CpuStat() { lookUp(procValues); } QTime CpuStat::upTime() const { QTime t; for ( int i = 0; i < NValues; i++ ) t = t.addSecs(int(procValues[i] / 100)); return t; } void CpuStat::statistic(double &user, double &system) { double values[NValues]; lookUp(values); double userDelta = values[User] + values[Nice] - procValues[User] - procValues[Nice]; double systemDelta = values[System] - procValues[System]; double totalDelta = 0; for ( int i = 0; i < NValues; i++ ) totalDelta += values[i] - procValues[i]; user = userDelta / totalDelta * 100.0; system = systemDelta / totalDelta * 100.0; for ( int j = 0; j < NValues; j++ ) procValues[j] = values[j]; } void CpuStat::lookUp(double values[NValues]) const { QFile file("/proc/stat"); #if QT_VERSION >= 0x040000 if ( !file.open(QIODevice::ReadOnly) ) #else if ( !file.open(IO_ReadOnly) ) #endif { static double dummyValues[][NValues] = { { 103726, 0, 23484, 819556 }, { 103783, 0, 23489, 819604 }, { 103798, 0, 23490, 819688 }, { 103820, 0, 23490, 819766 }, { 103840, 0, 23493, 819843 }, { 103875, 0, 23499, 819902 }, { 103917, 0, 23504, 819955 }, { 103950, 0, 23508, 820018 }, { 103987, 0, 23510, 820079 }, { 104020, 0, 23513, 820143 }, { 104058, 0, 23514, 820204 }, { 104099, 0, 23520, 820257 }, { 104121, 0, 23525, 820330 }, { 104159, 0, 23530, 820387 }, { 104176, 0, 23534, 820466 }, { 104215, 0, 23538, 820523 }, { 104245, 0, 23541, 820590 }, { 104267, 0, 23545, 820664 }, { 104311, 0, 23555, 820710 }, { 104355, 0, 23565, 820756 }, { 104367, 0, 23567, 820842 }, { 104383, 0, 23572, 820921 }, { 104396, 0, 23577, 821003 }, { 104413, 0, 23579, 821084 }, { 104446, 0, 23588, 821142 }, { 104521, 0, 23594, 821161 }, { 104611, 0, 23604, 821161 }, { 104708, 0, 23607, 821161 }, { 104804, 0, 23611, 821161 }, { 104895, 0, 23620, 821161 }, { 104993, 0, 23622, 821161 }, { 105089, 0, 23626, 821161 }, { 105185, 0, 23630, 821161 }, { 105281, 0, 23634, 821161 }, { 105379, 0, 23636, 821161 }, { 105472, 0, 23643, 821161 }, { 105569, 0, 23646, 821161 }, { 105666, 0, 23649, 821161 }, { 105763, 0, 23652, 821161 }, { 105828, 0, 23661, 821187 }, { 105904, 0, 23666, 821206 }, { 105999, 0, 23671, 821206 }, { 106094, 0, 23676, 821206 }, { 106184, 0, 23686, 821206 }, { 106273, 0, 23692, 821211 }, { 106306, 0, 23700, 821270 }, { 106341, 0, 23703, 821332 }, { 106392, 0, 23709, 821375 }, { 106423, 0, 23715, 821438 }, { 106472, 0, 23721, 821483 }, { 106531, 0, 23727, 821517 }, { 106562, 0, 23732, 821582 }, { 106597, 0, 23736, 821643 }, { 106633, 0, 23737, 821706 }, { 106666, 0, 23742, 821768 }, { 106697, 0, 23744, 821835 }, { 106730, 0, 23748, 821898 }, { 106765, 0, 23751, 821960 }, { 106799, 0, 23754, 822023 }, { 106831, 0, 23758, 822087 }, { 106862, 0, 23761, 822153 }, { 106899, 0, 23763, 822214 }, { 106932, 0, 23766, 822278 }, { 106965, 0, 23768, 822343 }, { 107009, 0, 23771, 822396 }, { 107040, 0, 23775, 822461 }, { 107092, 0, 23780, 822504 }, { 107143, 0, 23787, 822546 }, { 107200, 0, 23795, 822581 }, { 107250, 0, 23803, 822623 }, { 107277, 0, 23810, 822689 }, { 107286, 0, 23810, 822780 }, { 107313, 0, 23817, 822846 }, { 107325, 0, 23818, 822933 }, { 107332, 0, 23818, 823026 }, { 107344, 0, 23821, 823111 }, { 107357, 0, 23821, 823198 }, { 107368, 0, 23823, 823284 }, { 107375, 0, 23824, 823377 }, { 107386, 0, 23825, 823465 }, { 107396, 0, 23826, 823554 }, { 107422, 0, 23830, 823624 }, { 107434, 0, 23831, 823711 }, { 107456, 0, 23835, 823785 }, { 107468, 0, 23838, 823870 }, { 107487, 0, 23840, 823949 }, { 107515, 0, 23843, 824018 }, { 107528, 0, 23846, 824102 }, { 107535, 0, 23851, 824190 }, { 107548, 0, 23853, 824275 }, { 107562, 0, 23857, 824357 }, { 107656, 0, 23863, 824357 }, { 107751, 0, 23868, 824357 }, { 107849, 0, 23870, 824357 }, { 107944, 0, 23875, 824357 }, { 108043, 0, 23876, 824357 }, { 108137, 0, 23882, 824357 }, { 108230, 0, 23889, 824357 }, { 108317, 0, 23902, 824357 }, { 108412, 0, 23907, 824357 }, { 108511, 0, 23908, 824357 }, { 108608, 0, 23911, 824357 }, { 108704, 0, 23915, 824357 }, { 108801, 0, 23918, 824357 }, { 108891, 0, 23928, 824357 }, { 108987, 0, 23932, 824357 }, { 109072, 0, 23943, 824361 }, { 109079, 0, 23943, 824454 }, { 109086, 0, 23944, 824546 }, { 109098, 0, 23950, 824628 }, { 109108, 0, 23955, 824713 }, { 109115, 0, 23957, 824804 }, { 109122, 0, 23958, 824896 }, { 109132, 0, 23959, 824985 }, { 109142, 0, 23961, 825073 }, { 109146, 0, 23962, 825168 }, { 109153, 0, 23964, 825259 }, { 109162, 0, 23966, 825348 }, { 109168, 0, 23969, 825439 }, { 109176, 0, 23971, 825529 }, { 109185, 0, 23974, 825617 }, { 109193, 0, 23977, 825706 }, { 109198, 0, 23978, 825800 }, { 109206, 0, 23978, 825892 }, { 109212, 0, 23981, 825983 }, { 109219, 0, 23981, 826076 }, { 109225, 0, 23981, 826170 }, { 109232, 0, 23984, 826260 }, { 109242, 0, 23984, 826350 }, { 109255, 0, 23986, 826435 }, { 109268, 0, 23987, 826521 }, { 109283, 0, 23990, 826603 }, { 109288, 0, 23991, 826697 }, { 109295, 0, 23993, 826788 }, { 109308, 0, 23994, 826874 }, { 109322, 0, 24009, 826945 }, { 109328, 0, 24011, 827037 }, { 109338, 0, 24012, 827126 }, { 109347, 0, 24012, 827217 }, { 109354, 0, 24017, 827305 }, { 109367, 0, 24017, 827392 }, { 109371, 0, 24019, 827486 }, }; static int counter = 0; for ( int i = 0; i < NValues; i++ ) values[i] = dummyValues[counter][i]; counter = (counter + 1) % (sizeof(dummyValues) / sizeof(dummyValues[0])); } else { QTextStream textStream(&file); do { QString line = textStream.readLine(); #if QT_VERSION < 0x040000 line = line.stripWhiteSpace(); #else line = line.trimmed(); #endif if ( line.startsWith("cpu ") ) { const QStringList valueList = #if QT_VERSION < 0x040000 QStringList::split(" ", line); #else line.split(" ", QString::SkipEmptyParts); #endif if ( valueList.count() >= 5 ) { for ( int i = 0; i < NValues; i++ ) values[i] = valueList[i+1].toDouble(); } break; } } #if QT_VERSION < 0x040000 while(!textStream.eof()); #else while(!textStream.atEnd()); #endif } } �����������������qwt5-5.2.3/examples/cpuplot/cpustat.h���������������������������������������������������������������0000644�0001750�0001750�00000000511�12052741124�017112� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class CpuStat { public: CpuStat(); void statistic(double &user, double &system); QTime upTime() const; enum Value { User, Nice, System, Idle, NValues }; private: void lookUp(double[NValues]) const; double procValues[NValues]; }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/cpupiemarker.cpp��������������������������������������������������������0000644�0001750�0001750�00000002631�12052741127�020461� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include "cpuplot.h" #include "cpupiemarker.h" CpuPieMarker::CpuPieMarker() { setZ(1000); #if QT_VERSION >= 0x040000 setRenderHint(QwtPlotItem::RenderAntialiased, true); #endif } int CpuPieMarker::rtti() const { return QwtPlotItem::Rtti_PlotUserItem; } void CpuPieMarker::draw(QPainter *p, const QwtScaleMap &, const QwtScaleMap &, const QRect &rect) const { const CpuPlot *cpuPlot = (CpuPlot *)plot(); const QwtScaleMap yMap = cpuPlot->canvasMap(QwtPlot::yLeft); const int margin = 5; QRect pieRect; pieRect.setX(rect.x() + margin); pieRect.setY(rect.y() + margin); pieRect.setHeight(yMap.transform(80.0)); pieRect.setWidth(pieRect.height()); const int dataType[] = { CpuPlot::User, CpuPlot::System, CpuPlot::Idle }; int angle = (int)(5760 * 0.75); for ( unsigned int i = 0; i < sizeof(dataType) / sizeof(dataType[0]); i++ ) { const QwtPlotCurve *curve = cpuPlot->cpuCurve(dataType[i]); if ( curve->dataSize() > 0 ) { const int value = (int)(5760 * curve->y(0) / 100.0); p->save(); p->setBrush(QBrush(curve->pen().color(), Qt::SolidPattern)); if ( value != 0 ) p->drawPie(pieRect, -angle, -value); p->restore(); angle += value; } } } �������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/cpuplot.h���������������������������������������������������������������0000644�0001750�0001750�00000001224�12052741124�017117� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include "cpustat.h" #define HISTORY 60 // seconds class QwtPlotCurve; class CpuPlot : public QwtPlot { Q_OBJECT public: enum CpuData { User, System, Total, Idle, NCpuData }; CpuPlot(QWidget * = 0); const QwtPlotCurve *cpuCurve(int id) const { return data[id].curve; } protected: void timerEvent(QTimerEvent *e); private slots: void showCurve(QwtPlotItem *, bool on); private: struct { QwtPlotCurve *curve; double data[HISTORY]; } data[NCpuData]; double timeData[HISTORY]; int dataCount; CpuStat cpuStat; }; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/cpupiemarker.h����������������������������������������������������������0000644�0001750�0001750�00000000770�12052741124�020125� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������//----------------------------------------------------------------- // This class shows how to extend QwtPlotItems. It displays a // pie chart of user/total/idle cpu usage in percent. //----------------------------------------------------------------- #include class CpuPieMarker: public QwtPlotItem { public: CpuPieMarker(); virtual int rtti() const; virtual void draw(QPainter *p, const QwtScaleMap &, const QwtScaleMap &, const QRect &rect) const; }; ��������qwt5-5.2.3/examples/cpuplot/cpuplot.cpp�������������������������������������������������������������0000644�0001750�0001750�00000013312�12052741127�017456� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include #include #include "cpupiemarker.h" #include "cpuplot.h" class TimeScaleDraw: public QwtScaleDraw { public: TimeScaleDraw(const QTime &base): baseTime(base) { } virtual QwtText label(double v) const { QTime upTime = baseTime.addSecs((int)v); return upTime.toString(); } private: QTime baseTime; }; class Background: public QwtPlotItem { public: Background() { setZ(0.0); } virtual int rtti() const { return QwtPlotItem::Rtti_PlotUserItem; } virtual void draw(QPainter *painter, const QwtScaleMap &, const QwtScaleMap &yMap, const QRect &rect) const { QColor c(Qt::white); QRect r = rect; for ( int i = 100; i > 0; i -= 10 ) { r.setBottom(yMap.transform(i - 10)); r.setTop(yMap.transform(i)); painter->fillRect(r, c); c = c.dark(110); } } }; class CpuCurve: public QwtPlotCurve { public: CpuCurve(const QString &title): QwtPlotCurve(title) { #if QT_VERSION >= 0x040000 setRenderHint(QwtPlotItem::RenderAntialiased); #endif } void setColor(const QColor &color) { #if QT_VERSION >= 0x040000 QColor c = color; c.setAlpha(150); setPen(c); setBrush(c); #else setPen(color); setBrush(QBrush(color, Qt::Dense4Pattern)); #endif } }; CpuPlot::CpuPlot(QWidget *parent): QwtPlot(parent), dataCount(0) { setAutoReplot(false); plotLayout()->setAlignCanvasToScales(true); QwtLegend *legend = new QwtLegend; legend->setItemMode(QwtLegend::CheckableItem); insertLegend(legend, QwtPlot::RightLegend); setAxisTitle(QwtPlot::xBottom, " System Uptime [h:m:s]"); setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(cpuStat.upTime())); setAxisScale(QwtPlot::xBottom, 0, HISTORY); setAxisLabelRotation(QwtPlot::xBottom, -50.0); setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom); /* In situations, when there is a label at the most right position of the scale, additional space is needed to display the overlapping part of the label would be taken by reducing the width of scale and canvas. To avoid this "jumping canvas" effect, we add a permanent margin. We don't need to do the same for the left border, because there is enough space for the overlapping label below the left scale. */ QwtScaleWidget *scaleWidget = axisWidget(QwtPlot::xBottom); const int fmh = QFontMetrics(scaleWidget->font()).height(); scaleWidget->setMinBorderDist(0, fmh / 2); setAxisTitle(QwtPlot::yLeft, "Cpu Usage [%]"); setAxisScale(QwtPlot::yLeft, 0, 100); Background *bg = new Background(); bg->attach(this); CpuPieMarker *pie = new CpuPieMarker(); pie->attach(this); CpuCurve *curve; curve = new CpuCurve("System"); curve->setColor(Qt::red); curve->attach(this); data[System].curve = curve; curve = new CpuCurve("User"); curve->setColor(Qt::blue); curve->setZ(curve->z() - 1); curve->attach(this); data[User].curve = curve; curve = new CpuCurve("Total"); curve->setColor(Qt::black); curve->setZ(curve->z() - 2); curve->attach(this); data[Total].curve = curve; curve = new CpuCurve("Idle"); curve->setColor(Qt::darkCyan); curve->setZ(curve->z() - 3); curve->attach(this); data[Idle].curve = curve; showCurve(data[System].curve, true); showCurve(data[User].curve, true); showCurve(data[Total].curve, false); showCurve(data[Idle].curve, false); for ( int i = 0; i < HISTORY; i++ ) timeData[HISTORY - 1 - i] = i; (void)startTimer(1000); // 1 second connect(this, SIGNAL(legendChecked(QwtPlotItem *, bool)), SLOT(showCurve(QwtPlotItem *, bool))); } void CpuPlot::timerEvent(QTimerEvent *) { for ( int i = dataCount; i > 0; i-- ) { for ( int c = 0; c < NCpuData; c++ ) { if ( i < HISTORY ) data[c].data[i] = data[c].data[i-1]; } } cpuStat.statistic(data[User].data[0], data[System].data[0]); data[Total].data[0] = data[User].data[0] + data[System].data[0]; data[Idle].data[0] = 100.0 - data[Total].data[0]; if ( dataCount < HISTORY ) dataCount++; for ( int j = 0; j < HISTORY; j++ ) timeData[j]++; setAxisScale(QwtPlot::xBottom, timeData[HISTORY - 1], timeData[0]); for ( int c = 0; c < NCpuData; c++ ) { data[c].curve->setRawData( timeData, data[c].data, dataCount); } replot(); } void CpuPlot::showCurve(QwtPlotItem *item, bool on) { item->setVisible(on); QWidget *w = legend()->find(item); if ( w && w->inherits("QwtLegendItem") ) ((QwtLegendItem *)w)->setChecked(on); replot(); } int main(int argc, char **argv) { QApplication a(argc, argv); QWidget vBox; #if QT_VERSION >= 0x040000 vBox.setWindowTitle("Cpu Plot"); #else vBox.setCaption("Cpu Plot"); #endif CpuPlot *plot = new CpuPlot(&vBox); plot->setTitle("History"); plot->setMargin(5); QString info("Press the legend to en/disable a curve"); QLabel *label = new QLabel(info, &vBox); QVBoxLayout *layout = new QVBoxLayout(&vBox); layout->addWidget(plot); layout->addWidget(label); #if QT_VERSION < 0x040000 a.setMainWidget(&vBox); #endif vBox.resize(600,400); vBox.show(); return a.exec(); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/cpuplot/cpuplot.pro�������������������������������������������������������������0000644�0001750�0001750�00000001040�12052741127�017467� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = cpuplot HEADERS = \ cpuplot.h \ cpustat.h \ cpupiemarker.h SOURCES = \ cpuplot.cpp \ cpustat.cpp \ cpupiemarker.cpp ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sysinfo/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015270� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sysinfo/sysinfo.cpp�������������������������������������������������������������0000644�0001750�0001750�00000006465�12052741127�017501� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include class ValueBar: public QWidget { public: ValueBar(Qt::Orientation orientation, const QString &text, QWidget *parent, double value = 0.0): QWidget(parent) { d_label = new QLabel(text, this); d_label->setFont(QFont("Helvetica", 10)); d_thermo = new QwtThermo(this); d_thermo->setRange(0.0,100.0); d_thermo->setValue(value); d_thermo->setFont(QFont("Helvetica", 8)); d_thermo->setPipeWidth(6); d_thermo->setScaleMaxMajor(6); d_thermo->setScaleMaxMinor(5); d_thermo->setMargin(10); d_thermo->setFillColor(QColor("DarkMagenta")); QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(0); layout->setSpacing(0); if ( orientation == Qt::Horizontal ) { d_label->setAlignment(Qt::AlignCenter); d_thermo->setOrientation(orientation, QwtThermo::BottomScale); layout->addWidget(d_label); layout->addWidget(d_thermo); } else { d_label->setAlignment(Qt::AlignRight); d_thermo->setOrientation(orientation, QwtThermo::LeftScale); layout->addWidget(d_thermo, 10, Qt::AlignHCenter); layout->addWidget(d_label, 0); } } void setValue(double value) { d_thermo->setValue(value); } private: QLabel *d_label; QwtThermo *d_thermo; }; class SysInfo : public QFrame { public: SysInfo(QWidget *parent = NULL): QFrame(parent) { QGroupBox *memBox = new QGroupBox("Memory Usage", this); memBox->setFont(QFont("Helvetica", 10)); QVBoxLayout *memLayout = new QVBoxLayout(memBox); memLayout->setMargin(15); memLayout->setSpacing(5); Qt::Orientation o = Qt::Horizontal; memLayout->addWidget(new ValueBar(o, "Used", memBox, 57)); memLayout->addWidget(new ValueBar(o, "Shared", memBox, 17)); memLayout->addWidget(new ValueBar(o, "Cache", memBox, 30)); memLayout->addWidget(new ValueBar(o, "Buffers", memBox, 22)); memLayout->addWidget(new ValueBar(o, "Swap Used", memBox, 57)); memLayout->addWidget(new QWidget(memBox), 10); // spacer QGroupBox *cpuBox = new QGroupBox("Cpu Usage", this); cpuBox->setFont(QFont("Helvetica", 10)); QHBoxLayout *cpuLayout = new QHBoxLayout(cpuBox); cpuLayout->setMargin(15); cpuLayout->setSpacing(5); o = Qt::Vertical; cpuLayout->addWidget(new ValueBar(o, "User", cpuBox, 57)); cpuLayout->addWidget(new ValueBar(o, "Total", cpuBox, 73)); cpuLayout->addWidget(new ValueBar(o, "System", cpuBox, 16)); cpuLayout->addWidget(new ValueBar(o, "Idle", cpuBox, 27)); QHBoxLayout *layout = new QHBoxLayout(this); layout->setMargin(10); layout->addWidget(memBox, 10); layout->addWidget(cpuBox, 0); } }; int main (int argc, char **argv) { QApplication a(argc, argv); SysInfo info; info.resize(info.sizeHint().expandedTo(QSize(600, 400))); #if QT_VERSION < 0x040000 a.setMainWidget(&info); #endif info.show(); int rv = a.exec(); return rv; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sysinfo/sysinfo.pro�������������������������������������������������������������0000644�0001750�0001750�00000000660�12052741127�017506� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = sysinfo SOURCES = \ sysinfo.cpp ��������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo1/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015503� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo1/curvdemo1.cpp���������������������������������������������������������0000644�0001750�0001750�00000011602�12052741127�020114� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include //------------------------------------------------------------ // curvdemo1 // // This example program features some of the different // display styles of the QwtPlotCurve class //------------------------------------------------------------ // // Array Sizes // const int Size = 27; #if QT_VERSION >= 0x040000 const int CurvCnt = 6; #else const int CurvCnt = 5; #endif // // Arrays holding the values // double xval[Size]; double yval[Size]; QwtScaleMap xMap; QwtScaleMap yMap; class MainWin : public QFrame { public: MainWin(); protected: #if QT_VERSION >= 0x040000 virtual void paintEvent(QPaintEvent *); #endif void drawContents(QPainter *p); private: void shiftDown(QRect &rect, int offset) const; QwtPlotCurve crv[CurvCnt]; }; MainWin::MainWin() { int i; xMap.setScaleInterval(-0.5, 10.5); yMap.setScaleInterval(-1.1, 1.1); // // Frame style // setFrameStyle(QFrame::Box|QFrame::Raised); setLineWidth(2); setMidLineWidth(3); // // Calculate values // for(i=0; i= 0x040000 crv[i].setPen(QColor(Qt::darkBlue)); crv[i].setStyle(QwtPlotCurve::Lines); crv[i].setRenderHint(QwtPlotItem::RenderAntialiased); i++; #endif crv[i].setPen(QColor(Qt::darkCyan)); crv[i].setStyle(QwtPlotCurve::Steps); i++; sym.setStyle(QwtSymbol::XCross); sym.setPen(QColor(Qt::darkMagenta)); crv[i].setSymbol(sym); crv[i].setStyle(QwtPlotCurve::NoCurve); i++; // // attach data // for(i=0;i= 0x040000 void MainWin::paintEvent(QPaintEvent *event) { QFrame::paintEvent(event); QPainter painter(this); painter.setClipRect(contentsRect()); drawContents(&painter); } #endif // // REDRAW CONTENTS // void MainWin::drawContents(QPainter *painter) { int deltay,i; QRect r = contentsRect(); deltay = r.height() / CurvCnt - 1; r.setHeight(deltay); // // draw curves // for (i=0;i= 0x040000 painter->setRenderHint(QPainter::Antialiasing, crv[i].testRenderHint(QwtPlotItem::RenderAntialiased) ); #endif crv[i].draw(painter, xMap, yMap, r); shiftDown(r, deltay); } // // draw titles // r = contentsRect(); // reset r painter->setFont(QFont("Helvetica", 8)); const int alignment = Qt::AlignTop|Qt::AlignHCenter; painter->setPen(Qt::black); painter->drawText(0,r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: Line/Fitted, Symbol: Cross"); shiftDown(r, deltay); painter->drawText(0,r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: Sticks, Symbol: Ellipse"); shiftDown(r, deltay); painter->drawText(0 ,r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: Lines, Symbol: None"); shiftDown(r, deltay); #if QT_VERSION >= 0x040000 painter->drawText(0 ,r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: Lines, Symbol: None, Antialiased"); shiftDown(r, deltay); #endif painter->drawText(0, r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: Steps, Symbol: None"); shiftDown(r, deltay); painter->drawText(0,r.top(),r.width(), painter->fontMetrics().height(), alignment, "Style: NoCurve, Symbol: XCross"); } int main (int argc, char **argv) { QApplication a(argc, argv); MainWin w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.resize(300,600); w.show(); return a.exec(); } ������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo1/curvdemo1.pro���������������������������������������������������������0000644�0001750�0001750�00000000663�12052741127�020137� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = curvdemo1 SOURCES = \ curvdemo1.cpp �����������������������������������������������������������������������������qwt5-5.2.3/examples/examples.pri��������������������������������������������������������������������0000644�0001750�0001750�00000003033�12052741127�016127� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### QWT_ROOT = ../.. include( $${QWT_ROOT}/qwtconfig.pri ) SUFFIX_STR = VVERSION = $$[QT_VERSION] isEmpty(VVERSION) { # Qt 3 debug { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } else { CONFIG(debug, debug|release) { SUFFIX_STR = $${DEBUG_SUFFIX} } else { SUFFIX_STR = $${RELEASE_SUFFIX} } } TEMPLATE = app MOC_DIR = moc INCLUDEPATH += $${QWT_ROOT}/src DEPENDPATH += $${QWT_ROOT}/src OBJECTS_DIR = obj$${SUFFIX_STR} DESTDIR = $${QWT_ROOT}/examples/bin$${SUFFIX_STR} QWTLIB = qwt$${SUFFIX_STR} win32 { contains(CONFIG, QwtDll) { DEFINES += QT_DLL QWT_DLL QWTLIB = $${QWTLIB}$${VER_MAJ} } win32-msvc:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-msvc.net:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-msvc2002:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-msvc2003:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-msvc2005:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-msvc2008:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib win32-g++:LIBS += -L$${QWT_ROOT}/lib -l$${QWTLIB} } else { LIBS += -L$${QWT_ROOT}/lib -l$${QWTLIB} } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/svgmap/�������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015073� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/svgmap/svgmap.pro���������������������������������������������������������������0000644�0001750�0001750�00000000742�12052741127�017115� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = svgmap QT += svg HEADERS = \ plot.h SOURCES = \ plot.cpp \ main.cpp ������������������������������qwt5-5.2.3/examples/svgmap/plot.h�������������������������������������������������������������������0000644�0001750�0001750�00000000441�12052741123�016215� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class QwtPlotSvgItem; class Plot: public QwtPlot { Q_OBJECT public: Plot(QWidget * = NULL); public slots: void loadSVG(); private: void rescale(); QwtPlotSvgItem *d_mapItem; const QwtDoubleRect d_mapRect; }; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/svgmap/plot.cpp�����������������������������������������������������������������0000644�0001750�0001750�00000003641�12052741127�016561� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include "plot.h" Plot::Plot(QWidget *parent): QwtPlot(parent), d_mapItem(NULL), d_mapRect(0.0, 0.0, 100.0, 100.0) // something { #if 1 /* d_mapRect is only a reference for zooming, but the ranges are nothing useful for the user. So we hide the axes. */ plotLayout()->setCanvasMargin(0); for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ ) enableAxis(axis, false); #else QwtPlotGrid *grid = new QwtPlotGrid(); grid->attach(this); #endif /* Navigation: Left Mouse Button: Panning Mouse Wheel: Zooming In/Out Right Mouse Button: Reset to initial */ (void)new QwtPlotPanner(canvas()); (void)new QwtPlotMagnifier(canvas()); #if QT_VERSION >= 0x040000 using namespace Qt; #endif canvas()->setFocusPolicy(WheelFocus); rescale(); } void Plot::loadSVG() { QString dir; #if 0 dir = "/dw/svg"; #endif #if QT_VERSION >= 0x040000 const QString fileName = QFileDialog::getOpenFileName( NULL, "Load a Scaleable Vector Graphic (SVG) Map", dir, "SVG Files (*.svg)"); #else const QString fileName = QFileDialog::getOpenFileName( dir, "SVG Files (*.svg)", NULL, NULL, "Load a Scaleable Vector Graphic (SVG) Map" ); #endif if ( !fileName.isEmpty() ) { if ( d_mapItem == NULL ) { d_mapItem = new QwtPlotSvgItem(); d_mapItem->attach(this); } d_mapItem->loadFile(d_mapRect, fileName); rescale(); replot(); } } void Plot::rescale() { setAxisScale(QwtPlot::xBottom, d_mapRect.left(), d_mapRect.right()); setAxisScale(QwtPlot::yLeft, d_mapRect.top(), d_mapRect.bottom()); } �����������������������������������������������������������������������������������������������qwt5-5.2.3/examples/svgmap/main.cpp�����������������������������������������������������������������0000644�0001750�0001750�00000001776�12052741127�016536� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "plot.h" class MainWindow: public QMainWindow { public: MainWindow(QWidget *parent = NULL): QMainWindow(parent) { Plot *plot = new Plot(this); setCentralWidget(plot); QToolBar *toolBar = new QToolBar(this); QToolButton *btnLoad = new QToolButton(toolBar); #if QT_VERSION >= 0x040000 btnLoad->setText("Load SVG"); btnLoad->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolBar->addWidget(btnLoad); #else btnLoad->setTextLabel("Load SVG"); btnLoad->setUsesTextLabel(true); #endif addToolBar(toolBar); connect(btnLoad, SIGNAL(clicked()), plot, SLOT(loadSVG())); } }; int main(int argc, char **argv) { QApplication a(argc, argv); MainWindow w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.resize(600,400); w.show(); int rv = a.exec(); return rv; } ��qwt5-5.2.3/examples/bode/���������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�014507� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/cplx.h���������������������������������������������������������������������0000644�0001750�0001750�00000002150�12052741124�015621� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef BODE_CPLX_H #define BODE_CPLX_H #include class cplx { private: double re,im; public: double real() {return re;} double imag() {return im;} cplx() { re = 0.0; im = -0.0; } cplx& operator= (cplx a) { re = a.re; im = a.im; return *this; } cplx(double r, double i = 0.0) { re = r; im = i; } friend cplx operator * (cplx x1, cplx x2); friend cplx operator + (cplx x1, cplx x2); friend cplx operator - (cplx x1, cplx x2); friend cplx operator / (cplx x1, cplx x2); }; inline cplx operator+(cplx x1, cplx x2) { return cplx(x1.re + x2.re, x1.im + x2.im); } inline cplx operator-(cplx x1, cplx x2) { return cplx(x1.re - x2.re, x1.im - x2.im); } inline cplx operator*(cplx x1, cplx x2) { return cplx(x1.re * x2.re - x1.im * x2.im, x1.re * x2.im + x2.re * x1.im); } inline cplx operator/(cplx x1, cplx x2) { double denom = x2.re * x2.re + x2.im * x2.im; return cplx( (x1.re * x2.re + x1.im * x2.im) /denom, (x1.im * x2.re - x2.im * x1.re) / denom); } #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/bode_plot.h����������������������������������������������������������������0000644�0001750�0001750�00000000754�12052741124�016632� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class QwtPlotCurve; class QwtPlotMarker; class BodePlot: public QwtPlot { Q_OBJECT public: BodePlot(QWidget *parent); public slots: void setDamp(double damping); private: void showData(double *frequency, double *amplitude, double *phase, int count); void showPeak(double freq, double amplitude); void show3dB(double freq); QwtPlotCurve *d_crv1; QwtPlotCurve *d_crv2; QwtPlotMarker *d_mrk1; QwtPlotMarker *d_mrk2; }; ��������������������qwt5-5.2.3/examples/bode/bode.cpp�������������������������������������������������������������������0000644�0001750�0001750�00000021421�12052741127�016124� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include #include #include #if QT_VERSION >= 0x040300 #ifdef QT_SVG_LIB #include #endif #endif #if QT_VERSION >= 0x040000 #include #include #else #include #endif #include #include #include #include #include #include "pixmaps.h" #include "bode_plot.h" #include "bode.h" class Zoomer: public QwtPlotZoomer { public: Zoomer(int xAxis, int yAxis, QwtPlotCanvas *canvas): QwtPlotZoomer(xAxis, yAxis, canvas) { setSelectionFlags(QwtPicker::DragSelection | QwtPicker::CornerToCorner); setTrackerMode(QwtPicker::AlwaysOff); setRubberBand(QwtPicker::NoRubberBand); // RightButton: zoom out by 1 // Ctrl+RightButton: zoom out to full size #if QT_VERSION < 0x040000 setMousePattern(QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlButton); #else setMousePattern(QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlModifier); #endif setMousePattern(QwtEventPattern::MouseSelect3, Qt::RightButton); } }; //----------------------------------------------------------------- // // bode.cpp -- A demo program featuring QwtPlot and QwtCounter // // This example demonstrates the mapping of different curves // to different axes in a QwtPlot widget. It also shows how to // display the cursor position and how to implement zooming. // //----------------------------------------------------------------- MainWin::MainWin(QWidget *parent): QMainWindow(parent) { d_plot = new BodePlot(this); d_plot->setMargin(5); #if QT_VERSION >= 0x040000 setContextMenuPolicy(Qt::NoContextMenu); #endif d_zoomer[0] = new Zoomer( QwtPlot::xBottom, QwtPlot::yLeft, d_plot->canvas()); d_zoomer[0]->setRubberBand(QwtPicker::RectRubberBand); d_zoomer[0]->setRubberBandPen(QColor(Qt::green)); d_zoomer[0]->setTrackerMode(QwtPicker::ActiveOnly); d_zoomer[0]->setTrackerPen(QColor(Qt::white)); d_zoomer[1] = new Zoomer(QwtPlot::xTop, QwtPlot::yRight, d_plot->canvas()); d_panner = new QwtPlotPanner(d_plot->canvas()); d_panner->setMouseButton(Qt::MidButton); d_picker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft, QwtPicker::PointSelection | QwtPicker::DragSelection, QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn, d_plot->canvas()); d_picker->setRubberBandPen(QColor(Qt::green)); d_picker->setRubberBand(QwtPicker::CrossRubberBand); d_picker->setTrackerPen(QColor(Qt::white)); setCentralWidget(d_plot); QToolBar *toolBar = new QToolBar(this); QToolButton *btnZoom = new QToolButton(toolBar); #if QT_VERSION >= 0x040000 btnZoom->setText("Zoom"); btnZoom->setIcon(QIcon(zoom_xpm)); btnZoom->setCheckable(true); btnZoom->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); #else btnZoom->setTextLabel("Zoom"); btnZoom->setPixmap(zoom_xpm); btnZoom->setToggleButton(true); btnZoom->setUsesTextLabel(true); #endif QToolButton *btnPrint = new QToolButton(toolBar); #if QT_VERSION >= 0x040000 btnPrint->setText("Print"); btnPrint->setIcon(QIcon(print_xpm)); btnPrint->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); #else btnPrint->setTextLabel("Print"); btnPrint->setPixmap(print_xpm); btnPrint->setUsesTextLabel(true); #endif #if QT_VERSION < 0x040000 QToolButton *btnSVG = new QToolButton(toolBar); btnSVG->setTextLabel("SVG"); btnSVG->setPixmap(print_xpm); btnSVG->setUsesTextLabel(true); #elif QT_VERSION >= 0x040300 #ifdef QT_SVG_LIB QToolButton *btnSVG = new QToolButton(toolBar); btnSVG->setText("SVG"); btnSVG->setIcon(QIcon(print_xpm)); btnSVG->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); #endif #endif #if QT_VERSION >= 0x040000 toolBar->addWidget(btnZoom); toolBar->addWidget(btnPrint); #if QT_VERSION >= 0x040300 #ifdef QT_SVG_LIB toolBar->addWidget(btnSVG); #endif #endif #endif toolBar->addSeparator(); QWidget *hBox = new QWidget(toolBar); QHBoxLayout *layout = new QHBoxLayout(hBox); layout->setSpacing(0); layout->addWidget(new QWidget(hBox), 10); // spacer layout->addWidget(new QLabel("Damping Factor", hBox), 0); layout->addSpacing(10); QwtCounter *cntDamp = new QwtCounter(hBox); cntDamp->setRange(0.0, 5.0, 0.01); cntDamp->setValue(0.0); layout->addWidget(cntDamp, 0); #if QT_VERSION >= 0x040000 (void)toolBar->addWidget(hBox); #else toolBar->setStretchableWidget(hBox); #endif addToolBar(toolBar); #ifndef QT_NO_STATUSBAR (void)statusBar(); #endif enableZoomMode(false); showInfo(); connect(cntDamp, SIGNAL(valueChanged(double)), d_plot, SLOT(setDamp(double))); connect(btnPrint, SIGNAL(clicked()), SLOT(print())); #if QT_VERSION < 0x040000 connect(btnSVG, SIGNAL(clicked()), SLOT(exportSVG())); #elif QT_VERSION >= 0x040300 #ifdef QT_SVG_LIB connect(btnSVG, SIGNAL(clicked()), SLOT(exportSVG())); #endif #endif connect(btnZoom, SIGNAL(toggled(bool)), SLOT(enableZoomMode(bool))); connect(d_picker, SIGNAL(moved(const QPoint &)), SLOT(moved(const QPoint &))); connect(d_picker, SIGNAL(selected(const QwtPolygon &)), SLOT(selected(const QwtPolygon &))); } void MainWin::print() { #if 1 QPrinter printer; #else QPrinter printer(QPrinter::HighResolution); #if QT_VERSION < 0x040000 printer.setOutputToFile(true); printer.setOutputFileName("/tmp/bode.ps"); printer.setColorMode(QPrinter::Color); #else printer.setOutputFileName("/tmp/bode.pdf"); #endif #endif QString docName = d_plot->title().text(); if ( !docName.isEmpty() ) { docName.replace (QRegExp (QString::fromLatin1 ("\n")), tr (" -- ")); printer.setDocName (docName); } printer.setCreator("Bode example"); printer.setOrientation(QPrinter::Landscape); #if QT_VERSION >= 0x040000 QPrintDialog dialog(&printer); if ( dialog.exec() ) { #else if (printer.setup()) { #endif QwtPlotPrintFilter filter; if ( printer.colorMode() == QPrinter::GrayScale ) { int options = QwtPlotPrintFilter::PrintAll; options &= ~QwtPlotPrintFilter::PrintBackground; options |= QwtPlotPrintFilter::PrintFrameWithScales; filter.setOptions(options); } d_plot->print(printer, filter); } } void MainWin::exportSVG() { QString fileName = "bode.svg"; #if QT_VERSION < 0x040000 #ifndef QT_NO_FILEDIALOG fileName = QFileDialog::getSaveFileName( "bode.svg", "SVG Documents (*.svg)", this); #endif if ( !fileName.isEmpty() ) { // enable workaround for Qt3 misalignments QwtPainter::setSVGMode(true); QPicture picture; QPainter p(&picture); d_plot->print(&p, QRect(0, 0, 800, 600)); p.end(); picture.save(fileName, "svg"); } #elif QT_VERSION >= 0x040300 #ifdef QT_SVG_LIB #ifndef QT_NO_FILEDIALOG fileName = QFileDialog::getSaveFileName( this, "Export File Name", QString(), "SVG Documents (*.svg)"); #endif if ( !fileName.isEmpty() ) { QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(QSize(800, 600)); d_plot->print(generator); } #endif #endif } void MainWin::enableZoomMode(bool on) { d_panner->setEnabled(on); d_zoomer[0]->setEnabled(on); d_zoomer[0]->zoom(0); d_zoomer[1]->setEnabled(on); d_zoomer[1]->zoom(0); d_picker->setEnabled(!on); showInfo(); } void MainWin::showInfo(QString text) { if ( text == QString::null ) { if ( d_picker->rubberBand() ) text = "Cursor Pos: Press left mouse button in plot region"; else text = "Zoom: Press mouse button and drag"; } #ifndef QT_NO_STATUSBAR #if QT_VERSION >= 0x040000 statusBar()->showMessage(text); #else statusBar()->message(text); #endif #endif } void MainWin::moved(const QPoint &pos) { QString info; info.sprintf("Freq=%g, Ampl=%g, Phase=%g", d_plot->invTransform(QwtPlot::xBottom, pos.x()), d_plot->invTransform(QwtPlot::yLeft, pos.y()), d_plot->invTransform(QwtPlot::yRight, pos.y()) ); showInfo(info); } void MainWin::selected(const QwtPolygon &) { showInfo(); } int main (int argc, char **argv) { QApplication a(argc, argv); MainWin w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.resize(540,400); w.show(); int rv = a.exec(); return rv; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/bode_plot.cpp��������������������������������������������������������������0000644�0001750�0001750�00000011337�12052741127�017167� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include "cplx.h" #include "bode_plot.h" static void logSpace(double *array, int size, double xmin, double xmax) { if ((xmin <= 0.0) || (xmax <= 0.0) || (size <= 0)) return; const int imax = size -1; array[0] = xmin; array[imax] = xmax; const double lxmin = log(xmin); const double lxmax = log(xmax); const double lstep = (lxmax - lxmin) / double(imax); for (int i = 1; i < imax; i++) array[i] = exp(lxmin + double(i) * lstep); } BodePlot::BodePlot(QWidget *parent): QwtPlot(parent) { setAutoReplot(false); setTitle("Frequency Response of a Second-Order System"); setCanvasBackground(QColor(Qt::darkBlue)); // legend QwtLegend *legend = new QwtLegend; legend->setFrameStyle(QFrame::Box|QFrame::Sunken); insertLegend(legend, QwtPlot::BottomLegend); // grid QwtPlotGrid *grid = new QwtPlotGrid; grid->enableXMin(true); grid->setMajPen(QPen(Qt::white, 0, Qt::DotLine)); grid->setMinPen(QPen(Qt::gray, 0 , Qt::DotLine)); grid->attach(this); // axes enableAxis(QwtPlot::yRight); setAxisTitle(QwtPlot::xBottom, "Normalized Frequency"); setAxisTitle(QwtPlot::yLeft, "Amplitude [dB]"); setAxisTitle(QwtPlot::yRight, "Phase [deg]"); setAxisMaxMajor(QwtPlot::xBottom, 6); setAxisMaxMinor(QwtPlot::xBottom, 10); setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine); // curves d_crv1 = new QwtPlotCurve("Amplitude"); #if QT_VERSION >= 0x040000 d_crv1->setRenderHint(QwtPlotItem::RenderAntialiased); #endif d_crv1->setPen(QPen(Qt::yellow)); d_crv1->setYAxis(QwtPlot::yLeft); d_crv1->attach(this); d_crv2 = new QwtPlotCurve("Phase"); #if QT_VERSION >= 0x040000 d_crv2->setRenderHint(QwtPlotItem::RenderAntialiased); #endif d_crv2->setPen(QPen(Qt::cyan)); d_crv2->setYAxis(QwtPlot::yRight); d_crv2->attach(this); // marker d_mrk1 = new QwtPlotMarker(); d_mrk1->setValue(0.0, 0.0); d_mrk1->setLineStyle(QwtPlotMarker::VLine); d_mrk1->setLabelAlignment(Qt::AlignRight | Qt::AlignBottom); d_mrk1->setLinePen(QPen(Qt::green, 0, Qt::DashDotLine)); d_mrk1->attach(this); d_mrk2 = new QwtPlotMarker(); d_mrk2->setLineStyle(QwtPlotMarker::HLine); d_mrk2->setLabelAlignment(Qt::AlignRight | Qt::AlignBottom); d_mrk2->setLinePen(QPen(QColor(200,150,0), 0, Qt::DashDotLine)); d_mrk2->setSymbol( QwtSymbol(QwtSymbol::Diamond, QColor(Qt::yellow), QColor(Qt::green), QSize(7,7))); d_mrk2->attach(this); setDamp(0.0); setAutoReplot(true); } void BodePlot::showData(double *frequency, double *amplitude, double *phase, int count) { d_crv1->setData(frequency, amplitude, count); d_crv2->setData(frequency, phase, count); } void BodePlot::showPeak(double freq, double amplitude) { QString label; label.sprintf("Peak: %.3g dB", amplitude); QwtText text(label); text.setFont(QFont("Helvetica", 10, QFont::Bold)); text.setColor(QColor(200,150,0)); d_mrk2->setValue(freq, amplitude); d_mrk2->setLabel(text); } void BodePlot::show3dB(double freq) { QString label; label.sprintf("-3 dB at f = %.3g", freq); QwtText text(label); text.setFont(QFont("Helvetica", 10, QFont::Bold)); text.setColor(Qt::green); d_mrk1->setValue(freq, 0.0); d_mrk1->setLabel(text); } // // re-calculate frequency response // void BodePlot::setDamp(double damping) { const bool doReplot = autoReplot(); setAutoReplot(false); const int ArraySize = 200; double frequency[ArraySize]; double amplitude[ArraySize]; double phase[ArraySize]; // build frequency vector with logarithmic division logSpace(frequency, ArraySize, 0.01, 100); int i3 = 1; double fmax = 1; double amax = -1000.0; for (int i = 0; i < ArraySize; i++) { double f = frequency[i]; cplx g = cplx(1.0) / cplx(1.0 - f * f, 2.0 * damping * f); amplitude[i] = 20.0 * log10(sqrt( g.real()*g.real() + g.imag()*g.imag())); phase[i] = atan2(g.imag(), g.real()) * (180.0 / M_PI); if ((i3 <= 1) && (amplitude[i] < -3.0)) i3 = i; if (amplitude[i] > amax) { amax = amplitude[i]; fmax = frequency[i]; } } double f3 = frequency[i3] - (frequency[i3] - frequency[i3 - 1]) / (amplitude[i3] - amplitude[i3 -1]) * (amplitude[i3] + 3); showPeak(fmax, amax); show3dB(f3); showData(frequency, amplitude, phase, ArraySize); setAutoReplot(doReplot); replot(); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/pixmaps.h������������������������������������������������������������������0000644�0001750�0001750�00000005263�12052741124�016344� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PIXMAPS_H #define PIXMAPS_H static const char *print_xpm[]={ "32 32 12 1", "a c #ffffff", "h c #ffff00", "c c #ffffff", "f c #dcdcdc", "b c #c0c0c0", "j c #a0a0a4", "e c #808080", "g c #808000", "d c #585858", "i c #00ff00", "# c #000000", ". c None", "................................", "................................", "...........###..................", "..........#abb###...............", ".........#aabbbbb###............", ".........#ddaaabbbbb###.........", "........#ddddddaaabbbbb###......", ".......#deffddddddaaabbbbb###...", "......#deaaabbbddddddaaabbbbb###", ".....#deaaaaaaabbbddddddaaabbbb#", "....#deaaabbbaaaa#ddedddfggaaad#", "...#deaaaaaaaaaa#ddeeeeafgggfdd#", "..#deaaabbbaaaa#ddeeeeabbbbgfdd#", ".#deeefaaaaaaa#ddeeeeabbhhbbadd#", "#aabbbeeefaaa#ddeeeeabbbbbbaddd#", "#bbaaabbbeee#ddeeeeabbiibbadddd#", "#bbbbbaaabbbeeeeeeabbbbbbaddddd#", "#bjbbbbbbaaabbbbeabbbbbbadddddd#", "#bjjjjbbbbbbaaaeabbbbbbaddddddd#", "#bjaaajjjbbbbbbaaabbbbadddddddd#", "#bbbbbaaajjjbbbbbbaaaaddddddddd#", "#bjbbbbbbaaajjjbbbbbbddddddddd#.", "#bjjjjbbbbbbaaajjjbbbdddddddd#..", "#bjaaajjjbbbbbbjaajjbddddddd#...", "#bbbbbaaajjjbbbjbbaabdddddd#....", "###bbbbbbaaajjjjbbbbbddddd#.....", "...###bbbbbbaaajbbbbbdddd#......", "......###bbbbbbjbbbbbddd#.......", ".........###bbbbbbbbbdd#........", "............###bbbbbbd#.........", "...............###bbb#..........", "..................###..........."}; static const char *zoom_xpm[]={ "32 32 8 1", "# c #000000", "b c #c0c0c0", "a c #ffffff", "e c #585858", "d c #a0a0a4", "c c #0000ff", "f c #00ffff", ". c None", "..######################........", ".#a#baaaaaaaaaaaaaaaaaa#........", "#aa#baaaaaaaaaaaaaccaca#........", "####baaaaaaaaaaaaaaaaca####.....", "#bbbbaaaaaaaaaaaacccaaa#da#.....", "#aaaaaaaaaaaaaaaacccaca#da#.....", "#aaaaaaaaaaaaaaaaaccaca#da#.....", "#aaaaaaaaaabe###ebaaaaa#da#.....", "#aaaaaaaaa#########aaaa#da#.....", "#aaaaaaaa###dbbbb###aaa#da#.....", "#aaaaaaa###aaaaffb###aa#da#.....", "#aaaaaab##aaccaaafb##ba#da#.....", "#aaaaaae#daaccaccaad#ea#da#.....", "#aaaaaa##aaaaaaccaab##a#da#.....", "#aaaaaa##aacccaaaaab##a#da#.....", "#aaaaaa##aaccccaccab##a#da#.....", "#aaaaaae#daccccaccad#ea#da#.....", "#aaaaaab##aacccaaaa##da#da#.....", "#aaccacd###aaaaaaa###da#da#.....", "#aaaaacad###daaad#####a#da#.....", "#acccaaaad##########da##da#.....", "#acccacaaadde###edd#eda#da#.....", "#aaccacaaaabdddddbdd#eda#a#.....", "#aaaaaaaaaaaaaaaaaadd#eda##.....", "#aaaaaaaaaaaaaaaaaaadd#eda#.....", "#aaaaaaaccacaaaaaaaaadd#eda#....", "#aaaaaaaaaacaaaaaaaaaad##eda#...", "#aaaaaacccaaaaaaaaaaaaa#d#eda#..", "########################dd#eda#.", "...#dddddddddddddddddddddd##eda#", "...#aaaaaaaaaaaaaaaaaaaaaa#.####", "...########################..##."}; #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/bode.h���������������������������������������������������������������������0000644�0001750�0001750�00000001063�12052741124�015566� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class QwtPlotZoomer; class QwtPlotPicker; class QwtPlotPanner; class BodePlot; class MainWin : public QMainWindow { Q_OBJECT public: MainWin(QWidget *parent = 0); private slots: void moved(const QPoint &); void selected(const QwtPolygon &); void print(); void exportSVG(); void enableZoomMode(bool); private: void showInfo(QString text = QString::null); BodePlot *d_plot; QwtPlotZoomer *d_zoomer[2]; QwtPlotPicker *d_picker; QwtPlotPanner *d_panner; }; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/bode/bode.pro�������������������������������������������������������������������0000644�0001750�0001750�00000001035�12052741127�016141� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = bode QT += svg HEADERS = \ bode.h \ bode_plot.h \ cplx.h \ pixmaps.h SOURCES = \ bode.cpp \ bode_plot.cpp ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/simple_plot/��������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�016125� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/simple_plot/simple.cpp����������������������������������������������������������0000644�0001750�0001750�00000005765�12052741127�020137� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include //----------------------------------------------------------------- // simple.cpp // // A simple example which shows how to use QwtPlot and QwtData //----------------------------------------------------------------- class SimpleData: public QwtData { // The x values depend on its index and the y values // can be calculated from the corresponding x value. // So we don´t need to store the values. // Such an implementation is slower because every point // has to be recalculated for every replot, but it demonstrates how // QwtData can be used. public: SimpleData(double(*y)(double), size_t size): d_size(size), d_y(y) { } virtual QwtData *copy() const { return new SimpleData(d_y, d_size); } virtual size_t size() const { return d_size; } virtual double x(size_t i) const { return 0.1 * i; } virtual double y(size_t i) const { return d_y(x(i)); } private: size_t d_size; double(*d_y)(double); }; class Plot : public QwtPlot { public: Plot(); }; Plot::Plot() { setTitle("A Simple QwtPlot Demonstration"); insertLegend(new QwtLegend(), QwtPlot::RightLegend); // Set axis titles setAxisTitle(xBottom, "x -->"); setAxisTitle(yLeft, "y -->"); // Insert new curves QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)"); #if QT_VERSION >= 0x040000 cSin->setRenderHint(QwtPlotItem::RenderAntialiased); #endif cSin->setPen(QPen(Qt::red)); cSin->attach(this); QwtPlotCurve *cCos = new QwtPlotCurve("y = cos(x)"); #if QT_VERSION >= 0x040000 cCos->setRenderHint(QwtPlotItem::RenderAntialiased); #endif cCos->setPen(QPen(Qt::blue)); cCos->attach(this); // Create sin and cos data const int nPoints = 100; cSin->setData(SimpleData(::sin, nPoints)); cCos->setData(SimpleData(::cos, nPoints)); // Insert markers // ...a horizontal line at y = 0... QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabel(QString::fromLatin1("y = 0")); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(this); // ...a vertical line at x = 2 * pi QwtPlotMarker *mX = new QwtPlotMarker(); mX->setLabel(QString::fromLatin1("x = 2 pi")); mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom); mX->setLabelOrientation(Qt::Vertical); mX->setLineStyle(QwtPlotMarker::VLine); mX->setLinePen(QPen(Qt::black, 0, Qt::DashDotLine)); mX->setXValue(2.0 * M_PI); mX->attach(this); } int main(int argc, char **argv) { QApplication a(argc, argv); Plot plot; #if QT_VERSION < 0x040000 a.setMainWidget(&plot); #endif plot.resize(600,400); plot.show(); return a.exec(); } �����������qwt5-5.2.3/examples/simple_plot/simple_plot.pro�����������������������������������������������������0000644�0001750�0001750�00000000663�12052741127�021203� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = simple SOURCES = \ simple.cpp �����������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�016436� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/incrementalplot.cpp�����������������������������������������������0000644�0001750�0001750�00000005011�12052741127�022337� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "incrementalplot.h" #if QT_VERSION >= 0x040000 #include #endif CurveData::CurveData(): d_count(0) { } void CurveData::append(double *x, double *y, int count) { int newSize = ( (d_count + count) / 1000 + 1 ) * 1000; if ( newSize > size() ) { d_x.resize(newSize); d_y.resize(newSize); } for ( register int i = 0; i < count; i++ ) { d_x[d_count + i] = x[i]; d_y[d_count + i] = y[i]; } d_count += count; } int CurveData::count() const { return d_count; } int CurveData::size() const { return d_x.size(); } const double *CurveData::x() const { return d_x.data(); } const double *CurveData::y() const { return d_y.data(); } IncrementalPlot::IncrementalPlot(QWidget *parent): QwtPlot(parent), d_data(NULL), d_curve(NULL) { setAutoReplot(false); } IncrementalPlot::~IncrementalPlot() { delete d_data; } void IncrementalPlot::appendData(double x, double y) { appendData(&x, &y, 1); } void IncrementalPlot::appendData(double *x, double *y, int size) { if ( d_data == NULL ) d_data = new CurveData; if ( d_curve == NULL ) { d_curve = new QwtPlotCurve("Test Curve"); d_curve->setStyle(QwtPlotCurve::NoCurve); d_curve->setPaintAttribute(QwtPlotCurve::PaintFiltered); const QColor &c = Qt::white; d_curve->setSymbol(QwtSymbol(QwtSymbol::XCross, QBrush(c), QPen(c), QSize(5, 5)) ); d_curve->attach(this); } d_data->append(x, y, size); d_curve->setRawData(d_data->x(), d_data->y(), d_data->count()); const bool cacheMode = canvas()->testPaintAttribute(QwtPlotCanvas::PaintCached); #if QT_VERSION >= 0x040000 && defined(Q_WS_X11) // Even if not recommended by TrollTech, Qt::WA_PaintOutsidePaintEvent // works on X11. This has an tremendous effect on the performance.. canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); #endif canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, false); d_curve->draw(d_curve->dataSize() - size, d_curve->dataSize() - 1); canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, cacheMode); #if QT_VERSION >= 0x040000 && defined(Q_WS_X11) canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, false); #endif } void IncrementalPlot::removeData() { delete d_curve; d_curve = NULL; delete d_data; d_data = NULL; replot(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/clear.xpm���������������������������������������������������������0000644�0001750�0001750�00000002721�12052741122�020247� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static const char *clear_xpm[] = { /* width height num_colors chars_per_pixel */ " 32 32 12 1", /* colors */ ". c #000000", "# c #004040", "a c #303030", "b c #400000", "c c #404000", "d c #585858", "e c #808080", "f c #a0a0a4", "g c #bdbdbd", "h c #c0c0c0", "i c #dcdcdc", "j c #ffffff", /* pixels */ "gggggggggggggggggggggggggggggggg", "gggggggggggggg..gggggggggggggggg", "gggggggggg....ficggggggggggggggg", "ggggggg...fdad#ai......ggggggggg", "gggg...fhjjidfbc#f.fffe...gggggg", "ggg.fhjjjjihc#dhef.fhhhffe.ggggg", "ggg.#jjjjjihhhhhe..ehhhfff.ggggg", "ggg.#dffjjjjiihhcadehhfddd.ggggg", "ggg.iiiffhfjjjjjhhhfdddddd.ggggg", "ggg.#fjjiiffeeeeddddeeeddd.ggggg", "gggg.#eeiiiiifffffffeee...gggggg", "gggg.ffffffiifffffffddddd.gggggg", "gggg.fffjfffeeeeddddeed.d.gggggg", "gggg.fefiiiifhffeeeeded.d.gggggg", "gggg.fefijhfhifefff.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fefijeffifeefe.ded.d.gggggg", "gggg.fffijeffifeefe.deddd.gggggg", "gggg.ffiijeffifeefeddedd#.gggggg", "gggg.eiijjjeiifdffedded#..gggggg", "ggggg..fjjiiiiffffedddd..ggggggg", "ggggggg...fhhfffffdd...ggggggggg", "gggggggggg..........gggggggggggg" }; �����������������������������������������������qwt5-5.2.3/examples/realtime_plot/mainwindow.h������������������������������������������������������0000644�0001750�0001750�00000001267�12052741124�020766� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _MAINWINDOW_H_ #define _MAINWINDOW_H_ 1 #include #if QT_VERSION < 0x040000 #include #else #include #endif class QSpinBox; class QPushButton; class RandomPlot; class Counter; class MainWindow: public QMainWindow { Q_OBJECT public: MainWindow(); private slots: void showRunning(bool); void appendPoints(bool); private: QToolBar *toolBar(); void initWhatsThis(); private: Counter *d_randomCount; Counter *d_timerCount; #if QT_VERSION < 0x040000 QToolButton *d_startBtn; QToolButton *d_clearBtn; #else QAction *d_startAction; QAction *d_clearAction; #endif RandomPlot *d_plot; }; #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/randomplot.h������������������������������������������������������0000644�0001750�0001750�00000000763�12052741124�020771� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _RANDOMPLOT_H_ #define _RANDOMPLOT_H_ 1 #include "incrementalplot.h" class QTimer; class RandomPlot: public IncrementalPlot { Q_OBJECT public: RandomPlot(QWidget *parent); virtual QSize sizeHint() const; signals: void running(bool); public slots: void clear(); void stop(); void append(int timeout, int count); private slots: void appendPoint(); private: void initCurve(); QTimer *d_timer; int d_timerCount; }; #endif // _RANDOMPLOT_H_ �������������qwt5-5.2.3/examples/realtime_plot/realtime.cpp������������������������������������������������������0000644�0001750�0001750�00000000350�12052741127�020742� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include "mainwindow.h" int main(int argc, char **argv) { QApplication a(argc, argv); MainWindow w; w.show(); #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif return a.exec(); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/realtime_plot.pro�������������������������������������������������0000644�0001750�0001750�00000001226�12052741127�022021� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = realtime HEADERS = \ mainwindow.h \ scrollzoomer.h \ scrollbar.h \ incrementalplot.h \ randomplot.h SOURCES = \ realtime.cpp \ mainwindow.cpp \ scrollzoomer.cpp \ scrollbar.cpp \ incrementalplot.cpp \ randomplot.cpp ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/README������������������������������������������������������������0000644�0001750�0001750�00000001730�12052741122�017312� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1) Incremental plots IncrementalPlot shows an example how to implement a plot that displays growing data. The example produces random data when you push the start button. With 'Timer' you can adjust the intervall between the the generation of the points, with 'Points' you can set the number of points to be generated. Unfortunately in Qt4 incremental painting is not possible with QPaintEngines that doesn't support the QPaintEngine::PaintOutsidePaintEvent feature. ( These are all common paint engines beside the OpenGL engine, but this one is not supported by Qwt yet. ) That is the reason why you can see much faster repaints with Qt3. 2) Stacked Zooming with scrollbars ScrollZoomer adds scrollbars for zooming. There are a couple of reasons why the implementation is a hack and therefore the class is not part of the Qwt lib, but it should be working with all types of QwtPlots. Copy the code of scrollbar.[h|cpp] and scrollzoomer.[h|cpp] to the application code. Uwe ����������������������������������������qwt5-5.2.3/examples/realtime_plot/scrollbar.cpp�����������������������������������������������������0000644�0001750�0001750�00000007724�12052741127�021137� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #if QT_VERSION >= 0x040000 #include #endif #include "scrollbar.h" ScrollBar::ScrollBar(QWidget * parent): QScrollBar(parent) { init(); } ScrollBar::ScrollBar(Qt::Orientation o, QWidget *parent): QScrollBar(o, parent) { init(); } ScrollBar::ScrollBar(double minBase, double maxBase, Qt::Orientation o, QWidget *parent): QScrollBar(o, parent) { init(); setBase(minBase, maxBase); moveSlider(minBase, maxBase); } void ScrollBar::init() { d_inverted = orientation() == Qt::Vertical; d_baseTicks = 1000000; d_minBase = 0.0; d_maxBase = 1.0; moveSlider(d_minBase, d_maxBase); connect(this, SIGNAL(sliderMoved(int)), SLOT(catchSliderMoved(int))); connect(this, SIGNAL(valueChanged(int)), SLOT(catchValueChanged(int))); } void ScrollBar::setInverted(bool inverted) { if ( d_inverted != inverted ) { d_inverted = inverted; moveSlider(minSliderValue(), maxSliderValue()); } } bool ScrollBar::isInverted() const { return d_inverted; } void ScrollBar::setBase(double min, double max) { if ( min != d_minBase || max != d_maxBase ) { d_minBase = min; d_maxBase = max; moveSlider(minSliderValue(), maxSliderValue()); } } void ScrollBar::moveSlider(double min, double max) { const int sliderTicks = qRound((max - min) / (d_maxBase - d_minBase) * d_baseTicks); // setRange initiates a valueChanged of the scrollbars // in some situations. So we block // and unblock the signals. blockSignals(true); setRange(sliderTicks / 2, d_baseTicks - sliderTicks / 2); int steps = sliderTicks / 200; if ( steps <= 0 ) steps = 1; #if QT_VERSION < 0x040000 setSteps(steps, sliderTicks); #else setSingleStep(steps); setPageStep(sliderTicks); #endif int tick = mapToTick(min + (max - min) / 2); if ( isInverted() ) tick = d_baseTicks - tick; #if QT_VERSION < 0x040000 directSetValue(tick); rangeChange(); #else setSliderPosition(tick); #endif blockSignals(false); } double ScrollBar::minBaseValue() const { return d_minBase; } double ScrollBar::maxBaseValue() const { return d_maxBase; } void ScrollBar::sliderRange(int value, double &min, double &max) const { if ( isInverted() ) value = d_baseTicks - value; const int visibleTicks = pageStep(); min = mapFromTick(value - visibleTicks / 2); max = mapFromTick(value + visibleTicks / 2); } double ScrollBar::minSliderValue() const { double min, dummy; sliderRange(value(), min, dummy); return min; } double ScrollBar::maxSliderValue() const { double max, dummy; sliderRange(value(), dummy, max); return max; } int ScrollBar::mapToTick(double v) const { return (int) ( ( v - d_minBase) / (d_maxBase - d_minBase ) * d_baseTicks ); } double ScrollBar::mapFromTick(int tick) const { return d_minBase + ( d_maxBase - d_minBase ) * tick / d_baseTicks; } void ScrollBar::catchValueChanged(int value) { double min, max; sliderRange(value, min, max); emit valueChanged(orientation(), min, max); } void ScrollBar::catchSliderMoved(int value) { double min, max; sliderRange(value, min, max); emit sliderMoved(orientation(), min, max); } int ScrollBar::extent() const { #if QT_VERSION < 0x040000 return style().pixelMetric(QStyle::PM_ScrollBarExtent, this); #else QStyleOptionSlider opt; opt.init(this); opt.subControls = QStyle::SC_None; opt.activeSubControls = QStyle::SC_None; opt.orientation = orientation(); opt.minimum = minimum(); opt.maximum = maximum(); opt.sliderPosition = sliderPosition(); opt.sliderValue = value(); opt.singleStep = singleStep(); opt.pageStep = pageStep(); opt.upsideDown = invertedAppearance(); if (orientation() == Qt::Horizontal) opt.state |= QStyle::State_Horizontal; return style()->pixelMetric(QStyle::PM_ScrollBarExtent, &opt, this); #endif } ��������������������������������������������qwt5-5.2.3/examples/realtime_plot/scrollzoomer.h����������������������������������������������������0000644�0001750�0001750�00000003440�12052741124�021337� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _SCROLLZOOMER_H #define _SCROLLZOOMER_H #include #if QT_VERSION < 0x040000 #include #endif #include class ScrollData; class ScrollBar; class ScrollZoomer: public QwtPlotZoomer { Q_OBJECT public: enum ScrollBarPosition { AttachedToScale, OppositeToScale }; ScrollZoomer(QwtPlotCanvas *); virtual ~ScrollZoomer(); ScrollBar *horizontalScrollBar() const; ScrollBar *verticalScrollBar() const; #if QT_VERSION < 0x040000 void setHScrollBarMode(QScrollView::ScrollBarMode); void setVScrollBarMode(QScrollView::ScrollBarMode); QScrollView::ScrollBarMode vScrollBarMode () const; QScrollView::ScrollBarMode hScrollBarMode () const; #else void setHScrollBarMode(Qt::ScrollBarPolicy); void setVScrollBarMode(Qt::ScrollBarPolicy); Qt::ScrollBarPolicy vScrollBarMode () const; Qt::ScrollBarPolicy hScrollBarMode () const; #endif void setHScrollBarPosition(ScrollBarPosition); void setVScrollBarPosition(ScrollBarPosition); ScrollBarPosition hScrollBarPosition() const; ScrollBarPosition vScrollBarPosition() const; QWidget* cornerWidget() const; virtual void setCornerWidget(QWidget *); virtual bool eventFilter(QObject *, QEvent *); virtual void rescale(); protected: virtual ScrollBar *scrollBar(Qt::Orientation); virtual void updateScrollBars(); virtual void layoutScrollBars(const QRect &); private slots: void scrollBarMoved(Qt::Orientation o, double min, double max); private: bool needScrollBar(Qt::Orientation) const; int oppositeAxis(int) const; QWidget *d_cornerWidget; ScrollData *d_hScrollData; ScrollData *d_vScrollData; bool d_inZoom; bool d_alignCanvasToScales; }; #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/start.xpm���������������������������������������������������������0000644�0001750�0001750�00000013515�12052741122�020321� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static const char *start_xpm[] = { /* width height num_colors chars_per_pixel */ " 32 32 227 2", /* colors */ ".. c #040204", ".# c #848684", ".a c #c4c2b4", ".b c #843a04", ".c c #444244", ".d c #ece2cc", ".e c #fca234", ".f c #c45e04", ".g c #bca27c", ".h c #646264", ".i c #e4c69c", ".j c #847254", ".k c #c4a684", ".l c #443e34", ".m c #a48e6c", ".n c #f4f2e4", ".o c #24261c", ".p c #a44a04", ".q c #c4825c", ".r c #644634", ".s c #b4b2ac", ".t c #747274", ".u c #844e2c", ".v c #ece6dc", ".w c #c4b6a4", ".x c #a49274", ".y c #343634", ".z c #fcd69c", ".A c #b4aa9c", ".B c #8c8e8c", ".C c #545254", ".D c #f4f2ec", ".E c #fcb67c", ".F c #e4965c", ".G c #e46634", ".H c #141614", ".I c #d4c2a4", ".J c #746a5c", ".K c #fcc2a4", ".L c #342a1c", ".M c #fc9204", ".N c #a45e2c", ".O c #94521c", ".P c #a4560c", ".Q c #645e54", ".R c #ec7a04", ".S c #f4deac", ".T c #5c462c", ".U c #bcaa8c", ".V c #d4be9c", ".W c #fcfaf4", ".X c #d4cab4", ".Y c #1c0a04", ".Z c #6c6a6c", ".0 c #e4caa4", ".1 c #2c2a1c", ".2 c #74462c", ".3 c #84562c", ".4 c #f4eee4", ".5 c #c4beb4", ".6 c #a49a84", ".7 c #f4ba7c", ".8 c #dc966c", ".9 c #948674", "#. c #fc8a04", "## c #f4eab4", "#a c #fcb26c", "#b c #c4ae94", "#c c #f4e6d4", "#d c #9c8e74", "#e c #fc7e04", "#f c #140604", "#g c #b4a28c", "#h c #6c625c", "#i c #8c7e64", "#j c #f4ae84", "#k c #e4decc", "#l c #ac5204", "#m c #e48a4c", "#n c #7c7a7c", "#o c #ccba9c", "#p c #fcd2b4", "#q c #bcae9c", "#r c #dcc6a4", "#s c #ac723c", "#t c #e4ceb4", "#u c #ec9e74", "#v c #8c8a8c", "#w c #8c4204", "#x c #4c4a34", "#y c #7c3a04", "#z c #fcfecc", "#A c #2c221c", "#B c #ac4e04", "#C c #d48264", "#D c #bcb2a4", "#E c #a49684", "#F c #b4aeac", "#G c #5c5a5c", "#H c #fcf2ec", "#I c #fcb28c", "#J c #7c6e5c", "#K c #fcce9c", "#L c #3c2e24", "#M c #bc9e71", "#N c #fc922c", "#O c #bc622c", "#P c #b45604", "#Q c #f47a08", "#R c #fcdeb8", "#S c #544e44", "#T c #fcfefc", "#U c #e4ceaa", "#V c #8c5a2c", "#W c #e49e7c", "#X c #f4eadb", "#Y c #9c9284", "#Z c #f4ae90", "#0 c #c47e5c", "#1 c #bc824c", "#2 c #e47634", "#3 c #e46e24", "#4 c #b48e6c", "#5 c #7c5a4c", "#6 c #744e2c", "#7 c #fcba9c", "#8 c #cccacc", "#9 c #f4722c", "a. c #c46224", "a# c #e47a54", "aa c #ac663c", "ab c #fce2cc", "ac c #945634", "ad c #fceacc", "ae c #3c3e3c", "af c #ec9e54", "ag c #843e1c", "ah c #fccab0", "ai c #8c8274", "aj c #4c4634", "ak c #ecc2ac", "al c #8c765c", "am c #7c7264", "an c #e49a7c", "ao c #6c4e34", "ap c #fc9a2c", "aq c #4c4a4c", "ar c #ccbea4", "as c #fcf6dc", "at c #3c3a3c", "au c #949294", "av c #fceebc", "aw c #fcaa7c", "ax c #ecdac8", "ay c #0c0604", "az c #fc8204", "aA c #847664", "aB c #e4d6c4", "aC c #fcd2ac", "aD c #1c1a14", "aE c #342e2c", "aF c #240e04", "aG c #2c2e2c", "aH c #fcbe7c", "aI c #fc8e14", "aJ c #fc7a14", "aK c #944604", "aL c #7c3e14", "aM c #fcfadc", "aN c #645244", "aO c #bcb6b4", "aP c #bc5604", "aQ c #7c522c", "aR c #cc8264", "aS c #dccab0", "aT c #ac9a84", "aU c #f4e2cc", "aV c #a45e3c", "aW c #9c5634", "aX c #fca634", "aY c #c4aa89", "aZ c #a44e07", "a0 c #b4b6b4", "a1 c #c4baa9", "a2 c #a4967c", "a3 c #b4aea4", "a4 c #d4c6a8", "a5 c #5c4a34", "a6 c #bcae94", "a7 c #845a2c", "a8 c #948a7c", "a9 c #c4b299", "b. c #b4a690", "b# c #6c6658", "ba c #fcd6b4", "bb c #2c261d", "bc c #fcf6f0", "bd c #fcb694", "be c #fc9624", "bf c #646664", "bg c #747674", "bh c #eceadc", "bi c #545654", "bj c #b49e7c", "bk c #6c6e6c", "bl c #fc8e04", "bm c #fcb66c", "bn c #7c7e7c", "bo c #5c5e5c", "bp c #8c8674", "bq c #fc8604", "br c #bc5a04", "bs c #fca23c", "bt c #443e3c", "bu c #a4927c", "bv c #b4aaa4", "bw c #746a64", "bx c #342a24", "by c #fcfafc", "bz c #2c2a24", "bA c #a49a8c", "bB c #bcbabc", "bC c #9c8e7c", "bD c #8c7e6c", "bE c #ccbaa4", "bF c #fcd2bc", "bG c #fcb294", /* pixels */ "#Gbi#G.#bnbg.t.Zbfbf.hbo#G.Caqaq.c.C.C.C.C.C.C.C.C.C.C.Cbi#Gbi#G", "#Gbi#Gbg#8#8.a#8#8#8#8#8#8#8#8.B#8#8#8#8#8#8#8#8#8#8#8.C#Gbi#Gbi", "bi#Gbi#n#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#T#T#T#T#8aq#6afbm#z", "#Gbi#Gbk#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#T#T#T#T#8#6af#aavaX", "bi#Gbibk#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#T#T#T#T#6af#a##aX#.", "#Gbi#Gbk#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#T#T#T.3af#a.S.e#.bq", "#Gbi#G.Z#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#T#TaQaf#a#R.e#eazbq", "bi#GbibkaubBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBa7af#aba.e#eazbq.M", "#Gbi#G.Z#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T#T#T#Vaf#ababs#ebqbq#.az", "#Gbi#Gbf#8#T#T#T#T#T#T#T#T#T#TbB#T#T#Tby#T#saf#a#Kap#ebqbqbl#Q.f", "bi#Gbi.Z#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#T.Naf#a.z#N#ebqbqbl.R.f#l", "#Gbi#Gbf#8#T#T#T#T#T#T#T#T#T#TbB#T#T#T#1af.EaHbe#ebqbq#..Rbr#B#y", "bi#Gbibf#8#T#T#T#T#T#T#T#T#T#TbB#T#T.F.7#jawaI#ebqbqbl.R#PaZ.b..", "#Gbi#GbfaubBbBbBbBbBbBbBbBbBbBbBbBbG#RaMak#m#ebqbqbl#Q#P#B#w.Y.y", "bi#Gbibf#8#T#T#T#T#T#T#T#T#T#TaObyaC.Wab#Z#2bqbq.M.RaP.p#way.y.y", "#Gbi#G.h#8#T#T#T#T#T#T#T#T#Tbya0#I#Tad.K#j#2#QaJ.Rbr.p#yaF.y.yat", "bi#Gbi.h#8#T#T#T#T#T#T#T#Tby.W.saCasba#Za#.G#9#3aPaZaK.Y.y.yat.c", "#Gbi#Gbo#8#T#T#T#T#T#T#Tby.Wbc#I#T#p#7.8#0a.#O.P.paLay...yatbtaq", "bi#Gbi.h#8#T#T#T#T#T#Tby.Wbc.DaCadah#W#0aa.O.2.ragaF#h..ataeaq.C", "#Gbi#GboaubBbBbBbBbBaOa0.sa3bdasahanaRaV.u.Ta5ae#f.Q#S..aeaq.Cbi", "bi#Gbibo#8#T#T#T#T.Wbcbc.D#HaCbF#uaRaWaQa5ajbt.HbDai#J..aq.Cbibi", "#Gbi#Gbo#8#T#Tby.W.W.D#H.nbdab#u#Cac.uaN.o..bDaiaia8#i...Cbibi#G", "bi#Gbibo#8#T#Tbybc.Dbc.n.4#4.8.q#5.r.l..#vbDaia8a2#g#d..bibi#Gbi", "#Gbi#G#G#8#T.Wbc.D#H.D#X.j.Lao#5#L.H#vaibpbpbCaT.U#oa2..bi#Gbi#G", "bi#Gbi#G#8.Wbc.D#H.n.4bjajaD#A...#bpai.9bC#E#ga9.V#r.gbb#Gbi#Gbi", "#Gbi#Gbiaua0.s.s#Fa3bvaG....#vbwb#b#.JbwaA#i.9bC.m.xal.1bi#Gbi#G", "bi#Gbi#G#8.D#H.4.4#X.v#x#v#qbAb##Y.6b.a6ar.I#r#r.0.i.g.Lbi#Gbi#G", "bi#Gbibi#8.D.4.4#X#c.vax.X.AbAamb.#D#oa4aS#r.0.0.i.i#M#A#Gbi#Gbi", "#Gbi#G.C#8.n.4#X#X.daUaBaS.wa6aiar#raS.0#U#U.0.i.0#r#Mbb#Gbi#Gbi", "bi#Gbiaq#8.4#Xbh.v#c.d#kaB.Xa4buaS#U#t#U#U.0.0#r.i.i#Mbbbi#Gbi#G", "#Gbi#Gae.a.a.5a1bE.w.w.w#ba6.U#iaYaYaY.k.g.g.g#M#M#M#M.Lbi#Gbi#G", "bi#Gbi.HbxaEbxaEbz.LaEbzbzbbbzbbbbbxbb.Lbbbb.1.Lbb.1#Aay#Gbi#Gbi" }; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/randomplot.cpp����������������������������������������������������0000644�0001750�0001750�00000005201�12052741127�021317� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include "scrollzoomer.h" #include "randomplot.h" const unsigned int c_rangeMax = 1000; class Zoomer: public ScrollZoomer { public: Zoomer(QwtPlotCanvas *canvas): ScrollZoomer(canvas) { } virtual void rescale() { QwtScaleWidget *scaleWidget = plot()->axisWidget(yAxis()); QwtScaleDraw *sd = scaleWidget->scaleDraw(); int minExtent = 0; if ( zoomRectIndex() > 0 ) { // When scrolling in vertical direction // the plot is jumping in horizontal direction // because of the different widths of the labels // So we better use a fixed extent. minExtent = sd->spacing() + sd->majTickLength() + 1; minExtent += sd->labelSize( scaleWidget->font(), c_rangeMax).width(); } sd->setMinimumExtent(minExtent); ScrollZoomer::rescale(); } }; RandomPlot::RandomPlot(QWidget *parent): IncrementalPlot(parent), d_timer(0), d_timerCount(0) { setFrameStyle(QFrame::NoFrame); setLineWidth(0); setCanvasLineWidth(2); plotLayout()->setAlignCanvasToScales(true); QwtPlotGrid *grid = new QwtPlotGrid; grid->setMajPen(QPen(Qt::gray, 0, Qt::DotLine)); grid->attach(this); setCanvasBackground(QColor(29, 100, 141)); // nice blue setAxisScale(xBottom, 0, c_rangeMax); setAxisScale(yLeft, 0, c_rangeMax); replot(); // enable zooming Zoomer *zoomer = new Zoomer(canvas()); zoomer->setRubberBandPen(QPen(Qt::red, 2, Qt::DotLine)); zoomer->setTrackerPen(QPen(Qt::red)); } QSize RandomPlot::sizeHint() const { return QSize(540,400); } void RandomPlot::appendPoint() { double x = rand() % c_rangeMax; x += ( rand() % 100 ) / 100; double y = rand() % c_rangeMax; y += ( rand() % 100 ) / 100; appendData(x, y); if ( --d_timerCount <= 0 ) stop(); } void RandomPlot::append(int timeout, int count) { if ( !d_timer ) { d_timer = new QTimer(this); connect(d_timer, SIGNAL(timeout()), SLOT(appendPoint())); } d_timerCount = count; emit running(true); canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, false); d_timer->start(timeout); } void RandomPlot::stop() { if ( d_timer ) { d_timer->stop(); emit running(false); } canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, true); } void RandomPlot::clear() { removeData(); replot(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/incrementalplot.h�������������������������������������������������0000644�0001750�0001750�00000001442�12052741124�022005� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _INCREMENTALPLOT_H_ #define _INCREMENTALPLOT_H_ 1 #include #include class QwtPlotCurve; class CurveData { // A container class for growing data public: CurveData(); void append(double *x, double *y, int count); int count() const; int size() const; const double *x() const; const double *y() const; private: int d_count; QwtArray d_x; QwtArray d_y; }; class IncrementalPlot : public QwtPlot { Q_OBJECT public: IncrementalPlot(QWidget *parent = NULL); virtual ~IncrementalPlot(); void appendData(double x, double y); void appendData(double *x, double *y, int size); void removeData(); private: CurveData *d_data; QwtPlotCurve *d_curve; }; #endif // _INCREMENTALPLOT_H_ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/mainwindow.cpp����������������������������������������������������0000644�0001750�0001750�00000014534�12052741127�021325� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include "randomplot.h" #include "mainwindow.h" #include "start.xpm" #include "clear.xpm" class MyToolBar: public QToolBar { public: MyToolBar(MainWindow *parent): QToolBar(parent) { } void addSpacing(int spacing) { QLabel *label = new QLabel(this); #if QT_VERSION >= 0x040000 addWidget(label); #endif label->setFixedWidth(spacing); } }; class Counter: public QWidget { public: Counter(QWidget *parent, const QString &prefix, const QString &suffix, int min, int max, int step): QWidget(parent) { QHBoxLayout *layout = new QHBoxLayout(this); if ( !prefix.isEmpty() ) layout->addWidget(new QLabel(prefix + " ", this)); #if QT_VERSION < 0x040000 d_counter = new QSpinBox(min, max, step, this); #else d_counter = new QSpinBox(this); d_counter->setRange(min, max); d_counter->setSingleStep(step); #endif layout->addWidget(d_counter); if ( !suffix.isEmpty() ) layout->addWidget(new QLabel(QString(" ") + suffix, this)); } void setValue(int value) { d_counter->setValue(value); } int value() const { return d_counter->value(); } private: QSpinBox *d_counter; }; MainWindow::MainWindow() { #if QT_VERSION < 0x040000 setDockEnabled(TornOff, true); setRightJustification(true); #endif addToolBar(toolBar()); #ifndef QT_NO_STATUSBAR (void)statusBar(); #endif d_plot = new RandomPlot(this); d_plot->setMargin(4); setCentralWidget(d_plot); #if QT_VERSION >= 0x040000 connect(d_startAction, SIGNAL(toggled(bool)), this, SLOT(appendPoints(bool))); connect(d_clearAction, SIGNAL(triggered()), d_plot, SLOT(clear())); #else connect(d_startBtn, SIGNAL(toggled(bool)), this, SLOT(appendPoints(bool))); connect(d_clearBtn, SIGNAL(clicked()), d_plot, SLOT(clear())); #endif connect(d_plot, SIGNAL(running(bool)), this, SLOT(showRunning(bool))); initWhatsThis(); #if QT_VERSION >= 0x040000 setContextMenuPolicy(Qt::NoContextMenu); #endif } QToolBar *MainWindow::toolBar() { MyToolBar *toolBar = new MyToolBar(this); #if QT_VERSION >= 0x040000 toolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea); setToolButtonStyle(Qt::ToolButtonTextUnderIcon); d_startAction = new QAction(QIcon(start_xpm), "Clear", toolBar); d_startAction->setCheckable(true); d_clearAction = new QAction(QIcon(clear_xpm), "Clear", toolBar); QAction *whatsThisAction = QWhatsThis::createAction(toolBar); whatsThisAction->setText("Help"); toolBar->addAction(d_startAction); toolBar->addAction(d_clearAction); toolBar->addAction(whatsThisAction); setIconSize(QSize(22, 22)); #else d_startBtn = new QToolButton(toolBar); d_startBtn->setUsesTextLabel(true); d_startBtn->setPixmap(QPixmap(start_xpm)); d_startBtn->setToggleButton(true); d_clearBtn = new QToolButton(toolBar); d_clearBtn->setUsesTextLabel(true); d_clearBtn->setPixmap(QPixmap(clear_xpm)); d_clearBtn->setTextLabel("Clear", false); QToolButton *helpBtn = QWhatsThis::whatsThisButton(toolBar); helpBtn->setUsesTextLabel(true); helpBtn->setTextLabel("Help", false); #endif QWidget *hBox = new QWidget(toolBar); d_randomCount = new Counter(hBox, "Points", QString::null, 1, 100000, 100); d_randomCount->setValue(1000); d_timerCount = new Counter(hBox, "Delay", "ms", 0, 100000, 100); d_timerCount->setValue(0); QHBoxLayout *layout = new QHBoxLayout(hBox); layout->setMargin(0); layout->setSpacing(0); layout->addSpacing(10); layout->addWidget(new QWidget(hBox), 10); // spacer layout->addWidget(d_randomCount); layout->addSpacing(5); layout->addWidget(d_timerCount); showRunning(false); #if QT_VERSION < 0x040000 toolBar->setStretchableWidget(hBox); d_startBtn->setMinimumWidth(helpBtn->sizeHint().width() + 20); d_clearBtn->setMinimumWidth(helpBtn->sizeHint().width() + 20); helpBtn->setMinimumWidth(helpBtn->sizeHint().width() + 20); #else toolBar->addWidget(hBox); #endif return toolBar; } void MainWindow::appendPoints(bool on) { if ( on ) d_plot->append(d_timerCount->value(), d_randomCount->value()); else d_plot->stop(); } void MainWindow::showRunning(bool running) { d_randomCount->setEnabled(!running); d_timerCount->setEnabled(!running); #if QT_VERSION < 0x040000 d_startBtn->setOn(running); d_startBtn->setTextLabel(running ? "Stop" : "Start", false); #else d_startAction->setChecked(running); d_startAction->setText(running ? "Stop" : "Start"); #endif } void MainWindow::initWhatsThis() { const char *text1 = "Zooming is enabled until the selected area gets " "too small for the significance on the axes.\n\n" "You can zoom in using the left mouse button.\n" "The middle mouse button is used to go back to the " "previous zoomed area.\n" "The right mouse button is used to unzoom completely."; const char *text2 = "Number of random points that will be generated."; const char *text3 = "Delay between the generation of two random points."; const char *text4 = "Start generation of random points.\n\n" "The intention of this example is to show how to implement " "growing curves. The points will be generated and displayed " "one after the other.\n" "To check the performance, a small delay and a large number " "of points are useful. To watch the curve growing, a delay " " > 300 ms and less points are better.\n" "To inspect the curve, stacked zooming is implemented using the " "mouse buttons on the plot."; const char *text5 = "Remove all points."; #if QT_VERSION < 0x040000 QWhatsThis::add(d_plot, text1); QWhatsThis::add(d_randomCount, text2); QWhatsThis::add(d_timerCount, text3); QWhatsThis::add(d_startBtn, text4); QWhatsThis::add(d_clearBtn, text5); #else d_plot->setWhatsThis(text1); d_randomCount->setWhatsThis(text2); d_timerCount->setWhatsThis(text3); d_startAction->setWhatsThis(text4); d_clearAction->setWhatsThis(text5); #endif } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/scrollbar.h�������������������������������������������������������0000644�0001750�0001750�00000002200�12052741124�020561� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _SCROLLBAR_H #define _SCROLLBAR_H 1 #include class ScrollBar: public QScrollBar { Q_OBJECT public: ScrollBar(QWidget *parent = NULL); ScrollBar(Qt::Orientation, QWidget *parent = NULL); ScrollBar(double minBase, double maxBase, Qt::Orientation o, QWidget *parent = NULL); void setInverted(bool); bool isInverted() const; double minBaseValue() const; double maxBaseValue() const; double minSliderValue() const; double maxSliderValue() const; int extent() const; signals: void sliderMoved(Qt::Orientation, double, double); void valueChanged(Qt::Orientation, double, double); public slots: virtual void setBase(double min, double max); virtual void moveSlider(double min, double max); protected: void sliderRange(int value, double &min, double &max) const; int mapToTick(double) const; double mapFromTick(int) const; private slots: void catchValueChanged(int value); void catchSliderMoved(int value); private: void init(); bool d_inverted; double d_minBase; double d_maxBase; int d_baseTicks; }; #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/realtime_plot/scrollzoomer.cpp��������������������������������������������������0000644�0001750�0001750�00000031155�12052741127�021701� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include "scrollbar.h" #include "scrollzoomer.h" class ScrollData { public: ScrollData(): scrollBar(NULL), position(ScrollZoomer::OppositeToScale), #if QT_VERSION < 0x040000 mode(QScrollView::Auto) #else mode(Qt::ScrollBarAsNeeded) #endif { } ~ScrollData() { delete scrollBar; } ScrollBar *scrollBar; ScrollZoomer::ScrollBarPosition position; #if QT_VERSION < 0x040000 QScrollView::ScrollBarMode mode; #else Qt::ScrollBarPolicy mode; #endif }; ScrollZoomer::ScrollZoomer(QwtPlotCanvas *canvas): QwtPlotZoomer(canvas), d_cornerWidget(NULL), d_hScrollData(NULL), d_vScrollData(NULL), d_inZoom(false), d_alignCanvasToScales(false) { if ( !canvas ) return; d_hScrollData = new ScrollData; d_vScrollData = new ScrollData; } ScrollZoomer::~ScrollZoomer() { delete d_cornerWidget; delete d_vScrollData; delete d_hScrollData; } void ScrollZoomer::rescale() { QwtScaleWidget *xScale = plot()->axisWidget(xAxis()); QwtScaleWidget *yScale = plot()->axisWidget(yAxis()); if ( zoomRectIndex() <= 0 ) { if ( d_inZoom ) { xScale->setMinBorderDist(0, 0); yScale->setMinBorderDist(0, 0); QwtPlotLayout *layout = plot()->plotLayout(); layout->setAlignCanvasToScales(d_alignCanvasToScales); d_inZoom = false; } } else { if ( !d_inZoom ) { /* We set a minimum border distance. Otherwise the canvas size changes when scrolling, between situations where the major ticks are at the canvas borders (requiring extra space for the label) and situations where all labels can be painted below/top or left/right of the canvas. */ int start, end; xScale->getBorderDistHint(start, end); xScale->setMinBorderDist(start, end); yScale->getBorderDistHint(start, end); yScale->setMinBorderDist(start, end); QwtPlotLayout *layout = plot()->plotLayout(); d_alignCanvasToScales = layout->alignCanvasToScales(); layout->setAlignCanvasToScales(false); d_inZoom = true; } } QwtPlotZoomer::rescale(); updateScrollBars(); } ScrollBar *ScrollZoomer::scrollBar(Qt::Orientation o) { ScrollBar *&sb = (o == Qt::Vertical) ? d_vScrollData->scrollBar : d_hScrollData->scrollBar; if ( sb == NULL ) { sb = new ScrollBar(o, canvas()); sb->hide(); connect(sb, SIGNAL(valueChanged(Qt::Orientation, double, double)), SLOT(scrollBarMoved(Qt::Orientation, double, double))); } return sb; } ScrollBar *ScrollZoomer::horizontalScrollBar() const { return d_hScrollData->scrollBar; } ScrollBar *ScrollZoomer::verticalScrollBar() const { return d_vScrollData->scrollBar; } #if QT_VERSION < 0x040000 void ScrollZoomer::setHScrollBarMode(QScrollView::ScrollBarMode mode) #else void ScrollZoomer::setHScrollBarMode(Qt::ScrollBarPolicy mode) #endif { if ( hScrollBarMode() != mode ) { d_hScrollData->mode = mode; updateScrollBars(); } } #if QT_VERSION < 0x040000 void ScrollZoomer::setVScrollBarMode(QScrollView::ScrollBarMode mode) #else void ScrollZoomer::setVScrollBarMode(Qt::ScrollBarPolicy mode) #endif { if ( vScrollBarMode() != mode ) { d_vScrollData->mode = mode; updateScrollBars(); } } #if QT_VERSION < 0x040000 QScrollView::ScrollBarMode ScrollZoomer::hScrollBarMode() const #else Qt::ScrollBarPolicy ScrollZoomer::hScrollBarMode() const #endif { return d_hScrollData->mode; } #if QT_VERSION < 0x040000 QScrollView::ScrollBarMode ScrollZoomer::vScrollBarMode() const #else Qt::ScrollBarPolicy ScrollZoomer::vScrollBarMode() const #endif { return d_vScrollData->mode; } void ScrollZoomer::setHScrollBarPosition(ScrollBarPosition pos) { if ( d_hScrollData->position != pos ) { d_hScrollData->position = pos; updateScrollBars(); } } void ScrollZoomer::setVScrollBarPosition(ScrollBarPosition pos) { if ( d_vScrollData->position != pos ) { d_vScrollData->position = pos; updateScrollBars(); } } ScrollZoomer::ScrollBarPosition ScrollZoomer::hScrollBarPosition() const { return d_hScrollData->position; } ScrollZoomer::ScrollBarPosition ScrollZoomer::vScrollBarPosition() const { return d_vScrollData->position; } void ScrollZoomer::setCornerWidget(QWidget *w) { if ( w != d_cornerWidget ) { if ( canvas() ) { delete d_cornerWidget; d_cornerWidget = w; if ( d_cornerWidget->parent() != canvas() ) { #if QT_VERSION < 0x040000 d_cornerWidget->reparent(canvas(), QPoint(0, 0)); #else d_cornerWidget->setParent(canvas()); #endif } updateScrollBars(); } } } QWidget *ScrollZoomer::cornerWidget() const { return d_cornerWidget; } bool ScrollZoomer::eventFilter(QObject *o, QEvent *e) { if ( o == canvas() ) { switch(e->type()) { case QEvent::Resize: { const int fw = ((QwtPlotCanvas *)canvas())->frameWidth(); QRect rect; rect.setSize(((QResizeEvent *)e)->size()); rect.setRect(rect.x() + fw, rect.y() + fw, rect.width() - 2 * fw, rect.height() - 2 * fw); layoutScrollBars(rect); break; } case QEvent::ChildRemoved: { const QObject *child = ((QChildEvent *)e)->child(); if ( child == d_cornerWidget ) d_cornerWidget = NULL; else if ( child == d_hScrollData->scrollBar ) d_hScrollData->scrollBar = NULL; else if ( child == d_vScrollData->scrollBar ) d_vScrollData->scrollBar = NULL; break; } default: break; } } return QwtPlotZoomer::eventFilter(o, e); } bool ScrollZoomer::needScrollBar(Qt::Orientation o) const { #if QT_VERSION < 0x040000 QScrollView::ScrollBarMode mode; #else Qt::ScrollBarPolicy mode; #endif double zoomMin, zoomMax, baseMin, baseMax; if ( o == Qt::Horizontal ) { mode = d_hScrollData->mode; baseMin = zoomBase().left(); baseMax = zoomBase().right(); zoomMin = zoomRect().left(); zoomMax = zoomRect().right(); } else { mode = d_vScrollData->mode; baseMin = zoomBase().top(); baseMax = zoomBase().bottom(); zoomMin = zoomRect().top(); zoomMax = zoomRect().bottom(); } bool needed = false; switch(mode) { #if QT_VERSION < 0x040000 case QScrollView::AlwaysOn: #else case Qt::ScrollBarAlwaysOn: #endif needed = true; break; #if QT_VERSION < 0x040000 case QScrollView::AlwaysOff: #else case Qt::ScrollBarAlwaysOff: #endif needed = false; break; default: { if ( baseMin < zoomMin || baseMax > zoomMax ) needed = true; break; } } return needed; } void ScrollZoomer::updateScrollBars() { if ( !canvas() ) return; const int xAxis = QwtPlotZoomer::xAxis(); const int yAxis = QwtPlotZoomer::yAxis(); int xScrollBarAxis = xAxis; if ( hScrollBarPosition() == OppositeToScale ) xScrollBarAxis = oppositeAxis(xScrollBarAxis); int yScrollBarAxis = yAxis; if ( vScrollBarPosition() == OppositeToScale ) yScrollBarAxis = oppositeAxis(yScrollBarAxis); QwtPlotLayout *layout = plot()->plotLayout(); bool showHScrollBar = needScrollBar(Qt::Horizontal); if ( showHScrollBar ) { ScrollBar *sb = scrollBar(Qt::Horizontal); sb->setPalette(plot()->palette()); const QwtScaleDiv *sd = plot()->axisScaleDiv(xAxis); sb->setInverted(sd->lowerBound() > sd->upperBound() ); sb->setBase(zoomBase().left(), zoomBase().right()); sb->moveSlider(zoomRect().left(), zoomRect().right()); if ( !sb->isVisibleTo(canvas()) ) { sb->show(); layout->setCanvasMargin(layout->canvasMargin(xScrollBarAxis) + sb->extent(), xScrollBarAxis); } } else { if ( horizontalScrollBar() ) { horizontalScrollBar()->hide(); layout->setCanvasMargin(layout->canvasMargin(xScrollBarAxis) - horizontalScrollBar()->extent(), xScrollBarAxis); } } bool showVScrollBar = needScrollBar(Qt::Vertical); if ( showVScrollBar ) { ScrollBar *sb = scrollBar(Qt::Vertical); sb->setPalette(plot()->palette()); const QwtScaleDiv *sd = plot()->axisScaleDiv(yAxis); sb->setInverted(sd->lowerBound() < sd->upperBound() ); sb->setBase(zoomBase().top(), zoomBase().bottom()); sb->moveSlider(zoomRect().top(), zoomRect().bottom()); if ( !sb->isVisibleTo(canvas()) ) { sb->show(); layout->setCanvasMargin(layout->canvasMargin(yScrollBarAxis) + sb->extent(), yScrollBarAxis); } } else { if ( verticalScrollBar() ) { verticalScrollBar()->hide(); layout->setCanvasMargin(layout->canvasMargin(yScrollBarAxis) - verticalScrollBar()->extent(), yScrollBarAxis); } } if ( showHScrollBar && showVScrollBar ) { if ( d_cornerWidget == NULL ) { d_cornerWidget = new QWidget(canvas()); #if QT_VERSION >= 0x040100 d_cornerWidget->setAutoFillBackground(true); #endif d_cornerWidget->setPalette(plot()->palette()); } d_cornerWidget->show(); } else { if ( d_cornerWidget ) d_cornerWidget->hide(); } layoutScrollBars(((QwtPlotCanvas *)canvas())->contentsRect()); plot()->updateLayout(); } void ScrollZoomer::layoutScrollBars(const QRect &rect) { int hPos = xAxis(); if ( hScrollBarPosition() == OppositeToScale ) hPos = oppositeAxis(hPos); int vPos = yAxis(); if ( vScrollBarPosition() == OppositeToScale ) vPos = oppositeAxis(vPos); ScrollBar *hScrollBar = horizontalScrollBar(); ScrollBar *vScrollBar = verticalScrollBar(); const int hdim = hScrollBar ? hScrollBar->extent() : 0; const int vdim = vScrollBar ? vScrollBar->extent() : 0; if ( hScrollBar && hScrollBar->isVisible() ) { int x = rect.x(); int y = (hPos == QwtPlot::xTop) ? rect.top() : rect.bottom() - hdim + 1; int w = rect.width(); if ( vScrollBar && vScrollBar->isVisible() ) { if ( vPos == QwtPlot::yLeft ) x += vdim; w -= vdim; } hScrollBar->setGeometry(x, y, w, hdim); } if ( vScrollBar && vScrollBar->isVisible() ) { int pos = yAxis(); if ( vScrollBarPosition() == OppositeToScale ) pos = oppositeAxis(pos); int x = (vPos == QwtPlot::yLeft) ? rect.left() : rect.right() - vdim + 1; int y = rect.y(); int h = rect.height(); if ( hScrollBar && hScrollBar->isVisible() ) { if ( hPos == QwtPlot::xTop ) y += hdim; h -= hdim; } vScrollBar->setGeometry(x, y, vdim, h); } if ( hScrollBar && hScrollBar->isVisible() && vScrollBar && vScrollBar->isVisible() ) { if ( d_cornerWidget ) { QRect cornerRect( vScrollBar->pos().x(), hScrollBar->pos().y(), vdim, hdim); d_cornerWidget->setGeometry(cornerRect); } } } void ScrollZoomer::scrollBarMoved(Qt::Orientation o, double min, double) { if ( o == Qt::Horizontal ) move(min, zoomRect().top()); else move(zoomRect().left(), min); emit zoomed(zoomRect()); } int ScrollZoomer::oppositeAxis(int axis) const { switch(axis) { case QwtPlot::xBottom: return QwtPlot::xTop; case QwtPlot::xTop: return QwtPlot::xBottom; case QwtPlot::yLeft: return QwtPlot::yRight; case QwtPlot::yRight: return QwtPlot::yLeft; default: break; } return axis; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/data_plot/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015545� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/data_plot/data_plot.pro���������������������������������������������������������0000644�0001750�0001750�00000000747�12052741127�020246� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = data_plot HEADERS = \ data_plot.h SOURCES = \ data_plot.cpp \ main.cpp �������������������������qwt5-5.2.3/examples/data_plot/data_plot.h�����������������������������������������������������������0000644�0001750�0001750�00000000764�12052741123�017670� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _DATA_PLOT_H #define _DATA_PLOT_H 1 #include const int PLOT_SIZE = 201; // 0 to 200 class DataPlot : public QwtPlot { Q_OBJECT public: DataPlot(QWidget* = NULL); public slots: void setTimerInterval(double interval); protected: virtual void timerEvent(QTimerEvent *e); private: void alignScales(); double d_x[PLOT_SIZE]; double d_y[PLOT_SIZE]; double d_z[PLOT_SIZE]; int d_interval; // timer in ms int d_timerId; }; #endif ������������qwt5-5.2.3/examples/data_plot/data_plot.cpp���������������������������������������������������������0000644�0001750�0001750�00000007227�12052741127�020230� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include #include "data_plot.h" // // Initialize main window // DataPlot::DataPlot(QWidget *parent): QwtPlot(parent), d_interval(0), d_timerId(-1) { // Disable polygon clipping QwtPainter::setDeviceClipping(false); // We don't need the cache here canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, false); canvas()->setPaintAttribute(QwtPlotCanvas::PaintPacked, false); #if QT_VERSION >= 0x040000 #ifdef Q_WS_X11 /* Qt::WA_PaintOnScreen is only supported for X11, but leads to substantial bugs with Qt 4.2.x/Windows */ canvas()->setAttribute(Qt::WA_PaintOnScreen, true); #endif #endif alignScales(); // Initialize data for (int i = 0; i< PLOT_SIZE; i++) { d_x[i] = 0.5 * i; // time axis d_y[i] = 0; d_z[i] = 0; } // Assign a title setTitle("A Test for High Refresh Rates"); insertLegend(new QwtLegend(), QwtPlot::BottomLegend); // Insert new curves QwtPlotCurve *cRight = new QwtPlotCurve("Data Moving Right"); cRight->attach(this); QwtPlotCurve *cLeft = new QwtPlotCurve("Data Moving Left"); cLeft->attach(this); // Set curve styles cRight->setPen(QPen(Qt::red)); cLeft->setPen(QPen(Qt::blue)); // Attach (don't copy) data. Both curves use the same x array. cRight->setRawData(d_x, d_y, PLOT_SIZE); cLeft->setRawData(d_x, d_z, PLOT_SIZE); #if 0 // Insert zero line at y = 0 QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(this); #endif // Axis setAxisTitle(QwtPlot::xBottom, "Time/seconds"); setAxisScale(QwtPlot::xBottom, 0, 100); setAxisTitle(QwtPlot::yLeft, "Values"); setAxisScale(QwtPlot::yLeft, -1.5, 1.5); setTimerInterval(0.0); } // // Set a plain canvas frame and align the scales to it // void DataPlot::alignScales() { // The code below shows how to align the scales to // the canvas frame, but is also a good example demonstrating // why the spreaded API needs polishing. canvas()->setFrameStyle(QFrame::Box | QFrame::Plain ); canvas()->setLineWidth(1); for ( int i = 0; i < QwtPlot::axisCnt; i++ ) { QwtScaleWidget *scaleWidget = (QwtScaleWidget *)axisWidget(i); if ( scaleWidget ) scaleWidget->setMargin(0); QwtScaleDraw *scaleDraw = (QwtScaleDraw *)axisScaleDraw(i); if ( scaleDraw ) scaleDraw->enableComponent(QwtAbstractScaleDraw::Backbone, false); } } void DataPlot::setTimerInterval(double ms) { d_interval = qRound(ms); if ( d_timerId >= 0 ) { killTimer(d_timerId); d_timerId = -1; } if (d_interval >= 0 ) d_timerId = startTimer(d_interval); } // Generate new values void DataPlot::timerEvent(QTimerEvent *) { static double phase = 0.0; if (phase > (M_PI - 0.0001)) phase = 0.0; // y moves from left to right: // Shift y array right and assign new value to y[0]. for ( int i = PLOT_SIZE - 1; i > 0; i-- ) d_y[i] = d_y[i-1]; d_y[0] = sin(phase) * (-1.0 + 2.0 * double(rand()) / double(RAND_MAX)); for ( int j = 0; j < PLOT_SIZE - 1; j++ ) d_z[j] = d_z[j+1]; d_z[PLOT_SIZE - 1] = 0.8 - (2.0 * phase/M_PI) + 0.4 * double(rand()) / double(RAND_MAX); // update the display replot(); phase += M_PI * 0.02; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/data_plot/main.cpp��������������������������������������������������������������0000644�0001750�0001750�00000002700�12052741127�017174� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include "data_plot.h" class MainWindow: public QMainWindow { public: MainWindow() { QToolBar *toolBar = new QToolBar(this); toolBar->setFixedHeight(80); #if QT_VERSION < 0x040000 setDockEnabled(TornOff, true); setRightJustification(true); #else toolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea); #endif QWidget *hBox = new QWidget(toolBar); QLabel *label = new QLabel("Timer Interval", hBox); QwtCounter *counter = new QwtCounter(hBox); counter->setRange(-1.0, 100.0, 1.0); QHBoxLayout *layout = new QHBoxLayout(hBox); layout->addWidget(label); layout->addWidget(counter); layout->addWidget(new QWidget(hBox), 10); // spacer); #if QT_VERSION >= 0x040000 toolBar->addWidget(hBox); #endif addToolBar(toolBar); DataPlot *plot = new DataPlot(this); setCentralWidget(plot); connect(counter, SIGNAL(valueChanged(double)), plot, SLOT(setTimerInterval(double)) ); counter->setValue(20.0); } }; int main(int argc, char **argv) { QApplication a(argc, argv); MainWindow mainWindow; #if QT_VERSION < 0x040000 a.setMainWidget(&mainWindow); #endif mainWindow.resize(600,400); mainWindow.show(); return a.exec(); } ����������������������������������������������������������������qwt5-5.2.3/examples/radio/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�014674� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/ampfrm.cpp����������������������������������������������������������������0000644�0001750�0001750�00000010773�12052741127�016672� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "ampfrm.h" #include #include #include #include #include #include #include #include #include class Knob: public QWidget { public: Knob(const QString &title, double min, double max, QWidget *parent): QWidget(parent) { d_knob = new QwtKnob(this); d_knob->setRange(min, max, 0,1); d_knob->setScaleMaxMajor(10); d_knob->setKnobWidth(50); d_label = new QLabel(title, this); d_label->setAlignment(Qt::AlignTop | Qt::AlignHCenter); setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); } virtual QSize sizeHint() const { QSize sz1 = d_knob->sizeHint(); QSize sz2 = d_label->sizeHint(); const int w = qwtMax(sz1.width(), sz2.width()); const int h = sz1.height() + sz2.height(); int off = d_knob->scaleDraw()->extent(QPen(), d_knob->font()); off -= 10; // spacing return QSize(w, h - off); } double value() const { return d_knob->value(); } protected: virtual void resizeEvent(QResizeEvent *e) { const QSize sz = e->size(); int h = d_label->sizeHint().height(); d_label->setGeometry(0, sz.height() - h, sz.width(), h); h = d_knob->sizeHint().height(); int off = d_knob->scaleDraw()->extent(QPen(), d_knob->font()); off -= 10; // spacing d_knob->setGeometry(0, d_label->pos().y() - h + off, sz.width(), h); } private: QwtKnob *d_knob; QLabel *d_label; }; class Thermo: public QWidget { public: Thermo(const QString &title, QWidget *parent): QWidget(parent) { d_thermo = new QwtThermo(this); d_thermo->setPipeWidth(6); d_thermo->setRange(-40,10); d_thermo->setFillColor(Qt::green); d_thermo->setAlarmColor(Qt::red); d_thermo->setAlarmLevel(0.0); d_thermo->setAlarmEnabled(true); QLabel *label = new QLabel(title, this); label->setAlignment(Qt::AlignTop | Qt::AlignLeft); QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(0); layout->setSpacing(0); layout->addWidget(d_thermo, 10); layout->addWidget(label); } void setValue(double value) { d_thermo->setValue(value); } private: QwtThermo *d_thermo; }; AmpFrame::AmpFrame(QWidget *p): QFrame(p) { d_knbVolume = new Knob("Volume", 0.0, 10.0, this); d_knbBalance = new Knob("Balance", -10.0, 10.0, this); d_knbTreble = new Knob("Treble", -10.0, 10.0, this); d_knbBass = new Knob("Bass", -10.0, 10.0, this); d_thmLeft = new Thermo("Left [dB]", this); d_thmRight = new Thermo("Right [dB]", this); QHBoxLayout *layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setMargin(10); layout->addWidget(d_knbVolume); layout->addWidget(d_knbBalance); layout->addWidget(d_knbTreble); layout->addWidget(d_knbBass); layout->addSpacing(20); layout->addStretch(10); layout->addWidget(d_thmLeft); layout->addSpacing(10); layout->addWidget(d_thmRight); (void)startTimer(50); } void AmpFrame::timerEvent(QTimerEvent *) { static double phs = 0; // // This amplifier generates its own input signal... // const double sig_bass = (1.0 + 0.1 * d_knbBass->value()) * sin(13.0 * phs); const double sig_mid_l = sin(17.0 * phs); const double sig_mid_r = cos(17.5 * phs); const double sig_trbl_l = 0.5 * (1.0 + 0.1 * d_knbTreble->value()) * sin(35.0 * phs); const double sig_trbl_r = 0.5 * (1.0 + 0.1 * d_knbTreble->value()) * sin(34.0 * phs); double sig_l = 0.05 * d_master * d_knbVolume->value() * qwtSqr(sig_bass + sig_mid_l + sig_trbl_l); double sig_r = 0.05 * d_master * d_knbVolume->value() * qwtSqr(sig_bass + sig_mid_r + sig_trbl_r); double balance = 0.1 * d_knbBalance->value(); if (balance > 0) sig_l *= (1.0 - balance); else sig_r *= (1.0 + balance); if (sig_l > 0.01) sig_l = 20.0 * log10(sig_l); else sig_l = -40.0; if (sig_r > 0.01) sig_r = 20.0 * log10(sig_r); else sig_r = - 40.0; d_thmLeft->setValue(sig_l); d_thmRight->setValue(sig_r); phs += M_PI / 100; if (phs > M_PI) phs = 0; } void AmpFrame::setMaster(double v) { d_master = v; } �����qwt5-5.2.3/examples/radio/radio.pro�����������������������������������������������������������������0000644�0001750�0001750�00000001021�12052741127�016506� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = radio HEADERS = \ radio.h \ ampfrm.h \ tunerfrm.h SOURCES = \ radio.cpp \ ampfrm.cpp \ tunerfrm.cpp ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/radio.h�������������������������������������������������������������������0000644�0001750�0001750�00000000124�12052741124�016135� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class MainWin : public QWidget { public: MainWin(); }; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/tunerfrm.h����������������������������������������������������������������0000644�0001750�0001750�00000000611�12052741124�016702� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class QwtWheel; class QwtSlider; class TuningThermo; class TunerFrame : public QFrame { Q_OBJECT public: TunerFrame(QWidget *p); signals: void fieldChanged(double f); public slots: void setFreq(double frq); private slots: void adjustFreq(double frq); private: QwtWheel *d_whlFreq; TuningThermo *d_thmTune; QwtSlider *d_sldFreq; }; �����������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/radio.cpp�����������������������������������������������������������������0000644�0001750�0001750�00000001507�12052741127�016501� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include "tunerfrm.h" #include "ampfrm.h" #include "radio.h" MainWin::MainWin(): QWidget() { TunerFrame *frmTuner = new TunerFrame(this); frmTuner->setFrameStyle(QFrame::Panel|QFrame::Raised); AmpFrame *frmAmp = new AmpFrame(this); frmAmp->setFrameStyle(QFrame::Panel|QFrame::Raised); QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(0); layout->setSpacing(0); layout->addWidget(frmTuner); layout->addWidget(frmAmp); connect(frmTuner, SIGNAL(fieldChanged(double)), frmAmp, SLOT(setMaster(double))); frmTuner->setFreq(90.0); } int main (int argc, char **argv) { QApplication a(argc, argv); MainWin w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.show(); return a.exec(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/ampfrm.h������������������������������������������������������������������0000644�0001750�0001750�00000000617�12052741124�016330� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class Knob; class Thermo; class AmpFrame : public QFrame { Q_OBJECT public: AmpFrame(QWidget *); public slots: void setMaster(double v); protected: void timerEvent(QTimerEvent *); private: Knob *d_knbVolume; Knob *d_knbBalance; Knob *d_knbTreble; Knob *d_knbBass; Thermo *d_thmLeft; Thermo *d_thmRight; double d_master; }; �����������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/radio/tunerfrm.cpp��������������������������������������������������������������0000644�0001750�0001750�00000004621�12052741127�017245� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include "tunerfrm.h" class TuningThermo: public QWidget { public: TuningThermo(QWidget *parent): QWidget(parent) { d_thermo = new QwtThermo(this); d_thermo->setOrientation(Qt::Horizontal, QwtThermo::NoScale); d_thermo->setRange(0.0, 1.0); d_thermo->setFillColor(Qt::green); QLabel *label = new QLabel("Tuning", this); label->setAlignment(Qt::AlignCenter); QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(0); layout->addWidget(d_thermo); layout->addWidget(label); setFixedWidth(3 * label->sizeHint().width()); } void setValue(double value) { d_thermo->setValue(value); } private: QwtThermo *d_thermo; }; TunerFrame::TunerFrame(QWidget *parent): QFrame(parent) { d_sldFreq = new QwtSlider(this, Qt::Horizontal, QwtSlider::TopScale); d_sldFreq->setRange(87.5, 108, 0.01, 10); d_sldFreq->setScaleMaxMinor(5); d_sldFreq->setScaleMaxMajor(12); d_sldFreq->setThumbLength(80); d_sldFreq->setBorderWidth(1); d_thmTune = new TuningThermo(this); d_whlFreq = new QwtWheel(this); d_whlFreq->setMass(0.5); d_whlFreq->setRange(87.5, 108, 0.01); d_whlFreq->setTotalAngle(3600.0); d_whlFreq->setFixedHeight(30); connect(d_whlFreq, SIGNAL(valueChanged(double)), SLOT(adjustFreq(double))); connect(d_sldFreq, SIGNAL(valueChanged(double)), SLOT(adjustFreq(double))); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setMargin(10); mainLayout->setSpacing(5); mainLayout->addWidget(d_sldFreq); QHBoxLayout *hLayout = new QHBoxLayout; hLayout->setMargin(0); hLayout->addWidget(d_thmTune, 0); hLayout->addStretch(5); hLayout->addWidget(d_whlFreq, 2); mainLayout->addLayout(hLayout); } void TunerFrame::adjustFreq(double frq) { const double factor = 13.0 / (108 - 87.5); const double x = (frq - 87.5) * factor; const double field = qwtSqr(sin(x) * cos(4.0 * x)); d_thmTune->setValue(field); if (d_sldFreq->value() != frq) d_sldFreq->setValue(frq); if (d_whlFreq->value() != frq) d_whlFreq->setValue(frq); emit fieldChanged(field); } void TunerFrame::setFreq(double frq) { d_whlFreq->setValue(frq); } ���������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�014672� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/compass_grid.cpp����������������������������������������������������������0000644�0001750�0001750�00000014724�12052741127�020060� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "compass_grid.h" #if QT_VERSION < 0x040000 typedef QColorGroup Palette; #else typedef QPalette Palette; #endif CompassGrid::CompassGrid(QWidget *parent): QFrame(parent) { #if QT_VERSION < 0x040000 setBackgroundColor(Qt::gray); #else QPalette p = palette(); p.setColor(backgroundRole(), Qt::gray); setPalette(p); #endif #if QT_VERSION >= 0x040100 setAutoFillBackground(true); #endif QGridLayout *layout = new QGridLayout(this); layout->setSpacing(5); layout->setMargin(0); int i; for ( i = 0; i < 6; i++ ) { QwtCompass *compass = createCompass(i); layout->addWidget(compass, i / 3, i % 3); } #if QT_VERSION < 0x040000 for ( i = 0; i < layout->numCols(); i++ ) layout->setColStretch(i, 1); #else for ( i = 0; i < layout->columnCount(); i++ ) layout->setColumnStretch(i, 1); #endif } QwtCompass *CompassGrid::createCompass(int pos) { int c; Palette colorGroup; for ( c = 0; c < Palette::NColorRoles; c++ ) colorGroup.setColor((Palette::ColorRole)c, QColor()); #if QT_VERSION < 0x040000 colorGroup.setColor(Palette::Base, backgroundColor().light(120)); #else colorGroup.setColor(Palette::Base, palette().color(backgroundRole()).light(120)); #endif colorGroup.setColor(Palette::Foreground, colorGroup.color(Palette::Base)); QwtCompass *compass = new QwtCompass(this); compass->setLineWidth(4); compass->setFrameShadow( pos <= 2 ? QwtCompass::Sunken : QwtCompass::Raised); switch(pos) { case 0: { /* A compass with a rose and no needle. Scale and rose are rotating. */ compass->setMode(QwtCompass::RotateScale); QwtSimpleCompassRose *rose = new QwtSimpleCompassRose(16, 2); rose->setWidth(0.15); compass->setRose(rose); break; } case 1: { /* A windrose, with a scale indicating the main directions only */ QMap map; map.insert(0.0, "N"); map.insert(90.0, "E"); map.insert(180.0, "S"); map.insert(270.0, "W"); compass->setLabelMap(map); QwtSimpleCompassRose *rose = new QwtSimpleCompassRose(4, 1); compass->setRose(rose); compass->setNeedle( new QwtCompassWindArrow(QwtCompassWindArrow::Style2)); compass->setValue(60.0); break; } case 2: { /* A compass with a rotating needle in darkBlue. Shows a ticks for each degree. */ colorGroup.setColor(Palette::Base, Qt::darkBlue); colorGroup.setColor(Palette::Foreground, QColor(Qt::darkBlue).dark(120)); colorGroup.setColor(Palette::Text, Qt::white); compass->setScaleOptions(QwtDial::ScaleTicks | QwtDial::ScaleLabel); compass->setScaleTicks(1, 1, 3); compass->setScale(36, 5, 0); compass->setNeedle( new QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::ThinStyle)); compass->setValue(220.0); break; } case 3: { /* A compass without a frame, showing numbers as tick labels. The origin is at 220.0 */ #if QT_VERSION < 0x040000 colorGroup.setColor(Palette::Base, backgroundColor()); #else colorGroup.setColor(Palette::Base, palette().color(backgroundRole())); #endif colorGroup.setColor(Palette::Foreground, Qt::blue); compass->setLineWidth(0); compass->setScaleOptions(QwtDial::ScaleBackbone | QwtDial::ScaleTicks | QwtDial::ScaleLabel); compass->setScaleTicks(0, 0, 3); QMap map; for ( double d = 0.0; d < 360.0; d += 60.0 ) { QString label; label.sprintf("%.0f", d); map.insert(d, label); } compass->setLabelMap(map); compass->setScale(36, 5, 0); compass->setNeedle(new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Ray, false, Qt::white)); compass->setOrigin(220.0); compass->setValue(20.0); break; } case 4: { /* A compass showing another needle */ compass->setScaleOptions(QwtDial::ScaleTicks | QwtDial::ScaleLabel); compass->setScaleTicks(0, 0, 3); compass->setNeedle(new QwtCompassMagnetNeedle( QwtCompassMagnetNeedle::TriangleStyle, Qt::white, Qt::red)); compass->setValue(220.0); break; } case 5: { /* A compass with a yellow on black ray */ colorGroup.setColor(Palette::Foreground, Qt::black); compass->setNeedle(new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Ray, false, Qt::yellow)); compass->setValue(315.0); break; } } QPalette newPalette = compass->palette(); for ( c = 0; c < Palette::NColorRoles; c++ ) { if ( colorGroup.color((Palette::ColorRole)c).isValid() ) { for ( int cg = 0; cg < QPalette::NColorGroups; cg++ ) { newPalette.setColor( (QPalette::ColorGroup)cg, (Palette::ColorRole)c, colorGroup.color((Palette::ColorRole)c)); } } } for ( int i = 0; i < QPalette::NColorGroups; i++ ) { QPalette::ColorGroup cg = (QPalette::ColorGroup)i; const QColor light = newPalette.color(cg, Palette::Base).light(170); const QColor dark = newPalette.color(cg, Palette::Base).dark(170); const QColor mid = compass->frameShadow() == QwtDial::Raised ? newPalette.color(cg, Palette::Base).dark(110) : newPalette.color(cg, Palette::Base).light(110); newPalette.setColor(cg, Palette::Dark, dark); newPalette.setColor(cg, Palette::Mid, mid); newPalette.setColor(cg, Palette::Light, light); } compass->setPalette(newPalette); return compass; } ��������������������������������������������qwt5-5.2.3/examples/dials/dials.cpp�����������������������������������������������������������������0000644�0001750�0001750�00000001356�12052741127�016477� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include "compass_grid.h" #include "cockpit_grid.h" //----------------------------------------------------------------- // // dials.cpp -- A demo program featuring QwtDial and friends // //----------------------------------------------------------------- int main (int argc, char **argv) { QApplication a(argc, argv); QTabWidget tabWidget; #if QT_VERSION < 0x040000 tabWidget.addTab(new CompassGrid(&tabWidget), "Compass"); tabWidget.addTab(new CockpitGrid(&tabWidget), "Cockpit"); a.setMainWidget(&tabWidget); #else tabWidget.addTab(new CompassGrid, "Compass"); tabWidget.addTab(new CockpitGrid, "Cockpit"); #endif tabWidget.show(); return a.exec(); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/compass_grid.h������������������������������������������������������������0000644�0001750�0001750�00000000260�12052741124�017510� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class QwtCompass; class CompassGrid: public QFrame { public: CompassGrid(QWidget *parent = NULL); private: QwtCompass *createCompass(int pos); }; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/cockpit_grid.cpp����������������������������������������������������������0000644�0001750�0001750�00000011710�12052741127�020037� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include "attitude_indicator.h" #include "speedo_meter.h" #include "cockpit_grid.h" #if QT_VERSION < 0x040000 typedef QColorGroup Palette; #else typedef QPalette Palette; #endif CockpitGrid::CockpitGrid(QWidget *parent): QFrame(parent) { #if QT_VERSION >= 0x040100 setAutoFillBackground(true); #endif setPalette(colorTheme(QColor(Qt::darkGray).dark(150))); QGridLayout *layout = new QGridLayout(this); layout->setSpacing(5); layout->setMargin(0); int i; for ( i = 0; i < 3; i++ ) { QwtDial *dial = createDial(i); layout->addWidget(dial, 0, i); } #if QT_VERSION < 0x040000 for ( i = 0; i < layout->numCols(); i++ ) layout->setColStretch(i, 1); #else for ( i = 0; i < layout->columnCount(); i++ ) layout->setColumnStretch(i, 1); #endif } QwtDial *CockpitGrid::createDial(int pos) { QwtDial *dial = NULL; switch(pos) { case 0: { d_clock = new QwtAnalogClock(this); const QColor knobColor = QColor(Qt::gray).light(130); for ( int i = 0; i < QwtAnalogClock::NHands; i++) { QColor handColor = QColor(Qt::gray).light(150); int width = 8; if ( i == QwtAnalogClock::SecondHand ) { handColor = Qt::gray; width = 5; } QwtDialSimpleNeedle *hand = new QwtDialSimpleNeedle( QwtDialSimpleNeedle::Arrow, true, handColor, knobColor); hand->setWidth(width); d_clock->setHand((QwtAnalogClock::Hand)i, hand); } QTimer *timer = new QTimer(d_clock); timer->connect(timer, SIGNAL(timeout()), d_clock, SLOT(setCurrentTime())); timer->start(1000); dial = d_clock; break; } case 1: { d_speedo = new SpeedoMeter(this); d_speedo->setRange(0.0, 240.0); d_speedo->setScale(-1, 2, 20); QTimer *timer = new QTimer(d_speedo); timer->connect(timer, SIGNAL(timeout()), this, SLOT(changeSpeed())); timer->start(50); dial = d_speedo; break; } case 2: { d_ai = new AttitudeIndicator(this); QTimer *gradientTimer = new QTimer(d_ai); gradientTimer->connect(gradientTimer, SIGNAL(timeout()), this, SLOT(changeGradient())); gradientTimer->start(100); QTimer *angleTimer = new QTimer(d_ai); angleTimer->connect(angleTimer, SIGNAL(timeout()), this, SLOT(changeAngle())); angleTimer->start(100); dial = d_ai; break; } } if ( dial ) { dial->setReadOnly(true); dial->scaleDraw()->setPenWidth(3); dial->setLineWidth(4); dial->setFrameShadow(QwtDial::Sunken); } return dial; } QPalette CockpitGrid::colorTheme(const QColor &base) const { const QColor background = base.dark(150); const QColor foreground = base.dark(200); const QColor mid = base.dark(110); const QColor dark = base.dark(170); const QColor light = base.light(170); const QColor text = foreground.light(800); QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { QPalette::ColorGroup cg = (QPalette::ColorGroup)i; palette.setColor(cg, Palette::Base, base); palette.setColor(cg, Palette::Background, background); palette.setColor(cg, Palette::Mid, mid); palette.setColor(cg, Palette::Light, light); palette.setColor(cg, Palette::Dark, dark); palette.setColor(cg, Palette::Text, text); palette.setColor(cg, Palette::Foreground, foreground); } return palette; } void CockpitGrid::changeSpeed() { static double offset = 0.8; double speed = d_speedo->value(); if ( (speed < 40.0 && offset < 0.0 ) || (speed > 160.0 && offset > 0.0) ) { offset = -offset; } static int counter = 0; switch(counter++ % 12 ) { case 0: case 2: case 7: case 8: break; default: d_speedo->setValue(speed + offset); } } void CockpitGrid::changeAngle() { static double offset = 0.05; double angle = d_ai->angle(); if ( angle > 180.0 ) angle -= 360.0; if ( (angle < -5.0 && offset < 0.0 ) || (angle > 5.0 && offset > 0.0) ) { offset = -offset; } d_ai->setAngle(angle + offset); } void CockpitGrid::changeGradient() { static double offset = 0.005; double gradient = d_ai->gradient(); if ( (gradient < -0.05 && offset < 0.0 ) || (gradient > 0.05 && offset > 0.0) ) { offset = -offset; } d_ai->setGradient(gradient + offset); } ��������������������������������������������������������qwt5-5.2.3/examples/dials/dials.pro�����������������������������������������������������������������0000644�0001750�0001750�00000001170�12052741127�016507� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = dials HEADERS = \ attitude_indicator.h \ speedo_meter.h \ cockpit_grid.h \ compass_grid.h SOURCES = \ attitude_indicator.cpp \ speedo_meter.cpp \ cockpit_grid.cpp \ compass_grid.cpp \ dials.cpp ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/cockpit_grid.h������������������������������������������������������������0000644�0001750�0001750�00000000756�12052741124�017511� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class QwtDial; class QwtAnalogClock; class SpeedoMeter; class AttitudeIndicator; class CockpitGrid: public QFrame { Q_OBJECT public: CockpitGrid(QWidget *parent = NULL); private slots: void changeSpeed(); void changeGradient(); void changeAngle(); private: QPalette colorTheme(const QColor &) const; QwtDial *createDial(int pos); QwtAnalogClock *d_clock; SpeedoMeter *d_speedo; AttitudeIndicator *d_ai; }; ������������������qwt5-5.2.3/examples/dials/attitude_indicator.cpp����������������������������������������������������0000644�0001750�0001750�00000007357�12052741127�021271� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "attitude_indicator.h" AttitudeIndicatorNeedle::AttitudeIndicatorNeedle(const QColor &c) { QPalette palette; for ( int i = 0; i < QPalette::NColorGroups; i++ ) { #if QT_VERSION < 0x040000 palette.setColor((QPalette::ColorGroup)i, QColorGroup::Text, c); #else palette.setColor((QPalette::ColorGroup)i, QPalette::Text, c); #endif } setPalette(palette); } void AttitudeIndicatorNeedle::draw(QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup cg) const { direction *= M_PI / 180.0; int triangleSize = qRound(length * 0.1); painter->save(); const QPoint p0(QPoint(center.x() + 1, center.y() + 1)); const QPoint p1 = qwtPolar2Pos(p0, length - 2 * triangleSize - 2, direction); QwtPolygon pa(3); pa.setPoint(0, qwtPolar2Pos(p1, 2 * triangleSize, direction)); pa.setPoint(1, qwtPolar2Pos(p1, triangleSize, direction + M_PI_2)); pa.setPoint(2, qwtPolar2Pos(p1, triangleSize, direction - M_PI_2)); const QColor color = #if QT_VERSION < 0x040000 palette().color(cg, QColorGroup::Text); #else palette().color(cg, QPalette::Text); #endif painter->setBrush(color); painter->drawPolygon(pa); painter->setPen(QPen(color, 3)); painter->drawLine(qwtPolar2Pos(p0, length - 2, direction + M_PI_2), qwtPolar2Pos(p0, length - 2, direction - M_PI_2)); painter->restore(); } AttitudeIndicator::AttitudeIndicator( QWidget *parent): QwtDial(parent), d_gradient(0.0) { setMode(RotateScale); setWrapping(true); setOrigin(270.0); setScaleOptions(ScaleTicks); setScale(0, 0, 30.0); const QColor color = #if QT_VERSION < 0x040000 colorGroup().text(); #else palette().color(QPalette::Text); #endif setNeedle(new AttitudeIndicatorNeedle(color)); } void AttitudeIndicator::setGradient(double gradient) { if ( gradient < -1.0 ) gradient = -1.0; else if ( gradient > 1.0 ) gradient = 1.0; if ( d_gradient != gradient ) { d_gradient = gradient; update(); } } void AttitudeIndicator::drawScale(QPainter *painter, const QPoint ¢er, int radius, double origin, double minArc, double maxArc) const { double dir = (360.0 - origin) * M_PI / 180.0; // counter clockwise, radian int offset = 4; const QPoint p0 = qwtPolar2Pos(center, offset, dir + M_PI); const int w = contentsRect().width(); QwtPolygon pa(4); pa.setPoint(0, qwtPolar2Pos(p0, w, dir - M_PI_2)); pa.setPoint(1, qwtPolar2Pos(pa.point(0), 2 * w, dir + M_PI_2)); pa.setPoint(2, qwtPolar2Pos(pa.point(1), w, dir)); pa.setPoint(3, qwtPolar2Pos(pa.point(2), 2 * w, dir - M_PI_2)); painter->save(); painter->setClipRegion(pa); // swallow 180 - 360 degrees QwtDial::drawScale(painter, center, radius, origin, minArc, maxArc); painter->restore(); } void AttitudeIndicator::drawScaleContents(QPainter *painter, const QPoint &, int) const { int dir = 360 - qRound(origin() - value()); // counter clockwise int arc = 90 + qRound(gradient() * 90); const QColor skyColor(38, 151, 221); painter->save(); painter->setBrush(skyColor); painter->drawChord(scaleContentsRect(), (dir - arc) * 16, 2 * arc * 16 ); painter->restore(); } void AttitudeIndicator::keyPressEvent(QKeyEvent *e) { switch(e->key()) { case Qt::Key_Plus: setGradient(gradient() + 0.05); break; case Qt::Key_Minus: setGradient(gradient() - 0.05); break; default: QwtDial::keyPressEvent(e); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/attitude_indicator.h������������������������������������������������������0000644�0001750�0001750�00000001626�12052741124�020724� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class AttitudeIndicatorNeedle: public QwtDialNeedle { public: AttitudeIndicatorNeedle(const QColor &); virtual void draw(QPainter *, const QPoint &, int length, double direction, QPalette::ColorGroup) const; }; class AttitudeIndicator: public QwtDial { Q_OBJECT public: AttitudeIndicator(QWidget *parent = NULL); double angle() const { return value(); } double gradient() const { return d_gradient; } public slots: void setGradient(double); void setAngle(double angle) { setValue(angle); } protected: virtual void keyPressEvent(QKeyEvent *); virtual void drawScale(QPainter *, const QPoint ¢er, int radius, double origin, double arcMin, double arcMax) const; virtual void drawScaleContents(QPainter *painter, const QPoint ¢er, int radius) const; private: double d_gradient; }; ����������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/speedo_meter.cpp����������������������������������������������������������0000644�0001750�0001750�00000002201�12052741127�020044� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include "speedo_meter.h" SpeedoMeter::SpeedoMeter(QWidget *parent): QwtDial(parent), d_label("km/h") { setWrapping(false); setReadOnly(true); setOrigin(135.0); setScaleArc(0.0, 270.0); scaleDraw()->setSpacing(8); QwtDialSimpleNeedle *needle = new QwtDialSimpleNeedle( QwtDialSimpleNeedle::Arrow, true, Qt::red, QColor(Qt::gray).light(130)); setNeedle(needle); setScaleOptions(ScaleTicks | ScaleLabel); setScaleTicks(0, 4, 8); } void SpeedoMeter::setLabel(const QString &label) { d_label = label; update(); } QString SpeedoMeter::label() const { return d_label; } void SpeedoMeter::drawScaleContents(QPainter *painter, const QPoint ¢er, int radius) const { QRect rect(0, 0, 2 * radius, 2 * radius - 10); rect.moveCenter(center); const QColor color = #if QT_VERSION < 0x040000 colorGroup().text(); #else palette().color(QPalette::Text); #endif painter->setPen(color); const int flags = Qt::AlignBottom | Qt::AlignHCenter; painter->drawText(rect, flags, d_label); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/dials/speedo_meter.h������������������������������������������������������������0000644�0001750�0001750�00000000526�12052741124�017516� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class SpeedoMeter: public QwtDial { public: SpeedoMeter(QWidget *parent = NULL); void setLabel(const QString &); QString label() const; protected: virtual void drawScaleContents(QPainter *painter, const QPoint ¢er, int radius) const; private: QString d_label; }; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sliders/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015243� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sliders/sliders.h���������������������������������������������������������������0000644�0001750�0001750�00000000645�12052741123�017062� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class QLabel; class QLayout; class Slider: public QWidget { Q_OBJECT public: Slider(QWidget *parent, int sliderType); private slots: void setNum(double v); private: QwtSlider *createSlider(QWidget *, int sliderType) const; QwtSlider *d_slider; QLabel *d_label; }; class SliderDemo : public QWidget { public: SliderDemo(QWidget *p = NULL); }; �������������������������������������������������������������������������������������������qwt5-5.2.3/examples/sliders/sliders.pro�������������������������������������������������������������0000644�0001750�0001750�00000000713�12052741127�017433� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = sliders HEADERS = \ sliders.h SOURCES = \ sliders.cpp �����������������������������������������������������qwt5-5.2.3/examples/sliders/sliders.cpp�������������������������������������������������������������0000644�0001750�0001750�00000012543�12052741127�017421� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include "sliders.h" class Layout: public QBoxLayout { public: Layout(Qt::Orientation o, QWidget *parent = NULL): #if QT_VERSION < 0x040000 QBoxLayout(parent, QBoxLayout::LeftToRight) #else QBoxLayout(QBoxLayout::LeftToRight, parent) #endif { if ( o == Qt::Vertical ) setDirection(QBoxLayout::TopToBottom); setSpacing(20); setMargin(0); } }; Slider::Slider(QWidget *parent, int sliderType): QWidget(parent) { d_slider = createSlider(this, sliderType); #if QT_VERSION < 0x040000 int alignment = Qt::AlignCenter; #else QFlags alignment; #endif switch(d_slider->scalePosition()) { case QwtSlider::NoScale: if ( d_slider->orientation() == Qt::Horizontal ) alignment = Qt::AlignHCenter | Qt::AlignTop; else alignment = Qt::AlignVCenter | Qt::AlignLeft; break; case QwtSlider::LeftScale: alignment = Qt::AlignVCenter | Qt::AlignRight; break; case QwtSlider::RightScale: alignment = Qt::AlignVCenter | Qt::AlignLeft; break; case QwtSlider::TopScale: alignment = Qt::AlignHCenter | Qt::AlignBottom; break; case QwtSlider::BottomScale: alignment = Qt::AlignHCenter | Qt::AlignTop; break; } d_label = new QLabel("0", this); d_label->setAlignment(alignment); d_label->setFixedWidth(d_label->fontMetrics().width("10000.9")); connect(d_slider, SIGNAL(valueChanged(double)), SLOT(setNum(double))); QBoxLayout *layout; if ( d_slider->orientation() == Qt::Horizontal ) layout = new QHBoxLayout(this); else layout = new QVBoxLayout(this); layout->addWidget(d_slider); layout->addWidget(d_label); } QwtSlider *Slider::createSlider(QWidget *parent, int sliderType) const { QwtSlider *slider = NULL; switch(sliderType) { case 0: { slider = new QwtSlider(parent, Qt::Horizontal, QwtSlider::TopScale, QwtSlider::BgTrough); slider->setThumbWidth(10); slider->setRange(-10.0, 10.0, 1.0, 0); // paging disabled break; } case 1: { slider = new QwtSlider(parent, Qt::Horizontal, QwtSlider::NoScale, QwtSlider::BgBoth); slider->setRange(0.0, 1.0, 0.01, 5); break; } case 2: { slider = new QwtSlider(parent, Qt::Horizontal, QwtSlider::BottomScale, QwtSlider::BgSlot); slider->setThumbWidth(25); slider->setThumbLength(12); slider->setRange(1000.0, 3000.0, 10.0, 10); break; } case 3: { slider = new QwtSlider(parent, Qt::Vertical, QwtSlider::LeftScale, QwtSlider::BgSlot); slider->setRange(0.0, 100.0, 1.0, 5); slider->setScaleMaxMinor(5); break; } case 4: { slider = new QwtSlider(parent, Qt::Vertical, QwtSlider::NoScale, QwtSlider::BgTrough); slider->setRange(0.0,100.0,1.0, 10); break; } case 5: { slider = new QwtSlider(parent, Qt::Vertical, QwtSlider::RightScale, QwtSlider::BgBoth); slider->setScaleEngine(new QwtLog10ScaleEngine); slider->setThumbWidth(20); slider->setBorderWidth(1); slider->setRange(0.0, 4.0, 0.01); slider->setScale(1.0, 1.0e4); slider->setScaleMaxMinor(10); break; } } return slider; } void Slider::setNum(double v) { if ( d_slider->scaleMap().transformation()->type() == QwtScaleTransformation::Log10 ) { v = pow(10.0, v); } QString text; text.setNum(v, 'f', 1); d_label->setText(text); } SliderDemo::SliderDemo(QWidget *p): QWidget(p) { int i; Layout *hSliderLayout = new Layout(Qt::Vertical); for ( i = 0; i < 3; i++ ) hSliderLayout->addWidget(new Slider(this, i)); hSliderLayout->addStretch(); Layout *vSliderLayout = new Layout(Qt::Horizontal); for ( ; i < 6; i++ ) vSliderLayout->addWidget(new Slider(this, i)); QLabel *vTitle = new QLabel("Vertical Sliders", this); vTitle->setFont(QFont("Helvetica", 14, QFont::Bold)); vTitle->setAlignment(Qt::AlignHCenter); Layout *layout1 = new Layout(Qt::Vertical); layout1->addWidget(vTitle, 0); layout1->addLayout(vSliderLayout, 10); QLabel *hTitle = new QLabel("Horizontal Sliders", this); hTitle->setFont(vTitle->font()); hTitle->setAlignment(Qt::AlignHCenter); Layout *layout2 = new Layout(Qt::Vertical); layout2->addWidget(hTitle, 0); layout2->addLayout(hSliderLayout, 10); Layout *mainLayout = new Layout(Qt::Horizontal, this); mainLayout->addLayout(layout1); mainLayout->addLayout(layout2, 10); } int main (int argc, char **argv) { QApplication a(argc, argv); QApplication::setFont(QFont("Helvetica",10)); SliderDemo w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.show(); return a.exec(); } �������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/�������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�016264� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/colorbar.cpp�������������������������������������������������������0000644�0001750�0001750�00000005170�12052741127�020576� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include "colorbar.h" ColorBar::ColorBar(Qt::Orientation o, QWidget *parent): QWidget(parent), d_orientation(o), d_light(Qt::white), d_dark(Qt::black) { #ifndef QT_NO_CURSOR #if QT_VERSION < 0x040000 setCursor(Qt::pointingHandCursor); #else setCursor(Qt::PointingHandCursor); #endif #endif } void ColorBar::setOrientation(Qt::Orientation o) { d_orientation = o; update(); } void ColorBar::setLight(const QColor &light) { d_light = light; update(); } void ColorBar::setDark(const QColor &dark) { d_dark = dark; update(); } void ColorBar::setRange(const QColor &light, const QColor &dark) { d_light = light; d_dark = dark; update(); } void ColorBar::mousePressEvent(QMouseEvent *e) { if( e->button() == Qt::LeftButton ) { // emit the color of the position where the mouse click // happened const QPixmap pm = QPixmap::grabWidget(this); #if QT_VERSION < 0x040000 const QRgb rgb = pm.convertToImage().pixel(e->x(), e->y()); #else const QRgb rgb = pm.toImage().pixel(e->x(), e->y()); #endif emit selected(QColor(rgb)); e->accept(); } } void ColorBar::paintEvent(QPaintEvent *) { QPainter painter(this); drawColorBar(&painter, rect()); } void ColorBar::drawColorBar(QPainter *painter, const QRect &rect) const { int h1, s1, v1; int h2, s2, v2; #if QT_VERSION < 0x040000 d_light.hsv(&h1, &s1, &v1); d_dark.hsv(&h2, &s2, &v2); #else d_light.getHsv(&h1, &s1, &v1); d_dark.getHsv(&h2, &s2, &v2); #endif painter->save(); painter->setClipRect(rect); painter->setClipping(true); painter->fillRect(rect, d_dark); const int sectionSize = 2; int numIntervalls; if ( d_orientation == Qt::Horizontal ) numIntervalls = rect.width() / sectionSize; else numIntervalls = rect.height() / sectionSize; for ( int i = 0; i < numIntervalls; i++ ) { QRect section; if ( d_orientation == Qt::Horizontal ) { section.setRect(rect.x() + i * sectionSize, rect.y(), sectionSize, rect.height()); } else { section.setRect(rect.x(), rect.y() + i * sectionSize, rect.width(), sectionSize); } const double ratio = i / (double)numIntervalls; QColor c; c.setHsv( h1 + qRound(ratio * (h2 - h1)), s1 + qRound(ratio * (s2 - s1)), v1 + qRound(ratio * (v2 - v1)) ); painter->fillRect(section, c); } painter->restore(); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/README�������������������������������������������������������������0000644�0001750�0001750�00000001546�12052741122�017145� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������QwtPlot is a composite widget consisting of a title label, the canvas, the scales and a legend. Although all components should be exchangable some day, the current design isn´t ready for it. In this situation event filtering is the mechanism to extend the behaviour of the plot components. event_filter shows 3 examples how to use it: 1) CanvasPicker The CanvasPicker implements a solution, how to move points on the canvas with mouse and keyboard. 2) ScalePicker The ScalePicker translates the position of mouse clicks on the scales and emits them as signals. 3) Plot: ColorBar, QSlider The Plot class shows how to add widgets to the scales. In this example there is no filter class. The derived plot widget filters its components. Please note that CanvasPicker and ScalePicker are standalone classes that could be connected with your QwtPlot as well. Uwe ����������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/event_filter.cpp���������������������������������������������������0000644�0001750�0001750�00000003242�12052741127�021457� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������//----------------------------------------------------------------- // A demo program showing how to use event filtering //----------------------------------------------------------------- #include #include #include #include #include #include "plot.h" #include "canvaspicker.h" #include "scalepicker.h" int main (int argc, char **argv) { QApplication a(argc, argv); QMainWindow mainWindow; QToolBar *toolBar = new QToolBar(&mainWindow); #if QT_VERSION >= 0x040000 QAction *action = QWhatsThis::createAction(toolBar); toolBar->addAction(action); mainWindow.addToolBar(toolBar); #else (void)QWhatsThis::whatsThisButton(toolBar); #endif Plot *plot = new Plot(&mainWindow); // The canvas picker handles all mouse and key // events on the plot canvas (void) new CanvasPicker(plot); // The scale picker translates mouse clicks // int o clicked() signals ScalePicker *scalePicker = new ScalePicker(plot); a.connect(scalePicker, SIGNAL(clicked(int, double)), plot, SLOT(insertCurve(int, double))); mainWindow.setCentralWidget(plot); #if QT_VERSION < 0x040000 a.setMainWidget(&mainWindow); #endif mainWindow.resize(540, 400); mainWindow.show(); const char *text = "An useless plot to demonstrate how to use event filtering.\n\n" "You can click on the color bar, the scales or move the wheel.\n" "All points can be moved using the mouse or the keyboard."; #if QT_VERSION < 0x040000 QWhatsThis::add(plot, text); #else plot->setWhatsThis(text); #endif int rv = a.exec(); return rv; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/canvaspicker.cpp���������������������������������������������������0000644�0001750�0001750�00000020433�12052741127�021443� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include #include #include "canvaspicker.h" CanvasPicker::CanvasPicker(QwtPlot *plot): QObject(plot), d_selectedCurve(NULL), d_selectedPoint(-1) { QwtPlotCanvas *canvas = plot->canvas(); canvas->installEventFilter(this); // We want the focus, but no focus rect. The // selected point will be highlighted instead. #if QT_VERSION >= 0x040000 canvas->setFocusPolicy(Qt::StrongFocus); #ifndef QT_NO_CURSOR canvas->setCursor(Qt::PointingHandCursor); #endif #else canvas->setFocusPolicy(QWidget::StrongFocus); #ifndef QT_NO_CURSOR canvas->setCursor(Qt::pointingHandCursor); #endif #endif canvas->setFocusIndicator(QwtPlotCanvas::ItemFocusIndicator); canvas->setFocus(); const char *text = "All points can be moved using the left mouse button " "or with these keys:\n\n" "- Up:\t\tSelect next curve\n" "- Down:\t\tSelect previous curve\n" "- Left, ´-´:\tSelect next point\n" "- Right, ´+´:\tSelect previous point\n" "- 7, 8, 9, 4, 6, 1, 2, 3:\tMove selected point"; #if QT_VERSION >= 0x040000 canvas->setWhatsThis(text); #else QWhatsThis::add(canvas, text); #endif shiftCurveCursor(true); } bool CanvasPicker::event(QEvent *e) { if ( e->type() == QEvent::User ) { showCursor(true); return true; } return QObject::event(e); } bool CanvasPicker::eventFilter(QObject *object, QEvent *e) { if ( object != (QObject *)plot()->canvas() ) return false; switch(e->type()) { case QEvent::FocusIn: showCursor(true); case QEvent::FocusOut: showCursor(false); case QEvent::Paint: { QApplication::postEvent(this, new QEvent(QEvent::User)); break; } case QEvent::MouseButtonPress: { select(((QMouseEvent *)e)->pos()); return true; } case QEvent::MouseMove: { move(((QMouseEvent *)e)->pos()); return true; } case QEvent::KeyPress: { const int delta = 5; switch(((const QKeyEvent *)e)->key()) { case Qt::Key_Up: shiftCurveCursor(true); return true; case Qt::Key_Down: shiftCurveCursor(false); return true; case Qt::Key_Right: case Qt::Key_Plus: if ( d_selectedCurve ) shiftPointCursor(true); else shiftCurveCursor(true); return true; case Qt::Key_Left: case Qt::Key_Minus: if ( d_selectedCurve ) shiftPointCursor(false); else shiftCurveCursor(true); return true; // The following keys represent a direction, they are // organized on the keyboard. case Qt::Key_1: moveBy(-delta, delta); break; case Qt::Key_2: moveBy(0, delta); break; case Qt::Key_3: moveBy(delta, delta); break; case Qt::Key_4: moveBy(-delta, 0); break; case Qt::Key_6: moveBy(delta, 0); break; case Qt::Key_7: moveBy(-delta, -delta); break; case Qt::Key_8: moveBy(0, -delta); break; case Qt::Key_9: moveBy(delta, -delta); break; default: break; } } default: break; } return QObject::eventFilter(object, e); } // Select the point at a position. If there is no point // deselect the selected point void CanvasPicker::select(const QPoint &pos) { QwtPlotCurve *curve = NULL; double dist = 10e10; int index = -1; const QwtPlotItemList& itmList = plot()->itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { if ( (*it)->rtti() == QwtPlotItem::Rtti_PlotCurve ) { QwtPlotCurve *c = (QwtPlotCurve*)(*it); double d; int idx = c->closestPoint(pos, &d); if ( d < dist ) { curve = c; index = idx; dist = d; } } } showCursor(false); d_selectedCurve = NULL; d_selectedPoint = -1; if ( curve && dist < 10 ) // 10 pixels tolerance { d_selectedCurve = curve; d_selectedPoint = index; showCursor(true); } } // Move the selected point void CanvasPicker::moveBy(int dx, int dy) { if ( dx == 0 && dy == 0 ) return; if ( !d_selectedCurve ) return; const int x = plot()->transform(d_selectedCurve->xAxis(), d_selectedCurve->x(d_selectedPoint)) + dx; const int y = plot()->transform(d_selectedCurve->yAxis(), d_selectedCurve->y(d_selectedPoint)) + dy; move(QPoint(x, y)); } // Move the selected point void CanvasPicker::move(const QPoint &pos) { if ( !d_selectedCurve ) return; QwtArray xData(d_selectedCurve->dataSize()); QwtArray yData(d_selectedCurve->dataSize()); for ( int i = 0; i < d_selectedCurve->dataSize(); i++ ) { if ( i == d_selectedPoint ) { xData[i] = plot()->invTransform(d_selectedCurve->xAxis(), pos.x());; yData[i] = plot()->invTransform(d_selectedCurve->yAxis(), pos.y());; } else { xData[i] = d_selectedCurve->x(i); yData[i] = d_selectedCurve->y(i); } } d_selectedCurve->setData(xData, yData); plot()->replot(); showCursor(true); } // Hightlight the selected point void CanvasPicker::showCursor(bool showIt) { if ( !d_selectedCurve ) return; const QwtSymbol symbol = d_selectedCurve->symbol(); QwtSymbol newSymbol = symbol; if ( showIt ) newSymbol.setBrush(symbol.brush().color().dark(150)); const bool doReplot = plot()->autoReplot(); plot()->setAutoReplot(false); d_selectedCurve->setSymbol(newSymbol); d_selectedCurve->draw(d_selectedPoint, d_selectedPoint); d_selectedCurve->setSymbol(symbol); plot()->setAutoReplot(doReplot); } // Select the next/previous curve void CanvasPicker::shiftCurveCursor(bool up) { QwtPlotItemIterator it; const QwtPlotItemList &itemList = plot()->itemList(); QwtPlotItemList curveList; for ( it = itemList.begin(); it != itemList.end(); ++it ) { if ( (*it)->rtti() == QwtPlotItem::Rtti_PlotCurve ) curveList += *it; } if ( curveList.isEmpty() ) return; it = curveList.begin(); if ( d_selectedCurve ) { for ( it = curveList.begin(); it != curveList.end(); ++it ) { if ( d_selectedCurve == *it ) break; } if ( it == curveList.end() ) // not found it = curveList.begin(); if ( up ) { ++it; if ( it == curveList.end() ) it = curveList.begin(); } else { if ( it == curveList.begin() ) it = curveList.end(); --it; } } showCursor(false); d_selectedPoint = 0; d_selectedCurve = (QwtPlotCurve *)*it; showCursor(true); } // Select the next/previous neighbour of the selected point void CanvasPicker::shiftPointCursor(bool up) { if ( !d_selectedCurve ) return; int index = d_selectedPoint + (up ? 1 : -1); index = (index + d_selectedCurve->dataSize()) % d_selectedCurve->dataSize(); if ( index != d_selectedPoint ) { showCursor(false); d_selectedPoint = index; showCursor(true); } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/canvaspicker.h�����������������������������������������������������0000644�0001750�0001750�00000001255�12052741124�021106� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class QPoint; class QCustomEvent; class QwtPlot; class QwtPlotCurve; class CanvasPicker: public QObject { Q_OBJECT public: CanvasPicker(QwtPlot *plot); virtual bool eventFilter(QObject *, QEvent *); virtual bool event(QEvent *); private: void select(const QPoint &); void move(const QPoint &); void moveBy(int dx, int dy); void release(); void showCursor(bool enable); void shiftPointCursor(bool up); void shiftCurveCursor(bool up); QwtPlot *plot() { return (QwtPlot *)parent(); } const QwtPlot *plot() const { return (QwtPlot *)parent(); } QwtPlotCurve *d_selectedCurve; int d_selectedPoint; }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/plot.h�������������������������������������������������������������0000644�0001750�0001750�00000000730�12052741124�017410� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class ColorBar; class QwtWheel; class Plot: public QwtPlot { Q_OBJECT public: Plot(QWidget *parent = NULL); virtual bool eventFilter(QObject *, QEvent *); public slots: void setCanvasColor(const QColor &); void insertCurve(int axis, double base); private slots: void scrollLeftAxis(double); private: void insertCurve(Qt::Orientation, const QColor &, double base); ColorBar *d_colorBar; QwtWheel *d_wheel; }; ����������������������������������������qwt5-5.2.3/examples/event_filter/scalepicker.h������������������������������������������������������0000644�0001750�0001750�00000000616�12052741124�020722� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include class QwtPlot; class QwtScaleWidget; class ScalePicker: public QObject { Q_OBJECT public: ScalePicker(QwtPlot *plot); virtual bool eventFilter(QObject *, QEvent *); signals: void clicked(int axis, double value); private: void mouseClicked(const QwtScaleWidget *, const QPoint &); QRect scaleRect(const QwtScaleWidget *) const; }; ������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/event_filter.pro���������������������������������������������������0000644�0001750�0001750�00000001141�12052741127�021471� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = event_filter HEADERS = \ colorbar.h \ scalepicker.h \ canvaspicker.h \ plot.h SOURCES = \ colorbar.cpp \ scalepicker.cpp \ canvaspicker.cpp \ plot.cpp \ event_filter.cpp �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/plot.cpp�����������������������������������������������������������0000644�0001750�0001750�00000012614�12052741127�017752� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "plot.h" #include "colorbar.h" #include #if QT_VERSION < 0x040000 #include #endif #include #include #include #include #include #include #include #include Plot::Plot(QWidget *parent): QwtPlot(parent) { setTitle("Interactive Plot"); setCanvasColor(Qt::darkCyan); QwtPlotGrid *grid = new QwtPlotGrid; grid->setMajPen(QPen(Qt::white, 0, Qt::DotLine)); grid->attach(this); // axes setAxisScale(QwtPlot::xBottom, 0.0, 100.0); setAxisScale(QwtPlot::yLeft, 0.0, 100.0); // Avoid jumping when label with 3 digits // appear/disappear when scrolling vertically QwtScaleDraw *sd = axisScaleDraw(QwtPlot::yLeft); sd->setMinimumExtent( sd->extent(QPen(), axisWidget(QwtPlot::yLeft)->font())); plotLayout()->setAlignCanvasToScales(true); insertCurve(Qt::Vertical, Qt::blue, 30.0); insertCurve(Qt::Vertical, Qt::magenta, 70.0); insertCurve(Qt::Horizontal, Qt::yellow, 30.0); insertCurve(Qt::Horizontal, Qt::white, 70.0); replot(); // ------------------------------------ // We add a color bar to the left axis // ------------------------------------ QwtScaleWidget *scaleWidget = (QwtScaleWidget *)axisWidget(yLeft); scaleWidget->setMargin(10); // area for the color bar d_colorBar = new ColorBar(Qt::Vertical, scaleWidget); d_colorBar->setRange(Qt::red, Qt::darkBlue); #if QT_VERSION >= 0x040000 d_colorBar->setFocusPolicy( Qt::TabFocus ); #else d_colorBar->setFocusPolicy( QWidget::TabFocus ); #endif connect(d_colorBar, SIGNAL(selected(const QColor &)), SLOT(setCanvasColor(const QColor &))); // we need the resize events, to lay out the color bar scaleWidget->installEventFilter(this); // ------------------------------------ // We add a wheel to the canvas // ------------------------------------ d_wheel = new QwtWheel(canvas()); d_wheel->setOrientation(Qt::Vertical); d_wheel->setRange(-100, 100); d_wheel->setValue(0.0); d_wheel->setMass(0.2); d_wheel->setTotalAngle(4 * 360.0); connect(d_wheel, SIGNAL(valueChanged(double)), SLOT(scrollLeftAxis(double))); // we need the resize events, to lay out the wheel canvas()->installEventFilter(this); #if QT_VERSION < 0x040000 QWhatsThis::add(d_colorBar, "Selecting a color will change the background of the plot."); QWhatsThis::add(scaleWidget, "Selecting a value at the scale will insert a new curve."); QWhatsThis::add(d_wheel, "With the wheel you can move the visible area."); QWhatsThis::add(axisWidget(xBottom), "Selecting a value at the scale will insert a new curve."); #else d_colorBar->setWhatsThis( "Selecting a color will change the background of the plot."); scaleWidget->setWhatsThis( "Selecting a value at the scale will insert a new curve."); d_wheel->setWhatsThis( "With the wheel you can move the visible area."); axisWidget(xBottom)->setWhatsThis( "Selecting a value at the scale will insert a new curve."); #endif } void Plot::setCanvasColor(const QColor &c) { setCanvasBackground(c); replot(); } void Plot::scrollLeftAxis(double value) { setAxisScale(yLeft, value, value + 100.0); replot(); } bool Plot::eventFilter(QObject *object, QEvent *e) { if ( e->type() == QEvent::Resize ) { const QSize &size = ((QResizeEvent *)e)->size(); if ( object == (QObject *)axisWidget(yLeft) ) { const QwtScaleWidget *scaleWidget = axisWidget(yLeft); const int margin = 2; // adjust the color bar to the scale backbone const int x = size.width() - scaleWidget->margin() + margin; const int w = scaleWidget->margin() - 2 * margin; const int y = scaleWidget->startBorderDist(); const int h = size.height() - scaleWidget->startBorderDist() - scaleWidget->endBorderDist(); d_colorBar->setGeometry(x, y, w, h); } if ( object == canvas() ) { const int w = 16; const int h = 50; const int margin = 2; const QRect cr = canvas()->contentsRect(); d_wheel->setGeometry( cr.right() - margin - w, cr.center().y() - h / 2, w, h); } } return QwtPlot::eventFilter(object, e); } void Plot::insertCurve(int axis, double base) { Qt::Orientation o; if ( axis == yLeft || axis == yRight ) o = Qt::Horizontal; else o = Qt::Vertical; QRgb rgb = (uint)rand(); insertCurve(o, QColor(rgb), base); replot(); } void Plot::insertCurve(Qt::Orientation o, const QColor &c, double base) { QwtPlotCurve *curve = new QwtPlotCurve(); curve->setPen(c); curve->setSymbol(QwtSymbol(QwtSymbol::Ellipse, Qt::gray, c, QSize(8, 8))); double x[10]; double y[sizeof(x) / sizeof(x[0])]; for ( uint i = 0; i < sizeof(x) / sizeof(x[0]); i++ ) { double v = 5.0 + i * 10.0; if ( o == Qt::Horizontal ) { x[i] = v; y[i] = base; } else { x[i] = base; y[i] = v; } } curve->setData(x, y, sizeof(x) / sizeof(x[0])); curve->attach(this); } ��������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/scalepicker.cpp����������������������������������������������������0000644�0001750�0001750�00000006122�12052741127�021256� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include "scalepicker.h" ScalePicker::ScalePicker(QwtPlot *plot): QObject(plot) { for ( uint i = 0; i < QwtPlot::axisCnt; i++ ) { QwtScaleWidget *scaleWidget = (QwtScaleWidget *)plot->axisWidget(i); if ( scaleWidget ) scaleWidget->installEventFilter(this); } } bool ScalePicker::eventFilter(QObject *object, QEvent *e) { if ( object->inherits("QwtScaleWidget") && e->type() == QEvent::MouseButtonPress ) { mouseClicked((const QwtScaleWidget *)object, ((QMouseEvent *)e)->pos()); return true; } return QObject::eventFilter(object, e); } void ScalePicker::mouseClicked(const QwtScaleWidget *scale, const QPoint &pos) { QRect rect = scaleRect(scale); int margin = 10; // 10 pixels tolerance rect.setRect(rect.x() - margin, rect.y() - margin, rect.width() + 2 * margin, rect.height() + 2 * margin); if ( rect.contains(pos) ) // No click on the title { // translate the position in a value on the scale double value = 0.0; int axis = -1; const QwtScaleDraw *sd = scale->scaleDraw(); switch(scale->alignment()) { case QwtScaleDraw::LeftScale: { value = sd->map().invTransform(pos.y()); axis = QwtPlot::yLeft; break; } case QwtScaleDraw::RightScale: { value = sd->map().invTransform(pos.y()); axis = QwtPlot::yRight; break; } case QwtScaleDraw::BottomScale: { value = sd->map().invTransform(pos.x()); axis = QwtPlot::xBottom; break; } case QwtScaleDraw::TopScale: { value = sd->map().invTransform(pos.x()); axis = QwtPlot::xTop; break; } } emit clicked(axis, value); } } // The rect of a scale without the title QRect ScalePicker::scaleRect(const QwtScaleWidget *scale) const { const int bld = scale->margin(); const int mjt = scale->scaleDraw()->majTickLength(); const int sbd = scale->startBorderDist(); const int ebd = scale->endBorderDist(); QRect rect; switch(scale->alignment()) { case QwtScaleDraw::LeftScale: { rect.setRect(scale->width() - bld - mjt, sbd, mjt, scale->height() - sbd - ebd); break; } case QwtScaleDraw::RightScale: { rect.setRect(bld, sbd, mjt, scale->height() - sbd - ebd); break; } case QwtScaleDraw::BottomScale: { rect.setRect(sbd, bld, scale->width() - sbd - ebd, mjt); break; } case QwtScaleDraw::TopScale: { rect.setRect(sbd, scale->height() - bld - mjt, scale->width() - sbd - ebd, mjt); break; } } return rect; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/event_filter/colorbar.h���������������������������������������������������������0000644�0001750�0001750�00000001431�12052741124�020234� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include class ColorBar: public QWidget { Q_OBJECT public: ColorBar(Qt::Orientation = Qt::Horizontal, QWidget * = NULL); virtual void setOrientation(Qt::Orientation o); Qt::Orientation orientation() const { return d_orientation; } void setRange(const QColor &light, const QColor &dark); void setLight(const QColor &light); void setDark(const QColor &dark); QColor light() const { return d_light; } QColor dark() const { return d_dark; } signals: void selected(const QColor &); protected: virtual void mousePressEvent(QMouseEvent *); virtual void paintEvent(QPaintEvent *); void drawColorBar(QPainter *, const QRect &) const; private: Qt::Orientation d_orientation; QColor d_light; QColor d_dark; }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/examples.pro��������������������������������������������������������������������0000644�0001750�0001750�00000001657�12052741127�016147� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../qwtconfig.pri ) TEMPLATE = subdirs contains(CONFIG, QwtPlot) { SUBDIRS += \ cpuplot \ curvdemo1 \ curvdemo2 \ simple_plot \ realtime_plot \ spectrogram \ histogram contains(CONFIG, QwtWidgets) { SUBDIRS += \ bode \ data_plot \ event_filter } contains(CONFIG, QwtSVGItem) { SUBDIRS += \ svgmap } } contains(CONFIG, QwtWidgets) { SUBDIRS += \ sysinfo \ radio \ dials \ sliders } ���������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo2/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015504� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo2/curvdemo2.cpp���������������������������������������������������������0000644�0001750�0001750�00000011213�12052741127�020114� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include "curvdemo2.h" //------------------------------------------------------------ // curvdemo2 // // This example shows a simple animation featuring // with several QwtPlotCurves // //------------------------------------------------------------ // // Array Sizes // const int Size = 15; const int USize = 13; // // Arrays holding the values // double xval[Size]; double yval[Size]; double zval[Size]; double uval[USize]; double vval[USize]; // // CONSTRUCT MAIN WINDOW // MainWin::MainWin(): QFrame() { setFrameStyle(QFrame::Box|QFrame::Raised); setLineWidth(2); setMidLineWidth(3); const QColor bgColor(30,30,50); #if QT_VERSION < 0x040000 setPaletteBackgroundColor(bgColor); #else QPalette p = palette(); p.setColor(backgroundRole(), bgColor); setPalette(p); #endif QwtSplineCurveFitter* curveFitter; // // curve 1 // int i = 0; xMap[i].setScaleInterval(-1.5, 1.5); yMap[i].setScaleInterval(0.0, 6.28); curve[i].setPen(QPen(QColor(150,150,200),2)); curve[i].setStyle(QwtPlotCurve::Lines); curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true); curveFitter = new QwtSplineCurveFitter(); curveFitter->setSplineSize(150); curve[i].setCurveFitter(curveFitter); QwtSymbol sym; sym.setStyle(QwtSymbol::XCross); sym.setPen(QPen(Qt::yellow,2)); sym.setSize(7); curve[i].setSymbol(sym); curve[i].setRawData(yval,xval,Size); // // curve 2 // i++; xMap[i].setScaleInterval(0.0, 6.28); yMap[i].setScaleInterval(-3.0, 1.1); curve[i].setPen(QPen(QColor(200,150,50))); curve[i].setStyle(QwtPlotCurve::Sticks); curve[i].setSymbol(QwtSymbol(QwtSymbol::Ellipse, QColor(Qt::blue), QColor(Qt::yellow), QSize(5,5))); curve[i].setRawData(xval,zval,Size); // // curve 3 // i++; xMap[i].setScaleInterval(-1.1, 3.0); yMap[i].setScaleInterval(-1.1, 3.0); curve[i].setStyle(QwtPlotCurve::Lines); curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true); curve[i].setPen(QColor(100,200,150)); curveFitter = new QwtSplineCurveFitter(); curveFitter->setFitMode(QwtSplineCurveFitter::ParametricSpline); curveFitter->setSplineSize(200); curve[i].setCurveFitter(curveFitter); curve[i].setRawData(yval,zval,Size); // // curve 4 // i++; xMap[i].setScaleInterval(-5, 1.1); yMap[i].setScaleInterval(-1.1, 5.0); curve[i].setStyle(QwtPlotCurve::Lines); curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true); curve[i].setPen(QColor(Qt::red)); curveFitter = new QwtSplineCurveFitter(); curveFitter->setSplineSize(200); curve[i].setCurveFitter(curveFitter); curve[i].setRawData(uval,vval,USize); // // initialize values // double base = 2.0 * M_PI / double(USize - 1); double toggle = 1.0; for (i = 0; i < USize; i++) { uval[i] = toggle * cos( double(i) * base); vval[i] = toggle * sin( double(i) * base); if (toggle == 1.0) toggle = 0.5; else toggle = 1.0; } newValues(); // // start timer // (void)startTimer(250); } #if QT_VERSION >= 0x040000 void MainWin::paintEvent(QPaintEvent *event) { QFrame::paintEvent(event); QPainter painter(this); painter.setClipRect(contentsRect()); drawContents(&painter); } #endif void MainWin::drawContents(QPainter *painter) { const QRect &r = contentsRect(); for ( int i = 0; i < curveCount; i++ ) { xMap[i].setPaintInterval(r.left(), r.right()); yMap[i].setPaintInterval(r.top(), r.bottom()); curve[i].draw(painter, xMap[i], yMap[i], r); } } // // TIMER EVENT // void MainWin::timerEvent(QTimerEvent *) { newValues(); repaint(); } // // RE-CALCULATE VALUES // void MainWin::newValues() { int i; static double phs = 0.0; double s,c,u; for (i=0;i 6.28) phs = 0.0; } int main (int argc, char **argv) { QApplication a(argc, argv); MainWin w; #if QT_VERSION < 0x040000 a.setMainWidget(&w); #endif w.resize(300,300); w.show(); return a.exec(); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/curvdemo2/curvdemo2.pro���������������������������������������������������������0000644�0001750�0001750�00000000720�12052741127�020133� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = curvdemo2 HEADERS = \ curvdemo2.h SOURCES = \ curvdemo2.cpp ������������������������������������������������qwt5-5.2.3/examples/curvdemo2/curvdemo2.h�����������������������������������������������������������0000644�0001750�0001750�00000000754�12052741124�017566� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include class MainWin : public QFrame { public: enum { curveCount = 4 }; QwtScaleMap xMap[curveCount]; QwtScaleMap yMap[curveCount]; QwtPlotCurve curve[curveCount]; public: MainWin(); protected: virtual void timerEvent(QTimerEvent *t); #if QT_VERSION >= 0x040000 virtual void paintEvent(QPaintEvent *); #endif virtual void drawContents(QPainter *); private: void newValues(); }; ��������������������qwt5-5.2.3/examples/histogram/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12052741127�015573� 5����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/histogram/histogram_item.cpp����������������������������������������������������0000644�0001750�0001750�00000016317�12052741127�021322� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include "histogram_item.h" class HistogramItem::PrivateData { public: int attributes; QwtIntervalData data; QColor color; double reference; }; HistogramItem::HistogramItem(const QwtText &title): QwtPlotItem(title) { init(); } HistogramItem::HistogramItem(const QString &title): QwtPlotItem(QwtText(title)) { init(); } HistogramItem::~HistogramItem() { delete d_data; } void HistogramItem::init() { d_data = new PrivateData(); d_data->reference = 0.0; d_data->attributes = HistogramItem::Auto; setItemAttribute(QwtPlotItem::AutoScale, true); setItemAttribute(QwtPlotItem::Legend, true); setZ(20.0); } void HistogramItem::setBaseline(double reference) { if ( d_data->reference != reference ) { d_data->reference = reference; itemChanged(); } } double HistogramItem::baseline() const { return d_data->reference; } void HistogramItem::setData(const QwtIntervalData &data) { d_data->data = data; itemChanged(); } const QwtIntervalData &HistogramItem::data() const { return d_data->data; } void HistogramItem::setColor(const QColor &color) { if ( d_data->color != color ) { d_data->color = color; itemChanged(); } } QColor HistogramItem::color() const { return d_data->color; } QwtDoubleRect HistogramItem::boundingRect() const { QwtDoubleRect rect = d_data->data.boundingRect(); if ( !rect.isValid() ) return rect; if ( d_data->attributes & Xfy ) { rect = QwtDoubleRect( rect.y(), rect.x(), rect.height(), rect.width() ); if ( rect.left() > d_data->reference ) rect.setLeft( d_data->reference ); else if ( rect.right() < d_data->reference ) rect.setRight( d_data->reference ); } else { if ( rect.bottom() < d_data->reference ) rect.setBottom( d_data->reference ); else if ( rect.top() > d_data->reference ) rect.setTop( d_data->reference ); } return rect; } int HistogramItem::rtti() const { return QwtPlotItem::Rtti_PlotHistogram; } void HistogramItem::setHistogramAttribute(HistogramAttribute attribute, bool on) { if ( bool(d_data->attributes & attribute) == on ) return; if ( on ) d_data->attributes |= attribute; else d_data->attributes &= ~attribute; itemChanged(); } bool HistogramItem::testHistogramAttribute(HistogramAttribute attribute) const { return d_data->attributes & attribute; } void HistogramItem::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const { const QwtIntervalData &iData = d_data->data; painter->setPen(QPen(d_data->color)); const int x0 = xMap.transform(baseline()); const int y0 = yMap.transform(baseline()); for ( int i = 0; i < (int)iData.size(); i++ ) { if ( d_data->attributes & HistogramItem::Xfy ) { const int x2 = xMap.transform(iData.value(i)); if ( x2 == x0 ) continue; int y1 = yMap.transform( iData.interval(i).minValue()); int y2 = yMap.transform( iData.interval(i).maxValue()); if ( y1 > y2 ) qSwap(y1, y2); if ( i < (int)iData.size() - 2 ) { const int yy1 = yMap.transform(iData.interval(i+1).minValue()); const int yy2 = yMap.transform(iData.interval(i+1).maxValue()); if ( y2 == qwtMin(yy1, yy2) ) { const int xx2 = xMap.transform( iData.interval(i+1).minValue()); if ( xx2 != x0 && ( (xx2 < x0 && x2 < x0) || (xx2 > x0 && x2 > x0) ) ) { // One pixel distance between neighboured bars y2++; } } } drawBar(painter, Qt::Horizontal, QRect(x0, y1, x2 - x0, y2 - y1)); } else { const int y2 = yMap.transform(iData.value(i)); if ( y2 == y0 ) continue; int x1 = xMap.transform(iData.interval(i).minValue()); int x2 = xMap.transform(iData.interval(i).maxValue()); if ( x1 > x2 ) qSwap(x1, x2); if ( i < (int)iData.size() - 2 ) { const int xx1 = xMap.transform(iData.interval(i+1).minValue()); const int xx2 = xMap.transform(iData.interval(i+1).maxValue()); if ( x2 == qwtMin(xx1, xx2) ) { const int yy2 = yMap.transform(iData.value(i+1)); if ( yy2 != y0 && ( (yy2 < y0 && y2 < y0) || (yy2 > y0 && y2 > y0) ) ) { // One pixel distance between neighboured bars x2--; } } } drawBar(painter, Qt::Vertical, QRect(x1, y0, x2 - x1, y2 - y0) ); } } } void HistogramItem::drawBar(QPainter *painter, Qt::Orientation, const QRect& rect) const { painter->save(); const QColor color(painter->pen().color()); #if QT_VERSION >= 0x040000 const QRect r = rect.normalized(); #else const QRect r = rect.normalize(); #endif const int factor = 125; const QColor light(color.light(factor)); const QColor dark(color.dark(factor)); painter->setBrush(color); painter->setPen(Qt::NoPen); QwtPainter::drawRect(painter, r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2); painter->setBrush(Qt::NoBrush); painter->setPen(QPen(light, 2)); #if QT_VERSION >= 0x040000 QwtPainter::drawLine(painter, r.left() + 1, r.top() + 2, r.right() + 1, r.top() + 2); #else QwtPainter::drawLine(painter, r.left(), r.top() + 2, r.right() + 1, r.top() + 2); #endif painter->setPen(QPen(dark, 2)); #if QT_VERSION >= 0x040000 QwtPainter::drawLine(painter, r.left() + 1, r.bottom(), r.right() + 1, r.bottom()); #else QwtPainter::drawLine(painter, r.left(), r.bottom(), r.right() + 1, r.bottom()); #endif painter->setPen(QPen(light, 1)); #if QT_VERSION >= 0x040000 QwtPainter::drawLine(painter, r.left(), r.top() + 1, r.left(), r.bottom()); QwtPainter::drawLine(painter, r.left() + 1, r.top() + 2, r.left() + 1, r.bottom() - 1); #else QwtPainter::drawLine(painter, r.left(), r.top() + 1, r.left(), r.bottom() + 1); QwtPainter::drawLine(painter, r.left() + 1, r.top() + 2, r.left() + 1, r.bottom()); #endif painter->setPen(QPen(dark, 1)); #if QT_VERSION >= 0x040000 QwtPainter::drawLine(painter, r.right() + 1, r.top() + 1, r.right() + 1, r.bottom()); QwtPainter::drawLine(painter, r.right(), r.top() + 2, r.right(), r.bottom() - 1); #else QwtPainter::drawLine(painter, r.right() + 1, r.top() + 1, r.right() + 1, r.bottom() + 1); QwtPainter::drawLine(painter, r.right(), r.top() + 2, r.right(), r.bottom()); #endif painter->restore(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/histogram/histogram.pro���������������������������������������������������������0000644�0001750�0001750�00000000753�12052741127�020317� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: sh -*- ################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################### include( ../examples.pri ) TARGET = histogram SOURCES = \ main.cpp \ histogram_item.cpp INCLUDES = \ histogram_item.h ���������������������qwt5-5.2.3/examples/histogram/histogram_item.h������������������������������������������������������0000644�0001750�0001750�00000003015�12052741123�020752� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef HISTOGRAM_ITEM_H #define HISTOGRAM_ITEM_H #include #include #include "qwt_plot_item.h" class QwtIntervalData; class QString; class HistogramItem: public QwtPlotItem { public: explicit HistogramItem(const QString &title = QString::null); explicit HistogramItem(const QwtText &title); virtual ~HistogramItem(); void setData(const QwtIntervalData &data); const QwtIntervalData &data() const; void setColor(const QColor &); QColor color() const; virtual QwtDoubleRect boundingRect() const; virtual int rtti() const; virtual void draw(QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const; void setBaseline(double reference); double baseline() const; enum HistogramAttribute { Auto = 0, Xfy = 1 }; void setHistogramAttribute(HistogramAttribute, bool on = true); bool testHistogramAttribute(HistogramAttribute) const; protected: virtual void drawBar(QPainter *, Qt::Orientation o, const QRect &) const; private: void init(); class PrivateData; PrivateData *d_data; }; #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwt5-5.2.3/examples/histogram/main.cpp��������������������������������������������������������������0000644�0001750�0001750�00000002655�12052741127�017233� 0����������������������������������������������������������������������������������������������������ustar �gudjon��������������������������gudjon�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include #include #include #include #include #include #include #include "histogram_item.h" int main(int argc, char **argv) { QApplication a(argc, argv); QwtPlot plot; plot.setCanvasBackground(QColor(Qt::white)); plot.setTitle("Histogram"); QwtPlotGrid *grid = new QwtPlotGrid; grid->enableXMin(true); grid->enableYMin(true); grid->setMajPen(QPen(Qt::black, 0, Qt::DotLine)); grid->setMinPen(QPen(Qt::gray, 0 , Qt::DotLine)); grid->attach(&plot); HistogramItem *histogram = new HistogramItem(); histogram->setColor(Qt::darkCyan); const int numValues = 20; QwtArray intervals(numValues); QwtArray values(numValues); double pos = 0.0; for ( int i = 0; i < (int)intervals.size(); i++ ) { const int width = 5 + rand() % 15; const int value = rand() % 100; intervals[i] = QwtDoubleInterval(pos, pos + double(width)); values[i] = value; pos += width; } histogram->setData(QwtIntervalData(intervals, values)); histogram->attach(&plot); plot.setAxisScale(QwtPlot::yLeft, 0.0, 100.0); plot.setAxisScale(QwtPlot::xBottom, 0.0, pos); plot.replot(); #if QT_VERSION < 0x040000 a.setMainWidget(&plot); #endif plot.resize(600,400); plot.show(); return a.exec(); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������