You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.5 KiB
C++
137 lines
3.5 KiB
C++
/* -*- 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
|