]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/controls/controls.cpp
search for X11 headers in paths under /usr/local before those under /usr (#9477)
[wxWidgets.git] / samples / controls / controls.cpp
index 6ca2a7abd43f444f468f77f96570ddf9efecb6ad..6cd37657df4a8d90f50db439f1f2ee14ea6871cd 100644 (file)
@@ -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() );
@@ -1312,10 +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().c_str()
-                : _T("none");
+    return data ? wx_static_cast(wxStringClientData *, data)->GetData()
+                : wxString("none");
 }
 
 void MyPanel::OnChoice( wxCommandEvent &event )
@@ -1333,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));
 }
@@ -1933,24 +1934,30 @@ void MyFrame::OnSize( wxSizeEvent& event )
 void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) )
 {
     // track the window which has the focus in the status bar
-    static wxWindow *s_windowFocus = (wxWindow *)NULL;
+    static wxWindow *s_windowFocus = NULL;
     wxWindow *focus = wxWindow::FindFocus();
-    if ( focus && (focus != s_windowFocus) )
+    if ( focus != s_windowFocus )
     {
         s_windowFocus = focus;
 
         wxString msg;
-        msg.Printf(
+        if ( focus )
+        {
+            msg.Printf(
+                    _T("Focus: %s")
 #ifdef __WXMSW__
-                _T("Focus: %s, HWND = %08x"),
-#else
-                _T("Focus: %s"),
+                    , _T(", HWND = %08x")
 #endif
-                s_windowFocus->GetClassInfo()->GetClassName()
+                    , s_windowFocus->GetName().c_str()
 #ifdef __WXMSW__
-                , (unsigned int) s_windowFocus->GetHWND()
+                    , (unsigned int) s_windowFocus->GetHWND()
 #endif
-                  );
+                      );
+        }
+        else
+        {
+            msg = _T("No focus");
+        }
 
 #if wxUSE_STATUSBAR
         SetStatusText(msg);