]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/utilsexc.cpp
using native key handling, closes #10406
[wxWidgets.git] / src / os2 / utilsexc.cpp
index 92187d9b616835a96d155b0708fc48cf86a84ba5..c50a311691f10f3c4bc540e3b5bda7ff5fc4dc97 100644 (file)
@@ -1,42 +1,40 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        utilsexec.cpp
+// Name:        src/os2/utilsexec.cpp
 // Purpose:     Various utilities
 // Author:      David Webster
 // Modified by:
 // Created:     10/17/99
 // RCS-ID:      $Id$
 // Copyright:   (c) David Webster
 // Purpose:     Various utilities
 // Author:      David Webster
 // Modified by:
 // Created:     10/17/99
 // RCS-ID:      $Id$
 // Copyright:   (c) David Webster
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
-#include "wx/setup.h"
-#include "wx/utils.h"
-#include "wx/app.h"
-#include "wx/intl.h"
+    #include "wx/utils.h"
+    #include "wx/app.h"
+    #include "wx/intl.h"
+    #include "wx/log.h"
 #endif
 
 #endif
 
-#include "wx/log.h"
-
 #include "wx/process.h"
 
 #include "wx/os2/private.h"
 
 #define PURE_32
 #ifndef __EMX__
 #include "wx/process.h"
 
 #include "wx/os2/private.h"
 
 #define PURE_32
 #ifndef __EMX__
-#include <upm.h>
-#include <netcons.h>
-#include <netbios.h>
+    #include <upm.h>
+    #ifndef __WATCOMC__
+        #include <netcons.h>
+        #include <netbios.h>
+    #endif
 #endif
 
 #include <ctype.h>
 #ifdef __EMX__
 #include <dirent.h>
 #endif
 
 #include <ctype.h>
 #ifdef __EMX__
 #include <dirent.h>
-#else
-#include <direct.h>
 #endif
 
 #include <sys/stat.h>
 #endif
 
 #include <sys/stat.h>
@@ -66,19 +64,17 @@ public:
         DosExit(EXIT_PROCESS, 0);
     }
 
         DosExit(EXIT_PROCESS, 0);
     }
 
-    HWND                            hWnd;          // window to send wxWM_PROC_TERMINATED to [not used]
-    RESULTCODES                     vResultCodes;
-    wxProcess*                      pHandler;
-    ULONG                           ulExitCode;    // the exit code of the process
-    bool                            bState;        // set to FALSE when the process finishes
+    HWND         hWnd;          // window to send wxWM_PROC_TERMINATED to [not used]
+    RESULTCODES  vResultCodes;
+    wxProcess*   pHandler;
+    ULONG        ulExitCode;    // the exit code of the process
+    bool         bState;        // set to false when the process finishes
 };
 
 };
 
-static ULONG wxExecuteThread(
-  wxExecuteData*                    pData
-)
+static ULONG wxExecuteThread(wxExecuteData* pData)
 {
 {
-    ULONG                           ulRc;
-    PID                             vPidChild;
+    ULONG ulRc;
+    PID   vPidChild;
 
 //     cout << "Executing thread: " << endl;
 
 
 //     cout << "Executing thread: " << endl;
 
@@ -90,7 +86,7 @@ static ULONG wxExecuteThread(
                          );
     if (ulRc != NO_ERROR)
     {
                          );
     if (ulRc != NO_ERROR)
     {
-        wxLogLastError("DosWaitChild");
+        wxLogLastError(wxT("DosWaitChild"));
     }
     delete pData;
     return 0;
     }
     delete pData;
     return 0;
@@ -98,12 +94,10 @@ static ULONG wxExecuteThread(
 
 // window procedure of a hidden window which is created just to receive
 // the notification message when a process exits
 
 // window procedure of a hidden window which is created just to receive
 // the notification message when a process exits
-MRESULT APIENTRY wxExecuteWindowCbk(
-  HWND                              hWnd
-, ULONG                             ulMessage
-, MPARAM                            wParam
-, MPARAM                            lParam
-)
+MRESULT APIENTRY wxExecuteWindowCbk( HWND   hWnd,
+                                     ULONG  ulMessage,
+                                     MPARAM WXUNUSED(wParam),
+                                     MPARAM lParam)
 {
     if (ulMessage == wxWM_PROC_TERMINATED)
     {
 {
     if (ulMessage == wxWM_PROC_TERMINATED)
     {
@@ -132,15 +126,11 @@ MRESULT APIENTRY wxExecuteWindowCbk(
     return 0;
 }
 
     return 0;
 }
 
-extern wxChar wxPanelClassName[];
-
-long wxExecute(
-  const wxString&                   rCommand
-, bool                              bSync
-, wxProcess*                        pHandler
-)
+long wxExecute( const wxString& rCommand,
+                int flags,
+                wxProcess* pHandler)
 {
 {
-    if (rCommand.IsEmpty())
+    if (rCommand.empty())
     {
 //         cout << "empty command in wxExecute." << endl;
         return 0;
     {
 //         cout << "empty command in wxExecute." << endl;
         return 0;
@@ -152,12 +142,10 @@ long wxExecute(
     ULONG                           ulExecFlag;
     PSZ                             zArgs = NULL;
     PSZ                             zEnvs = NULL;
     ULONG                           ulExecFlag;
     PSZ                             zArgs = NULL;
     PSZ                             zEnvs = NULL;
-    ULONG                           ulWindowId;
     APIRET                          rc;
     APIRET                          rc;
-    PFNWP                           pOldProc;
     TID                             vTID;
 
     TID                             vTID;
 
-    if (bSync)
+    if (flags & wxEXEC_SYNC)
         ulExecFlag = EXEC_SYNC;
     else
         ulExecFlag = EXEC_ASYNCRESULT;
         ulExecFlag = EXEC_SYNC;
     else
         ulExecFlag = EXEC_ASYNCRESULT;
@@ -168,7 +156,7 @@ long wxExecute(
                       ,zArgs
                       ,zEnvs
                       ,&vResultCodes
                       ,zArgs
                       ,zEnvs
                       ,&vResultCodes
-                      ,(PSZ)rCommand.c_str()
+                      ,rCommand.c_str()
                      );
     if (rc != NO_ERROR)
     {
                      );
     if (rc != NO_ERROR)
     {
@@ -181,8 +169,8 @@ long wxExecute(
 
     pData->vResultCodes = vResultCodes;
     pData->hWnd         = NULLHANDLE;
 
     pData->vResultCodes = vResultCodes;
     pData->hWnd         = NULLHANDLE;
-    pData->bState       = bSync;
-    if (bSync)
+    pData->bState       = (flags & wxEXEC_SYNC) != 0;
+    if (flags & wxEXEC_SYNC)
     {
         wxASSERT_MSG(!pHandler, wxT("wxProcess param ignored for sync execution"));
         pData->pHandler = NULL;
     {
         wxASSERT_MSG(!pHandler, wxT("wxProcess param ignored for sync execution"));
         pData->pHandler = NULL;
@@ -201,13 +189,13 @@ long wxExecute(
                           );
     if (rc != NO_ERROR)
     {
                           );
     if (rc != NO_ERROR)
     {
-        wxLogLastError("CreateThread in wxExecute");
+        wxLogLastError(wxT("CreateThread in wxExecute"));
         delete pData;
 
         // the process still started up successfully...
         return vResultCodes.codeTerminate;
     }
         delete pData;
 
         // the process still started up successfully...
         return vResultCodes.codeTerminate;
     }
-    if (!bSync)
+    if (!(flags & wxEXEC_SYNC))
     {
         // return the pid
         // warning: don't exit your app unless you actively
     {
         // return the pid
         // warning: don't exit your app unless you actively
@@ -229,7 +217,7 @@ long wxExecute(
 
 long wxExecute(
   char**                            ppArgv
 
 long wxExecute(
   char**                            ppArgv
-, bool                              bSync
+, int                               flags
 , wxProcess*                        pHandler
 )
 {
 , wxProcess*                        pHandler
 )
 {
@@ -237,41 +225,19 @@ long wxExecute(
 
     while (*ppArgv != NULL)
     {
 
     while (*ppArgv != NULL)
     {
-        sCommand << *ppArgv++ << ' ';
+        wxString                    sArg((wxChar*)(*ppArgv++));
+
+
+        sCommand << sArg.c_str() << ' ';
     }
     sCommand.RemoveLast();
     return wxExecute( sCommand
     }
     sCommand.RemoveLast();
     return wxExecute( sCommand
-                     ,bSync
+                     ,flags
                      ,pHandler
                     );
 }
 
                      ,pHandler
                     );
 }
 
-bool wxGetFullHostName(
-  wxChar*                           zBuf
-, int                               nMaxSize
-)
+bool wxGetFullHostName( wxChar* zBuf, int nMaxSize)
 {
 {
-#if wxUSE_NET_API
-    char                            zServer[256];
-    char                            zComputer[256];
-    unsigned long                   ulLevel = 0;
-    unsigned char*                  zBuffer = NULL;
-    unsigned long                   ulBuffer = 256;
-    unsigned long*                  pulTotalAvail = NULL;
-
-    NetBios32GetInfo( (const unsigned char*)zServer
-                     ,(const unsigned char*)zComputer
-                     ,ulLevel
-                     ,zBuffer
-                     ,ulBuffer
-                     ,pulTotalAvail
-                    );
-    strncpy(zBuf, zComputer, nMaxSize);
-    zBuf[nMaxSize] = _T('\0');
-#else
-    strcpy(zBuf, "noname");
-#endif
-    return *zBuf ? TRUE : FALSE;
-    return TRUE;
+    return wxGetHostName( zBuf, nMaxSize );
 }
 }
-