]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/listbox.cpp
Makes custom cell activatable.
[wxWidgets.git] / src / gtk / listbox.cpp
index 40fb0c0a0c71ad637a55b38d5f129cc26e0abd06..efa0d1549152024a049290a97e2428446a6f7b40 100644 (file)
 #include "wx/intl.h"
 #include "wx/checklst.h"
 #include "wx/settings.h"
+
+// FIXME: Use GtkTreeView/GtkListModel instead?
+#include <gtk/gtkversion.h>
+#ifdef GTK_DISABLE_DEPRECATED
+#undef GTK_DISABLE_DEPRECATED
+#endif
+
 #include "wx/gtk/private.h"
 
 #if wxUSE_TOOLTIPS
 #include "wx/tooltip.h"
 #endif
 
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
 //-----------------------------------------------------------------------------
@@ -68,7 +73,7 @@ static gint wxlistbox_idle_callback( gpointer gdata )
     wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata;
     gdk_threads_enter();
 
-    gtk_idle_remove( data->m_tag );
+    g_source_remove( data->m_tag );
 
     // check that the items haven't been deleted from the listbox since we had
     // installed this callback
@@ -349,7 +354,7 @@ gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxLis
 
     if (ret)
     {
-        gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
+        g_signal_stop_emission_by_name (widget, "key_press_event");
         return TRUE;
     }
 
@@ -534,8 +539,8 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
 
     gtk_widget_show( GTK_WIDGET(m_list) );
 
-    gtk_signal_connect( GTK_OBJECT(m_list), "realize",
-                        GTK_SIGNAL_FUNC(gtk_listbox_realized_callback), (gpointer) this );
+    g_signal_connect (m_list, "realize",
+                      G_CALLBACK (gtk_listbox_realized_callback), this);
 
     if ( style & wxLB_SORT )
     {
@@ -696,34 +701,30 @@ void wxListBox::GtkAddItem( const wxString &item, int pos )
     else
         gtk_list_insert_items( GTK_LIST (m_list), gitem_list, pos );
 
-    gtk_signal_connect_after( GTK_OBJECT(list_item), "select",
-      GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this );
+    g_signal_connect_after (list_item, "select",
+                            G_CALLBACK (gtk_listitem_select_callback),
+                            this);
 
     if (HasFlag(wxLB_MULTIPLE) || HasFlag(wxLB_EXTENDED))
-        gtk_signal_connect_after( GTK_OBJECT(list_item), "deselect",
-          GTK_SIGNAL_FUNC(gtk_listitem_deselect_callback), (gpointer)this );
-
-    gtk_signal_connect( GTK_OBJECT(list_item),
-                        "button_press_event",
-                        (GtkSignalFunc)gtk_listbox_button_press_callback,
-                        (gpointer) this );
-
-    gtk_signal_connect_after( GTK_OBJECT(list_item),
-                        "button_release_event",
-                        (GtkSignalFunc)gtk_listbox_button_release_callback,
-                        (gpointer) this );
-
-    gtk_signal_connect( GTK_OBJECT(list_item),
-                           "key_press_event",
-                           (GtkSignalFunc)gtk_listbox_key_press_callback,
-                           (gpointer)this );
-
-
-    gtk_signal_connect( GTK_OBJECT(list_item), "focus_in_event",
-            GTK_SIGNAL_FUNC(gtk_listitem_focus_in_callback), (gpointer)this );
-
-    gtk_signal_connect( GTK_OBJECT(list_item), "focus_out_event",
-            GTK_SIGNAL_FUNC(gtk_listitem_focus_out_callback), (gpointer)this );
+        g_signal_connect_after (list_item, "deselect",
+                                G_CALLBACK (gtk_listitem_deselect_callback),
+                                this);
+
+    g_signal_connect (list_item, "button_press_event",
+                      G_CALLBACK (gtk_listbox_button_press_callback),
+                      this);
+    g_signal_connect_after (list_item, "button_release_event",
+                            G_CALLBACK (gtk_listbox_button_release_callback),
+                            this);
+    g_signal_connect (list_item, "key_press_event",
+                      G_CALLBACK (gtk_listbox_key_press_callback),
+                           this);
+    g_signal_connect (list_item, "focus_in_event",
+                      G_CALLBACK (gtk_listitem_focus_in_callback),
+                      this);
+    g_signal_connect (list_item, "focus_out_event",
+                      G_CALLBACK (gtk_listitem_focus_out_callback),
+                      this);
 
     ConnectWidget( list_item );
 
@@ -887,11 +888,7 @@ wxString wxListBox::GetRealLabel(GList *item) const
 
     wxString str;
 
-#ifdef __WXGTK20__
     str = wxGTK_CONV_BACK( gtk_label_get_text( label ) );
-#else
-    str = wxString( label->label );
-#endif
 
 #if wxUSE_CHECKLISTBOX
     // checklistboxes have "[±] " prepended to their lables, remove it
@@ -921,7 +918,7 @@ void wxListBox::SetString( int n, const wxString &string )
 #endif // wxUSE_CHECKLISTBOX
         str += string;
 
-        gtk_label_set( label, wxGTK_CONV( str ) );
+        gtk_label_set_text( label, wxGTK_CONV( str ) );
     }
     else
     {
@@ -1077,7 +1074,7 @@ void wxListBox::DoSetFirstItem( int n )
         wxlistbox_idle_struct* data = new wxlistbox_idle_struct;
         data->m_listbox = this;
         data->m_item = n;
-        data->m_tag = gtk_idle_add_priority( 800, wxlistbox_idle_callback, (gpointer) data );
+        data->m_tag = g_idle_add_full( 800, wxlistbox_idle_callback, data, NULL );
 
         return;
     }