]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/choice.cpp
these files are not used any more
[wxWidgets.git] / src / gtk / choice.cpp
index 2c1d4c702c8f5b5191480c11006882fe6ca6ee9b..f13d20eae3f0582dc56a25c149a4588c1534ead6 100644 (file)
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
+//-----------------------------------------------------------------------------
+// idle system
+//-----------------------------------------------------------------------------
+
+extern void wxapp_install_idle_handler();
+extern bool g_isIdle;
+
 //-----------------------------------------------------------------------------
 // data
 //-----------------------------------------------------------------------------
@@ -29,17 +36,17 @@ extern bool   g_blockEventsOnDrag;
 
 static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
 {
-  if (!choice->HasVMT())
-      return;
+    if (g_isIdle) wxapp_install_idle_handler();
+
+    if (!choice->m_hasVMT) return;
 
-  if (g_blockEventsOnDrag)
-      return;
+    if (g_blockEventsOnDrag) return;
 
-  wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() );
-  event.SetInt( choice->GetSelection() );
-  event.SetString( choice->GetStringSelection() );
-  event.SetEventObject(choice);
-  choice->GetEventHandler()->ProcessEvent(event);
+    wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() );
+    event.SetInt( choice->GetSelection() );
+    event.SetString( choice->GetStringSelection() );
+    event.SetEventObject(choice);
+    choice->GetEventHandler()->ProcessEvent(event);
 }
 
 //-----------------------------------------------------------------------------
@@ -85,9 +92,6 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id,
         GtkWidget *item = gtk_menu_item_new_with_label( choices[i].mbc_str() );
         gtk_menu_append( GTK_MENU(menu), item );
 
-        gtk_widget_realize( item );
-        gtk_widget_realize( GTK_BIN(item)->child );
-
         gtk_widget_show( item );
 
         gtk_signal_connect( GTK_OBJECT( item ), "activate",
@@ -95,9 +99,7 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id,
     }
     gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu );
 
-    m_parent->AddChild( this );
-
-    (m_parent->m_insertCallback)( m_parent, this );
+    m_parent->DoAddChild( this );
 
     PostCreation();
 
@@ -124,10 +126,13 @@ void wxChoice::AppendCommon( const wxString &item )
 
     gtk_menu_append( GTK_MENU(menu), menu_item );
 
-    gtk_widget_realize( menu_item );
-    gtk_widget_realize( GTK_BIN(menu_item)->child );
+    if (GTK_WIDGET_REALIZED(m_widget))
+    {
+        gtk_widget_realize( menu_item );
+        gtk_widget_realize( GTK_BIN(menu_item)->child );
 
-    if (m_widgetStyle) ApplyWidgetStyle();
+        if (m_widgetStyle) ApplyWidgetStyle();
+    }
 
     gtk_signal_connect( GTK_OBJECT( menu_item ), "activate",
       GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );