+static void
+set_sort_criteria (GtkCheckMenuItem *checkbox, PsppireDictView *dv, GtkTreeIterCompareFunc func)
+{
+ if (!gtk_check_menu_item_get_active (checkbox))
+ {
+ gtk_widget_queue_draw (GTK_WIDGET (dv));
+ return;
+ }
+
+
+ gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (dv->sorted_model), func, 0, 0);
+
+
+ gtk_widget_queue_draw (GTK_WIDGET (dv));
+}
+
+static void
+set_sort_criteria_default (GtkCheckMenuItem *checkbox, gpointer data)
+{
+ PsppireDictView *dv = PSPPIRE_DICT_VIEW (data);
+ set_sort_criteria (checkbox, dv, default_sort);
+}
+
+
+static void
+set_sort_criteria_name (GtkCheckMenuItem *checkbox, gpointer data)
+{
+ PsppireDictView *dv = PSPPIRE_DICT_VIEW (data);
+ set_sort_criteria (checkbox, dv, sort_by_name);
+}
+
+
+static void
+set_sort_criteria_label (GtkCheckMenuItem *checkbox, gpointer data)
+{
+ PsppireDictView *dv = PSPPIRE_DICT_VIEW (data);
+ set_sort_criteria (checkbox, dv, sort_by_label);
+}
+
+
+static void
+set_sort_criteria_unsorted (GtkCheckMenuItem *checkbox, gpointer data)
+{
+ PsppireDictView *dv = PSPPIRE_DICT_VIEW (data);
+ set_sort_criteria (checkbox, dv, unsorted);
+}
+
+static void
+check_item_set_inactive (GtkCheckMenuItem *cmi)
+{
+ gtk_check_menu_item_set_active (cmi, FALSE);
+}
+
+static void
+pop_up_down_variable_information (GtkCheckMenuItem *cmi, PsppireDictView *dv)
+{
+ gboolean active;
+ g_object_get (cmi, "active", &active, NULL);
+
+ g_return_if_fail (dv->var_under_cursor);
+
+ if (!active)
+ return;
+
+ GtkWidget *dialog = psppire_dialog_new ();
+ g_object_set (dialog,
+ "title", _("Variable Details"),
+ "help-page", "Manipulating-Variables",
+ NULL);
+
+ GtkWidget *box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+ gtk_container_add (GTK_CONTAINER (dialog), box);
+
+ GtkWidget *var_info = psppire_var_info_new ();
+ g_object_set (var_info, "variable", dv->var_under_cursor, NULL);
+ gtk_box_pack_start (GTK_BOX (box), var_info, TRUE, TRUE, 5);
+
+ GtkWidget *button_box = psppire_button_box_new ();
+ g_object_set (button_box,
+ "buttons", PSPPIRE_BUTTON_CLOSE_MASK | PSPPIRE_BUTTON_HELP_MASK,
+ NULL);
+ g_object_set (button_box, "layout-style", GTK_BUTTONBOX_SPREAD, NULL);
+ gtk_box_pack_start (GTK_BOX (box), button_box, FALSE, TRUE, 5);
+
+ g_signal_connect_swapped (dialog, "unmap",
+ G_CALLBACK (check_item_set_inactive), cmi);
+
+ gtk_widget_show_all (box);
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+}