]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/listbox.cpp
fixed wxDFB compilation after wxDC-related changes
[wxWidgets.git] / src / gtk / listbox.cpp
index 3517dd9f71d6dad6cb9881682fab587addf483ac..0f28034f816efc596d89b8c0744ce089887f46ba 100644 (file)
@@ -62,9 +62,9 @@ extern bool           g_blockEventsOnScroll;
 
 extern "C" {
 static void
-gtk_listbox_row_activated_callback(GtkTreeView        *treeview,
+gtk_listbox_row_activated_callback(GtkTreeView        * WXUNUSED(treeview),
                                    GtkTreePath        *path,
-                                   GtkTreeViewColumn  *col,
+                                   GtkTreeViewColumn  * WXUNUSED(col),
                                    wxListBox          *listbox)
 {
     if (g_blockEventsOnDrag) return;
@@ -104,7 +104,7 @@ gtk_listbox_row_activated_callback(GtkTreeView        *treeview,
         event.SetInt(-1);
     }
 
-    listbox->GetEventHandler()->ProcessEvent( event );
+    listbox->HandleWindowEvent( event );
 }
 }
 
@@ -114,7 +114,8 @@ gtk_listbox_row_activated_callback(GtkTreeView        *treeview,
 
 extern "C" {
 static void
-gtk_listitem_changed_callback( GtkTreeSelection* selection, wxListBox *listbox )
+gtk_listitem_changed_callback(GtkTreeSelection * WXUNUSED(selection),
+                              wxListBox *listbox )
 {
     if (g_blockEventsOnDrag) return;
 
@@ -134,7 +135,7 @@ gtk_listitem_changed_callback( GtkTreeSelection* selection, wxListBox *listbox )
             event.SetExtraLong( 0 );
             event.SetInt( -1 );
 
-            listbox->GetEventHandler()->ProcessEvent( event );
+            listbox->HandleWindowEvent( event );
 
             return;
         }
@@ -144,7 +145,7 @@ gtk_listitem_changed_callback( GtkTreeSelection* selection, wxListBox *listbox )
             event.SetExtraLong( 1 );
             event.SetInt( selections[0] );
 
-            listbox->GetEventHandler()->ProcessEvent( event );
+            listbox->HandleWindowEvent( event );
         }
     }
     else
@@ -156,7 +157,7 @@ gtk_listitem_changed_callback( GtkTreeSelection* selection, wxListBox *listbox )
             event.SetExtraLong( 0 );
             event.SetInt( -1 );
 
-            listbox->GetEventHandler()->ProcessEvent( event );
+            listbox->HandleWindowEvent( event );
 
             return;
         }
@@ -177,7 +178,7 @@ gtk_listitem_changed_callback( GtkTreeSelection* selection, wxListBox *listbox )
             else if ( listbox->HasClientUntypedData() )
                 event.SetClientData( gtk_tree_entry_get_userdata(entry) );
 
-            listbox->GetEventHandler()->ProcessEvent( event );
+            listbox->HandleWindowEvent( event );
 
             g_object_unref (entry);
         }
@@ -205,10 +206,9 @@ static void gtk_tree_entry_destroy_cb(GtkTreeEntry* entry,
 //-----------------------------------------------------------------------------
 // Sorting callback (standard CmpNoCase return value)
 //-----------------------------------------------------------------------------
-#include <iostream>
 
 extern "C" {
-static gint gtk_listbox_sort_callback(GtkTreeModel *model,
+static gint gtk_listbox_sort_callback(GtkTreeModel * WXUNUSED(model),
                                       GtkTreeIter  *a,
                                       GtkTreeIter  *b,
                                       wxListBox    *listbox)
@@ -244,8 +244,8 @@ static gint gtk_listbox_sort_callback(GtkTreeModel *model,
 //-----------------------------------------------------------------------------
 
 extern "C" {
-static gboolean gtk_listbox_searchequal_callback(GtkTreeModel* model,
-                                                 gint column,
+static gboolean gtk_listbox_searchequal_callback(GtkTreeModel * WXUNUSED(model),
+                                                 gint WXUNUSED(column),
                                                  const gchar* key,
                                                  GtkTreeIter* iter,
                                                  wxListBox* listbox)
@@ -272,7 +272,7 @@ static gboolean gtk_listbox_searchequal_callback(GtkTreeModel* model,
 // wxListBox
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControlWithItems)
 
 // ----------------------------------------------------------------------------
 // construction
@@ -447,7 +447,7 @@ wxListBox::~wxListBox()
 int wxListBox::DoInsertItems(const wxArrayStringsAdapter& items,
                              unsigned int pos,
                              void **clientData,
-                             wxClientDataType type)
+                             wxClientDataType WXUNUSED(type))
 {
     wxCHECK_MSG( m_treeview != NULL, wxNOT_FOUND, wxT("invalid listbox") );
 
@@ -483,9 +483,6 @@ int wxListBox::DoInsertItems(const wxArrayStringsAdapter& items,
         g_object_unref (entry);
     }
 
-    if ( !HasClientData() )
-        m_clientDataItemsType = type;
-
     return pos + numItems - 1;
 }
 
@@ -772,6 +769,13 @@ void wxListBox::GtkSetSelection(int n, const bool select, const bool blockEvent)
     else
         gtk_tree_selection_unselect_iter(selection, &iter);
 
+    GtkTreePath* path = gtk_tree_model_get_path(
+                        GTK_TREE_MODEL(m_liststore), &iter);
+
+    gtk_tree_view_scroll_to_cell(m_treeview, path, NULL, FALSE, 0.0f, 0.0f);
+
+    gtk_tree_path_free(path);
+
     m_blockEvent = false;
 }