]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/choice.cpp
DT_WORD_ELLIPSIS is not defined under CE
[wxWidgets.git] / src / gtk / choice.cpp
index 1f7e3160428b96de991c51269bdc455fd824e4cb..7d0df1ca0d2c3305ab11bb8bac0431ddfe4af788 100644 (file)
 #include "wx/choice.h"
 #include "wx/arrstr.h"
 
+// FIXME: We use GtkOptionMenu which has been deprecated since GTK+ 2.3.0 in
+// favour of GtkComboBox.
+// Later use GtkComboBox if GTK+ runtime version is new enough.
+#include <gtk/gtkversion.h>
+#if defined(GTK_DISABLE_DEPRECATED) && GTK_CHECK_VERSION(2,3,0)
+#undef GTK_DISABLE_DEPRECATED
+#endif
+
 #include "wx/gtk/private.h"
 
 //-----------------------------------------------------------------------------
@@ -334,7 +342,7 @@ int wxChoice::FindString( const wxString &string, bool bCase ) const
         if (bin->child)
             label = GTK_LABEL(bin->child);
         if (!label)
-            label = GTK_LABEL( BUTTON_CHILD(m_widget) );
+            label = GTK_LABEL(GTK_BIN(m_widget)->child);
 
         wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
 
@@ -373,7 +381,7 @@ void wxChoice::SetString( int n, const wxString& str )
             if (bin->child)
                 label = GTK_LABEL(bin->child);
             if (!label)
-                label = GTK_LABEL( BUTTON_CHILD(m_widget) );
+                label = GTK_LABEL(GTK_BIN(m_widget)->child);
 
             wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
 
@@ -402,7 +410,7 @@ wxString wxChoice::GetString( int n ) const
             if (bin->child)
                 label = GTK_LABEL(bin->child);
             if (!label)
-                label = GTK_LABEL( BUTTON_CHILD(m_widget) );
+                label = GTK_LABEL(GTK_BIN(m_widget)->child);
 
             wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
 
@@ -475,7 +483,7 @@ void wxChoice::DoApplyWidgetStyle(GtkRcStyle *style)
         if (bin->child)
             label = bin->child;
         if (!label)
-            label = BUTTON_CHILD(m_widget);
+            label = GTK_BIN(m_widget)->child;
 
         gtk_widget_modify_style( label, style );
 
@@ -495,7 +503,7 @@ int wxChoice::GtkAddHelper(GtkWidget *menu, int pos, const wxString& item)
         // sorted control, need to insert at the correct index
         index = m_strings->Add(item);
 
-        gtk_menu_insert( GTK_MENU(menu), menu_item, index );
+        gtk_menu_shell_insert( GTK_MENU_SHELL(menu), menu_item, index );
 
         if ( index )
         {
@@ -515,13 +523,13 @@ int wxChoice::GtkAddHelper(GtkWidget *menu, int pos, const wxString& item)
         // normal control, just append
         if (pos == (int)m_clientList.GetCount())
         {
-            gtk_menu_append( GTK_MENU(menu), menu_item );
+            gtk_menu_shell_append( GTK_MENU_SHELL(menu), menu_item );
             m_clientList.Append( (wxObject*) NULL );
             index = m_clientList.GetCount() - 1;
         }
         else
         {
-            gtk_menu_insert( GTK_MENU(menu), menu_item, pos );
+            gtk_menu_shell_insert( GTK_MENU_SHELL(menu), menu_item, pos );
             m_clientList.Insert( pos, (wxObject*) NULL );
             index = pos;
         }
@@ -541,8 +549,9 @@ int wxChoice::GtkAddHelper(GtkWidget *menu, int pos, const wxString& item)
     // it has to change. Adapted from Matt Ownby.
     InvalidateBestSize();
 
-    gtk_signal_connect_after( GTK_OBJECT( menu_item ), "activate",
-      GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
+    g_signal_connect_after (menu_item, "activate",
+                            G_CALLBACK (gtk_choice_clicked_callback),
+                            this);
 
     gtk_widget_show( menu_item );