X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/162e998c2f15f8773cbb63f0cceee8cdea4c421f..7b0ccb8a603b4f97740acc65d9429bb58f7ba1bd:/include/wx/utils.h?ds=sidebyside diff --git a/include/wx/utils.h b/include/wx/utils.h index c7ea286b9d..5f1883fef3 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -200,18 +200,18 @@ inline bool wxPlatformIs(int platform) { return wxPlatform::Is(platform); } // Get the state of a key (true if pressed, false if not) // This is generally most useful getting the state of // the modifier or toggle keys. -WXDLLEXPORT bool wxGetKeyState(wxKeyCode key); +WXDLLIMPEXP_CORE bool wxGetKeyState(wxKeyCode key); // Don't synthesize KeyUp events holding down a key and producing // KeyDown events with autorepeat. On by default and always on // in wxMSW. -WXDLLEXPORT bool wxSetDetectableAutoRepeat( bool flag ); +WXDLLIMPEXP_CORE bool wxSetDetectableAutoRepeat( bool flag ); // wxMouseState is used to hold information about button and modifier state // and is what is returned from wxGetMouseState. -class WXDLLEXPORT wxMouseState +class WXDLLIMPEXP_CORE wxMouseState { public: wxMouseState() @@ -276,7 +276,7 @@ private: // Returns the current state of the mouse position, buttons and modifers -WXDLLEXPORT wxMouseState wxGetMouseState(); +WXDLLIMPEXP_CORE wxMouseState wxGetMouseState(); #endif // wxUSE_GUI @@ -347,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 @@ -588,13 +595,13 @@ enum }; // strip mnemonics and/or accelerators from the label -WXDLLEXPORT wxString +WXDLLIMPEXP_CORE wxString wxStripMenuCodes(const wxString& str, int flags = wxStrip_All); #if WXWIN_COMPATIBILITY_2_6 // obsolete and deprecated version, do not use, use the above overload instead wxDEPRECATED( - WXDLLEXPORT wxChar* wxStripMenuCodes(const wxChar *in, wxChar *out = NULL) + WXDLLIMPEXP_CORE wxChar* wxStripMenuCodes(const wxChar *in, wxChar *out = NULL) ); #if wxUSE_ACCEL @@ -602,7 +609,7 @@ class WXDLLIMPEXP_FWD_CORE wxAcceleratorEntry; // use wxAcceleratorEntry::Create() or FromString() methods instead wxDEPRECATED( - WXDLLEXPORT wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) + WXDLLIMPEXP_CORE wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) ); #endif // wxUSE_ACCEL @@ -613,52 +620,64 @@ wxDEPRECATED( // ---------------------------------------------------------------------------- // Returns menu item id or wxNOT_FOUND if none. -WXDLLEXPORT int wxFindMenuItemId(wxFrame *frame, const wxString& menuString, const wxString& itemString); +WXDLLIMPEXP_CORE 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); +WXDLLIMPEXP_CORE wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt); +WXDLLIMPEXP_CORE wxWindow* wxFindWindowAtPoint(const wxPoint& pt); // NB: this function is obsolete, use wxWindow::FindWindowByLabel() instead // // Find the window/widget with the given title or label. // Pass a parent to begin the search from, or NULL to look through // all windows. -WXDLLEXPORT wxWindow* wxFindWindowByLabel(const wxString& title, wxWindow *parent = (wxWindow *) NULL); +WXDLLIMPEXP_CORE wxWindow* wxFindWindowByLabel(const wxString& title, wxWindow *parent = (wxWindow *) NULL); // NB: this function is obsolete, use wxWindow::FindWindowByName() instead // // Find window by name, and if that fails, by label. -WXDLLEXPORT wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent = (wxWindow *) NULL); +WXDLLIMPEXP_CORE wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent = (wxWindow *) NULL); // ---------------------------------------------------------------------------- // Message/event queue helpers // ---------------------------------------------------------------------------- // Yield to other apps/messages and disable user input -WXDLLEXPORT bool wxSafeYield(wxWindow *win = NULL, bool onlyIfNeeded = false); +WXDLLIMPEXP_CORE bool wxSafeYield(wxWindow *win = NULL, bool onlyIfNeeded = false); // Enable or disable input to all top level windows -WXDLLEXPORT void wxEnableTopLevelWindows(bool enable = true); +WXDLLIMPEXP_CORE void wxEnableTopLevelWindows(bool enable = true); // Check whether this window wants to process messages, e.g. Stop button // in long calculations. -WXDLLEXPORT bool wxCheckForInterrupt(wxWindow *wnd); +WXDLLIMPEXP_CORE bool wxCheckForInterrupt(wxWindow *wnd); // Consume all events until no more left -WXDLLEXPORT void wxFlushEvents(); +WXDLLIMPEXP_CORE 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 +class WXDLLIMPEXP_CORE 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) }; @@ -671,13 +690,13 @@ private: WXDLLIMPEXP_CORE void wxBeginBusyCursor(const wxCursor *cursor = wxHOURGLASS_CURSOR); // Restore cursor to normal -WXDLLEXPORT void wxEndBusyCursor(); +WXDLLIMPEXP_CORE void wxEndBusyCursor(); // true if we're between the above two calls -WXDLLEXPORT bool wxIsBusy(); +WXDLLIMPEXP_CORE bool wxIsBusy(); // Convenience class so we can just create a wxBusyCursor object on the stack -class WXDLLEXPORT wxBusyCursor +class WXDLLIMPEXP_CORE wxBusyCursor { public: wxBusyCursor(const wxCursor* cursor = wxHOURGLASS_CURSOR) @@ -694,13 +713,13 @@ public: static const wxCursor GetBusyCursor(); }; -void WXDLLEXPORT wxGetMousePosition( int* x, int* y ); +void WXDLLIMPEXP_CORE wxGetMousePosition( int* x, int* y ); // MSW only: get user-defined resource from the .res file. // Returns NULL or newly-allocated memory, so use delete[] to clean up. #ifdef __WXMSW__ - extern WXDLLEXPORT const wxChar* wxUserResourceStr; - WXDLLEXPORT wxChar* wxLoadUserResource(const wxString& resourceName, const wxString& resourceType = wxUserResourceStr); + extern WXDLLIMPEXP_CORE const wxChar* wxUserResourceStr; + WXDLLIMPEXP_CORE wxChar* wxLoadUserResource(const wxString& resourceName, const wxString& resourceType = wxUserResourceStr); #endif // MSW // ---------------------------------------------------------------------------- @@ -733,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();