Salome HOME
studyActivated() virtual method has been added
[modules/gui.git] / src / SUIT / SUIT_PopupClient.h
1 #ifndef SUIT_POPUPCLIENT_H
2 #define SUIT_POPUPCLIENT_H
3
4 #include "SUIT.h"
5
6 #include <qobject.h>
7
8 class QPopupMenu;
9 class QContextMenuEvent;
10
11 /*
12   Class: SUIT_PopupClient [public]
13   Descr: Base class for instances which creates popup menu on QContextMenuEvent
14 */
15
16 class SUIT_EXPORT SUIT_PopupClient
17 {
18 public:
19
20   class Signal;
21
22   SUIT_PopupClient();
23   ~SUIT_PopupClient();
24
25   bool            connectPopupRequest( QObject* reciever, const char* slot );
26   bool            disconnectPopupRequest( QObject* reciever, const char* slot );
27
28   virtual QString popupClientType() const = 0;
29   virtual void    contextMenuPopup( QPopupMenu* ) {}
30
31 protected:
32   void    contextMenuRequest( QContextMenuEvent* e );
33
34 private:
35   Signal* mySignal;
36 };
37
38 /*
39   Class: SUIT_PopupClient::Signal [internal]
40   Descr: invoke signal which is connected to reciever in SUIT_PopupClient
41 */
42
43 class SUIT_PopupClient::Signal : public QObject
44 {
45   Q_OBJECT
46
47 public:
48   Signal();
49   virtual ~Signal();
50
51   void    sendSignal( SUIT_PopupClient*, QContextMenuEvent* );
52
53 signals:
54   void contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* );
55 };
56
57 #endif