Salome HOME
Update comments
[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 /*!\class SUIT_PopupClient
12  * Descr: Base class for instances which creates popup menu on QContextMenuEvent
13  */
14 class SUIT_EXPORT SUIT_PopupClient
15 {
16 public:
17
18   class Signal;
19
20   SUIT_PopupClient();
21   ~SUIT_PopupClient();
22
23   bool            connectPopupRequest( QObject* reciever, const char* slot );
24   bool            disconnectPopupRequest( QObject* reciever, const char* slot );
25
26   virtual QString popupClientType() const = 0;
27   virtual void    contextMenuPopup( QPopupMenu* ) {}
28
29 protected:
30   void    contextMenuRequest( QContextMenuEvent* e );
31
32 private:
33   Signal* mySignal;
34 };
35
36 /*! Class: SUIT_PopupClient::Signal [internal] \n
37  *  Descr: invoke signal which is connected to reciever in SUIT_PopupClient
38  */
39 class SUIT_PopupClient::Signal : public QObject
40 {
41   Q_OBJECT
42
43 public:
44   Signal();
45   virtual ~Signal();
46
47   void    sendSignal( SUIT_PopupClient*, QContextMenuEvent* );
48
49 signals:
50   void contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* );
51 };
52
53 #endif