void wxRadioBox::OnRadioButton(wxEvent& event) { int n = m_buttons.Index((wxRadioButton *)event.GetEventObject()); wxCHECK_RET( n != wxNOT_FOUND, _T("click from alien radio button") ); m_selection = n; SendRadioEvent(); }
void gwinRadioPress(GHandle gh) { GHandle gx; if (gh->vmt != (gwinVMT *)&radioVMT || (gh->flags & GRADIO_FLG_PRESSED)) return; if ((gx = gwinRadioGetActive(((GRadioObject *)gh)->group))) { gx->flags &= ~GRADIO_FLG_PRESSED; _gwinUpdate(gx); } gh->flags |= GRADIO_FLG_PRESSED; _gwinUpdate(gh); SendRadioEvent((GWidgetObject *)gh); }
bool wxRadioBox::OnKeyDown(wxKeyEvent& event) { wxDirection dir; switch ( event.GetKeyCode() ) { case WXK_UP: dir = wxUP; break; case WXK_LEFT: dir = wxLEFT; break; case WXK_DOWN: dir = wxDOWN; break; case WXK_RIGHT: dir = wxRIGHT; break; default: return false; } int selOld = GetSelection(); int selNew = GetNextItem(selOld, dir, GetWindowStyle()); if ( selNew != selOld ) { SetSelection(selNew); // emulate the button click SendRadioEvent(); } return true; }