X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/05718a98f995d8797bbf319b396d21dfcc31a33c..5acb9127c51a79e792f6faeea6c70f32e622ee17:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index 86824cee31..3463946de1 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -19,8 +19,10 @@ #include "wx/object.h" #include "wx/list.h" #include "wx/filefn.h" + #if wxUSE_GUI #include "wx/gdicmn.h" + #include "wx/mousestate.h" #endif class WXDLLIMPEXP_FWD_BASE wxArrayString; @@ -200,83 +202,16 @@ 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 ); - - -// wxMouseState is used to hold information about button and modifier state -// and is what is returned from wxGetMouseState. -class WXDLLEXPORT wxMouseState -{ -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) - {} - - wxCoord GetX() { return m_x; } - wxCoord GetY() { return m_y; } - - 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; } - bool AltDown() { return m_altDown; } - bool MetaDown() { return m_metaDown; } - bool CmdDown() - { -#if defined(__WXMAC__) || defined(__WXCOCOA__) - return MetaDown(); -#else - return ControlDown(); -#endif - } - - void SetX(wxCoord x) { m_x = x; } - void SetY(wxCoord y) { m_y = y; } - - 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; } - void SetAltDown(bool down) { m_altDown = down; } - void SetMetaDown(bool down) { m_metaDown = down; } - -private: - wxCoord m_x; - wxCoord m_y; - - 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; - bool m_altDown : 1; - bool m_metaDown : 1; -}; - +WXDLLIMPEXP_CORE bool wxSetDetectableAutoRepeat( bool flag ); // Returns the current state of the mouse position, buttons and modifers -WXDLLEXPORT wxMouseState wxGetMouseState(); +WXDLLIMPEXP_CORE wxMouseState wxGetMouseState(); #endif // wxUSE_GUI @@ -347,15 +282,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(wchar_t **argv, +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); -WXDLLIMPEXP_BASE long wxExecute(const wxString& command, +#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 @@ -416,12 +353,14 @@ enum wxKillFlags enum wxShutdownFlags { - wxSHUTDOWN_POWEROFF, // power off the computer - wxSHUTDOWN_REBOOT // shutdown and reboot + wxSHUTDOWN_FORCE = 1,// can be combined with other flags (MSW-only) + wxSHUTDOWN_POWEROFF = 2,// power off the computer + wxSHUTDOWN_REBOOT = 4,// shutdown and reboot + wxSHUTDOWN_LOGOFF = 8 // close session (currently MSW-only) }; // Shutdown or reboot the PC -WXDLLIMPEXP_BASE bool wxShutdown(wxShutdownFlags wFlags); +WXDLLIMPEXP_BASE bool wxShutdown(int flags = wxSHUTDOWN_POWEROFF); // send the given signal to the process (only NONE and KILL are supported under // Windows, all others mean TERM), return 0 if ok and -1 on error @@ -569,12 +508,16 @@ WXDLLIMPEXP_BASE void wxQsort(void *const pbase, size_t total_elems, // flags for wxLaunchDefaultBrowser enum { - wxBROWSER_NEW_WINDOW = 1 + wxBROWSER_NEW_WINDOW = 0x01, + wxBROWSER_NOBUSYCURSOR = 0x02 }; // Launch url in the user's default internet browser WXDLLIMPEXP_CORE bool wxLaunchDefaultBrowser(const wxString& url, int flags = 0); +// Launch document in the user's default application +WXDLLIMPEXP_CORE bool wxLaunchDefaultApplication(const wxString& path, int flags = 0); + // ---------------------------------------------------------------------------- // Menu accelerators related things // ---------------------------------------------------------------------------- @@ -593,13 +536,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 @@ -607,7 +550,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 @@ -618,45 +561,45 @@ 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, the given one) in its // ctor and enables them back in its dtor -class WXDLLEXPORT wxWindowDisabler +class WXDLLIMPEXP_CORE wxWindowDisabler { public: // this ctor conditionally disables all windows: if the argument is false, @@ -688,13 +631,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) @@ -711,13 +654,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 // ----------------------------------------------------------------------------