X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c51deffc32ff80f4ed13a1095bbf2ff44de89505..84bfc0d503636bd4f64699d7b1bf45e201d787ff:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index 7893bd1700..c472247690 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -39,6 +39,8 @@ class WXDLLEXPORT wxProcess; class WXDLLEXPORT wxFrame; class WXDLLEXPORT wxWindow; +class WXDLLEXPORT wxWindowList; +class WXDLLEXPORT wxPoint; // FIXME should use wxStricmp() instead #if defined(__GNUWIN32__) @@ -146,6 +148,15 @@ 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); + +// also capture stderr +WXDLLEXPORT long wxExecute(const wxString& command, + wxArrayString& output, + wxArrayString& error); + enum wxSignal { wxSIGNONE = 0, // verify if the process exists under Unix @@ -172,10 +183,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 +200,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. // ---------------------------------------------------------------------------- @@ -252,6 +270,11 @@ WXDLLEXPORT wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent // Returns menu item id or -1 if none. WXDLLEXPORT int wxFindMenuItemId(wxFrame *frame, const wxString& menuString, const wxString& itemString); +// Find the wxWindow at the given point. wxGenericFindWindowAtPoint +// is always present but may be less reliable than a native version. +WXDLLEXPORT wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt); +WXDLLEXPORT wxWindow* wxFindWindowAtPoint(const wxPoint& pt); + // ---------------------------------------------------------------------------- // Message/event queue helpers // ---------------------------------------------------------------------------- @@ -272,6 +295,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 // ---------------------------------------------------------------------------- @@ -293,25 +332,18 @@ class WXDLLEXPORT wxBusyCursor public: wxBusyCursor(wxCursor* cursor = wxHOURGLASS_CURSOR) { wxBeginBusyCursor(cursor); } - ~wxBusyCursor() + ~wxBusyCursor() { wxEndBusyCursor(); } -}; - -// ---------------------------------------------------------------------------- -// Error message functions used by wxWindows (deprecated, use wxLog) -// ---------------------------------------------------------------------------- -// Format a message on the standard error (UNIX) or the debugging -// stream (Windows) -WXDLLEXPORT void wxDebugMsg(const wxChar *fmt ...); - -// Non-fatal error (continues) -WXDLLEXPORT_DATA(extern const wxChar*) wxInternalErrorStr; -WXDLLEXPORT void wxError(const wxString& msg, const wxString& title = wxInternalErrorStr); + // FIXME: These two methods are currently only implemented (and needed?) + // in wxGTK. BusyCursor handling should probably be moved to + // common code since the wxGTK and wxMSW implementations are very + // similar except for wxMSW using HCURSOR directly instead of + // wxCursor.. -- RL. + static const wxCursor &GetStoredCursor(); + static const wxCursor GetBusyCursor(); +}; -// Fatal error (exits) -WXDLLEXPORT_DATA(extern const wxChar*) wxFatalErrorStr; -WXDLLEXPORT void wxFatalError(const wxString& msg, const wxString& title = wxFatalErrorStr); // ---------------------------------------------------------------------------- // Reading and writing resources (eg WIN.INI, .Xdefaults) @@ -391,5 +423,22 @@ void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor); #endif // wxUSE_GUI +// ---------------------------------------------------------------------------- +// Error message functions used by wxWindows (deprecated, use wxLog) +// ---------------------------------------------------------------------------- + +// Format a message on the standard error (UNIX) or the debugging +// stream (Windows) +WXDLLEXPORT void wxDebugMsg(const wxChar *fmt ...); + +// Non-fatal error (continues) +WXDLLEXPORT_DATA(extern const wxChar*) wxInternalErrorStr; +WXDLLEXPORT void wxError(const wxString& msg, const wxString& title = wxInternalErrorStr); + +// Fatal error (exits) +WXDLLEXPORT_DATA(extern const wxChar*) wxFatalErrorStr; +WXDLLEXPORT void wxFatalError(const wxString& msg, const wxString& title = wxFatalErrorStr); + + #endif // _WX_UTILSH__