X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e58dab20ce995856303154a367bcca904066525c..d80f416f62c1fa60f020a785bee98ce71c749a42:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index 7bcf7d2b7d..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); @@ -667,12 +683,10 @@ wxApp::wxApp() { m_topWindow = NULL; wxTheApp = this; - m_wantDebugOutput = TRUE; argc = 0; argv = NULL; m_nPrintMode = wxPRINT_WINDOWS; - m_exitOnFrameDelete = TRUE; m_bAuto3D = TRUE; m_hMq = 0; m_maxSocketHandles = 0; @@ -770,10 +784,7 @@ bool wxApp::DoMessage() { QMSG vMsg = svSavedMessages[n]; - if ( !ProcessMessage((WXMSG *)&vMsg) ) - { - ::WinDispatchMsg(vHabmain, &vMsg); - } + DoMessage((WXMSG*)&vMsg); } svSavedMessages.Empty(); } @@ -851,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() { @@ -880,28 +891,14 @@ 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 // if (pMsg->msg == WM_TIMER && (SHORT1FROMMP(pMsg->mp1) != TID_CURSOR && SHORT1FROMMP(pMsg->mp1) != TID_FLASHWINDOW && - SHORT1FROMMP(pMsg->mp1) != TID_SCROLL + SHORT1FROMMP(pMsg->mp1) != TID_SCROLL && + SHORT1FROMMP(pMsg->mp1) != 0x0000 )) wxTimerProc(NULL, 0, (int)pMsg->mp1, 0); @@ -968,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 @@ -1022,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 @@ -1175,31 +1173,6 @@ bool wxApp::Yield(bool onlyIfNeeded) return TRUE; } // end of wxYield -wxIcon wxApp::GetStdIcon( - int nWhich -) const -{ - switch(nWhich) - { - case wxICON_INFORMATION: - return wxIcon("wxICON_INFO"); - - case wxICON_QUESTION: - return wxIcon("wxICON_QUESTION"); - - case wxICON_EXCLAMATION: - return wxIcon("wxICON_WARNING"); - - default: - wxFAIL_MSG(wxT("requested non existent standard icon")); - // still fall through - - case wxICON_HAND: - return wxIcon("wxICON_ERROR"); - } - return wxIcon("wxICON_ERROR"); -} // end of wxApp::GetStdIcon - int wxApp::AddSocketHandler(int handle, int mask, void (*callback)(void*), void * gsock) {