From 99c613c5c48b1a251e8421ef93fa823c77b692df Mon Sep 17 00:00:00 2001 From: Jamie Gadd Date: Mon, 2 Jan 2006 11:03:28 +0000 Subject: [PATCH] Make radiobuttons siblings instead of children in radioboxes again and remove refresh hack. Fixes bug #1387591. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/radiobox.h | 3 --- src/msw/radiobox.cpp | 30 +++++------------------------- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h index f7b902f619..9470e308cb 100644 --- a/include/wx/msw/radiobox.h +++ b/include/wx/msw/radiobox.h @@ -138,9 +138,6 @@ protected: #ifndef __WXWINCE__ virtual WXHRGN MSWGetRegionWithoutChildren(); - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam); #endif // __WXWINCE__ diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index ceb87c924b..0fba4670c0 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -175,7 +175,7 @@ bool wxRadioBox::Create(wxWindow *parent, choices[i], styleBtn, 0, 0, 0, 0, // will be set in SetSize() - GetHwnd(), + GetHwndOf(parent), (HMENU)newId, wxGetInstance(), NULL); @@ -198,7 +198,7 @@ bool wxRadioBox::Create(wxWindow *parent, (void)::CreateWindow(_T("BUTTON"), wxEmptyString, WS_GROUP | BS_AUTORADIOBUTTON | WS_CHILD, - 0, 0, 0, 0, GetHwnd(), + 0, 0, 0, 0, GetHwndOf(parent), (HMENU)NewControlId(), wxGetInstance(), NULL); m_radioButtons->SetFont(GetFont()); @@ -509,8 +509,8 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (y == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) yy = currentY; - int y_offset = 0; - int x_offset = 0; + int y_offset = yy; + int x_offset = xx; int cx1, cy1; wxGetCharSize(m_hWnd, &cx1, &cy1, GetFont()); @@ -621,9 +621,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) // the radiobox entirely and the radiobox tooltips are always shown // (otherwise they are not when the mouse pointer is in the radiobox // part not belonging to any radiobutton) - ::MoveWindow((*m_radioButtons)[i], - x_offset, y_offset, widthBtn, maxHeight, - TRUE); + DoMoveSibling((*m_radioButtons)[i], x_offset, y_offset, widthBtn, maxHeight); // where do we put the next button? if ( m_windowStyle & wxRA_SPECIFY_ROWS ) @@ -668,24 +666,6 @@ WXHRGN wxRadioBox::MSWGetRegionWithoutChildren() return (WXHRGN)hrgn; } -WXLRESULT -wxRadioBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - // FIXME: Without this, the radiobox corrupts other controls as it moves - // in a dynamic layout. Refreshing causes flicker, but it's better than - // leaving droppings. Note that for some reason, wxStaticBox doesn't need - // this (perhaps because it has no real children?) - if ( nMsg == WM_MOVE ) - { - WXLRESULT res = wxControl::MSWWindowProc(nMsg, wParam, lParam); - wxRect rect = GetRect(); - GetParent()->Refresh(true, & rect); - return res; - } - - return wxStaticBox::MSWWindowProc(nMsg, wParam, lParam); -} - #endif // __WXWINCE__ // --------------------------------------------------------------------------- -- 2.45.2