libkpl  5.0
A Library for Graphical Presentation of Data Sets and Functions
legenditem.h
1/***************************************************************************
2 legenditem.h - description
3 -------------------
4
5 This file is a part of kpl - a program for graphical presentation of
6 data sets and functions.
7
8 begin : Tue Aug 31 1999
9 copyright : (C) 2017 by Werner Stille
10 email : kpl@werner-stille.de
11 ***************************************************************************/
12
13/***************************************************************************
14 * *
15 * This program is free software; you can redistribute it and/or modify *
16 * it under the terms of the GNU General Public License as published by *
17 * the Free Software Foundation; either version 2 of the License, or *
18 * (at your option) any later version. *
19 * *
20 ***************************************************************************/
21
22#ifndef LEGENDITEM_H
23#define LEGENDITEM_H
24
25#include <QGraphicsItem>
26#include <QTextDocument>
27#include "decoitem.h"
28
29class KConfigGroup;
30
36class Q_DECL_EXPORT LegendItem : public DecoItem, public QGraphicsItem
37{
38public:
40 enum {Type = UserType + Legend
44 };
60 LegendItem(double x0 = 0, double y0 = 0, unsigned colorSymbol = 0,
61 unsigned colorText = 0, Symbol symbol = SolidLine,
62 double xOff = 1, double yOff = 0, QGraphicsItem* parent = 0,
63 const QString& text = QString(), bool visible = true,
64 double relSize = 1, double symbolSize = 1);
79 LegendItem(const KConfigGroup* plo, unsigned colorSymbol, unsigned colorText,
80 Symbol symbol, double frameWidth, QGraphicsItem* parent = 0);
82 virtual ~LegendItem();
84 virtual QRectF boundingRect() const;
86 virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
87 QWidget* widget = 0);
89 QPixmap pixmap() const;
94 void setProperties(const QTransform& m);
96 void setSize();
101 inline void setSymbol(Symbol symbol) { m_symbol = symbol; };
106 inline void setSymbolSize(double symbolSize) { m_symbolSize = symbolSize; };
111 inline void setText(const QString& text) { m_text = text; };
116 inline void setTextColor(unsigned color) { m_textColor = color; };
121 inline void setTextX(double x) { m_textX = x; };
126 inline void setTextY(double y) { m_textY = y; };
128 inline Symbol symbol() const { return m_symbol; };
130 inline double symbolSize() const { return m_symbolSize; };
132 inline QString text() const { return m_text; };
134 inline unsigned textColor() const { return m_textColor; };
136 inline double textX() const { return m_textX; };
138 inline double textY() const { return m_textY; };
140 virtual int type() const { return Type; };
142 void update();
147 void writePlo(KConfigGroup* plo) const;
148
149protected:
151 void init();
153 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
157 QRectF textRect() const;
158 Symbol m_symbol;
159 unsigned m_textColor;
160 double m_textX, m_textY, m_symbolSize;
161 QString m_text;
162 QTextDocument m_doc;
163 QPen m_pen;
164 QRectF symbRect;
165};
166
167#endif
Decoration item class.
Definition: decoitem.h:36
unsigned color() const
Returns color.
Definition: decoitem.h:56
Symbol
Symbol types.
Definition: kplitem.h:83
Legend item class.
Definition: legenditem.h:37
void setTextX(double x)
Sets x offset for text.
Definition: legenditem.h:121
virtual QRectF boundingRect() const
Calculates bounding rectangle.
LegendItem(double x0=0, double y0=0, unsigned colorSymbol=0, unsigned colorText=0, Symbol symbol=SolidLine, double xOff=1, double yOff=0, QGraphicsItem *parent=0, const QString &text=QString(), bool visible=true, double relSize=1, double symbolSize=1)
Constructor.
void setText(const QString &text)
Sets text.
Definition: legenditem.h:111
void setSymbolSize(double symbolSize)
Sets symbol size.
Definition: legenditem.h:106
QPixmap pixmap() const
Returns decoration pixmap for item list.
unsigned textColor() const
Returns text color.
Definition: legenditem.h:134
double symbolSize() const
Returns relative symbol size.
Definition: legenditem.h:130
void init()
Performs initialization.
LegendItem(const KConfigGroup *plo, unsigned colorSymbol, unsigned colorText, Symbol symbol, double frameWidth, QGraphicsItem *parent=0)
Constructor.
void setProperties(const QTransform &m)
Sets properties according to transformation matrix.
void setProperties()
Sets properties according to transformation matrix.
void setSize()
Sets size according to transformation matrix.
QRectF textRect() const
Returns text rectangle.
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: legenditem.h:140
LegendItem(const LegendItem &a)
Copy constructor.
double textY() const
Returns y offset for text in cm.
Definition: legenditem.h:138
virtual ~LegendItem()
Destructor.
double textX() const
Returns x offset for text in cm.
Definition: legenditem.h:136
Symbol symbol() const
Returns symbol type.
Definition: legenditem.h:128
void update()
Applies changes and forces redrawing.
void setSymbol(Symbol symbol)
Sets symbol type.
Definition: legenditem.h:101
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Paints item.
void writePlo(KConfigGroup *plo) const
Writes into plot file.
QString text() const
Returns text.
Definition: legenditem.h:132
void setTextColor(unsigned color)
Sets text color.
Definition: legenditem.h:116
void setTextY(double y)
Sets y offset for text.
Definition: legenditem.h:126
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Updates position.