X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/98ccd5452290db2280d7b23698d66584c3e66732..59b7da02ff62a33862accc13158870f2a9a23630:/interface/wx/utils.h diff --git a/interface/wx/utils.h b/interface/wx/utils.h index 1254434a7b..8bf3b1948f 100644 --- a/interface/wx/utils.h +++ b/interface/wx/utils.h @@ -3,7 +3,7 @@ // Purpose: interface of various utility classes and functions // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -93,7 +93,7 @@ public: // ============================================================================ -/** @ingroup group_funcmacro_dialog */ +/** @addtogroup group_funcmacro_dialog */ //@{ /** @@ -154,7 +154,7 @@ void wxInfoMessageBox(wxWindow parent = NULL); -/** @ingroup group_funcmacro_env */ +/** @addtogroup group_funcmacro_env */ //@{ /** @@ -169,8 +169,9 @@ void wxInfoMessageBox(wxWindow parent = NULL); wxChar* wxGetenv(const wxString& var); /** - Returns the current value of the environment variable @c var in @c value. - @c value may be @NULL if you just want to know if the variable exists and + Returns the current value of the environment variable @a var in @a value. + + @a value may be @NULL if you just want to know if the variable exists and are not interested in its value. Returns @true if the variable exists, @false otherwise. @@ -180,10 +181,24 @@ wxChar* wxGetenv(const wxString& var); bool wxGetEnv(const wxString& var, wxString* value); /** - Sets the value of the environment variable @c var (adding it if necessary) - to @c value. - - Returns @true on success. + Sets the value of the environment variable @a var (adding it if necessary) + to @a value. + + Notice that under Windows platforms the program may have two different + environment blocks: the first one is that of a Windows process and is + always present, but the CRT may maintain its own independent copy of the + environment. wxSetEnv() will always update the first copy, which means that + wxGetEnv(), which uses it directly, will always return the expected value + after this call. But wxSetEnv() only updates the second copy for some + compilers/CRT implementations (currently only MSVC) and so using wxGetenv() + (notice the difference in case) may not return the updated value. + + @param var + The environment variable to be set, must not contain @c '=' character. + @param value + New value of the variable. + @return + @true on success or @false if changing the value failed. @see wxUnsetEnv() @@ -192,8 +207,9 @@ bool wxGetEnv(const wxString& var, wxString* value); bool wxSetEnv(const wxString& var, const wxString& value); /** - Removes the variable @c var from the environment. wxGetEnv() will return - @NULL after the call to this function. + Removes the variable @a var from the environment. + + wxGetEnv() will return @NULL after the call to this function. Returns @true on success. @@ -205,7 +221,7 @@ bool wxUnsetEnv(const wxString& var); -/** @ingroup group_funcmacro_misc */ +/** @addtogroup group_funcmacro_misc */ //@{ /** @@ -349,9 +365,11 @@ void wxRegisterId(long id); Returns @true if the application was successfully launched. + @see wxLaunchDefaultBrowser(), wxExecute() + @header{wx/utils.h} */ -bool wxLaunchDefaultApplication(const wxString& document, int flags = 0) +bool wxLaunchDefaultApplication(const wxString& document, int flags = 0); /** Opens the @a url in user's default browser. @@ -364,9 +382,15 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags = 0) a busy cursor is shown while the browser is being launched (using wxBusyCursor). - The @a url may also be a local file path (with or without the "file://" - prefix), if it doesn't correspond to an existing file and the URL has no - scheme "http://" is prepended to it by default. + The parameter @a url is interpreted as follows: + - if it has a valid scheme (e.g. @c "file:", @c "http:" or @c "mailto:") + it is passed to the appropriate browser configured in the user system. + - if it has no valid scheme (e.g. it's a local file path without the @c "file:" + prefix), then ::wxFileExists and ::wxDirExists are used to test if it's a + local file/directory; if it is, then the browser is called with the + @a url parameter eventually prefixed by @c "file:". + - if it has no valid scheme and it's not a local file/directory, then @c "http:" + is prepended and the browser is called. Returns @true if the application was successfully launched. @@ -375,6 +399,8 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags = 0) may be used for local URLs while another one may be used for remote URLs). + @see wxLaunchDefaultApplication(), wxExecute() + @header{wx/utils.h} */ bool wxLaunchDefaultBrowser(const wxString& url, int flags = 0); @@ -412,6 +438,27 @@ wxString wxLoadUserResource(const wxString& resourceName, */ void wxPostDelete(wxObject* object); + +/** + Compare function type for use with wxQsort() + + @header{wx/utils.h} +*/ +extern "C" +{ +typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2, const void* user_data); +} + +/** + Function for performing a qsort operation including a user data + parameter. + + @header{wx/utils.h} +*/ +void wxQsort(void *const pbase, size_t total_elems, + size_t size, CMPFUNCDATA cmp, const void* user_data); + + /** Under X only, sets the current display name. This is the X host and display name such as "colonsay:0.0", and the function indicates which display @@ -444,7 +491,7 @@ wxString wxStripMenuCodes(const wxString& str, int flags = wxStrip_All); -/** @ingroup group_funcmacro_networkuseros */ +/** @addtogroup group_funcmacro_networkuseros */ //@{ /** @@ -534,7 +581,7 @@ wxString wxGetFullHostName(); @header{wx/utils.h} */ -wxString wxGetUserHome(const wxString& user = ""); +wxString wxGetUserHome(const wxString& user = wxEmptyString); /** This function returns the "user id" also known as "login name" under Unix @@ -602,8 +649,34 @@ bool wxGetUserName(char* buf, int sz); wxString wxGetOsDescription(); /** - Gets the version and the operating system ID for currently running OS. See - wxPlatformInfo for more details about wxOperatingSystemId. + Gets the version and the operating system ID for currently running OS. + The returned wxOperatingSystemId value can be used for a basic categorization + of the OS family; the major and minor version numbers allows to detect a specific + system. + + For Unix-like systems (@c wxOS_UNIX) the major and minor version integers will + contain the kernel major and minor version numbers (as returned by the + 'uname -r' command); e.g. "2" and "6" if the machine is using kernel 2.6.19. + + For Mac OS X systems (@c wxOS_MAC) the major and minor version integers are the + natural version numbers associated with the OS; e.g. "10" and and "6" if the machine + is using Mac OS X Snow Leopard. + + For Windows-like systems (@c wxOS_WINDOWS) the major and minor version integers will + contain the following values: + @beginTable + @row3col{Windows OS name, Major version, Minor version} + @row3col{Windows 7, 6, 1} + @row3col{Windows Server 2008 R2, 6, 1} + @row3col{Windows Server 2008, 6, 0} + @row3col{Windows Vista, 6, 0} + @row3col{Windows Server 2003 R2, 5, 2} + @row3col{Windows Server 2003, 5, 2} + @row3col{Windows XP, 5, 1} + @row3col{Windows 2000, 5, 0} + @endDefList + See the MSDN + for more info about the values above. @see wxGetOsDescription(), wxPlatformInfo @@ -637,11 +710,28 @@ bool wxIsPlatform64Bit(); */ bool wxIsPlatformLittleEndian(); +/** + Returns a structure containing informations about the currently running + Linux distribution. + + This function uses the @c lsb_release utility which is part of the + Linux Standard Base Core specification + (see http://refspecs.linux-foundation.org/lsb.shtml) since the very first LSB + release 1.0 (released in 2001). + The @c lsb_release utility is very common on modern Linux distributions but in + case it's not available, then this function will return a ::wxLinuxDistributionInfo + structure containing empty strings. + + This function is Linux-specific and is only available when the @c __LINUX__ + symbol is defined. +*/ +wxLinuxDistributionInfo wxGetLinuxDistributionInfo(); + //@} -/** @ingroup group_funcmacro_procctrl */ +/** @addtogroup group_funcmacro_procctrl */ //@{ /** @@ -710,14 +800,13 @@ bool wxIsPlatformLittleEndian(); @param callback An optional pointer to wxProcess. - @see wxShell(), wxProcess, @ref page_samples_exec + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() @header{wx/utils.h} @beginWxPerlOnly - This function is called @c Wx::ExecuteStdoutStderr and it only takes the - @a command argument, and returns a 3-element list (@c status, @c output, - @c errors), where @c output and @c errors are array references. + In wxPerl this function is called @c Wx::ExecuteCommand. @endWxPerlOnly */ long wxExecute(const wxString& command, int flags = wxEXEC_ASYNC, @@ -725,7 +814,7 @@ long wxExecute(const wxString& command, int flags = wxEXEC_ASYNC, //@} -/** @ingroup group_funcmacro_procctrl */ +/** @addtogroup group_funcmacro_procctrl */ //@{ /** This is an overloaded version of wxExecute(const wxString&,int,wxProcess*), @@ -746,7 +835,14 @@ long wxExecute(const wxString& command, int flags = wxEXEC_ASYNC, @param callback An optional pointer to wxProcess. + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() + @header{wx/utils.h} + + @beginWxPerlOnly + In wxPerl this function is called @c Wx::ExecuteArgs. + @endWxPerlOnly */ long wxExecute(char** argv, int flags = wxEXEC_ASYNC, wxProcess* callback = NULL); @@ -754,7 +850,7 @@ long wxExecute(wchar_t** argv, int flags = wxEXEC_ASYNC, wxProcess* callback = NULL); //@} -/** @ingroup group_funcmacro_procctrl */ +/** @addtogroup group_funcmacro_procctrl */ //@{ /** @@ -768,34 +864,56 @@ long wxExecute(wchar_t** argv, int flags = wxEXEC_ASYNC, @param command The command to execute and any parameters to pass to it as a single string. + @param output + The string array where the stdout of the executed process is saved. @param flags - Must include either wxEXEC_ASYNC or wxEXEC_SYNC and can also include - wxEXEC_NOHIDE, wxEXEC_MAKE_GROUP_LEADER (in either case) or + May include wxEXEC_NOHIDE, wxEXEC_MAKE_GROUP_LEADER (in either case) or wxEXEC_NODISABLE and wxEXEC_NOEVENTS or wxEXEC_BLOCK, which is equal to - their combination, in wxEXEC_SYNC case. + their combination. wxEXEC_SYNC is always implicitly added to the flags. + + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() @header{wx/utils.h} + + @beginWxPerlOnly + This function is called @c Wx::ExecuteStdout: it only takes the + @a command argument, and returns a 2-element list (@c status, @c output), + where @c output in an array reference. + @endWxPerlOnly */ -long wxExecute(const wxString& command, wxArrayString& output, - int flags = 0); +long wxExecute(const wxString& command, wxArrayString& output, int flags = 0); /** This is an overloaded version of wxExecute(const wxString&,int,wxProcess*), please see its documentation for general information. This version adds the possibility to additionally capture the messages from - standard error output in the @a errors array. + standard error output in the @a errors array. As with the above overload + capturing standard output only, execution is always synchronous. @param command The command to execute and any parameters to pass to it as a single string. + @param output + The string array where the stdout of the executed process is saved. + @param errors + The string array where the stderr of the executed process is saved. @param flags - Must include either wxEXEC_ASYNC or wxEXEC_SYNC and can also include - wxEXEC_NOHIDE, wxEXEC_MAKE_GROUP_LEADER (in either case) or + May include wxEXEC_NOHIDE, wxEXEC_MAKE_GROUP_LEADER (in either case) or wxEXEC_NODISABLE and wxEXEC_NOEVENTS or wxEXEC_BLOCK, which is equal to - their combination, in wxEXEC_SYNC case. + their combination. wxEXEC_SYNC is always implicitly added to the flags. + + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() @header{wx/utils.h} + + @beginWxPerlOnly + This function is called @c Wx::ExecuteStdoutStderr: it only takes the + @a command argument, and returns a 3-element list (@c status, @c output, + @c errors), where @c output and @c errors are array references. + @endWxPerlOnly */ long wxExecute(const wxString& command, wxArrayString& output, wxArrayString& errors, int flags = 0); @@ -810,7 +928,9 @@ unsigned long wxGetProcessId(); /** Equivalent to the Unix kill function: send the given signal @a sig to the - process with PID @a pid. The valid signal values are: + process with PID @a pid. + + The valid signal values are: @code enum wxSignal @@ -839,7 +959,7 @@ unsigned long wxGetProcessId(); @c wxSIGTERM under Windows. Returns 0 on success, -1 on failure. If the @a rc parameter is not @NULL, - it will be filled with a value of the the @c wxKillError enum: + it will be filled with a value from the @c wxKillError enum: @code enum wxKillError @@ -900,7 +1020,7 @@ bool wxShutdown(int flags = wxSHUTDOWN_POWEROFF); -/** @ingroup group_funcmacro_time */ +/** @addtogroup group_funcmacro_time */ //@{ /**