Version: 9.16.0
SceneLinkItem.hxx
Go to the documentation of this file.
1// Copyright (C) 2006-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef _SCENELINKITEM_HXX_
21#define _SCENELINKITEM_HXX_
22
23#include "SceneObserverItem.hxx"
24#include "LinkMatrix.hxx"
25
26#include <QPointF>
27#include <QPainterPath>
28#include <vector>
29
30#ifdef WIN32
31#ifdef _UP
32#undef _UP
33#endif
34#endif
35
36namespace YACS
37{
38 namespace HMI
39 {
40
41 typedef enum
42 {
43 _UP = 0,
44 _RIGHT = 1,
45 _DOWN = 2,
46 _LEFT = 3
48
49 class ScenePortItem;
50 class SceneNodeItem;
51
53 {
54 public:
57 QString label, Subject *subject);
58 virtual ~SceneLinkItem();
59
60 virtual void select(bool isSelected);
61 virtual QRectF boundingRect() const;
62 virtual QPainterPath shape() const;
63 virtual void paint(QPainter *painter,
64 const QStyleOptionGraphicsItem *option,
65 QWidget *widget);
66 virtual void update(GuiEvent event, int type, Subject* son);
67 virtual void popupMenu(QWidget *caller, const QPoint &globalPos);
68 virtual void setPath(LinkPath lp);
69 virtual void minimizeDirectionChanges();
70 virtual void force2points();
71 virtual QPointF start();
72 virtual QPointF goal();
73 virtual void updateShape();
74 virtual SceneNodeItem* getFromNode();
75 virtual SceneNodeItem* getToNode();
76
77 protected:
78 void setShape(int thickness = 1);
79 void addArrow(QPointF pfrom,
80 QPointF pto,
82 int thickness = 1);
83 virtual QColor getBrushColor();
84 virtual QColor getPenColor();
85
86 QPainterPath _path;
89 std::vector<QPointF> _lp;
90 std::vector<Direction> _directions;
92 };
93 }
94}
95
96#endif
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
virtual SceneNodeItem * getToNode()
void setShape(int thickness=1)
std::vector< QPointF > _lp
virtual void popupMenu(QWidget *caller, const QPoint &globalPos)
std::vector< Direction > _directions
virtual QPainterPath shape() const
SceneLinkItem(QGraphicsScene *scene, SceneItem *parent, ScenePortItem *from, ScenePortItem *to, QString label, Subject *subject)
virtual SceneNodeItem * getFromNode()
virtual QPointF goal()
virtual void minimizeDirectionChanges()
void addArrow(QPointF pfrom, QPointF pto, HMI::Direction dir, int thickness=1)
virtual void select(bool isSelected)
virtual void update(GuiEvent event, int type, Subject *son)
virtual QRectF boundingRect() const
virtual QPointF start()
virtual QColor getPenColor()
virtual void setPath(LinkPath lp)
virtual QColor getBrushColor()
std::list< linkPoint > LinkPath
Definition: LinkMatrix.hxx:77