X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/033bf67c3cd465dce10b7bfb5c24f62ab83e5a13..8907a7e2c0fb61ecca0b6434dd69ee42b7ee1db6:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index 77bfe8550c..95cf1a6ada 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 @@ -212,6 +217,7 @@ public: wxMouseState() : m_x(0), m_y(0), m_leftDown(false), m_middleDown(false), m_rightDown(false), + m_aux1Down(false), m_aux2Down(false), m_controlDown(false), m_shiftDown(false), m_altDown(false), m_metaDown(false) {} @@ -222,6 +228,8 @@ public: bool LeftDown() { return m_leftDown; } bool MiddleDown() { return m_middleDown; } bool RightDown() { return m_rightDown; } + bool Aux1Down() { return m_aux1Down; } + bool Aux2Down() { return m_aux2Down; } bool ControlDown() { return m_controlDown; } bool ShiftDown() { return m_shiftDown; } @@ -242,6 +250,8 @@ public: void SetLeftDown(bool down) { m_leftDown = down; } void SetMiddleDown(bool down) { m_middleDown = down; } void SetRightDown(bool down) { m_rightDown = down; } + void SetAux1Down(bool down) { m_aux1Down = down; } + void SetAux2Down(bool down) { m_aux2Down = down; } void SetControlDown(bool down) { m_controlDown = down; } void SetShiftDown(bool down) { m_shiftDown = down; } @@ -255,6 +265,8 @@ private: bool m_leftDown : 1; bool m_middleDown : 1; bool m_rightDown : 1; + bool m_aux1Down : 1; + bool m_aux2Down : 1; bool m_controlDown : 1; bool m_shiftDown : 1; @@ -478,6 +490,9 @@ wxDEPRECATED( inline bool wxSetEnv(const wxString& var, int value) ); inline bool wxSetEnv(const wxString& var, int value) { wxASSERT_MSG( value == 0, "using non-NULL integer as string?" ); + + wxUnusedVar(value); // fix unused parameter warning in release build + return wxUnsetEnv(var); } #endif // WXWIN_COMPATIBILITY_2_8 @@ -512,13 +527,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; @@ -531,6 +543,18 @@ WXDLLIMPEXP_BASE bool wxGetDiskSpace(const wxString& path, wxDiskspaceSize_t *pTotal = NULL, wxDiskspaceSize_t *pFree = NULL); + + +extern "C" +{ +typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2, const void* user_data); +} + + +WXDLLIMPEXP_BASE void wxQsort(void *const pbase, size_t total_elems, + size_t size, CMPFUNCDATA cmp, const void* user_data); + + #if wxUSE_GUI // GUI only things from now on // ---------------------------------------------------------------------------- @@ -625,16 +649,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) }; @@ -709,9 +745,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();