X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8df85a612341f176f06317d2867c502f282e7185..6342bd1ab36c1957684c00d408d09fba65d33db6:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index 5b4045dd7a..4aa19bee52 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -63,7 +63,6 @@ // --------------------------------------------------------------------------- extern wxChar* wxBuffer; -extern wxChar* wxOsVersion; extern wxList* wxWinHandleList; extern wxList WXDLLEXPORT wxPendingDelete; extern wxCursor* g_globalCursor; @@ -93,12 +92,6 @@ HICON wxDEFAULT_MDIPARENTFRAME_ICON = (HICON) NULL; HBRUSH wxDisableButtonBrush = (HBRUSH) 0; -MRESULT EXPENTRY wxWndProc( HWND - ,ULONG - ,MPARAM - ,MPARAM - ); - // =========================================================================== // implementation // =========================================================================== @@ -142,10 +135,6 @@ bool wxApp::Initialize( wxClassInfo::InitializeClasses(); -#if wxUSE_RESOURCES - wxGetResource(wxT("wxWindows"), wxT("OsVersion"), &wxOsVersion); -#endif - #if wxUSE_THREADS wxPendingEventsLocker = new wxCriticalSection; #endif @@ -195,7 +184,7 @@ bool wxApp::RegisterWindowClasses( if (!::WinRegisterClass( vHab ,wxFrameClassName ,(PFNWP)wxWndProc - ,CS_SIZEREDRAW | CS_SYNCPAINT + ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT ,sizeof(ULONG) )) { @@ -221,7 +210,7 @@ bool wxApp::RegisterWindowClasses( if (!::WinRegisterClass( vHab ,wxMDIFrameClassName ,(PFNWP)wxWndProc - ,CS_SIZEREDRAW | CS_SYNCPAINT + ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT ,0 )) { @@ -386,6 +375,10 @@ void wxApp::CleanUp() wxClassInfo::CleanUpClasses(); + // Delete Message queue + if (wxTheApp->m_hMq) + ::WinDestroyMsgQueue(wxTheApp->m_hMq); + delete wxTheApp; wxTheApp = NULL; @@ -522,6 +515,7 @@ wxApp::wxApp() m_nPrintMode = wxPRINT_WINDOWS; m_exitOnFrameDelete = TRUE; m_bAuto3D = TRUE; + m_hMq = 0; } // end of wxApp::wxApp wxApp::~wxApp() @@ -529,6 +523,7 @@ wxApp::~wxApp() // // Delete command-line args // +#if wxUSE_UNICODE int i; for (i = 0; i < argc; i++) @@ -553,8 +548,9 @@ bool wxApp::Initialized() // bool wxApp::DoMessage() { - BOOL bRc = ::WinGetMsg(vHabmain, &m_vMsg, HWND(NULL), 0, 0); + BOOL bRc = ::WinGetMsg(vHabmain, &svCurrentMsg, HWND(NULL), 0, 0); +// wxUsleep(1000); if (bRc == 0) { // got WM_QUIT @@ -623,7 +619,7 @@ bool wxApp::DoMessage() #endif // wxUSE_THREADS // Process the message - if (!ProcessMessage((WXMSG *)&svCurrentMsg) ) + if (!ProcessMessage((WXMSG *)&svCurrentMsg)) { ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg); } @@ -657,6 +653,7 @@ int wxApp::MainLoop() #endif // wxUSE_THREADS while (!Pending() && ProcessIdle()) { +// wxUsleep(10000); } DoMessage(); } @@ -701,8 +698,8 @@ bool wxApp::ProcessMessage( WXMSG* pWxmsg ) { - QMSG* vMsg = (PQMSG)pWxmsg; - HWND hWnd = vMsg->hwnd; + QMSG* pMsg = (PQMSG)pWxmsg; + HWND hWnd = pMsg->hwnd; wxWindow* pWndThis = wxFindWinFromHandle((WXHWND)hWnd); wxWindow* pWnd; @@ -711,7 +708,7 @@ bool wxApp::ProcessMessage( // We must relay WM_MOUSEMOVE events to the tooltip ctrl if we want it to // popup the tooltip bubbles // - if (pWndThis && (vMsg->msg == WM_MOUSEMOVE)) + if (pWndThis && (pMsg->msg == WM_MOUSEMOVE)) { wxToolTip* pToolTip = pWndThis->GetToolTip(); if (pToolTip) @@ -732,6 +729,18 @@ bool wxApp::ProcessMessage( pWndThis = wxFindWinFromHandle((WXHWND)hWnd); } + // + // Try translations first; find the youngest window with + // a translation table. + // +#if 0 + for (pWnd = pWndThis; pWnd; pWnd = pWnd->GetParent() ) + { + if (pMsg->msg == WM_CHAR) + if (pWnd->OS2TranslateMessage(pWxmsg)) + return TRUE; + } +#endif // // Anyone for a non-translation message? Try youngest descendants first. // @@ -884,7 +893,7 @@ void wxExit() wxLogError(_("Fatal error: exiting")); wxApp::CleanUp(); -} // end of wxExit +} // end of wxExit // // Yield to incoming messages @@ -893,7 +902,7 @@ bool wxYield() { HAB vHab = 0; QMSG vMsg; - + // // Disable log flushing from here because a call to wxYield() shouldn't // normally result in message boxes popping up &c @@ -976,13 +985,15 @@ void wxWakeUpIdle() } } // end of wxWakeUpIdle -HINSTANCE wxGetInstance() +HAB wxGetInstance() { - return wxhInstance; + return vHabmain; } -void wxSetInstance(HINSTANCE hInst) +void wxSetInstance( + HAB vHab +) { - wxhInstance = hInst; + vHabmain = vHab; }