]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/app.cpp
Use wxMBConvUTF8 when G_FILENAME_ENCODING is UTF-8, and set
[wxWidgets.git] / src / os2 / app.cpp
index cfcccb9c6b1356dca1cc69c98c5eb25d028fb0b2..faf14e9be7eb7363e3fcdb80a9b4c87562accb6c 100644 (file)
@@ -33,6 +33,8 @@
     #include "wx/dynarray.h"
     #include "wx/wxchar.h"
     #include "wx/icon.h"
+    #include "wx/stdpaths.h"
+    #include "wx/filename.h"
 #endif
 
 #include "wx/log.h"
@@ -80,7 +82,6 @@ extern "C" int _System bsdselect(int,
 // ---------------------------------------------------------------------------
 
 extern wxChar*                      wxBuffer;
-extern wxList*                      wxWinHandleList;
 extern wxList WXDLLEXPORT           wxPendingDelete;
 extern wxCursor*                    g_globalCursor;
 
@@ -115,35 +116,10 @@ struct GsocketCallbackInfo{
     void* gsock;
 };
 
-// These defines and wrapper functions are used here and in gsockpm.c
+// These defines are used here and in gsockpm.cpp
 #define wxSockReadMask  0x01
 #define wxSockWriteMask 0x02
 
-#ifdef __EMX__
-extern "C"
-int wxAppAddSocketHandler(int handle, int mask,
-                           void (*callback)(void*), void * gsock)
-{
-    return wxTheApp->AddSocketHandler(handle, mask, callback, gsock);
-}
-extern "C"
-void wxAppRemoveSocketHandler(int handle)
-{
-    wxTheApp->RemoveSocketHandler(handle);
-}
-#else
-//  Linkage mode problems using callbacks with extern C in a .cpp module
-int wxAppAddSocketHandler(int handle, int mask,
-                           void (*callback)(void*), void * gsock)
-{
-    return wxTheApp->AddSocketHandler(handle, mask, callback, gsock);
-}
-void wxAppRemoveSocketHandler(int handle)
-{
-    wxTheApp->RemoveSocketHandler(handle);
-}
-#endif
-
 void wxApp::HandleSockets()
 {
     bool pendingEvent = FALSE;
@@ -244,7 +220,9 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     // OS2 has to have an anchorblock
     //
     vHabmain = WinInitialize(0);
-
+    wxFileName GetPrefix(argv[0]);
+    GetPrefix.MakeAbsolute();
+    wxStandardPaths::SetInstallPrefix(GetPrefix.GetPath());
     if (!vHabmain)
     {
         // TODO: at least give some error message here...
@@ -261,7 +239,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     //    wxRedirectIOToConsole();
 #endif
 
-    wxWinHandleList = new wxList(wxKEY_INTEGER);
+    wxWinHandleHash = new wxWinHashTable(wxKEY_INTEGER, 100);
 
     // This is to foil optimizations in Visual C++ that throw out dummy.obj.
     // PLEASE DO NOT ALTER THIS.
@@ -298,7 +276,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -311,7 +289,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -324,7 +302,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -337,7 +315,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -350,7 +328,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -363,7 +341,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -376,7 +354,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
 
@@ -389,7 +367,7 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
     if (!::WinRegisterClass( vHab
@@ -401,14 +379,14 @@ bool wxApp::RegisterWindowClasses(
     {
         vError = ::WinGetLastError(vHab);
         sError = wxPMErrorToStr(vError);
-        wxLogLastError(sError);
+        wxLogLastError(sError.c_str());
         return FALSE;
     }
     return TRUE;
 } // end of wxApp::RegisterWindowClasses
 
 //
-// Cleans up any wxWindows internal structures left lying around
+// Cleans up any wxWidgets internal structures left lying around
 //
 void wxApp::CleanUp()
 {
@@ -440,8 +418,8 @@ void wxApp::CleanUp()
 // TODO:        ::DeleteObject( wxDisableButtonBrush );
     }
 
-    if (wxWinHandleList)
-        delete wxWinHandleList;
+    delete wxWinHandleHash;
+    wxWinHandleHash = NULL;
 
     // Delete Message queue
     if (wxTheApp->m_hMq)
@@ -497,14 +475,6 @@ wxApp::~wxApp()
 #endif
 } // end of wxApp::~wxApp
 
-bool wxApp::Initialized()
-{
-    if (GetTopWindow())
-        return TRUE;
-    else
-        return FALSE;
-} // end of wxApp::Initialized
-
 bool                                gbInOnIdle = FALSE;
 
 void wxApp::OnIdle(