Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[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
18 class SUPERVGUI_GraphNode: public SUPERVGUI_Node {
19   Q_OBJECT
20     
21  public:
22   SUPERVGUI_GraphNode(QWidget* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode);
23   virtual ~SUPERVGUI_GraphNode();
24
25   virtual void hideAll() {};
26   virtual void showAll() {};
27
28   virtual void deleteLinks();
29   virtual void sync();
30
31   virtual void updateLinksPrs(bool toCheckExisting = false);
32   virtual void setNodeName(QString aName);
33
34   virtual void deletePort(SUPERVGUI_Port* thePort);
35
36   virtual QPoint getInConnectPnt();
37   virtual QPoint getOutConnectPnt();
38
39   virtual void updateShape() {};
40   virtual void updatePorts();
41
42   int& getPIcount() 
43     { return myPIcount;}
44
45   int& getPOcount() 
46     { return myPOcount;}
47
48  public slots:
49   void mouseTitlePress(QMouseEvent* e);
50   void mouseTitleMove(QMouseEvent* e);
51   void mouseTitleRelease(QMouseEvent* e);
52   void movingNode();
53   virtual void addInputPort();
54   virtual void addOutputPort();
55
56 //  virtual void addInputPortES();
57 //  virtual void addOutputPortES();
58  
59  protected:
60   SUPERVGUI_Label* myTitle;
61
62   QVBox*           myPortsBox;
63   QWidget*         myValuesBox;
64   QGridLayout*     myPortLayout;
65   
66   QFrame*          myGatesBox;
67   QGridLayout*     myGatesLayout;
68
69   QFrame *         myStreamBox;
70   QGridLayout*     myStreamLayout;
71   
72   QTimer*          myTimer;  
73   int         myPIcount;
74   int         myPOcount;
75
76   int         myStrPIcount;
77   int         myStrPOcount;
78
79  private:
80   void StartTimer();
81   void StopTimer();
82   int MouseX;
83   int MouseY;
84   int MouseLeft;
85   int myX;
86   int myY;
87   int myDifX;
88   int myDifY;
89   int myFirstDifX;
90   int myFirstDifY;
91   bool myStopFlag;
92
93 };
94 #endif