@beginStyleTable
@style{wxSP_ARROW_KEYS}
- The user can use arrow keys to change the value.
+ The user can use arrow keys to change the value.
@style{wxSP_WRAP}
- The value wraps at the minimum and maximum.
+ The value wraps at the minimum and maximum.
+ @style{wxTE_PROCESS_ENTER}
+ Indicates that the control should generate wxEVT_COMMAND_TEXT_ENTER
+ events. Using this style will prevent the user from using the Enter key
+ for dialog navigation (e.g. activating the default button in the
+ dialog) under MSW.
@endStyleTable
@library{wxcore}
// the check/radio boxes for styles
wxCheckBox *m_chkVert,
- *m_chkWrap;
+ *m_chkWrap,
+ *m_chkProcessEnter;
// the spinbtn and the spinctrl and the sizer containing them
wxSpinButton *m_spinbtn;
{
m_chkVert = NULL;
m_chkWrap = NULL;
+ m_chkProcessEnter = NULL;
m_spinbtn = NULL;
m_spinctrl = NULL;
m_spinctrldbl = NULL;
m_textMin = NULL;
m_textMax = NULL;
- // init everything
m_min = 0;
m_max = 10;
- m_chkVert =
- m_chkWrap = (wxCheckBox *)NULL;
-
- m_spinbtn = (wxSpinButton *)NULL;
- m_sizerSpin = (wxSizer *)NULL;
+ m_sizerSpin = NULL;
}
void SpinBtnWidgetsPage::CreateContent()
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical"));
m_chkWrap = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Wrap"));
+ m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeft,
+ _T("Process &Enter"));
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
{
m_chkVert->SetValue(true);
m_chkWrap->SetValue(false);
+ m_chkProcessEnter->SetValue(false);
}
void SpinBtnWidgetsPage::CreateSpin()
if ( m_chkWrap->GetValue() )
flags |= wxSP_WRAP;
+ if ( m_chkProcessEnter->GetValue() )
+ flags |= wxTE_PROCESS_ENTER;
+
int val = m_min;
if ( m_spinbtn )
{
void SpinBtnWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
{
- event.Enable( !m_chkVert->GetValue() || m_chkWrap->GetValue() );
+ event.Enable( !m_chkVert->GetValue() ||
+ m_chkWrap->GetValue() ||
+ m_chkProcessEnter->GetValue() );
}
void SpinBtnWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
break;
case WM_GETDLGCODE:
- // we want to get WXK_RETURN in order to generate the event for it
- return DLGC_WANTALLKEYS;
+ if ( spin->HasFlag(wxTE_PROCESS_ENTER) )
+ {
+ long dlgCode = ::CallWindowProc
+ (
+ CASTWNDPROC spin->GetBuddyWndProc(),
+ hwnd,
+ message,
+ wParam,
+ lParam
+ );
+ dlgCode |= DLGC_WANTMESSAGE;
+ return dlgCode;
+ }
+ break;
}
return ::CallWindowProc(CASTWNDPROC spin->GetBuddyWndProc(),