Salome HOME
fde17f969f6b3be2a7154bc19e0d5e115ad9ec2e
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_GraphNode.h
1 //  SUPERV SUPERVGUI : GUI for Supervisor component
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SUPERVGUI_GraphNode.h
8 //  Author : Vitaly SMETANNIKOV
9 //  Module : SUPERV
10
11 #ifndef SUPERVGUI_GraphNode_H
12 #define SUPERVGUI_GraphNode_H
13
14 #include "SUPERVGUI_Node.h"
15 #include <qlayout.h>
16
17 class SUPERVGUI_GraphNode: public SUPERVGUI_Node {
18   Q_OBJECT
19     
20  public:
21   SUPERVGUI_GraphNode(QWidget* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
22   virtual ~SUPERVGUI_GraphNode();
23
24   virtual void hideAll() {};
25   virtual void showAll() {};
26
27   virtual void deleteLinks();
28   virtual void sync();
29
30   virtual void updateLinksPrs(bool toCheckExisting = false);
31   virtual void setNodeName(QString aName);
32
33   virtual void deletePort(SUPERVGUI_Port* thePort);
34
35   virtual QPoint getInConnectPnt();
36   virtual QPoint getOutConnectPnt();
37
38   virtual void updateShape() {};
39   virtual void updatePorts();
40
41   int& getPIcount() 
42     { return myPIcount;}
43
44   int& getPOcount() 
45     { return myPOcount;}
46
47  public slots:
48   void mouseTitlePress(QMouseEvent* e);
49   void mouseTitleMove(QMouseEvent* e);
50   void mouseTitleRelease(QMouseEvent* e);
51   void movingNode();
52   virtual void addInputPort();
53   virtual void addOutputPort();
54
55 //  virtual void addInputPortES();
56 //  virtual void addOutputPortES();
57  
58  protected:
59   SUPERVGUI_Label* myTitle;
60
61   QVBox*           myPortsBox;
62   QWidget*         myValuesBox;
63   QGridLayout*     myPortLayout;
64   
65   QFrame*          myGatesBox;
66   QGridLayout*     myGatesLayout;
67   
68   QTimer*          myTimer;  
69   int         myPIcount;
70   int         myPOcount;
71
72  private:
73   void StartTimer();
74   void StopTimer();
75   int MouseX;
76   int MouseY;
77   int MouseLeft;
78   int myX;
79   int myY;
80   int myDifX;
81   int myDifY;
82   int myFirstDifX;
83   int myFirstDifY;
84   bool myStopFlag;
85
86 };
87 #endif