]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/utils.h
Committing in .
[wxWidgets.git] / include / wx / utils.h
index 7893bd1700e603324514eba2c3da9288b03f1925..2eec7b1c11fd2ac7b12f9f01fc9671dffeb8c062 100644 (file)
@@ -39,6 +39,7 @@
 class WXDLLEXPORT wxProcess;
 class WXDLLEXPORT wxFrame;
 class WXDLLEXPORT wxWindow;
+class WXDLLEXPORT wxWindowList;
 
 // FIXME should use wxStricmp() instead
 #if defined(__GNUWIN32__)
@@ -146,6 +147,9 @@ WXDLLEXPORT long wxExecute(wxChar **argv, bool sync = FALSE,
 WXDLLEXPORT long wxExecute(const wxString& command, bool sync = FALSE,
                            wxProcess *process = (wxProcess *) NULL);
 
+// execute the command capturing its output into an array line by line
+WXDLLEXPORT long wxExecute(const wxString& command, wxArrayString& output);
+
 enum wxSignal
 {
     wxSIGNONE = 0,  // verify if the process exists under Unix
@@ -172,10 +176,14 @@ enum wxSignal
 // the argument is ignored under Windows - the process is always killed
 WXDLLEXPORT int wxKill(long pid, wxSignal sig = wxSIGTERM);
 
-// Execute a command in an interactive shell window
+// Execute a command in an interactive shell window (always synchronously)
 // If no command then just the shell
 WXDLLEXPORT bool wxShell(const wxString& command = wxEmptyString);
 
+// As wxShell(), but must give a (non interactive) command and its output will
+// be returned in output array
+WXDLLEXPORT bool wxShell(const wxString& command, wxArrayString& output);
+
 // Sleep for nSecs seconds
 WXDLLEXPORT void wxSleep(int nSecs);
 
@@ -185,6 +193,9 @@ WXDLLEXPORT void wxUsleep(unsigned long milliseconds);
 // Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX)
 WXDLLEXPORT long wxGetFreeMemory();
 
+// should wxApp::OnFatalException() be called?
+WXDLLEXPORT bool wxHandleFatalExceptions(bool doit = TRUE);
+
 // ----------------------------------------------------------------------------
 // Network and username functions.
 // ----------------------------------------------------------------------------
@@ -272,6 +283,22 @@ WXDLLEXPORT bool wxCheckForInterrupt(wxWindow *wnd);
 // Consume all events until no more left
 WXDLLEXPORT void wxFlushEvents();
 
+// a class which disables all windows (except, may be, thegiven one) in its
+// ctor and enables them back in its dtor
+class WXDLLEXPORT wxWindowDisabler
+{
+public:
+    wxWindowDisabler(wxWindow *winToSkip = (wxWindow *)NULL);
+    ~wxWindowDisabler();
+
+private:
+    wxWindowList *m_winDisabled;
+
+#ifdef __WXMSW__
+    wxWindow *m_winTop;
+#endif // MSW
+};
+
 // ----------------------------------------------------------------------------
 // Cursors
 // ----------------------------------------------------------------------------