]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utils.cpp
* build and distrib tweaks.
[wxWidgets.git] / src / msw / utils.cpp
index e56792a52de548ee510ab5aa077aa139fc0ee27b..e7506b0908e67b76913445c83b42868f424726c2 100644 (file)
     #endif
 #endif
 
-// 260 was taken from windef.h
-#ifndef MAX_PATH
-    #define MAX_PATH  260
-#endif
-
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -119,17 +114,17 @@ static const wxChar eUSERNAME[]  = wxT("UserName");
 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;
+    return true;
 #else
     wxChar *sysname;
     const wxChar *default_host = wxT("noname");
@@ -139,7 +134,7 @@ bool wxGetHostName(wxChar *buf, int maxSize)
     } else
         wxStrncpy(buf, sysname, maxSize - 1);
     buf[maxSize] = wxT('\0');
-    return *buf ? TRUE : FALSE;
+    return *buf ? true : false;
 #endif
 }
 
@@ -218,7 +213,7 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
             {
                 wxStrncpy(buf, host, maxSize);
 
-                return TRUE;
+                return true;
             }
         }
     }
@@ -231,7 +226,7 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
 bool wxGetUserId(wxChar *buf, int maxSize)
 {
 #if defined(__WXWINCE__)
-    return FALSE;
+    return false;
 #elif defined(__WIN32__) && !defined(__WXMICROWIN__)
     DWORD nSize = maxSize;
     if ( ::GetUserName(buf, &nSize) == 0 )
@@ -241,11 +236,11 @@ bool wxGetUserId(wxChar *buf, int maxSize)
         if ( res == 0 )
         {
             // not found
-            return FALSE;
+            return false;
         }
     }
 
-    return TRUE;
+    return true;
 #else   // __WXMICROWIN__
     wxChar *user;
     const wxChar *default_id = wxT("anonymous");
@@ -255,7 +250,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
@@ -263,7 +258,7 @@ bool wxGetUserId(wxChar *buf, int maxSize)
         wxStrncpy(buf, user, maxSize - 1);
     }
 
-    return *buf ? TRUE : FALSE;
+    return *buf ? true : false;
 #endif
 }
 
@@ -271,11 +266,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 = "";
@@ -332,15 +327,15 @@ bool wxGetUserName(wxChar *buf, int maxSize)
     WideCharToMultiByte( CP_ACP, 0, ui2->usri2_full_name, -1,
             buf, maxSize, NULL, NULL );
 
-    return TRUE;
+    return true;
 
 error:
     wxLogError(wxT("Couldn't look up full user name."));
 
-    return FALSE;
+    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 )
     {
@@ -353,7 +348,7 @@ error:
     }
 #endif // Win32/16
 
-    return TRUE;
+    return true;
 }
 
 const wxChar* wxGetHomeDir(wxString *pstr)
@@ -434,12 +429,8 @@ const wxChar* wxGetHomeDir(wxString *pstr)
     }
     else // fall back to the program directory
     {
-        wxString strPath;
-        ::GetModuleFileName(::GetModuleHandle(NULL),
-                            wxStringBuffer(strPath, MAX_PATH), MAX_PATH);
-
-        // extract the dir name
-        wxSplitPath(strPath, &strDir, NULL, NULL);
+        // extract the directory component of the program file name
+        wxSplitPath(wxGetFullModuleName(), &strDir, NULL, NULL);
     }
 #endif  // UNIX/Win
 
@@ -469,10 +460,10 @@ bool wxDirExists(const wxString& dir)
 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__) && \
@@ -507,7 +498,7 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
         {
             wxLogLastError(_T("GetDiskFreeSpaceEx"));
 
-            return FALSE;
+            return false;
         }
 
         // ULARGE_INTEGER is a union of a 64 bit value and a struct containing
@@ -550,7 +541,7 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
         {
             wxLogLastError(_T("GetDiskFreeSpace"));
 
-            return FALSE;
+            return false;
         }
 
         wxLongLong lBytesPerCluster = lSectorsPerCluster;
@@ -569,7 +560,7 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
         }
     }
 
-    return TRUE;
+    return true;
 #endif
     // __WXWINCE__
 }
@@ -581,14 +572,14 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 bool wxGetEnv(const wxString& var, wxString *value)
 {
 #ifdef __WXWINCE__
-    return FALSE;
+    return false;
 #else // Win32
     // first get the size of the buffer
     DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0);
     if ( !dwRet )
     {
         // this means that there is no such variable
-        return FALSE;
+        return false;
     }
 
     if ( value )
@@ -597,7 +588,7 @@ bool wxGetEnv(const wxString& var, wxString *value)
                                        dwRet);
     }
 
-    return TRUE;
+    return true;
 #endif // WinCE/32
 }
 
@@ -610,12 +601,12 @@ bool wxSetEnv(const wxString& var, const wxChar *value)
     {
         wxLogLastError(_T("SetEnvironmentVariable"));
 
-        return FALSE;
+        return false;
     }
 
-    return TRUE;
+    return true;
 #else // no way to set env vars
-    return FALSE;
+    return false;
 #endif
 }
 
@@ -683,7 +674,7 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc)
         return -1;
     }
 
-    bool ok = TRUE;
+    bool ok = true;
     switch ( sig )
     {
         case wxSIGKILL:
@@ -699,7 +690,7 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc)
                     *krc = wxKILL_ERROR;
                 }
 
-                ok = FALSE;
+                ok = false;
             }
             break;
 
@@ -736,7 +727,7 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc)
                     {
                         wxLogLastError(_T("EnumWindows"));
 
-                        ok = FALSE;
+                        ok = false;
                     }
                 }
                 else // no windows for this PID
@@ -746,7 +737,7 @@ int wxKill(long pid, wxSignal sig, wxKillError *krc)
                         *krc = wxKILL_ERROR;
                     }
 
-                    ok = FALSE;
+                    ok = false;
                 }
             }
     }
@@ -817,14 +808,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
@@ -835,18 +827,18 @@ 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
 bool wxShutdown(wxShutdownFlags wFlags)
 {
 #ifdef __WXWINCE__
-    return FALSE;
+    return false;
 #elif defined(__WIN32__)
-    bool bOK = TRUE;
+    bool bOK = true;
 
     if ( wxGetOsVersion(NULL, NULL) == wxWINDOWS_NT ) // if is NT or 2K
     {
@@ -890,7 +882,7 @@ bool wxShutdown(wxShutdownFlags wFlags)
 
             default:
                 wxFAIL_MSG( _T("unknown wxShutdown() flag") );
-                return FALSE;
+                return false;
         }
 
         bOK = ::ExitWindowsEx(flags, 0) != 0;
@@ -1030,14 +1022,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);
 }
 
 // ----------------------------------------------------------------------------
@@ -1142,7 +1139,7 @@ extern long wxCharsetToCodepage(const wxChar *name)
     if ( !name )
         return -1;
 
-    wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(name, FALSE);
+    wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(name, false);
     if ( enc == wxFONTENCODING_SYSTEM )
         return -1;
 
@@ -1197,7 +1194,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).