]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/process.h
Headers to support 'Y' positioning fixes for OS/2 controls
[wxWidgets.git] / include / wx / process.h
index 34d54a50cb398eefe5c2a9aff1b2c1abecbc6fdc..91c71032ebd3b171e7ceb3f40af4b9917ffeaf05 100644 (file)
     #pragma interface "process.h"
 #endif
 
-#include "wx/defs.h"
-#include "wx/object.h"
 #include "wx/event.h"
 
 #if wxUSE_STREAMS
     #include "wx/stream.h"
 #endif
 
+#include "wx/utils.h"       // for wxSignal
+
 // ----------------------------------------------------------------------------
 // A wxProcess object should be passed to wxExecute - than its OnTerminate()
 // function will be called when the process terminates.
@@ -31,8 +31,6 @@
 
 class WXDLLEXPORT wxProcess : public wxEvtHandler
 {
-DECLARE_DYNAMIC_CLASS(wxProcess)
-
 public:
     wxProcess(wxEvtHandler *parent = (wxEvtHandler *) NULL, int id = -1)
         { Init(parent, id, FALSE); }
@@ -69,6 +67,12 @@ public:
                         wxInputStream *errStream);
 #endif // wxUSE_STREAMS
 
+    // 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);
+
 protected:
     void Init(wxEvtHandler *parent, int id, bool redirect);
 
@@ -81,12 +85,18 @@ protected:
 #endif // wxUSE_STREAMS
 
     bool m_redirect;
+
+    DECLARE_DYNAMIC_CLASS(wxProcess)
 };
 
 // ----------------------------------------------------------------------------
 // wxProcess events
 // ----------------------------------------------------------------------------
 
+BEGIN_DECLARE_EVENT_TYPES()
+    DECLARE_EVENT_TYPE(wxEVT_END_PROCESS, 440)
+END_DECLARE_EVENT_TYPES()
+
 class WXDLLEXPORT wxProcessEvent : public wxEvent
 {
 public:
@@ -104,20 +114,24 @@ public:
         // the exit code
     int GetExitCode() { return m_exitcode; }
 
+    // implement the base class pure virtual
+    virtual wxEvent *Clone() const { return new wxProcessEvent(*this); }
+
 public:
-    int m_pid, m_exitcode;
+    int m_pid,
+        m_exitcode;
 
     DECLARE_DYNAMIC_CLASS(wxProcessEvent)
 };
 
-BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_EVENT_TYPE(wxEVT_END_PROCESS, 440)
-END_DECLARE_EVENT_TYPES()
-
-typedef void (wxObject::*wxProcessEventFunction)(wxProcessEvent&);
+typedef void (wxEvtHandler::*wxProcessEventFunction)(wxProcessEvent&);
 
 #define EVT_END_PROCESS(id, func) \
-   DECLARE_EVENT_TABLE_ENTRY( wxEVT_END_PROCESS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxProcessEventFunction) & func, NULL),
+   DECLARE_EVENT_TABLE_ENTRY( \
+           wxEVT_END_PROCESS, id, -1, \
+           (wxObjectEventFunction) \
+           (wxEventFunction) \
+           (wxProcessEventFunction) & func, NULL),
 
 #endif
     // _WX_PROCESSH__