X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..5b88a837ba75928cd3835a6b97ae2bf5ad983a6e:/interface/wx/utils.h diff --git a/interface/wx/utils.h b/interface/wx/utils.h index 41ca90a8b4..534b610ea6 100644 --- a/interface/wx/utils.h +++ b/interface/wx/utils.h @@ -8,7 +8,6 @@ /** @class wxWindowDisabler - @wxheader{utils.h} This class disables all windows of the application (may be with the exception of one of them) in its constructor and enables them back in its @@ -51,7 +50,6 @@ public: /** @class wxBusyCursor - @wxheader{utils.h} This class makes it easy to tell your user that the program is temporarily busy. Just create a wxBusyCursor object on the stack, and within the @@ -80,7 +78,7 @@ public: /** Constructs a busy cursor object, calling wxBeginBusyCursor(). */ - wxBusyCursor(wxCursor* cursor = wxHOURGLASS_CURSOR); + wxBusyCursor(const wxCursor* cursor = wxHOURGLASS_CURSOR); /** Destroys the busy cursor object, calling wxEndBusyCursor(). @@ -90,93 +88,12 @@ public: -/** - @class wxMouseState - @wxheader{utils.h} - - Represents the mouse state. - - The methods of this class generally mirror the corresponding methods of - wxMouseEvent. - - This class is implemented entirely in @, meaning no extra - library needs to be linked to use this class. - - @category{misc} - - @see wxGetMouseState() - */ -class wxMouseState -{ -public: - /** - Default constructor. - */ - wxMouseState(); - - /** - Returns X coordinate of the physical mouse event position. - */ - wxCoord GetX() const; - /** - Returns Y coordinate of the physical mouse event position. - */ - wxCoord GetY() const; - /** - Returns the physical mouse position. - */ - wxPoint GetPosition() const; - - /** - Returns @true if the left mouse button changed to down. - */ - bool LeftDown() const; - /** - Returns @true if the middle mouse button changed to down. - */ - bool MiddleDown() const; - /** - Returns @true if the right mouse button changed to down. - */ - bool RightDown() const; - /** - Returns @true if the first extra button mouse button changed to down. - */ - bool Aux1Down() const; - /** - Returns @true if the second extra button mouse button changed to down. - */ - bool Aux2Down() const; - - /** - Returns @true if the control key is down. - */ - bool ControlDown() const; - /** - Returns @true if the shift key is down. - */ - bool ShiftDown() const; - /** - Returns @true if the alt key is down. - */ - bool AltDown() const; - /** - Returns @true if the meta key is down. - */ - bool MetaDown() const; - /** - Same as MetaDown() under Mac systems, ControlDown() for the others. - */ - bool CmdDown() const; -}; - - // ============================================================================ // Global functions/macros // ============================================================================ -/** @ingroup group_funcmacro_dialog */ +/** @addtogroup group_funcmacro_dialog */ //@{ /** @@ -237,7 +154,7 @@ void wxInfoMessageBox(wxWindow parent = NULL); -/** @ingroup group_funcmacro_env */ +/** @addtogroup group_funcmacro_env */ //@{ /** @@ -288,7 +205,7 @@ bool wxUnsetEnv(const wxString& var); -/** @ingroup group_funcmacro_misc */ +/** @addtogroup group_funcmacro_misc */ //@{ /** @@ -425,12 +342,39 @@ long wxNewId(); void wxRegisterId(long id); /** - Opens the @a url in user's default browser. If the @a flags parameter - contains @c wxBROWSER_NEW_WINDOW flag, a new window is opened for the URL - (currently this is only supported under Windows). 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. + Opens the @a document in the application associated with the files of this + type. + + The @a flags parameter is currently not used + + Returns @true if the application was successfully launched. + + @see wxLaunchDefaultBrowser(), wxExecute() + + @header{wx/utils.h} +*/ +bool wxLaunchDefaultApplication(const wxString& document, int flags = 0); + +/** + Opens the @a url in user's default browser. + + If the @a flags parameter contains @c wxBROWSER_NEW_WINDOW flag, a new + window is opened for the URL (currently this is only supported under + Windows). + + And unless the @a flags parameter contains @c wxBROWSER_NOBUSYCURSOR flag, + a busy cursor is shown while the browser is being launched (using + wxBusyCursor). + + 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. @@ -439,6 +383,8 @@ void wxRegisterId(long id); 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); @@ -476,6 +422,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 @@ -494,7 +461,7 @@ void wxSetDisplayName(const wxString& displayName); By default, the functions strips both the mnemonics character (@c '&') which is used to indicate a keyboard shortkey, and the accelerators, which are used only in the menu items and are separated from the main text by the - @c \t (TAB) character. By using @a flags of @c wxStrip_Mnemonics or + @c \\t (TAB) character. By using @a flags of @c wxStrip_Mnemonics or @c wxStrip_Accel to strip only the former or the latter part, respectively. Notice that in most cases wxMenuItem::GetLabelFromText() or @@ -508,7 +475,7 @@ wxString wxStripMenuCodes(const wxString& str, int flags = wxStrip_All); -/** @ingroup group_funcmacro_networkuseros */ +/** @addtogroup group_funcmacro_networkuseros */ //@{ /** @@ -598,7 +565,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 @@ -705,7 +672,7 @@ bool wxIsPlatformLittleEndian(); -/** @ingroup group_funcmacro_procctrl */ +/** @addtogroup group_funcmacro_procctrl */ //@{ /** @@ -774,7 +741,8 @@ 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} @@ -789,7 +757,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*), @@ -810,6 +778,9 @@ 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} */ long wxExecute(char** argv, int flags = wxEXEC_ASYNC, @@ -818,7 +789,7 @@ long wxExecute(wchar_t** argv, int flags = wxEXEC_ASYNC, wxProcess* callback = NULL); //@} -/** @ingroup group_funcmacro_procctrl */ +/** @addtogroup group_funcmacro_procctrl */ //@{ /** @@ -832,16 +803,20 @@ 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 wxEXEC_NODISABLE and wxEXEC_NOEVENTS or wxEXEC_BLOCK, which is equal to their combination, in wxEXEC_SYNC case. + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() + @header{wx/utils.h} */ -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*), @@ -853,12 +828,19 @@ long wxExecute(const wxString& command, wxArrayString& output, @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 wxEXEC_NODISABLE and wxEXEC_NOEVENTS or wxEXEC_BLOCK, which is equal to their combination, in wxEXEC_SYNC case. + @see wxShell(), wxProcess, @ref page_samples_exec, + wxLaunchDefaultApplication(), wxLaunchDefaultBrowser() + @header{wx/utils.h} */ long wxExecute(const wxString& command, wxArrayString& output, @@ -943,24 +925,28 @@ bool wxShell(const wxString& command = NULL); This function shuts down or reboots the computer depending on the value of the @a flags. - @note Doing this requires the corresponding access rights (superuser under - Unix, SE_SHUTDOWN privilege under Windows NT) and that this function - is only implemented under Unix and Win32. + @note Note that performing the shutdown requires the corresponding access + rights (superuser under Unix, SE_SHUTDOWN privilege under Windows NT) + and that this function is only implemented under Unix and MSW. @param flags - Either wxSHUTDOWN_POWEROFF or wxSHUTDOWN_REBOOT + One of @c wxSHUTDOWN_POWEROFF, @c wxSHUTDOWN_REBOOT or + @c wxSHUTDOWN_LOGOFF (currently implemented only for MSW) possibly + combined with @c wxSHUTDOWN_FORCE which forces shutdown under MSW by + forcefully terminating all the applications. As doing this can result + in a data loss, this flag shouldn't be used unless really necessary. @return @true on success, @false if an error occurred. @header{wx/utils.h} */ -bool wxShutdown(wxShutdownFlags flags); +bool wxShutdown(int flags = wxSHUTDOWN_POWEROFF); //@} -/** @ingroup group_funcmacro_time */ +/** @addtogroup group_funcmacro_time */ //@{ /**