X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/66d84d1130432bfaa3eda5e002889f197a3e26de..648af63a530abea6b3c595cb956fae324f03b550:/src/msw/utils.cpp diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 45f268a510..ece5167e97 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -29,6 +29,7 @@ #include "wx/app.h" #include "wx/intl.h" #include "wx/log.h" + #include "wx/timer.h" #endif //WX_PRECOMP #include "wx/msw/registry.h" @@ -55,8 +56,6 @@ #include #endif -#include "wx/timer.h" - #if !defined(__GNUWIN32__) && !defined(__SALFORDC__) && !defined(__WXMICROWIN__) && !defined(__WXWINCE__) #include @@ -480,8 +479,8 @@ wxChar *wxGetUserHome(const wxString& WXUNUSED(user)) } bool wxGetDiskSpace(const wxString& WXUNUSED_IN_WINCE(path), - wxLongLong *WXUNUSED_IN_WINCE(pTotal), - wxLongLong *WXUNUSED_IN_WINCE(pFree)) + wxDiskspaceSize_t *WXUNUSED_IN_WINCE(pTotal), + wxDiskspaceSize_t *WXUNUSED_IN_WINCE(pFree)) { #ifdef __WXWINCE__ // TODO-CE @@ -536,12 +535,20 @@ bool wxGetDiskSpace(const wxString& WXUNUSED_IN_WINCE(path), #endif if ( pTotal ) { - *pTotal = wxLongLong(UL(bytesTotal).HighPart, UL(bytesTotal).LowPart); +#if wxUSE_LONGLONG + *pTotal = wxDiskspaceSize_t(UL(bytesTotal).HighPart, UL(bytesTotal).LowPart); +#else + *pTotal = wxDiskspaceSize_t(UL(bytesTotal).LowPart); +#endif } if ( pFree ) { +#if wxUSE_LONGLONG *pFree = wxLongLong(UL(bytesFree).HighPart, UL(bytesFree).LowPart); +#else + *pFree = wxDiskspaceSize_t(UL(bytesFree).LowPart); +#endif } } else @@ -569,7 +576,7 @@ bool wxGetDiskSpace(const wxString& WXUNUSED_IN_WINCE(path), return false; } - wxLongLong lBytesPerCluster = lSectorsPerCluster; + wxDiskspaceSize_t lBytesPerCluster = (wxDiskspaceSize_t) lSectorsPerCluster; lBytesPerCluster *= lBytesPerSector; if ( pTotal ) @@ -996,18 +1003,6 @@ bool wxShutdown(wxShutdownFlags WXUNUSED_IN_WINCE(wFlags)) #endif // Win32/16 } -wxPowerType wxGetPowerType() -{ - // TODO - return wxPOWER_UNKNOWN; -} - -wxBatteryState wxGetBatteryState() -{ - // TODO - return wxBATTERY_UNKNOWN_STATE; -} - // ---------------------------------------------------------------------------- // misc // ---------------------------------------------------------------------------- @@ -1074,6 +1069,13 @@ wxString wxGetOsDescription() { switch ( info.dwPlatformId ) { +#ifdef VER_PLATFORM_WIN32_CE + case VER_PLATFORM_WIN32_CE: + str.Printf(_("Windows CE (%d.%d)"), + info.dwMajorVersion, + info.dwMinorVersion); + break; +#endif case VER_PLATFORM_WIN32s: str = _("Win32s on Windows 3.1"); break; @@ -1137,7 +1139,7 @@ wxString wxGetOsDescription() break; } } - if ( wxIsEmpty(str) ) + if ( str.empty() ) { str.Printf(_("Windows NT %lu.%lu (build %lu"), info.dwMajorVersion, @@ -1160,61 +1162,49 @@ wxString wxGetOsDescription() return str; } -wxToolkitInfo& wxAppTraits::GetToolkitInfo() +// taken from http://blogs.msdn.com/oldnewthing/archive/2005/02/01/364563.aspx +bool wxIsPlatform64Bit() { - // cache the version info, it's not going to change - // - // NB: this is MT-safe, we may use these static vars from different threads - // but as they always have the same value it doesn't matter - static int s_ver = -1, - s_major = -1, - s_minor = -1; - - if ( s_ver == -1 ) - { - OSVERSIONINFO info; - wxZeroMemory(info); +#if defined(_WIN64) + return true; // 64-bit programs run only on Win64 +#elif defined(_WIN32) + // 32-bit programs run on both 32-bit and 64-bit Windows + // so must sniff + BOOL f64 = FALSE; + return IsWow64Process(GetCurrentProcess(), &f64) && f64; +#else + return false; // Win64 does not support Win16 +#endif +} - s_ver = wxWINDOWS; - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - if ( ::GetVersionEx(&info) ) - { - s_major = info.dwMajorVersion; - s_minor = info.dwMinorVersion; +wxOperatingSystemId wxGetOsVersion(int *verMaj, int *verMin) +{ + OSVERSIONINFO info; + wxZeroMemory(info); -#ifdef __SMARTPHONE__ - s_ver = wxWINDOWS_SMARTPHONE; -#elif defined(__POCKETPC__) - s_ver = wxWINDOWS_POCKETPC; -#else - switch ( info.dwPlatformId ) - { - case VER_PLATFORM_WIN32s: - s_ver = wxWIN32S; - break; + info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if ( ::GetVersionEx(&info) ) + { + if (verMaj) *verMaj = info.dwMajorVersion; + if (verMin) *verMin = info.dwMinorVersion; + } - case VER_PLATFORM_WIN32_WINDOWS: - s_ver = wxWIN95; - break; +#if defined(__WXHANDHELD__) || defined( __WXWINCE__ ) + return wxOS_WINDOWS_WINCE; +#elif defined( __WXMICROWIN__ ) + return wxOS_WINDOWS_MICRO; +#else + switch ( info.dwPlatformId ) + { + case VER_PLATFORM_WIN32_NT: + return wxOS_WINDOWS_NT; - case VER_PLATFORM_WIN32_NT: - s_ver = wxWINDOWS_NT; - break; -#ifdef __WXWINCE__ - case VER_PLATFORM_WIN32_CE: - s_ver = wxWINDOWS_CE; -#endif - } -#endif - } + case VER_PLATFORM_WIN32_WINDOWS: + return wxOS_WINDOWS_9X; } - static wxToolkitInfo info; - info.versionMajor = s_major; - info.versionMinor = s_minor; - info.os = s_ver; - info.name = _T("wxBase"); - return info; + return wxOS_UNKNOWN; +#endif } wxWinVersion wxGetWinVersion()