X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..aa78d22e2008726218d47da1f2ac5864c11b8ebb:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index fc5cf0690a..55c540bcd5 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma implementation "app.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -33,6 +29,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" @@ -54,7 +52,11 @@ #endif // -#ifndef __EMX__ +#if defined(__WATCOMC__) + +#include + +#elif !defined(__EMX__) #define select(a,b,c,d,e) bsdselect(a,b,c,d,e) extern "C" int _System bsdselect(int, @@ -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. @@ -290,7 +268,7 @@ bool wxApp::RegisterWindowClasses( wxString sError; if (!::WinRegisterClass( vHab - ,wxFrameClassName + ,(PSZ)wxFrameClassName ,wxFrameWndProc ,CS_SIZEREDRAW | CS_SYNCPAINT ,sizeof(ULONG) @@ -303,7 +281,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxFrameClassNameNoRedraw + ,(PSZ)wxFrameClassNameNoRedraw ,wxWndProc ,0 ,sizeof(ULONG) @@ -316,7 +294,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxMDIFrameClassName + ,(PSZ)wxMDIFrameClassName ,wxWndProc ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT ,sizeof(ULONG) @@ -329,7 +307,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxMDIFrameClassNameNoRedraw + ,(PSZ)wxMDIFrameClassNameNoRedraw ,wxWndProc ,0 ,sizeof(ULONG) @@ -342,7 +320,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxMDIChildFrameClassName + ,(PSZ)wxMDIChildFrameClassName ,wxWndProc ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST ,sizeof(ULONG) @@ -355,7 +333,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxMDIChildFrameClassNameNoRedraw + ,(PSZ)wxMDIChildFrameClassNameNoRedraw ,wxWndProc ,CS_HITTEST ,sizeof(ULONG) @@ -368,7 +346,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxPanelClassName + ,(PSZ)wxPanelClassName ,wxWndProc ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT ,sizeof(ULONG) @@ -381,7 +359,7 @@ bool wxApp::RegisterWindowClasses( } if (!::WinRegisterClass( vHab - ,wxCanvasClassName + ,(PSZ)wxCanvasClassName ,wxWndProc ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT ,sizeof(ULONG) @@ -393,7 +371,7 @@ bool wxApp::RegisterWindowClasses( return FALSE; } if (!::WinRegisterClass( vHab - ,wxCanvasClassNameNR + ,(PSZ)wxCanvasClassNameNR ,wxWndProc ,CS_HITTEST | CS_SYNCPAINT ,sizeof(ULONG) @@ -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) @@ -510,8 +488,8 @@ void wxApp::OnIdle( if (gbInOnIdle) return; - gbInOnIdle = TRUE; - + gbInOnIdle = true; + wxAppBase::OnIdle(rEvent); #if wxUSE_DC_CACHEING @@ -673,7 +651,7 @@ void wxApp::WakeUpIdle() // // Should never happen // - wxLogLastError("PostMessage(WM_NULL)"); + wxLogLastError(wxT("PostMessage(WM_NULL)")); } } } // end of wxWakeUpIdle @@ -683,10 +661,7 @@ HAB wxGetInstance() return vHabmain; } -void wxSetInstance( - HAB vHab -) +void wxSetInstance( HAB vHab ) { vHabmain = vHab; } -