Warnings: function type cast for g_list_foreach
[pspp] / src / ui / gui / psppire-acr.c
index fc89b822125a4c38ebfabbf62fa8e30c27dc545c..82f9aa2c16231969454ec16583e0d8671d69830a 100644 (file)
 #include "psppire-acr.h"
 #include "helper.h"
 
-G_DEFINE_TYPE (PsppireAcr, psppire_acr, GTK_TYPE_HBOX);
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+G_DEFINE_TYPE (PsppireAcr, psppire_acr, GTK_TYPE_BOX);
 
 static void
 psppire_acr_dispose (GObject *obj)
 {
   PsppireAcr *acr = PSPPIRE_ACR (obj);
+
+  if (acr->dispose_has_run)
+    return;
+  acr->dispose_has_run = TRUE;
+
   psppire_acr_set_model (acr, NULL);
 
   G_OBJECT_CLASS (psppire_acr_parent_class)->dispose (obj);
@@ -131,7 +140,7 @@ on_add_button_clicked (PsppireAcr *acr)
        ++i)
     {
       static GValue value;
-      if ( ! acr->get_value (i, &value, acr->get_value_data) )
+      if (! acr->get_value (i, &value, acr->get_value_data))
        continue;
 
       gtk_list_store_set_value (acr->list_store, &iter,
@@ -166,7 +175,7 @@ on_change_button_clicked (PsppireAcr *acr)
        ++i)
     {
       static GValue value;
-      if ( ! acr->get_value (i, &value, acr->get_value_data) )
+      if (! acr->get_value (i, &value, acr->get_value_data))
        continue;
 
       gtk_list_store_set_value (acr->list_store, &iter,
@@ -174,10 +183,10 @@ on_change_button_clicked (PsppireAcr *acr)
       g_value_unset (&value);
     }
 
-  g_list_foreach (l, (GFunc) gtk_tree_path_free, NULL);
+  g_list_foreach (l, (GFunc) (void (*)(void)) gtk_tree_path_free, NULL);
   g_list_free (l);
 
-  if ( acr->update) acr->update (acr->update_data);
+  if (acr->update) acr->update (acr->update_data);
 }
 
 
@@ -200,7 +209,7 @@ on_remove_button_clicked (PsppireAcr *acr)
 
   gtk_list_store_remove (acr->list_store, &iter);
 
-  g_list_foreach (l, (GFunc) gtk_tree_path_free, NULL);
+  g_list_foreach (l, (GFunc) (void (*)(void)) gtk_tree_path_free, NULL);
   g_list_free (l);
 }
 
@@ -216,7 +225,7 @@ row_is_selected (const PsppireAcr *acr)
 
   result = (l != NULL);
 
-  g_list_foreach (l, (GFunc) gtk_tree_path_free, NULL);
+  g_list_foreach (l, (GFunc) (void (*)(void)) gtk_tree_path_free, NULL);
   g_list_free (l);
 
   return result;
@@ -234,7 +243,7 @@ on_select (GtkTreeSelection *selection, gpointer data)
 
   gtk_widget_set_sensitive (acr->change_button,
                            row_is_selected (acr)
-                           );
+                       );
 }
 
 
@@ -248,19 +257,22 @@ psppire_acr_set_enabled (PsppireAcr *acr, gboolean status)
                            && row_is_selected (acr));
 }
 
-
 static void
 psppire_acr_init (PsppireAcr *acr)
 {
-  GtkWidget *bb  = gtk_vbutton_box_new ();
+  GtkWidget *bb  = gtk_button_box_new (GTK_ORIENTATION_VERTICAL);
 
   GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL);
 
+  acr->dispose_has_run = FALSE;
+
+  gtk_orientable_set_orientation (GTK_ORIENTABLE (acr), GTK_ORIENTATION_HORIZONTAL);
+
   acr->tv = GTK_TREE_VIEW (gtk_tree_view_new ());
 
-  acr->add_button = gtk_button_new_from_stock (GTK_STOCK_ADD);
-  acr->change_button = gtk_button_new_from_stock (GTK_STOCK_EDIT);
-  acr->remove_button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+  acr->add_button = gtk_button_new_with_label (_("Add"));
+  acr->change_button = gtk_button_new_with_label (_("Edit"));
+  acr->remove_button = gtk_button_new_with_label (_("Remove"));
 
   acr->get_value = NULL;
   acr->get_value_data = NULL;