itom  4.1.0
pythonProgressObserver.h
1 /* ********************************************************************
2  itom software
3  URL: http://www.uni-stuttgart.de/ito
4  Copyright (C) 2020, Institut fuer Technische Optik (ITO),
5  Universitaet Stuttgart, Germany
6 
7  This file is part of itom.
8 
9  itom is free software; you can redistribute it and/or modify it
10  under the terms of the GNU Library General Public Licence as published by
11  the Free Software Foundation; either version 2 of the Licence, or (at
12  your option) any later version.
13 
14  itom is distributed in the hope that it will be useful, but
15  WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
17  General Public Licence for more details.
18 
19  You should have received a copy of the GNU Library General Public License
20  along with itom. If not, see <http://www.gnu.org/licenses/>.
21 *********************************************************************** */
22 
23 #ifndef PYTHONPROGRESSOBSERVER_H
24 #define PYTHONPROGRESSOBSERVER_H
25 
26 /* includes */
27 #ifndef Q_MOC_RUN
28  #define PY_ARRAY_UNIQUE_SYMBOL itom_ARRAY_API //see numpy help ::array api :: Miscellaneous :: Importing the api (this line must bebefore include global.h)
29  #define NO_IMPORT_ARRAY
30 
31  //python
32  // see http://vtk.org/gitweb?p=VTK.git;a=commitdiff;h=7f3f750596a105d48ea84ebfe1b1c4ca03e0bab3
33  #if (defined _DEBUG) && (defined WIN32)
34  #undef _DEBUG
35  #include "python/pythonWrapper.h"
36  #define _DEBUG
37  #else
38  #include "python/pythonWrapper.h"
39  #endif
40 #endif
41 
42 #include "common/functionCancellationAndObserver.h"
43 #include <qsharedpointer.h>
44 
45 namespace ito
46 {
47 
48 class PythonQtSignalMapper; //forward declaration
49 
51 {
52 public:
53  typedef struct
54  {
55  PyObject_HEAD
56  QSharedPointer<ito::FunctionCancellationAndObserver> *progressObserver;
57  PythonQtSignalMapper *signalMapper;
58  }
60 
61  #define PyProgressObserver_Check(op) PyObject_TypeCheck(op, &ito::PythonProgressObserver::PyProgressObserverType)
62 
63  //-------------------------------------------------------------------------------------------------
64  // constructor, deconstructor, alloc, dellaoc
65  //-------------------------------------------------------------------------------------------------
66  static void PyProgressObserver_dealloc(PyProgressObserver *self);
67  static PyObject* PyProgressObserver_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
68  static int PyProgressObserver_init(PyProgressObserver *self, PyObject *args, PyObject *kwds);
69 
70  //-------------------------------------------------------------------------------------------------
71  // general members
72  //-------------------------------------------------------------------------------------------------
73  static PyObject* PyProgressObserver_repr(PyProgressObserver *self);
74  static PyObject* PyProgressObserver_requestCancellation(PyProgressObserver *self);
75  static PyObject* PyProgressObserver_reset(PyProgressObserver *self);
76 
77  static PyObject* PyProgressObserver_connect(PyProgressObserver *self, PyObject* args, PyObject *kwds);
78  static PyObject* PyProgressObserver_disconnect(PyProgressObserver *self, PyObject* args, PyObject *kwds);
79  static PyObject* PyProgressObserver_info(PyProgressObserver* self, PyObject* args);
80 
81  //-------------------------------------------------------------------------------------------------
82  // getter / setter
83  //-------------------------------------------------------------------------------------------------
84  static PyObject* PyProgressObserver_getProgressMinimum(PyProgressObserver *self, void *closure);
85  static int PyProgressObserver_setProgressMinimum(PyProgressObserver *self, PyObject *value, void *closure);
86 
87  static PyObject* PyProgressObserver_getProgressMaximum(PyProgressObserver *self, void *closure);
88  static int PyProgressObserver_setProgressMaximum(PyProgressObserver *self, PyObject *value, void *closure);
89 
90  static PyObject* PyProgressObserver_getProgressValue(PyProgressObserver *self, void *closure);
91  static int PyProgressObserver_setProgressValue(PyProgressObserver *self, PyObject *value, void *closure);
92 
93  static PyObject* PyProgressObserver_getProgressText(PyProgressObserver *self, void *closure);
94  static int PyProgressObserver_setProgressText(PyProgressObserver *self, PyObject *value, void *closure);
95 
96  static PyObject* PyProgressObserver_isCancelled(PyProgressObserver *self, void *closure);
97 
98  //-------------------------------------------------------------------------------------------------
99  // type structures
100  //-------------------------------------------------------------------------------------------------
101  //static PyMemberDef PyProgressObserver_members[];
102  static PyMethodDef PyProgressObserver_methods[];
103  static PyGetSetDef PyProgressObserver_getseters[];
104  static PyTypeObject PyProgressObserverType;
105  static PyModuleDef PyProgressObserverModule;
106 
107  static void PyProgressObserver_addTpDict(PyObject *tp_dict);
108 };
109 
110 }; //end namespace ito
111 
112 
113 #endif
Definition: pythonProgressObserver.h:53
Definition: pythonProgressObserver.h:50
Definition: apiFunctionsGraph.cpp:39
This class provides the possibility to redirect any signal emitted in an user-defined GUI to differen...
Definition: pythonQtSignalMapper.h:169