diff options
Diffstat (limited to 'src/libpcp_qwt/src/qwt_scale_widget.h')
-rw-r--r-- | src/libpcp_qwt/src/qwt_scale_widget.h | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/src/libpcp_qwt/src/qwt_scale_widget.h b/src/libpcp_qwt/src/qwt_scale_widget.h new file mode 100644 index 0000000..7007902 --- /dev/null +++ b/src/libpcp_qwt/src/qwt_scale_widget.h @@ -0,0 +1,135 @@ +/* -*- 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 "qwt_global.h" +#include "qwt_text.h" +#include "qwt_scale_draw.h" +#include <qwidget.h> +#include <qfont.h> +#include <qcolor.h> +#include <qstring.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: + //! Layout flags of the title + enum LayoutFlag + { + /*! + The title of vertical scales is painted from top to bottom. + Otherwise it is painted from bottom to top. + */ + TitleInverted = 1 + }; + + //! Layout flags of the title + typedef QFlags<LayoutFlag> LayoutFlags; + + explicit QwtScaleWidget( QWidget *parent = NULL ); + explicit QwtScaleWidget( QwtScaleDraw::Alignment, QWidget *parent = NULL ); + virtual ~QwtScaleWidget(); + +Q_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 setLayoutFlag( LayoutFlag, bool on ); + bool testLayoutFlag( LayoutFlag ) 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 setScaleDiv( QwtScaleTransformation *, const QwtScaleDiv &sd ); + + void setScaleDraw( QwtScaleDraw * ); + const QwtScaleDraw *scaleDraw() const; + QwtScaleDraw *scaleDraw(); + + void setLabelAlignment( Qt::Alignment ); + void setLabelRotation( double rotation ); + + void setColorBarEnabled( bool ); + bool isColorBarEnabled() const; + + void setColorBarWidth( int ); + int colorBarWidth() const; + + void setColorMap( const QwtInterval &, QwtColorMap * ); + + QwtInterval 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 QRectF & ) const; + void drawTitle( QPainter *painter, QwtScaleDraw::Alignment, + const QRectF &rect ) const; + + void setAlignment( QwtScaleDraw::Alignment ); + QwtScaleDraw::Alignment alignment() const; + + QRectF colorBarRect( const QRectF& ) const; + +protected: + virtual void paintEvent( QPaintEvent * ); + virtual void resizeEvent( QResizeEvent * ); + + void draw( QPainter *p ) const; + + void scaleChange(); + void layoutScale( bool update = true ); + +private: + void initScale( QwtScaleDraw::Alignment ); + + class PrivateData; + PrivateData *d_data; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS( QwtScaleWidget::LayoutFlags ) + +#endif |