彻底改版2.0
This commit is contained in:
187
third/3rd_qwt/qwt_dial_needle.h
Normal file
187
third/3rd_qwt/qwt_dial_needle.h
Normal file
@@ -0,0 +1,187 @@
|
||||
/* -*- 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_DIAL_NEEDLE_H
|
||||
#define QWT_DIAL_NEEDLE_H 1
|
||||
|
||||
#include "qwt_global.h"
|
||||
#include <qpalette.h>
|
||||
|
||||
class QPainter;
|
||||
class QPoint;
|
||||
|
||||
/*!
|
||||
\brief Base class for needles that can be used in a QwtDial.
|
||||
|
||||
QwtDialNeedle is a pointer that indicates a value by pointing
|
||||
to a specific direction.
|
||||
|
||||
\sa QwtDial, QwtCompass
|
||||
*/
|
||||
|
||||
class QWT_EXPORT QwtDialNeedle
|
||||
{
|
||||
public:
|
||||
QwtDialNeedle();
|
||||
virtual ~QwtDialNeedle();
|
||||
|
||||
virtual void setPalette( const QPalette & );
|
||||
const QPalette &palette() const;
|
||||
|
||||
virtual void draw( QPainter *painter, const QPointF ¢er,
|
||||
double length, double direction,
|
||||
QPalette::ColorGroup = QPalette::Active ) const;
|
||||
|
||||
protected:
|
||||
/*!
|
||||
\brief Draw the needle
|
||||
|
||||
The origin of the needle is at position (0.0, 0.0 )
|
||||
pointing in direction 0.0 ( = east ).
|
||||
|
||||
The painter is already initialized with translation and
|
||||
rotation.
|
||||
|
||||
\param painter Painter
|
||||
\param length Length of the needle
|
||||
\param colorGroup Color group, used for painting
|
||||
|
||||
\sa setPalette(), palette()
|
||||
*/
|
||||
virtual void drawNeedle( QPainter *painter,
|
||||
double length, QPalette::ColorGroup colorGroup ) const = 0;
|
||||
|
||||
virtual void drawKnob( QPainter *, double width,
|
||||
const QBrush &, bool sunken ) const;
|
||||
|
||||
private:
|
||||
QPalette d_palette;
|
||||
};
|
||||
|
||||
/*!
|
||||
\brief A needle for dial widgets
|
||||
|
||||
The following colors are used:
|
||||
|
||||
- QPalette::Mid\n
|
||||
Pointer
|
||||
- QPalette::Base\n
|
||||
Knob
|
||||
|
||||
\sa QwtDial, QwtCompass
|
||||
*/
|
||||
|
||||
class QWT_EXPORT QwtDialSimpleNeedle: public QwtDialNeedle
|
||||
{
|
||||
public:
|
||||
//! Style of the needle
|
||||
enum Style
|
||||
{
|
||||
//! Arrow
|
||||
Arrow,
|
||||
|
||||
//! A straight line from the center
|
||||
Ray
|
||||
};
|
||||
|
||||
QwtDialSimpleNeedle( Style, bool hasKnob = true,
|
||||
const QColor &mid = Qt::gray, const QColor &base = Qt::darkGray );
|
||||
|
||||
void setWidth( double width );
|
||||
double width() const;
|
||||
|
||||
protected:
|
||||
virtual void drawNeedle( QPainter *, double length,
|
||||
QPalette::ColorGroup ) const;
|
||||
|
||||
private:
|
||||
Style d_style;
|
||||
bool d_hasKnob;
|
||||
double d_width;
|
||||
};
|
||||
|
||||
/*!
|
||||
\brief A magnet needle for compass widgets
|
||||
|
||||
A magnet needle points to two opposite directions indicating
|
||||
north and south.
|
||||
|
||||
The following colors are used:
|
||||
- QPalette::Light\n
|
||||
Used for pointing south
|
||||
- QPalette::Dark\n
|
||||
Used for pointing north
|
||||
- QPalette::Base\n
|
||||
Knob (ThinStyle only)
|
||||
|
||||
\sa QwtDial, QwtCompass
|
||||
*/
|
||||
|
||||
class QWT_EXPORT QwtCompassMagnetNeedle: public QwtDialNeedle
|
||||
{
|
||||
public:
|
||||
//! Style of the needle
|
||||
enum Style
|
||||
{
|
||||
//! A needle with a triangular shape
|
||||
TriangleStyle,
|
||||
|
||||
//! A thin needle
|
||||
ThinStyle
|
||||
};
|
||||
|
||||
QwtCompassMagnetNeedle( Style = TriangleStyle,
|
||||
const QColor &light = Qt::white, const QColor &dark = Qt::red );
|
||||
|
||||
protected:
|
||||
virtual void drawNeedle( QPainter *,
|
||||
double length, QPalette::ColorGroup ) const;
|
||||
|
||||
private:
|
||||
Style d_style;
|
||||
};
|
||||
|
||||
/*!
|
||||
\brief An indicator for the wind direction
|
||||
|
||||
QwtCompassWindArrow shows the direction where the wind comes from.
|
||||
|
||||
- QPalette::Light\n
|
||||
Used for Style1, or the light half of Style2
|
||||
- QPalette::Dark\n
|
||||
Used for the dark half of Style2
|
||||
|
||||
\sa QwtDial, QwtCompass
|
||||
*/
|
||||
|
||||
class QWT_EXPORT QwtCompassWindArrow: public QwtDialNeedle
|
||||
{
|
||||
public:
|
||||
//! Style of the arrow
|
||||
enum Style
|
||||
{
|
||||
//! A needle pointing to the center
|
||||
Style1,
|
||||
|
||||
//! A needle pointing to the center
|
||||
Style2
|
||||
};
|
||||
|
||||
QwtCompassWindArrow( Style, const QColor &light = Qt::white,
|
||||
const QColor &dark = Qt::gray );
|
||||
|
||||
protected:
|
||||
virtual void drawNeedle( QPainter *,
|
||||
double length, QPalette::ColorGroup ) const;
|
||||
|
||||
private:
|
||||
Style d_style;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user