]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utils.cpp
Avoid an assert in wxFrame::SetTitle
[wxWidgets.git] / src / msw / utils.cpp
index 7da8065ba3b4c1b7ff1c99ab6279fe40a33c0575..9d83179e0aeade6a99b3c5ef4bdf0be620614d38 100644 (file)
 static const wxChar WX_SECTION[] = wxT("wxWindows");
 static const wxChar eUSERNAME[]  = wxT("UserName");
 
-// these are only used under Win16
-#if !defined(__WIN32__) && !defined(__WXMICROWIN__)
-static const wxChar eHOSTNAME[]  = wxT("HostName");
-static const wxChar eUSERID[]    = wxT("UserId");
-#endif // !Win32
-
 // ============================================================================
 // implementation
 // ============================================================================
@@ -125,14 +119,14 @@ static const wxChar eUSERID[]    = wxT("UserId");
 bool wxGetHostName(wxChar *buf, int maxSize)
 {
 #if defined(__WXWINCE__)
-    return FALSE;
+    return false;
 #elif defined(__WIN32__) && !defined(__WXMICROWIN__)
     DWORD nSize = maxSize;
     if ( !::GetComputerName(buf, &nSize) )
     {
         wxLogLastError(wxT("GetComputerName"));
 
-        return FALSE;
+        return false;
     }
 
     return TRUE;
@@ -156,7 +150,10 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
     // TODO should use GetComputerNameEx() when available
 
     // we don't want to always link with Winsock DLL as we might not use it at
-    // all, so load it dynamically here if needed
+    // all, so load it dynamically here if needed (and don't complain if it is
+    // missing, we handle this)
+    wxLogNull noLog;
+
     wxDynamicLibrary dllWinsock(_T("ws2_32.dll"), wxDL_VERBATIM);
     if ( dllWinsock.IsLoaded() )
     {
@@ -234,8 +231,8 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
 bool wxGetUserId(wxChar *buf, int maxSize)
 {
 #if defined(__WXWINCE__)
-    return FALSE;
-#elif defined(__WIN32__) && !defined(__win32s__) && !defined(__WXMICROWIN__)
+    return false;
+#elif defined(__WIN32__) && !defined(__WXMICROWIN__)
     DWORD nSize = maxSize;
     if ( ::GetUserName(buf, &nSize) == 0 )
     {
@@ -249,7 +246,7 @@ bool wxGetUserId(wxChar *buf, int maxSize)
     }
 
     return TRUE;
-#else   // Win16 or Win32s
+#else   // __WXMICROWIN__
     wxChar *user;
     const wxChar *default_id = wxT("anonymous");
 
@@ -258,7 +255,7 @@ bool wxGetUserId(wxChar *buf, int maxSize)
     if (  (user = wxGetenv(wxT("USER"))) == NULL &&
             (user = wxGetenv(wxT("LOGNAME"))) == NULL )
     {
-        // Use wxWindows configuration data (comming soon)
+        // Use wxWidgets configuration data (comming soon)
         GetProfileString(WX_SECTION, eUSERID, default_id, buf, maxSize - 1);
     }
     else
@@ -274,11 +271,11 @@ bool wxGetUserId(wxChar *buf, int maxSize)
 bool wxGetUserName(wxChar *buf, int maxSize)
 {
 #if defined(__WXWINCE__)
-    return FALSE;
+    return false;
 #elif defined(USE_NET_API)
     CHAR szUserName[256];
     if ( !wxGetUserId(szUserName, WXSIZEOF(szUserName)) )
-        return FALSE;
+        return false;
 
     // TODO how to get the domain name?
     CHAR *szDomain = "";
@@ -343,7 +340,7 @@ error:
     return FALSE;
 #else  // !USE_NET_API
     // Could use NIS, MS-Mail or other site specific programs
-    // Use wxWindows configuration data
+    // Use wxWidgets configuration data
     bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxEmptyString, buf, maxSize - 1) != 0;
     if ( !ok )
     {
@@ -466,32 +463,16 @@ bool wxDirExists(const wxString& dir)
 #elif defined(__WIN32__)
     DWORD attribs = GetFileAttributes(dir);
     return ((attribs != (DWORD)-1) && (attribs & FILE_ATTRIBUTE_DIRECTORY));
-#else // Win16
-    #ifdef __BORLANDC__
-        struct ffblk fileInfo;
-    #else
-        struct find_t fileInfo;
-    #endif
-    // In Borland findfirst has a different argument
-    // ordering from _dos_findfirst. But _dos_findfirst
-    // _should_ be ok in both MS and Borland... why not?
-    #ifdef __BORLANDC__
-        return (findfirst(dir, &fileInfo, _A_SUBDIR) == 0 &&
-               (fileInfo.ff_attrib & _A_SUBDIR) != 0);
-    #else
-        return (_dos_findfirst(dir, _A_SUBDIR, &fileInfo) == 0) &&
-               ((fileInfo.attrib & _A_SUBDIR) != 0);
-    #endif
-#endif // Win32/16
+#endif // Win32/__WXMICROWIN__
 }
 
 bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 {
 #ifdef __WXWINCE__
-    return FALSE;
+    return false;
 #else
     if ( path.empty() )
-        return FALSE;
+        return false;
 
 // old w32api don't have ULARGE_INTEGER
 #if defined(__WIN32__) && \
@@ -601,17 +582,6 @@ bool wxGetEnv(const wxString& var, wxString *value)
 {
 #ifdef __WXWINCE__
     return FALSE;
-#elif defined(__WIN16__)
-    const wxChar* ret = wxGetenv(var);
-    if ( !ret )
-        return FALSE;
-
-    if ( value )
-    {
-        *value = ret;
-    }
-
-    return TRUE;
 #else // Win32
     // first get the size of the buffer
     DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
@@ -628,7 +598,7 @@ bool wxGetEnv(const wxString& var, wxString *value)
     }
 
     return TRUE;
-#endif // Win16/32
+#endif // WinCE/32
 }
 
 bool wxSetEnv(const wxString& var, const wxChar *value)
@@ -847,14 +817,15 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc)
 // Execute a program in an Interactive Shell
 bool wxShell(const wxString& command)
 {
+    wxString cmd;
+
 #ifdef __WXWINCE__
-    return FALSE;
+    cmd = command;
 #else
     wxChar *shell = wxGetenv(wxT("COMSPEC"));
     if ( !shell )
         shell = (wxChar*) wxT("\\COMMAND.COM");
 
-    wxString cmd;
     if ( !command )
     {
         // just the shell
@@ -865,9 +836,9 @@ bool wxShell(const wxString& command)
         // pass the command to execute to the command processor
         cmd.Printf(wxT("%s /c %s"), shell, command.c_str());
     }
+#endif
 
     return wxExecute(cmd, wxEXEC_SYNC) == 0;
-#endif
 }
 
 // Shutdown or reboot the PC
@@ -927,8 +898,6 @@ bool wxShutdown(wxShutdownFlags wFlags)
     }
 
     return bOK;
-#else // Win16
-    return FALSE;
 #endif // Win32/16
 }
 
@@ -951,11 +920,7 @@ long wxGetFreeMemory()
 
 unsigned long wxGetProcessId()
 {
-#ifdef __WIN32__
     return ::GetCurrentProcessId();
-#else
-    return 0;
-#endif
 }
 
 // Emit a beeeeeep
@@ -966,7 +931,6 @@ void wxBell()
 
 wxString wxGetOsDescription()
 {
-#ifdef __WIN32__
     wxString str;
 
     OSVERSIONINFO info;
@@ -1009,9 +973,6 @@ wxString wxGetOsDescription()
     }
 
     return str;
-#else // Win16
-    return _("Windows 3.1");
-#endif // Win32/16
 }
 
 wxToolkitInfo& wxAppTraits::GetToolkitInfo()
@@ -1070,14 +1031,19 @@ wxToolkitInfo& wxAppTraits::GetToolkitInfo()
 // sleep functions
 // ----------------------------------------------------------------------------
 
-void wxUsleep(unsigned long milliseconds)
+void wxMilliSleep(unsigned long milliseconds)
 {
     ::Sleep(milliseconds);
 }
 
+void wxMicroSleep(unsigned long microseconds)
+{
+    wxMilliSleep(microseconds/1000);
+}
+
 void wxSleep(int nSecs)
 {
-    wxUsleep(1000*nSecs);
+    wxMilliSleep(1000*nSecs);
 }
 
 // ----------------------------------------------------------------------------
@@ -1237,7 +1203,7 @@ extern long wxCharsetToCodepage(const wxChar *name)
   Creates a hidden window with supplied window proc registering the class for
   it if necesssary (i.e. the first time only). Caller is responsible for
   destroying the window and unregistering the class (note that this must be
-  done because wxWindows may be used as a DLL and so may be loaded/unloaded
+  done because wxWidgets may be used as a DLL and so may be loaded/unloaded
   multiple times into/from the same process so we cna't rely on automatic
   Windows class unregistration).