X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Ffind-dialog.c;h=63604cf496e4a0ccb71329d18376f6571c6f1760;hb=b401615e6db40bf74394839b96600afe3a868a95;hp=faeb8f6490578ad703096f40cbce96cce44886a8;hpb=073997e65ce756a77a7db90cc23fb7f501bdd087;p=pspp-builds.git diff --git a/src/ui/gui/find-dialog.c b/src/ui/gui/find-dialog.c index faeb8f64..63604cf4 100644 --- a/src/ui/gui/find-dialog.c +++ b/src/ui/gui/find-dialog.c @@ -34,6 +34,7 @@ which match particular strings */ #include #include #include +#include #include #include @@ -183,10 +184,8 @@ value_labels_toggled (GtkToggleButton *tb, gpointer data) /* Pops up the Find dialog box */ void -find_dialog (GObject *o, gpointer data) +find_dialog (PsppireDataWindow *de) { - PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); - struct find_dialog fd; GtkWidget *dialog ; @@ -207,7 +206,7 @@ find_dialog (GObject *o, gpointer data) buttonbox = get_widget_assert (fd.xml, "find-buttonbox"); - gtk_box_pack_start_defaults (GTK_BOX (buttonbox), find_button); + psppire_box_pack_start_defaults (GTK_BOX (buttonbox), find_button); gtk_box_reorder_child (GTK_BOX (buttonbox), find_button, 0); dialog = get_widget_assert (fd.xml, "find-dialog"); @@ -219,7 +218,8 @@ find_dialog (GObject *o, gpointer data) "data-store", &ds, NULL); - fd.dict = vs->dict; + g_object_get (vs, "dictionary", &fd.dict, NULL); + fd.data = ds->datasheet; fd.variable_entry = get_widget_assert (fd.xml, "find-variable-entry"); @@ -241,17 +241,13 @@ find_dialog (GObject *o, gpointer data) gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); - g_object_set (source, "dictionary", fd.dict, + g_object_set (source, "model", fd.dict, "selection-mode", GTK_SELECTION_SINGLE, NULL); - psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector), - source, - fd.variable_entry, - insert_source_row_into_entry, - is_currently_in_entry, - NULL - ); + + psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector), + is_currently_in_entry); g_signal_connect (dialog, "refresh", G_CALLBACK (refresh), &fd); @@ -569,7 +565,8 @@ regexp_label_compare (const struct comparator *cmptr, static void regexp_destroy (struct comparator *cmptr) { - struct regexp_comparator *rec = (struct regexp_comparator *) cmptr; + struct regexp_comparator *rec + = UP_CAST (cmptr, struct regexp_comparator, parent); regfree (&rec->re); } @@ -577,7 +574,8 @@ regexp_destroy (struct comparator *cmptr) static void cmptr_value_destroy (struct comparator *cmptr) { - struct value_comparator *vc = (struct value_comparator *) cmptr; + struct value_comparator *vc + = UP_CAST (cmptr, struct value_comparator, parent); value_destroy (&vc->pattern, var_get_width (cmptr->var)); } @@ -585,10 +583,8 @@ cmptr_value_destroy (struct comparator *cmptr) static struct comparator * value_comparator_create (const struct variable *var, const PsppireDict *dict, const char *target) { - const struct fmt_spec *fmt; - int width ; struct value_comparator *vc = xzalloc (sizeof (*vc)); - struct comparator *cmptr = (struct comparator *) vc; + struct comparator *cmptr = &vc->parent; cmptr->flags = 0; cmptr->var = var; @@ -596,12 +592,7 @@ value_comparator_create (const struct variable *var, const PsppireDict *dict, co cmptr->destroy = cmptr_value_destroy; cmptr->dict = dict; - width = var_get_width (var); - fmt = var_get_write_format (var); - - value_init (&vc->pattern, width); - - text_to_value (target, &vc->pattern, dict, *var_get_write_format (var) ); + text_to_value (target, dict, var, &vc->pattern); return cmptr; } @@ -612,7 +603,7 @@ string_comparator_create (const struct variable *var, const PsppireDict *dict, enum string_cmp_flags flags) { struct string_comparator *ssc = xzalloc (sizeof (*ssc)); - struct comparator *cmptr = (struct comparator *) ssc; + struct comparator *cmptr = &ssc->parent; cmptr->flags = flags; cmptr->var = var; @@ -635,7 +626,7 @@ regexp_comparator_create (const struct variable *var, const PsppireDict *dict, c { int code; struct regexp_comparator *rec = xzalloc (sizeof (*rec)); - struct comparator *cmptr = (struct comparator *) rec; + struct comparator *cmptr = &rec->parent; cmptr->flags = flags; cmptr->var = var;