X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed2b77fc4753ab9739e3f1e0c1fef7ad151a4940..578dc95029e761a59911b7c1bc09f59384d64ddf:/src/os2/app.cpp?ds=sidebyside diff --git a/src/os2/app.cpp b/src/os2/app.cpp index 909a3ce132..4d47ed1550 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -9,6 +9,10 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +#ifdef __GNUG__ + #pragma implementation "app.h" +#endif + // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -422,6 +426,18 @@ bool wxApp::RegisterWindowClasses( wxLogLastError(sError); return FALSE; } + if (!::WinRegisterClass( vHab + ,wxCanvasClassNameNR + ,wxWndProc + ,CS_HITTEST | CS_SYNCPAINT + ,sizeof(ULONG) + )) + { + vError = ::WinGetLastError(vHab); + sError = wxPMErrorToStr(vError); + wxLogLastError(sError); + return FALSE; + } return TRUE; } // end of wxApp::RegisterWindowClasses @@ -597,7 +613,7 @@ int wxEntry( { if (wxTheApp->OnInit()) { - nRetValue = wxTheApp->OnRun(); + wxTheApp->OnRun(); } // Normal exit wxWindow* pTopWindow = wxTheApp->GetTopWindow(); @@ -625,7 +641,7 @@ int wxEntry( printf("wxTheApp->OnExit "); fflush(stdout); #endif - wxTheApp->OnExit(); + nRetValue = wxTheApp->OnExit(); #if wxUSE_CONSOLEDEBUG printf("wxApp::CleanUp "); fflush(stdout); @@ -671,7 +687,6 @@ wxApp::wxApp() argc = 0; argv = NULL; m_nPrintMode = wxPRINT_WINDOWS; - m_exitOnFrameDelete = TRUE; m_bAuto3D = TRUE; m_hMq = 0; m_maxSocketHandles = 0; @@ -847,13 +862,13 @@ bool wxApp::ProcessIdle() void wxApp::ExitMainLoop() { - m_bKeepGoing = FALSE; -} + ::WinPostMsg(NULL, WM_QUIT, 0, 0); +} // end of wxApp::ExitMainLoop bool wxApp::Pending() { return (::WinPeekMsg(vHabmain, (PQMSG)&svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) != 0); -} +} // end of wxApp::Pending void wxApp::Dispatch() { @@ -876,21 +891,6 @@ bool wxApp::ProcessMessage( wxWindow* pWndThis = wxFindWinFromHandle((WXHWND)hWnd); wxWindow* pWnd; -#if wxUSE_TOOLTIPS - // - // We must relay WM_MOUSEMOVE events to the tooltip ctrl if we want it to - // popup the tooltip bubbles - // - if (pWndThis && (pMsg->msg == WM_MOUSEMOVE)) - { - wxToolTip* pToolTip = pWndThis->GetToolTip(); - if (pToolTip) - { - pToolTip->RelayEvent(pWxmsg); - } - } -#endif // wxUSE_TOOLTIPS - // // Pass non-system timer messages to the wxTimerProc // @@ -965,19 +965,20 @@ bool wxApp::ProcessMessage( return FALSE; } // end of wxApp::ProcessMessage +bool gbInOnIdle = FALSE; + void wxApp::OnIdle( wxIdleEvent& rEvent ) { - static bool sbInOnIdle = FALSE; // // Avoid recursion (via ProcessEvent default case) // - if (sbInOnIdle) + if (gbInOnIdle) return; - sbInOnIdle = TRUE; + gbInOnIdle = TRUE; // // If there are pending events, we must process them: pending events @@ -1019,7 +1020,7 @@ void wxApp::OnIdle( // rEvent.RequestMore(TRUE); } - sbInOnIdle = FALSE; + gbInOnIdle = FALSE; } // end of wxApp::OnIdle // Send idle event to all top-level windows