~ubuntu-branches/ubuntu/oneiric/qwt/oneiric-proposed

« back to all changes in this revision

Viewing changes to qwt-5.1.0/src/qwt_legend_item.h

  • Committer: Bazaar Package Importer
  • Author(s): Fathi Boudra
  • Date: 2008-05-26 10:26:31 UTC
  • mfrom: (1.1.3 upstream) (2.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080526102631-bp95mfccnrb957nx
Tags: 5.1.1-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
 
10
 
// vim: expandtab
11
 
 
12
 
#ifndef QWT_LEGEND_ITEM_H
13
 
#define QWT_LEGEND_ITEM_H
14
 
 
15
 
#include "qwt_global.h"
16
 
#include "qwt_legend.h"
17
 
#include "qwt_text.h"
18
 
#include "qwt_text_label.h"
19
 
 
20
 
class QPainter;
21
 
class QPen;
22
 
class QwtSymbol;
23
 
 
24
 
/*!
25
 
  \brief A legend label
26
 
 
27
 
  QwtLegendItem represents a curve on a legend.
28
 
  It displays an curve identifier with an explaining text.
29
 
  The identifier might be a combination of curve symbol and line.
30
 
  In readonly mode it behaves like a label, otherwise like 
31
 
  an unstylish push button.
32
 
 
33
 
  \sa QwtLegend, QwtPlotCurve
34
 
*/
35
 
class QWT_EXPORT QwtLegendItem: public QwtTextLabel
36
 
{
37
 
    Q_OBJECT
38
 
public:
39
 
    
40
 
    /*!
41
 
       \brief Identifier mode
42
 
 
43
 
       Default is ShowLine | ShowText
44
 
       \sa QwtLegendItem::identifierMode, QwtLegendItem::setIdentifierMode
45
 
     */
46
 
 
47
 
    enum IdentifierMode
48
 
    {
49
 
        NoIdentifier = 0,
50
 
        ShowLine = 1,
51
 
        ShowSymbol = 2,
52
 
        ShowText = 4
53
 
    };
54
 
 
55
 
    explicit QwtLegendItem(QWidget *parent = 0);
56
 
    explicit QwtLegendItem(const QwtSymbol &, const QPen &,
57
 
        const QwtText &, QWidget *parent = 0);
58
 
    virtual ~QwtLegendItem();
59
 
 
60
 
    virtual void setText(const QwtText &);
61
 
 
62
 
    void setItemMode(QwtLegend::LegendItemMode);
63
 
    QwtLegend::LegendItemMode itemMode() const;
64
 
 
65
 
    void setIdentifierMode(int);
66
 
    int identifierMode() const;
67
 
 
68
 
    void setIdentfierWidth(int width);
69
 
    int identifierWidth() const;
70
 
 
71
 
    void setSpacing(int spacing);
72
 
    int spacing() const;
73
 
 
74
 
    void setSymbol(const QwtSymbol &);
75
 
    const QwtSymbol& symbol() const;
76
 
 
77
 
    void setCurvePen(const QPen &);
78
 
    const QPen& curvePen() const;
79
 
 
80
 
    virtual void drawIdentifier(QPainter *, const QRect &) const;
81
 
    virtual void drawItem(QPainter *p, const QRect &) const; 
82
 
 
83
 
    virtual QSize sizeHint() const;
84
 
 
85
 
    bool isChecked() const;
86
 
 
87
 
public slots:
88
 
    void setChecked(bool on);
89
 
 
90
 
signals:
91
 
    //! Signal, when the legend item has been clicked
92
 
    void clicked();
93
 
 
94
 
    //! Signal, when the legend item has been pressed
95
 
    void pressed();
96
 
 
97
 
    //! Signal, when the legend item has been relased
98
 
    void released();
99
 
 
100
 
    //! Signal, when the legend item has been toggled
101
 
    void checked(bool);
102
 
 
103
 
protected:
104
 
    void setDown(bool);
105
 
    bool isDown() const;
106
 
 
107
 
    virtual void paintEvent(QPaintEvent *);
108
 
    virtual void mousePressEvent(QMouseEvent *);
109
 
    virtual void mouseReleaseEvent(QMouseEvent *);
110
 
    virtual void keyPressEvent(QKeyEvent *);
111
 
    virtual void keyReleaseEvent(QKeyEvent *);
112
 
 
113
 
    virtual void drawText(QPainter *, const QRect &);
114
 
 
115
 
private:
116
 
    void init(const QwtText &);
117
 
 
118
 
    class PrivateData;
119
 
    PrivateData *d_data;
120
 
};
121
 
 
122
 
#endif // QWT_LEGEND_ITEM_H