]> git.saurik.com Git - wxWidgets.git/commitdiff
GTK Combobox and Listbox aren't realized until actually
authorRon Lee <ron@debian.org>
Sun, 5 Sep 2004 10:08:19 +0000 (10:08 +0000)
committerRon Lee <ron@debian.org>
Sun, 5 Sep 2004 10:08:19 +0000 (10:08 +0000)
visible, so a list_item created before that would
receive a default style instead of the control's style.

Instead of calling ApplyWidgetStyle() which would
iterate all items, only the newly created item will
receive the current style to speed things up.

Thanks to Andreas Pflug.  Closes 984861

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/combobox.cpp
src/gtk/listbox.cpp
src/gtk1/combobox.cpp
src/gtk1/listbox.cpp

index acf403570b26e2d311fe1b1a4032098750122294..557d3e1b5dab71cae59a5b56d92edb17f29ae689 100644 (file)
@@ -238,8 +238,17 @@ int wxComboBox::DoAppend( const wxString &item )
     {
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
     {
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
+    }
 
 
-        ApplyWidgetStyle();
+    // Apply current widget style to the new list_item
+    GtkRcStyle *style = CreateWidgetStyle();
+    if (style)
+    {
+        gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
+        GtkBin *bin = GTK_BIN( list_item );
+        GtkWidget *label = GTK_WIDGET( bin->child );
+        gtk_widget_modify_style( label, style );
+        gtk_rc_style_unref( style );
     }
 
     gtk_widget_show( list_item );
     }
 
     gtk_widget_show( list_item );
index b2d8307151c4dde0c80eca86ad50dc16b46ea0b8..4df5e564793c2189951f672e794564ccaa3fefba 100644 (file)
@@ -578,21 +578,21 @@ void wxListBox::GtkAddItem( const wxString &item, int pos )
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
 
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
 
-        // Apply current widget style to the new list_item
-        GtkRcStyle *style = CreateWidgetStyle();
-        if (style)
-        {
-            gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
-            GtkBin *bin = GTK_BIN( list_item );
-            GtkWidget *label = GTK_WIDGET( bin->child );
-            gtk_widget_modify_style( label, style );
-            gtk_rc_style_unref( style );
-        }
-
 #if wxUSE_TOOLTIPS
         if (m_tooltip) m_tooltip->Apply( this );
 #endif
     }
 #if wxUSE_TOOLTIPS
         if (m_tooltip) m_tooltip->Apply( this );
 #endif
     }
+
+    // Apply current widget style to the new list_item
+    GtkRcStyle *style = CreateWidgetStyle();
+    if (style)
+    {
+        gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
+        GtkBin *bin = GTK_BIN( list_item );
+        GtkWidget *label = GTK_WIDGET( bin->child );
+        gtk_widget_modify_style( label, style );
+        gtk_rc_style_unref( style );
+    }
 }
 
 void wxListBox::DoSetItems( const wxArrayString& items,
 }
 
 void wxListBox::DoSetItems( const wxArrayString& items,
index acf403570b26e2d311fe1b1a4032098750122294..557d3e1b5dab71cae59a5b56d92edb17f29ae689 100644 (file)
@@ -238,8 +238,17 @@ int wxComboBox::DoAppend( const wxString &item )
     {
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
     {
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
+    }
 
 
-        ApplyWidgetStyle();
+    // Apply current widget style to the new list_item
+    GtkRcStyle *style = CreateWidgetStyle();
+    if (style)
+    {
+        gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
+        GtkBin *bin = GTK_BIN( list_item );
+        GtkWidget *label = GTK_WIDGET( bin->child );
+        gtk_widget_modify_style( label, style );
+        gtk_rc_style_unref( style );
     }
 
     gtk_widget_show( list_item );
     }
 
     gtk_widget_show( list_item );
index b2d8307151c4dde0c80eca86ad50dc16b46ea0b8..4df5e564793c2189951f672e794564ccaa3fefba 100644 (file)
@@ -578,21 +578,21 @@ void wxListBox::GtkAddItem( const wxString &item, int pos )
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
 
         gtk_widget_realize( list_item );
         gtk_widget_realize( GTK_BIN(list_item)->child );
 
-        // Apply current widget style to the new list_item
-        GtkRcStyle *style = CreateWidgetStyle();
-        if (style)
-        {
-            gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
-            GtkBin *bin = GTK_BIN( list_item );
-            GtkWidget *label = GTK_WIDGET( bin->child );
-            gtk_widget_modify_style( label, style );
-            gtk_rc_style_unref( style );
-        }
-
 #if wxUSE_TOOLTIPS
         if (m_tooltip) m_tooltip->Apply( this );
 #endif
     }
 #if wxUSE_TOOLTIPS
         if (m_tooltip) m_tooltip->Apply( this );
 #endif
     }
+
+    // Apply current widget style to the new list_item
+    GtkRcStyle *style = CreateWidgetStyle();
+    if (style)
+    {
+        gtk_widget_modify_style( GTK_WIDGET( list_item ), style );
+        GtkBin *bin = GTK_BIN( list_item );
+        GtkWidget *label = GTK_WIDGET( bin->child );
+        gtk_widget_modify_style( label, style );
+        gtk_rc_style_unref( style );
+    }
 }
 
 void wxListBox::DoSetItems( const wxArrayString& items,
 }
 
 void wxListBox::DoSetItems( const wxArrayString& items,