]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/unix/app.h
Implement monitoring of file descriptors in wxMotif event loop.
[wxWidgets.git] / include / wx / unix / app.h
index d0dc89a4130ad56ceaf5e53282c6b543d42dd5c9..222d2662e8a27e066571875cd87536e92b14543f 100644 (file)
@@ -8,10 +8,20 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+//Ensure that sigset_t is being defined
+#include <signal.h>
+
+class wxFDIODispatcher;
+class wxFDIOHandler;
+class wxWakeUpPipe;
+
 // wxApp subclass implementing event processing for console applications
-class WXDLLIMPEXP_BASE wxAppConsoleUnix : public wxAppConsole
+class WXDLLIMPEXP_BASE wxAppConsole : public wxAppConsoleBase
 {
 public:
+    wxAppConsole();
+    virtual ~wxAppConsole();
+
     // override base class initialization
     virtual bool Initialize(int& argc, wxChar** argv);
 
@@ -35,6 +45,14 @@ public:
     // handlers for them
     void CheckSignal();
 
+    // Register the signal wake up pipe with the given dispatcher.
+    //
+    // This is used by wxExecute(wxEXEC_NOEVENTS) implementation only.
+    //
+    // The pointer to the handler used for processing events on this descriptor
+    // is returned so that it can be deleted when we no longer needed it.
+    wxFDIOHandler* RegisterSignalWakeUpPipe(wxFDIODispatcher& dispatcher);
+
 private:
     // signal handler set up by SetSignalHandler() for all signals we handle,
     // it just adds the signal to m_signalsCaught -- the real processing is
@@ -50,5 +68,7 @@ private:
     WX_DECLARE_HASH_MAP(int, SignalHandler, wxIntegerHash, wxIntegerEqual, SignalHandlerHash);
     SignalHandlerHash m_signalHandlerHash;
 
-    friend class GSocketGUIFunctionsTableBase;
+    // pipe used for wake up signal handling: if a signal arrives while we're
+    // blocking for input, writing to this pipe triggers a call to our CheckSignal()
+    wxWakeUpPipe *m_signalWakeUpPipe;
 };