/* * $Id: vfpanel.c,v 1.1.1.1 1996/03/01 11:39:09 mclareni Exp $ * * $Log: vfpanel.c,v $ * Revision 1.1.1.1 1996/03/01 11:39:09 mclareni * Paw * */ /*CMZ : 2.07/05 28/06/95 10.41.03 by Unknown*/ /*-- Author : Gregory Kozlovsky 09/04/95*/ /******************************************************************************* Create, start, change status, and destroy Vector Fit Panel --- outside callable functions. =====================> Author: G. Kozlovsky, 1994 <=========================== *******************************************************************************/ #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif #include "fpanelsh/errordb.h" #include "fpanelsh/fplocal.h" #include "hmotif/uxxt.h" #undef UxParent #define CONTEXT_MACRO_ACCESS 1 #include "fpanelsh/mainpanel.h" #undef CONTEXT_MACRO_ACCESS #ifdef __cplusplus } /* extern "C" */ #endif extern int mnInitialized; /*********************************************************************** Destroy callback for the panel invoked by PAW command vector/fit. ***********************************************************************/ static void clb_destroyMainPanel( Widget shell, XtPointer client_data, XtPointer call_data) { F77_CALLS_(fpvgrend); /* end the graphics */ free(parLines); free(parname); free(vpar); free(vlow); free(vupp); free(vstep); free(veparab); free(veminus); free(veplus); free(par_start); free(par_store); free(vscalemin); free(vscalemax); free(par_active); free(vfixrel); free(par_enabled); endPanelEventLoop = True; } /******************************************************************************* Create and start vector fit panel invoked by PAW command vector/fit. *******************************************************************************/ #ifndef vms void fpvcmndpanel_( char *_Uxfexpr, void *_Uxfcn, void *_Uxufcn, int *_Uxnpar, double *_Uxvpar, double *_Uxvlow, double *_Uxvupp, double *_Uxvstep, double *_Uxveparab, int felen) { #else /* vms */ void fpvcmndpanel( struct dsc$descriptor_s *dsc_Uxfexpr, void *_Uxfcn, void *_Uxufcn, int *_Uxnpar, double *_Uxvpar, double *_Uxvlow, double *_Uxvupp, double *_Uxvstep, double *_Uxveparab) { int felen = dsc_Uxfexpr->dsc$w_length; char *_Uxfexpr = dsc_Uxfexpr->dsc$a_pointer; #endif char *cptr; int i,iline,ipar; char tstr[50]; float xmi, xma, ymi, yma; char xvname[MAX_PAWVECNAME+1]; char yvname[MAX_PAWVECNAME+1]; char eyvname[MAX_PAWVECNAME+1]; setbuf(stdout, NULL); mnInitialized = True; /* Minuit was initialized in hminut */ /***** create the panel *****/ UxMainPanelShellContext = (_UxCmainPanelShell *)createVectorFitPanel(); /* create main panel */ if (UxMainPanelShellContext==NULL) return; XtAddCallback( mainPanelShell, XmNdestroyCallback, (XtCallbackProc) clb_destroyMainPanel, (XtPointer) UxMainPanelShellContext ); grupdate = vfgrupdate; /* set appropriate graphics update */ F77_CALLS_(fpvgrinit); /* initialize the graphical data */ /***** define vectors for parameters data *****/ npar = MAX_PARNUMBER; parLines = (Widget *)malloc(npar*sizeof(Widget)); for (iline=0; iline