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
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
|
|
|