#include "psppire-selector.h"
#include "psppire-dialog.h"
#include "helper.h"
-#include "data-editor.h"
+#include "psppire-data-window.h"
#include "dict-display.h"
#include <data/value.h>
+#include <data/format.h>
#include <data/datasheet.h>
#include <data/data-in.h>
#include "psppire-data-store.h"
#include <libpspp/message.h>
#include <gtk/gtk.h>
-#include <glade/glade.h>
#include <stdlib.h>
#include "xalloc.h"
/* FIXME: These shouldn't be here */
-#include <gtksheet/gtksheet.h>
#include "psppire-var-store.h"
struct find_dialog
{
- GladeXML *xml;
+ GtkBuilder *xml;
PsppireDict *dict;
- GtkSheet *data_sheet;
struct datasheet *data;
- struct data_editor *de;
+ PsppireDataWindow *de;
GtkWidget *variable_entry;
GtkWidget *value_entry;
GtkWidget *value_labels_checkbox;
{
casenumber x = -1;
gint column = -1;
- gint row;
- gtk_sheet_get_active_cell (fd->data_sheet, &row, NULL);
+ glong row;
+
+ g_object_get (fd->de->data_editor, "current-case", &row, NULL);
if ( row < 0 )
row = 0;
find_value (fd, row, &x, &column);
+
if ( x != -1)
{
- data_editor_select_sheet (fd->de, PAGE_DATA_SHEET);
-
- gtk_sheet_moveto (fd->data_sheet, x, column, 0.5, 0.5);
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (fd->de->data_editor),
+ PSPPIRE_DATA_EDITOR_DATA_VIEW);
- gtk_sheet_set_active_cell (fd->data_sheet, x, column);
+ g_object_set (fd->de->data_editor,
+ "current-case", x,
+ "current-variable", column,
+ NULL);
}
+
}
/* Callback on the selector.
void
find_dialog (GObject *o, gpointer data)
{
- struct data_editor *de = data;
+ PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
struct find_dialog fd;
GtkWidget *selector;
GtkWidget *find_button;
- GtkSheet *var_sheet;
- GtkSheet *data_sheet ;
GtkWidget *buttonbox;
- PsppireVarStore *vs ;
+ PsppireVarStore *vs ;
PsppireDataStore *ds ;
- fd.xml = XML_NEW ("psppire.glade");
+ fd.xml = builder_new ("psppire.ui");
fd.de = de;
find_button = gtk_button_new_from_stock (GTK_STOCK_FIND);
source = get_widget_assert (fd.xml, "find-variable-treeview");
selector = get_widget_assert (fd.xml, "find-selector");
- var_sheet = GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
- data_sheet = GTK_SHEET (get_widget_assert (de->xml, "data_sheet"));
-
- vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet));
- ds = PSPPIRE_DATA_STORE (gtk_sheet_get_model (data_sheet));
+ g_object_get (de->data_editor,
+ "var-store", &vs,
+ "data-store", &ds,
+ NULL);
fd.dict = vs->dict;
- fd.data = ds->case_file->datasheet;
- fd.data_sheet = data_sheet;
+ fd.data = ds->datasheet;
fd.variable_entry = get_widget_assert (fd.xml, "find-variable-entry");
fd.value_entry = get_widget_assert (fd.xml, "find-value-entry");
- gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
attach_dictionary_to_treeview (GTK_TREE_VIEW (source),
source,
fd.variable_entry,
insert_source_row_into_entry,
- is_currently_in_entry
+ is_currently_in_entry,
+ NULL
);
g_signal_connect (dialog, "refresh", G_CALLBACK (refresh), &fd);
n_iterators
};
-static struct casenum_iterator ip[n_iterators] =
+static const struct casenum_iterator ip[n_iterators] =
{
{cp1, last, forward},
{cp1c, cm1, forward_wrap},
\f
/* A factory returning an iterator according to the dialog box's settings */
-static struct casenum_iterator *
+static const struct casenum_iterator *
get_iteration_params (const struct find_dialog *fd)
{
gboolean wrap = gtk_toggle_button_get_active
const union value *v)
{
const struct value_comparator *vc = (const struct value_comparator *) cmptr;
- return 0 == compare_values (v, vc->pattern, var_get_width (cmptr->var));
+ return 0 == value_compare_3way (v, vc->pattern, var_get_width (cmptr->var));
}
vc->pattern = value_create (width);
if ( ! data_in (ss_cstr (target),
+ LEGACY_NATIVE,
fmt->type,
- 0, 0,
+ 0, 0, 0,
vc->pattern, width) )
{
free (vc);
{
union value *val = value_create (width);
casenumber i;
- struct casenum_iterator *ip = get_iteration_params (fd);
+ const struct casenum_iterator *ip = get_iteration_params (fd);
struct comparator *cmptr =
comparator_factory (var, target_string, flags);