Use GtkHPaned in variable info dialog
[pspp-builds.git] / src / ui / gui / dict-display.c
index d665edd62be1872f5cede3a2515f791344145e1f..6d1671454740454eb32c0d459815d718469f8eb3 100644 (file)
 #include <gettext.h>
 #include <gtk/gtk.h>
 
+#include "psppire-conf.h"
 #include "dict-display.h"
 
 #include "psppire-dict.h"
 #include "helper.h"
 #include <data/variable.h>
+#include <data/format.h>
 
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
@@ -123,7 +125,12 @@ var_description_cell_data_func (GtkTreeViewColumn *col,
   struct variable *var;
   GtkTreeIter iter;
   GtkTreeModel *model;
+  gboolean prefer_labels = FALSE;
 
+  PsppireConf *conf = psppire_conf_new ();
+
+  psppire_conf_get_boolean (conf, "dialog-boxes", "prefer-labels",
+                           &prefer_labels);
 
   get_base_model (top_model, top_iter, &model, &iter);
 
@@ -133,13 +140,12 @@ var_description_cell_data_func (GtkTreeViewColumn *col,
   gtk_tree_model_get (model,
                      &iter, DICT_TVM_COL_VAR, &var, -1);
 
-  if ( var_has_label (var))
+  if ( var_has_label (var) && prefer_labels)
     {
       gchar *text = g_strdup_printf (
                                     "<span stretch=\"condensed\">%s</span>",
                                     var_get_label (var));
 
-
       char *utf8 = pspp_locale_to_utf8 (text, -1, NULL);
 
       g_free (text);
@@ -148,7 +154,9 @@ var_description_cell_data_func (GtkTreeViewColumn *col,
     }
   else
     {
-      g_object_set (cell, "text", var_get_name (var), NULL);
+      char *name = pspp_locale_to_utf8 (var_get_name (var), -1, NULL);
+      g_object_set (cell, "text", name, NULL);
+      g_free (name);
     }
 }
 
@@ -170,6 +178,7 @@ set_tooltip_for_variable (GtkTreeView  *treeview,
   struct variable *var = NULL;
   gboolean ok;
 
+
   gtk_tree_view_convert_widget_to_bin_window_coords (treeview,
                                                      x, y, &bx, &by);
 
@@ -194,7 +203,24 @@ set_tooltip_for_variable (GtkTreeView  *treeview,
   if ( ! var_has_label (var))
     return FALSE;
 
-  gtk_tooltip_set_text (tooltip, var_get_name (var));
+  {
+    gchar *tip ;
+    gboolean prefer_labels = FALSE;
+
+    PsppireConf *conf = psppire_conf_new ();
+
+    psppire_conf_get_boolean (conf, "dialog-boxes", "prefer-labels",
+                             &prefer_labels);
+
+    if ( prefer_labels )
+      tip = pspp_locale_to_utf8 (var_get_name (var), -1, NULL);
+    else
+      tip = pspp_locale_to_utf8 (var_get_label (var), -1, NULL);
+
+    gtk_tooltip_set_text (tooltip, tip);
+
+    g_free (tip);
+  }
 
   return TRUE;
 }
@@ -268,7 +294,9 @@ attach_dictionary_to_treeview (GtkTreeView *treeview, PsppireDict *dict,
 
   g_object_set (treeview, "has-tooltip", TRUE, NULL);
 
+#if GTK_CHECK_VERSION (2, 12, 0)
   g_signal_connect (treeview, "query-tooltip", G_CALLBACK (set_tooltip_for_variable), NULL);
+#endif
 }