123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- /* -*- 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
- - TitleInverted\n
- The title of vertical scales is painted from top to bottom. Otherwise
- it is painted from bottom to top.
- */
- enum LayoutFlag
- {
- TitleInverted = 1
- };
- 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;
- };
- #endif
|