Salome HOME
Copyright update: 2016
[modules/gui.git] / src / PyInterp / PyInterp_Event.h
1 // Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  File   : PyInterp_Request.h
23 //  Author : Sergey Anikin, OCC, Adrien Bruneton (CEA/DEN)
24 //  Module : GUI
25
26 #ifndef PYINTERP_EVENT_H
27 #define PYINTERP_EVENT_H
28
29 #include "PyInterp.h"
30
31 #include <SALOME_Event.h>
32
33 #include <QEvent>
34
35 class PyInterp_Request;
36
37 class PyInterp_ExecuteEvent: public SALOME_Event
38 {
39 public:
40   PyInterp_ExecuteEvent( PyInterp_Request* r )
41     : myRequest( r ) {}
42
43   virtual void Execute();
44
45 protected:
46   PyInterp_Request* myRequest;
47 };
48
49 /**
50  * Events thrown by the interpreter having executed a command and indicating
51  * the return status.
52  */
53 class PYINTERP_EXPORT PyInterp_Event : public QEvent
54 {
55   PyInterp_Event();
56   PyInterp_Event( const PyInterp_Event& );
57
58 public:
59   //Execution state
60   enum { ES_NOTIFY = QEvent::User + 5000, ES_OK, ES_ERROR, ES_INCOMPLETE,
61          ES_TAB_COMPLETE_OK, ES_TAB_COMPLETE_ERR, ES_LAST };
62
63   PyInterp_Event( int type, PyInterp_Request* request )
64     : QEvent( (QEvent::Type)type ), myRequest( request ) {}
65
66   virtual ~PyInterp_Event();
67
68   PyInterp_Request* GetRequest() const { return myRequest; }
69   operator PyInterp_Request*() const { return myRequest; }
70
71 private:
72   PyInterp_Request* myRequest;
73 };
74
75 #endif // PYINTERP_EVENT_H