]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/controls/controls.cpp
fix sizing of extra control
[wxWidgets.git] / samples / controls / controls.cpp
index 2ab570ed62eef23d3ab9317718ce054b94f6dc87..1902bdf531d1f24a4db19e8aa39b2fdfe6c4ae6b 100644 (file)
@@ -644,8 +644,8 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     wxString choices[] =
     {
         _T("This"),
-        _T("is one of my"),
-        _T("really"),
+        _T("is"),
+        _T("one of my long and"),
         _T("wonderful"),
         _T("examples.")
     };
@@ -736,10 +736,10 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     wxPanel *panel = new wxPanel(m_book);
     m_listbox = new wxListBox( panel, ID_LISTBOX,
                                wxPoint(10,10), wxSize(120,70),
-                               5, choices, wxLB_MULTIPLE |wxLB_ALWAYS_SB );
+                               5, choices, wxLB_MULTIPLE | wxLB_ALWAYS_SB | wxHSCROLL );
     m_listboxSorted = new wxListBox( panel, ID_LISTBOX_SORTED,
                                      wxPoint(10,90), wxSize(120,70),
-                                     5, choices, wxLB_SORT );
+                                     3, choices, wxLB_SORT );
 
     SetListboxClientData(wxT("listbox"), m_listbox);
     SetListboxClientData(wxT("listbox"), m_listboxSorted);
@@ -934,7 +934,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     s << initialSpinValue;
     m_spintext = new wxTextCtrl( panel, wxID_ANY, s, wxPoint(20,160), wxSize(80,wxDefaultCoord) );
 #if wxUSE_SPINBTN
-    m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,160) );
+    m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,160), wxSize(-1, m_spintext->GetSize().y) );
     m_spinbutton->SetRange(-40,30);
     m_spinbutton->SetValue(initialSpinValue);
 
@@ -1015,7 +1015,6 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
 
     // sizer
     panel = new wxPanel(m_book);
-    panel->SetAutoLayout( true );
 
     wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL );
 
@@ -1192,22 +1191,24 @@ void MyPanel::OnChangeColour(wxCommandEvent& WXUNUSED(event))
 
 void MyPanel::OnListBox( wxCommandEvent &event )
 {
-    if (event.GetInt() == -1)
-    {
-        m_text->AppendText( _T("ListBox has no selections anymore\n") );
-        return;
-    }
-
     wxListBox *listbox = event.GetId() == ID_LISTBOX ? m_listbox
                                                      : m_listboxSorted;
 
+    bool deselect = false;
+    if (listbox->HasFlag(wxLB_MULTIPLE) || listbox->HasFlag(wxLB_EXTENDED))
+    {
+        deselect = !event.IsSelection();
+        if (deselect)
+            m_text->AppendText( _T("ListBox deselection event\n") );
+    }
+
     m_text->AppendText( _T("ListBox event selection string is: '") );
     m_text->AppendText( event.GetString() );
     m_text->AppendText( _T("'\n") );
 
     // can't use GetStringSelection() with multiple selections, there could be
     // more than one of them
-    if ( !listbox->HasFlag(wxLB_MULTIPLE) )
+    if ( !listbox->HasFlag(wxLB_MULTIPLE) && !listbox->HasFlag(wxLB_EXTENDED) )
     {
         m_text->AppendText( _T("ListBox control selection string is: '") );
         m_text->AppendText( listbox->GetStringSelection() );
@@ -1285,8 +1286,8 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
             }
         case ID_LISTBOX_APPEND:
             {
-                m_listbox->Append( _T("Hi!") );
-                m_listboxSorted->Append( _T("Hi!") );
+                m_listbox->Append( _T("Hi kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk!") );
+                m_listboxSorted->Append( _T("Hi hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!") );
                 break;
             }
         case ID_LISTBOX_DELETE:
@@ -1312,11 +1313,10 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
 
 #if wxUSE_CHOICE
 
-static const wxChar *GetDataString(wxClientData *data)
+static wxString GetDataString(wxClientData *data)
 {
-    return (
-      data ? wx_static_cast(wxStringClientData *, data)->GetData() : wxString("none")
-    ).c_str();
+    return data ? wx_static_cast(wxStringClientData *, data)->GetData()
+                : wxString("none");
 }
 
 void MyPanel::OnChoice( wxCommandEvent &event )
@@ -1334,8 +1334,8 @@ void MyPanel::OnChoice( wxCommandEvent &event )
                  _T("data \"%s\"/\"%s\""),
                  (int)event.GetInt(),
                  sel,
-                 event.GetString().c_str(),
-                 choice->GetStringSelection().c_str(),
+                 event.GetString(),
+                 choice->GetStringSelection(),
                  GetDataString(dataEvt),
                  GetDataString(dataCtrl));
 }
@@ -1912,8 +1912,8 @@ void MyFrame::OnMove( wxMoveEvent& event )
 
 void MyFrame::OnIconized( wxIconizeEvent& event )
 {
-    wxLogMessage(_T("Frame %s"), event.Iconized() ? _T("iconized")
-                                                  : _T("restored"));
+    wxLogMessage(_T("Frame %s"), event.IsIconized() ? _T("iconized")
+                                                    : _T("restored"));
     event.Skip();
 }