X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ddf605745499096bfe21c1103ef9d33e1d9ea3f8..2c17722ec8a15d93ef9ec4a4ff390a0db9a34d9d:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index 1141a3004e..ea2630239c 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -30,6 +30,9 @@ class WXDLLIMPEXP_BASE wxArrayInt; // wxLongLong #include "wx/longlong.h" +// need for wxOperatingSystemId +#include "wx/platinfo.h" + #ifdef __WATCOMC__ #include #elif defined(__X__) @@ -69,11 +72,6 @@ class WXDLLIMPEXP_CORE wxWindowList; // String functions (deprecated, use wxString) // ---------------------------------------------------------------------------- -// Make a copy of this string using 'new' -#if WXWIN_COMPATIBILITY_2_4 -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* copystring(const wxChar *s) ); -#endif - // A shorter way of using strcmp #define wxStringEq(s1, s2) (s1 && s2 && (wxStrcmp(s1, s2) == 0)) @@ -93,8 +91,14 @@ WXDLLIMPEXP_BASE void wxBell(); WXDLLIMPEXP_BASE wxString wxGetOsDescription(); // Get OS version -WXDLLIMPEXP_BASE int wxGetOsVersion(int *majorVsn = (int *) NULL, - int *minorVsn = (int *) NULL); +WXDLLIMPEXP_BASE wxOperatingSystemId wxGetOsVersion(int *majorVsn = (int *) NULL, + int *minorVsn = (int *) NULL); + +// Get platform endianness +WXDLLIMPEXP_BASE bool wxIsPlatformLittleEndian(); + +// Get platform architecture +WXDLLIMPEXP_BASE bool wxIsPlatform64Bit(); // Return a string with the current date/time WXDLLIMPEXP_BASE wxString wxNow(); @@ -167,8 +171,7 @@ public: operator int() const { return (int) GetInteger(); } operator long() const { return GetInteger(); } operator double() const { return GetDouble(); } - operator const wxString() const { return GetString(); } - operator const wxChar*() const { return (const wxChar*) GetString(); } + operator const wxString&() const { return GetString(); } static void AddPlatform(int platform); static bool Is(int platform); @@ -263,43 +266,25 @@ private: // Returns the current state of the mouse position, buttons and modifers WXDLLEXPORT wxMouseState wxGetMouseState(); +#endif // wxUSE_GUI // ---------------------------------------------------------------------------- // Window ID management // ---------------------------------------------------------------------------- -// Generate a unique ID -WXDLLEXPORT long wxNewId(); - // Ensure subsequent IDs don't clash with this one -WXDLLEXPORT void wxRegisterId(long id); +WXDLLIMPEXP_BASE void wxRegisterId(long id); // Return the current ID -WXDLLEXPORT long wxGetCurrentId(); +WXDLLIMPEXP_BASE long wxGetCurrentId(); -#endif // wxUSE_GUI +// Generate a unique ID +WXDLLIMPEXP_BASE long wxNewId(); // ---------------------------------------------------------------------------- // Various conversions // ---------------------------------------------------------------------------- -// these functions are deprecated, use wxString methods instead! -#if WXWIN_COMPATIBILITY_2_4 - -extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxFloatToStringStr; -extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxDoubleToStringStr; - -wxDEPRECATED( WXDLLIMPEXP_BASE void StringToFloat(const wxChar *s, float *number) ); -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* FloatToString(float number, const wxChar *fmt = wxFloatToStringStr) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void StringToDouble(const wxChar *s, double *number) ); -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* DoubleToString(double number, const wxChar *fmt = wxDoubleToStringStr) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void StringToInt(const wxChar *s, int *number) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void StringToLong(const wxChar *s, long *number) ); -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* IntToString(int number) ); -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* LongToString(long number) ); - -#endif // WXWIN_COMPATIBILITY_2_4 - // Convert 2-digit hex number to decimal WXDLLIMPEXP_BASE int wxHexToDec(const wxString& buf); @@ -333,7 +318,15 @@ enum // by default synchronous execution disables all program windows to avoid // that the user interacts with the program while the child process is // running, you can use this flag to prevent this from happening - wxEXEC_NODISABLE = 8 + wxEXEC_NODISABLE = 8, + + // by default, the event loop is run while waiting for synchronous execution + // to complete and this flag can be used to simply block the main process + // until the child process finishes + wxEXEC_NOEVENTS = 16, + + // convenient synonym for flags given system()-like behaviour + wxEXEC_BLOCK = wxEXEC_SYNC | wxEXEC_NOEVENTS }; // Execute another program. @@ -509,7 +502,7 @@ 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 +#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); @@ -532,14 +525,40 @@ WXDLLIMPEXP_BASE bool wxGetDiskSpace(const wxString& path, // Menu accelerators related things // ---------------------------------------------------------------------------- -WXDLLEXPORT wxChar* wxStripMenuCodes(const wxChar *in, wxChar *out = (wxChar *) NULL); -WXDLLEXPORT wxString wxStripMenuCodes(const wxString& str); +// flags for wxStripMenuCodes +enum +{ + // strip '&' characters + wxStrip_Mnemonics = 1, + + // strip everything after '\t' + wxStrip_Accel = 2, + + // strip everything (this is the default) + wxStrip_All = wxStrip_Mnemonics | wxStrip_Accel +}; + +// strip mnemonics and/or accelerators from the label +WXDLLEXPORT 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) +); #if wxUSE_ACCEL class WXDLLEXPORT wxAcceleratorEntry; -WXDLLEXPORT wxAcceleratorEntry *wxGetAccelFromString(const wxString& label); + +// use wxAcceleratorEntry::Create() or FromString() methods instead +wxDEPRECATED( + WXDLLEXPORT wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) +); #endif // wxUSE_ACCEL +#endif // WXWIN_COMPATIBILITY_2_6 + // ---------------------------------------------------------------------------- // Window search // ---------------------------------------------------------------------------- @@ -626,23 +645,6 @@ public: static const wxCursor GetBusyCursor(); }; - -// ---------------------------------------------------------------------------- -// Reading and writing resources (eg WIN.INI, .Xdefaults) -// ---------------------------------------------------------------------------- - -#if wxUSE_RESOURCES -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file = wxEmptyString); - -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file = wxEmptyString); -#endif // wxUSE_RESOURCES - void WXDLLEXPORT wxGetMousePosition( int* x, int* y ); // MSW only: get user-defined resource from the .res file. @@ -653,9 +655,11 @@ void WXDLLEXPORT wxGetMousePosition( int* x, int* y ); #endif // MSW // ---------------------------------------------------------------------------- -// Display and colorss (X only) +// X11 Display access // ---------------------------------------------------------------------------- +#if defined(__X__) || defined(__WXGTK__) + #ifdef __WXGTK__ void *wxGetDisplay(); #endif @@ -666,18 +670,13 @@ void WXDLLEXPORT wxGetMousePosition( int* x, int* y ); WXDLLIMPEXP_CORE wxString wxGetDisplayName(); #endif // X or GTK+ -#ifdef __X__ - -#ifdef __VMS__ // Xlib.h for VMS is not (yet) compatible with C++ - // The resulting warnings are switched off here -#pragma message disable nosimpint -#endif -// #include -#ifdef __VMS__ -#pragma message enable nosimpint -#endif +// use this function instead of the functions above in implementation code +inline struct _XDisplay *wxGetX11Display() +{ + return (_XDisplay *)wxGetDisplay(); +} -#endif //__X__ +#endif // X11 || wxGTK #endif // wxUSE_GUI