地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
2.9 KiB

/* -*- 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
*****************************************************************************/
// vim: expandtab
#ifndef QWT_LEGEND_ITEM_H
#define QWT_LEGEND_ITEM_H
#include "qwt_global.h"
#include "qwt_legend.h"
#include "qwt_text.h"
#include "qwt_text_label.h"
class QPainter;
class QPen;
class QwtSymbol;
/*!
\brief A legend label
QwtLegendItem represents a curve on a legend.
It displays an curve identifier with an explaining text.
The identifier might be a combination of curve symbol and line.
In readonly mode it behaves like a label, otherwise like
an unstylish push button.
\sa QwtLegend, QwtPlotCurve
*/
class QWT_EXPORT QwtLegendItem: public QwtTextLabel
{
Q_OBJECT
public:
/*!
\brief Identifier mode
Default is ShowLine | ShowText
\sa QwtLegendItem::identifierMode, QwtLegendItem::setIdentifierMode
*/
enum IdentifierMode {
NoIdentifier = 0,
ShowLine = 1,
ShowSymbol = 2,
ShowText = 4
};
explicit QwtLegendItem(QWidget *parent = 0);
explicit QwtLegendItem(const QwtSymbol &, const QPen &,
const QwtText &, QWidget *parent = 0);
virtual ~QwtLegendItem();
virtual void setText(const QwtText &);
void setItemMode(QwtLegend::LegendItemMode);
QwtLegend::LegendItemMode itemMode() const;
void setIdentifierMode(int);
int identifierMode() const;
void setIdentfierWidth(int width);
int identifierWidth() const;
void setSpacing(int spacing);
int spacing() const;
void setSymbol(const QwtSymbol &);
const QwtSymbol& symbol() const;
void setCurvePen(const QPen &);
const QPen& curvePen() const;
virtual void drawIdentifier(QPainter *, const QRect &) const;
virtual void drawItem(QPainter *p, const QRect &) const;
virtual QSize sizeHint() const;
bool isChecked() const;
public slots:
void setChecked(bool on);
signals:
//! Signal, when the legend item has been clicked
void clicked();
//! Signal, when the legend item has been pressed
void pressed();
//! Signal, when the legend item has been relased
void released();
//! Signal, when the legend item has been toggled
void checked(bool);
protected:
void setDown(bool);
bool isDown() const;
virtual void paintEvent(QPaintEvent *);
virtual void mousePressEvent(QMouseEvent *);
virtual void mouseReleaseEvent(QMouseEvent *);
virtual void keyPressEvent(QKeyEvent *);
virtual void keyReleaseEvent(QKeyEvent *);
virtual void drawText(QPainter *, const QRect &);
private:
void init(const QwtText &);
class PrivateData;
PrivateData *d_data;
};
#endif // QWT_LEGEND_ITEM_H