]> SALOME platform Git repositories - modules/yacs.git/blob - src/genericgui/Menus.hxx
Salome HOME
d09aee96631ebaca8ad855d9f65e1e6b08f9938f
[modules/yacs.git] / src / genericgui / Menus.hxx
1 // Copyright (C) 2006-2012  CEA/DEN, EDF R&D
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.
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 _MENUS_HXX_
21 #define _MENUS_HXX_
22
23 #include <QObject>
24 #include <QWidget>
25 #include <QAction>
26 #include <QPoint>
27
28 namespace YACS
29 {
30   namespace HMI
31   {
32     class MenusBase: public QObject
33     {
34       Q_OBJECT
35     public:
36       MenusBase();
37       virtual ~MenusBase();
38       virtual void popupMenu(QWidget *caller,
39                              const QPoint &globalPos,
40                              const QString& m = "MenuBase");
41       virtual void addForEachMenu(QMenu *m, QActionGroup* actgroup);
42     protected slots:
43       void dummyAction();
44       void foreachAction(QAction*);
45     protected:
46       virtual void addHeader(QMenu &m, const QString &h);
47       QAction *_dummyAct;
48     };
49
50     class NodeMenu: public MenusBase
51     {
52       Q_OBJECT
53     public:
54       NodeMenu();
55       virtual ~NodeMenu();
56       virtual void popupMenu(QWidget *caller,
57                              const QPoint &globalPos,
58                              const QString& m = "Node Menu");
59     };
60
61     class ComposedNodeMenu: public MenusBase
62     {
63       Q_OBJECT
64     public:
65       ComposedNodeMenu();
66       virtual ~ComposedNodeMenu();
67       virtual void popupMenu(QWidget *caller,
68                              const QPoint &globalPos,
69                              const QString& m = "Composed Node Menu");
70     };
71
72     class ProcMenu: public MenusBase
73     {
74       Q_OBJECT
75     public:
76       ProcMenu();
77       virtual ~ProcMenu();
78       virtual void popupMenu(QWidget *caller,
79                              const QPoint &globalPos,
80                              const QString& m = "Proc Menu");
81     };
82
83     class HeaderNodeMenu: public MenusBase
84     {
85       Q_OBJECT
86     public:
87       HeaderNodeMenu();
88       virtual ~HeaderNodeMenu();
89       virtual void popupMenu(QWidget *caller,
90                              const QPoint &globalPos,
91                              const QString& m = "Header Node Menu");
92     };
93
94     class LinkMenu: public MenusBase
95     {
96       Q_OBJECT
97     public:
98       LinkMenu();
99       virtual ~LinkMenu();
100       virtual void popupMenu(QWidget *caller,
101                              const QPoint &globalPos,
102                              const QString& m = "Link Menu");
103     };
104
105     class ElementaryNodeMenu: public MenusBase
106     {
107       Q_OBJECT
108     public:
109       ElementaryNodeMenu();
110       virtual ~ElementaryNodeMenu();
111       virtual void popupMenu(QWidget *caller,
112                              const QPoint &globalPos,
113                              const QString& m = "Elementary Node Menu");
114     };
115
116     class InPortMenu: public MenusBase
117     {
118       Q_OBJECT
119     public:
120       InPortMenu();
121       virtual ~InPortMenu();
122       virtual void popupMenu(QWidget *caller,
123                              const QPoint &globalPos,
124                              const QString& m = "In Port Menu");
125     };
126
127     class OutPortMenu: public MenusBase
128     {
129       Q_OBJECT
130     public:
131       OutPortMenu();
132       virtual ~OutPortMenu();
133       virtual void popupMenu(QWidget *caller,
134                              const QPoint &globalPos,
135                              const QString& m = "Out Port Menu");
136     };
137
138     class CtrlInPortMenu: public MenusBase
139     {
140       Q_OBJECT
141     public:
142       CtrlInPortMenu();
143       virtual ~CtrlInPortMenu();
144       virtual void popupMenu(QWidget *caller,
145                              const QPoint &globalPos,
146                              const QString& m = "Control In Port Menu");
147     };
148
149     class CtrlOutPortMenu: public MenusBase
150     {
151       Q_OBJECT
152     public:
153       CtrlOutPortMenu();
154       virtual ~CtrlOutPortMenu();
155       virtual void popupMenu(QWidget *caller,
156                              const QPoint &globalPos,
157                              const QString& m = "Control Out Port Menu");
158     };
159
160     class ReferenceMenu: public MenusBase
161     {
162       Q_OBJECT
163     public:
164       ReferenceMenu();
165       virtual ~ReferenceMenu();
166       virtual void popupMenu(QWidget *caller,
167                              const QPoint &globalPos,
168                              const QString& m = "Reference Menu");
169     };
170
171     class ContainerDirMenu: public MenusBase
172     {
173       Q_OBJECT
174     public:
175       ContainerDirMenu();
176       virtual ~ContainerDirMenu();
177       virtual void popupMenu(QWidget *caller,
178                              const QPoint &globalPos,
179                              const QString& m = "Containers Menu");
180     };
181
182     class ComponentInstanceMenu: public MenusBase
183     {
184       Q_OBJECT
185     public:
186       ComponentInstanceMenu();
187       virtual ~ComponentInstanceMenu();
188       virtual void popupMenu(QWidget *caller,
189                              const QPoint &globalPos,
190                              const QString& m = "ComponentInstance Menu");
191     };
192
193     class ContainerMenu: public MenusBase
194     {
195       Q_OBJECT
196     public:
197       ContainerMenu();
198       virtual ~ContainerMenu();
199       virtual void popupMenu(QWidget *caller,
200                              const QPoint &globalPos,
201                              const QString& m = "Container Menu");
202     };
203   }
204 }
205
206 #endif