/* * ACE/vis - Visualization of Flow and Transport * * Paul J. Turner and Antonio M. Baptista * * Copyright 1990-2003 Oregon Health and Science University * All Rights Reserved * */ /* * * read/write data/parameter files * */ #ifndef lint static char RCSid[] = "$Id: parmsiowin.c,v 1.3 2004/02/26 19:32:48 pturner Exp $"; #endif #include #include "motifinc.h" #include "defines.h" #include "globals.h" extern XmStringCharSet charset; extern Widget app_shell; Widget wparam_frame = (Widget) 0; Widget wparam_panel; Widget wparam_text_item; Widget *wparam_choice_item; static void wparam_Done_notify_proc(void); static void wparam_apply_notify_proc(void); Widget rparams_dialog = (Widget) NULL; /* read params popup */ void close_rparams_popup(void) { XtUnmanageChild(rparams_dialog); } void do_rparams_proc(void) { Arg args; XmString list_item; char *s; XtSetArg(args, XmNtextString, &list_item); XtGetValues(rparams_dialog, &args, 1); XmStringGetLtoR(list_item, charset, &s); getparms(cg, s); XtFree(s); } void create_rparams_popup(void) { if (rparams_dialog) { XtRaise(rparams_dialog); return; } rparams_dialog = XmCreateFileSelectionDialog(app_shell, "Read Parameters", NULL, 0); XtVaSetValues(rparams_dialog, XmNdialogTitle, XmStringCreate("Read Parameters", charset), XmNtitle, "Read Parameters", XmNcancelLabelString, XmStringCreate("Done", charset), XmNdirMask, XmStringCreate("*.par", charset), NULL); XtAddCallback(rparams_dialog, XmNcancelCallback, (XtCallbackProc) close_rparams_popup, 0); XtAddCallback(rparams_dialog, XmNokCallback, (XtCallbackProc) do_rparams_proc, 0); XtRaise(rparams_dialog); } /* * Create the wparam Frame and the wparam Panel */ void create_wparam_frame(void) { int x, y; Widget wbut, rc; int n = 0; if (wparam_frame) { XtRaise(wparam_frame); return; } XmGetPos(app_shell, 0, &x, &y); wparam_frame = XmCreateDialogShell(app_shell, "Save Parameters", NULL, 0); XtVaSetValues(wparam_frame, XmNx, x, XmNy, y, NULL); wparam_panel = XmCreateRowColumn(wparam_frame, "wparam_rc", NULL, 0); wparam_text_item = CreateTextItem2(wparam_panel, 20, "Save parameters to: "); wparam_choice_item = CreatePanelChoice1(wparam_panel, "From graph: ", 13, "All active", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "Current", NULL, NULL); XtVaCreateManagedWidget("sep", xmSeparatorGadgetClass, wparam_panel, NULL); rc = XmCreateRowColumn(wparam_panel, "rc", NULL, 0); XtVaSetValues(rc, XmNorientation, XmHORIZONTAL, NULL); wbut = XtVaCreateManagedWidget("Accept", xmPushButtonGadgetClass, rc, NULL); XtAddCallback(wbut, XmNactivateCallback, (XtCallbackProc) wparam_apply_notify_proc, 0); wbut = XtVaCreateManagedWidget("Done", xmPushButtonGadgetClass, rc, NULL); XtAddCallback(wbut, XmNactivateCallback, (XtCallbackProc) wparam_Done_notify_proc, 0); XtManageChild(rc); XtManageChild(wparam_panel); XtRaise(wparam_frame); } static void wparam_Done_notify_proc(void) { XtUnmanageChild(wparam_frame); } static void wparam_apply_notify_proc(void) { int i; int wparamno = (int) GetChoice(wparam_choice_item); char s[256]; wparamno--; if (wparamno == -1) { wparamno = -1; } else if (wparamno == maxgraph) { wparamno = cg; } strcpy(s, (char *) xv_getstr(wparam_text_item)); if (strlen(s) > 0) { if (!fexists(s)) { putparms(wparamno, s); } } else { errwin("No output file defined, enter or select filename"); } }