Re enable the connect_help function
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 21 Feb 2009 04:04:05 +0000 (13:04 +0900)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 21 Feb 2009 04:04:05 +0000 (13:04 +0900)
src/ui/gui/helper.c
src/ui/gui/helper.h
src/ui/gui/missing-val-dialog.c
src/ui/gui/psppire-output-window.c
src/ui/gui/psppire-syntax-window.c
src/ui/gui/psppire-var-sheet.c
src/ui/gui/val-labs-dialog.c

index cd63c4a68a6ffef42ef6e60782922c02963c06f4..aec2e3d408a5411f86406e80c5d2635e0e946417 100644 (file)
@@ -179,8 +179,38 @@ give_help (void)
   gtk_widget_destroy (dialog);
 }
 
-void
-connect_help (GladeXML *xml)
+static void
+connect_help_builder (GtkBuilder *xml)
+{
+  GSList *helps = gtk_builder_get_objects (xml);
+
+  GSList *i;
+  for ( i = helps; i ; i = g_slist_next (i))
+    {
+      GObject *o = i->data;
+      if ( GTK_IS_WIDGET (o) )
+       {
+         gchar *name = NULL;
+         gchar s[12] = {0};
+         g_object_get (o, "name", &name, NULL);
+
+         if ( name)
+           strncpy (s, name, 11);
+         s[11] = '\0';
+
+
+         if ( 0 == strcmp ("help_button", s))
+           {
+           g_signal_connect (GTK_WIDGET (o), "clicked", give_help, 0);
+           }
+       }
+    }
+
+  g_slist_free (helps);
+}
+
+static void
+connect_help_glade (GladeXML *xml)
 {
   GList *helps = glade_xml_get_widget_prefix (xml, "help_button_");
 
@@ -192,6 +222,22 @@ connect_help (GladeXML *xml)
 }
 
 
+void
+connect_help (gpointer *xml)
+{
+  if (GTK_IS_BUILDER (xml))
+    connect_help_builder (GTK_BUILDER (xml));
+
+  else if (GLADE_IS_XML (xml))
+    connect_help_glade (GLADE_XML (xml));
+
+  else
+    {
+      g_error ("XML of type %s", G_OBJECT_TYPE_NAME (xml));
+    }
+}
+
+
 
 void
 reference_manual (GtkMenuItem *menu, gpointer data)
index aa52ded37466e3d87ca75059e2d6c00e855e4b1d..3e1cb067bca692ed12b5e053efa91330526c6fd7 100644 (file)
@@ -54,7 +54,7 @@ GtkWidget * get_widget_assert (gpointer x, const gchar *name);
 char * pspp_locale_to_utf8 (const gchar *text, gssize len, GError **err);
 
 
-void connect_help (GladeXML *);
+void connect_help (gpointer *);
 
 void reference_manual (GtkMenuItem *, gpointer);
 
index e8027bf8982ca807759ff6f3a461171f862bbb37..52e7a037c22a83b259645c01c1fe96719fea2bed 100644 (file)
@@ -224,8 +224,6 @@ missing_val_dialog_create (GtkBuilder *xml)
 {
   struct missing_val_dialog *dialog = g_malloc (sizeof (*dialog));
 
-  //  connect_help (xml);
-
   dialog->window = get_widget_assert (xml, "missing_values_dialog");
 
   gtk_window_set_transient_for
index d5e5044af87c7e338966964212b5f6639616c24d..3671e098c0ea9d1156bcff13559cffb47497b5c8 100644 (file)
@@ -208,7 +208,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
 
   gtk_widget_show_all (box);
 
-  //  connect_help (xml);
+  connect_help (xml);
 
   window->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->textview));
 
index a786db8040c5bcb2ec7e18df1772fd4eb536c63f..898d8a75f94d50faeb557d572df805dc9dce2149 100644 (file)
@@ -500,7 +500,7 @@ psppire_syntax_window_init (PsppireSyntaxWindow *window)
 
   g_signal_connect (window->buffer, "changed", G_CALLBACK (on_text_changed), window);
 
-  //  connect_help (xml);
+  connect_help (xml);
 
   gtk_container_add (GTK_CONTAINER (window), box);
 
index a36bf6f933ddf30c77e83be06dd8d005933283ba..ed9a426870872ce42729609ef29d2f027075e424 100644 (file)
@@ -491,6 +491,8 @@ psppire_var_sheet_init (PsppireVarSheet *vs)
   vs->missing_val_dialog = missing_val_dialog_create (builder);
   vs->var_type_dialog = var_type_dialog_create (builder);
 
+  connect_help (builder);
+
   g_object_unref (builder);
 
   vs->dispose_has_run = FALSE;
index 6cddeb3eba23c7e09aaf54a955bdede63cea9998..3b56efadc6fcce563435d9497893a62cc1b17b9a 100644 (file)
@@ -372,8 +372,6 @@ val_labs_dialog_create (GtkBuilder *xml)
 
   struct val_labs_dialog *dialog = g_malloc (sizeof (*dialog));
 
-  //  connect_help (xml);
-
   dialog->window = get_widget_assert (xml,"val_labs_dialog");
   dialog->value_entry = get_widget_assert (xml,"value_entry");
   dialog->label_entry = get_widget_assert (xml,"label_entry");