]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/spinbtn.cpp
detect and report errors in XRC specification of grid sizers
[wxWidgets.git] / samples / widgets / spinbtn.cpp
index 3f1ebdbc5f08e9b48289f7f5ee586608c9393a5d..bf396d7cb7e88c1542dd5f99e1fd094607a5c1cc 100644 (file)
@@ -127,6 +127,7 @@ protected:
 
     // the check/radio boxes for styles
     wxCheckBox *m_chkVert,
+               *m_chkArrowKeys,
                *m_chkWrap,
                *m_chkProcessEnter;
 
@@ -195,6 +196,7 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book,
                   : WidgetsPage(book, imaglist, spinbtn_xpm)
 {
     m_chkVert = NULL;
+    m_chkArrowKeys = NULL;
     m_chkWrap = NULL;
     m_chkProcessEnter = NULL;
     m_spinbtn = NULL;
@@ -219,6 +221,7 @@ void SpinBtnWidgetsPage::CreateContent()
     wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
 
     m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical"));
+    m_chkArrowKeys = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Arrow Keys"));
     m_chkWrap = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Wrap"));
     m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeft,
                                                     _T("Process &Enter"));
@@ -285,6 +288,7 @@ void SpinBtnWidgetsPage::CreateContent()
 void SpinBtnWidgetsPage::Reset()
 {
     m_chkVert->SetValue(true);
+    m_chkArrowKeys->SetValue(true);
     m_chkWrap->SetValue(false);
     m_chkProcessEnter->SetValue(false);
 }
@@ -299,6 +303,9 @@ void SpinBtnWidgetsPage::CreateSpin()
     else
         flags |= wxSP_HORIZONTAL;
 
+    if ( m_chkArrowKeys->GetValue() )
+        flags |= wxSP_ARROW_KEYS;
+
     if ( m_chkWrap->GetValue() )
         flags |= wxSP_WRAP;
 
@@ -314,19 +321,7 @@ void SpinBtnWidgetsPage::CreateSpin()
             val = valOld;
         }
 
-        m_sizerSpin->Detach( m_spinbtn );
-        m_sizerSpin->Detach( m_spinctrl );
-        m_sizerSpin->Detach( m_spinctrldbl );
-
-        // there are 4 spacers left
-        m_sizerSpin->Remove( 0 );
-        m_sizerSpin->Remove( 0 );
-        m_sizerSpin->Remove( 0 );
-        m_sizerSpin->Remove( 0 );
-
-        delete m_spinbtn;
-        delete m_spinctrl;
-        delete m_spinctrldbl;
+        m_sizerSpin->Clear(true /* delete windows */);
     }
 
     m_spinbtn = new wxSpinButton(this, SpinBtnPage_SpinBtn,