]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/listbox.cpp
Up-ported wxBusyCursor fix and wxCombBov default dialog
[wxWidgets.git] / src / gtk1 / listbox.cpp
index 3ad658a264728b802fb6be6b53d16db8674eea2e..e3edea4f3d15345290eec76d349cbc8e80a41d6b 100644 (file)
@@ -243,7 +243,9 @@ static void gtk_listitem_deselect_callback( GtkWidget *widget, wxListBox *listbo
     gtk_listitem_select_cb( widget, listbox, FALSE );
 }
 
-static void gtk_listitem_select_cb( GtkWidget *widget, wxListBox *listbox, bool is_selection )
+static void gtk_listitem_select_cb( GtkWidget *widget,
+                                    wxListBox *listbox,
+                                    bool is_selection )
 {
     if (g_isIdle) wxapp_install_idle_handler();
 
@@ -255,9 +257,8 @@ static void gtk_listitem_select_cb( GtkWidget *widget, wxListBox *listbox, bool
     wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() );
     event.SetEventObject( listbox );
 
-//    MSW doesn't do that either
-//    event.SetExtraLong( (long) is_selection );
-
+    // indicate whether this is a selection or a deselection
+    event.SetExtraLong( is_selection );
 
     if ((listbox->GetWindowStyleFlag() & wxLB_SINGLE) != 0)
     {
@@ -447,7 +448,7 @@ void wxListBox::DoInsertItems(const wxArrayString& items, int pos)
             if (index != GetCount())
             {
                 GtkAddItem( items[n], index );
-                wxNode *node = m_clientList.Nth( index );
+                wxNode *node = m_clientList.Item( index );
                 m_clientList.Insert( node, (wxObject*) NULL );
             }
             else
@@ -470,7 +471,7 @@ void wxListBox::DoInsertItems(const wxArrayString& items, int pos)
         }
         else
         {
-            wxNode *node = m_clientList.Nth( pos );
+            wxNode *node = m_clientList.Item( pos );
             for ( size_t n = 0; n < nItems; n++ )
             {
                 GtkAddItem( items[n], pos+n );
@@ -496,7 +497,7 @@ int wxListBox::DoAppend( const wxString& item )
         {
            GtkAddItem( item, index );
 
-           wxNode *node = m_clientList.Nth( index );
+           wxNode *node = m_clientList.Item( index );
            m_clientList.Insert( node, (wxObject *)NULL );
 
            return index;
@@ -618,11 +619,11 @@ void wxListBox::Clear()
         // destroy the data (due to Robert's idea of using wxList<wxObject>
         // and not wxList<wxClientData> we can't just say
         // m_clientList.DeleteContents(TRUE) - this would crash!
-        wxNode *node = m_clientList.First();
+        wxNode *node = m_clientList.GetFirst();
         while ( node )
         {
-            delete (wxClientData *)node->Data();
-            node = node->Next();
+            delete (wxClientData *)node->GetData();
+            node = node->GetNext();
         }
     }
     m_clientList.Clear();
@@ -643,12 +644,12 @@ void wxListBox::Delete( int n )
     gtk_list_remove_items( m_list, list );
     g_list_free( list );
 
-    wxNode *node = m_clientList.Nth( n );
+    wxNode *node = m_clientList.Item( n );
     if ( node )
     {
         if ( m_clientDataItemsType == wxClientData_Object )
         {
-            wxClientData *cd = (wxClientData*)node->Data();
+            wxClientData *cd = (wxClientData*)node->GetData();
             delete cd;
         }
 
@@ -667,7 +668,7 @@ void wxListBox::DoSetItemClientData( int n, void* clientData )
 {
     wxCHECK_RET( m_widget != NULL, wxT("invalid listbox control") );
 
-    wxNode *node = m_clientList.Nth( n );
+    wxNode *node = m_clientList.Item( n );
     wxCHECK_RET( node, wxT("invalid index in wxListBox::DoSetItemClientData") );
 
     node->SetData( (wxObject*) clientData );
@@ -677,17 +678,17 @@ void* wxListBox::DoGetItemClientData( int n ) const
 {
     wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid listbox control") );
 
-    wxNode *node = m_clientList.Nth( n );
+    wxNode *node = m_clientList.Item( n );
     wxCHECK_MSG( node, NULL, wxT("invalid index in wxListBox::DoGetItemClientData") );
 
-    return node->Data();
+    return node->GetData();
 }
 
 void wxListBox::DoSetItemClientObject( int n, wxClientData* clientData )
 {
     wxCHECK_RET( m_widget != NULL, wxT("invalid listbox control") );
 
-    wxNode *node = m_clientList.Nth( n );
+    wxNode *node = m_clientList.Item( n );
     wxCHECK_RET( node, wxT("invalid index in wxListBox::DoSetItemClientObject") );
 
     // wxItemContainer already deletes data for us
@@ -699,11 +700,11 @@ wxClientData* wxListBox::DoGetItemClientObject( int n ) const
 {
     wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid listbox control") );
 
-    wxNode *node = m_clientList.Nth( n );
+    wxNode *node = m_clientList.Item( n );
     wxCHECK_MSG( node, (wxClientData *)NULL,
                  wxT("invalid index in wxListBox::DoGetItemClientObject") );
 
-    return (wxClientData*) node->Data();
+    return (wxClientData*) node->GetData();
 }
 
 // ----------------------------------------------------------------------------
@@ -1057,7 +1058,7 @@ wxSize wxListBox::DoGetBestSize() const
 
     // And just a bit more
     int cx, cy;
-    GetTextExtent("X", &cx, &cy);
+    GetTextExtent( wxT("X"), &cx, &cy);
     lbWidth += 3 * cx;
 
     // don't make the listbox too tall (limit height to around 10 items) but don't