X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b9e52a19e67d5bfeffcfefabf1c36f14fa34c343..054fdb68eba84ff55658116e41aa503990ec3ea9:/src/msw/window.cpp?ds=sidebyside diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 44af1d50be..6bb0616f0b 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -409,7 +409,7 @@ wxWindow *wxWindowMSW::FindItemByHWND(WXHWND hWnd, bool controlOnly) const if ( !controlOnly #if wxUSE_CONTROLS - || parent->IsKindOf(CLASSINFO(wxControl)) + || wxDynamicCast(parent, wxControl) #endif // wxUSE_CONTROLS ) { @@ -670,6 +670,7 @@ wxWindowMSW::MSWShowWithEffect(bool show, wxShowEffect effect, unsigned timeout) { +#if wxUSE_DYNLIB_CLASS if ( effect == wxSHOW_EFFECT_NONE ) return Show(show); @@ -766,6 +767,9 @@ wxWindowMSW::MSWShowWithEffect(bool show, } return true; +#else // wxUSE_DYNLIB_CLASS + return Show(show); +#endif } // Raise the window to the top of the Z order @@ -2174,7 +2178,7 @@ void wxWindowMSW::DoGetTextExtent(const wxString& string, SIZE sizeRect; TEXTMETRIC tm; - ::GetTextExtentPoint32(hdc, string.wx_str(), string.length(), &sizeRect); + ::GetTextExtentPoint32(hdc, string.t_str(), string.length(), &sizeRect); GetTextMetrics(hdc, &tm); if ( x ) @@ -3761,8 +3765,8 @@ bool wxWindowMSW::MSWCreate(const wxChar *wclass, m_hWnd = (WXHWND)::CreateWindowEx ( extendedStyle, - className.wx_str(), - title ? title : m_windowName.wx_str(), + className.t_str(), + title ? title : m_windowName.t_str(), style, x, y, w, h, (HWND)MSWGetParent(), @@ -3882,7 +3886,7 @@ bool wxWindowMSW::HandleTooltipNotify(WXUINT code, ( CP_ACP, 0, // no flags - ttip.wx_str(), + ttip.t_str(), tipLength, buf, WXSIZEOF(buf) - 1 @@ -4843,6 +4847,16 @@ void wxWindowMSW::OnPaint(wxPaintEvent& event) bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc) { + if ( IsBeingDeleted() ) + { + // We can get WM_ERASEBKGND after starting the destruction of our top + // level parent. Handling it in this case is unnecessary and can be + // actually harmful as e.g. wxStaticBox::GetClientSize() doesn't work + // without a valid TLW parent (because it uses dialog units internally + // which use the dialog font), so just don't do anything then. + return false; + } + switch ( GetBackgroundStyle() ) { case wxBG_STYLE_ERASE: @@ -5668,21 +5682,6 @@ MSWInitAnyKeyEvent(wxKeyEvent& event, #ifndef __WXWINCE__ event.SetTimestamp(::GetMessageTime()); #endif - - // Event coordinates must be in window client coordinates system which - // doesn't make sense if there is no window. - // - // We could use screen coordinates for such events but this would make the - // logic of the event handlers more complicated: you'd need to test for the - // event object and interpret the coordinates differently according to - // whether it's NULL or not so unless somebody really asks for this let's - // just avoid the issue. - if ( win ) - { - const wxPoint mousePos = win->ScreenToClient(wxGetMousePosition()); - event.m_x = mousePos.x; - event.m_y = mousePos.y; - } } } // anonymous namespace @@ -5826,7 +5825,7 @@ int wxWindowMSW::HandleMenuChar(int WXUNUSED_IN_WINCE(chAccel), wxMenuItem *item = (wxMenuItem*)mii.dwItemData; const wxString label(item->GetItemLabel()); - const wxChar *p = wxStrchr(label.wx_str(), wxT('&')); + const wxChar *p = wxStrchr(label.t_str(), wxT('&')); while ( p++ ) { if ( *p == wxT('&') ) @@ -7386,7 +7385,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxIdleWakeUpModule, wxModule) #if wxUSE_STATBOX static void wxAdjustZOrder(wxWindow* parent) { - if (parent->IsKindOf(CLASSINFO(wxStaticBox))) + if (wxDynamicCast(parent, wxStaticBox)) { // Set the z-order correctly SetWindowPos((HWND) parent->GetHWND(), HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);