X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2ffa221c5897a4881377fd35181a5ea18c4dc04b..f49676ee8c0ed60d99582cc0b5f23ff7a7d5b970:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 81c4be228d..1be88f6a6e 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -67,6 +67,10 @@ #include "wx/resource.h" #endif +#if wxUSE_TOOLTIPS + #include "wx/tooltip.h" +#endif // wxUSE_TOOLTIPS + // OLE is used for drag-and-drop, clipboard, OLE Automation... #ifndef wxUSE_NORLANDER_HEADERS #if defined(__GNUWIN32__) || defined(__SC__) || defined(__SALFORDC__) @@ -151,12 +155,6 @@ HBRUSH wxDisableButtonBrush = (HBRUSH) 0; LRESULT WXDLLEXPORT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM); -#if wxUSE_RICHEDIT - // the handle to richedit DLL and the version of the DLL loaded - static HINSTANCE gs_hRichEdit = (HINSTANCE)NULL; - static int gs_verRichEdit = -1; -#endif - // =========================================================================== // implementation // =========================================================================== @@ -524,11 +522,6 @@ void wxApp::CleanUp() wxSetKeyboardHook(FALSE); -#if wxUSE_RICHEDIT - if (gs_hRichEdit != (HINSTANCE) NULL) - FreeLibrary(gs_hRichEdit); -#endif - #if wxUSE_PENWINDOWS wxCleanUpPenWin(); #endif @@ -970,19 +963,24 @@ bool wxApp::ProcessMessage(WXMSG *wxmsg) { MSG *msg = (MSG *)wxmsg; HWND hWnd = msg->hwnd; - wxWindow *wndThis = wxFindWinFromHandle((WXHWND)hWnd), *wnd; + wxWindow *wndThis = wxGetWindowFromHWND((WXHWND)hWnd); - // for some composite controls (like a combobox), wndThis might be NULL - // because the subcontrol is not a wxWindow, but only the control itself - // is - try to catch this case - while ( hWnd && !wndThis ) +#if wxUSE_TOOLTIPS + // we must relay WM_MOUSEMOVE events to the tooltip ctrl if we want it to + // popup the tooltip bubbles + if ( wndThis && (msg->message == WM_MOUSEMOVE) ) { - hWnd = ::GetParent(hWnd); - wndThis = wxFindWinFromHandle((WXHWND)hWnd); + wxToolTip *tt = wndThis->GetToolTip(); + if ( tt ) + { + tt->RelayEvent(wxmsg); + } } +#endif // wxUSE_TOOLTIPS // Try translations first; find the youngest window with // a translation table. + wxWindow *wnd; for ( wnd = wndThis; wnd; wnd = wnd->GetParent() ) { if ( wnd->MSWTranslateMessage(wxmsg) ) @@ -1111,52 +1109,6 @@ void wxApp::OnQueryEndSession(wxCloseEvent& event) } } -#if wxUSE_RICHEDIT - -/* static */ -bool wxApp::InitRichEdit(int version) -{ - wxCHECK_MSG( version >= 1 && version <= 3, FALSE, - _T("incorrect richedit control version requested") ); - - if ( version <= gs_verRichEdit ) - { - // we've already got this or better - return TRUE; - } - - if ( gs_hRichEdit ) - { - ::FreeLibrary(gs_hRichEdit); - } - - // always try load riched20.dll first - like this we won't have to reload - // it later if we're first asked for RE 1 and then for RE 2 or 3 - wxString dllname = _T("riched20.dll"); - gs_hRichEdit = ::LoadLibrary(dllname); - if ( !gs_hRichEdit && (version == 1) ) - { - // fall back to RE 1 - dllname = _T("riched32.dll"); - gs_hRichEdit = ::LoadLibrary(dllname); - } - - if ( !gs_hRichEdit ) - { - wxLogSysError(_("Could not load Rich Edit DLL '%s'"), dllname.c_str()); - - gs_verRichEdit = -1; - - return FALSE; - } - - gs_verRichEdit = version; - - return TRUE; -} - -#endif // wxUSE_RICHEDIT - /* static */ int wxApp::GetComCtl32Version() { @@ -1209,7 +1161,11 @@ int wxApp::GetComCtl32Version() FARPROC theProc = ::GetProcAddress ( hModuleComCtl32, +#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x520) + "InitCommonControlsEx" +#else _T("InitCommonControlsEx") +#endif ); if ( !theProc ) @@ -1224,7 +1180,11 @@ int wxApp::GetComCtl32Version() theProc = ::GetProcAddress ( hModuleComCtl32, +#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x520) + "InitializeFlatSB" +#else _T("InitializeFlatSB") +#endif ); if ( !theProc ) { @@ -1319,6 +1279,6 @@ wxApp::GetStdIcon(int which) const // For some reason, with MSVC++ 1.5, WinMain isn't linked in properly // if in a separate file. So include it here to ensure it's linked. -#if (defined(__VISUALC__) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__)) +#if (defined(__VISUALC__) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__) && !defined(WXMAKINGDLL)) #include "main.cpp" #endif