X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fa78de8249892133e32b988ae145868a833336e3..1d63de4a455bde7bad81cb34724cb1df3219cd26:/src/msw/utils.cpp diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index f174df6fd3..5e295b5a8e 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -32,6 +32,7 @@ #endif //WX_PRECOMP #include "wx/apptrait.h" +#include "wx/dynlib.h" #include "wx/dynload.h" #include "wx/confbase.h" // for wxExpandEnvVars() @@ -39,8 +40,14 @@ #include "wx/msw/private.h" // includes #include "wx/msw/missing.h" // CHARSET_HANGUL -#if defined(__GNUWIN32_OLD__) || defined(__WXWINCE__) \ - || defined(__CYGWIN32__) +#if defined(__CYGWIN__) + //CYGWIN gives annoying warning about runtime stuff if we don't do this +# define USE_SYS_TYPES_FD_SET +# include +#endif + +// Doesn't work with Cygwin at present +#if wxUSE_SOCKETS && (defined(__GNUWIN32_OLD__) || defined(__WXWINCE__) || defined(__CYGWIN32__)) // apparently we need to include winsock.h to get WSADATA and other stuff // used in wxGetFullHostName() with the old mingw32 versions #include @@ -117,6 +124,9 @@ static const wxChar eUSERNAME[] = wxT("UserName"); bool wxGetHostName(wxChar *buf, int maxSize) { #if defined(__WXWINCE__) + // TODO-CE + wxUnusedVar(buf); + wxUnusedVar(maxSize); return false; #elif defined(__WIN32__) && !defined(__WXMICROWIN__) DWORD nSize = maxSize; @@ -144,7 +154,7 @@ bool wxGetHostName(wxChar *buf, int maxSize) // get full hostname (with domain name if possible) bool wxGetFullHostName(wxChar *buf, int maxSize) { -#if !defined( __WXMICROWIN__) && wxUSE_DYNAMIC_LOADER +#if !defined( __WXMICROWIN__) && wxUSE_DYNAMIC_LOADER && wxUSE_SOCKETS // TODO should use GetComputerNameEx() when available // we don't want to always link with Winsock DLL as we might not use it at @@ -229,6 +239,9 @@ bool wxGetFullHostName(wxChar *buf, int maxSize) bool wxGetUserId(wxChar *buf, int maxSize) { #if defined(__WXWINCE__) + // TODO-CE + wxUnusedVar(buf); + wxUnusedVar(maxSize); return false; #elif defined(__WIN32__) && !defined(__WXMICROWIN__) DWORD nSize = maxSize; @@ -269,6 +282,9 @@ bool wxGetUserId(wxChar *buf, int maxSize) bool wxGetUserName(wxChar *buf, int maxSize) { #if defined(__WXWINCE__) + // TODO-CE + wxUnusedVar(buf); + wxUnusedVar(maxSize); return false; #elif defined(USE_NET_API) CHAR szUserName[256]; @@ -349,9 +365,9 @@ error: { wxStrncpy(buf, wxT("Unknown User"), maxSize); } -#endif // Win32/16 return true; +#endif // Win32/16 } const wxChar* wxGetHomeDir(wxString *pstr) @@ -380,7 +396,7 @@ const wxChar* wxGetHomeDir(wxString *pstr) strDir = windowsPath; #endif #elif defined(__WXWINCE__) - // Nothing + strDir = wxT("\\"); #else strDir.clear(); @@ -450,19 +466,13 @@ wxChar *wxGetUserHome(const wxString& WXUNUSED(user)) return (wxChar *)wxGetHomeDir(&s_home); } -bool wxDirExists(const wxString& dir) -{ -#ifdef __WXMICROWIN__ - return wxPathExist(dir); -#elif defined(__WIN32__) - DWORD attribs = GetFileAttributes(dir); - return ((attribs != (DWORD)-1) && (attribs & FILE_ATTRIBUTE_DIRECTORY)); -#endif // Win32/__WXMICROWIN__ -} - bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) { #ifdef __WXWINCE__ + // TODO-CE + wxUnusedVar(path); + wxUnusedVar(pTotal); + wxUnusedVar(pFree); return false; #else if ( path.empty() ) @@ -575,6 +585,9 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) bool wxGetEnv(const wxString& var, wxString *value) { #ifdef __WXWINCE__ + // no environment variables under CE + wxUnusedVar(var); + wxUnusedVar(value); return false; #else // Win32 // first get the size of the buffer @@ -609,6 +622,9 @@ bool wxSetEnv(const wxString& var, const wxChar *value) return true; #else // no way to set env vars + // no environment variables under CE + wxUnusedVar(var); + wxUnusedVar(value); return false; #endif } @@ -894,7 +910,8 @@ int wxKillAllChildren(long pid, wxSignal sig, wxKillError *krc) } //Fill in the size of the structure before using it. - PROCESSENTRY32 pe = {0}; + PROCESSENTRY32 pe; + wxZeroMemory(pe); pe.dwSize = sizeof(PROCESSENTRY32); // Walk the snapshot of the processes, and for each process, @@ -949,6 +966,8 @@ bool wxShell(const wxString& command) bool wxShutdown(wxShutdownFlags wFlags) { #ifdef __WXWINCE__ + // TODO-CE + wxUnusedVar(wFlags); return false; #elif defined(__WIN32__) bool bOK = true; @@ -1005,6 +1024,18 @@ bool wxShutdown(wxShutdownFlags wFlags) #endif // Win32/16 } +wxPowerType wxGetPowerType() +{ + // TODO + return wxPOWER_UNKNOWN; +} + +wxBatteryState wxGetBatteryState() +{ + // TODO + return wxBATTERY_UNKNOWN_STATE; +} + // ---------------------------------------------------------------------------- // misc // ---------------------------------------------------------------------------- @@ -1036,6 +1067,25 @@ void wxBell() ::MessageBeep((UINT)-1); // default sound } +bool wxIsDebuggerRunning() +{ + // IsDebuggerPresent() is not available under Win95, so load it dynamically + wxDynamicLibrary dll(_T("kernel32.dll"), wxDL_VERBATIM); + + typedef BOOL (WINAPI *IsDebuggerPresent_t)(); + if ( !dll.HasSymbol(_T("IsDebuggerPresent")) ) + { + // no way to know, assume no + return false; + } + + return (*(IsDebuggerPresent_t)dll.GetSymbol(_T("IsDebuggerPresent")))() != 0; +} + +// ---------------------------------------------------------------------------- +// OS version +// ---------------------------------------------------------------------------- + wxString wxGetOsDescription() { wxString str; @@ -1156,6 +1206,11 @@ wxToolkitInfo& wxAppTraits::GetToolkitInfo() s_major = info.dwMajorVersion; s_minor = info.dwMinorVersion; +#ifdef __SMARTPHONE__ + s_ver = wxWINDOWS_SMARTPHONE; +#elif defined(__POCKETPC__) + s_ver = wxWINDOWS_POCKETPC; +#else switch ( info.dwPlatformId ) { case VER_PLATFORM_WIN32s: @@ -1172,9 +1227,9 @@ wxToolkitInfo& wxAppTraits::GetToolkitInfo() #ifdef __WXWINCE__ case VER_PLATFORM_WIN32_CE: s_ver = wxWINDOWS_CE; - break; #endif } +#endif } } @@ -1285,9 +1340,9 @@ extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding) // There don't seem to be symbolic names for // these under Windows so I just copied the // values from MSDN. - + unsigned int ret; - + switch (encoding) { case wxFONTENCODING_ISO8859_1: ret = 28591; break; @@ -1302,7 +1357,7 @@ extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding) case wxFONTENCODING_ISO8859_10: ret = 28600; break; case wxFONTENCODING_ISO8859_11: ret = 28601; break; // case wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it - case wxFONTENCODING_ISO8859_13: ret = 28603; break; + case wxFONTENCODING_ISO8859_13: ret = 28603; break; case wxFONTENCODING_ISO8859_14: ret = 28604; break; case wxFONTENCODING_ISO8859_15: ret = 28605; break; case wxFONTENCODING_KOI8: ret = 20866; break; @@ -1344,10 +1399,10 @@ extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding) case wxFONTENCODING_UTF8: ret = 65001; break; default: return -1; } - + if (::IsValidCodePage(ret) == 0) return -1; - + CPINFO info; if (::GetCPInfo(ret, &info) == 0) return -1; @@ -1361,7 +1416,7 @@ extern long wxCharsetToCodepage(const wxChar *name) if ( !name ) return -1; - wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(name, false); + wxFontEncoding enc = wxFontMapperBase::Get()->CharsetToEncoding(name, false); if ( enc == wxFONTENCODING_SYSTEM ) return -1;