// headers
// ---------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "radiobox.h"
#endif
IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
+/*
+ selection
+ content
+ label
+ dimension
+ item
+*/
+
// there are two possible ways to create the radio buttons: either as children
// of the radiobox or as siblings of it - allow playing with both variants for
// now, eventually we will choose the best one for our purposes
::SendMessage((HWND) m_radioButtons[m_selectedButton], BM_SETCHECK, 0, 0L);
::SendMessage((HWND)m_radioButtons[N], BM_SETCHECK, 1, 0L);
- ::SetFocus((HWND)m_radioButtons[N]);
m_selectedButton = N;
}
{
if (m_noItems > 0)
{
- if (m_selectedButton == -1)
- ::SetFocus((HWND) m_radioButtons[0]);
- else
- ::SetFocus((HWND) m_radioButtons[m_selectedButton]);
+ ::SetFocus((HWND)m_radioButtons[m_selectedButton == -1
+ ? 0
+ : m_selectedButton]);
}
}
void wxRadioBox::Command(wxCommandEvent & event)
{
SetSelection (event.m_commandInt);
+ SetFocus();
ProcessCommand (event);
}
// radiobox pointer in GWL_USERDATA for radio buttons must be updated too!
void wxRadioBox::SubclassRadioButton(WXHWND hWndBtn)
{
- // No GWL_USERDATA in Win16, so omit this subclassing.
-#ifdef __WIN32__
HWND hwndBtn = (HWND)hWndBtn;
if ( !s_wndprocRadioBtn )
::SetWindowLong(hwndBtn, GWL_WNDPROC, (long)wxRadioBtnWndProc);
::SetWindowLong(hwndBtn, GWL_USERDATA, (long)this);
-#endif // __WIN32__
}
void wxRadioBox::SendNotificationEvent()
if ( selNew != selOld )
{
radiobox->SetSelection(selNew);
+ radiobox->SetFocus();
// emulate the button click
radiobox->SendNotificationEvent();