output: Make groups contain their subitems, and get rid of spv_item.
[pspp] / src / ui / gui / psppire-output-window.c
index 2c45f7cf6a835415fe3700c96b539df8238bcaec..99688e97e23f706bf50a5d030bc7fe7a8235640d 100644 (file)
 #include "libpspp/cast.h"
 #include "libpspp/message.h"
 #include "libpspp/string-map.h"
-#include "output/chart-item.h"
 #include "output/driver-provider.h"
-#include "output/message-item.h"
 #include "output/output-item.h"
-#include "output/table-item.h"
-#include "output/text-item.h"
 #include "ui/gui/help-menu.h"
 #include "ui/gui/builder-wrapper.h"
 #include "ui/gui/psppire-output-view.h"
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
 
-static void psppire_output_window_class_init    (PsppireOutputWindowClass *class);
-static void psppire_output_window_init          (PsppireOutputWindow      *window);
-
-GType
-psppire_output_window_get_type (void)
-{
-  static GType psppire_output_window_type = 0;
-
-  if (!psppire_output_window_type)
-    {
-      static const GTypeInfo psppire_output_window_info =
-      {
-       sizeof (PsppireOutputWindowClass),
-       (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-       (GClassInitFunc)psppire_output_window_class_init,
-       (GClassFinalizeFunc) NULL,
-       NULL,
-        sizeof (PsppireOutputWindow),
-       0,
-       (GInstanceInitFunc) psppire_output_window_init,
-      };
-
-      psppire_output_window_type =
-       g_type_register_static (PSPPIRE_TYPE_WINDOW, "PsppireOutputWindow",
-                               &psppire_output_window_info, 0);
-    }
-
-  return psppire_output_window_type;
-}
+G_DEFINE_TYPE (PsppireOutputWindow, psppire_output_window, PSPPIRE_TYPE_WINDOW)
 
 static GObjectClass *parent_class;
 
@@ -189,10 +156,10 @@ psppire_output_submit (struct output_driver *this,
 
 static struct output_driver_class psppire_output_class =
   {
-    "PSPPIRE",                  /* name */
-    NULL,                       /* destroy */
-    psppire_output_submit,      /* submit */
-    NULL,                       /* flush */
+    .name = "PSPPIRE",
+    .submit = psppire_output_submit,
+    .handles_groups = true,
+    .handles_show = true,
   };
 
 void
@@ -266,7 +233,7 @@ enum
 
 #define N_EXTENSIONS (n_FT - 1)
 
-struct file_types ft[n_FT] = {
+static const struct file_types ft[n_FT] = {
   {N_("Infer file type from extension"),  NULL},
   {N_("SPSS Viewer (*.spv)"),             ".spv"},
   {N_("PDF (*.pdf)"),                     ".pdf"},
@@ -510,9 +477,6 @@ psppire_output_window_init (PsppireOutputWindow *window)
     GTK_LAYOUT (get_widget_assert (xml, "output")),
     GTK_TREE_VIEW (get_widget_assert (xml, "overview")));
 
-
-  connect_help (xml);
-
   g_signal_connect (window,
                    "focus-in-event",
                    G_CALLBACK (cancel_urgency),