honour wxSP_ARROW_KEYS in wxSpinCtrlGeneric and don't handle the arrows unless it's specified (closes #10565)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -127,6 +127,7 @@ protected:
|
|||||||
|
|
||||||
// the check/radio boxes for styles
|
// the check/radio boxes for styles
|
||||||
wxCheckBox *m_chkVert,
|
wxCheckBox *m_chkVert,
|
||||||
|
*m_chkArrowKeys,
|
||||||
*m_chkWrap,
|
*m_chkWrap,
|
||||||
*m_chkProcessEnter;
|
*m_chkProcessEnter;
|
||||||
|
|
||||||
@@ -195,6 +196,7 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book,
|
|||||||
: WidgetsPage(book, imaglist, spinbtn_xpm)
|
: WidgetsPage(book, imaglist, spinbtn_xpm)
|
||||||
{
|
{
|
||||||
m_chkVert = NULL;
|
m_chkVert = NULL;
|
||||||
|
m_chkArrowKeys = NULL;
|
||||||
m_chkWrap = NULL;
|
m_chkWrap = NULL;
|
||||||
m_chkProcessEnter = NULL;
|
m_chkProcessEnter = NULL;
|
||||||
m_spinbtn = NULL;
|
m_spinbtn = NULL;
|
||||||
@@ -219,6 +221,7 @@ void SpinBtnWidgetsPage::CreateContent()
|
|||||||
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
|
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
|
||||||
|
|
||||||
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical"));
|
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical"));
|
||||||
|
m_chkArrowKeys = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Arrow Keys"));
|
||||||
m_chkWrap = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Wrap"));
|
m_chkWrap = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Wrap"));
|
||||||
m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeft,
|
m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeft,
|
||||||
_T("Process &Enter"));
|
_T("Process &Enter"));
|
||||||
@@ -285,6 +288,7 @@ void SpinBtnWidgetsPage::CreateContent()
|
|||||||
void SpinBtnWidgetsPage::Reset()
|
void SpinBtnWidgetsPage::Reset()
|
||||||
{
|
{
|
||||||
m_chkVert->SetValue(true);
|
m_chkVert->SetValue(true);
|
||||||
|
m_chkArrowKeys->SetValue(true);
|
||||||
m_chkWrap->SetValue(false);
|
m_chkWrap->SetValue(false);
|
||||||
m_chkProcessEnter->SetValue(false);
|
m_chkProcessEnter->SetValue(false);
|
||||||
}
|
}
|
||||||
@@ -299,6 +303,9 @@ void SpinBtnWidgetsPage::CreateSpin()
|
|||||||
else
|
else
|
||||||
flags |= wxSP_HORIZONTAL;
|
flags |= wxSP_HORIZONTAL;
|
||||||
|
|
||||||
|
if ( m_chkArrowKeys->GetValue() )
|
||||||
|
flags |= wxSP_ARROW_KEYS;
|
||||||
|
|
||||||
if ( m_chkWrap->GetValue() )
|
if ( m_chkWrap->GetValue() )
|
||||||
flags |= wxSP_WRAP;
|
flags |= wxSP_WRAP;
|
||||||
|
|
||||||
|
@@ -369,6 +369,12 @@ void wxSpinCtrlGenericBase::OnTextEnter(wxCommandEvent& event)
|
|||||||
|
|
||||||
void wxSpinCtrlGenericBase::OnTextChar(wxKeyEvent& event)
|
void wxSpinCtrlGenericBase::OnTextChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
|
if ( !HasFlag(wxSP_ARROW_KEYS) )
|
||||||
|
{
|
||||||
|
event.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
double value = m_value;
|
double value = m_value;
|
||||||
switch ( event.GetKeyCode() )
|
switch ( event.GetKeyCode() )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user