int hpa(int argc, char *argv[], int retc, char *retv[]) /*************/ { double plotchar = 0.6; (void) argc; (void) argv; (void) retc; (void) retv; if (setplotter()) return(ERROR); if (raster) { Werrprintf("hpa is not supported on raster plotters"); return(COMPLETE); } charsize(plotchar); color(GREEN); if (debug1) Wscrprintf("ppmm= %g ymultiplier= %d plot= %d raster= %d, mnumxpnts= %d\n", ppmm,ymultiplier,plot,raster,mnumxpnts); /* Copy the display parameters from the current group to the processed group so the current values will be plotted. */ P_copygroup( CURRENT, PROCESSED, G_DISPLAY ); plotparam("tn", COL1, ROW1, 6,0); plotparam("sw", COL1, ROW2, 8,1); plotparam("at", COL1, ROW3, 8,3); plotparam("pw", COL1, ROW4, 8,1); plotparam("sfrq", COL2, ROW1, 8,4); plotparam("tof", COL2, ROW2, 8,1); plotparam("d1", COL2, ROW3, 8,3); plotparam("ct", COL2+2, ROW4, 8,0); plotparam("dn", COL3, ROW1, 6,0); plotparam("dm", COL3, ROW2, 6,0); plotparam("dmm", COL3+7, ROW3, 6,0); plotparam("pp", COL3, ROW4, 8,1); plotparam("dof", COL4, ROW1, 8,1); plotparam("dlp", COL4, ROW2, 8,0); plotparam("dmf", COL4, ROW3, 8,0); plotparam("dpwr", COL4, ROW4, 8,0); plotparam("fn", COL5, ROW1, 8,0); plotparam("lb", COL5, ROW2, 8,3); plotparam("wp", COL5+2, ROW3, 8,1); plotparam("gf", COL6, ROW2, 8,3); plotparam("sp", COL7-6, ROW3, 8,1); plotparam("seqfil", COL8, ROW1, 6,0); plotparam("temp", COL8-2, ROW3, 8,1); plotparam("solvent", COL8, ROW4, 8,0); plotparam("file", COL9, ROW2, 8,0); plotparam("date", COL9, ROW3, 8,0); plotparam("h1freq", COL9, ROW4, 6,0); plottext(295,ROW2); endgraphics(); return(COMPLETE); }
int dpf(int argc, char *argv[], int retc, char *retv[]) /*************/ { int groups; int noisemult_p = 0; int numlines,maxlines; int i; int donll = TRUE; int noneg = FALSE; int top = FALSE; char command[128]; char name[64]; (void) retc; (void) retv; Wturnoff_buttons(); leader_len = 20.0; axish = FALSE; axisp = FALSE; axisp_freq = 1.0; if (argc > 1) { for (i=1; i<argc; i++) { if (strcmp(argv[i],"off") == 0) { set_dpf_flag(0,""); redo_dpf_dpir(); RETURN; } else if (strcmp(argv[i],"turnoff") == 0) { set_dpf_flag(0,""); RETURN; } else if (strcmp(argv[i],"noll") == 0) donll = FALSE; else if (strcmp(argv[i],"pos") == 0) noneg = TRUE; else if (strcmp(argv[i],"top") == 0) top = TRUE; else if (strcmp(argv[i],"axish") == 0) axish = TRUE; else if (strcmp(argv[i],"axisp") == 0) { axisp = TRUE; P_getreal(PROCESSED,"sfrq",&axisp_freq,1); } else if (strcmp(argv[i],"leader") == 0) { if (((i+1) < argc) && isReal(argv[i+1]) ) { i++; leader_len = stringReal(argv[i]); } } else if (isReal(argv[i])) noisemult_p = i; } } if (donll) /* if not donll, dpf uses last previous line listing */ { if (noisemult_p != 0) { if (noneg) strcpy(command,"nll('dpf','pos',"); else strcpy(command,"nll('dpf',"); strcat(command,argv[noisemult_p]); strcat(command,")\n"); } else { if (noneg) strcpy(command,"nll('dpf','pos')\n"); else strcpy(command,"nll('dpf')\n"); } execString(command); } if(P_getreal(CURRENT, "dpf_sc2",&dpf_sc2,1)) dpf_sc2=sc2; if(P_getreal(CURRENT, "dpf_wc2",&dpf_wc2,1)) dpf_wc2=wc2; if(dpf_wc2>wc2) dpf_wc2=wc2; if(dpf_sc2<sc2) dpf_sc2=sc2; /* if (init2d(1,1)) return(ERROR); */ scale = vs; if (normflag) scale *= normalize; /* Wscrprintf("normflag=%d normalize=%g\n",normflag,normalize); */ plot = (argv[0][0] == 'p'); /*select_init(get_rev, dis_setup, fdimname, doheaders, docheck2d, dospecpars, doblockpars, dophasefile)*/ /*if (init2d(0,plot + 1)) return(ERROR); */ if (select_init( 0, plot+1, NO_FREQ_DIM, NO_HEADERS, DO_CHECK2D, DO_SPECPARS, NO_BLOCKPARS, NO_PHASEFILE )) return(ERROR); if ((numlines = getlines(noneg)) == 0) RETURN; if (!plot) { setwindows(); dispcalib = (float) (mnumypnts-ymin) / (float) wc2max; getOptName(PEAK_MARK,name); set_line_thickness(name); getOptName(PEAK_NUM,name); set_graphics_font(name); } else { double size = G_getCharSize("PeakNum"); charsize(size); //charsize((double)0.7); dispcalib = ppmm / ymultiplier; } CharSize = ycharpixels + ycharpixels / 5; maxlines = dnpnt / CharSize; if (maxlines < numlines) remove_lines(maxlines,&numlines); if (numlines > 0) { //color(PARAM_COLOR); color(PEAK_MARK_COLOR); groups = groupcheck(numlines); if (debug1) { Wscrprintf("index high low newhigh newlow highlimit lowlimit\n"); for (i = 1; i <= groups; i++) Wscrprintf("%d %d %d %d %d %d %d\n",i,ga[i].high,ga[i].low, ga[i].newhigh,ga[i].newlow,ga[i].highlimit,ga[i].lowlimit); } label_proc = (top) ? (PFV) label_top : (PFV) label_bot; for (i = 1; i <= groups; i++) label_group(i); if (!plot) { // construct the command, and set the flag and command char cmd[64]; if(argc > 1) { if (isReal(argv[1]) ) sprintf(cmd,"%s(%s",argv[0],argv[1]); else sprintf(cmd,"%s('%s'",argv[0],argv[1]); for(i=2;i<argc;i++) { if (isReal(argv[i]) ) { strcat(cmd,","); strcat(cmd,argv[i]); } else { strcat(cmd,",'"); strcat(cmd,argv[i]); strcat(cmd,"'"); } } strcat(cmd,")\n"); } else sprintf(cmd,"%s\n",argv[0]); Wsetgraphicsdisplay("ds"); set_dpf_flag(1, cmd); } } releaseAllWithId("dpf"); endgraphics(); disp_status(" "); set_graphics_font("Default"); RETURN; }
int dpir(int argc, char *argv[], int retc, char *retv[]) /*************/ { int groups; int resets; int i, min, ysize; char name[64]; char tmpstr[MAXSTR]; (void) retc; (void) retv; if (argc > 1 && strcmp(argv[1],"off") == 0) { set_dpir_flag(0,""); redo_dpf_dpir(); RETURN; } else if (argc > 1 && strcmp(argv[1],"turnoff") == 0) { set_dpir_flag(0,""); RETURN; } vertflag=0; if ( ! P_getstring(GLOBAL, "integralOrient", tmpstr, 1, MAXSTR) ) { vertflag = (strcmp(tmpstr,"vert") == 0); } if (argc > 1 && strcmp(argv[1],"vert") == 0) { vertflag=1; } if(argc == 1 || strcmp(argv[1],"noli") != 0) { execString("nli\n"); } if (check_int(&resets)) { Werrprintf("intmod must not be set to 'full'"); ABORT; } if (resets <= 1) { Werrprintf("no integral resets are defined"); ABORT; } plot = (argv[0][0] == 'p'); if (select_init( 0, plot+1, NO_FREQ_DIM, NO_HEADERS, DO_CHECK2D, DO_SPECPARS, NO_BLOCKPARS, NO_PHASEFILE )) { ABORT; } if(strlen(argv[0]) > 4 && argv[0][4] == 'N') { normInt = 1; } else if(strlen(argv[0]) > 3 && argv[0][3] == 'N') { normInt = 1; } if ((groups = getregions(resets)) == 0) { ABORT; } min=mnumxpnts; for (i = 1; i <= groups; i++) { if(gb[i].lowlimit <= 0 || gb[i].highlimit <= 0 || gb[i].lowlimit >= (mnumxpnts-xcharpixels) || gb[i].highlimit >= (mnumxpnts-xcharpixels)) continue; if((gb[i].highlimit-gb[i].lowlimit) < min) min = gb[i].highlimit-gb[i].lowlimit; } if(min != 0 && min < 3*xcharpixels) ysize = 3; else ysize=2; if (!plot) { setwindows(); dispcalib = (float) (mnumypnts-ymin) / (float) wc2max; CharSize = ycharpixels + ycharpixels / 5; getOptName(INTEG_MARK,name); set_line_thickness(name); getOptName(INTEG_NUM,name); set_graphics_font(name); } else { double size = G_getCharSize("IntegralNum"); charsize(size); //charsize((double)0.7); dispcalib = ppmm / ymultiplier; CharSize = ycharpixels; } if (showPlotBox()) dpir_off=0.0; else dpir_off=9.0; if(dispcalib>0) { int size= 12; G_getSize("IntegralNum", &size); i = (int)(vp*dispcalib); if (vertflag && i < 4*size) { char cmd[64]; i = (int)(4*size/dispcalib)+1; if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]); else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]); if(!plot) execString(cmd); //Werrprintf("pir requires minimum vp of %d",i); RETURN; } else if (i < 3*size) { char cmd[64]; i = (int)(3*size/dispcalib)+1; if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]); else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]); if(!plot) execString(cmd); //Werrprintf("pir requires minimum vp of %d",i); RETURN; } } else { if (vp < 30) { char cmd[64]; i=30; if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]); else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]); if(!plot) execString(cmd); //Werrprintf("pir requires minimum vp of 30"); RETURN; } } //color(PARAM_COLOR); color(INTEG_MARK_COLOR); if (debug1) { Wscrprintf("dispcalib= %g, dfpnt2= %d, CharSize= %d, bottom= %d\n", dispcalib,dfpnt2,CharSize, dfpnt2 - CharSize + (int) (dispcalib * (vp - dpir_off - 5.0))); Wscrprintf("index highlimit lowlimit below\n"); for (i = 1; i <= groups; i++) Wscrprintf("%d %d %d %s\n",i,gb[i].highlimit,gb[i].lowlimit, (gb[i].below) ? "true" : "false"); } if(vertflag) { for (i = 1; i <= groups; i++) label_pirv(i); } else { for (i = 1; i <= groups; i++) label_pir(i, ysize); } if (!plot) { char cmd[64]; if(argc > 1) { if (isReal(argv[1]) ) sprintf(cmd,"%s(%s",argv[0],argv[1]); else sprintf(cmd,"%s('%s'",argv[0],argv[1]); for(i=2;i<argc;i++) { if (isReal(argv[i]) ) { strcat(cmd,","); strcat(cmd,argv[i]); } else { strcat(cmd,",'"); strcat(cmd,argv[i]); strcat(cmd,"'"); } } strcat(cmd,")\n"); } else sprintf(cmd,"%s\n",argv[0]); Wsetgraphicsdisplay("ds"); set_dpir_flag(1,cmd); } releaseAllWithId("dpir"); endgraphics(); disp_status(" "); set_graphics_font("Default"); RETURN; }
void input_line_event(EVENT_MSG *msg,OBJREC *o) { static int cursor=0; int *len,*start,slen; char *c; static char *save; static char clear_kontext; len=(int *)o->userptr; start=len+1; c=(char *)o->data; slen=strlen(c); switch (msg->msg) { case E_GET_FOCUS:cursor=0;save=(char *)getmem(*len+1); strcpy(save,c);clear_kontext=1;break; case E_LOST_FOCUS:cursor=0;*start=0;free(save);redraw_object(o);break; case E_CURSOR_TICK: { int xpos,i,j=-1,d; do { xpos=0;j++; for (i=*start;i<cursor;i++) { if ((d=charsize(curfont,c[i]) & 0xff)==0) xpos+=1; else xpos+=d; } if (xpos>=o->xs) (*start)+=1; if (xpos==0) (*start)-=1; if (*start<0) *start=0; } while ((xpos==0 || xpos>=o->xs)&& cursor); if (j) redraw_object(o); xor_rectangle(o->locx+xpos,o->locy,1,o->ys); };break; case E_MOUSE: { MS_EVENT *ms;int msx; ms=get_mouse(msg); msx=ms->x-o->locx; if (ms->event_type & 2) { int xpos; xpos=0; for (cursor=*start;cursor<slen;cursor++) { xpos+=charsize(curfont,c[cursor]) & 0xff; if (xpos>msx) break; } redraw_object(o); } } break; case E_KEYBOARD: { char key; cancel_event(); key=(*(int *)msg->data) & 0xff; if (!key) switch (*(int *)msg->data >> 8) { case 'M':if (cursor<slen) cursor++;break; case 'K':if (cursor>0) cursor--;break; case 'S':if (cursor<slen) strcpy(&c[cursor],&c[cursor+1]);slen--;break; case 'G':cursor=0; case 'O':cursor=slen; } else if (key) switch (key) { case 8:if (cursor>0) {strcpy(&c[cursor-1],&c[cursor]);cursor--;}break; case 0:break; case 13:break; case 27:strcpy(c,save);slen=strlen(c);if (cursor>slen) cursor=slen;break; default:if (key>=' ') if (slen<*len || clear_kontext) { int i; if (clear_kontext) {*c='\0';cursor=0;slen=0;} for (i=slen+1;i>cursor;i--) c[i]=c[i-1]; c[cursor++]=key; } } if (!cursor) *start=0; redraw_object(o); msg->msg=E_CURSOR_TICK; input_line_event(msg,o); clear_kontext=0; msg->msg=-1; } }