Salome HOME
Merge branch 'Dev_0.7.1' of newgeom:newgeom into Dev_0.7.1
[modules/shaper.git] / src / XGUI / XGUI_QtEvents.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 /*
4  * XGUI_QEvents.h
5  *
6  *  Created on: Sep 12, 2014
7  *      Author: sbh
8  */
9
10 #ifndef XGUI_QTEVENTS_H_
11 #define XGUI_QTEVENTS_H_
12
13 #include <XGUI.h>
14
15 #include <ModelAPI_ResultPart.h>
16 #include <Events_Message.h>
17
18 #include <QEvent>
19 #include <QString>
20
21 /**
22 * \ingroup GUI
23 * Class of event to send application events in multi thread environment
24 */
25 class XGUI_EXPORT PostponeMessageQtEvent : public QEvent
26 {
27  public:
28    /// An event type
29   static QEvent::Type PostponeMessageQtEventType;
30
31   /// Constructor
32   /// \param theMessage an event message to send
33   PostponeMessageQtEvent(const std::shared_ptr<Events_Message>& theMessage)
34       : QEvent(PostponeMessageQtEventType),
35       myMessage(theMessage)
36   {
37   }
38
39   /// Returns type of the event
40   static QEvent::Type type()
41   {
42     return PostponeMessageQtEventType;
43   }
44
45   /// Returns current messasge
46   std::shared_ptr<Events_Message> postponedMessage();
47
48  private:
49    /// Message
50   std::shared_ptr<Events_Message> myMessage;
51 };
52
53 #endif /* XGUI_QEVENTS_H_ */