X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a43bd048a35bd6275867c067032f505046f14ef5..5df8beb1d95030c94f678458fc1980049f537992:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index f63fae9c3c..a016ff9468 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_UTILSH__ -#define _WX_UTILSH__ +#ifndef _WX_UTILS_H_ +#define _WX_UTILS_H_ // ---------------------------------------------------------------------------- // headers @@ -46,7 +46,7 @@ class WXDLLIMPEXP_FWD_BASE wxArrayInt; // Forward declaration // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_FWD_CORE wxProcess; +class WXDLLIMPEXP_FWD_BASE wxProcess; class WXDLLIMPEXP_FWD_CORE wxFrame; class WXDLLIMPEXP_FWD_CORE wxWindow; class WXDLLIMPEXP_FWD_CORE wxWindowList; @@ -87,6 +87,11 @@ WXDLLIMPEXP_CORE void wxBell(); WXDLLIMPEXP_BASE void wxBell(); #endif +#if wxUSE_MSGDLG +// Show wxWidgets information +WXDLLIMPEXP_CORE void wxInfoMessageBox(wxWindow* parent); +#endif // wxUSE_MSGDLG + // Get OS description as a user-readable string WXDLLIMPEXP_BASE wxString wxGetOsDescription(); @@ -131,7 +136,7 @@ class WXDLLIMPEXP_BASE wxPlatform public: wxPlatform() { Init(); } wxPlatform(const wxPlatform& platform) { Copy(platform); } - void operator = (const wxPlatform& platform) { Copy(platform); } + void operator = (const wxPlatform& platform) { if (&platform != this) Copy(platform); } void Copy(const wxPlatform& platform); // Specify an optional default value @@ -342,10 +347,17 @@ enum // If flags contain wxEXEC_SYNC, return -1 on failure and the exit code of the // process if everything was ok. Otherwise (i.e. if wxEXEC_ASYNC), return 0 on // failure and the PID of the launched process if ok. -WXDLLIMPEXP_BASE long wxExecute(wxChar **argv, int flags = wxEXEC_ASYNC, - wxProcess *process = (wxProcess *) NULL); -WXDLLIMPEXP_BASE long wxExecute(const wxString& command, int flags = wxEXEC_ASYNC, - wxProcess *process = (wxProcess *) NULL); +WXDLLIMPEXP_BASE long wxExecute(const wxString& command, + int flags = wxEXEC_ASYNC, + wxProcess *process = NULL); +WXDLLIMPEXP_BASE long wxExecute(char **argv, + int flags = wxEXEC_ASYNC, + wxProcess *process = NULL); +#if wxUSE_UNICODE +WXDLLIMPEXP_BASE long wxExecute(wchar_t **argv, + int flags = wxEXEC_ASYNC, + wxProcess *process = NULL); +#endif // wxUSE_UNICODE // execute the command capturing its output into an array line by line, this is // always synchronous @@ -522,13 +534,10 @@ WXDLLIMPEXP_BASE wxString wxGetUserName(); WXDLLIMPEXP_BASE wxString wxGetHomeDir(); WXDLLIMPEXP_BASE const wxChar* wxGetHomeDir(wxString *pstr); -// Get the user's home dir (caller must copy --- volatile) -// returns NULL is no HOME dir is known -#if defined(__UNIX__) && wxUSE_UNICODE && !defined(__WINE__) -WXDLLIMPEXP_BASE const wxMB2WXbuf wxGetUserHome(const wxString& user = wxEmptyString); -#else -WXDLLIMPEXP_BASE wxChar* wxGetUserHome(const wxString& user = wxEmptyString); -#endif +// Get the user's (by default use the current user name) home dir, +// return empty string on error +WXDLLIMPEXP_BASE wxString wxGetUserHome(const wxString& user = wxEmptyString); + #if wxUSE_LONGLONG typedef wxLongLong wxDiskspaceSize_t; @@ -550,7 +559,7 @@ typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2 WXDLLIMPEXP_BASE void wxQsort(void *const pbase, size_t total_elems, - size_t size, CMPFUNCDATA cmp, const void* user_data); + size_t size, CMPFUNCDATA cmp, const void* user_data); #if wxUSE_GUI // GUI only things from now on @@ -647,16 +656,28 @@ 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 +// a class which disables all windows (except, may be, the given one) in its // ctor and enables them back in its dtor class WXDLLEXPORT wxWindowDisabler { public: - wxWindowDisabler(wxWindow *winToSkip = (wxWindow *)NULL); + // this ctor conditionally disables all windows: if the argument is false, + // it doesn't do anything + wxWindowDisabler(bool disable = true); + + // ctor disables all windows except winToSkip + wxWindowDisabler(wxWindow *winToSkip); + + // dtor enables back all windows disabled by the ctor ~wxWindowDisabler(); private: + // disable all windows except the given one (used by both ctors) + void DoDisable(wxWindow *winToSkip = NULL); + + wxWindowList *m_winDisabled; + bool m_disabled; DECLARE_NO_COPY_CLASS(wxWindowDisabler) }; @@ -731,9 +752,16 @@ inline struct _XDisplay *wxGetX11Display() // wxYield(): these functions are obsolete, please use wxApp methods instead! // ---------------------------------------------------------------------------- +// avoid redeclaring this function here if it had been already declated by +// wx/app.h, this results in warnings from g++ with -Wredundant-decls +#ifndef wx_YIELD_DECLARED +#define wx_YIELD_DECLARED + // Yield to other apps/messages WXDLLIMPEXP_BASE bool wxYield(); +#endif // wx_YIELD_DECLARED + // Like wxYield, but fails silently if the yield is recursive. WXDLLIMPEXP_BASE bool wxYieldIfNeeded();