]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/combobox.cpp
remove gtk1 code
[wxWidgets.git] / src / gtk / combobox.cpp
index 1f39a8f9ad47b04584e4301673327b793f88c562..7fb0ce242410c604cef0951229a91b5a13c8bc46 100644 (file)
@@ -45,8 +45,6 @@ extern "C" {
 static void
 gtkcombo_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
 {
-    if (g_isIdle) wxapp_install_idle_handler();
-
     if (combo->m_ignoreNextUpdate)
     {
         combo->m_ignoreNextUpdate = false;
@@ -118,8 +116,6 @@ extern "C" {
 static void
 gtkcombo_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
 {
-    if (g_isIdle) wxapp_install_idle_handler();
-
     if (!combo->m_hasVMT) return;
 
     if (g_blockEventsOnDrag) return;
@@ -171,8 +167,6 @@ extern "C" {
 static void
 gtkcombobox_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
 {
-    if (g_isIdle) wxapp_install_idle_handler();
-
     if (!combo->m_hasVMT) return;
 
     wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, combo->GetId() );
@@ -186,8 +180,6 @@ extern "C" {
 static void
 gtkcombobox_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
 {
-    if (g_isIdle) wxapp_install_idle_handler();
-
     if (!combo->m_hasVMT) return;
 
     if (combo->GetSelection() == -1)
@@ -200,6 +192,7 @@ gtkcombobox_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
     combo->GetEventHandler()->ProcessEvent( event );
 }
 }
+
 #endif
 
 //-----------------------------------------------------------------------------
@@ -249,8 +242,6 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
                          const wxString& name )
 {
     m_ignoreNextUpdate = false;
-    m_needParent = true;
-    m_acceptsFocus = true;
     m_prevSelection = 0;
 
     if (!PreCreation( parent, pos, size ) ||
@@ -348,6 +339,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
 
         g_signal_connect_after (m_widget, "changed",
                             G_CALLBACK (gtkcombobox_changed_callback), this);
+
     }
     else
 #endif
@@ -371,15 +363,9 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
                             this);
         g_signal_connect_after (entry, "changed",
                             G_CALLBACK (gtkcombo_text_changed_callback), this);
-
-        // This is required for tool bar support
-        // Doesn't currently work
-//        wxSize setsize = GetSize();
-//        gtk_widget_set_size_request( m_widget, setsize.x, setsize.y );
     }
 
-    SetBestSize(size); // need this too because this is a wxControlWithItems
-
+    SetInitialSize(size); // need this too because this is a wxControlWithItems
 
     return true;
 }
@@ -439,9 +425,9 @@ int wxComboBox::DoAppend( const wxString &item )
         GtkRcStyle *style = CreateWidgetStyle();
         if (style)
         {
-            gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
+            gtk_widget_modify_style(list_item, style);
             GtkBin *bin = GTK_BIN( list_item );
-            GtkWidget *label = GTK_WIDGET( bin->child );
+            GtkWidget *label = bin->child;
             gtk_widget_modify_style( label, style );
             gtk_rc_style_unref( style );
         }
@@ -960,7 +946,10 @@ void wxComboBox::SetValue( const wxString& value )
 
     wxString tmp;
     if (!value.IsNull()) tmp = value;
+    
+    DisableEvents();
     gtk_entry_set_text( entry, wxGTK_CONV( tmp ) );
+    EnableEvents();
 
     InvalidateBestSize();
 }
@@ -1128,12 +1117,13 @@ void wxComboBox::Replace( long from, long to, const wxString& value )
     if (value.IsNull()) return;
     gint pos = (gint)to;
 
-#if wxUSE_UNICODE
-    wxCharBuffer buffer = wxConvUTF8.cWX2MB( value );
-    gtk_editable_insert_text( GTK_EDITABLE(entry), (const char*) buffer, strlen( (const char*) buffer ), &pos );
+#if wxUSE_UNICODE_UTF8
+    const char *utf8 = value.utf8_str();
 #else
-    gtk_editable_insert_text( GTK_EDITABLE(entry), value.c_str(), value.length(), &pos );
+    wxCharBuffer buffer(value.utf8_str());
+    char char *utf8 = buffer;
 #endif
+    gtk_editable_insert_text(GTK_EDITABLE(entry), utf8, strlen(utf8), &pos);
 }
 
 void wxComboBox::SetSelection( long from, long to )