X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/598dc9b7779271df770ccbe0377a0f9e15816583..914955aaa034862c3b9b827463cde26455d06c79:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index cfcccb9c6b..faf14e9be7 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -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(