};
+enum wxKillError
+{
+ wxKILL_OK, // no error
+ wxKILL_BAD_SIGNAL, // no such signal
+ wxKILL_ACCESS_DENIED, // permission denied
+ wxKILL_NO_PROCESS, // no such process
+ wxKILL_ERROR // another, unspecified error
+};
+
+
class wxProcessEvent : public wxEvent {
public:
wxProcessEvent(int id = 0, int pid = 0, int exitcode = 0);
%name(wxProcess)class wxPyProcess : public wxEvtHandler {
public:
+ // kill the process with the given PID
+ static wxKillError Kill(int pid, wxSignal sig = wxSIGTERM);
+
+ // test if the given process exists
+ static bool Exists(int pid);
+
+ // this function replaces the standard popen() one: it launches a process
+ // asynchronously and allows the caller to get the streams connected to its
+ // std{in|out|err}
+ //
+ // on error NULL is returned, in any case the process object will be
+ // deleted automatically when the process terminates and should *not* be
+ // deleted by the caller
+ static wxPyProcess *Open(const wxString& cmd);
+
+
+
wxPyProcess(wxEvtHandler *parent = NULL, int id = -1);
%addmethods { void Destroy() { delete self; } }
return (void *) dest;
}
+static PyObject *_wrap_wxProcess_Kill(PyObject *self, PyObject *args, PyObject *kwargs) {
+ PyObject * _resultobj;
+ wxKillError _result;
+ int _arg0;
+ wxSignal * _arg1 = (wxSignal *) &wxSIGTERM;
+ PyObject * _argo1 = 0;
+ char *_kwnames[] = { "pid","sig", NULL };
+
+ self = self;
+ if(!PyArg_ParseTupleAndKeywords(args,kwargs,"i|O:wxProcess_Kill",_kwnames,&_arg0,&_argo1))
+ return NULL;
+ if (_argo1) {
+ if (_argo1 == Py_None) { _arg1 = NULL; }
+ else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxSignal_p")) {
+ PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxProcess_Kill. Expected _wxSignal_p.");
+ return NULL;
+ }
+ }
+{
+ PyThreadState* __tstate = wxPyBeginAllowThreads();
+ _result = (wxKillError )wxPyProcess::Kill(_arg0,*_arg1);
+
+ wxPyEndAllowThreads(__tstate);
+ if (PyErr_Occurred()) return NULL;
+} _resultobj = Py_BuildValue("i",_result);
+ return _resultobj;
+}
+
+static PyObject *_wrap_wxProcess_Exists(PyObject *self, PyObject *args, PyObject *kwargs) {
+ PyObject * _resultobj;
+ bool _result;
+ int _arg0;
+ char *_kwnames[] = { "pid", NULL };
+
+ self = self;
+ if(!PyArg_ParseTupleAndKeywords(args,kwargs,"i:wxProcess_Exists",_kwnames,&_arg0))
+ return NULL;
+{
+ PyThreadState* __tstate = wxPyBeginAllowThreads();
+ _result = (bool )wxPyProcess::Exists(_arg0);
+
+ wxPyEndAllowThreads(__tstate);
+ if (PyErr_Occurred()) return NULL;
+} _resultobj = Py_BuildValue("i",_result);
+ return _resultobj;
+}
+
+static PyObject *_wrap_wxProcess_Open(PyObject *self, PyObject *args, PyObject *kwargs) {
+ PyObject * _resultobj;
+ wxPyProcess * _result;
+ wxString * _arg0;
+ PyObject * _obj0 = 0;
+ char *_kwnames[] = { "cmd", NULL };
+ char _ptemp[128];
+
+ self = self;
+ if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxProcess_Open",_kwnames,&_obj0))
+ return NULL;
+{
+ _arg0 = wxString_in_helper(_obj0);
+ if (_arg0 == NULL)
+ return NULL;
+}
+{
+ PyThreadState* __tstate = wxPyBeginAllowThreads();
+ _result = (wxPyProcess *)wxPyProcess::Open(*_arg0);
+
+ wxPyEndAllowThreads(__tstate);
+ if (PyErr_Occurred()) return NULL;
+} if (_result) {
+ SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyProcess_p");
+ _resultobj = Py_BuildValue("s",_ptemp);
+ } else {
+ Py_INCREF(Py_None);
+ _resultobj = Py_None;
+ }
+{
+ if (_obj0)
+ delete _arg0;
+}
+ return _resultobj;
+}
+
#define new_wxProcess(_swigarg0,_swigarg1) (new wxPyProcess(_swigarg0,_swigarg1))
static PyObject *_wrap_new_wxProcess(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
{ "wxProcess__setCallbackInfo", (PyCFunction) _wrap_wxProcess__setCallbackInfo, METH_VARARGS | METH_KEYWORDS },
{ "wxProcess_Destroy", (PyCFunction) _wrap_wxProcess_Destroy, METH_VARARGS | METH_KEYWORDS },
{ "new_wxProcess", (PyCFunction) _wrap_new_wxProcess, METH_VARARGS | METH_KEYWORDS },
+ { "wxProcess_Open", (PyCFunction) _wrap_wxProcess_Open, METH_VARARGS | METH_KEYWORDS },
+ { "wxProcess_Exists", (PyCFunction) _wrap_wxProcess_Exists, METH_VARARGS | METH_KEYWORDS },
+ { "wxProcess_Kill", (PyCFunction) _wrap_wxProcess_Kill, METH_VARARGS | METH_KEYWORDS },
{ "wxProcessEvent_m_exitcode_get", (PyCFunction) _wrap_wxProcessEvent_m_exitcode_get, METH_VARARGS | METH_KEYWORDS },
{ "wxProcessEvent_m_exitcode_set", (PyCFunction) _wrap_wxProcessEvent_m_exitcode_set, METH_VARARGS | METH_KEYWORDS },
{ "wxProcessEvent_m_pid_get", (PyCFunction) _wrap_wxProcessEvent_m_pid_get, METH_VARARGS | METH_KEYWORDS },
PyDict_SetItemString(d,"wxTraceRefCount", PyInt_FromLong((long) wxTraceRefCount));
PyDict_SetItemString(d,"wxTraceOleCalls", PyInt_FromLong((long) wxTraceOleCalls));
PyDict_SetItemString(d,"wxEVT_END_PROCESS", PyInt_FromLong((long) wxEVT_END_PROCESS));
+ PyDict_SetItemString(d,"wxKILL_OK", PyInt_FromLong((long) wxKILL_OK));
+ PyDict_SetItemString(d,"wxKILL_BAD_SIGNAL", PyInt_FromLong((long) wxKILL_BAD_SIGNAL));
+ PyDict_SetItemString(d,"wxKILL_ACCESS_DENIED", PyInt_FromLong((long) wxKILL_ACCESS_DENIED));
+ PyDict_SetItemString(d,"wxKILL_NO_PROCESS", PyInt_FromLong((long) wxKILL_NO_PROCESS));
+ PyDict_SetItemString(d,"wxKILL_ERROR", PyInt_FromLong((long) wxKILL_ERROR));
PyDict_SetItemString(d,"wxEXEC_ASYNC", PyInt_FromLong((long) wxEXEC_ASYNC));
PyDict_SetItemString(d,"wxEXEC_SYNC", PyInt_FromLong((long) wxEXEC_SYNC));
PyDict_SetItemString(d,"wxEXEC_NOHIDE", PyInt_FromLong((long) wxEXEC_NOHIDE));
wxLog_IsAllowedTraceMask = misc2c.wxLog_IsAllowedTraceMask
+wxProcess_Kill = misc2c.wxProcess_Kill
+
+wxProcess_Exists = misc2c.wxProcess_Exists
+
+def wxProcess_Open(*_args, **_kwargs):
+ val = apply(misc2c.wxProcess_Open,_args,_kwargs)
+ if val: val = wxProcessPtr(val)
+ return val
+
wxFileType_ExpandCommand = misc2c.wxFileType_ExpandCommand
wxMimeTypesManager_IsOfType = misc2c.wxMimeTypesManager_IsOfType
wxTraceRefCount = misc2c.wxTraceRefCount
wxTraceOleCalls = misc2c.wxTraceOleCalls
wxEVT_END_PROCESS = misc2c.wxEVT_END_PROCESS
+wxKILL_OK = misc2c.wxKILL_OK
+wxKILL_BAD_SIGNAL = misc2c.wxKILL_BAD_SIGNAL
+wxKILL_ACCESS_DENIED = misc2c.wxKILL_ACCESS_DENIED
+wxKILL_NO_PROCESS = misc2c.wxKILL_NO_PROCESS
+wxKILL_ERROR = misc2c.wxKILL_ERROR
wxEXEC_ASYNC = misc2c.wxEXEC_ASYNC
wxEXEC_SYNC = misc2c.wxEXEC_SYNC
wxEXEC_NOHIDE = misc2c.wxEXEC_NOHIDE