X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a830dc4832c351b0e13d444a12bcc415678e2559..43c5b6e808f083617eb42cb48e77366844f8fb5c:/src/msw/app.cpp?ds=inline diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 342045001a..50df7cdeff 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -122,7 +122,7 @@ extern void wxSetKeyboardHook(bool doIt); struct ClassRegInfo { // the base name of the class: this is used to construct the unique name in - // RegisterClassWithUniqueNames() + // wxApp::GetRegisteredClassName() wxString basename; // the name of the registered class with and without CS_[HV]REDRAW styles @@ -396,7 +396,7 @@ private: GetConsoleCommandHistory_t m_pfnGetConsoleCommandHistory; GetConsoleCommandHistoryLength_t m_pfnGetConsoleCommandHistoryLength; - DECLARE_NO_COPY_CLASS(wxConsoleStderr) + wxDECLARE_NO_COPY_CLASS(wxConsoleStderr); }; bool wxConsoleStderr::DoInit() @@ -1011,177 +1011,6 @@ int wxApp::GetShell32Version() #endif // !__WXWINCE__ -// ---------------------------------------------------------------------------- -// Yield to incoming messages -// ---------------------------------------------------------------------------- - -WX_DECLARE_OBJARRAY(MSG, wxMSGArray); - -#include -WX_DEFINE_OBJARRAY(wxMSGArray); - -static wxMSGArray g_arrMSG; - -bool wxApp::DoYield(bool onlyIfNeeded, long eventsToProcess) -{ - if ( m_isInsideYield ) - { - if ( !onlyIfNeeded ) - { - wxFAIL_MSG( wxT("wxYield called recursively" ) ); - } - - return false; - } - - // set the flag and don't forget to reset it before returning - m_isInsideYield = true; - m_eventsToProcessInsideYield = eventsToProcess; - - wxON_BLOCK_EXIT_SET(m_isInsideYield, false); - -#if wxUSE_LOG - // disable log flushing from here because a call to wxYield() shouldn't - // normally result in message boxes popping up &c - wxLog::Suspend(); - - // ensure the logs will be flashed again when we exit - wxON_BLOCK_EXIT0(wxLog::Resume); -#endif // wxUSE_LOG - - // we don't want to process WM_QUIT from here - it should be processed in - // the main event loop in order to stop it - wxEventLoopGuarantor dummyLoopIfNeeded; - MSG msg; - while ( PeekMessage(&msg, (HWND)0, 0, 0, PM_NOREMOVE) && - msg.message != WM_QUIT ) - { -#if wxUSE_THREADS - wxMutexGuiLeaveOrEnter(); -#endif // wxUSE_THREADS - - if (msg.message == WM_PAINT) - { - // WM_PAINT messages are the last ones of the queue... - break; - } - - // choose a wxEventCategory for this Windows message - wxEventCategory cat; - switch (msg.message) - { - case WM_NCMOUSEMOVE: - case WM_NCLBUTTONDOWN: - case WM_NCLBUTTONUP: - case WM_NCLBUTTONDBLCLK: - case WM_NCRBUTTONDOWN: - case WM_NCRBUTTONUP: - case WM_NCRBUTTONDBLCLK: - case WM_NCMBUTTONDOWN: - case WM_NCMBUTTONUP: - case WM_NCMBUTTONDBLCLK: - - case WM_KEYDOWN: - case WM_KEYUP: - case WM_CHAR: - case WM_DEADCHAR: - case WM_SYSKEYDOWN: - case WM_SYSKEYUP: - case WM_SYSCHAR: - case WM_SYSDEADCHAR: -#ifdef WM_UNICHAR - case WM_UNICHAR: -#endif - case WM_HOTKEY: - case WM_IME_STARTCOMPOSITION: - case WM_IME_ENDCOMPOSITION: - case WM_IME_COMPOSITION: - case WM_COMMAND: - case WM_SYSCOMMAND: - - case WM_IME_SETCONTEXT: - case WM_IME_NOTIFY: - case WM_IME_CONTROL: - case WM_IME_COMPOSITIONFULL: - case WM_IME_SELECT: - case WM_IME_CHAR: - case WM_IME_KEYDOWN: - case WM_IME_KEYUP: - - case WM_MOUSEHOVER: -#ifdef WM_NCMOUSELEAVE - case WM_NCMOUSELEAVE: -#endif - case WM_MOUSELEAVE: - - case WM_CUT: - case WM_COPY: - case WM_PASTE: - case WM_CLEAR: - case WM_UNDO: - - case WM_MOUSEMOVE: - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case WM_LBUTTONDBLCLK: - case WM_RBUTTONDOWN: - case WM_RBUTTONUP: - case WM_RBUTTONDBLCLK: - case WM_MBUTTONDOWN: - case WM_MBUTTONUP: - case WM_MBUTTONDBLCLK: - case WM_MOUSEWHEEL: - cat = wxEVT_CATEGORY_USER_INPUT; - break; - - case WM_TIMER: - cat = wxEVT_CATEGORY_TIMER; - break; - - default: - if (msg.message < WM_USER) - { - // 0;WM_USER-1 is the range of message IDs reserved for use - // by the system. - - // there are too many of these types of messages to handle - // them in this switch - cat = wxEVT_CATEGORY_UI; - } - else - cat = wxEVT_CATEGORY_UNKNOWN; - } - - // should we process this event now? - if (cat & eventsToProcess) - { - if ( !wxTheApp->Dispatch() ) - break; - } - else - { - // remove the message and store it - ::GetMessage(&msg, NULL, 0, 0); - g_arrMSG.Add(msg); - } - } - - // if there are pending events, we must process them. - ProcessPendingEvents(); - - // put back unprocessed events in the queue - DWORD id = GetCurrentThreadId(); - for (size_t i=0; i