qwt_scale_widget.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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. #ifndef QWT_SCALE_WIDGET_H
  10. #define QWT_SCALE_WIDGET_H
  11. #include "qwt_global.h"
  12. #include "qwt_text.h"
  13. #include "qwt_scale_draw.h"
  14. #include <qwidget.h>
  15. #include <qfont.h>
  16. #include <qcolor.h>
  17. #include <qstring.h>
  18. class QPainter;
  19. class QwtScaleTransformation;
  20. class QwtScaleDiv;
  21. class QwtColorMap;
  22. /*!
  23. \brief A Widget which contains a scale
  24. This Widget can be used to decorate composite widgets with
  25. a scale.
  26. */
  27. class QWT_EXPORT QwtScaleWidget : public QWidget
  28. {
  29. Q_OBJECT
  30. public:
  31. /*!
  32. Layout flags of the title
  33. - TitleInverted\n
  34. The title of vertical scales is painted from top to bottom. Otherwise
  35. it is painted from bottom to top.
  36. */
  37. enum LayoutFlag
  38. {
  39. TitleInverted = 1
  40. };
  41. explicit QwtScaleWidget( QWidget *parent = NULL );
  42. explicit QwtScaleWidget( QwtScaleDraw::Alignment, QWidget *parent = NULL );
  43. virtual ~QwtScaleWidget();
  44. Q_SIGNALS:
  45. //! Signal emitted, whenever the scale divison changes
  46. void scaleDivChanged();
  47. public:
  48. void setTitle( const QString &title );
  49. void setTitle( const QwtText &title );
  50. QwtText title() const;
  51. void setLayoutFlag( LayoutFlag, bool on );
  52. bool testLayoutFlag( LayoutFlag ) const;
  53. void setBorderDist( int start, int end );
  54. int startBorderDist() const;
  55. int endBorderDist() const;
  56. void getBorderDistHint( int &start, int &end ) const;
  57. void getMinBorderDist( int &start, int &end ) const;
  58. void setMinBorderDist( int start, int end );
  59. void setMargin( int );
  60. int margin() const;
  61. void setSpacing( int td );
  62. int spacing() const;
  63. void setScaleDiv( QwtScaleTransformation *, const QwtScaleDiv &sd );
  64. void setScaleDraw( QwtScaleDraw * );
  65. const QwtScaleDraw *scaleDraw() const;
  66. QwtScaleDraw *scaleDraw();
  67. void setLabelAlignment( Qt::Alignment );
  68. void setLabelRotation( double rotation );
  69. void setColorBarEnabled( bool );
  70. bool isColorBarEnabled() const;
  71. void setColorBarWidth( int );
  72. int colorBarWidth() const;
  73. void setColorMap( const QwtInterval &, QwtColorMap * );
  74. QwtInterval colorBarInterval() const;
  75. const QwtColorMap *colorMap() const;
  76. virtual QSize sizeHint() const;
  77. virtual QSize minimumSizeHint() const;
  78. int titleHeightForWidth( int width ) const;
  79. int dimForLength( int length, const QFont &scaleFont ) const;
  80. void drawColorBar( QPainter *painter, const QRectF & ) const;
  81. void drawTitle( QPainter *painter, QwtScaleDraw::Alignment,
  82. const QRectF &rect ) const;
  83. void setAlignment( QwtScaleDraw::Alignment );
  84. QwtScaleDraw::Alignment alignment() const;
  85. QRectF colorBarRect( const QRectF& ) const;
  86. protected:
  87. virtual void paintEvent( QPaintEvent * );
  88. virtual void resizeEvent( QResizeEvent * );
  89. void draw( QPainter *p ) const;
  90. void scaleChange();
  91. void layoutScale( bool update = true );
  92. private:
  93. void initScale( QwtScaleDraw::Alignment );
  94. class PrivateData;
  95. PrivateData *d_data;
  96. };
  97. #endif