1d2ac27f0c666b45fd4da43f0a9f417f91401897
[occt.git] / samples / qt / FuncDemo / src / edge.h
1 /****************************************************************************
2 **
3 ** Copyright (C) 2006-2007 Trolltech ASA. All rights reserved.
4 **
5 ** This file is part of the example classes of the Qt Toolkit.
6 **
7 ** Licensees holding a valid Qt License Agreement may use this file in
8 ** accordance with the rights, responsibilities and obligations
9 ** contained therein.  Please consult your licensing agreement or
10 ** contact sales@trolltech.com if any conditions of this licensing
11 ** agreement are not clear to you.
12 **
13 ** Further information about Qt licensing is available at:
14 ** http://www.trolltech.com/products/qt/licensing.html or by
15 ** contacting info@trolltech.com.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ****************************************************************************/
21
22 #ifndef EDGE_H
23 #define EDGE_H
24
25 #include <QGraphicsItem>
26
27 class Node;
28
29 class Edge : public QGraphicsItem
30 {
31 public:
32     Edge(Node *sourceNode, Node *destNode);
33     ~Edge();
34
35     Node *sourceNode() const;
36     void setSourceNode(Node *node);
37
38     Node *destNode() const;
39     void setDestNode(Node *node);
40
41     void adjust();
42
43     enum { Type = UserType + 2 };
44     int type() const { return Type; }
45     
46 protected:
47     QRectF boundingRect() const;
48     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
49     
50 private:
51     Node *source, *dest;
52
53     QPointF sourcePoint;
54     QPointF destPoint;
55     qreal arrowSize;
56 };
57
58 #endif