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