X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Froc-dialog.c;h=45972d547640d19a7fa1c8437efecebb66239ca0;hb=8f69116a2c31b8aed0527e225c368b3466da6c8d;hp=6896ef7b2d183997c63dc5183eec9f192e8af811;hpb=bb025f49673d66a2e490a781d7d59b2f32da0087;p=pspp diff --git a/src/ui/gui/roc-dialog.c b/src/ui/gui/roc-dialog.c index 6896ef7b2d..45972d5476 100644 --- a/src/ui/gui/roc-dialog.c +++ b/src/ui/gui/roc-dialog.c @@ -100,16 +100,31 @@ dialog_state_valid (gpointer data) return TRUE; } +static void +on_curve_button_toggle (GtkCheckButton *curve, struct roc *rd) +{ + if ( !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (curve))) + { + if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->reference))) + g_object_set (rd->reference, "inconsistent", TRUE, NULL); + g_object_set (rd->reference, "sensitive", FALSE, NULL); + } + else + { + g_object_set (rd->reference, "inconsistent", FALSE, NULL); + g_object_set (rd->reference, "sensitive", TRUE, NULL); + } +} + /* Pops up the Roc dialog box */ void -roc_dialog (GObject *o, gpointer data) +roc_dialog (PsppireDataWindow *de) { struct roc rd; gint response; GtkBuilder *xml = builder_new ("roc.ui"); - PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); PsppireVarStore *vs; GtkWidget *dialog = get_widget_assert (xml, "roc-dialog"); @@ -132,11 +147,16 @@ roc_dialog (GObject *o, gpointer data) g_object_get (vs, "dictionary", &rd.dict, NULL); g_object_set (source, "model", rd.dict, NULL); + g_signal_connect (rd.curve, "toggled", G_CALLBACK (on_curve_button_toggle), &rd); + g_signal_connect_swapped (dialog, "refresh", G_CALLBACK (refresh), &rd); psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (dialog), dialog_state_valid, &rd); + psppire_selector_set_allow (PSPPIRE_SELECTOR (get_widget_assert (xml, "dep-selector")), + numeric_only); + response = psppire_dialog_run (PSPPIRE_DIALOG (dialog)); switch (response) @@ -154,7 +174,7 @@ roc_dialog (GObject *o, gpointer data) case PSPPIRE_RESPONSE_PASTE: { gchar *syntax = generate_syntax (&rd); - paste_syntax_in_new_window (syntax); + paste_syntax_to_window (syntax); g_free (syntax); }