libkpl  4.1
A Library for Graphical Presentation of Data Sets and Functions
arcitem.h
1 /***************************************************************************
2  arcitem.h - description
3  -------------------
4  begin : Sam Aug 17 2002
5  copyright : (C) 2015 by Werner Stille
6  email : stille@uni-freiburg.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef ARCITEM_H
19 #define ARCITEM_H
20 
21 #include <QGraphicsPathItem>
22 #include "decoitem.h"
23 
28 class KDE_EXPORT ArcItem : public DecoItem, public QGraphicsPathItem
29 {
30 public:
32  enum {Type = UserType + Arc
34  };
49  ArcItem(double x0 = 0, double y0 = 0, unsigned color = 0,
50  QGraphicsItem* parent = 0, double width = 3, double height = 3,
51  bool visible = true, double start = 0, double span = 90,
52  double relSize = 1, double dir = 0);
57  ArcItem(const ArcItem& a);
64  ArcItem(const KConfigGroup* plo, unsigned color = 0,
65  QGraphicsItem* parent = 0);
67  virtual ~ArcItem();
69  inline double dir() const { return m_dir; };
71  inline double height() const { return m_height; };
73  QPixmap pixmap() const;
78  inline void setDir(double dir) { m_dir = dir; };
83  inline void setHeight(double height) { m_height = height; };
85  void setPenWidth();
90  void setProperties(const QTransform& m);
95  inline void setSpan(double span) { m_span = span; };
100  inline void setStart(double start) { m_start = start; };
105  inline void setWidth(double width) { m_width = width; };
107  inline double span() const { return m_span; };
109  inline double start() const { return m_start; };
111  virtual int type() const { return Type; };
113  void update();
115  inline double width() const { return m_width; };
120  void writePlo(KConfigGroup* plo) const;
121 
122 protected:
124  virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
126  void setProperties();
127  double m_width, m_height, m_dir, m_start, m_span;
128 };
129 
130 #endif
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void setWidth(double width)
Sets width.
Definition: arcitem.h:105
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: arcitem.h:111
void setDir(double dir)
Sets rotation angle.
Definition: arcitem.h:78
void writePlo(KConfigGroup *plo, bool visible) const
Writes into plot file.
void setStart(double start)
Sets start angle.
Definition: arcitem.h:100
void update(const QRectF &rect)
double dir() const
Returns rotation angle in deg.
Definition: arcitem.h:69
double span() const
Returns arc length in deg.
Definition: arcitem.h:107
void setHeight(double height)
Sets height.
Definition: arcitem.h:83
double start() const
Returns start angle in deg.
Definition: arcitem.h:109
double width() const
Returns width in cm.
Definition: arcitem.h:115
static QPixmap pixmap(Symbol symbol)
Returns black decoration pixmap of plot symbol for use in dialog GUI.
double height() const
Returns height in cm.
Definition: arcitem.h:71
Decoration item class.
Definition: decoitem.h:36
Arc item class.
Definition: arcitem.h:28
void setSpan(double span)
Sets arc length.
Definition: arcitem.h:95