123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /* -*- 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 QwtTransform;
- 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 division 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 dist1, int dist2 );
- 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 );
- int spacing() const;
- void setScaleDiv( const QwtScaleDiv & );
- void setTransformation( QwtTransform * );
- 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 * ) const;
- void scaleChange();
- void layoutScale( bool update_geometry = true );
- private:
- void initScale( QwtScaleDraw::Alignment );
- class PrivateData;
- PrivateData *d_data;
- };
- Q_DECLARE_OPERATORS_FOR_FLAGS( QwtScaleWidget::LayoutFlags )
- #endif
|