/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2013 Free Software Foundation
+ Copyright (C) 2013, 2014 Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <config.h>
+#include <float.h>
#include <gtk/gtk.h>
#include "psppire-spreadsheet-model.h"
#include "data/spreadsheet-reader.h"
#include "data/casereader.h"
#include "data/case.h"
-#include "gl/xalloc.h"
-
-#if 0
-#define N 10
-
+#include "data/settings.h"
+#include "libpspp/message.h"
+#include "libpspp/i18n.h"
-static GtkListStore *
-make_store ()
- {
- int i;
- GtkTreeIter iter;
-
- GtkListStore * list_store = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING);
-
- for (i = 0; i < N; ++i)
- {
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter,
- 0, N - i,
- 1, "xxx",
- -1);
- }
- return list_store;
- }
-#endif
+#include "gl/xalloc.h"
struct xxx
opts.sheet_index = -1;
opts.cell_range = spreadsheet_get_sheet_range (stuff->sp, x);
- opts.sheet_name = spreadsheet_get_sheet_name (stuff->sp, x);
+ opts.sheet_name = CONST_CAST (char *,
+ spreadsheet_get_sheet_name (stuff->sp, x));
opts.read_names = TRUE;
opts.asw = -1;
reader = spreadsheet_make_reader (stuff->sp, &opts);
+
+ if (reader == NULL)
+ return;
+
proto = casereader_get_proto (reader);
nvals = caseproto_get_n_widths (proto);
-
+
for (; (c = casereader_read (reader)) != NULL; case_unref (c))
{
int i;
const int width = caseproto_get_width (proto, i);
const union value *val = case_data_idx (c, i);
if (0 == width)
- printf ("%g ", val->f);
+ printf ("%.*g ", DBL_DIG + 1, val->f);
else
{
char *ss = xzalloc (width + 1);
- strncpy (ss, value_str (val, width), width);
-
+ memcpy (ss, val->s, width);
+
printf ("%s ", ss);
free (ss);
}
casereader_destroy (reader);
}
+static void
+print_msg (const struct msg *m, void *aux UNUSED)
+{
+ fprintf (stderr, "%s\n", m->text);
+}
+
int
-main (int argc, char *argv[] )
+main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *hbox;
GtkWidget *button;
struct xxx stuff;
+ i18n_init ();
+ settings_init ();
+
gtk_init (&argc, &argv);
-
- if ( argc < 2)
+
+ if (argc < 2)
g_error ("Usage: prog file\n");
+ msg_set_handler (print_msg, 0);
+
stuff.sp = NULL;
if (stuff.sp == NULL)
if (stuff.sp == NULL)
stuff.sp = ods_probe (argv[1], false);
-
+
if (stuff.sp == NULL)
{
g_error ("%s is neither a gnumeric nor a ods file\n", argv[1]);
tm = psppire_spreadsheet_model_new (stuff.sp);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- hbox = gtk_hbox_new (FALSE, 5);
- vbox = gtk_vbox_new (FALSE, 5);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
button = gtk_button_new_with_label ("Test reader");
g_signal_connect (button, "clicked", G_CALLBACK (on_clicked), &stuff);
-
+
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
-
+
stuff.combo_box = gtk_combo_box_new();
{
gtk_main ();
- spreadsheet_destroy (stuff.sp);
+ spreadsheet_unref (stuff.sp);
return 0;
}